From df008989040e084cc2ca2ff654f8d4f2c4136c50 Mon Sep 17 00:00:00 2001 From: Spencer Lepine Date: Thu, 30 Mar 2023 18:02:26 +0000 Subject: [PATCH] add React Native support and documentation --- .github/docs/ReactNativeSupport.md | 121 + CHANGELOG.md | 4 + README.md | 4 + dist/amazon-connect-chat.js | 2 +- dist/amazon-connect-chat.js.map | 2 +- package-lock.json | 11096 +++++++++++++++- package.json | 2 +- src/core/chatSession.js | 3 + src/globalConfig.spec.js | 21 + src/lib/amazon-connect-websocket-manager.js | 2 +- .../amazon-connect-websocket-manager.js.map | 2 +- 11 files changed, 11227 insertions(+), 32 deletions(-) create mode 100644 .github/docs/ReactNativeSupport.md diff --git a/.github/docs/ReactNativeSupport.md b/.github/docs/ReactNativeSupport.md new file mode 100644 index 0000000..958e766 --- /dev/null +++ b/.github/docs/ReactNativeSupport.md @@ -0,0 +1,121 @@ +# React Native Support + +Additional configuration is required to support ChatJS in React Native applications. Use `amazon-connect-chatjs@^1.5.0` and apply the changes below: + + + +#### Override Browser Network Health Check + +If running ChatJS in mobile React Native environment, override the default network online check: + +> `amazon-connect-websocket-manager.js` depencency will use `navigator.onLine`. Legacy browsers will always return `true`, but unsupported or mobile runtime will return `null/undefined`. + +```js +/** + * `amazon-connect-websocket-manager.js` depencency will use `navigator.onLine` + * Unsupported or mobile runtime will return `null/undefined` - preventing websocket connections + * Legacy browsers will always return `true` [ref: caniuse.com/netinfo] + */ +const customNetworkStatusUtil = () => { + if (navigator && navigator.hasOwnProperty("onLine")) { + return navigator.onLine; + } + + return true; +} + +connect.ChatSession.setGlobalConfig({ + webSocketManagerConfig: { + isNetworkOnline: customNetworkStatusUtil, + } +}); +``` + +#### Custom Network Health Check + +Extending this, device-native network health checks can be used for React Native applications. + +1. First, install the `useNetInfo` react hook: + +```sh +$ npm install --save @react-native-community/netinfo +# source: https://github.com/react-native-netinfo/react-native-netinfo +``` + +2. Make sure to update permissions, Android requires the following line in `AndroidManifest.xml`: (for SDK version after 23) + +```xml + +``` + +3. Set up the network event listener, and pass custom function to `setGlobalConfig`: + +> Note: To configure `WebSocketManager`, `setGlobalConfig` must be invoked + +```js +import ChatSession from "./ChatSession"; +import NetInfo from "@react-native-community/netinfo"; +import "amazon-connect-chatjs"; // ^1.5.0 - imports global "connect" object + +let isOnline = true; + +/** + * By default, `isNetworkOnline` will be invoked every 250ms + * Should only current status, and not make `NetInfo.fetch()` call + * + * @return {boolean} returns true if currently connected to network +*/ +const customNetworkStatusUtil = () => isOnline; + +const ReactNativeChatComponent = (props) => { + + /** + * Network event listener native to device + * Will update `isOnline` value asynchronously whenever network calls are made + */ + const unsubscribeNetworkEventListener = NetInfo.addEventListener(state => { + isOnline = state.isConnected; + }); + + useEffect(() => { + return unsubscribeNetworkEventListener(); + }, []); + + const initializeChatJS = () => { + // To configure WebSocketManager, setGlobalConfig must be invoked + connect.ChatSession.setGlobalConfig({ + // ... + webSocketManagerConfig: { + isNetworkOnline: customNetworkStatusUtil, + } + }); + } + + // ... +} +``` + +4. Optionally, this configuration can be dynamically set based on the `Platform` + +```js +import { Platform } from 'react-native'; + +const isMobile = Platform.OS === 'ios' || Platform.OS === 'android'; + +const customNetworkStatusUtil = () => { + if (navigator && navigator.hasOwnProperty("onLine")) { + return navigator.onLine; + } + + return true; +} + +connect.ChatSession.setGlobalConfig({ + // ... + webSocketManagerConfig: { + ...(isMobile ? { isNetworkOnline: customNetworkStatusUtil } : {}), // use default behavior for browsers + } +}); +``` diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ffbefd..d5ad768 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.5.0] +### Added +- support React Native applications with latest WebSocketManager fix + ## [1.4.0] ### Added - Migrate critical **connectionAcknowledge** event to CreateParticipantConnection API, and keep **sendEvent API** for non-critical events like typing/read/delivered. diff --git a/README.md b/README.md index 369ff06..f854824 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,10 @@ $ git clone https://github.com/amazon-connect/amazon-connect-chatjs Find build artifacts in **dist** directory - This will generate a file called `amazon-connect-chat.js` - this is the full Connect ChatJS API which you will want to include in your page. +# React Native Support + +Additional configuration is required to support ChatJS in React Native applications. Use `amazon-connect-chatjs@^1.5.0` and follow the documenation: [ReactNativeSupport.md](./.github/docs/ReactNativeSupport.md) + # API ## `connect.ChatSession` API diff --git a/dist/amazon-connect-chat.js b/dist/amazon-connect-chat.js index 89505ff..090e11c 100644 --- a/dist/amazon-connect-chat.js +++ b/dist/amazon-connect-chat.js @@ -1,2 +1,2 @@ -(()=>{var e={228:(e,t,n)=>{var r;!function e(t,n,r){function i(s,a){if(!n[s]){if(!t[s]){if(o)return o(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[s]={exports:{}};t[s][0].call(u.exports,(function(e){return i(t[s][1][e]||e)}),u,u.exports,e,t,n,r)}return n[s].exports}for(var o=void 0,s=0;s-1});var i=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]","[object DataView]"];t.exports={isEmptyData:function(e){return"string"==typeof e?0===e.length:0===e.byteLength},convertToBuffer:function(e){return"string"==typeof e&&(e=new r(e,"utf8")),ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(e)}}},{"buffer/":82}],13:[function(e,t,n){function r(e,t){this.hash=new e,this.outer=new e;var n=i(e,t),r=new Uint8Array(e.BLOCK_SIZE);r.set(n);for(var o=0;oe.BLOCK_SIZE){var r=new e;r.update(n),n=r.digest()}var i=new Uint8Array(e.BLOCK_SIZE);return i.set(n),i}var o=e("./browserHashUtils");t.exports=r,r.prototype.update=function(e){if(o.isEmptyData(e)||this.error)return this;try{this.hash.update(o.convertToBuffer(e))}catch(e){this.error=e}return this},r.prototype.digest=function(e){return this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest(e)}},{"./browserHashUtils":12}],14:[function(e,t,n){function r(){this.state=[1732584193,4023233417,2562383102,271733878],this.buffer=new DataView(new ArrayBuffer(p)),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}function i(e,t,n,r,i,o){return((t=(t+e&4294967295)+(r+o&4294967295)&4294967295)<>>32-i)+n&4294967295}function o(e,t,n,r,o,s,a){return i(t&n|~t&r,e,t,o,s,a)}function s(e,t,n,r,o,s,a){return i(t&r|n&~r,e,t,o,s,a)}function a(e,t,n,r,o,s,a){return i(t^n^r,e,t,o,s,a)}function c(e,t,n,r,o,s,a){return i(n^(t|~r),e,t,o,s,a)}var u=e("./browserHashUtils"),l=e("buffer/").Buffer,p=64;t.exports=r,r.BLOCK_SIZE=p,r.prototype.update=function(e){if(u.isEmptyData(e))return this;if(this.finished)throw new Error("Attempted to update an already finished hash.");var t=u.convertToBuffer(e),n=0,r=t.byteLength;for(this.bytesHashed+=r;r>0;)this.buffer.setUint8(this.bufferLength++,t[n++]),r--,this.bufferLength===p&&(this.hashBuffer(),this.bufferLength=0);return this},r.prototype.digest=function(e){if(!this.finished){var t=this,n=t.buffer,r=t.bufferLength,i=8*t.bytesHashed;if(n.setUint8(this.bufferLength++,128),r%p>=p-8){for(var o=this.bufferLength;o>>0,!0),n.setUint32(p-4,Math.floor(i/4294967296),!0),this.hashBuffer(),this.finished=!0}var s=new DataView(new ArrayBuffer(16));for(o=0;o<4;o++)s.setUint32(4*o,this.state[o],!0);var a=new l(s.buffer,s.byteOffset,s.byteLength);return e?a.toString(e):a},r.prototype.hashBuffer=function(){var e=this.buffer,t=this.state,n=t[0],r=t[1],i=t[2],u=t[3];n=o(n,r,i,u,e.getUint32(0,!0),7,3614090360),u=o(u,n,r,i,e.getUint32(4,!0),12,3905402710),i=o(i,u,n,r,e.getUint32(8,!0),17,606105819),r=o(r,i,u,n,e.getUint32(12,!0),22,3250441966),n=o(n,r,i,u,e.getUint32(16,!0),7,4118548399),u=o(u,n,r,i,e.getUint32(20,!0),12,1200080426),i=o(i,u,n,r,e.getUint32(24,!0),17,2821735955),r=o(r,i,u,n,e.getUint32(28,!0),22,4249261313),n=o(n,r,i,u,e.getUint32(32,!0),7,1770035416),u=o(u,n,r,i,e.getUint32(36,!0),12,2336552879),i=o(i,u,n,r,e.getUint32(40,!0),17,4294925233),r=o(r,i,u,n,e.getUint32(44,!0),22,2304563134),n=o(n,r,i,u,e.getUint32(48,!0),7,1804603682),u=o(u,n,r,i,e.getUint32(52,!0),12,4254626195),i=o(i,u,n,r,e.getUint32(56,!0),17,2792965006),n=s(n,r=o(r,i,u,n,e.getUint32(60,!0),22,1236535329),i,u,e.getUint32(4,!0),5,4129170786),u=s(u,n,r,i,e.getUint32(24,!0),9,3225465664),i=s(i,u,n,r,e.getUint32(44,!0),14,643717713),r=s(r,i,u,n,e.getUint32(0,!0),20,3921069994),n=s(n,r,i,u,e.getUint32(20,!0),5,3593408605),u=s(u,n,r,i,e.getUint32(40,!0),9,38016083),i=s(i,u,n,r,e.getUint32(60,!0),14,3634488961),r=s(r,i,u,n,e.getUint32(16,!0),20,3889429448),n=s(n,r,i,u,e.getUint32(36,!0),5,568446438),u=s(u,n,r,i,e.getUint32(56,!0),9,3275163606),i=s(i,u,n,r,e.getUint32(12,!0),14,4107603335),r=s(r,i,u,n,e.getUint32(32,!0),20,1163531501),n=s(n,r,i,u,e.getUint32(52,!0),5,2850285829),u=s(u,n,r,i,e.getUint32(8,!0),9,4243563512),i=s(i,u,n,r,e.getUint32(28,!0),14,1735328473),n=a(n,r=s(r,i,u,n,e.getUint32(48,!0),20,2368359562),i,u,e.getUint32(20,!0),4,4294588738),u=a(u,n,r,i,e.getUint32(32,!0),11,2272392833),i=a(i,u,n,r,e.getUint32(44,!0),16,1839030562),r=a(r,i,u,n,e.getUint32(56,!0),23,4259657740),n=a(n,r,i,u,e.getUint32(4,!0),4,2763975236),u=a(u,n,r,i,e.getUint32(16,!0),11,1272893353),i=a(i,u,n,r,e.getUint32(28,!0),16,4139469664),r=a(r,i,u,n,e.getUint32(40,!0),23,3200236656),n=a(n,r,i,u,e.getUint32(52,!0),4,681279174),u=a(u,n,r,i,e.getUint32(0,!0),11,3936430074),i=a(i,u,n,r,e.getUint32(12,!0),16,3572445317),r=a(r,i,u,n,e.getUint32(24,!0),23,76029189),n=a(n,r,i,u,e.getUint32(36,!0),4,3654602809),u=a(u,n,r,i,e.getUint32(48,!0),11,3873151461),i=a(i,u,n,r,e.getUint32(60,!0),16,530742520),n=c(n,r=a(r,i,u,n,e.getUint32(8,!0),23,3299628645),i,u,e.getUint32(0,!0),6,4096336452),u=c(u,n,r,i,e.getUint32(28,!0),10,1126891415),i=c(i,u,n,r,e.getUint32(56,!0),15,2878612391),r=c(r,i,u,n,e.getUint32(20,!0),21,4237533241),n=c(n,r,i,u,e.getUint32(48,!0),6,1700485571),u=c(u,n,r,i,e.getUint32(12,!0),10,2399980690),i=c(i,u,n,r,e.getUint32(40,!0),15,4293915773),r=c(r,i,u,n,e.getUint32(4,!0),21,2240044497),n=c(n,r,i,u,e.getUint32(32,!0),6,1873313359),u=c(u,n,r,i,e.getUint32(60,!0),10,4264355552),i=c(i,u,n,r,e.getUint32(24,!0),15,2734768916),r=c(r,i,u,n,e.getUint32(52,!0),21,1309151649),n=c(n,r,i,u,e.getUint32(16,!0),6,4149444226),u=c(u,n,r,i,e.getUint32(44,!0),10,3174756917),i=c(i,u,n,r,e.getUint32(8,!0),15,718787259),r=c(r,i,u,n,e.getUint32(36,!0),21,3951481745),t[0]=n+t[0]&4294967295,t[1]=r+t[1]&4294967295,t[2]=i+t[2]&4294967295,t[3]=u+t[3]&4294967295}},{"./browserHashUtils":12,"buffer/":82}],15:[function(e,t,n){function r(){this.h0=1732584193,this.h1=4023233417,this.h2=2562383102,this.h3=271733878,this.h4=3285377520,this.block=new Uint32Array(80),this.offset=0,this.shift=24,this.totalLength=0}var i=e("buffer/").Buffer,o=e("./browserHashUtils");new Uint32Array([1518500249,1859775393,-1894007588,-899497514]),Math.pow(2,53),t.exports=r,r.BLOCK_SIZE=64,r.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");if(o.isEmptyData(e))return this;var t=(e=o.convertToBuffer(e)).length;this.totalLength+=8*t;for(var n=0;n14||14===this.offset&&this.shift<24)&&this.processBlock(),this.offset=14,this.shift=24,this.write(0),this.write(0),this.write(this.totalLength>0xffffffffff?this.totalLength/1099511627776:0),this.write(this.totalLength>4294967295?this.totalLength/4294967296:0);for(var t=24;t>=0;t-=8)this.write(this.totalLength>>t);var n=new i(20),r=new DataView(n.buffer);return r.setUint32(0,this.h0,!1),r.setUint32(4,this.h1,!1),r.setUint32(8,this.h2,!1),r.setUint32(12,this.h3,!1),r.setUint32(16,this.h4,!1),e?n.toString(e):n},r.prototype.processBlock=function(){for(var e=16;e<80;e++){var t=this.block[e-3]^this.block[e-8]^this.block[e-14]^this.block[e-16];this.block[e]=t<<1|t>>>31}var n,r,i=this.h0,o=this.h1,s=this.h2,a=this.h3,c=this.h4;for(e=0;e<80;e++){e<20?(n=a^o&(s^a),r=1518500249):e<40?(n=o^s^a,r=1859775393):e<60?(n=o&s|a&(o|s),r=2400959708):(n=o^s^a,r=3395469782);var u=(i<<5|i>>>27)+n+c+r+(0|this.block[e]);c=a,a=s,s=o<<30|o>>>2,o=i,i=u}for(this.h0=this.h0+i|0,this.h1=this.h1+o|0,this.h2=this.h2+s|0,this.h3=this.h3+a|0,this.h4=this.h4+c|0,this.offset=0,e=0;e<16;e++)this.block[e]=0}},{"./browserHashUtils":12,"buffer/":82}],16:[function(e,t,n){function r(){this.state=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}var i=e("buffer/").Buffer,o=e("./browserHashUtils"),s=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),a=Math.pow(2,53)-1;t.exports=r,r.BLOCK_SIZE=64,r.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");if(o.isEmptyData(e))return this;var t=0,n=(e=o.convertToBuffer(e)).byteLength;if(this.bytesHashed+=n,8*this.bytesHashed>a)throw new Error("Cannot hash more than 2^53 - 1 bits");for(;n>0;)this.buffer[this.bufferLength++]=e[t++],n--,64===this.bufferLength&&(this.hashBuffer(),this.bufferLength=0);return this},r.prototype.digest=function(e){if(!this.finished){var t=8*this.bytesHashed,n=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),r=this.bufferLength;if(n.setUint8(this.bufferLength++,128),r%64>=56){for(var o=this.bufferLength;o<64;o++)n.setUint8(o,0);this.hashBuffer(),this.bufferLength=0}for(o=this.bufferLength;o<56;o++)n.setUint8(o,0);n.setUint32(56,Math.floor(t/4294967296),!0),n.setUint32(60,t),this.hashBuffer(),this.finished=!0}var s=new i(32);for(o=0;o<8;o++)s[4*o]=this.state[o]>>>24&255,s[4*o+1]=this.state[o]>>>16&255,s[4*o+2]=this.state[o]>>>8&255,s[4*o+3]=this.state[o]>>>0&255;return e?s.toString(e):s},r.prototype.hashBuffer=function(){for(var e=this.buffer,t=this.state,n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],c=t[5],u=t[6],l=t[7],p=0;p<64;p++){if(p<16)this.temp[p]=(255&e[4*p])<<24|(255&e[4*p+1])<<16|(255&e[4*p+2])<<8|255&e[4*p+3];else{var d=this.temp[p-2],h=(d>>>17|d<<15)^(d>>>19|d<<13)^d>>>10,f=((d=this.temp[p-15])>>>7|d<<25)^(d>>>18|d<<14)^d>>>3;this.temp[p]=(h+this.temp[p-7]|0)+(f+this.temp[p-16]|0)}var m=(((a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7))+(a&c^~a&u)|0)+(l+(s[p]+this.temp[p]|0)|0)|0,g=((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+(n&r^n&i^r&i)|0;l=u,u=c,c=a,a=o+m|0,o=i,i=r,r=n,n=m+g|0}t[0]+=n,t[1]+=r,t[2]+=i,t[3]+=o,t[4]+=a,t[5]+=c,t[6]+=u,t[7]+=l}},{"./browserHashUtils":12,"buffer/":82}],17:[function(e,t,n){(function(n){(function(){var n=e("./util");n.crypto.lib=e("./browserCryptoLib"),n.Buffer=e("buffer/").Buffer,n.url=e("url/"),n.querystring=e("querystring/"),n.realClock=e("./realclock/browserClock"),n.environment="js",n.createEventStream=e("./event-stream/buffered-create-event-stream").createEventStream,n.isBrowser=function(){return!0},n.isNode=function(){return!1};var r=e("./core");if(t.exports=r,e("./credentials"),e("./credentials/credential_provider_chain"),e("./credentials/temporary_credentials"),e("./credentials/chainable_temporary_credentials"),e("./credentials/web_identity_credentials"),e("./credentials/cognito_identity_credentials"),e("./credentials/saml_credentials"),r.XML.Parser=e("./xml/browser_parser"),e("./http/xhr"),void 0===i)var i={browser:!0}}).call(this)}).call(this,e("_process"))},{"./browserCryptoLib":11,"./core":20,"./credentials":21,"./credentials/chainable_temporary_credentials":22,"./credentials/cognito_identity_credentials":23,"./credentials/credential_provider_chain":24,"./credentials/saml_credentials":25,"./credentials/temporary_credentials":26,"./credentials/web_identity_credentials":27,"./event-stream/buffered-create-event-stream":29,"./http/xhr":37,"./realclock/browserClock":54,"./util":73,"./xml/browser_parser":74,_process:87,"buffer/":82,"querystring/":94,"url/":96}],18:[function(e,t,n){var r,i=e("./core");e("./credentials"),e("./credentials/credential_provider_chain"),i.Config=i.util.inherit({constructor:function(e){void 0===e&&(e={}),e=this.extractCredentials(e),i.util.each.call(this,this.keys,(function(t,n){this.set(t,e[t],n)}))},getCredentials:function(e){function t(t){e(t,t?null:r.credentials)}function n(e,t){return new i.util.error(t||new Error,{code:"CredentialsError",message:e,name:"CredentialsError"})}var r=this;r.credentials?"function"==typeof r.credentials.get?r.credentials.get((function(e){e&&(e=n("Could not load credentials from "+r.credentials.constructor.name,e)),t(e)})):function(){var e=null;r.credentials.accessKeyId&&r.credentials.secretAccessKey||(e=n("Missing credentials")),t(e)}():r.credentialProvider?r.credentialProvider.resolve((function(e,i){e&&(e=n("Could not load credentials from any providers",e)),r.credentials=i,t(e)})):t(n("No credentials to load"))},update:function(e,t){t=t||!1,e=this.extractCredentials(e),i.util.each.call(this,e,(function(e,n){(t||Object.prototype.hasOwnProperty.call(this.keys,e)||i.Service.hasService(e))&&this.set(e,n)}))},loadFromPath:function(e){this.clear();var t=JSON.parse(i.util.readFileSync(e)),n=new i.FileSystemCredentials(e),r=new i.CredentialProviderChain;return r.providers.unshift(n),r.resolve((function(e,n){if(e)throw e;t.credentials=n})),this.constructor(t),this},clear:function(){i.util.each.call(this,this.keys,(function(e){delete this[e]})),this.set("credentials",void 0),this.set("credentialProvider",void 0)},set:function(e,t,n){void 0===t?(void 0===n&&(n=this.keys[e]),this[e]="function"==typeof n?n.call(this):n):"httpOptions"===e&&this[e]?this[e]=i.util.merge(this[e],t):this[e]=t},keys:{credentials:null,credentialProvider:null,region:null,logger:null,apiVersions:{},apiVersion:null,endpoint:void 0,httpOptions:{timeout:12e4},maxRetries:void 0,maxRedirects:10,paramValidation:!0,sslEnabled:!0,s3ForcePathStyle:!1,s3BucketEndpoint:!1,s3DisableBodySigning:!0,s3UsEast1RegionalEndpoint:"legacy",s3UseArnRegion:void 0,computeChecksums:!0,convertResponseTypes:!0,correctClockSkew:!1,customUserAgent:null,dynamoDbCrc32:!0,systemClockOffset:0,signatureVersion:null,signatureCache:!0,retryDelayOptions:{},useAccelerateEndpoint:!1,clientSideMonitoring:!1,endpointDiscoveryEnabled:void 0,endpointCacheSize:1e3,hostPrefixEnabled:!0,stsRegionalEndpoints:"legacy"},extractCredentials:function(e){return e.accessKeyId&&e.secretAccessKey&&((e=i.util.copy(e)).credentials=new i.Credentials(e)),e},setPromisesDependency:function(e){r=e,null===e&&"function"==typeof Promise&&(r=Promise);var t=[i.Request,i.Credentials,i.CredentialProviderChain];i.S3&&(t.push(i.S3),i.S3.ManagedUpload&&t.push(i.S3.ManagedUpload)),i.util.addPromises(t,r)},getPromisesDependency:function(){return r}}),i.config=new i.Config},{"./core":20,"./credentials":21,"./credentials/credential_provider_chain":24}],19:[function(e,t,n){(function(n){(function(){function r(e,t){if("string"==typeof e){if(["legacy","regional"].indexOf(e.toLowerCase())>=0)return e.toLowerCase();throw i.util.error(new Error,t)}}var i=e("./core");t.exports=function(e,t){var o;if((e=e||{})[t.clientConfig]&&(o=r(e[t.clientConfig],{code:"InvalidConfiguration",message:'invalid "'+t.clientConfig+'" configuration. Expect "legacy" or "regional". Got "'+e[t.clientConfig]+'".'})))return o;if(!i.util.isNode())return o;if(Object.prototype.hasOwnProperty.call(n.env,t.env)&&(o=r(n.env[t.env],{code:"InvalidEnvironmentalVariable",message:"invalid "+t.env+' environmental variable. Expect "legacy" or "regional". Got "'+n.env[t.env]+'".'})))return o;var s={};try{s=i.util.getProfilesFromSharedConfig(i.util.iniLoader)[n.env.AWS_PROFILE||i.util.defaultProfile]}catch(e){}return s&&Object.prototype.hasOwnProperty.call(s,t.sharedConfig)&&(o=r(s[t.sharedConfig],{code:"InvalidConfiguration",message:"invalid "+t.sharedConfig+' profile config. Expect "legacy" or "regional". Got "'+s[t.sharedConfig]+'".'})),o}}).call(this)}).call(this,e("_process"))},{"./core":20,_process:87}],20:[function(e,t,n){var r={util:e("./util")};({}).toString(),t.exports=r,r.util.update(r,{VERSION:"2.772.0",Signers:{},Protocol:{Json:e("./protocol/json"),Query:e("./protocol/query"),Rest:e("./protocol/rest"),RestJson:e("./protocol/rest_json"),RestXml:e("./protocol/rest_xml")},XML:{Builder:e("./xml/builder"),Parser:null},JSON:{Builder:e("./json/builder"),Parser:e("./json/parser")},Model:{Api:e("./model/api"),Operation:e("./model/operation"),Shape:e("./model/shape"),Paginator:e("./model/paginator"),ResourceWaiter:e("./model/resource_waiter")},apiLoader:e("./api_loader"),EndpointCache:e("../vendor/endpoint-cache").EndpointCache}),e("./sequential_executor"),e("./service"),e("./config"),e("./http"),e("./event_listeners"),e("./request"),e("./response"),e("./resource_waiter"),e("./signers/request_signer"),e("./param_validator"),r.events=new r.SequentialExecutor,r.util.memoizedProperty(r,"endpointCache",(function(){return new r.EndpointCache(r.config.endpointCacheSize)}),!0)},{"../vendor/endpoint-cache":105,"./api_loader":10,"./config":18,"./event_listeners":35,"./http":36,"./json/builder":38,"./json/parser":39,"./model/api":40,"./model/operation":42,"./model/paginator":43,"./model/resource_waiter":44,"./model/shape":45,"./param_validator":46,"./protocol/json":48,"./protocol/query":49,"./protocol/rest":50,"./protocol/rest_json":51,"./protocol/rest_xml":52,"./request":57,"./resource_waiter":58,"./response":59,"./sequential_executor":60,"./service":61,"./signers/request_signer":65,"./util":73,"./xml/builder":75}],21:[function(e,t,n){var r=e("./core");r.Credentials=r.util.inherit({constructor:function(){if(r.util.hideProperties(this,["secretAccessKey"]),this.expired=!1,this.expireTime=null,this.refreshCallbacks=[],1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0].credentials||arguments[0];this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,this.sessionToken=e.sessionToken}else this.accessKeyId=arguments[0],this.secretAccessKey=arguments[1],this.sessionToken=arguments[2]},expiryWindow:15,needsRefresh:function(){var e=r.util.date.getDate().getTime(),t=new Date(e+1e3*this.expiryWindow);return!!(this.expireTime&&t>this.expireTime)||this.expired||!this.accessKeyId||!this.secretAccessKey},get:function(e){var t=this;this.needsRefresh()?this.refresh((function(n){n||(t.expired=!1),e&&e(n)})):e&&e()},refresh:function(e){this.expired=!1,e()},coalesceRefresh:function(e,t){var n=this;1===n.refreshCallbacks.push(e)&&n.load((function(e){r.util.arrayEach(n.refreshCallbacks,(function(n){t?n(e):r.util.defer((function(){n(e)}))})),n.refreshCallbacks.length=0}))},load:function(e){e()}}),r.Credentials.addPromisesToClass=function(e){this.prototype.getPromise=r.util.promisifyMethod("get",e),this.prototype.refreshPromise=r.util.promisifyMethod("refresh",e)},r.Credentials.deletePromisesFromClass=function(){delete this.prototype.getPromise,delete this.prototype.refreshPromise},r.util.addPromises(r.Credentials)},{"./core":20}],22:[function(e,t,n){var r=e("../core"),i=e("../../clients/sts");r.ChainableTemporaryCredentials=r.util.inherit(r.Credentials,{constructor:function(e){r.Credentials.call(this),e=e||{},this.errorCode="ChainableTemporaryCredentialsProviderFailure",this.expired=!0,this.tokenCodeFn=null;var t=r.util.copy(e.params)||{};if(t.RoleArn&&(t.RoleSessionName=t.RoleSessionName||"temporary-credentials"),t.SerialNumber){if(!e.tokenCodeFn||"function"!=typeof e.tokenCodeFn)throw new r.util.error(new Error("tokenCodeFn must be a function when params.SerialNumber is given"),{code:this.errorCode});this.tokenCodeFn=e.tokenCodeFn}var n=r.util.merge({params:t,credentials:e.masterCredentials||r.config.credentials},e.stsConfig||{});this.service=new i(n)},refresh:function(e){this.coalesceRefresh(e||r.util.fn.callback)},load:function(e){var t=this,n=t.service.config.params.RoleArn?"assumeRole":"getSessionToken";this.getTokenCode((function(r,i){var o={};r?e(r):(i&&(o.TokenCode=i),t.service[n](o,(function(n,r){n||t.service.credentialsFrom(r,t),e(n)})))}))},getTokenCode:function(e){var t=this;this.tokenCodeFn?this.tokenCodeFn(this.service.config.params.SerialNumber,(function(n,i){if(n){var o=n;return n instanceof Error&&(o=n.message),void e(r.util.error(new Error("Error fetching MFA token: "+o),{code:t.errorCode}))}e(null,i)})):e(null)}})},{"../../clients/sts":9,"../core":20}],23:[function(e,t,n){var r=e("../core"),i=e("../../clients/cognitoidentity"),o=e("../../clients/sts");r.CognitoIdentityCredentials=r.util.inherit(r.Credentials,{localStorageKey:{id:"aws.cognito.identity-id.",providers:"aws.cognito.identity-providers."},constructor:function(e,t){r.Credentials.call(this),this.expired=!0,this.params=e,this.data=null,this._identityId=null,this._clientConfig=r.util.copy(t||{}),this.loadCachedId();var n=this;Object.defineProperty(this,"identityId",{get:function(){return n.loadCachedId(),n._identityId||n.params.IdentityId},set:function(e){n._identityId=e}})},refresh:function(e){this.coalesceRefresh(e||r.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.data=null,t._identityId=null,t.getId((function(n){n?(t.clearIdOnNotAuthorized(n),e(n)):t.params.RoleArn?t.getCredentialsFromSTS(e):t.getCredentialsForIdentity(e)}))},clearCachedId:function(){this._identityId=null,delete this.params.IdentityId;var e=this.params.IdentityPoolId,t=this.params.LoginId||"";delete this.storage[this.localStorageKey.id+e+t],delete this.storage[this.localStorageKey.providers+e+t]},clearIdOnNotAuthorized:function(e){"NotAuthorizedException"==e.code&&this.clearCachedId()},getId:function(e){var t=this;if("string"==typeof t.params.IdentityId)return e(null,t.params.IdentityId);t.cognito.getId((function(n,r){!n&&r.IdentityId?(t.params.IdentityId=r.IdentityId,e(null,r.IdentityId)):e(n)}))},loadCredentials:function(e,t){e&&t&&(t.expired=!1,t.accessKeyId=e.Credentials.AccessKeyId,t.secretAccessKey=e.Credentials.SecretKey,t.sessionToken=e.Credentials.SessionToken,t.expireTime=e.Credentials.Expiration)},getCredentialsForIdentity:function(e){var t=this;t.cognito.getCredentialsForIdentity((function(n,r){n?t.clearIdOnNotAuthorized(n):(t.cacheId(r),t.data=r,t.loadCredentials(t.data,t)),e(n)}))},getCredentialsFromSTS:function(e){var t=this;t.cognito.getOpenIdToken((function(n,r){n?(t.clearIdOnNotAuthorized(n),e(n)):(t.cacheId(r),t.params.WebIdentityToken=r.Token,t.webIdentityCredentials.refresh((function(n){n||(t.data=t.webIdentityCredentials.data,t.sts.credentialsFrom(t.data,t)),e(n)})))}))},loadCachedId:function(){var e=this;if(r.util.isBrowser()&&!e.params.IdentityId){var t=e.getStorage("id");if(t&&e.params.Logins){var n=Object.keys(e.params.Logins);0!==(e.getStorage("providers")||"").split(",").filter((function(e){return-1!==n.indexOf(e)})).length&&(e.params.IdentityId=t)}else t&&(e.params.IdentityId=t)}},createClients:function(){var e=this._clientConfig;if(this.webIdentityCredentials=this.webIdentityCredentials||new r.WebIdentityCredentials(this.params,e),!this.cognito){var t=r.util.merge({},e);t.params=this.params,this.cognito=new i(t)}this.sts=this.sts||new o(e)},cacheId:function(e){this._identityId=e.IdentityId,this.params.IdentityId=this._identityId,r.util.isBrowser()&&(this.setStorage("id",e.IdentityId),this.params.Logins&&this.setStorage("providers",Object.keys(this.params.Logins).join(",")))},getStorage:function(e){return this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||"")]},setStorage:function(e,t){try{this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||"")]=t}catch(e){}},storage:function(){try{var e=r.util.isBrowser()&&null!==window.localStorage&&"object"==typeof window.localStorage?window.localStorage:{};return e["aws.test-storage"]="foobar",delete e["aws.test-storage"],e}catch(e){return{}}}()})},{"../../clients/cognitoidentity":8,"../../clients/sts":9,"../core":20}],24:[function(e,t,n){var r=e("../core");r.CredentialProviderChain=r.util.inherit(r.Credentials,{constructor:function(e){this.providers=e||r.CredentialProviderChain.defaultProviders.slice(0),this.resolveCallbacks=[]},resolve:function(e){var t=this;if(0===t.providers.length)return e(new Error("No providers")),t;if(1===t.resolveCallbacks.push(e)){var n=0,i=t.providers.slice(0);!function e(o,s){if(!o&&s||n===i.length)return r.util.arrayEach(t.resolveCallbacks,(function(e){e(o,s)})),void(t.resolveCallbacks.length=0);var a=i[n++];(s="function"==typeof a?a.call():a).get?s.get((function(t){e(t,t?null:s)})):e(null,s)}()}return t}}),r.CredentialProviderChain.defaultProviders=[],r.CredentialProviderChain.addPromisesToClass=function(e){this.prototype.resolvePromise=r.util.promisifyMethod("resolve",e)},r.CredentialProviderChain.deletePromisesFromClass=function(){delete this.prototype.resolvePromise},r.util.addPromises(r.CredentialProviderChain)},{"../core":20}],25:[function(e,t,n){var r=e("../core"),i=e("../../clients/sts");r.SAMLCredentials=r.util.inherit(r.Credentials,{constructor:function(e){r.Credentials.call(this),this.expired=!0,this.params=e},refresh:function(e){this.coalesceRefresh(e||r.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.service.assumeRoleWithSAML((function(n,r){n||t.service.credentialsFrom(r,t),e(n)}))},createClients:function(){this.service=this.service||new i({params:this.params})}})},{"../../clients/sts":9,"../core":20}],26:[function(e,t,n){var r=e("../core"),i=e("../../clients/sts");r.TemporaryCredentials=r.util.inherit(r.Credentials,{constructor:function(e,t){r.Credentials.call(this),this.loadMasterCredentials(t),this.expired=!0,this.params=e||{},this.params.RoleArn&&(this.params.RoleSessionName=this.params.RoleSessionName||"temporary-credentials")},refresh:function(e){this.coalesceRefresh(e||r.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.masterCredentials.get((function(){t.service.config.credentials=t.masterCredentials,(t.params.RoleArn?t.service.assumeRole:t.service.getSessionToken).call(t.service,(function(n,r){n||t.service.credentialsFrom(r,t),e(n)}))}))},loadMasterCredentials:function(e){for(this.masterCredentials=e||r.config.credentials;this.masterCredentials.masterCredentials;)this.masterCredentials=this.masterCredentials.masterCredentials;"function"!=typeof this.masterCredentials.get&&(this.masterCredentials=new r.Credentials(this.masterCredentials))},createClients:function(){this.service=this.service||new i({params:this.params})}})},{"../../clients/sts":9,"../core":20}],27:[function(e,t,n){var r=e("../core"),i=e("../../clients/sts");r.WebIdentityCredentials=r.util.inherit(r.Credentials,{constructor:function(e,t){r.Credentials.call(this),this.expired=!0,this.params=e,this.params.RoleSessionName=this.params.RoleSessionName||"web-identity",this.data=null,this._clientConfig=r.util.copy(t||{})},refresh:function(e){this.coalesceRefresh(e||r.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.service.assumeRoleWithWebIdentity((function(n,r){t.data=null,n||(t.data=r,t.service.credentialsFrom(r,t)),e(n)}))},createClients:function(){if(!this.service){var e=r.util.merge({},this._clientConfig);e.params=this.params,this.service=new i(e)}}})},{"../../clients/sts":9,"../core":20}],28:[function(e,t,n){(function(n){(function(){function r(e){var t=e.service,n=t.api||{},r={};return t.config.region&&(r.region=t.config.region),n.serviceId&&(r.serviceId=n.serviceId),t.config.credentials.accessKeyId&&(r.accessKeyId=t.config.credentials.accessKeyId),r}function i(e,t,n){n&&null!=t&&"structure"===n.type&&n.required&&n.required.length>0&&h.arrayEach(n.required,(function(r){var o=n.members[r];if(!0===o.endpointDiscoveryId){var s=o.isLocationName?o.name:r;e[s]=String(t[r])}else i(e,t[r],o)}))}function o(e,t){var n={};return i(n,e.params,t),n}function s(e){var t=e.service,n=t.api,i=n.operations?n.operations[e.operation]:void 0,s=o(e,i?i.input:void 0),a=r(e);Object.keys(s).length>0&&(a=h.update(a,s),i&&(a.operation=i.name));var u=d.endpointCache.get(a);if(!u||1!==u.length||""!==u[0].Address)if(u&&u.length>0)e.httpRequest.updateEndpoint(u[0].Address);else{var l=t.makeRequest(n.endpointOperation,{Operation:i.name,Identifiers:s});c(l),l.removeListener("validate",d.EventListeners.Core.VALIDATE_PARAMETERS),l.removeListener("retry",d.EventListeners.Core.RETRY_CHECK),d.endpointCache.put(a,[{Address:"",CachePeriodInMinutes:1}]),l.send((function(e,t){t&&t.Endpoints?d.endpointCache.put(a,t.Endpoints):e&&d.endpointCache.put(a,[{Address:"",CachePeriodInMinutes:1}])}))}}function a(e,t){var n=e.service,i=n.api,s=i.operations?i.operations[e.operation]:void 0,a=s?s.input:void 0,u=o(e,a),l=r(e);Object.keys(u).length>0&&(l=h.update(l,u),s&&(l.operation=s.name));var p=d.EndpointCache.getKeyString(l),f=d.endpointCache.get(p);if(f&&1===f.length&&""===f[0].Address)return m[p]||(m[p]=[]),void m[p].push({request:e,callback:t});if(f&&f.length>0)e.httpRequest.updateEndpoint(f[0].Address),t();else{var g=n.makeRequest(i.endpointOperation,{Operation:s.name,Identifiers:u});g.removeListener("validate",d.EventListeners.Core.VALIDATE_PARAMETERS),c(g),d.endpointCache.put(p,[{Address:"",CachePeriodInMinutes:60}]),g.send((function(n,r){if(n){if(e.response.error=h.error(n,{retryable:!1}),d.endpointCache.remove(l),m[p]){var i=m[p];h.arrayEach(i,(function(e){e.request.response.error=h.error(n,{retryable:!1}),e.callback()})),delete m[p]}}else r&&(d.endpointCache.put(p,r.Endpoints),e.httpRequest.updateEndpoint(r.Endpoints[0].Address),m[p])&&(i=m[p],h.arrayEach(i,(function(e){e.request.httpRequest.updateEndpoint(r.Endpoints[0].Address),e.callback()})),delete m[p]);t()}))}}function c(e){var t=e.service.api.apiVersion;t&&!e.httpRequest.headers["x-amz-api-version"]&&(e.httpRequest.headers["x-amz-api-version"]=t)}function u(e){var t=e.error,n=e.httpResponse;if(t&&("InvalidEndpointException"===t.code||421===n.statusCode)){var i=e.request,s=i.service.api.operations||{},a=o(i,s[i.operation]?s[i.operation].input:void 0),c=r(i);Object.keys(a).length>0&&(c=h.update(c,a),s[i.operation]&&(c.operation=s[i.operation].name)),d.endpointCache.remove(c)}}function l(e){return["false","0"].indexOf(e)>=0}function p(e){var t=e.service||{};if(void 0!==t.config.endpointDiscoveryEnabled)return t.config.endpointDiscoveryEnabled;if(!h.isBrowser()){for(var r=0;r-1&&0==++e[t];t--);}var o=e("../core").util,s=o.buffer.toBuffer;r.fromNumber=function(e){if(e>0x8000000000000000||e<-0x8000000000000000)throw new Error(e+" is too large (or, if negative, too small) to represent as an Int64");for(var t=new Uint8Array(8),n=7,o=Math.abs(Math.round(e));n>-1&&o>0;n--,o/=256)t[n]=o;return e<0&&i(t),new r(t)},r.prototype.valueOf=function(){var e=this.bytes.slice(0),t=128&e[0];return t&&i(e),parseInt(e.toString("hex"),16)*(t?-1:1)},r.prototype.toString=function(){return String(this.valueOf())},t.exports={Int64:r}},{"../core":20}],32:[function(e,t,n){var r=e("./parse-message").parseMessage;t.exports={parseEvent:function(e,t,n){var i=r(t),o=i.headers[":message-type"];if(o){if("error"===o.value)throw function(e){var t=e.headers[":error-code"],n=e.headers[":error-message"],r=new Error(n.value||n);return r.code=r.name=t.value||t,r}(i);if("event"!==o.value)return}var s=i.headers[":event-type"],a=n.members[s.value];if(a){var c={},u=a.eventPayloadMemberName;if(u){var l=a.members[u];"binary"===l.type?c[u]=i.body:c[u]=e.parse(i.body.toString(),l)}for(var p=a.eventHeaderMemberNames,d=0;d=0)return e.httpRequest.headers["X-Amz-Content-Sha256"]="UNSIGNED-PAYLOAD",t();r.util.computeSha256(o,(function(n,r){n?t(n):(e.httpRequest.headers["X-Amz-Content-Sha256"]=r,t())}))}else t()}})),e("SET_CONTENT_LENGTH","afterBuild",(function(e){var t=function(e){if(!e.service.api.operations)return"";var t=e.service.api.operations[e.operation];return t?t.authtype:""}(e),n=r.util.getRequestPayloadShape(e);if(void 0===e.httpRequest.headers["Content-Length"])try{var i=r.util.string.byteLength(e.httpRequest.body);e.httpRequest.headers["Content-Length"]=i}catch(r){if(n&&n.isStreaming){if(n.requiresLength)throw r;if(t.indexOf("unsigned-body")>=0)return void(e.httpRequest.headers["Transfer-Encoding"]="chunked");throw r}throw r}})),e("SET_HTTP_HOST","afterBuild",(function(e){e.httpRequest.headers.Host=e.httpRequest.endpoint.host})),e("RESTART","restart",(function(){var e=this.response.error;e&&e.retryable&&(this.httpRequest=new r.HttpRequest(this.service.endpoint,this.service.region),this.response.retryCount=600?this.emit("sign",[this],(function(e){e?t(e):o()})):o()})),e("HTTP_HEADERS","httpHeaders",(function(e,t,n,i){n.httpResponse.statusCode=e,n.httpResponse.statusMessage=i,n.httpResponse.headers=t,n.httpResponse.body=r.util.buffer.toBuffer(""),n.httpResponse.buffers=[],n.httpResponse.numBytes=0;var o=t.date||t.Date,s=n.request.service;if(o){var a=Date.parse(o);s.config.correctClockSkew&&s.isClockSkewed(a)&&s.applyClockOffset(a)}})),e("HTTP_DATA","httpData",(function(e,t){if(e){if(r.util.isNode()){t.httpResponse.numBytes+=e.length;var n=t.httpResponse.headers["content-length"],i={loaded:t.httpResponse.numBytes,total:n};t.request.emit("httpDownloadProgress",[i,t])}t.httpResponse.buffers.push(r.util.buffer.toBuffer(e))}})),e("HTTP_DONE","httpDone",(function(e){if(e.httpResponse.buffers&&e.httpResponse.buffers.length>0){var t=r.util.buffer.concat(e.httpResponse.buffers);e.httpResponse.body=t}delete e.httpResponse.numBytes,delete e.httpResponse.buffers})),e("FINALIZE_ERROR","retry",(function(e){e.httpResponse.statusCode&&(e.error.statusCode=e.httpResponse.statusCode,void 0===e.error.retryable&&(e.error.retryable=this.service.retryableError(e.error,this)))})),e("INVALIDATE_CREDENTIALS","retry",(function(e){if(e.error)switch(e.error.code){case"RequestExpired":case"ExpiredTokenException":case"ExpiredToken":e.error.retryable=!0,e.request.service.config.credentials.expired=!0}})),e("EXPIRED_SIGNATURE","retry",(function(e){var t=e.error;t&&"string"==typeof t.code&&"string"==typeof t.message&&t.code.match(/Signature/)&&t.message.match(/expired/)&&(e.error.retryable=!0)})),e("CLOCK_SKEWED","retry",(function(e){e.error&&this.service.clockSkewError(e.error)&&this.service.config.correctClockSkew&&(e.error.retryable=!0)})),e("REDIRECT","retry",(function(e){e.error&&e.error.statusCode>=300&&e.error.statusCode<400&&e.httpResponse.headers.location&&(this.httpRequest.endpoint=new r.Endpoint(e.httpResponse.headers.location),this.httpRequest.headers.Host=this.httpRequest.endpoint.host,e.error.redirect=!0,e.error.retryable=!0)})),e("RETRY_CHECK","retry",(function(e){e.error&&(e.error.redirect&&e.redirectCount=0?(e.error=null,setTimeout(t,n)):t()}))})),CorePost:(new i).addNamedListeners((function(e){e("EXTRACT_REQUEST_ID","extractData",r.util.extractRequestId),e("EXTRACT_REQUEST_ID","extractError",r.util.extractRequestId),e("ENOTFOUND_ERROR","httpError",(function(e){if("NetworkingError"===e.code&&function(e){return"ENOTFOUND"===e.errno||"number"==typeof e.errno&&"function"==typeof r.util.getSystemErrorName&&["EAI_NONAME","EAI_NODATA"].indexOf(r.util.getSystemErrorName(e.errno)>=0)}(e)){var t="Inaccessible host: `"+e.hostname+"'. This service may not be available in the `"+e.region+"' region.";this.response.error=r.util.error(new Error(t),{code:"UnknownEndpoint",region:e.region,hostname:e.hostname,retryable:!0,originalError:e})}}))})),Logger:(new i).addNamedListeners((function(t){t("LOG_REQUEST","complete",(function(t){function n(e,t){if(!t)return t;if(e.isSensitive)return"***SensitiveInformation***";switch(e.type){case"structure":var i={};return r.util.each(t,(function(t,r){Object.prototype.hasOwnProperty.call(e.members,t)?i[t]=n(e.members[t],r):i[t]=r})),i;case"list":var o=[];return r.util.arrayEach(t,(function(t,r){o.push(n(e.member,t))})),o;case"map":var s={};return r.util.each(t,(function(t,r){s[t]=n(e.value,r)})),s;default:return t}}var i=t.request,o=i.service.config.logger;if(o){var s=function(){var s=(t.request.service.getSkewCorrectedDate().getTime()-i.startTime.getTime())/1e3,a=!!o.isTTY,c=t.httpResponse.statusCode,u=i.params;i.service.api.operations&&i.service.api.operations[i.operation]&&i.service.api.operations[i.operation].input&&(u=n(i.service.api.operations[i.operation].input,i.params));var l=e("util").inspect(u,!0,null),p="";return a&&(p+=""),p+="[AWS "+i.service.serviceIdentifier+" "+c,p+=" "+s.toString()+"s "+t.retryCount+" retries]",a&&(p+=""),p+=" "+r.util.string.lowerFirst(i.operation),p+="("+l+")",a&&(p+=""),p}();"function"==typeof o.log?o.log(s):"function"==typeof o.write&&o.write(s+"\n")}}))})),Json:(new i).addNamedListeners((function(t){var n=e("./protocol/json");t("BUILD","build",n.buildRequest),t("EXTRACT_DATA","extractData",n.extractData),t("EXTRACT_ERROR","extractError",n.extractError)})),Rest:(new i).addNamedListeners((function(t){var n=e("./protocol/rest");t("BUILD","build",n.buildRequest),t("EXTRACT_DATA","extractData",n.extractData),t("EXTRACT_ERROR","extractError",n.extractError)})),RestJson:(new i).addNamedListeners((function(t){var n=e("./protocol/rest_json");t("BUILD","build",n.buildRequest),t("EXTRACT_DATA","extractData",n.extractData),t("EXTRACT_ERROR","extractError",n.extractError)})),RestXml:(new i).addNamedListeners((function(t){var n=e("./protocol/rest_xml");t("BUILD","build",n.buildRequest),t("EXTRACT_DATA","extractData",n.extractData),t("EXTRACT_ERROR","extractError",n.extractError)})),Query:(new i).addNamedListeners((function(t){var n=e("./protocol/query");t("BUILD","build",n.buildRequest),t("EXTRACT_DATA","extractData",n.extractData),t("EXTRACT_ERROR","extractError",n.extractError)}))}},{"./core":20,"./discover_endpoint":28,"./protocol/json":48,"./protocol/query":49,"./protocol/rest":50,"./protocol/rest_json":51,"./protocol/rest_xml":52,"./sequential_executor":60,util:99}],36:[function(e,t,n){var r=e("./core"),i=r.util.inherit;r.Endpoint=i({constructor:function(e,t){if(r.util.hideProperties(this,["slashes","auth","hash","search","query"]),null==e)throw new Error("Invalid endpoint: "+e);if("string"!=typeof e)return r.util.copy(e);e.match(/^http/)||(e=((t&&void 0!==t.sslEnabled?t.sslEnabled:r.config.sslEnabled)?"https":"http")+"://"+e),r.util.update(this,r.util.urlParse(e)),this.port?this.port=parseInt(this.port,10):this.port="https:"===this.protocol?443:80}}),r.HttpRequest=i({constructor:function(e,t){e=new r.Endpoint(e),this.method="POST",this.path=e.path||"/",this.headers={},this.body="",this.endpoint=e,this.region=t,this._userAgent="",this.setUserAgent()},setUserAgent:function(){this._userAgent=this.headers[this.getUserAgentHeaderName()]=r.util.userAgent()},getUserAgentHeaderName:function(){return(r.util.isBrowser()?"X-Amz-":"")+"User-Agent"},appendToUserAgent:function(e){"string"==typeof e&&e&&(this._userAgent+=" "+e),this.headers[this.getUserAgentHeaderName()]=this._userAgent},getUserAgent:function(){return this._userAgent},pathname:function(){return this.path.split("?",1)[0]},search:function(){var e=this.path.split("?",2)[1];return e?(e=r.util.queryStringParse(e),r.util.queryParamsToString(e)):""},updateEndpoint:function(e){var t=new r.Endpoint(e);this.endpoint=t,this.path=t.path||"/",this.headers.Host&&(this.headers.Host=t.host)}}),r.HttpResponse=i({constructor:function(){this.statusCode=void 0,this.headers={},this.body=void 0,this.streaming=!1,this.stream=null},createUnbufferedStream:function(){return this.streaming=!0,this.stream}}),r.HttpClient=i({}),r.HttpClient.getInstance=function(){return void 0===this.singleton&&(this.singleton=new this),this.singleton}},{"./core":20}],37:[function(e,t,n){var r=e("../core"),i=e("events").EventEmitter;e("../http"),r.XHRClient=r.util.inherit({handleRequest:function(e,t,n,o){var s=this,a=e.endpoint,c=new i,u=a.protocol+"//"+a.hostname;80!==a.port&&443!==a.port&&(u+=":"+a.port),u+=e.path;var l=new XMLHttpRequest,p=!1;e.stream=l,l.addEventListener("readystatechange",(function(){try{if(0===l.status)return}catch(e){return}this.readyState>=this.HEADERS_RECEIVED&&!p&&(c.statusCode=l.status,c.headers=s.parseHeaders(l.getAllResponseHeaders()),c.emit("headers",c.statusCode,c.headers,l.statusText),p=!0),this.readyState===this.DONE&&s.finishRequest(l,c)}),!1),l.upload.addEventListener("progress",(function(e){c.emit("sendProgress",e)})),l.addEventListener("progress",(function(e){c.emit("receiveProgress",e)}),!1),l.addEventListener("timeout",(function(){o(r.util.error(new Error("Timeout"),{code:"TimeoutError"}))}),!1),l.addEventListener("error",(function(){o(r.util.error(new Error("Network Failure"),{code:"NetworkingError"}))}),!1),l.addEventListener("abort",(function(){o(r.util.error(new Error("Request aborted"),{code:"RequestAbortedError"}))}),!1),n(c),l.open(e.method,u,!1!==t.xhrAsync),r.util.each(e.headers,(function(e,t){"Content-Length"!==e&&"User-Agent"!==e&&"Host"!==e&&l.setRequestHeader(e,t)})),t.timeout&&!1!==t.xhrAsync&&(l.timeout=t.timeout),t.xhrWithCredentials&&(l.withCredentials=!0);try{l.responseType="arraybuffer"}catch(e){}try{e.body?l.send(e.body):l.send()}catch(t){if(!e.body||"object"!=typeof e.body.buffer)throw t;l.send(e.body.buffer)}return c},parseHeaders:function(e){var t={};return r.util.arrayEach(e.split(/\r?\n/),(function(e){var n=e.split(":",1)[0],r=e.substring(n.length+2);n.length>0&&(t[n.toLowerCase()]=r)})),t},finishRequest:function(e,t){var n;if("arraybuffer"===e.responseType&&e.response){var i=e.response;n=new r.util.Buffer(i.byteLength);for(var o=new Uint8Array(i),s=0;s-1?t||"":t,this.isJsonValue?JSON.parse(t):t&&"function"==typeof t.toString?t.toString():t},this.toWireFormat=function(e){return this.isJsonValue?JSON.stringify(e):e}}function p(){o.apply(this,arguments),this.toType=function(e){var t=m.base64.decode(e);if(this.isSensitive&&m.isNode()&&"function"==typeof m.Buffer.alloc){var n=m.Buffer.alloc(t.length,t);t.fill(0),t=n}return t},this.toWireFormat=m.base64.encode}function d(){p.apply(this,arguments)}function h(){o.apply(this,arguments),this.toType=function(e){return"boolean"==typeof e?e:null==e?null:"true"===e}}var f=e("./collection"),m=e("../util");o.normalizedTypes={character:"string",double:"float",long:"integer",short:"integer",biginteger:"integer",bigdecimal:"float",blob:"binary"},o.types={structure:a,list:c,map:u,boolean:h,timestamp:function(e){var t=this;if(o.apply(this,arguments),e.timestampFormat)r(this,"timestampFormat",e.timestampFormat);else if(t.isTimestampFormatSet&&this.timestampFormat)r(this,"timestampFormat",this.timestampFormat);else if("header"===this.location)r(this,"timestampFormat","rfc822");else if("querystring"===this.location)r(this,"timestampFormat","iso8601");else if(this.api)switch(this.api.protocol){case"json":case"rest-json":r(this,"timestampFormat","unixTimestamp");break;case"rest-xml":case"query":case"ec2":r(this,"timestampFormat","iso8601")}this.toType=function(e){return null==e?null:"function"==typeof e.toUTCString?e:"string"==typeof e||"number"==typeof e?m.date.parseTimestamp(e):null},this.toWireFormat=function(e){return m.date.format(e,t.timestampFormat)}},float:function(){o.apply(this,arguments),this.toType=function(e){return null==e?null:parseFloat(e)},this.toWireFormat=this.toType},integer:function(){o.apply(this,arguments),this.toType=function(e){return null==e?null:parseInt(e,10)},this.toWireFormat=this.toType},string:l,base64:d,binary:p},o.resolve=function(e,t){if(e.shape){var n=t.api.shapes[e.shape];if(!n)throw new Error("Cannot find shape reference: "+e.shape);return n}return null},o.create=function(e,t,n){if(e.isShape)return e;var r=o.resolve(e,t);if(r){var i=Object.keys(e);t.documentation||(i=i.filter((function(e){return!e.match(/documentation/)})));var s=function(){r.constructor.call(this,e,t,n)};return s.prototype=r,new s}e.type||(e.members?e.type="structure":e.member?e.type="list":e.key?e.type="map":e.type="string");var a=e.type;if(o.normalizedTypes[e.type]&&(e.type=o.normalizedTypes[e.type]),o.types[e.type])return new o.types[e.type](e,t,n);throw new Error("Unrecognized shape type: "+a)},o.shapes={StructureShape:a,ListShape:c,MapShape:u,StringShape:l,BooleanShape:h,Base64Shape:d},t.exports=o},{"../util":73,"./collection":41}],46:[function(e,t,n){var r=e("./core");r.ParamValidator=r.util.inherit({constructor:function(e){!0!==e&&void 0!==e||(e={min:!0}),this.validation=e},validate:function(e,t,n){if(this.errors=[],this.validateMember(e,t||{},n||"params"),this.errors.length>1){var i=this.errors.join("\n* ");throw i="There were "+this.errors.length+" validation errors:\n* "+i,r.util.error(new Error(i),{code:"MultipleValidationErrors",errors:this.errors})}if(1===this.errors.length)throw this.errors[0];return!0},fail:function(e,t){this.errors.push(r.util.error(new Error(t),{code:e}))},validateStructure:function(e,t,n){this.validateType(t,n,["object"],"structure");for(var r,i=0;e.required&&i= 1, but found "'+t+'" for '+n)},validatePattern:function(e,t,n){this.validation.pattern&&void 0!==e.pattern&&(new RegExp(e.pattern).test(t)||this.fail("PatternMatchError",'Provided value "'+t+'" does not match regex pattern /'+e.pattern+"/ for "+n))},validateRange:function(e,t,n,r){this.validation.min&&void 0!==e.min&&t= "+e.min+", but found "+t+" for "+n),this.validation.max&&void 0!==e.max&&t>e.max&&this.fail("MaxRangeError","Expected "+r+" <= "+e.max+", but found "+t+" for "+n)},validateEnum:function(e,t,n){this.validation.enum&&void 0!==e.enum&&-1===e.enum.indexOf(t)&&this.fail("EnumError","Found string value of "+t+", but expected "+e.enum.join("|")+" for "+n)},validateType:function(e,t,n,i){if(null==e)return!1;for(var o=!1,s=0;s63)throw r.error(new Error,{code:"ValidationError",message:"Hostname label length should be between 1 to 63 characters, inclusive."});if(!n.test(e))throw i.util.error(new Error,{code:"ValidationError",message:e+" is not hostname compatible."})}))}(e.httpRequest.endpoint.hostname)}return e}}},{"../core":20,"../util":73}],48:[function(e,t,n){var r=e("../util"),i=e("../json/builder"),o=e("../json/parser"),s=e("./helpers").populateHostPrefix;t.exports={buildRequest:function(e){var t=e.httpRequest,n=e.service.api,r=n.targetPrefix+"."+n.operations[e.operation].name,o=n.jsonVersion||"1.0",a=n.operations[e.operation].input,c=new i;1===o&&(o="1.0"),t.body=c.build(e.params||{},a),t.headers["Content-Type"]="application/x-amz-json-"+o,t.headers["X-Amz-Target"]=r,s(e)},extractError:function(e){var t={},n=e.httpResponse;if(t.code=n.headers["x-amzn-errortype"]||"UnknownError","string"==typeof t.code&&(t.code=t.code.split(":")[0]),n.body.length>0)try{var i=JSON.parse(n.body.toString()),o=i.__type||i.code||i.Code;o&&(t.code=o.split("#").pop()),"RequestEntityTooLarge"===t.code?t.message="Request body must be less than 1 MB":t.message=i.message||i.Message||null}catch(i){t.statusCode=n.statusCode,t.message=n.statusMessage}else t.statusCode=n.statusCode,t.message=n.statusCode.toString();e.error=r.error(new Error,t)},extractData:function(e){var t=e.httpResponse.body.toString()||"{}";if(!1===e.request.service.config.convertResponseTypes)e.data=JSON.parse(t);else{var n=e.request.service.api.operations[e.request.operation].output||{},r=new o;e.data=r.parse(t,n)}}}},{"../json/builder":38,"../json/parser":39,"../util":73,"./helpers":47}],49:[function(e,t,n){var r=e("../core"),i=e("../util"),o=e("../query/query_param_serializer"),s=e("../model/shape"),a=e("./helpers").populateHostPrefix;t.exports={buildRequest:function(e){var t=e.service.api.operations[e.operation],n=e.httpRequest;n.headers["Content-Type"]="application/x-www-form-urlencoded; charset=utf-8",n.params={Version:e.service.api.apiVersion,Action:t.name},(new o).serialize(e.params,t.input,(function(e,t){n.params[e]=t})),n.body=i.queryParamsToString(n.params),a(e)},extractError:function(e){var t,n=e.httpResponse.body.toString();if(n.match("=0?"&":"?";var c=[];i.arrayEach(Object.keys(s).sort(),(function(e){Array.isArray(s[e])||(s[e]=[s[e]]);for(var t=0;t0){var p=(t=new r.XML.Parser).parse(s.toString(),c);i.update(e.data,p)}}}},{"../core":20,"../util":73,"./rest":50}],53:[function(e,t,n){function r(){}function i(e){return e.isQueryName||"ec2"!==e.api.protocol?e.name:e.name[0].toUpperCase()+e.name.substr(1)}function o(e,t,n,r){a.each(n.members,(function(n,o){var a=t[n];if(null!=a){var c=i(o);s(c=e?e+"."+c:c,a,o,r)}}))}function s(e,t,n,r){null!=t&&("structure"===n.type?o(e,t,n,r):"list"===n.type?function(e,t,n,r){var o=n.member||{};0!==t.length?a.arrayEach(t,(function(t,a){var c="."+(a+1);if("ec2"===n.api.protocol)c+="";else if(n.flattened){if(o.name){var u=e.split(".");u.pop(),u.push(i(o)),e=u.join(".")}}else c="."+(o.name?o.name:"member")+c;s(e+c,t,o,r)})):r.call(this,e,null)}(e,t,n,r):"map"===n.type?function(e,t,n,r){var i=1;a.each(t,(function(t,o){var a=(n.flattened?".":".entry.")+i+++".",c=a+(n.key.name||"key"),u=a+(n.value.name||"value");s(e+c,t,n.key,r),s(e+u,o,n.value,r)}))}(e,t,n,r):r(e,n.toWireFormat(t).toString()))}var a=e("../util");r.prototype.serialize=function(e,t,n){o("",e,t,n)},t.exports=r},{"../util":73}],54:[function(e,t,n){t.exports={now:function(){return"undefined"!=typeof performance&&"function"==typeof performance.now?performance.now():Date.now()}}},{}],55:[function(e,t,n){function r(e,t){i.each(t,(function(t,n){"globalEndpoint"!==t&&(void 0!==e.config[t]&&null!==e.config[t]||(e.config[t]=n))}))}var i=e("./util"),o=e("./region_config_data.json");t.exports={configureEndpoint:function(e){for(var t=function(e){var t=e.config.region,n=function(e){if(!e)return null;var t=e.split("-");return t.length<3?null:t.slice(0,t.length-2).join("-")+"-*"}(t),r=e.api.endpointPrefix;return[[t,r],[n,r],[t,"*"],[n,"*"],["*",r],["*","*"]].map((function(e){return e[0]&&e[1]?e.join("/"):null}))}(e),n=0;n=0){c=!0;var u=0}var l=function(){c&&u!==a?i.emit("error",n.util.error(new Error("Stream content length mismatch. Received "+u+" of "+a+" bytes."),{code:"StreamContentLengthMismatch"})):2===n.HttpClient.streamsApiVersion?i.end():i.emit("end")},p=s.httpResponse.createUnbufferedStream();if(2===n.HttpClient.streamsApiVersion)if(c){var d=new e.PassThrough;d._write=function(t){return t&&t.length&&(u+=t.length),e.PassThrough.prototype._write.apply(this,arguments)},d.on("end",l),i.on("error",(function(e){c=!1,p.unpipe(d),d.emit("end"),d.end()})),p.pipe(d).pipe(i,{end:!1})}else p.pipe(i);else c&&p.on("data",(function(e){e&&e.length&&(u+=e.length)})),p.on("data",(function(e){i.emit("data",e)})),p.on("end",l);p.on("error",(function(e){c=!1,i.emit("error",e)}))}})),i},emitEvent:function(e,t,r){"function"==typeof t&&(r=t,t=null),r||(r=function(){}),t||(t=this.eventParameters(e,this.response)),n.SequentialExecutor.prototype.emit.call(this,e,t,(function(e){e&&(this.response.error=e),r.call(this,e)}))},eventParameters:function(e){switch(e){case"restart":case"validate":case"sign":case"build":case"afterValidate":case"afterBuild":return[this];case"error":return[this.response.error,this.response];default:return[this.response]}},presign:function(e,t){return t||"function"!=typeof e||(t=e,e=null),(new n.Signers.Presign).sign(this.toGet(),e,t)},isPresigned:function(){return Object.prototype.hasOwnProperty.call(this.httpRequest.headers,"presigned-expires")},toUnauthenticated:function(){return this._unAuthenticated=!0,this.removeListener("validate",n.EventListeners.Core.VALIDATE_CREDENTIALS),this.removeListener("sign",n.EventListeners.Core.SIGN),this},toGet:function(){return"query"!==this.service.api.protocol&&"ec2"!==this.service.api.protocol||(this.removeListener("build",this.buildAsGet),this.addListener("build",this.buildAsGet)),this},buildAsGet:function(e){e.httpRequest.method="GET",e.httpRequest.path=e.service.endpoint.path+"?"+e.httpRequest.body,e.httpRequest.body="",delete e.httpRequest.headers["Content-Length"],delete e.httpRequest.headers["Content-Type"]},haltHandlersOnError:function(){this._haltHandlersOnError=!0}}),n.Request.addPromisesToClass=function(e){this.prototype.promise=function(){var t=this;return this.httpRequest.appendToUserAgent("promise"),new e((function(e,n){t.on("complete",(function(t){t.error?n(t.error):e(Object.defineProperty(t.data||{},"$response",{value:t}))})),t.runTo()}))}},n.Request.deletePromisesFromClass=function(){delete this.prototype.promise},n.util.addPromises(n.Request),n.util.mixin(n.Request,n.SequentialExecutor)}).call(this)}).call(this,e("_process"))},{"./core":20,"./state_machine":72,_process:87,jmespath:86}],58:[function(e,t,n){function r(e){var t=e.request._waiter,n=t.config.acceptors,r=!1,i="retry";n.forEach((function(n){if(!r){var o=t.matchers[n.matcher];o&&o(e,n.expected,n.argument)&&(r=!0,i=n.state)}})),!r&&e.error&&(i="failure"),"success"===i?t.setSuccess(e):t.setError(e,"retry"===i)}var i=e("./core"),o=i.util.inherit,s=e("jmespath");i.ResourceWaiter=o({constructor:function(e,t){this.service=e,this.state=t,this.loadWaiterConfig(this.state)},service:null,state:null,config:null,matchers:{path:function(e,t,n){try{var r=s.search(e.data,n)}catch(e){return!1}return s.strictDeepEqual(r,t)},pathAll:function(e,t,n){try{var r=s.search(e.data,n)}catch(e){return!1}Array.isArray(r)||(r=[r]);var i=r.length;if(!i)return!1;for(var o=0;o-1&&n.splice(i,1)}return this},removeAllListeners:function(e){return e?delete this._events[e]:this._events={},this},emit:function(e,t,n){n||(n=function(){});var r=this.listeners(e),i=r.length;return this.callListeners(r,t,n),i>0},callListeners:function(e,t,n,i){function o(i){if(i&&(a=r.util.error(a||new Error,i),s._haltHandlersOnError))return n.call(s,a);s.callListeners(e,t,n,a)}for(var s=this,a=i||null;e.length>0;){var c=e.shift();if(c._isAsync)return void c.apply(s,t.concat([o]));try{c.apply(s,t)}catch(e){a=r.util.error(a||new Error,e)}if(a&&s._haltHandlersOnError)return void n.call(s,a)}n.call(s,a)},addListeners:function(e){var t=this;return e._events&&(e=e._events),r.util.each(e,(function(e,n){"function"==typeof n&&(n=[n]),r.util.arrayEach(n,(function(n){t.on(e,n)}))})),t},addNamedListener:function(e,t,n,r){return this[e]=n,this.addListener(t,n,r),this},addNamedAsyncListener:function(e,t,n,r){return n._isAsync=!0,this.addNamedListener(e,t,n,r)},addNamedListeners:function(e){var t=this;return e((function(){t.addNamedListener.apply(t,arguments)}),(function(){t.addNamedAsyncListener.apply(t,arguments)})),this}}),r.SequentialExecutor.prototype.addListener=r.SequentialExecutor.prototype.on,t.exports=r.SequentialExecutor},{"./core":20}],61:[function(e,t,n){(function(n){(function(){var r=e("./core"),i=e("./model/api"),o=e("./region_config"),s=r.util.inherit,a=0;r.Service=s({constructor:function(e){if(!this.loadServiceClass)throw r.util.error(new Error,"Service must be constructed with `new' operator");var t=this.loadServiceClass(e||{});if(t){var n=r.util.copy(e),i=new t(e);return Object.defineProperty(i,"_originalConfig",{get:function(){return n},enumerable:!1,configurable:!0}),i._clientId=++a,i}this.initialize(e)},initialize:function(e){var t=r.config[this.serviceIdentifier];if(this.config=new r.Config(r.config),t&&this.config.update(t,!0),e&&this.config.update(e,!0),this.validateService(),this.config.endpoint||o.configureEndpoint(this),this.config.endpoint=this.endpointFromTemplate(this.config.endpoint),this.setEndpoint(this.config.endpoint),r.SequentialExecutor.call(this),r.Service.addDefaultMonitoringListeners(this),(this.config.clientSideMonitoring||r.Service._clientSideMonitoring)&&this.publisher){var i=this.publisher;this.addNamedListener("PUBLISH_API_CALL","apiCall",(function(e){n.nextTick((function(){i.eventHandler(e)}))})),this.addNamedListener("PUBLISH_API_ATTEMPT","apiCallAttempt",(function(e){n.nextTick((function(){i.eventHandler(e)}))}))}},validateService:function(){},loadServiceClass:function(e){var t=e;if(r.util.isEmpty(this.api)){if(t.apiConfig)return r.Service.defineServiceApi(this.constructor,t.apiConfig);if(this.constructor.services){(t=new r.Config(r.config)).update(e,!0);var n=t.apiVersions[this.constructor.serviceIdentifier];return n=n||t.apiVersion,this.getLatestServiceClass(n)}return null}return null},getLatestServiceClass:function(e){return e=this.getLatestServiceVersion(e),null===this.constructor.services[e]&&r.Service.defineServiceApi(this.constructor,e),this.constructor.services[e]},getLatestServiceVersion:function(e){if(!this.constructor.services||0===this.constructor.services.length)throw new Error("No services defined on "+this.constructor.serviceIdentifier);if(e?r.util.isType(e,Date)&&(e=r.util.date.iso8601(e).split("T")[0]):e="latest",Object.hasOwnProperty(this.constructor.services,e))return e;for(var t=Object.keys(this.constructor.services).sort(),n=null,i=t.length-1;i>=0;i--)if("*"!==t[i][t[i].length-1]&&(n=t[i]),t[i].substr(0,10)<=e)return n;throw new Error("Could not find "+this.constructor.serviceIdentifier+" API to satisfy version constraint `"+e+"'")},api:{},defaultRetryCount:3,customizeRequests:function(e){if(e){if("function"!=typeof e)throw new Error("Invalid callback type '"+typeof e+"' provided in customizeRequests");this.customRequestHandler=e}else this.customRequestHandler=null},makeRequest:function(e,t,n){if("function"==typeof t&&(n=t,t=null),t=t||{},this.config.params){var i=this.api.operations[e];i&&(t=r.util.copy(t),r.util.each(this.config.params,(function(e,n){i.input.members[e]&&(void 0!==t[e]&&null!==t[e]||(t[e]=n))})))}var o=new r.Request(this,e,t);return this.addAllRequestListeners(o),this.attachMonitoringEmitter(o),n&&o.send(n),o},makeUnauthenticatedRequest:function(e,t,n){"function"==typeof t&&(n=t,t={});var r=this.makeRequest(e,t).toUnauthenticated();return n?r.send(n):r},waitFor:function(e,t,n){return new r.ResourceWaiter(this,e).wait(t,n)},addAllRequestListeners:function(e){for(var t=[r.events,r.EventListeners.Core,this.serviceInterface(),r.EventListeners.CorePost],n=0;n299?(i.code&&(n.FinalAwsException=i.code),i.message&&(n.FinalAwsExceptionMessage=i.message)):((i.code||i.name)&&(n.FinalSdkException=i.code||i.name),i.message&&(n.FinalSdkExceptionMessage=i.message))}return n},apiAttemptEvent:function(e){var t=e.service.api.operations[e.operation],n={Type:"ApiCallAttempt",Api:t?t.name:e.operation,Version:1,Service:e.service.api.serviceId||e.service.api.endpointPrefix,Fqdn:e.httpRequest.endpoint.hostname,UserAgent:e.httpRequest.getUserAgent()},r=e.response;return r.httpResponse.statusCode&&(n.HttpStatusCode=r.httpResponse.statusCode),!e._unAuthenticated&&e.service.config.credentials&&e.service.config.credentials.accessKeyId&&(n.AccessKey=e.service.config.credentials.accessKeyId),r.httpResponse.headers?(e.httpRequest.headers["x-amz-security-token"]&&(n.SessionToken=e.httpRequest.headers["x-amz-security-token"]),r.httpResponse.headers["x-amzn-requestid"]&&(n.XAmznRequestId=r.httpResponse.headers["x-amzn-requestid"]),r.httpResponse.headers["x-amz-request-id"]&&(n.XAmzRequestId=r.httpResponse.headers["x-amz-request-id"]),r.httpResponse.headers["x-amz-id-2"]&&(n.XAmzId2=r.httpResponse.headers["x-amz-id-2"]),n):n},attemptFailEvent:function(e){var t=this.apiAttemptEvent(e),n=e.response,r=n.error;return n.httpResponse.statusCode>299?(r.code&&(t.AwsException=r.code),r.message&&(t.AwsExceptionMessage=r.message)):((r.code||r.name)&&(t.SdkException=r.code||r.name),r.message&&(t.SdkExceptionMessage=r.message)),t},attachMonitoringEmitter:function(e){var t,n,i,o,s,a,c=0,u=this;e.on("validate",(function(){o=r.util.realClock.now(),a=Date.now()}),!0),e.on("sign",(function(){n=r.util.realClock.now(),t=Date.now(),s=e.httpRequest.region,c++}),!0),e.on("validateResponse",(function(){i=Math.round(r.util.realClock.now()-n)})),e.addNamedListener("API_CALL_ATTEMPT","success",(function(){var n=u.apiAttemptEvent(e);n.Timestamp=t,n.AttemptLatency=i>=0?i:0,n.Region=s,u.emit("apiCallAttempt",[n])})),e.addNamedListener("API_CALL_ATTEMPT_RETRY","retry",(function(){var o=u.attemptFailEvent(e);o.Timestamp=t,i=i||Math.round(r.util.realClock.now()-n),o.AttemptLatency=i>=0?i:0,o.Region=s,u.emit("apiCallAttempt",[o])})),e.addNamedListener("API_CALL","complete",(function(){var t=u.apiCallEvent(e);if(t.AttemptCount=c,!(t.AttemptCount<=0)){t.Timestamp=a;var n=Math.round(r.util.realClock.now()-o);t.Latency=n>=0?n:0;var i=e.response;i.error&&i.error.retryable&&"number"==typeof i.retryCount&&"number"==typeof i.maxRetries&&i.retryCount>=i.maxRetries&&(t.MaxRetriesExceeded=1),u.emit("apiCall",[t])}}))},setupRequestListeners:function(e){},getSigningName:function(){return this.api.signingName||this.api.endpointPrefix},getSignerClass:function(e){var t,n=null,i="";return e&&(i=(n=(e.service.api.operations||{})[e.operation]||null)?n.authtype:""),t=this.config.signatureVersion?this.config.signatureVersion:"v4"===i||"v4-unsigned-body"===i?"v4":this.api.signatureVersion,r.Signers.RequestSigner.getVersion(t)},serviceInterface:function(){switch(this.api.protocol){case"ec2":case"query":return r.EventListeners.Query;case"json":return r.EventListeners.Json;case"rest-json":return r.EventListeners.RestJson;case"rest-xml":return r.EventListeners.RestXml}if(this.api.protocol)throw new Error("Invalid service `protocol' "+this.api.protocol+" in API config")},successfulResponse:function(e){return e.httpResponse.statusCode<300},numRetries:function(){return void 0!==this.config.maxRetries?this.config.maxRetries:this.defaultRetryCount},retryDelays:function(e,t){return r.util.calculateRetryDelay(e,this.config.retryDelayOptions,t)},retryableError:function(e){return!!this.timeoutError(e)||!!this.networkingError(e)||!!this.expiredCredentialsError(e)||!!this.throttledError(e)||e.statusCode>=500},networkingError:function(e){return"NetworkingError"===e.code},timeoutError:function(e){return"TimeoutError"===e.code},expiredCredentialsError:function(e){return"ExpiredTokenException"===e.code},clockSkewError:function(e){switch(e.code){case"RequestTimeTooSkewed":case"RequestExpired":case"InvalidSignatureException":case"SignatureDoesNotMatch":case"AuthFailure":case"RequestInTheFuture":return!0;default:return!1}},getSkewCorrectedDate:function(){return new Date(Date.now()+this.config.systemClockOffset)},applyClockOffset:function(e){e&&(this.config.systemClockOffset=e-Date.now())},isClockSkewed:function(e){if(e)return Math.abs(this.getSkewCorrectedDate().getTime()-e)>=3e5},throttledError:function(e){if(429===e.statusCode)return!0;switch(e.code){case"ProvisionedThroughputExceededException":case"Throttling":case"ThrottlingException":case"RequestLimitExceeded":case"RequestThrottled":case"RequestThrottledException":case"TooManyRequestsException":case"TransactionInProgressException":case"EC2ThrottledException":return!0;default:return!1}},endpointFromTemplate:function(e){if("string"!=typeof e)return e;return e.replace(/\{service\}/g,this.api.endpointPrefix).replace(/\{region\}/g,this.config.region).replace(/\{scheme\}/g,this.config.sslEnabled?"https":"http")},setEndpoint:function(e){this.endpoint=new r.Endpoint(e,this.config)},paginationConfig:function(e,t){var n=this.api.operations[e].paginator;if(!n){if(t){var i=new Error;throw r.util.error(i,"No pagination configuration for "+e)}return null}return n}}),r.util.update(r.Service,{defineMethods:function(e){r.util.each(e.prototype.api.operations,(function(t){e.prototype[t]||("none"===e.prototype.api.operations[t].authtype?e.prototype[t]=function(e,n){return this.makeUnauthenticatedRequest(t,e,n)}:e.prototype[t]=function(e,n){return this.makeRequest(t,e,n)})}))},defineService:function(e,t,n){r.Service._serviceMap[e]=!0,Array.isArray(t)||(n=t,t=[]);var i=s(r.Service,n||{});if("string"==typeof e){r.Service.addVersions(i,t);var o=i.serviceIdentifier||e;i.serviceIdentifier=o}else i.prototype.api=e,r.Service.defineMethods(i);if(r.SequentialExecutor.call(this.prototype),!this.prototype.publisher&&r.util.clientSideMonitoring){var a=r.util.clientSideMonitoring.Publisher,c=(0,r.util.clientSideMonitoring.configProvider)();this.prototype.publisher=new a(c),c.enabled&&(r.Service._clientSideMonitoring=!0)}return r.SequentialExecutor.call(i.prototype),r.Service.addDefaultMonitoringListeners(i.prototype),i},addVersions:function(e,t){Array.isArray(t)||(t=[t]),e.services=e.services||{};for(var n=0;n604800)throw o.util.error(new Error,{code:"InvalidExpiryTime",message:"Presigning does not support expiry time greater than a week with SigV4 signing.",retryable:!1});e.httpRequest.headers[a]=t}else{if(n!==o.Signers.S3)throw o.util.error(new Error,{message:"Presigning only supports S3 or SigV4 signing.",code:"UnsupportedSigner",retryable:!1});var r=e.service?e.service.getSkewCorrectedDate():o.util.date.getDate();e.httpRequest.headers[a]=parseInt(o.util.date.unixTimestamp(r)+t,10).toString()}}function i(e){var t=e.httpRequest.endpoint,n=o.util.urlParse(e.httpRequest.path),r={};n.search&&(r=o.util.queryStringParse(n.search.substr(1)));var i=e.httpRequest.headers.Authorization.split(" ");if("AWS"===i[0])i=i[1].split(":"),r.Signature=i.pop(),r.AWSAccessKeyId=i.join(":"),o.util.each(e.httpRequest.headers,(function(e,t){e===a&&(e="Expires"),0===e.indexOf("x-amz-meta-")&&(delete r[e],e=e.toLowerCase()),r[e]=t})),delete e.httpRequest.headers[a],delete r.Authorization,delete r.Host;else if("AWS4-HMAC-SHA256"===i[0]){i.shift();var s=i.join(" ").match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1];r["X-Amz-Signature"]=s,delete r.Expires}t.pathname=n.pathname,t.search=o.util.queryParamsToString(r)}var o=e("../core"),s=o.util.inherit,a="presigned-expires";o.Signers.Presign=s({sign:function(e,t,n){if(e.httpRequest.headers[a]=t||3600,e.on("build",r),e.on("sign",i),e.removeListener("afterBuild",o.EventListeners.Core.SET_CONTENT_LENGTH),e.removeListener("afterBuild",o.EventListeners.Core.COMPUTE_SHA256),e.emit("beforePresign",[e]),!n){if(e.build(),e.response.error)throw e.response.error;return o.util.urlFormat(e.httpRequest.endpoint)}e.build((function(){this.response.error?n(this.response.error):n(null,o.util.urlFormat(e.httpRequest.endpoint))}))}}),t.exports=o.Signers.Presign},{"../core":20}],65:[function(e,t,n){var r=e("../core"),i=r.util.inherit;r.Signers.RequestSigner=i({constructor:function(e){this.request=e},setServiceClientId:function(e){this.serviceClientId=e},getServiceClientId:function(){return this.serviceClientId}}),r.Signers.RequestSigner.getVersion=function(e){switch(e){case"v2":return r.Signers.V2;case"v3":return r.Signers.V3;case"s3v4":case"v4":return r.Signers.V4;case"s3":return r.Signers.S3;case"v3https":return r.Signers.V3Https}throw new Error("Unknown signing version "+e)},e("./v2"),e("./v3"),e("./v3https"),e("./v4"),e("./s3"),e("./presign")},{"../core":20,"./presign":64,"./s3":66,"./v2":67,"./v3":68,"./v3https":69,"./v4":70}],66:[function(e,t,n){var r=e("../core"),i=r.util.inherit;r.Signers.S3=i(r.Signers.RequestSigner,{subResources:{acl:1,accelerate:1,analytics:1,cors:1,lifecycle:1,delete:1,inventory:1,location:1,logging:1,metrics:1,notification:1,partNumber:1,policy:1,requestPayment:1,replication:1,restore:1,tagging:1,torrent:1,uploadId:1,uploads:1,versionId:1,versioning:1,versions:1,website:1},responseHeaders:{"response-content-type":1,"response-content-language":1,"response-expires":1,"response-cache-control":1,"response-content-disposition":1,"response-content-encoding":1},addAuthorization:function(e,t){this.request.headers["presigned-expires"]||(this.request.headers["X-Amz-Date"]=r.util.date.rfc822(t)),e.sessionToken&&(this.request.headers["x-amz-security-token"]=e.sessionToken);var n=this.sign(e.secretAccessKey,this.stringToSign()),i="AWS "+e.accessKeyId+":"+n;this.request.headers.Authorization=i},stringToSign:function(){var e=this.request,t=[];t.push(e.method),t.push(e.headers["Content-MD5"]||""),t.push(e.headers["Content-Type"]||""),t.push(e.headers["presigned-expires"]||"");var n=this.canonicalizedAmzHeaders();return n&&t.push(n),t.push(this.canonicalizedResource()),t.join("\n")},canonicalizedAmzHeaders:function(){var e=[];r.util.each(this.request.headers,(function(t){t.match(/^x-amz-/i)&&e.push(t)})),e.sort((function(e,t){return e.toLowerCase()=0?"&":"?";this.request.path+=o+r.util.queryParamsToString(i)},authorization:function(e,t){var n=[],r=this.credentialString(t);return n.push(this.algorithm+" Credential="+e.accessKeyId+"/"+r),n.push("SignedHeaders="+this.signedHeaders()),n.push("Signature="+this.signature(e,t)),n.join(", ")},signature:function(e,t){var n=i.getSigningKey(e,t.substr(0,8),this.request.region,this.serviceName,this.signatureCache);return r.util.crypto.hmac(n,this.stringToSign(t),"hex")},stringToSign:function(e){var t=[];return t.push("AWS4-HMAC-SHA256"),t.push(e),t.push(this.credentialString(e)),t.push(this.hexEncodedHash(this.canonicalString())),t.join("\n")},canonicalString:function(){var e=[],t=this.request.pathname();return"s3"!==this.serviceName&&"s3v4"!==this.signatureVersion&&(t=r.util.uriEscapePath(t)),e.push(this.request.method),e.push(t),e.push(this.request.search()),e.push(this.canonicalHeaders()+"\n"),e.push(this.signedHeaders()),e.push(this.hexEncodedBodyHash()),e.join("\n")},canonicalHeaders:function(){var e=[];r.util.each.call(this,this.request.headers,(function(t,n){e.push([t,n])})),e.sort((function(e,t){return e[0].toLowerCase()50&&delete i[o.shift()]),d},emptyCache:function(){i={},o=[]}}},{"../core":20}],72:[function(e,t,n){function r(e,t){this.currentState=t||null,this.states=e||{}}r.prototype.runTo=function(e,t,n,r){"function"==typeof e&&(r=n,n=t,t=e,e=null);var i=this,o=i.states[i.currentState];o.fn.call(n||i,r,(function(r){if(r){if(!o.fail)return t?t.call(n,r):null;i.currentState=o.fail}else{if(!o.accept)return t?t.call(n):null;i.currentState=o.accept}if(i.currentState===e)return t?t.call(n,r):null;i.runTo(e,t,n,r)}))},r.prototype.addState=function(e,t,n,r){return"function"==typeof t?(r=t,t=null,n=null):"function"==typeof n&&(r=n,n=null),this.currentState||(this.currentState=e),this.states[e]={accept:t,fail:n,fn:r},this},t.exports=r},{}],73:[function(e,t,n){(function(n,r){(function(){var i,o={environment:"nodejs",engine:function(){if(o.isBrowser()&&"undefined"!=typeof navigator)return navigator.userAgent;var e=n.platform+"/"+n.version;return n.env.AWS_EXECUTION_ENV&&(e+=" exec-env/"+n.env.AWS_EXECUTION_ENV),e},userAgent:function(){var t=o.environment,n="aws-sdk-"+t+"/"+e("./core").VERSION;return"nodejs"===t&&(n+=" "+o.engine()),n},uriEscape:function(e){var t=encodeURIComponent(e);return(t=t.replace(/[^A-Za-z0-9_.~\-%]+/g,escape)).replace(/[*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))},uriEscapePath:function(e){var t=[];return o.arrayEach(e.split("/"),(function(e){t.push(o.uriEscape(e))})),t.join("/")},urlParse:function(e){return o.url.parse(e)},urlFormat:function(e){return o.url.format(e)},queryStringParse:function(e){return o.querystring.parse(e)},queryParamsToString:function(e){var t=[],n=o.uriEscape,r=Object.keys(e).sort();return o.arrayEach(r,(function(r){var i=e[r],s=n(r),a=s+"=";if(Array.isArray(i)){var c=[];o.arrayEach(i,(function(e){c.push(n(e))})),a=s+"="+c.sort().join("&"+s+"=")}else null!=i&&(a=s+"="+n(i));t.push(a)})),t.join("&")},readFileSync:function(t){return o.isBrowser()?null:e("fs").readFileSync(t,"utf-8")},base64:{encode:function(e){if("number"==typeof e)throw o.error(new Error("Cannot base64 encode number "+e));return null==e?e:o.buffer.toBuffer(e).toString("base64")},decode:function(e){if("number"==typeof e)throw o.error(new Error("Cannot base64 decode number "+e));return null==e?e:o.buffer.toBuffer(e,"base64")}},buffer:{toBuffer:function(e,t){return"function"==typeof o.Buffer.from&&o.Buffer.from!==Uint8Array.from?o.Buffer.from(e,t):new o.Buffer(e,t)},alloc:function(e,t,n){if("number"!=typeof e)throw new Error("size passed to alloc must be a number.");if("function"==typeof o.Buffer.alloc)return o.Buffer.alloc(e,t,n);var r=new o.Buffer(e);return void 0!==t&&"function"==typeof r.fill&&r.fill(t,void 0,void 0,n),r},toStream:function(e){o.Buffer.isBuffer(e)||(e=o.buffer.toBuffer(e));var t=new o.stream.Readable,n=0;return t._read=function(r){if(n>=e.length)return t.push(null);var i=n+r;i>e.length&&(i=e.length),t.push(e.slice(n,i)),n=i},t},concat:function(e){var t,n,r=0,i=0;for(t=0;t>>8^t[255&(n^e.readUInt8(r))];return(-1^n)>>>0},hmac:function(e,t,n,r){return n||(n="binary"),"buffer"===n&&(n=void 0),r||(r="sha256"),"string"==typeof t&&(t=o.buffer.toBuffer(t)),o.crypto.lib.createHmac(r,e).update(t).digest(n)},md5:function(e,t,n){return o.crypto.hash("md5",e,t,n)},sha256:function(e,t,n){return o.crypto.hash("sha256",e,t,n)},hash:function(e,t,n,r){var i=o.crypto.createHash(e);n||(n="binary"),"buffer"===n&&(n=void 0),"string"==typeof t&&(t=o.buffer.toBuffer(t));var s=o.arraySliceFn(t),a=o.Buffer.isBuffer(t);if(o.isBrowser()&&"undefined"!=typeof ArrayBuffer&&t&&t.buffer instanceof ArrayBuffer&&(a=!0),r&&"object"==typeof t&&"function"==typeof t.on&&!a)t.on("data",(function(e){i.update(e)})),t.on("error",(function(e){r(e)})),t.on("end",(function(){r(null,i.digest(n))}));else{if(!r||!s||a||"undefined"==typeof FileReader){o.isBrowser()&&"object"==typeof t&&!a&&(t=new o.Buffer(new Uint8Array(t)));var c=i.update(t).digest(n);return r&&r(null,c),c}var u=0,l=new FileReader;l.onerror=function(){r(new Error("Failed to read data."))},l.onload=function(){var e=new o.Buffer(new Uint8Array(l.result));i.update(e),u+=e.length,l._continueReading()},l._continueReading=function(){if(u>=t.size)r(null,i.digest(n));else{var e=u+524288;e>t.size&&(e=t.size),l.readAsArrayBuffer(s.call(t,u,e))}},l._continueReading()}},toHex:function(e){for(var t=[],n=0;n=3e5,!1),i.config.isClockSkewed},applyClockOffset:function(e){e&&(i.config.systemClockOffset=e-(new Date).getTime())},extractRequestId:function(e){var t=e.httpResponse.headers["x-amz-request-id"]||e.httpResponse.headers["x-amzn-requestid"];!t&&e.data&&e.data.ResponseMetadata&&(t=e.data.ResponseMetadata.RequestId),t&&(e.requestId=t),e.error&&(e.error.requestId=t)},addPromises:function(e,t){var n=!1;void 0===t&&i&&i.config&&(t=i.config.getPromisesDependency()),void 0===t&&"undefined"!=typeof Promise&&(t=Promise),"function"!=typeof t&&(n=!0),Array.isArray(e)||(e=[e]);for(var r=0;r=0)return a++,void setTimeout(u,i+(e.retryAfter||0))}n(e)},u=function(){var t="";r.handleRequest(e,s,(function(e){e.on("data",(function(e){t+=e.toString()})),e.on("end",(function(){var r=e.statusCode;if(r<300)n(null,t);else{var i=1e3*parseInt(e.headers["retry-after"],10)||0,s=o.error(new Error,{statusCode:r,retryable:r>=500||429===r});i&&s.retryable&&(s.retryAfter=i),c(s)}}))}),c)};i.util.defer(u)},uuid:{v4:function(){return e("uuid").v4()}},convertPayloadToString:function(e){var t=e.request,n=t.operation,r=t.service.api.operations[n].output||{};r.payload&&e.data[r.payload]&&(e.data[r.payload]=e.data[r.payload].toString())},defer:function(e){"object"==typeof n&&"function"==typeof n.nextTick?n.nextTick(e):"function"==typeof r?r(e):setTimeout(e,0)},getRequestPayloadShape:function(e){var t=e.service.api.operations;if(t){var n=(t||{})[e.operation];if(n&&n.input&&n.input.payload)return n.input.members[n.input.payload]}},getProfilesFromSharedConfig:function(e,t){function r(e,t){for(var n=0,r=Object.keys(t);n=6},parse:function(e){var t=e.split(":");return{partition:t[1],service:t[2],region:t[3],accountId:t[4],resource:t.slice(5).join(":")}},build:function(e){if(void 0===e.service||void 0===e.region||void 0===e.accountId||void 0===e.resource)throw o.error(new Error("Input ARN object is invalid"));return"arn:"+(e.partition||"aws")+":"+e.service+":"+e.region+":"+e.accountId+":"+e.resource}},defaultProfile:"default",configOptInEnv:"AWS_SDK_LOAD_CONFIG",sharedCredentialsFileEnv:"AWS_SHARED_CREDENTIALS_FILE",sharedConfigFileEnv:"AWS_CONFIG_FILE",imdsDisabledEnv:"AWS_EC2_METADATA_DISABLED"};t.exports=o}).call(this)}).call(this,e("_process"),e("timers").setImmediate)},{"../apis/metadata.json":5,"./core":20,_process:87,fs:81,timers:95,uuid:100}],74:[function(e,t,n){function r(){}function i(e,t){for(var n=e.getElementsByTagName(t),r=0,i=n.length;r0||r?s.toString():""},t.exports=r},{"../util":73,"./xml-node":78,"./xml-text":79}],76:[function(e,t,n){t.exports={escapeAttribute:function(e){return e.replace(/&/g,"&").replace(/'/g,"'").replace(//g,">").replace(/"/g,""")}}},{}],77:[function(e,t,n){t.exports={escapeElement:function(e){return e.replace(/&/g,"&").replace(//g,">")}}},{}],78:[function(e,t,n){function r(e,t){void 0===t&&(t=[]),this.name=e,this.children=t,this.attributes={}}var i=e("./escape-attribute").escapeAttribute;r.prototype.addAttribute=function(e,t){return this.attributes[e]=t,this},r.prototype.addChildNode=function(e){return this.children.push(e),this},r.prototype.removeAttribute=function(e){return delete this.attributes[e],this},r.prototype.toString=function(){for(var e=Boolean(this.children.length),t="<"+this.name,n=this.attributes,r=0,o=Object.keys(n);r"+this.children.map((function(e){return e.toString()})).join("")+"":"/>")},t.exports={XmlNode:r}},{"./escape-attribute":76}],79:[function(e,t,n){function r(e){this.value=e}var i=e("./escape-element").escapeElement;r.prototype.toString=function(){return i(""+this.value)},t.exports={XmlText:r}},{"./escape-element":77}],80:[function(e,t,n){"use strict";function r(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function i(e){return s[e>>18&63]+s[e>>12&63]+s[e>>6&63]+s[63&e]}function o(e,t,n){for(var r,o=[],s=t;s0?o-4:o;for(n=0;n>16&255,u[l++]=t>>8&255,u[l++]=255&t;return 2===s&&(t=a[e.charCodeAt(n)]<<2|a[e.charCodeAt(n+1)]>>4,u[l++]=255&t),1===s&&(t=a[e.charCodeAt(n)]<<10|a[e.charCodeAt(n+1)]<<4|a[e.charCodeAt(n+2)]>>2,u[l++]=t>>8&255,u[l++]=255&t),u},n.fromByteArray=function(e){for(var t,n=e.length,r=n%3,i=[],a=0,c=n-r;ac?c:a+16383));return 1===r?(t=e[n-1],i.push(s[t>>2]+s[t<<4&63]+"==")):2===r&&(t=(e[n-2]<<8)+e[n-1],i.push(s[t>>10]+s[t>>4&63]+s[t<<2&63]+"=")),i.join("")};for(var s=[],a=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array,u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=0,p=u.length;l=r())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r().toString(16)+" bytes");return 0|e}function p(e,t){if(o.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return D(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return U(e).length;default:if(r)return D(e).length;t=(""+t).toLowerCase(),r=!0}}function d(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return k(this,t,n);case"utf8":case"utf-8":return S(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return I(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function h(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function f(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=o.from(t,r)),o.isBuffer(t))return 0===t.length?-1:m(e,t,n,r,i);if("number"==typeof t)return t&=255,o.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):m(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function m(e,t,n,r,i){function o(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var s,a=1,c=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,c/=2,u/=2,n/=2}if(i){var l=-1;for(s=n;sc&&(n=c-u),s=n;s>=0;s--){for(var p=!0,d=0;di&&(r=i):r=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var s=0;s>8,i=n%256,o.push(i),o.push(r);return o}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?j.fromByteArray(e):j.fromByteArray(e.slice(t,n))}function S(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i239?4:u>223?3:u>191?2:1;if(i+p<=n)switch(p){case 1:u<128&&(l=u);break;case 2:128==(192&(o=e[i+1]))&&(c=(31&u)<<6|63&o)>127&&(l=c);break;case 3:o=e[i+1],s=e[i+2],128==(192&o)&&128==(192&s)&&(c=(15&u)<<12|(63&o)<<6|63&s)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:o=e[i+1],s=e[i+2],a=e[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(c=(15&u)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&c<1114112&&(l=c)}null===l?(l=65533,p=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),i+=p}return function(e){var t=e.length;if(t<=B)return String.fromCharCode.apply(String,e);for(var n="",r=0;rr)&&(n=r);for(var i="",o=t;on)throw new RangeError("Trying to access beyond buffer length")}function A(e,t,n,r,i,s){if(!o.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function R(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);i>>8*(r?i:1-i)}function O(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);i>>8*(r?i:3-i)&255}function N(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function L(e,t,n,r,i){return i||N(e,0,n,4),F.write(e,t,n,r,23,4),n+4}function M(e,t,n,r,i){return i||N(e,0,n,8),F.write(e,t,n,r,52,8),n+8}function P(e){return e<16?"0"+e.toString(16):e.toString(16)}function D(e,t){t=t||1/0;for(var n,r=e.length,i=null,o=[],s=0;s55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function U(e){return j.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(z,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}var j=e("base64-js"),F=e("ieee754"),W=e("isarray");n.Buffer=o,n.SlowBuffer=function(e){return+e!=e&&(e=0),o.alloc(+e)},n.INSPECT_MAX_BYTES=50,o.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),n.kMaxLength=r(),o.poolSize=8192,o._augment=function(e){return e.__proto__=o.prototype,e},o.from=function(e,t,n){return s(null,e,t,n)},o.TYPED_ARRAY_SUPPORT&&(o.prototype.__proto__=Uint8Array.prototype,o.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&o[Symbol.species]===o&&Object.defineProperty(o,Symbol.species,{value:null,configurable:!0})),o.alloc=function(e,t,n){return function(e,t,n,r){return a(t),t<=0?i(e,t):void 0!==n?"string"==typeof r?i(e,t).fill(n,r):i(e,t).fill(n):i(e,t)}(null,e,t,n)},o.allocUnsafe=function(e){return c(null,e)},o.allocUnsafeSlow=function(e){return c(null,e)},o.isBuffer=function(e){return!(null==e||!e._isBuffer)},o.compare=function(e,t){if(!o.isBuffer(e)||!o.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,s=Math.min(n,r);i0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},o.prototype.compare=function(e,t,n,r,i){if(!o.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var s=(i>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),c=Math.min(s,a),u=this.slice(r,i),l=e.slice(t,n),p=0;pi)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return g(this,e,t,n);case"utf8":case"utf-8":return v(this,e,t,n);case"ascii":return y(this,e,t,n);case"latin1":case"binary":return b(this,e,t,n);case"base64":return w(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var B=4096;o.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)r+=this[e+--t]*i;return r},o.prototype.readUInt8=function(e,t){return t||x(e,1,this.length),this[e]},o.prototype.readUInt16LE=function(e,t){return t||x(e,2,this.length),this[e]|this[e+1]<<8},o.prototype.readUInt16BE=function(e,t){return t||x(e,2,this.length),this[e]<<8|this[e+1]},o.prototype.readUInt32LE=function(e,t){return t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},o.prototype.readUInt32BE=function(e,t){return t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},o.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=this[e],i=1,o=0;++o=(i*=128)&&(r-=Math.pow(2,8*t)),r},o.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},o.prototype.readInt8=function(e,t){return t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},o.prototype.readInt16LE=function(e,t){t||x(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},o.prototype.readInt16BE=function(e,t){t||x(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},o.prototype.readInt32LE=function(e,t){return t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},o.prototype.readInt32BE=function(e,t){return t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},o.prototype.readFloatLE=function(e,t){return t||x(e,4,this.length),F.read(this,e,!0,23,4)},o.prototype.readFloatBE=function(e,t){return t||x(e,4,this.length),F.read(this,e,!1,23,4)},o.prototype.readDoubleLE=function(e,t){return t||x(e,8,this.length),F.read(this,e,!0,52,8)},o.prototype.readDoubleBE=function(e,t){return t||x(e,8,this.length),F.read(this,e,!1,52,8)},o.prototype.writeUIntLE=function(e,t,n,r){e=+e,t|=0,n|=0,r||A(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+n},o.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,1,255,0),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},o.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):R(this,e,t,!0),t+2},o.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):R(this,e,t,!1),t+2},o.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):O(this,e,t,!0),t+4},o.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):O(this,e,t,!1),t+4},o.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);A(this,e,t,n,i-1,-i)}var o=0,s=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+n},o.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);A(this,e,t,n,i-1,-i)}var o=n-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+n},o.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,1,127,-128),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},o.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):R(this,e,t,!0),t+2},o.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):R(this,e,t,!1),t+2},o.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,4,2147483647,-2147483648),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):O(this,e,t,!0),t+4},o.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):O(this,e,t,!1),t+4},o.prototype.writeFloatLE=function(e,t,n){return L(this,e,t,!0,n)},o.prototype.writeFloatBE=function(e,t,n){return L(this,e,t,!1,n)},o.prototype.writeDoubleLE=function(e,t,n){return M(this,e,t,!0,n)},o.prototype.writeDoubleBE=function(e,t,n){return M(this,e,t,!1,n)},o.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(s<1e3||!o.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(s=t;s0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function n(){this.removeListener(e,n),r||(r=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var r=!1;return n.listener=t,this.on(e,n),this},r.prototype.removeListener=function(e,t){var n,r,s,a;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(s=(n=this._events[e]).length,r=-1,n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(a=s;a-- >0;)if(n[a]===t||n[a].listener&&n[a].listener===t){r=a;break}if(r<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(i(n=this._events[e]))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){return this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}},{}],84:[function(e,t,n){n.read=function(e,t,n,r,i){var o,s,a=8*i-r-1,c=(1<>1,l=-7,p=n?i-1:0,d=n?-1:1,h=e[t+p];for(p+=d,o=h&(1<<-l)-1,h>>=-l,l+=a;l>0;o=256*o+e[t+p],p+=d,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=r;l>0;s=256*s+e[t+p],p+=d,l-=8);if(0===o)o=1-u;else{if(o===c)return s?NaN:1/0*(h?-1:1);s+=Math.pow(2,r),o-=u}return(h?-1:1)*s*Math.pow(2,o-r)},n.write=function(e,t,n,r,i,o){var s,a,c,u=8*o-i-1,l=(1<>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:o-1,f=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),(t+=s+p>=1?d/c:d*Math.pow(2,1-p))*c>=2&&(s++,c/=2),s+p>=l?(a=0,s=l):s+p>=1?(a=(t*c-1)*Math.pow(2,i),s+=p):(a=t*Math.pow(2,p-1)*Math.pow(2,i),s=0));i>=8;e[n+h]=255&a,h+=f,a/=256,i-=8);for(s=s<0;e[n+h]=255&s,h+=f,s/=256,u-=8);e[n+h-f]|=128*m}},{}],85:[function(e,t,n){var r={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},{}],86:[function(e,t,n){!function(e){"use strict";function t(e){return null!==e&&"[object Array]"===Object.prototype.toString.call(e)}function n(e){return null!==e&&"[object Object]"===Object.prototype.toString.call(e)}function r(e,i){if(e===i)return!0;if(Object.prototype.toString.call(e)!==Object.prototype.toString.call(i))return!1;if(!0===t(e)){if(e.length!==i.length)return!1;for(var o=0;o="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e}function s(e){return e>="0"&&e<="9"||"-"===e}function a(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e}function c(){}function u(){}function l(e){this.runtime=e}function p(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[h]}]},avg:{_func:this._functionAvg,_signature:[{types:[b]}]},ceil:{_func:this._functionCeil,_signature:[{types:[h]}]},contains:{_func:this._functionContains,_signature:[{types:[m,g]},{types:[f]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[m]},{types:[m]}]},floor:{_func:this._functionFloor,_signature:[{types:[h]}]},length:{_func:this._functionLength,_signature:[{types:[m,g,v]}]},map:{_func:this._functionMap,_signature:[{types:[y]},{types:[g]}]},max:{_func:this._functionMax,_signature:[{types:[b,w]}]},merge:{_func:this._functionMerge,_signature:[{types:[v],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[g]},{types:[y]}]},sum:{_func:this._functionSum,_signature:[{types:[b]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[m]},{types:[m]}]},min:{_func:this._functionMin,_signature:[{types:[b,w]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[g]},{types:[y]}]},type:{_func:this._functionType,_signature:[{types:[f]}]},keys:{_func:this._functionKeys,_signature:[{types:[v]}]},values:{_func:this._functionValues,_signature:[{types:[v]}]},sort:{_func:this._functionSort,_signature:[{types:[w,b]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[g]},{types:[y]}]},join:{_func:this._functionJoin,_signature:[{types:[m]},{types:[w]}]},reverse:{_func:this._functionReverse,_signature:[{types:[m,g]}]},to_array:{_func:this._functionToArray,_signature:[{types:[f]}]},to_string:{_func:this._functionToString,_signature:[{types:[f]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[f]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[f],variadic:!0}]}}}var d;d="function"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\s*(.*)/)[1]};var h=0,f=1,m=2,g=3,v=4,y=6,b=8,w=9,E={".":"Dot","*":"Star",",":"Comma",":":"Colon","{":"Lbrace","}":"Rbrace","]":"Rbracket","(":"Lparen",")":"Rparen","@":"Current"},C={"<":!0,">":!0,"=":!0,"!":!0},S={" ":!0,"\t":!0,"\n":!0};c.prototype={tokenize:function(e){var t,n,r,i=[];for(this._current=0;this._current"===n?"="===e[this._current]?(this._current++,{type:"GTE",value:">=",start:t}):{type:"GT",value:">",start:t}:"="===n&&"="===e[this._current]?(this._current++,{type:"EQ",value:"==",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t,n=this._current,r=e.length;"`"!==e[this._current]&&this._current=0)return!0;if(["true","false","null"].indexOf(e)>=0)return!0;if(!("-0123456789".indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(e){return!1}}};var T={EOF:0,UnquotedIdentifier:0,QuotedIdentifier:0,Rbracket:0,Rparen:0,Comma:0,Rbrace:0,Number:0,Current:0,Expref:0,Pipe:1,Or:2,And:3,EQ:5,GT:5,LT:5,GTE:5,LTE:5,NE:5,Flatten:9,Star:20,Filter:21,Dot:40,Not:45,Lbrace:50,Lbracket:55,Lparen:60};u.prototype={parse:function(e){this._loadTokens(e),this.index=0;var t=this.expression(0);if("EOF"!==this._lookahead(0)){var n=this._lookaheadToken(0),r=new Error("Unexpected token type: "+n.type+", value: "+n.value);throw r.name="ParserError",r}return t},_loadTokens:function(e){var t=(new c).tokenize(e);t.push({type:"EOF",value:"",start:e.length}),this.tokens=t},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var n=this.nud(t),r=this._lookahead(0);e=0?this.expression(e):"Lbracket"===t?(this._match("Lbracket"),this._parseMultiselectList()):"Lbrace"===t?(this._match("Lbrace"),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(e){var t;if(T[this._lookahead(0)]<10)t={type:"Identity"};else if("Lbracket"===this._lookahead(0))t=this.expression(e);else if("Filter"===this._lookahead(0))t=this.expression(e);else{if("Dot"!==this._lookahead(0)){var n=this._lookaheadToken(0),r=new Error("Sytanx error, unexpected token: "+n.value+"("+n.type+")");throw r.name="ParserError",r}this._match("Dot"),t=this._parseDotRHS(e)}return t},_parseMultiselectList:function(){for(var e=[];"Rbracket"!==this._lookahead(0);){var t=this.expression(0);if(e.push(t),"Comma"===this._lookahead(0)&&(this._match("Comma"),"Rbracket"===this._lookahead(0)))throw new Error("Unexpected token Rbracket")}return this._match("Rbracket"),{type:"MultiSelectList",children:e}},_parseMultiselectHash:function(){for(var e,t,n,r=[],i=["UnquotedIdentifier","QuotedIdentifier"];;){if(e=this._lookaheadToken(0),i.indexOf(e.type)<0)throw new Error("Expecting an identifier token, got: "+e.type);if(t=e.value,this._advance(),this._match("Colon"),n={type:"KeyValuePair",name:t,value:this.expression(0)},r.push(n),"Comma"===this._lookahead(0))this._match("Comma");else if("Rbrace"===this._lookahead(0)){this._match("Rbrace");break}}return{type:"MultiSelectHash",children:r}}},l.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,o){var s,a,c,u,l,p,d,h,f;switch(e.type){case"Field":return null===o?null:n(o)?void 0===(p=o[e.name])?null:p:null;case"Subexpression":for(c=this.visit(e.children[0],o),f=1;f0)for(f=y;fb;f+=w)c.push(o[f]);return c;case"Projection":var E=this.visit(e.children[0],o);if(!t(E))return null;for(h=[],f=0;fl;break;case"GTE":c=u>=l;break;case"LT":c=u=e&&(t=n<0?e-1:e),t}},p.prototype={callFunction:function(e,t){var n=this.functionTable[e];if(void 0===n)throw new Error("Unknown function: "+e+"()");return this._validateArgs(e,t,n._signature),n._func.call(this,t)},_validateArgs:function(e,t,n){var r;if(n[n.length-1].variadic){if(t.length=0;r--)n+=t[r];return n}var i=e[0].slice(0);return i.reverse(),i},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,n=e[0],r=0;r=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return n(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],n=this._interpreter,r=e[0],i=e[1],o=0;o0){if(this._getTypeName(e[0][0])===h)return Math.max.apply(Math,e[0]);for(var t=e[0],n=t[0],r=1;r0){if(this._getTypeName(e[0][0])===h)return Math.min.apply(Math,e[0]);for(var t=e[0],n=t[0],r=1;ra?1:ss&&(s=n,t=i[a]);return t},_functionMinBy:function(e){for(var t,n,r=e[1],i=e[0],o=this.createKeyFunction(r,[h,m]),s=1/0,a=0;a1)for(var n=1;n1&&(r=n[0]+"@",e=n[1]),r+u((e=e.replace(M,".")).split("."),t).join(".")}function p(e){for(var t,n,r=[],i=0,o=e.length;i=55296&&t<=56319&&i65535&&(t+=q((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+q(e)})).join("")}function h(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:T}function f(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function m(e,t,n){var r=0;for(e=n?U(e/x):e>>1,e+=U(e/t);e>D*k>>1;r+=T)e=U(e/D);return U(r+(D+1)*e/(e+_))}function g(e){var t,n,r,i,o,s,a,u,l,p,f=[],g=e.length,v=0,y=R,b=A;for((n=e.lastIndexOf(O))<0&&(n=0),r=0;r=128&&c("not-basic"),f.push(e.charCodeAt(r));for(i=n>0?n+1:0;i=g&&c("invalid-input"),((u=h(e.charCodeAt(i++)))>=T||u>U((S-v)/s))&&c("overflow"),v+=u*s,!(u<(l=a<=b?I:a>=b+k?k:a-b));a+=T)s>U(S/(p=T-l))&&c("overflow"),s*=p;b=m(v-o,t=f.length+1,0==o),U(v/t)>S-y&&c("overflow"),y+=U(v/t),v%=t,f.splice(v++,0,y)}return d(f)}function v(e){var t,n,r,i,o,s,a,u,l,d,h,g,v,y,b,w=[];for(g=(e=p(e)).length,t=R,n=0,o=A,s=0;s=t&&hU((S-n)/(v=r+1))&&c("overflow"),n+=(a-t)*v,t=a,s=0;sS&&c("overflow"),h==t){for(u=n,l=T;!(u<(d=l<=o?I:l>=o+k?k:l-o));l+=T)b=u-d,y=T-d,w.push(q(f(d+b%y,0))),u=U(b/y);w.push(q(f(u,0))),o=m(n,v,r==i),n=0,++r}++n,++t}return w.join("")}var y="object"==typeof s&&s&&!s.nodeType&&s,b="object"==typeof o&&o&&!o.nodeType&&o,w="object"==typeof i&&i;w.global!==w&&w.window!==w&&w.self!==w||(a=w);var E,C,S=2147483647,T=36,I=1,k=26,_=38,x=700,A=72,R=128,O="-",N=/^xn--/,L=/[^\x20-\x7E]/,M=/[\x2E\u3002\uFF0E\uFF61]/g,P={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},D=T-I,U=Math.floor,q=String.fromCharCode;if(E={version:"1.3.2",ucs2:{decode:p,encode:d},decode:g,encode:v,toASCII:function(e){return l(e,(function(e){return L.test(e)?"xn--"+v(e):e}))},toUnicode:function(e){return l(e,(function(e){return N.test(e)?g(e.slice(4).toLowerCase()):e}))}},n.amdO)void 0===(r=function(){return E}.call(t,n,t,e))||(e.exports=r);else if(y&&b)if(o.exports==y)b.exports=E;else for(C in E)E.hasOwnProperty(C)&&(y[C]=E[C]);else a.punycode=E}(this)}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],89:[function(e,t,n){"use strict";function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.exports=function(e,t,n,o){t=t||"&",n=n||"=";var s={};if("string"!=typeof e||0===e.length)return s;var a=/\+/g;e=e.split(t);var c=1e3;o&&"number"==typeof o.maxKeys&&(c=o.maxKeys);var u=e.length;c>0&&u>c&&(u=c);for(var l=0;l=0?(p=m.substr(0,g),d=m.substr(g+1)):(p=m,d=""),h=decodeURIComponent(p),f=decodeURIComponent(d),r(s,h)?i(s[h])?s[h].push(f):s[h]=[s[h],f]:s[h]=f}return s};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],90:[function(e,t,n){"use strict";function r(e,t){if(e.map)return e.map(t);for(var n=[],r=0;r0&&c>a&&(c=a);for(var u=0;u=0?(l=f.substr(0,m),p=f.substr(m+1)):(l=f,p=""),d=decodeURIComponent(l),h=decodeURIComponent(p),r(o,d)?Array.isArray(o[d])?o[d].push(h):o[d]=[o[d],h]:o[d]=h}return o}},{}],93:[function(e,t,n){"use strict";var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};t.exports=function(e,t,n,i){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(i){var o=encodeURIComponent(r(i))+n;return Array.isArray(e[i])?e[i].map((function(e){return o+encodeURIComponent(r(e))})).join(t):o+encodeURIComponent(r(e[i]))})).join(t):i?encodeURIComponent(r(i))+n+encodeURIComponent(r(e)):""}},{}],94:[function(e,t,n){arguments[4][91][0].apply(n,arguments)},{"./decode":92,"./encode":93,dup:91}],95:[function(e,t,n){(function(t,r){(function(){function i(e,t){this._id=e,this._clearFn=t}var o=e("process/browser.js").nextTick,s=Function.prototype.apply,a=Array.prototype.slice,c={},u=0;n.setTimeout=function(){return new i(s.call(setTimeout,window,arguments),clearTimeout)},n.setInterval=function(){return new i(s.call(setInterval,window,arguments),clearInterval)},n.clearTimeout=n.clearInterval=function(e){e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(window,this._id)},n.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},n.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},n._unrefActive=n.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n.setImmediate="function"==typeof t?t:function(e){var t=u++,r=!(arguments.length<2)&&a.call(arguments,1);return c[t]=!0,o((function(){c[t]&&(r?e.apply(null,r):e.call(null),n.clearImmediate(t))})),t},n.clearImmediate="function"==typeof r?r:function(e){delete c[e]}}).call(this)}).call(this,e("timers").setImmediate,e("timers").clearImmediate)},{"process/browser.js":87,timers:95}],96:[function(e,t,n){function r(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function i(e,t,n){if(e&&s(e)&&e instanceof r)return e;var i=new r;return i.parse(e,t,n),i}function o(e){return"string"==typeof e}function s(e){return"object"==typeof e&&null!==e}function a(e){return null===e}var c=e("punycode");n.parse=i,n.resolve=function(e,t){return i(e,!1,!0).resolve(t)},n.resolveObject=function(e,t){return e?i(e,!1,!0).resolveObject(t):t},n.format=function(e){return o(e)&&(e=i(e)),e instanceof r?e.format():r.prototype.format.call(e)},n.Url=r;var u=/^([a-z0-9.+-]+:)/i,l=/:[0-9]*$/,p=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),d=["'"].concat(p),h=["%","/","?",";","#"].concat(d),f=["/","?","#"],m=/^[a-z0-9A-Z_-]{0,63}$/,g=/^([a-z0-9A-Z_-]{0,63})(.*)$/,v={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},b={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},w=e("querystring");r.prototype.parse=function(e,t,n){if(!o(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var r=e;r=r.trim();var i=u.exec(r);if(i){var s=(i=i[0]).toLowerCase();this.protocol=s,r=r.substr(i.length)}if(n||i||r.match(/^\/\/[^@\/]+@[^@\/]+/)){var a="//"===r.substr(0,2);!a||i&&y[i]||(r=r.substr(2),this.slashes=!0)}if(!y[i]&&(a||i&&!b[i])){for(var l=-1,p=0;p127?x+="x":x+=_[A];if(!x.match(m)){var O=I.slice(0,p),N=I.slice(p+1),L=_.match(g);L&&(O.push(L[1]),N.unshift(L[2])),N.length&&(r="/"+N.join(".")+r),this.hostname=O.join(".");break}}}if(this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),!T){var M=this.hostname.split("."),P=[];for(p=0;p0)&&n.host.split("@"))&&(n.auth=E.shift(),n.host=n.hostname=E.shift())),n.search=e.search,n.query=e.query,a(n.pathname)&&a(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n;if(!h.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var m=h.slice(-1)[0],g=(n.host||e.host)&&("."===m||".."===m)||""===m,v=0,w=h.length;w>=0;w--)"."==(m=h[w])?h.splice(w,1):".."===m?(h.splice(w,1),v++):v&&(h.splice(w,1),v--);if(!p&&!d)for(;v--;v)h.unshift("..");!p||""===h[0]||h[0]&&"/"===h[0].charAt(0)||h.unshift(""),g&&"/"!==h.join("/").substr(-1)&&h.push("");var E,C=""===h[0]||h[0]&&"/"===h[0].charAt(0);return f&&(n.hostname=n.host=C?"":h.length?h.shift():"",(E=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=E.shift(),n.host=n.hostname=E.shift())),(p=p||n.host&&h.length)&&!C&&h.unshift(""),h.length?n.pathname=h.join("/"):(n.pathname=null,n.path=null),a(n.pathname)&&a(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},r.prototype.parseHost=function(){var e=this.host,t=l.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},{punycode:88,querystring:91}],97:[function(e,t,n){"function"==typeof Object.create?t.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},{}],98:[function(e,t,n){t.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},{}],99:[function(e,t,n){(function(t,r){(function(){function i(e,t){var r={seen:[],stylize:s};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(t)?r.showHidden=t:t&&n._extend(r,t),g(r.showHidden)&&(r.showHidden=!1),g(r.depth)&&(r.depth=2),g(r.colors)&&(r.colors=!1),g(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),a(r,e,r.depth)}function o(e,t){var n=i.styles[t];return n?"["+i.colors[n][0]+"m"+e+"["+i.colors[n][1]+"m":e}function s(e,t){return e}function a(e,t,r){if(e.customInspect&&t&&E(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(r,e);return m(i)||(i=a(e,i,r)),i}var o=c(e,t);if(o)return o;var s=Object.keys(t),d=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(t)),w(t)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return u(t);if(0===s.length){if(E(t)){var h=t.name?": "+t.name:"";return e.stylize("[Function"+h+"]","special")}if(v(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(b(t))return e.stylize(Date.prototype.toString.call(t),"date");if(w(t))return u(t)}var f,g="",y=!1,C=["{","}"];return p(t)&&(y=!0,C=["[","]"]),E(t)&&(g=" [Function"+(t.name?": "+t.name:"")+"]"),v(t)&&(g=" "+RegExp.prototype.toString.call(t)),b(t)&&(g=" "+Date.prototype.toUTCString.call(t)),w(t)&&(g=" "+u(t)),0!==s.length||y&&0!=t.length?r<0?v(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),f=y?function(e,t,n,r,i){for(var o=[],s=0,a=t.length;s60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}(f,g,C)):C[0]+g+C[1]}function c(e,t){if(g(t))return e.stylize("undefined","undefined");if(m(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return f(t)?e.stylize(""+t,"number"):d(t)?e.stylize(""+t,"boolean"):h(t)?e.stylize("null","null"):void 0}function u(e){return"["+Error.prototype.toString.call(e)+"]"}function l(e,t,n,r,i,o){var s,c,u;if((u=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?c=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(c=e.stylize("[Setter]","special")),I(r,i)||(s="["+i+"]"),c||(e.seen.indexOf(u.value)<0?(c=h(n)?a(e,u.value,null):a(e,u.value,n-1)).indexOf("\n")>-1&&(c=o?c.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+c.split("\n").map((function(e){return" "+e})).join("\n")):c=e.stylize("[Circular]","special")),g(s)){if(o&&i.match(/^\d+$/))return c;(s=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+c}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function h(e){return null===e}function f(e){return"number"==typeof e}function m(e){return"string"==typeof e}function g(e){return void 0===e}function v(e){return y(e)&&"[object RegExp]"===C(e)}function y(e){return"object"==typeof e&&null!==e}function b(e){return y(e)&&"[object Date]"===C(e)}function w(e){return y(e)&&("[object Error]"===C(e)||e instanceof Error)}function E(e){return"function"==typeof e}function C(e){return Object.prototype.toString.call(e)}function S(e){return e<10?"0"+e.toString(10):e.toString(10)}function T(){var e=new Date,t=[S(e.getHours()),S(e.getMinutes()),S(e.getSeconds())].join(":");return[e.getDate(),A[e.getMonth()],t].join(" ")}function I(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var k=/%[sdj%]/g;n.format=function(e){if(!m(e)){for(var t=[],n=0;n=o)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),a=r[n];n>>((3&t)<<3)&255;return o}}},{}],103:[function(e,t,n){var r,i,o=e("./lib/rng"),s=e("./lib/bytesToUuid"),a=0,c=0;t.exports=function(e,t,n){var u=t&&n||0,l=t||[],p=(e=e||{}).node||r,d=void 0!==e.clockseq?e.clockseq:i;if(null==p||null==d){var h=o();null==p&&(p=r=[1|h[0],h[1],h[2],h[3],h[4],h[5]]),null==d&&(d=i=16383&(h[6]<<8|h[7]))}var f=void 0!==e.msecs?e.msecs:(new Date).getTime(),m=void 0!==e.nsecs?e.nsecs:c+1,g=f-a+(m-c)/1e4;if(g<0&&void 0===e.clockseq&&(d=d+1&16383),(g<0||f>a)&&void 0===e.nsecs&&(m=0),m>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");a=f,c=m,i=d;var v=(1e4*(268435455&(f+=122192928e5))+m)%4294967296;l[u++]=v>>>24&255,l[u++]=v>>>16&255,l[u++]=v>>>8&255,l[u++]=255&v;var y=f/4294967296*1e4&268435455;l[u++]=y>>>8&255,l[u++]=255&y,l[u++]=y>>>24&15|16,l[u++]=y>>>16&255,l[u++]=d>>>8|128,l[u++]=255&d;for(var b=0;b<6;++b)l[u+b]=p[b];return t||s(l)}},{"./lib/bytesToUuid":101,"./lib/rng":102}],104:[function(e,t,n){var r=e("./lib/rng"),i=e("./lib/bytesToUuid");t.exports=function(e,t,n){var o=t&&n||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var s=(e=e||{}).random||(e.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t)for(var a=0;a<16;++a)t[o+a]=s[a];return t||i(s)}},{"./lib/bytesToUuid":101,"./lib/rng":102}],105:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=e("./utils/LRU"),i=function(){function e(e){void 0===e&&(e=1e3),this.maxSize=e,this.cache=new r.LRUCache(e)}return Object.defineProperty(e.prototype,"size",{get:function(){return this.cache.length},enumerable:!0,configurable:!0}),e.prototype.put=function(t,n){var r="string"!=typeof t?e.getKeyString(t):t,i=this.populateValue(n);this.cache.put(r,i)},e.prototype.get=function(t){var n="string"!=typeof t?e.getKeyString(t):t,r=Date.now(),i=this.cache.get(n);if(i)for(var o=0;o{var r=n(639).Symbol;e.exports=r},239:(e,t,n)=>{var r=n(705),i=n(607),o=n(333),s=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":s&&s in Object(e)?i(e):o(e)}},561:(e,t,n)=>{var r=n(990),i=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(i,""):e}},957:e=>{var t="object"==typeof global&&global&&global.Object===Object&&global;e.exports=t},607:(e,t,n)=>{var r=n(705),i=Object.prototype,o=i.hasOwnProperty,s=i.toString,a=r?r.toStringTag:void 0;e.exports=function(e){var t=o.call(e,a),n=e[a];try{e[a]=void 0;var r=!0}catch(e){}var i=s.call(e);return r&&(t?e[a]=n:delete e[a]),i}},333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},639:(e,t,n)=>{var r=n(957),i="object"==typeof self&&self&&self.Object===Object&&self,o=r||i||Function("return this")();e.exports=o},990:e=>{var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},279:(e,t,n)=>{var r=n(218),i=n(771),o=n(841),s=Math.max,a=Math.min;e.exports=function(e,t,n){var c,u,l,p,d,h,f=0,m=!1,g=!1,v=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function y(t){var n=c,r=u;return c=u=void 0,f=t,p=e.apply(r,n)}function b(e){return f=e,d=setTimeout(E,t),m?y(e):p}function w(e){var n=e-h;return void 0===h||n>=t||n<0||g&&e-f>=l}function E(){var e=i();if(w(e))return C(e);d=setTimeout(E,function(e){var n=t-(e-h);return g?a(n,l-(e-f)):n}(e))}function C(e){return d=void 0,v&&c?y(e):(c=u=void 0,p)}function S(){var e=i(),n=w(e);if(c=arguments,u=this,h=e,n){if(void 0===d)return b(h);if(g)return clearTimeout(d),d=setTimeout(E,t),y(h)}return void 0===d&&(d=setTimeout(E,t)),p}return t=o(t)||0,r(n)&&(m=!!n.leading,l=(g="maxWait"in n)?s(o(n.maxWait)||0,t):l,v="trailing"in n?!!n.trailing:v),S.cancel=function(){void 0!==d&&clearTimeout(d),f=0,c=h=u=d=void 0},S.flush=function(){return void 0===d?p:C(i())},S}},218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},5:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},448:(e,t,n)=>{var r=n(239),i=n(5);e.exports=function(e){return"symbol"==typeof e||i(e)&&"[object Symbol]"==r(e)}},771:(e,t,n)=>{var r=n(639);e.exports=function(){return r.Date.now()}},493:(e,t,n)=>{var r=n(279),i=n(218);e.exports=function(e,t,n){var o=!0,s=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return i(n)&&(o="leading"in n?!!n.leading:o,s="trailing"in n?!!n.trailing:s),r(e,t,{leading:o,maxWait:t,trailing:s})}},841:(e,t,n)=>{var r=n(561),i=n(218),o=n(448),s=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,c=/^0o[0-7]+$/i,u=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return NaN;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=a.test(e);return n||c.test(e)?u(e.slice(2),n?2:8):s.test(e)?NaN:+e}},975:(e,t,n)=>{var r;!function(){"use strict";var i={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function o(e){return a(u(e),arguments)}function s(e,t){return o.apply(null,[e].concat(t||[]))}function a(e,t){var n,r,s,a,c,u,l,p,d,h=1,f=e.length,m="";for(r=0;r=0),a.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,a.width?parseInt(a.width):0);break;case"e":n=a.precision?parseFloat(n).toExponential(a.precision):parseFloat(n).toExponential();break;case"f":n=a.precision?parseFloat(n).toFixed(a.precision):parseFloat(n);break;case"g":n=a.precision?String(Number(n.toPrecision(a.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=a.precision?n.substring(0,a.precision):n;break;case"t":n=String(!!n),n=a.precision?n.substring(0,a.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=a.precision?n.substring(0,a.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=a.precision?n.substring(0,a.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}i.json.test(a.type)?m+=n:(!i.number.test(a.type)||p&&!a.sign?d="":(d=p?"+":"-",n=n.toString().replace(i.sign,"")),u=a.pad_char?"0"===a.pad_char?"0":a.pad_char.charAt(1):" ",l=a.width-(d+n).length,c=a.width&&l>0?u.repeat(l):"",m+=a.align?d+n+c:"0"===u?d+c+n:c+d+n)}return m}var c=Object.create(null);function u(e){if(c[e])return c[e];for(var t,n=e,r=[],o=0;n;){if(null!==(t=i.text.exec(n)))r.push(t[0]);else if(null!==(t=i.modulo.exec(n)))r.push("%");else{if(null===(t=i.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){o|=1;var s=[],a=t[2],u=[];if(null===(u=i.key.exec(a)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(u[1]);""!==(a=a.substring(u[0].length));)if(null!==(u=i.key_access.exec(a)))s.push(u[1]);else{if(null===(u=i.index_access.exec(a)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(u[1])}t[2]=s}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}n=n.substring(t[0].length)}return c[e]=r}t.sprintf=o,t.vsprintf=s,"undefined"!=typeof window&&(window.sprintf=o,window.vsprintf=s,void 0===(r=function(){return{sprintf:o,vsprintf:s}}.call(t,n,t,e))||(e.exports=r))}()}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.amdO={},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";class e extends Error{constructor(e){super(e),this.name="ValueError"}}class t extends Error{constructor(e){super(e),this.name="UnImplementedMethod"}}class r extends Error{constructor(e,t){super(e),this.name="IllegalArgument",this.argument=t}}Error,Error;var i=new class{constructor(){this.stage="prod",this.region="us-west-2",this.reconnect=!0;var e=this;this.features=new Proxy([],{set:function(t,n,r){console.log("new features added, initialValue: "+t[n]+" , newValue: "+r,Array.isArray(t[n]));var i=t[n];return Array.isArray(r)&&r.forEach((t=>{Array.isArray(i)&&-1===i.indexOf(t)&&Array.isArray(e.featureChangeListeners[t])&&(e.featureChangeListeners[t].forEach((e=>e())),e._cleanFeatureChangeListener(t))})),t[n]=r,!0}}),this.featureChangeListeners=[]}update(e){var t=e||{};this.stage=t.stage||this.stage,this.region=t.region||this.region,this.endpointOverride=t.endpoint||this.endpointOverride,this.reconnect=!1!==t.reconnect&&this.reconnect,this.messageReceiptThrottleTime=t.throttleTime?t.throttleTime:5e3,this.features.values=Array.isArray(t.features)?[...t.features]:new Array}updateStageRegion(e){e&&(this.stage=e.stage||this.stage,this.region=e.region||this.region)}updateThrottleTime(e){this.messageReceiptThrottleTime=e||this.messageReceiptThrottleTime}getMessageReceiptsThrottleTime(){return this.messageReceiptThrottleTime}getStage(){return this.stage}getRegion(){return this.region}getEndpointOverride(){return this.endpointOverride}setFeatureFlag(e){if(!this.isFeatureEnabled(e)){var t=Array.isArray(this.features.values)?this.features.values:[];this.features.values=[...t,e]}}_registerFeatureChangeListener(e,t){this.featureChangeListeners[e]||(this.featureChangeListeners[e]=[]),this.featureChangeListeners[e].push(t)}_cleanFeatureChangeListener(e){delete this.featureChangeListeners[e]}isFeatureEnabled(e,t){return Array.isArray(this.features.values)&&-1!==this.features.values.indexOf(e)?"function"!=typeof t||t():("function"==typeof t&&this._registerFeatureChangeListener(e,t),!1)}},o="MESSAGE_RECEIPTS_ENABLED",s={AGENT:"AGENT",CUSTOMER:"CUSTOMER"},a="API",c="SendMessage",u="SendAttachment",l="DownloadAttachment",p="SendEvent",d="GetTranscript",h="DisconnectParticipant",f="CreateParticipantConnection",m="InitWebsocket",g={INCOMING_MESSAGE:"INCOMING_MESSAGE",INCOMING_TYPING:"INCOMING_TYPING",INCOMING_READ_RECEIPT:"INCOMING_READ_RECEIPT",INCOMING_DELIVERED_RECEIPT:"INCOMING_DELIVERED_RECEIPT",CONNECTION_ESTABLISHED:"CONNECTION_ESTABLISHED",CONNECTION_LOST:"CONNECTION_LOST",CONNECTION_BROKEN:"CONNECTION_BROKEN",CONNECTION_ACK:"CONNECTION_ACK",CHAT_ENDED:"CHAT_ENDED",MESSAGE_METADATA:"MESSAGEMETADATA",PARTICIPANT_IDLE:"PARTICIPANT_IDLE",PARTICIPANT_RETURNED:"PARTICIPANT_RETURNED",AUTODISCONNECTION:"AUTODISCONNECTION"},v={textPlain:"text/plain",textMarkdown:"text/markdown",textCsv:"text/csv",applicationDoc:"application/msword",applicationDocx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",applicationJson:"application/json",applicationPdf:"application/pdf",applicationPpt:"application/vnd.ms-powerpoint",applicationPptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",applicationXls:"application/vnd.ms-excel",applicationXlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",imageJpg:"image/jpeg",imagePng:"image/png",audioWav:"audio/wav",audioXWav:"audio/x-wav",audioVndWave:"audio/vnd.wave",connectionAcknowledged:"application/vnd.amazonaws.connect.event.connection.acknowledged",typing:"application/vnd.amazonaws.connect.event.typing",participantJoined:"application/vnd.amazonaws.connect.event.participant.joined",participantLeft:"application/vnd.amazonaws.connect.event.participant.left",participantActive:"application/vnd.amazonaws.connect.event.participant.active",participantInactive:"application/vnd.amazonaws.connect.event.participant.inactive",transferSucceeded:"application/vnd.amazonaws.connect.event.transfer.succeeded",transferFailed:"application/vnd.amazonaws.connect.event.transfer.failed",chatEnded:"application/vnd.amazonaws.connect.event.chat.ended",interactiveMessage:"application/vnd.amazonaws.connect.message.interactive",interactiveMessageResponse:"application/vnd.amazonaws.connect.message.interactive.response",readReceipt:"application/vnd.amazonaws.connect.event.message.read",deliveredReceipt:"application/vnd.amazonaws.connect.event.message.delivered",participantIdle:"application/vnd.amazonaws.connect.event.participant.idle",participantReturned:"application/vnd.amazonaws.connect.event.participant.returned",autoDisconnection:"application/vnd.amazonaws.connect.event.participant.autodisconnection"},y={[v.typing]:g.INCOMING_TYPING,[v.readReceipt]:g.INCOMING_READ_RECEIPT,[v.deliveredReceipt]:g.INCOMING_DELIVERED_RECEIPT,[v.participantIdle]:g.PARTICIPANT_IDLE,[v.participantReturned]:g.PARTICIPANT_RETURNED,[v.autoDisconnection]:g.AUTODISCONNECTION,default:g.INCOMING_MESSAGE},b=3540,w=n(975),E={assertTrue:function(t,n){if(!t)throw new e(n)},assertNotNull:function(e,t){return E.assertTrue(null!=e,(0,w.sprintf)("%s must be provided",t||"A value")),e},now:function(){return(new Date).getTime()},isString:function(e){return"string"==typeof e},randomId:function(){return(0,w.sprintf)("%s-%s",E.now(),Math.random().toString(36).slice(2))},assertIsNonEmptyString:function(e,t){if(!e||"string"!=typeof e)throw new r(t+" is not a non-empty string!")},assertIsList:function(e,t){if(!Array.isArray(e))throw new r(t+" is not an array")},assertIsEnum:function(e,t,n){var i;for(i=0;inew Promise((t=>setTimeout(t,e))),asyncWhileInterval:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,o=new Date;return t(r)?e(r).catch((i=>{var s=Math.max(0,n-(new Date).valueOf()+o.valueOf());return E.delay(s).then((()=>E.asyncWhileInterval(e,t,n,r+1,i)))})):Promise.reject(i||new Error("async while aborted"))},isAttachmentContentType:function(e){return e===v.applicationPdf||e===v.imageJpg||e===v.imagePng||e===v.applicationDoc||e===v.applicationXls||e===v.applicationPpt||e===v.textCsv||e===v.audioWav}};const C=E;var S={DEBUG:10,INFO:20,WARN:30,ERROR:40,ADVANCED_LOG:50},T=new class{constructor(){this.updateLoggerConfig()}writeToClientLogger(e,t,n){if(this.hasClientLogger()){var r=function(e){switch(e){case 10:return"DEBUG";case 20:return"INFO";case 30:return"WARN";case 40:return"ERROR";case 50:return"ADVANCED_LOG"}}(e);switch(e){case S.DEBUG:return this._clientLogger.debug(r,t,n)||t;case S.INFO:return this._clientLogger.info(r,t,n)||t;case S.WARN:return this._clientLogger.warn(r,t,n)||t;case S.ERROR:return this._clientLogger.error(r,t,n)||t;case S.ADVANCED_LOG:return this._advancedLogWriter&&this._clientLogger[this._advancedLogWriter]&&this._clientLogger[this._advancedLogWriter](r,t,n)||t}}}isLevelEnabled(e){return e>=this._level}hasClientLogger(){return null!==this._clientLogger}getLogger(){return new k(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})}updateLoggerConfig(e){var t=e||{};this._level=t.level||S.INFO,this._advancedLogWriter="warn",function(e,t){var n=t&&Object.keys(t);if(n&&-1===n.indexOf(e))return console.error("customizedLogger: incorrect value for loggerConfig:advancedLogWriter; use valid values from list ".concat(n," but used ").concat(e)),!1;var r=["warn","info","debug","log"];return!e||-1!==r.indexOf(e)||(console.error("incorrect value for loggerConfig:advancedLogWriter; use valid values from list ".concat(r," but used ").concat(e)),!1)}(t.advancedLogWriter,t.customizedLogger)&&(this._advancedLogWriter=t.advancedLogWriter),(t.customizedLogger&&"object"==typeof t.customizedLogger||t.logger&&"object"==typeof t.logger)&&(this.useClientLogger=!0),this._clientLogger=this.selectLogger(t)}selectLogger(e){return e.customizedLogger&&"object"==typeof e.customizedLogger?e.customizedLogger:e.logger&&"object"==typeof e.logger?e.logger:e.useDefaultLogger?_():null}};class I{debug(){}info(){}warn(){}error(){}}class k extends I{constructor(e){super(),this.options=e||{}}debug(){for(var e=arguments.length,t=new Array(e),n=0;n{var e=new I;return e.debug=console.debug.bind(window.console),e.info=console.info.bind(window.console),e.warn=console.warn.bind(window.console),e.error=console.error.bind(window.console),e},x=(n(228),n(493)),A=n.n(x);function R(e,t,n,r,i,o,s){try{var a=e[o](s),c=a.value}catch(e){return void n(e)}a.done?t(c):Promise.resolve(c).then(r,i)}function O(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 N(e){for(var t=1;tthis._submitEvent(e,t,n)),1e4,{trailing:!1,leading:!0}));var t=new AWS.Credentials("",""),n=new AWS.Config({region:e.region,endpoint:e.endpoint,credentials:t});this.chatClient=new AWS.ConnectParticipant(n),this.invokeUrl=e.endpoint,this.logger=T.getLogger({prefix:"Amazon-Connect-ChatJS-ChatClient",logMetaData:e.logMetaData})}createParticipantConnection(e,t,n){var r=this,i={ParticipantToken:e,Type:t,ConnectParticipant:n},o=r.chatClient.createParticipantConnection(i);return r._sendRequest(o).then((e=>{var t,n;return null===(t=r.logger.info("Successfully create connection request"))||void 0===t||null===(n=t.sendInternalLogToServer)||void 0===n||n.call(t),e})).catch((e=>{var t,n;return null===(t=r.logger.error("Error when creating connection request ",e))||void 0===t||null===(n=t.sendInternalLogToServer)||void 0===n||n.call(t),Promise.reject(e)}))}disconnectParticipant(e){var t=this,n={ConnectionToken:e},r=t.chatClient.disconnectParticipant(n);return t._sendRequest(r).then((e=>{var n,r;return null===(n=t.logger.info("Successfully disconnect participant"))||void 0===n||null===(r=n.sendInternalLogToServer)||void 0===r||r.call(n),e})).catch((e=>{var n,r;return null===(n=t.logger.error("Error when disconnecting participant ",e))||void 0===n||null===(r=n.sendInternalLogToServer)||void 0===r||r.call(n),Promise.reject(e)}))}getTranscript(e,t){var n={MaxResults:t.maxResults,NextToken:t.nextToken,ScanDirection:t.scanDirection,SortOrder:t.sortOrder,StartPosition:{Id:t.startPosition.id,AbsoluteTime:t.startPosition.absoluteTime,MostRecent:t.startPosition.mostRecent},ConnectionToken:e};t.contactId&&(n.ContactId=t.contactId);var r=this.chatClient.getTranscript(n);return this._sendRequest(r).then((e=>(this.logger.info("Successfully get transcript"),e))).catch((e=>(this.logger.error("Get transcript error",e),Promise.reject(e))))}sendMessage(e,t,n){var r={Content:t,ContentType:n,ConnectionToken:e},i=this.chatClient.sendMessage(r);return this._sendRequest(i).then((e=>{var t,n={id:null===(t=e.data)||void 0===t?void 0:t.Id,contentType:r.ContentType};return this.logger.debug("Successfully send message",n),e})).catch((e=>(this.logger.error("Send message error",e,{contentType:r.ContentType}),Promise.reject(e))))}sendAttachment(e,t,n){var r=this,i={ContentType:t.type,AttachmentName:t.name,AttachmentSizeInBytes:t.size,ConnectionToken:e},o=r.chatClient.startAttachmentUpload(i),s={contentType:t.type,size:t.size};return r._sendRequest(o).then((n=>r._uploadToS3(t,n.data.UploadMetadata).then((()=>{var t,i={AttachmentIds:[n.data.AttachmentId],ConnectionToken:e};this.logger.debug("Successfully upload attachment",N(N({},s),{},{attachmentId:null===(t=n.data)||void 0===t?void 0:t.AttachmentId}));var o=r.chatClient.completeAttachmentUpload(i);return r._sendRequest(o)})))).catch((e=>(this.logger.error("Upload attachment error",e,s),Promise.reject(e))))}_uploadToS3(e,t){return fetch(t.Url,{method:"PUT",headers:t.HeadersToInclude,body:e})}downloadAttachment(e,t){var n=this,r={AttachmentId:t,ConnectionToken:e},i={attachmentId:t},o=n.chatClient.getAttachment(r);return n._sendRequest(o).then((e=>(this.logger.debug("Successfully download attachment",i),n._downloadUrl(e.data.Url)))).catch((e=>(this.logger.error("Download attachment error",e,i),Promise.reject(e))))}_downloadUrl(e){return fetch(e).then((e=>e.blob())).catch((e=>Promise.reject(e)))}sendEvent(e,t,n){return t===v.typing?this.throttleEvent(e,t,n):this._submitEvent(e,t,n)}_submitEvent(e,t,n){var r,i=this;return(r=function*(){var r=i,o={ConnectionToken:e,ContentType:t,Content:n},s=r.chatClient.sendEvent(o),a={contentType:t};try{var c,u=yield r._sendRequest(s);return i.logger.debug("Successfully send event",N(N({},a),{},{id:null===(c=u.data)||void 0===c?void 0:c.Id})),u}catch(e){return yield Promise.reject(e)}},function(){var e=this,t=arguments;return new Promise((function(n,i){var o=r.apply(e,t);function s(e){R(o,n,i,s,a,"next",e)}function a(e){R(o,n,i,s,a,"throw",e)}s(void 0)}))})()}_sendRequest(e){return new Promise(((t,n)=>{e.on("success",(function(e){t(e)})).on("error",(function(e){var t={type:e.code,message:e.message,stack:e.stack?e.stack.split("\n"):[],statusCode:e.statusCode};n(t)})).send()}))}}var P=new class{constructor(){this.clientCache={}}getCachedClient(e,t){var n=Object.assign({},e),r=e.region||i.getRegion()||"us-west-2";if(n.region=r,t.region=r,this.clientCache[r])return this.clientCache[r];var o=this._createAwsClient(n,t);return this.clientCache[r]=o,o}_createAwsClient(e,t){var n=e.region,r=i.getEndpointOverride(),o="https://participant.connect.".concat(n,".amazonaws.com");return r&&(o=r),new M({endpoint:o,region:n,logMetaData:t})}};class D extends class{validateNewControllerDetails(e){return!0}validateSendMessage(e){if(!C.isString(e.message))throw new r(e.message+"is not a valid message");this.validateContentType(e.contentType)}validateContentType(e){C.assertIsEnum(e,Object.values(v),"contentType")}validateConnectChat(e){return!0}validateLogger(e){C.assertIsObject(e,"logger"),["debug","info","warn","error"].forEach((t=>{if(!C.isFunction(e[t]))throw new r(t+" should be a valid function on the passed logger object!")}))}validateSendEvent(e){this.validateContentType(e.contentType)}validateGetMessages(e){return!0}}{validateChatDetails(e,t){if(C.assertIsObject(e,"chatDetails"),t===s.AGENT&&!C.isFunction(e.getConnectionToken))throw new r("getConnectionToken was not a function",e.getConnectionToken);if(C.assertIsNonEmptyString(e.contactId,"chatDetails.contactId"),C.assertIsNonEmptyString(e.participantId,"chatDetails.participantId"),t===s.CUSTOMER){if(!e.participantToken)throw new r("participantToken was not provided for a customer session type",e.participantToken);C.assertIsNonEmptyString(e.participantToken,"chatDetails.participantToken")}}validateInitiateChatResponse(){return!0}normalizeChatDetails(e){var t={};return t.contactId=e.ContactId||e.contactId,t.participantId=e.ParticipantId||e.participantId,t.initialContactId=e.InitialContactId||e.initialContactId||t.contactId||t.ContactId,t.getConnectionToken=e.getConnectionToken||e.GetConnectionToken,(e.participantToken||e.ParticipantToken)&&(t.participantToken=e.ParticipantToken||e.participantToken),this.validateChatDetails(t),t}}var U="NeverStarted",q="Starting",j="Connected",F="ConnectionLost",W="Ended",B="ConnectionLost",z="ConnectionGained",H="Ended",V="IncomingMessage",G="<>",K=function(e,t,n){this.subMap=e,this.id=C.randomId(),this.eventName=t,this.f=n};K.prototype.unsubscribe=function(){this.subMap.unsubscribe(this.eventName,this.id)};var X=function(){this.subIdMap={},this.subEventNameMap={}};X.prototype.subscribe=function(e,t){var n=new K(this,e,t);this.subIdMap[n.id]=n;var r=this.subEventNameMap[e]||[];return r.push(n),this.subEventNameMap[e]=r,()=>n.unsubscribe()},X.prototype.unsubscribe=function(e,t){C.contains(this.subEventNameMap,e)&&(this.subEventNameMap[e]=this.subEventNameMap[e].filter((function(e){return e.id!==t})),this.subEventNameMap[e].length<1&&delete this.subEventNameMap[e]),C.contains(this.subIdMap,t)&&delete this.subIdMap[t]},X.prototype.getAllSubscriptions=function(){return C.values(this.subEventNameMap).reduce((function(e,t){return e.concat(t)}),[])},X.prototype.getSubscriptions=function(e){return this.subEventNameMap[e]||[]};var J=function(e){var t=e||{};this.subMap=new X,this.logEvents=t.logEvents||!1};J.prototype.subscribe=function(e,t){return C.assertNotNull(e,"eventName"),C.assertNotNull(t,"f"),C.assertTrue(C.isFunction(t),"f must be a function"),this.subMap.subscribe(e,t)},J.prototype.subscribeAll=function(e){return C.assertNotNull(e,"f"),C.assertTrue(C.isFunction(e),"f must be a function"),this.subMap.subscribe(G,e)},J.prototype.getSubscriptions=function(e){return this.subMap.getSubscriptions(e)},J.prototype.trigger=function(e,t){C.assertNotNull(e,"eventName");var n=this,r=this.subMap.getSubscriptions(G),i=this.subMap.getSubscriptions(e);r.concat(i).forEach((function(r){try{r.f(t||null,e,n)}catch(e){}}))},J.prototype.triggerAsync=function(e,t){setTimeout((()=>this.trigger(e,t)),0)},J.prototype.bridge=function(){var e=this;return function(t,n){e.trigger(n,t)}},J.prototype.unsubscribeAll=function(){this.subMap.getAllSubscriptions().forEach((function(e){e.unsubscribe()}))};var Y="Category",$=new class{constructor(){this.widgetType="CustomChatWidget",this.logger=T.getLogger({prefix:"ChatJS-csmService"}),this.csmInitialized=!1,this.metricsToBePublished=[],this.agentMetricToBePublished=[],this.MAX_RETRY=5}loadCsmScriptAndExecute(){try{var e=document.createElement("script");e.type="text/javascript",e.innerHTML="(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n csm.EVENT_TYPE = {\n LOG: 'LOG',\n METRIC: 'METRIC',\n CONFIG: 'CONFIG',\n WORKFLOW_EVENT: 'WORKFLOW_EVENT',\n CUSTOM: 'CUSTOM',\n CLOSE: 'CLOSE',\n SET_AUTH: 'SET_AUTH',\n SET_CONFIG: 'SET_CONFIG',\n };\n\n csm.UNIT = {\n COUNT: 'Count',\n SECONDS: 'Seconds',\n MILLISECONDS: 'Milliseconds',\n MICROSECONDS: 'Microseconds',\n };\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const MAX_METRIC_DIMENSIONS = 10;\n\n /** ********* Dimension Classes ***********/\n\n const Dimension = function(name, value) {\n csm.Util.assertExist(name, 'name');\n csm.Util.assertExist(value, 'value');\n\n this.name = name;\n this.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n };\n\n\n /** ********* Metric Classes ***********/\n\n const Metric = function(metricName, unit, value, dedupeOptions) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(value, 'value');\n csm.Util.assertExist(unit, 'unit');\n csm.Util.assertTrue(csm.Util.isValidUnit(unit));\n if (dedupeOptions) {\n csm.Util.assertInObject(dedupeOptions, 'dedupeOptions', 'dedupeIntervalMs');\n }\n\n this.metricName = metricName;\n this.unit = unit;\n this.value = value;\n this.timestamp = new Date();\n this.dimensions = csm.globalDimensions ? csm.Util.deepCopy(csm.globalDimensions): [];\n this.namespace = csm.configuration.namespace;\n this.dedupeOptions = dedupeOptions; // optional. { dedupeIntervalMs: (int; required), context: (string; optional) }\n\n // Currently, CloudWatch can't aggregate metrics by a subset of dimensions.\n // To bypass this limitation, we introduce the optional dimensions concept to CSM.\n // The CSM metric publisher will publish a default metric without optional dimension\n // For each optional dimension, the CSM metric publisher publishes an extra metric with that dimension.\n this.optionalDimensions = csm.globalOptionalDimensions ? csm.Util.deepCopy(csm.globalOptionalDimensions): [];\n };\n\n Metric.prototype.addDimension = function(name, value) {\n this._addDimensionHelper(this.dimensions, name, value);\n };\n\n Metric.prototype.addOptionalDimension = function(name, value) {\n this._addDimensionHelper(this.optionalDimensions, name, value);\n };\n\n Metric.prototype._addDimensionHelper = function(targetDimensions, name, value) {\n // CloudWatch metric allows maximum 10 dimensions\n // http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#putMetricData-property\n if ((this.dimensions.length + this.optionalDimensions.length) >= MAX_METRIC_DIMENSIONS) {\n throw new csm.ExceedDimensionLimitException(name);\n }\n\n const existing = targetDimensions.find(function(dimension) {\n return dimension.name === name;\n });\n\n if (existing) {\n existing.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n } else {\n targetDimensions.push(new Dimension(name, value));\n }\n };\n\n\n /** ********* Telemetry Classes ***********/\n\n const WorkflowEvent = function(params) {\n this.timestamp = params.timestamp || new Date().getTime();\n this.workflowType = params.workflow.type;\n this.instanceId = params.workflow.instanceId;\n this.userId = params.userId;\n this.organizationId = params.organizationId;\n this.accountId = params.accountId;\n this.event = params.event;\n this.appName = params.appName;\n this.data = [];\n\n // Convert 'data' map into the KeyValuePairList structure expected by the Lambda API\n for (const key in params.data) {\n if (Object.prototype.hasOwnProperty.call(params.data, key)) {\n this.data.push({'key': key, 'value': params.data[key]});\n }\n }\n };\n\n /** ********* Exceptions ***********/\n\n const NullOrUndefinedException = function(paramName) {\n this.name = 'NullOrUndefinedException';\n this.message = paramName + ' is null or undefined. ';\n };\n NullOrUndefinedException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const AssertTrueException = function() {\n this.name = 'AssertTrueException';\n this.message = 'Assertion failed. ';\n };\n AssertTrueException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const ExceedDimensionLimitException = function(dimensionName) {\n this.name = 'ExceedDimensionLimitException';\n this.message = 'Could not add dimension \\'' + dimensionName + '\\'. Metric has maximum 10 dimensions. ';\n };\n ExceedDimensionLimitException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const InitializationException = function() {\n this.name = 'InitializationException';\n this.message = 'Initialization failed. ';\n };\n InitializationException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n\n csm.Dimension = Dimension;\n csm.Metric = Metric;\n csm.WorkflowEvent = WorkflowEvent;\n csm.NullOrUndefinedException = NullOrUndefinedException;\n csm.AssertTrueException = AssertTrueException;\n csm.InitializationException = InitializationException;\n csm.ExceedDimensionLimitException = ExceedDimensionLimitException;\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const validTimeUnits = [csm.UNIT.SECONDS, csm.UNIT.MILLISECONDS, csm.UNIT.MICROSECONDS];\n const validUnits = validTimeUnits.concat(csm.UNIT.COUNT);\n\n const Util = {\n assertExist: function(value, paramName) {\n if (value === null || value === undefined) {\n throw new csm.NullOrUndefinedException(paramName);\n }\n },\n assertTrue: function(value) {\n if (!value) {\n throw new csm.AssertTrueException();\n }\n },\n assertInObject: function(obj, objName, key) {\n if (obj === null || obj === undefined || typeof obj !== 'object') {\n throw new csm.NullOrUndefinedException(objName);\n }\n if (key === null || key === undefined || !obj[key]) {\n throw new csm.NullOrUndefinedException(`${objName}[${key}]`);\n }\n },\n isValidUnit: function(unit) {\n return validUnits.includes(unit);\n },\n isValidTimeUnit: function(unit) {\n return validTimeUnits.includes(unit);\n },\n isEmpty: function(value) {\n if (value !== null && typeof val === 'object') {\n return Objects.keys(value).length === 0;\n }\n return !value;\n },\n deepCopy: function(obj) {\n // NOTE: this will fail if obj has a circular reference\n return JSON.parse(JSON.stringify(obj));\n },\n\n /**\n * This function is used before setting the page location for default metrics and logs,\n * and the APIs that set page location\n * Can be overridden by calling csm.API.setPageLocationTransformer(function(){})\n * @param {string} pathname path for page location\n * @return {string} pathname provided\n */\n pageLocationTransformer: function(pathname) {\n return pathname;\n },\n\n /**\n * As of now, our service public claims only support for Firefox and Chrome\n * Reference https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent\n *\n * This function will only return firefox, chrome and others\n *\n * Best practice as indicated in MDN, \"Avoiding user agent detection\"\n */\n getBrowserDetails: function() {\n const userAgent = window.navigator.userAgent;\n const details = {};\n if (userAgent.includes('Firefox') && !userAgent.includes('Seamonkey')) {\n details.name = 'Firefox';\n details.version = getBrowserVersion('Firefox');\n } else if (userAgent.includes('Chrome') && !userAgent.includes('Chromium')) {\n details.name = 'Chrome';\n details.version = getBrowserVersion('Chrome');\n }\n },\n\n randomId: function() {\n return new Date().getTime() + '-' + Math.random().toString(36).slice(2);\n },\n\n getOrigin: function() {\n return document.location.origin;\n },\n\n getReferrerUrl: function() {\n const referrer = document.referrer || '';\n return this.getURLOrigin(referrer);\n },\n\n getWindowParent: function() {\n let parentLocation = '';\n try {\n parentLocation = window.parent.location.href;\n } catch (e) {\n parentLocation = '';\n }\n return parentLocation;\n },\n\n getURLOrigin: function(urlValue) {\n let origin = '';\n const originArray = urlValue.split( '/' );\n if (originArray.length >= 3) {\n const protocol = originArray[0];\n const host = originArray[2];\n origin = protocol + '//' + host;\n }\n return origin;\n },\n\n };\n\n const getBrowserVersion = function(browserName) {\n const userAgent = window.navigator.userAgent;\n const browserNameIndex = userAgent.indexOf(browserName);\n const nextSpaceIndex = userAgent.indexOf(' ', browserNameIndex);\n if (nextSpaceIndex === -1) {\n return userAgent.substring(browserNameIndex + browserName.length + 1, userAgent.length);\n } else {\n return userAgent.substring(browserNameIndex + browserName.length + 1, nextSpaceIndex);\n }\n };\n\n csm.Util = Util;\n})();\n\n(function() {\n const global = window;\n const csm = global.csm || {};\n global.csm = csm;\n\n csm.globalDimensions = []; // These dimensions are added to all captured metrics.\n csm.globalOptionalDimensions = [];\n csm.initFailureDimensions = [];\n\n const API = {\n getWorkflow: function(workflowType, instanceId, data) {\n return csm.workflow(workflowType, instanceId, data);\n },\n\n addMetric: function(metric) {\n csm.Util.assertExist(metric, 'metric');\n csm.putMetric(metric);\n },\n\n addMetricWithDedupe: function(metric, dedupeIntervalMs, context) {\n csm.Util.assertExist(metric, 'metric');\n csm.Util.assertExist(metric, 'dedupeIntervalMs');\n // context is optional; if present it will only dedupe on metrics with the same context. ex.) tabId\n metric.dedupeOptions = {dedupeIntervalMs, context: context || 'global'};\n csm.putMetric(metric);\n },\n\n addCount: function(metricName, count) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(count, 'count');\n\n const metric = new csm.Metric(metricName, csm.UNIT.COUNT, count);\n csm.putMetric(metric);\n },\n\n addCountWithPageLocation: function(metricName) {\n csm.Util.assertExist(metricName, 'metricName');\n\n const metric = new csm.Metric(metricName, csm.UNIT.COUNT, 1.0);\n metric.addDimension('WindowLocation', csm.Util.pageLocationTransformer(window.location.pathname));\n csm.putMetric(metric);\n },\n\n addError: function(metricName, count) {\n csm.Util.assertExist(metricName, 'metricName');\n\n if (count === undefined || count == null) {\n count = 1.0;\n }\n const metric = new csm.Metric(metricName, csm.UNIT.COUNT, count);\n metric.addDimension('Metric', 'Error');\n csm.putMetric(metric);\n },\n\n addSuccess: function(metricName) {\n API.addError(metricName, 0);\n },\n\n addTime: function(metricName, time, unit) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(time, 'time');\n\n let timeUnit = csm.UNIT.MILLISECONDS;\n if (unit && csm.Util.isValidTimeUnit(unit)) {\n timeUnit = unit;\n }\n const metric = new csm.Metric(metricName, timeUnit, time);\n metric.addDimension('Metric', 'Time');\n csm.putMetric(metric);\n },\n\n addTimeWithPageLocation: function(metricName, time, unit) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(time, 'time');\n\n let timeUnit = csm.UNIT.MILLISECONDS;\n if (unit && csm.Util.isValidTimeUnit(unit)) {\n timeUnit = unit;\n }\n const metric = new csm.Metric(metricName, timeUnit, time);\n metric.addDimension('WindowLocation', csm.Util.pageLocationTransformer(window.location.pathname));\n csm.putMetric(metric);\n },\n\n pageReady: function() {\n if (window.performance && window.performance.now) {\n const pageLoadTime = window.performance.now();\n const metric = new csm.Metric('PageReadyLatency', csm.UNIT.MILLISECONDS, pageLoadTime);\n metric.addDimension('WindowLocation', csm.Util.pageLocationTransformer(window.location.pathname));\n csm.putMetric(metric);\n }\n },\n\n setPageLocationTransformer: function(transformFunc) {\n csm.Util.assertExist(transformFunc, 'transformFunc');\n csm.Util.assertTrue((typeof transformFunc) === 'function');\n csm.Util.pageLocationTransformer = transformFunc;\n },\n\n setGlobalDimensions: function(dimensions) {\n csm.Util.assertExist(dimensions, 'dimensions');\n csm.globalDimensions = dimensions;\n },\n\n setGlobalOptionalDimensions: function(dimensions) {\n csm.Util.assertExist(dimensions, 'dimensions');\n csm.globalOptionalDimensions = dimensions;\n },\n\n setInitFailureDimensions: function(dimensions) {\n csm.Util.assertExist(dimensions, 'dimensions');\n csm.initFailureDimensions = dimensions;\n },\n\n putCustom: function(endpoint, headers, data) {\n csm.Util.assertExist(data, 'data');\n csm.Util.assertExist(endpoint, 'endpoint');\n csm.Util.assertExist(headers, 'headers');\n csm.putCustom(endpoint, headers, data);\n },\n\n setAuthParams: function(authParams) {\n csm.setAuthParams(authParams);\n },\n\n setConfig: function(key, value) {\n csm.Util.assertExist(key, 'key');\n csm.Util.assertExist(value, 'value');\n if (!csm.configuration[key]) {\n csm.setConfig(key, value); // set configuration variables such as accountId, instanceId, userId\n }\n },\n };\n\n csm.API = API;\n})();\n\n(function() {\n const global = window;\n const csm = global.csm || {};\n global.csm = csm;\n\n const WORKFLOW_KEY_PREFIX = 'csm.workflow';\n\n /**\n * Calculates the local storage key used to store a workflow of the specified type.\n * @param {string} type of workflow\n * @return {string} storage key\n */\n const getWorkflowKeyForType = function(type) {\n return [\n WORKFLOW_KEY_PREFIX,\n type,\n ].join('.');\n };\n\n /**\n * Constructor for new Workflow objects.\n *\n * If you need to be able to share a workflow across tabs, it is recommended\n * to use \"csm.workflow\" to create/hydrate your workflows instead.\n * @param {string} type of workflow\n * @param {string} instanceId of workflow\n * @param {JSON} data blob associated with workflow\n */\n const Workflow = function(type, instanceId, data) {\n this.type = type;\n this.instanceId = instanceId || csm.Util.randomId();\n this.instanceSpecified = instanceId || false;\n this.eventMap = {};\n this.data = data || {};\n\n // Merge global dimensions into the data map.\n const dimensionData = {};\n csm.globalDimensions.forEach(function(dimension) {\n dimensionData[dimension.name] = dimension.value;\n });\n csm.globalOptionalDimensions.forEach(function(dimension) {\n dimensionData[dimension.name] = dimension.value;\n });\n this.data = this._mergeData(dimensionData);\n };\n\n /**\n * Create a new workflow or rehydrate an existing shared workflow.\n *\n * @param {string} type The type of workflow to be created.\n * @param {string} instanceId The instanceId of the workflow. If not provided, it will be\n * assigned a random ID and will not be automatically saved to local storage.\n * If provided, we will attempt to load an existing workflow of the same type\n * from local storage and rehydrate it.\n * @param {JSON} data An optional map of key/value pairs to be added as data to every\n * workflow event created with this workflow.\n * @return {Workflow} workflow event\n * NOTE: Only one workflow of each type can be stored at the same time, to avoid\n * overloading localStorage with unused workflow records.\n */\n csm.workflow = function(type, instanceId, data) {\n let workflow = new Workflow(type, instanceId, data);\n\n if (instanceId) {\n const savedWorkflow = csm._loadWorkflow(type);\n if (savedWorkflow && savedWorkflow.instanceId === instanceId) {\n workflow = savedWorkflow;\n workflow.addData(data || {});\n }\n }\n\n return workflow;\n };\n\n csm._loadWorkflow = function(type) {\n let workflow = null;\n const workflowJson = localStorage.getItem(getWorkflowKeyForType(type));\n const workflowStruct = workflowJson ? JSON.parse(workflowJson) : null;\n if (workflowStruct) {\n workflow = new Workflow(type, workflowStruct.instanceId);\n workflow.eventMap = workflowStruct.eventMap;\n }\n return workflow;\n };\n\n /**\n * Creates a new workflow event and returns it. Then this workflow event is sent upstream\n * to the CSMSharedWorker where it is provided to the backend.\n *\n * If an instanceId was specified when the workflow was created, this will also save the workflow\n * and all of its events to localStorage.\n *\n * @param {string} event The name of the event that occurred.\n * @param {JSON} data An optional free-form key attribute pair of metadata items that will be stored\n * and reported backstream with the workflow event.\n * @return {WorkflowEvent} workflowEvent\n */\n Workflow.prototype.event = function(event, data) {\n const mergedData = this._mergeData(data || {});\n const workflowEvent = new csm.WorkflowEvent({\n workflow: this,\n event: event,\n data: mergedData,\n userId: csm.configuration.userId || '',\n organizationId: csm.configuration.organizationId || '',\n accountId: csm.configuration.accountId || '',\n appName: csm.configuration.namespace || '',\n });\n csm.putWorkflowEvent(workflowEvent);\n this.eventMap[event] = workflowEvent;\n if (this.instanceSpecified) {\n this.save();\n }\n return workflowEvent;\n };\n\n /**\n * Creates a new workflow event and returns it, if the same event is not happened in ths past\n * dedupeIntervalMs milliseconds.\n * @param {string} event The name of the event that occurred.\n * @param {JSON} data An optional free-form key attribute pair of metadata items that will be stored\n * and reported backstream with the workflow event.\n * @param {int} dedupeIntervalMs defaults to 200 MS\n * @return {WorkflowEvent} workflowEvent\n */\n Workflow.prototype.eventWithDedupe = function(event, data, dedupeIntervalMs) {\n const pastEvent = this.getPastEvent(event);\n const now = new Date().getTime();\n const interval = dedupeIntervalMs || 200;\n\n // Crafting the expected workflow event data result\n const mergedData = this._mergeData(data);\n const expectedData = [];\n for (const key in mergedData) {\n if (Object.prototype.hasOwnProperty.call(mergedData, key)) {\n expectedData.push({'key': key, 'value': mergedData[key]});\n }\n }\n\n // Deduplicate same events that happened within interval\n if (!pastEvent || (pastEvent && JSON.stringify(pastEvent.data) !== JSON.stringify(expectedData)) ||\n (pastEvent && (now - pastEvent.timestamp > interval))) {\n return this.event(event, data);\n }\n return null;\n };\n\n /**\n * Get a past event if it exists in this workflow, otherwise returns null.\n * This can be helpful to emit metrics in real time based on the differences\n * between workflow event timestamps, especially for workflows shared across tabs.\n * @param {string} event key to see if workflow exists for this event\n * @return {WorkflowEvent} workflow event retrieved\n */\n Workflow.prototype.getPastEvent = function(event) {\n return event in this.eventMap ? this.eventMap[event] : null;\n };\n\n /**\n * Save the workflow to local storage. This only happens automatically when an\n * instanceId is specified on workflow creation, however if this method is called\n * explicitly by the client, the randomly generated workflow instance id can be\n * used to retrieve the workflow later and automatic save on events will be enabled.\n */\n Workflow.prototype.save = function() {\n this.instanceSpecified = true;\n localStorage.setItem(getWorkflowKeyForType(this.type), JSON.stringify(this));\n };\n\n /**\n * Remove this workflow if it is the saved instance for this workflow type in localStorage.\n */\n Workflow.prototype.close = function() {\n const storedWorkflow = csm._loadWorkflow(this.type);\n if (storedWorkflow && storedWorkflow.instanceId === this.instanceId) {\n localStorage.removeItem(getWorkflowKeyForType(this.type));\n }\n };\n\n Workflow.prototype.addData = function(data) {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n this.data[key] = data[key];\n }\n }\n };\n\n Workflow.prototype._mergeData = function(data) {\n const mergedData = {};\n let key = null;\n for (key in this.data) {\n if (Object.prototype.hasOwnProperty.call(this.data, key)) {\n mergedData[key] = this.data[key] == null ? 'null' : (this.data[key] === '' ? ' ' : this.data[key].toString());\n }\n }\n for (key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n mergedData[key] = data[key] == null ? 'null' : (data[key] === '' ? ' ' : data[key].toString());\n }\n }\n return mergedData;\n };\n})();\n\n(function() {\n const global = window;\n const csm = global.csm || {};\n global.csm = csm;\n\n let worker = null;\n let portId = null;\n\n const MAX_INIT_MILLISECONDS = 5000;\n const preInitTaskQueue = [];\n csm.configuration = {};\n\n /**\n * Initialize CSM variables\n * @param {object} params for CSM\n * @params.namespace Define your metric namespace used in CloudWatch metrics\n * @params.sharedWorkerUrl Specify the relative url to the connect-csm-worker.js file in your service\n * @params.endpoint Specify an LDAS endpoint to use.\n * @params.dryRunMode When CSM is initialized with dry run mode, it won't actually publish metrics.\n * @params.defaultMetrics Enable default metrics. Default to false.\n */\n csm.initCSM = function(params) {\n csm.Util.assertExist(params.namespace, 'namespace');\n csm.Util.assertExist(params.sharedWorkerUrl, 'sharedWorkerUrl');\n csm.Util.assertExist(params.endpoint, 'endpoint');\n\n try {\n console.log('Starting csm shared worker with', params.sharedWorkerUrl);\n worker = new SharedWorker(params.sharedWorkerUrl, 'CSM_SharedWorker');\n worker.port.start();\n } catch (e) {\n console.log('Failed to initialize csm shared worker with', params.sharedWorkerUrl);\n console.log(e.message);\n }\n\n /**\n * Configure shared worker\n */\n csm.configuration = {\n namespace: params.namespace,\n userId: params.userId || '',\n accountId: params.accountId || '',\n organizationId: params.organizationId || '',\n endpointUrl: params.endpoint || null,\n batchSettings: params.batchSettings || null,\n addPageVisibilityDimension: params.addPageVisibilityDimension || false,\n addUrlDataDimensions: params.addUrlDataDimensions || false,\n dryRunMode: params.dryRunMode || false, // When csm is in dryRunMode it won't actually publish metrics to CSM\n };\n\n postEventToWorker(csm.EVENT_TYPE.CONFIG, csm.configuration);\n\n /**\n * Receive message from shared worker\n * @param {MessageEvent} messageEvent from shared worker\n */\n worker.port.onmessage = function(messageEvent) {\n const messageType = messageEvent.data.type;\n onMessageFromWorker(messageType, messageEvent.data);\n };\n\n /**\n * Inform shared worker window closed\n */\n global.onbeforeunload = function() {\n worker.port.postMessage(\n {\n type: csm.EVENT_TYPE.CLOSE,\n portId: portId,\n },\n );\n };\n\n /**\n * Check if initialization success\n */\n global.setTimeout(function() {\n if (!isCSMInitialized()) {\n console.log('[FATAL] CSM initialization failed! Please make sure the sharedWorkerUrl is reachable.');\n }\n }, MAX_INIT_MILLISECONDS);\n\n // Emit out of the box metrics\n if (params.defaultMetrics) {\n emitDefaultMetrics();\n }\n };\n // Final processing before sending to SharedWorker\n const processMetric = function(metric) {\n if (csm.configuration.addPageVisibilityDimension && document.visibilityState) {\n metric.addOptionalDimension('VisibilityState', document.visibilityState);\n }\n };\n\n const processWorkflowEvent = function(event) {\n if (csm.configuration.addUrlDataDimensions) {\n event.data.push({'key': 'ReferrerUrl', 'value': csm.Util.getReferrerUrl()});\n event.data.push({'key': 'Origin', 'value': csm.Util.getOrigin()});\n event.data.push({'key': 'WindowParent', 'value': csm.Util.getWindowParent()});\n }\n if (['initFailure', 'initializationLatencyInfo'].includes(event.event)) {\n csm.initFailureDimensions.forEach((dimension) => {\n Object.keys(dimension).forEach((key) => {\n event.data.push({'key': key, 'value': dimension[key]});\n });\n });\n }\n return event;\n };\n\n csm.putMetric = function(metric) {\n processMetric(metric);\n postEventToWorker(csm.EVENT_TYPE.METRIC, metric);\n };\n\n csm.putLog = function(log) {\n postEventToWorker(csm.EVENT_TYPE.LOG, log);\n };\n\n csm.putWorkflowEvent = function(event) {\n const processedEvent = processWorkflowEvent(event);\n postEventToWorker(csm.EVENT_TYPE.WORKFLOW_EVENT, processedEvent);\n };\n\n csm.putCustom = function(endpoint, headers, data) {\n postEventToWorker(csm.EVENT_TYPE.CUSTOM, data, endpoint, headers);\n };\n\n csm.setAuthParams = function(authParams) {\n postEventToWorker(csm.EVENT_TYPE.SET_AUTH, authParams);\n };\n\n csm.setConfig = function(key, value) {\n csm.configuration[key] = value;\n postEventToWorker(csm.EVENT_TYPE.SET_CONFIG, {key, value});\n };\n /** ********************** PRIVATE METHODS ************************/\n\n const onMessageFromWorker = function(messageType, data) {\n if (messageType === csm.EVENT_TYPE.CONFIG) {\n portId = data.portId;\n onCSMInitialized();\n }\n };\n\n const onCSMInitialized = function() {\n // Purge the preInitTaskQueue\n preInitTaskQueue.forEach(function(task) {\n postEventToWorker(task.type, task.message, task.endpoint, task.headers);\n });\n\n // TODO: Capture on errors and publish log to shared worker\n /**\n window.onerror = function(message, fileName, lineNumber, columnNumber, errorstack) {\n var log = new csm.Log(message, fileName, lineNumber, columnNumber, errorstack.stack);\n csm.putLog(log);\n };\n */\n };\n\n /**\n * Emit out of the box metrics automatically\n *\n * TODO allow configuration\n */\n const emitDefaultMetrics = function() {\n window.addEventListener('load', function() {\n // loadEventEnd is avaliable after the onload function finished\n // https://www.w3.org/TR/navigation-timing-2/#processing-model\n // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\n global.setTimeout(function() {\n try {\n const perfData = window.performance.getEntriesByType('navigation')[0];\n const pageLoadTime = perfData.loadEventEnd - perfData.startTime;\n const connectTime = perfData.responseEnd - perfData.requestStart;\n const domRenderTime = perfData.domComplete - perfData.domInteractive;\n csm.API.addCountWithPageLocation('PageLoad');\n csm.API.addTimeWithPageLocation('PageLoadTime', pageLoadTime);\n csm.API.addTimeWithPageLocation('ConnectTime', connectTime);\n csm.API.addTimeWithPageLocation('DomRenderTime', domRenderTime);\n } catch (err) {\n console.log('Error emitting default metrics', err);\n }\n }, 0);\n });\n };\n\n /**\n * Try posting message to shared worker\n * If shared worker hasn't been initialized, put the task to queue to be clean up once initialized\n * @param {csm.EVENT_TYPE} eventType for CSM\n * @param {object} message event following type of eventType\n * @param {string} [endpoint] optional parameter for putCustom function (put any data to specified endpoint)\n * @param {object} [headers] optional parameter for putCustom function\n */\n const postEventToWorker = function(eventType, message, endpoint, headers) {\n if (eventType === csm.EVENT_TYPE.CONFIG || isCSMInitialized()) {\n worker.port.postMessage(\n {\n type: eventType,\n portId: portId,\n message: message,\n endpoint: endpoint,\n headers: headers,\n },\n );\n } else {\n preInitTaskQueue.push({\n type: eventType,\n message: message,\n endpoint: endpoint,\n headers: headers,\n });\n }\n };\n\n const isCSMInitialized = function() {\n return portId !== null;\n };\n})()",document.head.appendChild(e),this.initializeCSM()}catch(e){this.logger.error("Load csm script error: ",e)}}initializeCSM(){try{if(this.csmInitialized)return;var e=i.getRegion(),t="(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n csm.EVENT_TYPE = {\n LOG: 'LOG',\n METRIC: 'METRIC',\n CONFIG: 'CONFIG',\n WORKFLOW_EVENT: 'WORKFLOW_EVENT',\n CUSTOM: 'CUSTOM',\n CLOSE: 'CLOSE',\n SET_AUTH: 'SET_AUTH',\n SET_CONFIG: 'SET_CONFIG',\n };\n\n csm.UNIT = {\n COUNT: 'Count',\n SECONDS: 'Seconds',\n MILLISECONDS: 'Milliseconds',\n MICROSECONDS: 'Microseconds',\n };\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const MAX_METRIC_DIMENSIONS = 10;\n\n /** ********* Dimension Classes ***********/\n\n const Dimension = function(name, value) {\n csm.Util.assertExist(name, 'name');\n csm.Util.assertExist(value, 'value');\n\n this.name = name;\n this.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n };\n\n\n /** ********* Metric Classes ***********/\n\n const Metric = function(metricName, unit, value, dedupeOptions) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(value, 'value');\n csm.Util.assertExist(unit, 'unit');\n csm.Util.assertTrue(csm.Util.isValidUnit(unit));\n if (dedupeOptions) {\n csm.Util.assertInObject(dedupeOptions, 'dedupeOptions', 'dedupeIntervalMs');\n }\n\n this.metricName = metricName;\n this.unit = unit;\n this.value = value;\n this.timestamp = new Date();\n this.dimensions = csm.globalDimensions ? csm.Util.deepCopy(csm.globalDimensions): [];\n this.namespace = csm.configuration.namespace;\n this.dedupeOptions = dedupeOptions; // optional. { dedupeIntervalMs: (int; required), context: (string; optional) }\n\n // Currently, CloudWatch can't aggregate metrics by a subset of dimensions.\n // To bypass this limitation, we introduce the optional dimensions concept to CSM.\n // The CSM metric publisher will publish a default metric without optional dimension\n // For each optional dimension, the CSM metric publisher publishes an extra metric with that dimension.\n this.optionalDimensions = csm.globalOptionalDimensions ? csm.Util.deepCopy(csm.globalOptionalDimensions): [];\n };\n\n Metric.prototype.addDimension = function(name, value) {\n this._addDimensionHelper(this.dimensions, name, value);\n };\n\n Metric.prototype.addOptionalDimension = function(name, value) {\n this._addDimensionHelper(this.optionalDimensions, name, value);\n };\n\n Metric.prototype._addDimensionHelper = function(targetDimensions, name, value) {\n // CloudWatch metric allows maximum 10 dimensions\n // http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#putMetricData-property\n if ((this.dimensions.length + this.optionalDimensions.length) >= MAX_METRIC_DIMENSIONS) {\n throw new csm.ExceedDimensionLimitException(name);\n }\n\n const existing = targetDimensions.find(function(dimension) {\n return dimension.name === name;\n });\n\n if (existing) {\n existing.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n } else {\n targetDimensions.push(new Dimension(name, value));\n }\n };\n\n\n /** ********* Telemetry Classes ***********/\n\n const WorkflowEvent = function(params) {\n this.timestamp = params.timestamp || new Date().getTime();\n this.workflowType = params.workflow.type;\n this.instanceId = params.workflow.instanceId;\n this.userId = params.userId;\n this.organizationId = params.organizationId;\n this.accountId = params.accountId;\n this.event = params.event;\n this.appName = params.appName;\n this.data = [];\n\n // Convert 'data' map into the KeyValuePairList structure expected by the Lambda API\n for (const key in params.data) {\n if (Object.prototype.hasOwnProperty.call(params.data, key)) {\n this.data.push({'key': key, 'value': params.data[key]});\n }\n }\n };\n\n /** ********* Exceptions ***********/\n\n const NullOrUndefinedException = function(paramName) {\n this.name = 'NullOrUndefinedException';\n this.message = paramName + ' is null or undefined. ';\n };\n NullOrUndefinedException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const AssertTrueException = function() {\n this.name = 'AssertTrueException';\n this.message = 'Assertion failed. ';\n };\n AssertTrueException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const ExceedDimensionLimitException = function(dimensionName) {\n this.name = 'ExceedDimensionLimitException';\n this.message = 'Could not add dimension ' + dimensionName + ' . Metric has maximum 10 dimensions. ';\n };\n ExceedDimensionLimitException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const InitializationException = function() {\n this.name = 'InitializationException';\n this.message = 'Initialization failed. ';\n };\n InitializationException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n\n csm.Dimension = Dimension;\n csm.Metric = Metric;\n csm.WorkflowEvent = WorkflowEvent;\n csm.NullOrUndefinedException = NullOrUndefinedException;\n csm.AssertTrueException = AssertTrueException;\n csm.InitializationException = InitializationException;\n csm.ExceedDimensionLimitException = ExceedDimensionLimitException;\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const validTimeUnits = [csm.UNIT.SECONDS, csm.UNIT.MILLISECONDS, csm.UNIT.MICROSECONDS];\n const validUnits = validTimeUnits.concat(csm.UNIT.COUNT);\n\n const Util = {\n assertExist: function(value, paramName) {\n if (value === null || value === undefined) {\n throw new csm.NullOrUndefinedException(paramName);\n }\n },\n assertTrue: function(value) {\n if (!value) {\n throw new csm.AssertTrueException();\n }\n },\n assertInObject: function(obj, objName, key) {\n if (obj === null || obj === undefined || typeof obj !== 'object') {\n throw new csm.NullOrUndefinedException(objName);\n }\n if (key === null || key === undefined || !obj[key]) {\n throw new csm.NullOrUndefinedException(`${objName}[${key}]`);\n }\n },\n isValidUnit: function(unit) {\n return validUnits.includes(unit);\n },\n isValidTimeUnit: function(unit) {\n return validTimeUnits.includes(unit);\n },\n isEmpty: function(value) {\n if (value !== null && typeof val === 'object') {\n return Objects.keys(value).length === 0;\n }\n return !value;\n },\n deepCopy: function(obj) {\n // NOTE: this will fail if obj has a circular reference\n return JSON.parse(JSON.stringify(obj));\n },\n\n /**\n * This function is used before setting the page location for default metrics and logs,\n * and the APIs that set page location\n * Can be overridden by calling csm.API.setPageLocationTransformer(function(){})\n * @param {string} pathname path for page location\n * @return {string} pathname provided\n */\n pageLocationTransformer: function(pathname) {\n return pathname;\n },\n\n /**\n * As of now, our service public claims only support for Firefox and Chrome\n * Reference https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent\n *\n * This function will only return firefox, chrome and others\n *\n * Best practice as indicated in MDN, \"Avoiding user agent detection\"\n */\n getBrowserDetails: function() {\n const userAgent = window.navigator.userAgent;\n const details = {};\n if (userAgent.includes('Firefox') && !userAgent.includes('Seamonkey')) {\n details.name = 'Firefox';\n details.version = getBrowserVersion('Firefox');\n } else if (userAgent.includes('Chrome') && !userAgent.includes('Chromium')) {\n details.name = 'Chrome';\n details.version = getBrowserVersion('Chrome');\n }\n },\n\n randomId: function() {\n return new Date().getTime() + '-' + Math.random().toString(36).slice(2);\n },\n\n getOrigin: function() {\n return document.location.origin;\n },\n\n getReferrerUrl: function() {\n const referrer = document.referrer || '';\n return this.getURLOrigin(referrer);\n },\n\n getWindowParent: function() {\n let parentLocation = '';\n try {\n parentLocation = window.parent.location.href;\n } catch (e) {\n parentLocation = '';\n }\n return parentLocation;\n },\n\n getURLOrigin: function(urlValue) {\n let origin = '';\n const originArray = urlValue.split( '/' );\n if (originArray.length >= 3) {\n const protocol = originArray[0];\n const host = originArray[2];\n origin = protocol + '//' + host;\n }\n return origin;\n },\n\n };\n\n const getBrowserVersion = function(browserName) {\n const userAgent = window.navigator.userAgent;\n const browserNameIndex = userAgent.indexOf(browserName);\n const nextSpaceIndex = userAgent.indexOf(' ', browserNameIndex);\n if (nextSpaceIndex === -1) {\n return userAgent.substring(browserNameIndex + browserName.length + 1, userAgent.length);\n } else {\n return userAgent.substring(browserNameIndex + browserName.length + 1, nextSpaceIndex);\n }\n };\n\n csm.Util = Util;\n})();\n\n(function() {\n const XHR_DONE_READY_STATE = 4; // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState\n\n const global = self;\n const configuration = {};\n const batchSettings = {\n maxMetricsSize: 30,\n maxWorkflowEventsSize: 30,\n putMetricsIntervalMs: 30000,\n putWorkflowEventsIntervalMs: 2000,\n };\n const metricLists = {}; // metricList per CloudWatch Namespace\n const metricMap = {};\n const ports = {};\n let workflowEvents = {workflowEventList: []};\n\n // SharedWorker wiki: https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker\n onconnect = function(connectEvent) {\n const port = connectEvent.ports[0];\n\n port.onmessage = function(event) {\n const data = event.data;\n const messageType = data.type;\n const message = data.message;\n const endpoint = data.endpoint;\n const headers = data.headers;\n\n if (data.portId && !(data.portId in ports)) {\n // This could happen when a user tries to close a tab which has a pop up alert to confirm closing,\n // and the user decides to cancel closing\n // This triggers before unload event while the tab or window is not closed actually\n ports[data.portId] = port;\n }\n\n const {METRIC, WORKFLOW_EVENT, CUSTOM, CONFIG, SET_AUTH, SET_CONFIG, CLOSE} = csm.EVENT_TYPE;\n switch (messageType) {\n case METRIC: {\n csm.Util.assertInObject(message, 'message', 'namespace');\n const namespace = message.namespace;\n if (shouldDedupe(message)) break;\n addMetricEventToMap(message);\n if (metricLists[namespace]) {\n metricLists[namespace].push(message);\n } else {\n metricLists[namespace] = [message];\n }\n if (metricLists[namespace].length >= batchSettings.maxMetricsSize) {\n putMetricsForNamespace(namespace);\n }\n break;\n }\n case WORKFLOW_EVENT: {\n workflowEvents.workflowEventList.push(message);\n if (workflowEvents.length >= batchSettings.maxWorkflowEventsSize) {\n putWorkflowEvents();\n }\n break;\n }\n case CUSTOM: {\n putCustom(endpoint, headers, message);\n break;\n }\n case CONFIG: {\n const portId = Object.keys(ports).length + 1; // portId starts from 1\n ports[portId] = port;\n for (const setting of Object.keys(message)) {\n if (!csm.Util.isEmpty(message[setting])) {\n configuration[setting] = message[setting];\n }\n }\n\n // set optional batch settings\n if (configuration.batchSettings) {\n for (const setting of Object.keys(configuration.batchSettings)) {\n batchSettings[setting] = configuration.batchSettings[setting];\n }\n }\n // send metrics and workflow events at set intervals\n putMetrics();\n putWorkflowEvents();\n global.setInterval(putMetrics, batchSettings.putMetricsIntervalMs);\n global.setInterval(putWorkflowEvents, batchSettings.putWorkflowEventsIntervalMs);\n\n port.postMessage(\n {\n type: csm.EVENT_TYPE.CONFIG,\n portId: portId,\n },\n );\n break;\n }\n case SET_AUTH: {\n configuration.authParams = message;\n authenticate();\n break;\n }\n case SET_CONFIG: {\n configuration[message.key] = message.value;\n break;\n }\n case CLOSE: {\n delete ports[data.portId];\n if (Object.keys(ports).length === 0) {\n putMetrics();\n putWorkflowEvents();\n }\n break;\n }\n default:\n break;\n }\n };\n };\n\n const shouldDedupe = function(metric) {\n try {\n const pastMetric = getPastMetricEvent(metric);\n return pastMetric && metric.dedupeOptions &&\n (metric.timestamp - pastMetric.timestamp < metric.dedupeOptions.dedupeIntervalMs);\n } catch (err) {\n console.error('Error in shouldDedupe', err);\n return false;\n }\n };\n\n const getPastMetricEvent = function(metric) {\n try {\n return metricMap[getMetricEventKey(metric)];\n } catch (err) {\n // ignore err - no previous metrics found\n return null;\n }\n };\n\n const addMetricEventToMap = function(metric) {\n try {\n metricMap[getMetricEventKey(metric)] = metric;\n } catch (err) {\n console.error('Failed to add event to metricMap', err);\n }\n csm.metricMap = metricMap;\n };\n\n const getMetricEventKey = function(metric) {\n const {namespace, metricName, unit, dedupeOptions} = metric;\n let context = 'global';\n if (dedupeOptions && dedupeOptions.context) {\n context = dedupeOptions.context;\n }\n return `${namespace}-${metricName}-${unit}-${context}`;\n };\n\n const authenticate = function() {\n postRequest(configuration.endpointUrl + '/auth', {authParams: configuration.authParams},\n {\n success: function(response) {\n if (response && response.jwtToken) {\n configuration.authParams.jwtToken = response.jwtToken;\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] csm auth failed!');\n broadcastMessage('Response : ' + response);\n },\n }, {'x-api-key': 'auth-method-level-key'});\n };\n\n /**\n * Put metrics to service when:\n * a) metricList size is at maxMetricsSize\n * b) every putMetricsIntervalMs time if the metricList is not empty\n * c) worker is closed\n *\n * Timer is reset, and metricList emptied after each putMetrics call\n */\n const putMetrics = function() {\n for (const namespace of Object.keys(metricLists)) {\n putMetricsForNamespace(namespace);\n }\n };\n\n const putMetricsForNamespace = function(namespace) {\n csm.Util.assertInObject(metricLists, 'metricLists', namespace);\n const metricList = metricLists[namespace];\n\n if (metricList.length > 0 && !configuration.dryRunMode && configuration.endpointUrl) {\n postRequest(configuration.endpointUrl + '/put-metrics', {\n metricNamespace: namespace,\n metricList: metricList,\n authParams: configuration.authParams,\n accountId: configuration.accountId,\n organizationId: configuration.organizationId,\n agentResourceId: configuration.userId,\n }, {\n success: function(response) {\n if (response) {\n broadcastMessage('PutMetrics response : ' + response);\n if (response.unsetToken) {\n delete configuration.authParams.jwtToken;\n authenticate();\n }\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] Put metrics to service failed! ');\n },\n });\n }\n metricLists[namespace] = [];\n };\n\n /**\n * Put metrics to service every two seconds if there are events to be put.\n */\n const putWorkflowEvents = function() {\n if (workflowEvents.workflowEventList.length > 0 && !configuration.dryRunMode && configuration.endpointUrl) {\n workflowEvents.authParams = configuration.authParams;\n postRequest(configuration.endpointUrl + '/put-workflow-events', workflowEvents,\n {\n success: function(response) {\n if (response) {\n if (response.workflowEventList && response.workflowEventList.length > 0) {\n broadcastMessage('[WARN] There are ' + response.length + ' workflow events that failed to publish');\n broadcastMessage('Response : ' + response);\n }\n if (response.unsetToken) {\n delete configuration.authParams.jwtToken;\n authenticate();\n }\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] Put workflow events to service failed! ');\n },\n });\n }\n\n workflowEvents = {workflowEventList: []};\n };\n\n /**\n * Put data to custom endpoint on demand\n * @param {string} endpoint\n * @param {object} headers\n * @param {object} data to send to endpoint\n */\n const putCustom = function(endpoint, headers, data) {\n if (!configuration.dryRunMode && endpoint && data) {\n postRequest(endpoint, data, {\n success: function(response) {\n if (response) {\n broadcastMessage('Response : ' + response);\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] Failed to put custom data! ');\n },\n }, headers);\n }\n };\n\n /**\n * Broadcast message to all tabs\n * @param {string} message to post to all the tabs\n */\n const broadcastMessage = function(message) {\n for (const portId in ports) {\n if (Object.prototype.hasOwnProperty.call(ports, portId)) {\n ports[portId].postMessage(message);\n }\n }\n };\n\n const postRequest = function(url, data, callbacks, headers) {\n csm.Util.assertExist(url, 'url');\n csm.Util.assertExist(data, 'data');\n\n callbacks = callbacks || {};\n callbacks.success = callbacks.success || function() {};\n callbacks.failure = callbacks.failure || function() {};\n\n const request = new XMLHttpRequest(); // new HttpRequest instance\n request.onreadystatechange = function() {\n const errorList = request.response ? JSON.parse(request.response): [];\n if (request.readyState === XHR_DONE_READY_STATE) { // request finished and response is ready\n if (request.status === 200) {\n callbacks.success(errorList);\n } else {\n broadcastMessage('AJAX request failed with status: ' + request.status);\n callbacks.failure(errorList);\n }\n }\n };\n\n request.open('POST', url);\n if (headers && typeof headers === 'object') {\n Object.keys(headers).forEach((header) => request.setRequestHeader(header, headers[header]));\n } else {\n request.setRequestHeader('Content-Type', 'application/json');\n }\n request.send(JSON.stringify(data));\n };\n})()".replace(/\\/g,""),n=URL.createObjectURL(new Blob([t],{type:"text/javascript"})),r=(e=>"https://ieluqbvv.telemetry.connect.".concat(e,".amazonaws.com/prod"))(e),o={endpoint:r,namespace:"chat-widget",sharedWorkerUrl:n};csm.initCSM(o),this.logger.info("CSMService is initialized in ".concat(e)),this.csmInitialized=!0,this.metricsToBePublished&&(this.metricsToBePublished.forEach((e=>{csm.API.addMetric(e)})),this.metricsToBePublished=null)}catch(e){this.logger.error("Failed to initialize csm: ",e)}}updateCsmConfig(e){this.widgetType="object"!=typeof e||null===e||Array.isArray(e)?this.widgetType:e.widgetType}getDefaultDimensions(){return[{name:"WidgetType",value:this.widgetType}]}addMetric(e){if(this.csmInitialized)try{csm.API.addMetric(e)}catch(e){this.logger.error("Failed to addMetric csm: ",e)}else this.metricsToBePublished&&(this.metricsToBePublished.push(e),this.logger.info("CSMService is not initialized yet. Adding metrics to queue to be published once CSMService is initialized"))}setDimensions(e,t){t.forEach((t=>{e.addDimension(t.name,t.value)}))}addLatencyMetric(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];try{var i=new csm.Metric(e,csm.UNIT.MILLISECONDS,t),o=[...this.getDefaultDimensions(),{name:"Metric",value:"Latency"},{name:Y,value:n},...r];this.setDimensions(i,o),this.addMetric(i),this.logger.debug("Successfully published latency API metrics for method ".concat(e))}catch(e){this.logger.error("Failed to addLatencyMetric csm: ",e)}}addLatencyMetricWithStartTime(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],i=(new Date).getTime()-t;this.addLatencyMetric(e,i,n,r),this.logger.debug("Successfully published latency API metrics for method ".concat(e))}addCountAndErrorMetric(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];try{var i=[...this.getDefaultDimensions(),{name:Y,value:t},...r],o=new csm.Metric(e,csm.UNIT.COUNT,1);this.setDimensions(o,[...i,{name:"Metric",value:"Count"}]);var s=n?1:0,a=new csm.Metric(e,csm.UNIT.COUNT,s);this.setDimensions(a,[...i,{name:"Metric",value:"Error"}]),this.addMetric(o),this.addMetric(a),this.logger.debug("Successfully published count and error metrics for method ".concat(e))}catch(e){this.logger.error("Failed to addCountAndErrorMetric csm: ",e)}}addCountMetric(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];try{var r=[...this.getDefaultDimensions(),{name:Y,value:t},{name:"Metric",value:"Count"},...n],i=new csm.Metric(e,csm.UNIT.COUNT,1);this.setDimensions(i,r),this.addMetric(i),this.logger.debug("Successfully published count metrics for method ".concat(e))}catch(e){this.logger.error("Failed to addCountMetric csm: ",e)}}addAgentCountMetric(e,t){try{var n=this;csm&&csm.API.addCount&&e?(csm.API.addCount(e,t),n.MAX_RETRY=5):(e&&this.agentMetricToBePublished.push({metricName:e,count:t}),setTimeout((()=>{csm&&csm.API.addCount?(this.agentMetricToBePublished.forEach((e=>{csm.API.addCount(e.metricName,e.count)})),this.agentMetricToBePublished=[]):n.MAX_RETRY>0&&(n.MAX_RETRY-=1,n.addAgentCountMetric())}),3e3))}catch(e){this.logger.error("Failed to addAgentCountMetric csm: ",e)}}};function Q(e,t,n,r,i,o,s){try{var a=e[o](s),c=a.value}catch(e){return void n(e)}a.done?t(c):Promise.resolve(c).then(r,i)}class Z{constructor(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;this.chatClient=t,this.participantToken=e||null,this.connectionDetails=null,this.connectionToken=null,this.connectionTokenExpiry=null,this.sessionType=n,this.getConnectionToken=r}getFetchedConnectionToken(){return this.connectionToken}getConnectionTokenExpiry(){return this.connectionTokenExpiry}getConnectionDetails(){return this.connectionDetails}fetchConnectionDetails(){return this._fetchConnectionDetails().then((e=>e))}_handleCreateParticipantConnectionResponse(e,t){return this.connectionDetails={url:e.Websocket.Url,expiry:e.Websocket.ConnectionExpiry,transportLifeTimeInSeconds:b,connectionAcknowledged:t,connectionToken:e.ConnectionCredentials.ConnectionToken,connectionTokenExpiry:e.ConnectionCredentials.Expiry},this.connectionToken=e.ConnectionCredentials.ConnectionToken,this.connectionTokenExpiry=e.ConnectionCredentials.Expiry,this.connectionDetails}_handleGetConnectionTokenResponse(e){return this.connectionDetails={url:null,expiry:null,connectionToken:e.participantToken,connectionTokenExpiry:e.expiry,transportLifeTimeInSeconds:b,connectionAcknowledged:!1},this.connectionToken=e.participantToken,this.connectionTokenExpiry=e.expiry,Promise.resolve(this.connectionDetails)}callCreateParticipantConnection(){var{Type:e=!0,ConnectParticipant:t=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=(new Date).getTime();return this.chatClient.createParticipantConnection(this.participantToken,e?["WEBSOCKET","CONNECTION_CREDENTIALS"]:null,t||null).then((r=>{if(e)return this._addParticipantConnectionMetric(n),this._handleCreateParticipantConnectionResponse(r.data,t)})).catch((t=>(e&&this._addParticipantConnectionMetric(n,!0),Promise.reject({reason:"Failed to fetch connectionDetails with createParticipantConnection",_debug:t}))))}_addParticipantConnectionMetric(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];$.addLatencyMetricWithStartTime(f,e,a),$.addCountAndErrorMetric(f,a,t)}_fetchConnectionDetails(){var e,t=this;return(e=function*(){return t.sessionType===s.CUSTOMER?t.callCreateParticipantConnection():t.sessionType===s.AGENT?t.getConnectionToken().then((e=>t._handleGetConnectionTokenResponse(e.chatTokenTransport))).catch((()=>t.callCreateParticipantConnection({Type:!0,ConnectParticipant:!0}).catch((e=>{throw new Error({type:"CONN_ACK_FAILED",errorMessage:e})})))):Promise.reject({reason:"Failed to fetch connectionDetails.",_debug:new r("Failed to fetch connectionDetails.")})},function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function s(e){Q(o,r,i,s,a,"next",e)}function a(e){Q(o,r,i,s,a,"throw",e)}s(void 0)}))})()}}var ee=void 0!==ee?ee:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};ee.connect=ee.connect||{};var te=connect.WebSocketManager;!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}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return 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=10)}([function(e,t){function n(t){return e.exports=n="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,n(t)}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t){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},function(e,t){function n(e,t){for(var n=0;n=0),a.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,a.width?parseInt(a.width):0);break;case"e":n=a.precision?parseFloat(n).toExponential(a.precision):parseFloat(n).toExponential();break;case"f":n=a.precision?parseFloat(n).toFixed(a.precision):parseFloat(n);break;case"g":n=a.precision?String(Number(n.toPrecision(a.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=a.precision?n.substring(0,a.precision):n;break;case"t":n=String(!!n),n=a.precision?n.substring(0,a.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=a.precision?n.substring(0,a.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=a.precision?n.substring(0,a.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}i.json.test(a.type)?m+=n:(!i.number.test(a.type)||p&&!a.sign?d="":(d=p?"+":"-",n=n.toString().replace(i.sign,"")),u=a.pad_char?"0"===a.pad_char?"0":a.pad_char.charAt(1):" ",l=a.width-(d+n).length,c=a.width&&l>0?u.repeat(l):"",m+=a.align?d+n+c:"0"===u?d+c+n:c+d+n)}return m}var c=Object.create(null);function u(e){if(c[e])return c[e];for(var t,n=e,r=[],o=0;n;){if(null!==(t=i.text.exec(n)))r.push(t[0]);else if(null!==(t=i.modulo.exec(n)))r.push("%");else{if(null===(t=i.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){o|=1;var s=[],a=t[2],u=[];if(null===(u=i.key.exec(a)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(u[1]);""!==(a=a.substring(u[0].length));)if(null!==(u=i.key_access.exec(a)))s.push(u[1]);else{if(null===(u=i.index_access.exec(a)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(u[1])}t[2]=s}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}n=n.substring(t[0].length)}return c[e]=r}t.sprintf=o,t.vsprintf=s,"undefined"!=typeof window&&(window.sprintf=o,window.vsprintf=s,void 0===(r=function(){return{sprintf:o,vsprintf:s}}.call(t,n,t,e))||(e.exports=r))}()},function(e,t,n){var r=n(8);e.exports=function(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&&r(e,t)},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){var r=n(0).default,i=n(9);e.exports=function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return i(e)},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t){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},function(e,t){function n(t,r){return e.exports=n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,n(t,r)}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t){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},function(e,t,n){n.r(t),n.d(t,"WebSocketManager",(function(){return le}));var r=n(0),i=n.n(r),o=n(4),s="AMZ_WEB_SOCKET_MANAGER:",a="Network offline",c="Network online, connecting to WebSocket server",u="Network offline, ignoring this getWebSocketConnConfig request",l="Heartbeat response not received",p="aws/ping deep heartbeat response not received",d="Failed to send heartbeat since WebSocket is not open",h="Failed to send aws/ping deep heartbeat since WebSocket is not open",f="WebSocket connection established!",m="WebSocket connection is closed",g="WebSocketManager Error, error_event: ",v="Scheduling WebSocket reinitialization, after delay ",y="WebSocket URL cannot be used to establish connection",b="WebSocket Initialization failed - Terminating and cleaning subscriptions",w="Fetching new WebSocket connection configuration",E="Successfully fetched webSocket connection configuration",C="Failed to fetch webSocket connection configuration",S="Retrying fetching new WebSocket connection configuration",T="Initializing Websocket Manager",I="WebSocketManager Message Error",k="Message received for topic ",_="Invalid incoming message",x="aws/subscribe",A="aws/heartbeat",R="aws/ping",O="disconnected",N={assertTrue:function(e,t){if(!e)throw new Error(t)},assertNotNull:function(e,t){return N.assertTrue(null!==e&&void 0!==i()(e),Object(o.sprintf)("%s must be provided",t||"A value")),e},isNonEmptyString:function(e){return"string"==typeof e&&e.length>0},assertIsList:function(e,t){if(!Array.isArray(e))throw new Error(t+" is not an array")},isFunction:function(e){return!!(e&&e.constructor&&e.call&&e.apply)},isObject:function(e){return!("object"!==i()(e)||null===e)},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e}},L=new RegExp("^(wss://)\\w*"),M=new RegExp("^(ws://127.0.0.1:)");N.validWSUrl=function(e){return L.test(e)||M.test(e)},N.getSubscriptionResponse=function(e,t,n){return{topic:e,content:{status:t?"success":"failure",topics:n}}},N.assertIsObject=function(e,t){if(!N.isObject(e))throw new Error(t+" is not an object!")},N.addJitter=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;t=Math.min(t,1);var n=Math.random()>.5?1:-1;return Math.floor(e+n*e*Math.random()*t)},N.isNetworkOnline=function(){return navigator.onLine},N.isNetworkFailure=function(e){return!(!e._debug||!e._debug.type)&&"NetworkingError"===e._debug.type};var P=N,D=n(5),U=n.n(D),q=n(6),j=n.n(q),F=n(3),W=n.n(F),B=n(7),z=n.n(B),H=n(1),V=n.n(H),G=n(2),K=n.n(G);function X(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 J(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"";if(this.hasClientLogger()){var n="string"==typeof t?t:JSON.stringify(t,ie()),r="string"==typeof this.logMetaData?this.logMetaData:JSON.stringify(this.logMetaData,ie()),i="".concat(re(e)," ").concat(n," ").concat(r);switch(e){case Q.DEBUG:return this._clientLogger.debug(i)||i;case Q.INFO:return this._clientLogger.info(i)||i;case Q.WARN:return this._clientLogger.warn(i)||i;case Q.ERROR:return this._clientLogger.error(i)||i;case Q.ADVANCED_LOG:return this._advancedLogWriter?this._clientLogger[this._advancedLogWriter](i)||i:""}}}},{key:"isLevelEnabled",value:function(e){return e>=this._level}},{key:"hasClientLogger",value:function(){return null!==this._clientLogger}},{key:"getLogger",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.prefix||$;return e.logMetaData&&this.setLogMetaData(e.logMetaData),this.logMetaData||console.info("*********Missing required option: WebSocketManager:logMetaData**********"),new ne(this,J({prefix:t,logMetaData:this.logMetaData},e))}},{key:"setLogMetaData",value:function(e){this.logMetaData=e}},{key:"updateLoggerConfig",value:function(e){var t=e||{};this._level=t.level||Q.INFO,this._advancedLogWriter="warn",t.advancedLogWriter&&(this._advancedLogWriter=t.advancedLogWriter),t.customizedLogger&&"object"===i()(t.customizedLogger)&&(this.useClientLogger=!0),this._clientLogger=t.logger||this.selectLogger(t),this._logsDestination="NULL",t.debug&&(this._logsDestination="DEBUG"),t.logger&&(this._logsDestination="CLIENT_LOGGER")}},{key:"selectLogger",value:function(e){return e.customizedLogger&&"object"===i()(e.customizedLogger)?e.customizedLogger:e.useDefaultLogger?oe():null}}]),e}(),te=function(){function e(){V()(this,e)}return K()(e,[{key:"debug",value:function(){}},{key:"info",value:function(){}},{key:"warn",value:function(){}},{key:"error",value:function(){}},{key:"advancedLog",value:function(){}}]),e}(),ne=function(e){U()(n,e);var t=function(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=W()(e);if(t){var i=W()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return j()(this,n)}}(n);function n(e,r){var i;return V()(this,n),(i=t.call(this)).options=r||{},i.prefix=r.prefix||$,i.logManager=e,i}return K()(n,[{key:"debug",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:2e3;V()(this,e),this.numAttempts=0,this.executor=t,this.hasActiveReconnection=!1,this.defaultRetry=n}return K()(e,[{key:"retry",value:function(){var e=this;this.hasActiveReconnection||(this.hasActiveReconnection=!0,setTimeout((function(){e._execute()}),this._getDelay()))}},{key:"_execute",value:function(){this.hasActiveReconnection=!1,this.executor(),this.numAttempts++}},{key:"connected",value:function(){this.numAttempts=0}},{key:"_getDelay",value:function(){var e=Math.pow(2,this.numAttempts)*this.defaultRetry;return e<=3e4?e:3e4}},{key:"getIsConnected",value:function(){return!this.numAttempts}}]),e}(),ae=null,ce=function(){var e=!1,t=ae.getLogger({prefix:s}),n=P.isNetworkOnline(),r={primary:null,secondary:null},i={reconnectWebSocket:!0,websocketInitFailed:!1,exponentialBackOffTime:1e3,exponentialTimeoutHandle:null,lifeTimeTimeoutHandle:null,webSocketInitCheckerTimeoutId:null,connState:null},o={connectWebSocketRetryCount:0,connectionAttemptStartTime:null,noOpenConnectionsTimestamp:null},N={pendingResponse:!1,intervalHandle:null},L={pendingResponse:!1,intervalHandle:null},M={initFailure:new Set,getWebSocketTransport:null,subscriptionUpdate:new Set,subscriptionFailure:new Set,topic:new Map,allMessage:new Set,connectionGain:new Set,connectionLost:new Set,connectionOpen:new Set,connectionClose:new Set,deepHeartbeatSuccess:new Set,deepHeartbeatFailure:new Set,topicFailure:new Set},D={connConfig:null,promiseHandle:null,promiseCompleted:!0},U={subscribed:new Set,pending:new Set,subscriptionHistory:new Set},q={responseCheckIntervalId:null,requestCompleted:!0,reSubscribeIntervalId:null,consecutiveFailedSubscribeAttempts:0,consecutiveNoResponseRequest:0},j=new se((function(){pe()})),F=new Set([x,"aws/unsubscribe",A,R]),W=setInterval((function(){if(n!==P.isNetworkOnline()){if(!(n=P.isNetworkOnline()))return t.advancedLog(a),void fe(t.info(a));var e=X();n&&(!e||V(e,WebSocket.CLOSING)||V(e,WebSocket.CLOSED))&&(t.advancedLog(c),fe(t.info(c)),pe())}}),250),B=function(e,n){e.forEach((function(e){try{e(n)}catch(e){fe(t.error("Error executing callback",e))}}))},z=function(e){if(null===e)return"NULL";switch(e.readyState){case WebSocket.CONNECTING:return"CONNECTING";case WebSocket.OPEN:return"OPEN";case WebSocket.CLOSING:return"CLOSING";case WebSocket.CLOSED:return"CLOSED";default:return"UNDEFINED"}},H=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";fe(t.debug("["+e+"] Primary WebSocket: "+z(r.primary)+" | Secondary WebSocket: "+z(r.secondary)))},V=function(e,t){return e&&e.readyState===t},G=function(e){return V(e,WebSocket.OPEN)},K=function(e){return null===e||void 0===e.readyState||V(e,WebSocket.CLOSED)},X=function(){return null!==r.secondary?r.secondary:r.primary},J=function(){return G(X())},Y=function(){if(e&&L.pendingResponse&&(t.advancedLog(p),fe(t.warn(p)),B(M.deepHeartbeatFailure,{timestamp:Date.now(),error:"aws/ping response is not received"}),clearInterval(L.intervalHandle),L.pendingResponse=!1),N.pendingResponse)return t.advancedLog(l),fe(t.warn(l)),clearInterval(N.intervalHandle),N.intervalHandle=null,N.pendingResponse=!1,void pe();J()?(e&&(fe(t.debug("Sending aws/ping deep heartbeat")),X().send(ue(R)),L.pendingResponse=!0),fe(t.debug("Sending heartbeat")),X().send(ue(A)),N.pendingResponse=!0):(e&&(t.advancedLog(h),fe(t.warn(h)),B(M.deepHeartbeatFailure,{timestamp:Date.now(),error:"Unable to send message to aws/ping because websocket connection is not established."})),t.advancedLog(d),fe(t.warn(d)),H("sendHeartBeat"),pe())},$=function(){t.advancedLog("Reset Websocket state"),i.exponentialBackOffTime=1e3,N.pendingResponse=!1,L.pendingResponse=!1,i.reconnectWebSocket=!0,clearTimeout(i.lifeTimeTimeoutHandle),clearInterval(N.intervalHandle),clearInterval(L.intervalHandle),clearTimeout(i.exponentialTimeoutHandle),clearTimeout(i.webSocketInitCheckerTimeoutId),N.intervalHandle=null},Q=function(){q.consecutiveFailedSubscribeAttempts=0,q.consecutiveNoResponseRequest=0,clearInterval(q.responseCheckIntervalId),clearInterval(q.reSubscribeIntervalId)},Z=function(){o.connectWebSocketRetryCount=0,o.connectionAttemptStartTime=null,o.noOpenConnectionsTimestamp=null},ee=function(){j.connected();try{t.advancedLog(f),fe(t.info(f)),H("webSocketOnOpen"),null!==i.connState&&i.connState!==O||B(M.connectionGain),i.connState="connected";var e=Date.now();B(M.connectionOpen,{connectWebSocketRetryCount:o.connectWebSocketRetryCount,connectionAttemptStartTime:o.connectionAttemptStartTime,noOpenConnectionsTimestamp:o.noOpenConnectionsTimestamp,connectionEstablishedTime:e,timeToConnect:e-o.connectionAttemptStartTime,timeWithoutConnection:o.noOpenConnectionsTimestamp?e-o.noOpenConnectionsTimestamp:null}),Z(),$(),X().openTimestamp=Date.now(),0===U.subscribed.size&&G(r.secondary)&&ie(r.primary,"[Primary WebSocket] Closing WebSocket"),(U.subscribed.size>0||U.pending.size>0)&&(G(r.secondary)&&fe(t.info("Subscribing secondary websocket to topics of primary websocket")),U.subscribed.forEach((function(e){U.subscriptionHistory.add(e),U.pending.add(e)})),U.subscribed.clear(),re()),Y(),null!==N.intervalHandle&&clearInterval(N.intervalHandle),N.intervalHandle=setInterval(Y,1e4);var n=1e3*D.connConfig.webSocketTransport.transportLifeTimeInSeconds;fe(t.debug("Scheduling WebSocket manager reconnection, after delay "+n+" ms")),i.lifeTimeTimeoutHandle=setTimeout((function(){fe(t.debug("Starting scheduled WebSocket manager reconnection")),pe()}),n)}catch(e){fe(t.error("Error after establishing WebSocket connection",e))}},te=function(e){H("webSocketOnError"),t.advancedLog(g,JSON.stringify(e)),fe(t.error(g,JSON.stringify(e))),j.getIsConnected()?pe():j.retry()},ne=function(e){var n=JSON.parse(e.data);switch(n.topic){case x:if(fe(t.debug("Subscription Message received from webSocket server",e.data)),q.requestCompleted=!0,q.consecutiveNoResponseRequest=0,"success"===n.content.status)q.consecutiveFailedSubscribeAttempts=0,n.content.topics.forEach((function(e){U.subscriptionHistory.delete(e),U.pending.delete(e),U.subscribed.add(e)})),0===U.subscriptionHistory.size?G(r.secondary)&&(fe(t.info("Successfully subscribed secondary websocket to all topics of primary websocket")),ie(r.primary,"[Primary WebSocket] Closing WebSocket")):re(),B(M.subscriptionUpdate,n);else{if(clearInterval(q.reSubscribeIntervalId),++q.consecutiveFailedSubscribeAttempts,5===q.consecutiveFailedSubscribeAttempts)return B(M.subscriptionFailure,n),void(q.consecutiveFailedSubscribeAttempts=0);q.reSubscribeIntervalId=setInterval((function(){re()}),500)}break;case A:fe(t.debug("Heartbeat response received")),N.pendingResponse=!1,null===N.intervalHandle&&(N.intervalHandle=setInterval(Y,1e4));break;case R:fe(t.debug("aws/ping deep heartbeat received")),L.pendingResponse=!1,200===n.statusCode?B(M.deepHeartbeatSuccess,{timestamp:Date.now()}):B(M.deepHeartbeatFailure,{timestamp:Date.now(),statusCode:n.statusCode,statusContent:n.statusContent});break;default:if(n.topic){if(t.advancedLog(k,n.topic),fe(t.debug(k+n.topic)),G(r.primary)&&G(r.secondary)&&0===U.subscriptionHistory.size&&this===r.primary)return void fe(t.warn("Ignoring Message for Topic "+n.topic+", to avoid duplicates"));if(0===M.allMessage.size&&0===M.topic.size)return void fe(t.warn("No registered callback listener for Topic",n.topic));t.advancedLog("WebsocketManager invoke callbacks for topic success ",n.topic),B(M.allMessage,n),M.topic.has(n.topic)&&B(M.topic.get(n.topic),n)}else n.message?(t.advancedLog(I,n),fe(t.warn(I,n)),B(M.topicFailure,{timestamp:Date.now(),errorMessage:n.message,connectionId:n.connectionId,requestId:n.requestId})):(t.advancedLog(_,n),fe(t.warn(_,n)))}},re=function e(){if(q.consecutiveNoResponseRequest>3)return fe(t.warn("Ignoring subscribePendingTopics since we have exhausted max subscription retries with no response")),void B(M.subscriptionFailure,P.getSubscriptionResponse(x,!1,Array.from(U.pending)));J()?0!==Array.from(U.pending).length&&(clearInterval(q.responseCheckIntervalId),X().send(ue(x,{topics:Array.from(U.pending)})),q.requestCompleted=!1,q.responseCheckIntervalId=setInterval((function(){q.requestCompleted||(++q.consecutiveNoResponseRequest,e())}),1e3)):fe(t.warn("Ignoring subscribePendingTopics call since Default WebSocket is not open"))},ie=function(e,n){V(e,WebSocket.CONNECTING)||V(e,WebSocket.OPEN)?e.close(1e3,n):fe(t.warn("Ignoring WebSocket Close request, WebSocket State: "+z(e)))},oe=function(e){ie(r.primary,"[Primary] WebSocket "+e),ie(r.secondary,"[Secondary] WebSocket "+e)},ce=function(e){$(),Q(),t.advancedLog(b,e),fe(t.error(b)),i.websocketInitFailed=!0,oe("Terminating WebSocket Manager"),clearInterval(W),B(M.initFailure,{connectWebSocketRetryCount:o.connectWebSocketRetryCount,connectionAttemptStartTime:o.connectionAttemptStartTime,reason:e}),Z()},ue=function(e,t){return JSON.stringify({topic:e,content:t})},le=function(e){return!!(P.isObject(e)&&P.isObject(e.webSocketTransport)&&P.isNonEmptyString(e.webSocketTransport.url)&&P.validWSUrl(e.webSocketTransport.url)&&1e3*e.webSocketTransport.transportLifeTimeInSeconds>=3e5)||(fe(t.error("Invalid WebSocket Connection Configuration",e)),!1)},pe=function(){if(!P.isNetworkOnline())return t.advancedLog(u),void fe(t.info(u));if(i.websocketInitFailed)fe(t.debug("WebSocket Init had failed, ignoring this getWebSocketConnConfig request"));else{if(D.promiseCompleted)return $(),t.advancedLog(w),fe(t.info(w)),o.connectionAttemptStartTime=o.connectionAttemptStartTime||Date.now(),D.promiseCompleted=!1,D.promiseHandle=M.getWebSocketTransport(),D.promiseHandle.then((function(e){return D.promiseCompleted=!0,t.advancedLog(E),fe(t.debug(E,e)),le(e)?(D.connConfig=e,D.connConfig.urlConnValidTime=Date.now()+85e3,de()):(ce("Invalid WebSocket connection configuration: "+e),{webSocketConnectionFailed:!0})}),(function(e){return D.promiseCompleted=!0,t.advancedLog(C),fe(t.error(C,e)),P.isNetworkFailure(e)?(t.advancedLog(S+JSON.stringify(e)),fe(t.info(S+JSON.stringify(e))),j.retry()):ce("Failed to fetch webSocket connection configuration: "+JSON.stringify(e)),{webSocketConnectionFailed:!0}}));fe(t.debug("There is an ongoing getWebSocketConnConfig request, this request will be ignored"))}},de=function(){if(i.websocketInitFailed)return fe(t.info("web-socket initializing had failed, aborting re-init")),{webSocketConnectionFailed:!0};if(!P.isNetworkOnline())return fe(t.warn("System is offline aborting web-socket init")),{webSocketConnectionFailed:!0};t.advancedLog(T),fe(t.info(T)),H("initWebSocket");try{if(le(D.connConfig)){var e=null;return G(r.primary)?(fe(t.debug("Primary Socket connection is already open")),V(r.secondary,WebSocket.CONNECTING)||(fe(t.debug("Establishing a secondary web-socket connection")),j.numAttempts=0,r.secondary=he()),e=r.secondary):(V(r.primary,WebSocket.CONNECTING)||(fe(t.debug("Establishing a primary web-socket connection")),r.primary=he()),e=r.primary),i.webSocketInitCheckerTimeoutId=setTimeout((function(){G(e)||function(){o.connectWebSocketRetryCount++;var e=P.addJitter(i.exponentialBackOffTime,.3);Date.now()+e<=D.connConfig.urlConnValidTime?(t.advancedLog(v),fe(t.debug(v+e+" ms")),i.exponentialTimeoutHandle=setTimeout((function(){return de()}),e),i.exponentialBackOffTime*=2):(t.advancedLog(y),fe(t.warn(y)),pe())}()}),1e3),{webSocketConnectionFailed:!1}}}catch(e){return fe(t.error("Error Initializing web-socket-manager",e)),ce("Failed to initialize new WebSocket: "+e.message),{webSocketConnectionFailed:!0}}},he=function(){var e=new WebSocket(D.connConfig.webSocketTransport.url);return e.addEventListener("open",ee),e.addEventListener("message",ne),e.addEventListener("error",te),e.addEventListener("close",(function(n){return function(e,n){t.advancedLog(m,JSON.stringify(e)),fe(t.info(m,JSON.stringify(e))),H("webSocketOnClose before-cleanup"),B(M.connectionClose,{openTimestamp:n.openTimestamp,closeTimestamp:Date.now(),connectionDuration:Date.now()-n.openTimestamp,code:e.code,reason:e.reason}),K(r.primary)&&(r.primary=null),K(r.secondary)&&(r.secondary=null),i.reconnectWebSocket&&(G(r.primary)||G(r.secondary)?K(r.primary)&&G(r.secondary)&&(fe(t.info("[Primary] WebSocket Cleanly Closed")),r.primary=r.secondary,r.secondary=null):(fe(t.warn("Neither primary websocket and nor secondary websocket have open connections, attempting to re-establish connection")),i.connState===O?fe(t.info("Ignoring connectionLost callback invocation")):(B(M.connectionLost,{openTimestamp:n.openTimestamp,closeTimestamp:Date.now(),connectionDuration:Date.now()-n.openTimestamp,code:e.code,reason:e.reason}),o.noOpenConnectionsTimestamp=Date.now()),i.connState=O,pe()),H("webSocketOnClose after-cleanup"))}(n,e)})),e},fe=function(e){return e&&"function"==typeof e.sendInternalLogToServer&&e.sendInternalLogToServer(),e};this.init=function(e){if(P.assertTrue(P.isFunction(e),"transportHandle must be a function"),null===M.getWebSocketTransport)return M.getWebSocketTransport=e,pe();fe(t.warn("Web Socket Manager was already initialized"))},this.onInitFailure=function(e){return t.advancedLog("Initializing Websocket Manager Failure callback registered"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.initFailure.add(e),i.websocketInitFailed&&e(),function(){return M.initFailure.delete(e)}},this.onConnectionOpen=function(e){return t.advancedLog("Websocket connection open callback registered"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.connectionOpen.add(e),function(){return M.connectionOpen.delete(e)}},this.onConnectionClose=function(e){return t.advancedLog("Websocket connection close callback registered"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.connectionClose.add(e),function(){return M.connectionClose.delete(e)}},this.onConnectionGain=function(e){return t.advancedLog("Websocket connection gain callback registered"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.connectionGain.add(e),J()&&e(),function(){return M.connectionGain.delete(e)}},this.onConnectionLost=function(e){return t.advancedLog("Websocket connection lost callback registered"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.connectionLost.add(e),i.connState===O&&e(),function(){return M.connectionLost.delete(e)}},this.onSubscriptionUpdate=function(e){return P.assertTrue(P.isFunction(e),"cb must be a function"),M.subscriptionUpdate.add(e),function(){return M.subscriptionUpdate.delete(e)}},this.onSubscriptionFailure=function(e){return t.advancedLog("Websocket subscription failure callback registered"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.subscriptionFailure.add(e),function(){return M.subscriptionFailure.delete(e)}},this.onMessage=function(e,t){return P.assertNotNull(e,"topicName"),P.assertTrue(P.isFunction(t),"cb must be a function"),M.topic.has(e)?M.topic.get(e).add(t):M.topic.set(e,new Set([t])),function(){return M.topic.get(e).delete(t)}},this.onAllMessage=function(e){return P.assertTrue(P.isFunction(e),"cb must be a function"),M.allMessage.add(e),function(){return M.allMessage.delete(e)}},this.subscribeTopics=function(e){P.assertNotNull(e,"topics"),P.assertIsList(e),e.forEach((function(e){U.subscribed.has(e)||U.pending.add(e)})),q.consecutiveNoResponseRequest=0,re()},this.sendMessage=function(e){if(P.assertIsObject(e,"payload"),void 0===e.topic||F.has(e.topic))fe(t.warn("Cannot send message, Invalid topic",e));else{try{e=JSON.stringify(e)}catch(n){return void fe(t.warn("Error stringify message",e))}J()?X().send(e):fe(t.warn("Cannot send message, web socket connection is not open"))}},this.deepHeartbeatHandler=function(){e=!0},this.onDeepHeartbeatSuccess=function(e){return t.advancedLog("Deep Heartbeat is successful. WebSocketManager has received 200 response from aws/ping"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.deepHeartbeatSuccess.add(e),function(){return M.deepHeartbeatSuccess.delete(e)}},this.onDeepHeartbeatFailure=function(e){return t.advancedLog("Deep Heartbeat failed. WebSocketManager does not receive 200 response from aws/ping"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.deepHeartbeatFailure.add(e),function(){return M.deepHeartbeatFailure.delete(e)}},this.onTopicFailure=function(e){return t.advancedLog("Generic topic failed."),P.assertTrue(P.isFunction(e),"cb must be a function"),M.topicFailure.add(e),function(){return M.topicFailure.delete(e)}},this.closeWebSocket=function(){$(),Q(),i.reconnectWebSocket=!1,clearInterval(W),oe("User request to close WebSocket")},this.terminateWebSocketManager=ce},ue={create:function(e){return ae||(ae=new Z(e)),ae.hasLogMetaData()||ae.setLogMetaData(e),e||console.info("********Missing metaData for logs from websocketManager: initialize websocketManager using create(metaData)*******"),new ce},setGlobalConfig:function(e){var t=e&&e.loggerConfig;ae||(ae=new Z),ae.updateLoggerConfig(t)},LogLevel:Q,Logger:Y};ee.connect=ee.connect||{},connect.WebSocketManager=ue;var le=ue;t.default=le}]);var ne=connect.WebSocketManager;connect.WebSocketManager=te||ne;const re=ne;class ie extends class{constructor(e,t){this.connectionDetailsProvider=e,this.isStarted=!1,this.logger=T.getLogger({prefix:"ChatJS-BaseConnectionHelper",logMetaData:t})}startConnectionTokenPolling(){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:432e5;if(!(arguments.length>0&&void 0!==arguments[0]&&arguments[0]))return this.connectionDetailsProvider.fetchConnectionDetails().then((t=>(this.logger.info("Connection token polling succeeded."),e=this.getTimeToConnectionTokenExpiry(),this.timeout=setTimeout(this.startConnectionTokenPolling.bind(this),e),t))).catch((t=>(this.logger.error("An error occurred when attempting to fetch the connection token during Connection Token Polling",t),this.timeout=setTimeout(this.startConnectionTokenPolling.bind(this),e),t)));this.logger.info("First time polling connection token."),this.timeout=setTimeout(this.startConnectionTokenPolling.bind(this),e)}start(){return this.isStarted?this.getConnectionToken():(this.isStarted=!0,this.startConnectionTokenPolling(!0,this.getTimeToConnectionTokenExpiry()))}end(){clearTimeout(this.timeout)}getConnectionToken(){return this.connectionDetailsProvider.getFetchedConnectionToken()}getConnectionTokenExpiry(){return this.connectionDetailsProvider.getConnectionTokenExpiry()}getTimeToConnectionTokenExpiry(){return new Date(this.getConnectionTokenExpiry()).getTime()-(new Date).getTime()-6e4}}{constructor(e,t,n,r,i,o){super(n,i),this.customerConnection=!r,this.customerConnection?(ie.customerBaseInstances[e]||(ie.customerBaseInstances[e]=new oe(n,void 0,i,o)),this.baseInstance=ie.customerBaseInstances[e]):(ie.agentBaseInstance&&ie.agentBaseInstance.getWebsocketManager()!==r&&(ie.agentBaseInstance.end(),ie.agentBaseInstance=null),ie.agentBaseInstance||(ie.agentBaseInstance=new oe(void 0,r,i)),this.baseInstance=ie.agentBaseInstance),this.contactId=e,this.initialContactId=t,this.status=null,this.eventBus=new J,this.subscriptions=[this.baseInstance.onEnded(this.handleEnded.bind(this)),this.baseInstance.onConnectionGain(this.handleConnectionGain.bind(this)),this.baseInstance.onConnectionLost(this.handleConnectionLost.bind(this)),this.baseInstance.onMessage(this.handleMessage.bind(this))]}start(){return super.start(),this.baseInstance.start()}end(){super.end(),this.eventBus.unsubscribeAll(),this.subscriptions.forEach((e=>e())),this.status=W,this.tryCleanup()}tryCleanup(){this.customerConnection&&!this.baseInstance.hasMessageSubscribers()&&(this.baseInstance.end(),delete ie.customerBaseInstances[this.contactId])}getStatus(){return this.status||this.baseInstance.getStatus()}onEnded(e){return this.eventBus.subscribe(H,e)}handleEnded(){this.eventBus.trigger(H,{})}onConnectionGain(e){return this.eventBus.subscribe(z,e)}handleConnectionGain(){this.eventBus.trigger(z,{})}onConnectionLost(e){return this.eventBus.subscribe(B,e)}handleConnectionLost(){this.eventBus.trigger(B,{})}onMessage(e){return this.eventBus.subscribe(V,e)}handleMessage(e){e.InitialContactId!==this.initialContactId&&e.ContactId!==this.contactId&&e.Type!==g.MESSAGE_METADATA||this.eventBus.trigger(V,e)}}ie.customerBaseInstances={},ie.agentBaseInstance=null;class oe{constructor(e,t,n,r){this.status=U,this.eventBus=new J,this.logger=T.getLogger({prefix:"ChatJS-LPCConnectionHelperBase",logMetaData:n}),this.initialConnectionDetails=r,this.initWebsocketManager(t,e,n)}initWebsocketManager(e,t,n){if(this.websocketManager=e||re.create(n),this.websocketManager.subscribeTopics(["aws/chat"]),this.subscriptions=[this.websocketManager.onMessage("aws/chat",this.handleMessage.bind(this)),this.websocketManager.onConnectionGain(this.handleConnectionGain.bind(this)),this.websocketManager.onConnectionLost(this.handleConnectionLost.bind(this)),this.websocketManager.onInitFailure(this.handleEnded.bind(this))],this.logger.info("Initializing websocket manager."),!e){var r=(new Date).getTime();this.websocketManager.init((()=>this._getConnectionDetails(t,this.initialConnectionDetails,r).then((e=>(this.initialConnectionDetails=null,e)))))}}_getConnectionDetails(e,t,n){if(null!==t&&"object"==typeof t&&t.expiry&&t.connectionTokenExpiry){var r={expiry:t.expiry,transportLifeTimeInSeconds:b};return this.logger.debug("Websocket manager initialized. Connection details:",r),Promise.resolve({webSocketTransport:{url:t.url,expiry:t.expiry,transportLifeTimeInSeconds:b}})}return e.fetchConnectionDetails().then((e=>{var t={webSocketTransport:{url:e.url,expiry:e.expiry,transportLifeTimeInSeconds:b}},r={expiry:e.expiry,transportLifeTimeInSeconds:b};return this.logger.debug("Websocket manager initialized. Connection details:",r),this._addWebsocketInitCSMMetric(n),t})).catch((e=>{throw this.logger.error("Initializing Websocket Manager failed:",e),this._addWebsocketInitCSMMetric(n,!0),e}))}_addWebsocketInitCSMMetric(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];$.addLatencyMetric(m,e,a),$.addCountAndErrorMetric(m,a,t)}end(){this.websocketManager.closeWebSocket&&this.websocketManager.closeWebSocket(),this.eventBus.unsubscribeAll(),this.subscriptions.forEach((e=>e())),this.logger.info("Websocket closed. All event subscriptions are cleared.")}start(){return this.status===U&&(this.status=q),Promise.resolve({websocketStatus:this.status})}onEnded(e){return this.eventBus.subscribe(H,e)}handleEnded(){this.status=W,this.eventBus.trigger(H,{}),$.addCountMetric("WebsocketEnded",a),this.logger.info("Websocket connection ended.")}onConnectionGain(e){return this.eventBus.subscribe(z,e)}handleConnectionGain(){this.status=j,this.eventBus.trigger(z,{}),$.addCountMetric("WebsocketConnectionGained",a),this.logger.info("Websocket connection gained.")}onConnectionLost(e){return this.eventBus.subscribe(B,e)}handleConnectionLost(){this.status=F,this.eventBus.trigger(B,{}),$.addCountMetric("WebsocketConnectionLost",a),this.logger.info("Websocket connection lost.")}onMessage(e){return this.eventBus.subscribe(V,e)}handleMessage(e){var t;try{t=JSON.parse(e.content),this.eventBus.trigger(V,t),$.addCountMetric("WebsocketIncomingMessage",a),this.logger.info("this.eventBus trigger Websocket incoming message",V,t)}catch(e){this._sendInternalLogToServer(this.logger.error("Wrong message format"))}}getStatus(){return this.status}getWebsocketManager(){return this.websocketManager}hasMessageSubscribers(){return this.eventBus.getSubscriptions(V).length>0}_sendInternalLogToServer(e){return e&&"function"==typeof e.sendInternalLogToServer&&e.sendInternalLogToServer(),e}}const se=ie;function ae(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 ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class ue{constructor(e){this.logger=T.getLogger({prefix:"ChatJS-MessageReceiptUtil",logMetaData:e}),this.timeout=null,this.timeoutId=null,this.readSet=new Set,this.deliveredSet=new Set,this.readPromiseMap=new Map,this.deliveredPromiseMap=new Map,this.lastReadArgs=null,this.throttleInitialEventsToPrioritizeRead=null,this.throttleSendEventApiCall=null}isMessageReceipt(e,t){return-1!==[g.INCOMING_READ_RECEIPT,g.INCOMING_DELIVERED_RECEIPT].indexOf(e)||t.Type===g.MESSAGE_METADATA}getEventTypeFromMessageMetaData(e){return Array.isArray(e.Receipts)&&e.Receipts[0]&&e.Receipts[0].ReadTimestamp?g.INCOMING_READ_RECEIPT:e.Receipts[0].DeliveredTimestamp?g.INCOMING_DELIVERED_RECEIPT:null}shouldShowMessageReceiptForCurrentParticipantId(e,t){return e!==(t.MessageMetadata&&Array.isArray(t.MessageMetadata.Receipts)&&t.MessageMetadata.Receipts[0]&&t.MessageMetadata.Receipts[0].RecipientParticipantId)}prioritizeAndSendMessageReceipt(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i2?n-2:0),o=2;o{s.resolveReadPromises(o.messageId,e[0]),s.resolveDeliveredPromises(u,e[0])}))}}catch(e){s.logger.error("send message receipt failed",e),s.resolveReadPromises(u,e,!0),s.resolveDeliveredPromises(u,e,!0)}},s.timeoutId||(s.timeoutId=setTimeout((function(){s.timeoutId=null,s.throttleSendEventApiCall()}),a))}resolveDeliveredPromises(e,t,n){return this.resolvePromises(this.deliveredPromiseMap,e,t,n)}resolveReadPromises(e,t,n){return this.resolvePromises(this.readPromiseMap,e,t,n)}resolvePromises(e,t,n,r){var i=Array.from(e.keys()),o=i.indexOf(t);if(-1!==o)for(var s=0;s<=o;s++){var a,c=null===(a=e.get(i[s]))||void 0===a?void 0:a[r?1:0];"function"==typeof c&&(e.delete(i[s]),c(n))}else this.logger.debug("Promise for messageId: ".concat(t," already resolved"))}rehydrateReceiptMappers(e,t){var n=this;return r=>{if(n.logger.debug("rehydrate chat",null==r?void 0:r.data),t){var{Transcript:i=[]}=(null==r?void 0:r.data)||{};i.forEach((e=>{if((null==e?void 0:e.Type)===g.MESSAGE_METADATA){var t,n,r,i=null==e||null===(t=e.MessageMetadata)||void 0===t||null===(n=t.Receipts)||void 0===n?void 0:n[0],o=null==e||null===(r=e.MessageMetadata)||void 0===r?void 0:r.MessageId;null!=i&&i.ReadTimestamp&&this.readSet.add(o),null!=i&&i.DeliveredTimestamp&&this.deliveredSet.add(o)}}))}return e(r)}}}class le{constructor(e){this.argsValidator=new D,this.pubsub=new J,this.sessionType=e.sessionType,this.getConnectionToken=e.chatDetails.getConnectionToken,this.connectionDetails=e.chatDetails.connectionDetails,this.initialContactId=e.chatDetails.initialContactId,this.contactId=e.chatDetails.contactId,this.participantId=e.chatDetails.participantId,this.chatClient=e.chatClient,this.participantToken=e.chatDetails.participantToken,this.websocketManager=e.websocketManager,this._participantDisconnected=!1,this.sessionMetadata={},this.logger=T.getLogger({prefix:"ChatJS-ChatController",logMetaData:e.logMetaData}),this.logMetaData=e.logMetaData,this.messageReceiptUtil=new ue(e.logMetaData),this.logger.info("Browser info:",window.navigator.userAgent)}subscribe(e,t){this.pubsub.subscribe(e,t),this._sendInternalLogToServer(this.logger.info("Subscribed successfully to event:",e))}handleRequestSuccess(e,t,n,r){return i=>{var o=r?[{name:"ContentType",value:r}]:[];return $.addLatencyMetricWithStartTime(t,n,a,o),$.addCountAndErrorMetric(t,a,!1,o),i.metadata=e,i}}handleRequestFailure(e,t,n,r){return i=>{var o=r?[{name:"ContentType",value:r}]:[];return $.addLatencyMetricWithStartTime(t,n,a,o),$.addCountAndErrorMetric(t,a,!0,o),i.metadata=e,Promise.reject(i)}}sendMessage(e){var t=(new Date).getTime(),n=e.metadata||null;this.argsValidator.validateSendMessage(e);var r=this.connectionHelper.getConnectionToken();return this.chatClient.sendMessage(r,e.message,e.contentType).then(this.handleRequestSuccess(n,c,t,e.contentType)).catch(this.handleRequestFailure(n,c,t,e.contentType))}sendAttachment(e){var t=(new Date).getTime(),n=e.metadata||null,r=this.connectionHelper.getConnectionToken();return this.chatClient.sendAttachment(r,e.attachment,e.metadata).then(this.handleRequestSuccess(n,u,t,e.attachment.type)).catch(this.handleRequestFailure(n,u,t,e.attachment.type))}downloadAttachment(e){var t=(new Date).getTime(),n=e.metadata||null,r=this.connectionHelper.getConnectionToken();return this.chatClient.downloadAttachment(r,e.attachmentId).then(this.handleRequestSuccess(n,l,t)).catch(this.handleRequestFailure(n,l,t))}sendEvent(e){var t=(new Date).getTime(),n=e.metadata||null;this.argsValidator.validateSendEvent(e);var r=this.connectionHelper.getConnectionToken(),s=e.content||null,a=pe(e.contentType),c="string"==typeof s?JSON.parse(s):s;return this.messageReceiptUtil.isMessageReceipt(a,e)?i.isFeatureEnabled(o)&&c.messageId?this.messageReceiptUtil.prioritizeAndSendMessageReceipt(this.chatClient,this.chatClient.sendEvent,r,e.contentType,s,a,i.getMessageReceiptsThrottleTime()).then(this.handleRequestSuccess(n,p,t,e.contentType)).catch(this.handleRequestFailure(n,p,t,e.contentType)):(this.logger.warn("Ignoring messageReceipt: ".concat(i.isFeatureEnabled(o)&&"missing messageId"),e),Promise.reject({errorMessage:"Ignoring messageReceipt: ".concat(i.isFeatureEnabled(o)&&"missing messageId"),data:e})):this.chatClient.sendEvent(r,e.contentType,s).then(this.handleRequestSuccess(n,p,t,e.contentType)).catch(this.handleRequestFailure(n,p,t,e.contentType))}getTranscript(e){var t=(new Date).getTime(),n=e.metadata||null,r={startPosition:e.startPosition||{},scanDirection:e.scanDirection||"BACKWARD",sortOrder:e.sortOrder||"ASCENDING",maxResults:e.maxResults||15};e.nextToken&&(r.nextToken=e.nextToken),e.contactId&&(r.contactId=e.contactId);var s=this.connectionHelper.getConnectionToken();return this.chatClient.getTranscript(s,r).then(this.messageReceiptUtil.rehydrateReceiptMappers(this.handleRequestSuccess(n,d,t),i.isFeatureEnabled(o))).catch(this.handleRequestFailure(n,d,t))}connect(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sessionMetadata=e.metadata||null,this.argsValidator.validateConnectChat(e);var t=this._getConnectionDetailsProvider();return t.fetchConnectionDetails().then((e=>this._initConnectionHelper(t,e))).then((e=>this._onConnectSuccess(e,t))).catch((e=>this._onConnectFailure(e)))}_initConnectionHelper(e,t){return this.connectionHelper=new se(this.contactId,this.initialContactId,e,this.websocketManager,this.logMetaData,t),this.connectionHelper.onEnded(this._handleEndedConnection.bind(this)),this.connectionHelper.onConnectionLost(this._handleLostConnection.bind(this)),this.connectionHelper.onConnectionGain(this._handleGainedConnection.bind(this)),this.connectionHelper.onMessage(this._handleIncomingMessage.bind(this)),this.connectionHelper.start()}_getConnectionDetailsProvider(){return new Z(this.participantToken,this.chatClient,this.sessionType,this.getConnectionToken)}_handleEndedConnection(e){this._forwardChatEvent(g.CONNECTION_BROKEN,{data:e,chatDetails:this.getChatDetails()}),this.breakConnection()}_handleLostConnection(e){this._forwardChatEvent(g.CONNECTION_LOST,{data:e,chatDetails:this.getChatDetails()})}_handleGainedConnection(e){this._forwardChatEvent(g.CONNECTION_ESTABLISHED,{data:e,chatDetails:this.getChatDetails()})}_handleIncomingMessage(e){try{var t=pe(null==e?void 0:e.ContentType);if(this.messageReceiptUtil.isMessageReceipt(t,e)&&(!(t=this.messageReceiptUtil.getEventTypeFromMessageMetaData(null==e?void 0:e.MessageMetadata))||!this.messageReceiptUtil.shouldShowMessageReceiptForCurrentParticipantId(this.participantId,e)))return;this._forwardChatEvent(t,{data:e,chatDetails:this.getChatDetails()}),e.ContentType===v.chatEnded&&(this._forwardChatEvent(g.CHAT_ENDED,{data:null,chatDetails:this.getChatDetails()}),this.breakConnection())}catch(t){this._sendInternalLogToServer(this.logger.error("Error occured while handling message from Connection. eventData:",e," Causing exception:",t))}}_forwardChatEvent(e,t){this.pubsub.triggerAsync(e,t)}_onConnectSuccess(e,t){var n;this._sendInternalLogToServer(this.logger.info("Connect successful!")),console.warn("onConnectionSuccess response",e);var r={_debug:e,connectSuccess:!0,connectCalled:!0,metadata:this.sessionMetadata},i=Object.assign({chatDetails:this.getChatDetails()},r);this.pubsub.triggerAsync(g.CONNECTION_ESTABLISHED,i);var o=null===(n=t.getConnectionDetails())||void 0===n?void 0:n.connectionAcknowledged;return this._shouldAcknowledgeContact()&&!o&&($.addAgentCountMetric("CREATE_PARTICIPANT_CONACK_CALL_COUNT",1),t.callCreateParticipantConnection({Type:!1,ConnectParticipant:!0}).catch((e=>{this.logger.warn("ConnectParticipant failed to acknowledge Agent connection in CreateParticipantConnection: ",e),$.addAgentCountMetric("CREATE_PARTICIPANT_CONACK_FAILURE",1)}))),console.warn("onConnectionSuccess responseObject",r),r}_onConnectFailure(e){var t={_debug:e,connectSuccess:!1,connectCalled:!0,metadata:this.sessionMetadata};return this._sendInternalLogToServer(this.logger.error("Connect Failed. Error: ",t)),Promise.reject(t)}_shouldAcknowledgeContact(){return this.sessionType===s.AGENT}breakConnection(){return this.connectionHelper?this.connectionHelper.end():Promise.resolve()}cleanUpOnParticipantDisconnect(){this.pubsub.unsubscribeAll()}disconnectParticipant(){var e=(new Date).getTime(),t=this.connectionHelper.getConnectionToken();return this.chatClient.disconnectParticipant(t).then((t=>(this._sendInternalLogToServer(this.logger.info("Disconnect participant successfully")),this._participantDisconnected=!0,this.cleanUpOnParticipantDisconnect(),this.breakConnection(),$.addLatencyMetricWithStartTime(h,e,a),$.addCountAndErrorMetric(h,a,!1),t)),(t=>(this._sendInternalLogToServer(this.logger.error("Disconnect participant failed. Error:",t)),$.addLatencyMetricWithStartTime(h,e,a),$.addCountAndErrorMetric(h,a,!0),Promise.reject(t))))}getChatDetails(){return{initialContactId:this.initialContactId,contactId:this.contactId,participantId:this.participantId,participantToken:this.participantToken,connectionDetails:this.connectionDetails}}_convertConnectionHelperStatus(e){switch(e){case U:return"NeverEstablished";case q:return"Establishing";case W:case F:return"Broken";case j:return"Established"}this._sendInternalLogToServer(this.logger.error("Reached invalid state. Unknown connectionHelperStatus: ",e))}getConnectionStatus(){return this._convertConnectionHelperStatus(this.connectionHelper.getStatus())}_sendInternalLogToServer(e){return e&&"function"==typeof e.sendInternalLogToServer&&e.sendInternalLogToServer(),e}}var pe=e=>y[e]||y.default;class de{constructor(e){this.controller=e}onMessage(e){this.controller.subscribe(g.INCOMING_MESSAGE,e)}onTyping(e){this.controller.subscribe(g.INCOMING_TYPING,e)}onReadReceipt(e){this.controller.subscribe(g.INCOMING_READ_RECEIPT,e)}onDeliveredReceipt(e){this.controller.subscribe(g.INCOMING_DELIVERED_RECEIPT,e)}onConnectionBroken(e){this.controller.subscribe(g.CONNECTION_BROKEN,e)}onConnectionEstablished(e){this.controller.subscribe(g.CONNECTION_ESTABLISHED,e)}onEnded(e){this.controller.subscribe(g.CHAT_ENDED,e)}onParticipantIdle(e){this.controller.subscribe(g.PARTICIPANT_IDLE,e)}onParticipantReturned(e){this.controller.subscribe(g.PARTICIPANT_RETURNED,e)}onAutoDisconnection(e){this.controller.subscribe(g.AUTODISCONNECTION,e)}onConnectionLost(e){this.controller.subscribe(g.CONNECTION_LOST,e)}sendMessage(e){return this.controller.sendMessage(e)}sendAttachment(e){return this.controller.sendAttachment(e)}downloadAttachment(e){return this.controller.downloadAttachment(e)}connect(e){return this.controller.connect(e)}sendEvent(e){return this.controller.sendEvent(e)}getTranscript(e){return this.controller.getTranscript(e)}getChatDetails(){return this.controller.getChatDetails()}}class he extends de{constructor(e){super(e)}cleanUpOnParticipantDisconnect(){return this.controller.cleanUpOnParticipantDisconnect()}}class fe extends de{constructor(e){super(e)}disconnectParticipant(){return this.controller.disconnectParticipant()}}var me=new class extends class{createAgentChatController(e,n){throw new t("createAgentChatController in ChatControllerFactory.")}createCustomerChatController(e,n){throw new t("createCustomerChatController in ChatControllerFactory.")}}{constructor(){super(),this.argsValidator=new D}createChatSession(e,t,n,i){var o=this._createChatController(e,t,n,i);if(e===s.AGENT)return new he(o);if(e===s.CUSTOMER)return new fe(o);throw new r("Unkown value for session type, Allowed values are: "+Object.values(s),e)}_createChatController(e,t,n,r){var i=this.argsValidator.normalizeChatDetails(t),o={contactId:i.contactId,participantId:i.participantId,sessionType:e},s=P.getCachedClient(n,o);return new le({sessionType:e,chatDetails:i,chatClient:s,websocketManager:r,logMetaData:o})}},ge=e=>{i.setFeatureFlag(e)},ve={create:e=>{var t=e.options||{},n=e.type||s.AGENT;return i.updateStageRegion(t),e.disableCSM||n!==s.CUSTOMER||$.loadCsmScriptAndExecute(),me.createChatSession(n,e.chatDetails,t,e.websocketManager)},setGlobalConfig:e=>{var t,n,r,s,a=e.loggerConfig,c=e.csmConfig;i.update(e),re.setGlobalConfig(e),T.updateLoggerConfig(a),c&&$.updateCsmConfig(c),!1!==(null===(t=e.features)||void 0===t||null===(n=t.messageReceipts)||void 0===n?void 0:n.shouldSendMessageReceipts)&&(console.warn("enabling message-receipts by default; to disable set config.features.messageReceipts.shouldSendMessageReceipts = false"),ge(o),i.updateThrottleTime(null===(r=e.features)||void 0===r||null===(s=r.messageReceipts)||void 0===s?void 0:s.thorttleTime))},LogLevel:S,Logger:class{debug(e){}info(e){}warn(e){}error(e){}advancedLog(e){}},SessionTypes:s,csmService:$,setFeatureFlag:ge},ye=void 0!==ye?ye:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};ye.connect=ye.connect||{},connect.ChatSession=ve,connect.LogManager=T,connect.LogLevel=S,connect.csmService=ve.csmService})()})(); +(()=>{var e={228:(e,t,n)=>{var r;!function e(t,n,r){function i(s,a){if(!n[s]){if(!t[s]){if(o)return o(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[s]={exports:{}};t[s][0].call(u.exports,(function(e){return i(t[s][1][e]||e)}),u,u.exports,e,t,n,r)}return n[s].exports}for(var o=void 0,s=0;s-1});var i=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]","[object DataView]"];t.exports={isEmptyData:function(e){return"string"==typeof e?0===e.length:0===e.byteLength},convertToBuffer:function(e){return"string"==typeof e&&(e=new r(e,"utf8")),ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(e)}}},{"buffer/":82}],13:[function(e,t,n){function r(e,t){this.hash=new e,this.outer=new e;var n=i(e,t),r=new Uint8Array(e.BLOCK_SIZE);r.set(n);for(var o=0;oe.BLOCK_SIZE){var r=new e;r.update(n),n=r.digest()}var i=new Uint8Array(e.BLOCK_SIZE);return i.set(n),i}var o=e("./browserHashUtils");t.exports=r,r.prototype.update=function(e){if(o.isEmptyData(e)||this.error)return this;try{this.hash.update(o.convertToBuffer(e))}catch(e){this.error=e}return this},r.prototype.digest=function(e){return this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest(e)}},{"./browserHashUtils":12}],14:[function(e,t,n){function r(){this.state=[1732584193,4023233417,2562383102,271733878],this.buffer=new DataView(new ArrayBuffer(p)),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}function i(e,t,n,r,i,o){return((t=(t+e&4294967295)+(r+o&4294967295)&4294967295)<>>32-i)+n&4294967295}function o(e,t,n,r,o,s,a){return i(t&n|~t&r,e,t,o,s,a)}function s(e,t,n,r,o,s,a){return i(t&r|n&~r,e,t,o,s,a)}function a(e,t,n,r,o,s,a){return i(t^n^r,e,t,o,s,a)}function c(e,t,n,r,o,s,a){return i(n^(t|~r),e,t,o,s,a)}var u=e("./browserHashUtils"),l=e("buffer/").Buffer,p=64;t.exports=r,r.BLOCK_SIZE=p,r.prototype.update=function(e){if(u.isEmptyData(e))return this;if(this.finished)throw new Error("Attempted to update an already finished hash.");var t=u.convertToBuffer(e),n=0,r=t.byteLength;for(this.bytesHashed+=r;r>0;)this.buffer.setUint8(this.bufferLength++,t[n++]),r--,this.bufferLength===p&&(this.hashBuffer(),this.bufferLength=0);return this},r.prototype.digest=function(e){if(!this.finished){var t=this,n=t.buffer,r=t.bufferLength,i=8*t.bytesHashed;if(n.setUint8(this.bufferLength++,128),r%p>=p-8){for(var o=this.bufferLength;o>>0,!0),n.setUint32(p-4,Math.floor(i/4294967296),!0),this.hashBuffer(),this.finished=!0}var s=new DataView(new ArrayBuffer(16));for(o=0;o<4;o++)s.setUint32(4*o,this.state[o],!0);var a=new l(s.buffer,s.byteOffset,s.byteLength);return e?a.toString(e):a},r.prototype.hashBuffer=function(){var e=this.buffer,t=this.state,n=t[0],r=t[1],i=t[2],u=t[3];n=o(n,r,i,u,e.getUint32(0,!0),7,3614090360),u=o(u,n,r,i,e.getUint32(4,!0),12,3905402710),i=o(i,u,n,r,e.getUint32(8,!0),17,606105819),r=o(r,i,u,n,e.getUint32(12,!0),22,3250441966),n=o(n,r,i,u,e.getUint32(16,!0),7,4118548399),u=o(u,n,r,i,e.getUint32(20,!0),12,1200080426),i=o(i,u,n,r,e.getUint32(24,!0),17,2821735955),r=o(r,i,u,n,e.getUint32(28,!0),22,4249261313),n=o(n,r,i,u,e.getUint32(32,!0),7,1770035416),u=o(u,n,r,i,e.getUint32(36,!0),12,2336552879),i=o(i,u,n,r,e.getUint32(40,!0),17,4294925233),r=o(r,i,u,n,e.getUint32(44,!0),22,2304563134),n=o(n,r,i,u,e.getUint32(48,!0),7,1804603682),u=o(u,n,r,i,e.getUint32(52,!0),12,4254626195),i=o(i,u,n,r,e.getUint32(56,!0),17,2792965006),n=s(n,r=o(r,i,u,n,e.getUint32(60,!0),22,1236535329),i,u,e.getUint32(4,!0),5,4129170786),u=s(u,n,r,i,e.getUint32(24,!0),9,3225465664),i=s(i,u,n,r,e.getUint32(44,!0),14,643717713),r=s(r,i,u,n,e.getUint32(0,!0),20,3921069994),n=s(n,r,i,u,e.getUint32(20,!0),5,3593408605),u=s(u,n,r,i,e.getUint32(40,!0),9,38016083),i=s(i,u,n,r,e.getUint32(60,!0),14,3634488961),r=s(r,i,u,n,e.getUint32(16,!0),20,3889429448),n=s(n,r,i,u,e.getUint32(36,!0),5,568446438),u=s(u,n,r,i,e.getUint32(56,!0),9,3275163606),i=s(i,u,n,r,e.getUint32(12,!0),14,4107603335),r=s(r,i,u,n,e.getUint32(32,!0),20,1163531501),n=s(n,r,i,u,e.getUint32(52,!0),5,2850285829),u=s(u,n,r,i,e.getUint32(8,!0),9,4243563512),i=s(i,u,n,r,e.getUint32(28,!0),14,1735328473),n=a(n,r=s(r,i,u,n,e.getUint32(48,!0),20,2368359562),i,u,e.getUint32(20,!0),4,4294588738),u=a(u,n,r,i,e.getUint32(32,!0),11,2272392833),i=a(i,u,n,r,e.getUint32(44,!0),16,1839030562),r=a(r,i,u,n,e.getUint32(56,!0),23,4259657740),n=a(n,r,i,u,e.getUint32(4,!0),4,2763975236),u=a(u,n,r,i,e.getUint32(16,!0),11,1272893353),i=a(i,u,n,r,e.getUint32(28,!0),16,4139469664),r=a(r,i,u,n,e.getUint32(40,!0),23,3200236656),n=a(n,r,i,u,e.getUint32(52,!0),4,681279174),u=a(u,n,r,i,e.getUint32(0,!0),11,3936430074),i=a(i,u,n,r,e.getUint32(12,!0),16,3572445317),r=a(r,i,u,n,e.getUint32(24,!0),23,76029189),n=a(n,r,i,u,e.getUint32(36,!0),4,3654602809),u=a(u,n,r,i,e.getUint32(48,!0),11,3873151461),i=a(i,u,n,r,e.getUint32(60,!0),16,530742520),n=c(n,r=a(r,i,u,n,e.getUint32(8,!0),23,3299628645),i,u,e.getUint32(0,!0),6,4096336452),u=c(u,n,r,i,e.getUint32(28,!0),10,1126891415),i=c(i,u,n,r,e.getUint32(56,!0),15,2878612391),r=c(r,i,u,n,e.getUint32(20,!0),21,4237533241),n=c(n,r,i,u,e.getUint32(48,!0),6,1700485571),u=c(u,n,r,i,e.getUint32(12,!0),10,2399980690),i=c(i,u,n,r,e.getUint32(40,!0),15,4293915773),r=c(r,i,u,n,e.getUint32(4,!0),21,2240044497),n=c(n,r,i,u,e.getUint32(32,!0),6,1873313359),u=c(u,n,r,i,e.getUint32(60,!0),10,4264355552),i=c(i,u,n,r,e.getUint32(24,!0),15,2734768916),r=c(r,i,u,n,e.getUint32(52,!0),21,1309151649),n=c(n,r,i,u,e.getUint32(16,!0),6,4149444226),u=c(u,n,r,i,e.getUint32(44,!0),10,3174756917),i=c(i,u,n,r,e.getUint32(8,!0),15,718787259),r=c(r,i,u,n,e.getUint32(36,!0),21,3951481745),t[0]=n+t[0]&4294967295,t[1]=r+t[1]&4294967295,t[2]=i+t[2]&4294967295,t[3]=u+t[3]&4294967295}},{"./browserHashUtils":12,"buffer/":82}],15:[function(e,t,n){function r(){this.h0=1732584193,this.h1=4023233417,this.h2=2562383102,this.h3=271733878,this.h4=3285377520,this.block=new Uint32Array(80),this.offset=0,this.shift=24,this.totalLength=0}var i=e("buffer/").Buffer,o=e("./browserHashUtils");new Uint32Array([1518500249,1859775393,-1894007588,-899497514]),Math.pow(2,53),t.exports=r,r.BLOCK_SIZE=64,r.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");if(o.isEmptyData(e))return this;var t=(e=o.convertToBuffer(e)).length;this.totalLength+=8*t;for(var n=0;n14||14===this.offset&&this.shift<24)&&this.processBlock(),this.offset=14,this.shift=24,this.write(0),this.write(0),this.write(this.totalLength>0xffffffffff?this.totalLength/1099511627776:0),this.write(this.totalLength>4294967295?this.totalLength/4294967296:0);for(var t=24;t>=0;t-=8)this.write(this.totalLength>>t);var n=new i(20),r=new DataView(n.buffer);return r.setUint32(0,this.h0,!1),r.setUint32(4,this.h1,!1),r.setUint32(8,this.h2,!1),r.setUint32(12,this.h3,!1),r.setUint32(16,this.h4,!1),e?n.toString(e):n},r.prototype.processBlock=function(){for(var e=16;e<80;e++){var t=this.block[e-3]^this.block[e-8]^this.block[e-14]^this.block[e-16];this.block[e]=t<<1|t>>>31}var n,r,i=this.h0,o=this.h1,s=this.h2,a=this.h3,c=this.h4;for(e=0;e<80;e++){e<20?(n=a^o&(s^a),r=1518500249):e<40?(n=o^s^a,r=1859775393):e<60?(n=o&s|a&(o|s),r=2400959708):(n=o^s^a,r=3395469782);var u=(i<<5|i>>>27)+n+c+r+(0|this.block[e]);c=a,a=s,s=o<<30|o>>>2,o=i,i=u}for(this.h0=this.h0+i|0,this.h1=this.h1+o|0,this.h2=this.h2+s|0,this.h3=this.h3+a|0,this.h4=this.h4+c|0,this.offset=0,e=0;e<16;e++)this.block[e]=0}},{"./browserHashUtils":12,"buffer/":82}],16:[function(e,t,n){function r(){this.state=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}var i=e("buffer/").Buffer,o=e("./browserHashUtils"),s=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),a=Math.pow(2,53)-1;t.exports=r,r.BLOCK_SIZE=64,r.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");if(o.isEmptyData(e))return this;var t=0,n=(e=o.convertToBuffer(e)).byteLength;if(this.bytesHashed+=n,8*this.bytesHashed>a)throw new Error("Cannot hash more than 2^53 - 1 bits");for(;n>0;)this.buffer[this.bufferLength++]=e[t++],n--,64===this.bufferLength&&(this.hashBuffer(),this.bufferLength=0);return this},r.prototype.digest=function(e){if(!this.finished){var t=8*this.bytesHashed,n=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),r=this.bufferLength;if(n.setUint8(this.bufferLength++,128),r%64>=56){for(var o=this.bufferLength;o<64;o++)n.setUint8(o,0);this.hashBuffer(),this.bufferLength=0}for(o=this.bufferLength;o<56;o++)n.setUint8(o,0);n.setUint32(56,Math.floor(t/4294967296),!0),n.setUint32(60,t),this.hashBuffer(),this.finished=!0}var s=new i(32);for(o=0;o<8;o++)s[4*o]=this.state[o]>>>24&255,s[4*o+1]=this.state[o]>>>16&255,s[4*o+2]=this.state[o]>>>8&255,s[4*o+3]=this.state[o]>>>0&255;return e?s.toString(e):s},r.prototype.hashBuffer=function(){for(var e=this.buffer,t=this.state,n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],c=t[5],u=t[6],l=t[7],p=0;p<64;p++){if(p<16)this.temp[p]=(255&e[4*p])<<24|(255&e[4*p+1])<<16|(255&e[4*p+2])<<8|255&e[4*p+3];else{var d=this.temp[p-2],h=(d>>>17|d<<15)^(d>>>19|d<<13)^d>>>10,f=((d=this.temp[p-15])>>>7|d<<25)^(d>>>18|d<<14)^d>>>3;this.temp[p]=(h+this.temp[p-7]|0)+(f+this.temp[p-16]|0)}var m=(((a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7))+(a&c^~a&u)|0)+(l+(s[p]+this.temp[p]|0)|0)|0,g=((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+(n&r^n&i^r&i)|0;l=u,u=c,c=a,a=o+m|0,o=i,i=r,r=n,n=m+g|0}t[0]+=n,t[1]+=r,t[2]+=i,t[3]+=o,t[4]+=a,t[5]+=c,t[6]+=u,t[7]+=l}},{"./browserHashUtils":12,"buffer/":82}],17:[function(e,t,n){(function(n){(function(){var n=e("./util");n.crypto.lib=e("./browserCryptoLib"),n.Buffer=e("buffer/").Buffer,n.url=e("url/"),n.querystring=e("querystring/"),n.realClock=e("./realclock/browserClock"),n.environment="js",n.createEventStream=e("./event-stream/buffered-create-event-stream").createEventStream,n.isBrowser=function(){return!0},n.isNode=function(){return!1};var r=e("./core");if(t.exports=r,e("./credentials"),e("./credentials/credential_provider_chain"),e("./credentials/temporary_credentials"),e("./credentials/chainable_temporary_credentials"),e("./credentials/web_identity_credentials"),e("./credentials/cognito_identity_credentials"),e("./credentials/saml_credentials"),r.XML.Parser=e("./xml/browser_parser"),e("./http/xhr"),void 0===i)var i={browser:!0}}).call(this)}).call(this,e("_process"))},{"./browserCryptoLib":11,"./core":20,"./credentials":21,"./credentials/chainable_temporary_credentials":22,"./credentials/cognito_identity_credentials":23,"./credentials/credential_provider_chain":24,"./credentials/saml_credentials":25,"./credentials/temporary_credentials":26,"./credentials/web_identity_credentials":27,"./event-stream/buffered-create-event-stream":29,"./http/xhr":37,"./realclock/browserClock":54,"./util":73,"./xml/browser_parser":74,_process:87,"buffer/":82,"querystring/":94,"url/":96}],18:[function(e,t,n){var r,i=e("./core");e("./credentials"),e("./credentials/credential_provider_chain"),i.Config=i.util.inherit({constructor:function(e){void 0===e&&(e={}),e=this.extractCredentials(e),i.util.each.call(this,this.keys,(function(t,n){this.set(t,e[t],n)}))},getCredentials:function(e){function t(t){e(t,t?null:r.credentials)}function n(e,t){return new i.util.error(t||new Error,{code:"CredentialsError",message:e,name:"CredentialsError"})}var r=this;r.credentials?"function"==typeof r.credentials.get?r.credentials.get((function(e){e&&(e=n("Could not load credentials from "+r.credentials.constructor.name,e)),t(e)})):function(){var e=null;r.credentials.accessKeyId&&r.credentials.secretAccessKey||(e=n("Missing credentials")),t(e)}():r.credentialProvider?r.credentialProvider.resolve((function(e,i){e&&(e=n("Could not load credentials from any providers",e)),r.credentials=i,t(e)})):t(n("No credentials to load"))},update:function(e,t){t=t||!1,e=this.extractCredentials(e),i.util.each.call(this,e,(function(e,n){(t||Object.prototype.hasOwnProperty.call(this.keys,e)||i.Service.hasService(e))&&this.set(e,n)}))},loadFromPath:function(e){this.clear();var t=JSON.parse(i.util.readFileSync(e)),n=new i.FileSystemCredentials(e),r=new i.CredentialProviderChain;return r.providers.unshift(n),r.resolve((function(e,n){if(e)throw e;t.credentials=n})),this.constructor(t),this},clear:function(){i.util.each.call(this,this.keys,(function(e){delete this[e]})),this.set("credentials",void 0),this.set("credentialProvider",void 0)},set:function(e,t,n){void 0===t?(void 0===n&&(n=this.keys[e]),this[e]="function"==typeof n?n.call(this):n):"httpOptions"===e&&this[e]?this[e]=i.util.merge(this[e],t):this[e]=t},keys:{credentials:null,credentialProvider:null,region:null,logger:null,apiVersions:{},apiVersion:null,endpoint:void 0,httpOptions:{timeout:12e4},maxRetries:void 0,maxRedirects:10,paramValidation:!0,sslEnabled:!0,s3ForcePathStyle:!1,s3BucketEndpoint:!1,s3DisableBodySigning:!0,s3UsEast1RegionalEndpoint:"legacy",s3UseArnRegion:void 0,computeChecksums:!0,convertResponseTypes:!0,correctClockSkew:!1,customUserAgent:null,dynamoDbCrc32:!0,systemClockOffset:0,signatureVersion:null,signatureCache:!0,retryDelayOptions:{},useAccelerateEndpoint:!1,clientSideMonitoring:!1,endpointDiscoveryEnabled:void 0,endpointCacheSize:1e3,hostPrefixEnabled:!0,stsRegionalEndpoints:"legacy"},extractCredentials:function(e){return e.accessKeyId&&e.secretAccessKey&&((e=i.util.copy(e)).credentials=new i.Credentials(e)),e},setPromisesDependency:function(e){r=e,null===e&&"function"==typeof Promise&&(r=Promise);var t=[i.Request,i.Credentials,i.CredentialProviderChain];i.S3&&(t.push(i.S3),i.S3.ManagedUpload&&t.push(i.S3.ManagedUpload)),i.util.addPromises(t,r)},getPromisesDependency:function(){return r}}),i.config=new i.Config},{"./core":20,"./credentials":21,"./credentials/credential_provider_chain":24}],19:[function(e,t,n){(function(n){(function(){function r(e,t){if("string"==typeof e){if(["legacy","regional"].indexOf(e.toLowerCase())>=0)return e.toLowerCase();throw i.util.error(new Error,t)}}var i=e("./core");t.exports=function(e,t){var o;if((e=e||{})[t.clientConfig]&&(o=r(e[t.clientConfig],{code:"InvalidConfiguration",message:'invalid "'+t.clientConfig+'" configuration. Expect "legacy" or "regional". Got "'+e[t.clientConfig]+'".'})))return o;if(!i.util.isNode())return o;if(Object.prototype.hasOwnProperty.call(n.env,t.env)&&(o=r(n.env[t.env],{code:"InvalidEnvironmentalVariable",message:"invalid "+t.env+' environmental variable. Expect "legacy" or "regional". Got "'+n.env[t.env]+'".'})))return o;var s={};try{s=i.util.getProfilesFromSharedConfig(i.util.iniLoader)[n.env.AWS_PROFILE||i.util.defaultProfile]}catch(e){}return s&&Object.prototype.hasOwnProperty.call(s,t.sharedConfig)&&(o=r(s[t.sharedConfig],{code:"InvalidConfiguration",message:"invalid "+t.sharedConfig+' profile config. Expect "legacy" or "regional". Got "'+s[t.sharedConfig]+'".'})),o}}).call(this)}).call(this,e("_process"))},{"./core":20,_process:87}],20:[function(e,t,n){var r={util:e("./util")};({}).toString(),t.exports=r,r.util.update(r,{VERSION:"2.772.0",Signers:{},Protocol:{Json:e("./protocol/json"),Query:e("./protocol/query"),Rest:e("./protocol/rest"),RestJson:e("./protocol/rest_json"),RestXml:e("./protocol/rest_xml")},XML:{Builder:e("./xml/builder"),Parser:null},JSON:{Builder:e("./json/builder"),Parser:e("./json/parser")},Model:{Api:e("./model/api"),Operation:e("./model/operation"),Shape:e("./model/shape"),Paginator:e("./model/paginator"),ResourceWaiter:e("./model/resource_waiter")},apiLoader:e("./api_loader"),EndpointCache:e("../vendor/endpoint-cache").EndpointCache}),e("./sequential_executor"),e("./service"),e("./config"),e("./http"),e("./event_listeners"),e("./request"),e("./response"),e("./resource_waiter"),e("./signers/request_signer"),e("./param_validator"),r.events=new r.SequentialExecutor,r.util.memoizedProperty(r,"endpointCache",(function(){return new r.EndpointCache(r.config.endpointCacheSize)}),!0)},{"../vendor/endpoint-cache":105,"./api_loader":10,"./config":18,"./event_listeners":35,"./http":36,"./json/builder":38,"./json/parser":39,"./model/api":40,"./model/operation":42,"./model/paginator":43,"./model/resource_waiter":44,"./model/shape":45,"./param_validator":46,"./protocol/json":48,"./protocol/query":49,"./protocol/rest":50,"./protocol/rest_json":51,"./protocol/rest_xml":52,"./request":57,"./resource_waiter":58,"./response":59,"./sequential_executor":60,"./service":61,"./signers/request_signer":65,"./util":73,"./xml/builder":75}],21:[function(e,t,n){var r=e("./core");r.Credentials=r.util.inherit({constructor:function(){if(r.util.hideProperties(this,["secretAccessKey"]),this.expired=!1,this.expireTime=null,this.refreshCallbacks=[],1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0].credentials||arguments[0];this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,this.sessionToken=e.sessionToken}else this.accessKeyId=arguments[0],this.secretAccessKey=arguments[1],this.sessionToken=arguments[2]},expiryWindow:15,needsRefresh:function(){var e=r.util.date.getDate().getTime(),t=new Date(e+1e3*this.expiryWindow);return!!(this.expireTime&&t>this.expireTime)||this.expired||!this.accessKeyId||!this.secretAccessKey},get:function(e){var t=this;this.needsRefresh()?this.refresh((function(n){n||(t.expired=!1),e&&e(n)})):e&&e()},refresh:function(e){this.expired=!1,e()},coalesceRefresh:function(e,t){var n=this;1===n.refreshCallbacks.push(e)&&n.load((function(e){r.util.arrayEach(n.refreshCallbacks,(function(n){t?n(e):r.util.defer((function(){n(e)}))})),n.refreshCallbacks.length=0}))},load:function(e){e()}}),r.Credentials.addPromisesToClass=function(e){this.prototype.getPromise=r.util.promisifyMethod("get",e),this.prototype.refreshPromise=r.util.promisifyMethod("refresh",e)},r.Credentials.deletePromisesFromClass=function(){delete this.prototype.getPromise,delete this.prototype.refreshPromise},r.util.addPromises(r.Credentials)},{"./core":20}],22:[function(e,t,n){var r=e("../core"),i=e("../../clients/sts");r.ChainableTemporaryCredentials=r.util.inherit(r.Credentials,{constructor:function(e){r.Credentials.call(this),e=e||{},this.errorCode="ChainableTemporaryCredentialsProviderFailure",this.expired=!0,this.tokenCodeFn=null;var t=r.util.copy(e.params)||{};if(t.RoleArn&&(t.RoleSessionName=t.RoleSessionName||"temporary-credentials"),t.SerialNumber){if(!e.tokenCodeFn||"function"!=typeof e.tokenCodeFn)throw new r.util.error(new Error("tokenCodeFn must be a function when params.SerialNumber is given"),{code:this.errorCode});this.tokenCodeFn=e.tokenCodeFn}var n=r.util.merge({params:t,credentials:e.masterCredentials||r.config.credentials},e.stsConfig||{});this.service=new i(n)},refresh:function(e){this.coalesceRefresh(e||r.util.fn.callback)},load:function(e){var t=this,n=t.service.config.params.RoleArn?"assumeRole":"getSessionToken";this.getTokenCode((function(r,i){var o={};r?e(r):(i&&(o.TokenCode=i),t.service[n](o,(function(n,r){n||t.service.credentialsFrom(r,t),e(n)})))}))},getTokenCode:function(e){var t=this;this.tokenCodeFn?this.tokenCodeFn(this.service.config.params.SerialNumber,(function(n,i){if(n){var o=n;return n instanceof Error&&(o=n.message),void e(r.util.error(new Error("Error fetching MFA token: "+o),{code:t.errorCode}))}e(null,i)})):e(null)}})},{"../../clients/sts":9,"../core":20}],23:[function(e,t,n){var r=e("../core"),i=e("../../clients/cognitoidentity"),o=e("../../clients/sts");r.CognitoIdentityCredentials=r.util.inherit(r.Credentials,{localStorageKey:{id:"aws.cognito.identity-id.",providers:"aws.cognito.identity-providers."},constructor:function(e,t){r.Credentials.call(this),this.expired=!0,this.params=e,this.data=null,this._identityId=null,this._clientConfig=r.util.copy(t||{}),this.loadCachedId();var n=this;Object.defineProperty(this,"identityId",{get:function(){return n.loadCachedId(),n._identityId||n.params.IdentityId},set:function(e){n._identityId=e}})},refresh:function(e){this.coalesceRefresh(e||r.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.data=null,t._identityId=null,t.getId((function(n){n?(t.clearIdOnNotAuthorized(n),e(n)):t.params.RoleArn?t.getCredentialsFromSTS(e):t.getCredentialsForIdentity(e)}))},clearCachedId:function(){this._identityId=null,delete this.params.IdentityId;var e=this.params.IdentityPoolId,t=this.params.LoginId||"";delete this.storage[this.localStorageKey.id+e+t],delete this.storage[this.localStorageKey.providers+e+t]},clearIdOnNotAuthorized:function(e){"NotAuthorizedException"==e.code&&this.clearCachedId()},getId:function(e){var t=this;if("string"==typeof t.params.IdentityId)return e(null,t.params.IdentityId);t.cognito.getId((function(n,r){!n&&r.IdentityId?(t.params.IdentityId=r.IdentityId,e(null,r.IdentityId)):e(n)}))},loadCredentials:function(e,t){e&&t&&(t.expired=!1,t.accessKeyId=e.Credentials.AccessKeyId,t.secretAccessKey=e.Credentials.SecretKey,t.sessionToken=e.Credentials.SessionToken,t.expireTime=e.Credentials.Expiration)},getCredentialsForIdentity:function(e){var t=this;t.cognito.getCredentialsForIdentity((function(n,r){n?t.clearIdOnNotAuthorized(n):(t.cacheId(r),t.data=r,t.loadCredentials(t.data,t)),e(n)}))},getCredentialsFromSTS:function(e){var t=this;t.cognito.getOpenIdToken((function(n,r){n?(t.clearIdOnNotAuthorized(n),e(n)):(t.cacheId(r),t.params.WebIdentityToken=r.Token,t.webIdentityCredentials.refresh((function(n){n||(t.data=t.webIdentityCredentials.data,t.sts.credentialsFrom(t.data,t)),e(n)})))}))},loadCachedId:function(){var e=this;if(r.util.isBrowser()&&!e.params.IdentityId){var t=e.getStorage("id");if(t&&e.params.Logins){var n=Object.keys(e.params.Logins);0!==(e.getStorage("providers")||"").split(",").filter((function(e){return-1!==n.indexOf(e)})).length&&(e.params.IdentityId=t)}else t&&(e.params.IdentityId=t)}},createClients:function(){var e=this._clientConfig;if(this.webIdentityCredentials=this.webIdentityCredentials||new r.WebIdentityCredentials(this.params,e),!this.cognito){var t=r.util.merge({},e);t.params=this.params,this.cognito=new i(t)}this.sts=this.sts||new o(e)},cacheId:function(e){this._identityId=e.IdentityId,this.params.IdentityId=this._identityId,r.util.isBrowser()&&(this.setStorage("id",e.IdentityId),this.params.Logins&&this.setStorage("providers",Object.keys(this.params.Logins).join(",")))},getStorage:function(e){return this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||"")]},setStorage:function(e,t){try{this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||"")]=t}catch(e){}},storage:function(){try{var e=r.util.isBrowser()&&null!==window.localStorage&&"object"==typeof window.localStorage?window.localStorage:{};return e["aws.test-storage"]="foobar",delete e["aws.test-storage"],e}catch(e){return{}}}()})},{"../../clients/cognitoidentity":8,"../../clients/sts":9,"../core":20}],24:[function(e,t,n){var r=e("../core");r.CredentialProviderChain=r.util.inherit(r.Credentials,{constructor:function(e){this.providers=e||r.CredentialProviderChain.defaultProviders.slice(0),this.resolveCallbacks=[]},resolve:function(e){var t=this;if(0===t.providers.length)return e(new Error("No providers")),t;if(1===t.resolveCallbacks.push(e)){var n=0,i=t.providers.slice(0);!function e(o,s){if(!o&&s||n===i.length)return r.util.arrayEach(t.resolveCallbacks,(function(e){e(o,s)})),void(t.resolveCallbacks.length=0);var a=i[n++];(s="function"==typeof a?a.call():a).get?s.get((function(t){e(t,t?null:s)})):e(null,s)}()}return t}}),r.CredentialProviderChain.defaultProviders=[],r.CredentialProviderChain.addPromisesToClass=function(e){this.prototype.resolvePromise=r.util.promisifyMethod("resolve",e)},r.CredentialProviderChain.deletePromisesFromClass=function(){delete this.prototype.resolvePromise},r.util.addPromises(r.CredentialProviderChain)},{"../core":20}],25:[function(e,t,n){var r=e("../core"),i=e("../../clients/sts");r.SAMLCredentials=r.util.inherit(r.Credentials,{constructor:function(e){r.Credentials.call(this),this.expired=!0,this.params=e},refresh:function(e){this.coalesceRefresh(e||r.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.service.assumeRoleWithSAML((function(n,r){n||t.service.credentialsFrom(r,t),e(n)}))},createClients:function(){this.service=this.service||new i({params:this.params})}})},{"../../clients/sts":9,"../core":20}],26:[function(e,t,n){var r=e("../core"),i=e("../../clients/sts");r.TemporaryCredentials=r.util.inherit(r.Credentials,{constructor:function(e,t){r.Credentials.call(this),this.loadMasterCredentials(t),this.expired=!0,this.params=e||{},this.params.RoleArn&&(this.params.RoleSessionName=this.params.RoleSessionName||"temporary-credentials")},refresh:function(e){this.coalesceRefresh(e||r.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.masterCredentials.get((function(){t.service.config.credentials=t.masterCredentials,(t.params.RoleArn?t.service.assumeRole:t.service.getSessionToken).call(t.service,(function(n,r){n||t.service.credentialsFrom(r,t),e(n)}))}))},loadMasterCredentials:function(e){for(this.masterCredentials=e||r.config.credentials;this.masterCredentials.masterCredentials;)this.masterCredentials=this.masterCredentials.masterCredentials;"function"!=typeof this.masterCredentials.get&&(this.masterCredentials=new r.Credentials(this.masterCredentials))},createClients:function(){this.service=this.service||new i({params:this.params})}})},{"../../clients/sts":9,"../core":20}],27:[function(e,t,n){var r=e("../core"),i=e("../../clients/sts");r.WebIdentityCredentials=r.util.inherit(r.Credentials,{constructor:function(e,t){r.Credentials.call(this),this.expired=!0,this.params=e,this.params.RoleSessionName=this.params.RoleSessionName||"web-identity",this.data=null,this._clientConfig=r.util.copy(t||{})},refresh:function(e){this.coalesceRefresh(e||r.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.service.assumeRoleWithWebIdentity((function(n,r){t.data=null,n||(t.data=r,t.service.credentialsFrom(r,t)),e(n)}))},createClients:function(){if(!this.service){var e=r.util.merge({},this._clientConfig);e.params=this.params,this.service=new i(e)}}})},{"../../clients/sts":9,"../core":20}],28:[function(e,t,n){(function(n){(function(){function r(e){var t=e.service,n=t.api||{},r={};return t.config.region&&(r.region=t.config.region),n.serviceId&&(r.serviceId=n.serviceId),t.config.credentials.accessKeyId&&(r.accessKeyId=t.config.credentials.accessKeyId),r}function i(e,t,n){n&&null!=t&&"structure"===n.type&&n.required&&n.required.length>0&&h.arrayEach(n.required,(function(r){var o=n.members[r];if(!0===o.endpointDiscoveryId){var s=o.isLocationName?o.name:r;e[s]=String(t[r])}else i(e,t[r],o)}))}function o(e,t){var n={};return i(n,e.params,t),n}function s(e){var t=e.service,n=t.api,i=n.operations?n.operations[e.operation]:void 0,s=o(e,i?i.input:void 0),a=r(e);Object.keys(s).length>0&&(a=h.update(a,s),i&&(a.operation=i.name));var u=d.endpointCache.get(a);if(!u||1!==u.length||""!==u[0].Address)if(u&&u.length>0)e.httpRequest.updateEndpoint(u[0].Address);else{var l=t.makeRequest(n.endpointOperation,{Operation:i.name,Identifiers:s});c(l),l.removeListener("validate",d.EventListeners.Core.VALIDATE_PARAMETERS),l.removeListener("retry",d.EventListeners.Core.RETRY_CHECK),d.endpointCache.put(a,[{Address:"",CachePeriodInMinutes:1}]),l.send((function(e,t){t&&t.Endpoints?d.endpointCache.put(a,t.Endpoints):e&&d.endpointCache.put(a,[{Address:"",CachePeriodInMinutes:1}])}))}}function a(e,t){var n=e.service,i=n.api,s=i.operations?i.operations[e.operation]:void 0,a=s?s.input:void 0,u=o(e,a),l=r(e);Object.keys(u).length>0&&(l=h.update(l,u),s&&(l.operation=s.name));var p=d.EndpointCache.getKeyString(l),f=d.endpointCache.get(p);if(f&&1===f.length&&""===f[0].Address)return m[p]||(m[p]=[]),void m[p].push({request:e,callback:t});if(f&&f.length>0)e.httpRequest.updateEndpoint(f[0].Address),t();else{var g=n.makeRequest(i.endpointOperation,{Operation:s.name,Identifiers:u});g.removeListener("validate",d.EventListeners.Core.VALIDATE_PARAMETERS),c(g),d.endpointCache.put(p,[{Address:"",CachePeriodInMinutes:60}]),g.send((function(n,r){if(n){if(e.response.error=h.error(n,{retryable:!1}),d.endpointCache.remove(l),m[p]){var i=m[p];h.arrayEach(i,(function(e){e.request.response.error=h.error(n,{retryable:!1}),e.callback()})),delete m[p]}}else r&&(d.endpointCache.put(p,r.Endpoints),e.httpRequest.updateEndpoint(r.Endpoints[0].Address),m[p])&&(i=m[p],h.arrayEach(i,(function(e){e.request.httpRequest.updateEndpoint(r.Endpoints[0].Address),e.callback()})),delete m[p]);t()}))}}function c(e){var t=e.service.api.apiVersion;t&&!e.httpRequest.headers["x-amz-api-version"]&&(e.httpRequest.headers["x-amz-api-version"]=t)}function u(e){var t=e.error,n=e.httpResponse;if(t&&("InvalidEndpointException"===t.code||421===n.statusCode)){var i=e.request,s=i.service.api.operations||{},a=o(i,s[i.operation]?s[i.operation].input:void 0),c=r(i);Object.keys(a).length>0&&(c=h.update(c,a),s[i.operation]&&(c.operation=s[i.operation].name)),d.endpointCache.remove(c)}}function l(e){return["false","0"].indexOf(e)>=0}function p(e){var t=e.service||{};if(void 0!==t.config.endpointDiscoveryEnabled)return t.config.endpointDiscoveryEnabled;if(!h.isBrowser()){for(var r=0;r-1&&0==++e[t];t--);}var o=e("../core").util,s=o.buffer.toBuffer;r.fromNumber=function(e){if(e>0x8000000000000000||e<-0x8000000000000000)throw new Error(e+" is too large (or, if negative, too small) to represent as an Int64");for(var t=new Uint8Array(8),n=7,o=Math.abs(Math.round(e));n>-1&&o>0;n--,o/=256)t[n]=o;return e<0&&i(t),new r(t)},r.prototype.valueOf=function(){var e=this.bytes.slice(0),t=128&e[0];return t&&i(e),parseInt(e.toString("hex"),16)*(t?-1:1)},r.prototype.toString=function(){return String(this.valueOf())},t.exports={Int64:r}},{"../core":20}],32:[function(e,t,n){var r=e("./parse-message").parseMessage;t.exports={parseEvent:function(e,t,n){var i=r(t),o=i.headers[":message-type"];if(o){if("error"===o.value)throw function(e){var t=e.headers[":error-code"],n=e.headers[":error-message"],r=new Error(n.value||n);return r.code=r.name=t.value||t,r}(i);if("event"!==o.value)return}var s=i.headers[":event-type"],a=n.members[s.value];if(a){var c={},u=a.eventPayloadMemberName;if(u){var l=a.members[u];"binary"===l.type?c[u]=i.body:c[u]=e.parse(i.body.toString(),l)}for(var p=a.eventHeaderMemberNames,d=0;d=0)return e.httpRequest.headers["X-Amz-Content-Sha256"]="UNSIGNED-PAYLOAD",t();r.util.computeSha256(o,(function(n,r){n?t(n):(e.httpRequest.headers["X-Amz-Content-Sha256"]=r,t())}))}else t()}})),e("SET_CONTENT_LENGTH","afterBuild",(function(e){var t=function(e){if(!e.service.api.operations)return"";var t=e.service.api.operations[e.operation];return t?t.authtype:""}(e),n=r.util.getRequestPayloadShape(e);if(void 0===e.httpRequest.headers["Content-Length"])try{var i=r.util.string.byteLength(e.httpRequest.body);e.httpRequest.headers["Content-Length"]=i}catch(r){if(n&&n.isStreaming){if(n.requiresLength)throw r;if(t.indexOf("unsigned-body")>=0)return void(e.httpRequest.headers["Transfer-Encoding"]="chunked");throw r}throw r}})),e("SET_HTTP_HOST","afterBuild",(function(e){e.httpRequest.headers.Host=e.httpRequest.endpoint.host})),e("RESTART","restart",(function(){var e=this.response.error;e&&e.retryable&&(this.httpRequest=new r.HttpRequest(this.service.endpoint,this.service.region),this.response.retryCount=600?this.emit("sign",[this],(function(e){e?t(e):o()})):o()})),e("HTTP_HEADERS","httpHeaders",(function(e,t,n,i){n.httpResponse.statusCode=e,n.httpResponse.statusMessage=i,n.httpResponse.headers=t,n.httpResponse.body=r.util.buffer.toBuffer(""),n.httpResponse.buffers=[],n.httpResponse.numBytes=0;var o=t.date||t.Date,s=n.request.service;if(o){var a=Date.parse(o);s.config.correctClockSkew&&s.isClockSkewed(a)&&s.applyClockOffset(a)}})),e("HTTP_DATA","httpData",(function(e,t){if(e){if(r.util.isNode()){t.httpResponse.numBytes+=e.length;var n=t.httpResponse.headers["content-length"],i={loaded:t.httpResponse.numBytes,total:n};t.request.emit("httpDownloadProgress",[i,t])}t.httpResponse.buffers.push(r.util.buffer.toBuffer(e))}})),e("HTTP_DONE","httpDone",(function(e){if(e.httpResponse.buffers&&e.httpResponse.buffers.length>0){var t=r.util.buffer.concat(e.httpResponse.buffers);e.httpResponse.body=t}delete e.httpResponse.numBytes,delete e.httpResponse.buffers})),e("FINALIZE_ERROR","retry",(function(e){e.httpResponse.statusCode&&(e.error.statusCode=e.httpResponse.statusCode,void 0===e.error.retryable&&(e.error.retryable=this.service.retryableError(e.error,this)))})),e("INVALIDATE_CREDENTIALS","retry",(function(e){if(e.error)switch(e.error.code){case"RequestExpired":case"ExpiredTokenException":case"ExpiredToken":e.error.retryable=!0,e.request.service.config.credentials.expired=!0}})),e("EXPIRED_SIGNATURE","retry",(function(e){var t=e.error;t&&"string"==typeof t.code&&"string"==typeof t.message&&t.code.match(/Signature/)&&t.message.match(/expired/)&&(e.error.retryable=!0)})),e("CLOCK_SKEWED","retry",(function(e){e.error&&this.service.clockSkewError(e.error)&&this.service.config.correctClockSkew&&(e.error.retryable=!0)})),e("REDIRECT","retry",(function(e){e.error&&e.error.statusCode>=300&&e.error.statusCode<400&&e.httpResponse.headers.location&&(this.httpRequest.endpoint=new r.Endpoint(e.httpResponse.headers.location),this.httpRequest.headers.Host=this.httpRequest.endpoint.host,e.error.redirect=!0,e.error.retryable=!0)})),e("RETRY_CHECK","retry",(function(e){e.error&&(e.error.redirect&&e.redirectCount=0?(e.error=null,setTimeout(t,n)):t()}))})),CorePost:(new i).addNamedListeners((function(e){e("EXTRACT_REQUEST_ID","extractData",r.util.extractRequestId),e("EXTRACT_REQUEST_ID","extractError",r.util.extractRequestId),e("ENOTFOUND_ERROR","httpError",(function(e){if("NetworkingError"===e.code&&function(e){return"ENOTFOUND"===e.errno||"number"==typeof e.errno&&"function"==typeof r.util.getSystemErrorName&&["EAI_NONAME","EAI_NODATA"].indexOf(r.util.getSystemErrorName(e.errno)>=0)}(e)){var t="Inaccessible host: `"+e.hostname+"'. This service may not be available in the `"+e.region+"' region.";this.response.error=r.util.error(new Error(t),{code:"UnknownEndpoint",region:e.region,hostname:e.hostname,retryable:!0,originalError:e})}}))})),Logger:(new i).addNamedListeners((function(t){t("LOG_REQUEST","complete",(function(t){function n(e,t){if(!t)return t;if(e.isSensitive)return"***SensitiveInformation***";switch(e.type){case"structure":var i={};return r.util.each(t,(function(t,r){Object.prototype.hasOwnProperty.call(e.members,t)?i[t]=n(e.members[t],r):i[t]=r})),i;case"list":var o=[];return r.util.arrayEach(t,(function(t,r){o.push(n(e.member,t))})),o;case"map":var s={};return r.util.each(t,(function(t,r){s[t]=n(e.value,r)})),s;default:return t}}var i=t.request,o=i.service.config.logger;if(o){var s=function(){var s=(t.request.service.getSkewCorrectedDate().getTime()-i.startTime.getTime())/1e3,a=!!o.isTTY,c=t.httpResponse.statusCode,u=i.params;i.service.api.operations&&i.service.api.operations[i.operation]&&i.service.api.operations[i.operation].input&&(u=n(i.service.api.operations[i.operation].input,i.params));var l=e("util").inspect(u,!0,null),p="";return a&&(p+=""),p+="[AWS "+i.service.serviceIdentifier+" "+c,p+=" "+s.toString()+"s "+t.retryCount+" retries]",a&&(p+=""),p+=" "+r.util.string.lowerFirst(i.operation),p+="("+l+")",a&&(p+=""),p}();"function"==typeof o.log?o.log(s):"function"==typeof o.write&&o.write(s+"\n")}}))})),Json:(new i).addNamedListeners((function(t){var n=e("./protocol/json");t("BUILD","build",n.buildRequest),t("EXTRACT_DATA","extractData",n.extractData),t("EXTRACT_ERROR","extractError",n.extractError)})),Rest:(new i).addNamedListeners((function(t){var n=e("./protocol/rest");t("BUILD","build",n.buildRequest),t("EXTRACT_DATA","extractData",n.extractData),t("EXTRACT_ERROR","extractError",n.extractError)})),RestJson:(new i).addNamedListeners((function(t){var n=e("./protocol/rest_json");t("BUILD","build",n.buildRequest),t("EXTRACT_DATA","extractData",n.extractData),t("EXTRACT_ERROR","extractError",n.extractError)})),RestXml:(new i).addNamedListeners((function(t){var n=e("./protocol/rest_xml");t("BUILD","build",n.buildRequest),t("EXTRACT_DATA","extractData",n.extractData),t("EXTRACT_ERROR","extractError",n.extractError)})),Query:(new i).addNamedListeners((function(t){var n=e("./protocol/query");t("BUILD","build",n.buildRequest),t("EXTRACT_DATA","extractData",n.extractData),t("EXTRACT_ERROR","extractError",n.extractError)}))}},{"./core":20,"./discover_endpoint":28,"./protocol/json":48,"./protocol/query":49,"./protocol/rest":50,"./protocol/rest_json":51,"./protocol/rest_xml":52,"./sequential_executor":60,util:99}],36:[function(e,t,n){var r=e("./core"),i=r.util.inherit;r.Endpoint=i({constructor:function(e,t){if(r.util.hideProperties(this,["slashes","auth","hash","search","query"]),null==e)throw new Error("Invalid endpoint: "+e);if("string"!=typeof e)return r.util.copy(e);e.match(/^http/)||(e=((t&&void 0!==t.sslEnabled?t.sslEnabled:r.config.sslEnabled)?"https":"http")+"://"+e),r.util.update(this,r.util.urlParse(e)),this.port?this.port=parseInt(this.port,10):this.port="https:"===this.protocol?443:80}}),r.HttpRequest=i({constructor:function(e,t){e=new r.Endpoint(e),this.method="POST",this.path=e.path||"/",this.headers={},this.body="",this.endpoint=e,this.region=t,this._userAgent="",this.setUserAgent()},setUserAgent:function(){this._userAgent=this.headers[this.getUserAgentHeaderName()]=r.util.userAgent()},getUserAgentHeaderName:function(){return(r.util.isBrowser()?"X-Amz-":"")+"User-Agent"},appendToUserAgent:function(e){"string"==typeof e&&e&&(this._userAgent+=" "+e),this.headers[this.getUserAgentHeaderName()]=this._userAgent},getUserAgent:function(){return this._userAgent},pathname:function(){return this.path.split("?",1)[0]},search:function(){var e=this.path.split("?",2)[1];return e?(e=r.util.queryStringParse(e),r.util.queryParamsToString(e)):""},updateEndpoint:function(e){var t=new r.Endpoint(e);this.endpoint=t,this.path=t.path||"/",this.headers.Host&&(this.headers.Host=t.host)}}),r.HttpResponse=i({constructor:function(){this.statusCode=void 0,this.headers={},this.body=void 0,this.streaming=!1,this.stream=null},createUnbufferedStream:function(){return this.streaming=!0,this.stream}}),r.HttpClient=i({}),r.HttpClient.getInstance=function(){return void 0===this.singleton&&(this.singleton=new this),this.singleton}},{"./core":20}],37:[function(e,t,n){var r=e("../core"),i=e("events").EventEmitter;e("../http"),r.XHRClient=r.util.inherit({handleRequest:function(e,t,n,o){var s=this,a=e.endpoint,c=new i,u=a.protocol+"//"+a.hostname;80!==a.port&&443!==a.port&&(u+=":"+a.port),u+=e.path;var l=new XMLHttpRequest,p=!1;e.stream=l,l.addEventListener("readystatechange",(function(){try{if(0===l.status)return}catch(e){return}this.readyState>=this.HEADERS_RECEIVED&&!p&&(c.statusCode=l.status,c.headers=s.parseHeaders(l.getAllResponseHeaders()),c.emit("headers",c.statusCode,c.headers,l.statusText),p=!0),this.readyState===this.DONE&&s.finishRequest(l,c)}),!1),l.upload.addEventListener("progress",(function(e){c.emit("sendProgress",e)})),l.addEventListener("progress",(function(e){c.emit("receiveProgress",e)}),!1),l.addEventListener("timeout",(function(){o(r.util.error(new Error("Timeout"),{code:"TimeoutError"}))}),!1),l.addEventListener("error",(function(){o(r.util.error(new Error("Network Failure"),{code:"NetworkingError"}))}),!1),l.addEventListener("abort",(function(){o(r.util.error(new Error("Request aborted"),{code:"RequestAbortedError"}))}),!1),n(c),l.open(e.method,u,!1!==t.xhrAsync),r.util.each(e.headers,(function(e,t){"Content-Length"!==e&&"User-Agent"!==e&&"Host"!==e&&l.setRequestHeader(e,t)})),t.timeout&&!1!==t.xhrAsync&&(l.timeout=t.timeout),t.xhrWithCredentials&&(l.withCredentials=!0);try{l.responseType="arraybuffer"}catch(e){}try{e.body?l.send(e.body):l.send()}catch(t){if(!e.body||"object"!=typeof e.body.buffer)throw t;l.send(e.body.buffer)}return c},parseHeaders:function(e){var t={};return r.util.arrayEach(e.split(/\r?\n/),(function(e){var n=e.split(":",1)[0],r=e.substring(n.length+2);n.length>0&&(t[n.toLowerCase()]=r)})),t},finishRequest:function(e,t){var n;if("arraybuffer"===e.responseType&&e.response){var i=e.response;n=new r.util.Buffer(i.byteLength);for(var o=new Uint8Array(i),s=0;s-1?t||"":t,this.isJsonValue?JSON.parse(t):t&&"function"==typeof t.toString?t.toString():t},this.toWireFormat=function(e){return this.isJsonValue?JSON.stringify(e):e}}function p(){o.apply(this,arguments),this.toType=function(e){var t=m.base64.decode(e);if(this.isSensitive&&m.isNode()&&"function"==typeof m.Buffer.alloc){var n=m.Buffer.alloc(t.length,t);t.fill(0),t=n}return t},this.toWireFormat=m.base64.encode}function d(){p.apply(this,arguments)}function h(){o.apply(this,arguments),this.toType=function(e){return"boolean"==typeof e?e:null==e?null:"true"===e}}var f=e("./collection"),m=e("../util");o.normalizedTypes={character:"string",double:"float",long:"integer",short:"integer",biginteger:"integer",bigdecimal:"float",blob:"binary"},o.types={structure:a,list:c,map:u,boolean:h,timestamp:function(e){var t=this;if(o.apply(this,arguments),e.timestampFormat)r(this,"timestampFormat",e.timestampFormat);else if(t.isTimestampFormatSet&&this.timestampFormat)r(this,"timestampFormat",this.timestampFormat);else if("header"===this.location)r(this,"timestampFormat","rfc822");else if("querystring"===this.location)r(this,"timestampFormat","iso8601");else if(this.api)switch(this.api.protocol){case"json":case"rest-json":r(this,"timestampFormat","unixTimestamp");break;case"rest-xml":case"query":case"ec2":r(this,"timestampFormat","iso8601")}this.toType=function(e){return null==e?null:"function"==typeof e.toUTCString?e:"string"==typeof e||"number"==typeof e?m.date.parseTimestamp(e):null},this.toWireFormat=function(e){return m.date.format(e,t.timestampFormat)}},float:function(){o.apply(this,arguments),this.toType=function(e){return null==e?null:parseFloat(e)},this.toWireFormat=this.toType},integer:function(){o.apply(this,arguments),this.toType=function(e){return null==e?null:parseInt(e,10)},this.toWireFormat=this.toType},string:l,base64:d,binary:p},o.resolve=function(e,t){if(e.shape){var n=t.api.shapes[e.shape];if(!n)throw new Error("Cannot find shape reference: "+e.shape);return n}return null},o.create=function(e,t,n){if(e.isShape)return e;var r=o.resolve(e,t);if(r){var i=Object.keys(e);t.documentation||(i=i.filter((function(e){return!e.match(/documentation/)})));var s=function(){r.constructor.call(this,e,t,n)};return s.prototype=r,new s}e.type||(e.members?e.type="structure":e.member?e.type="list":e.key?e.type="map":e.type="string");var a=e.type;if(o.normalizedTypes[e.type]&&(e.type=o.normalizedTypes[e.type]),o.types[e.type])return new o.types[e.type](e,t,n);throw new Error("Unrecognized shape type: "+a)},o.shapes={StructureShape:a,ListShape:c,MapShape:u,StringShape:l,BooleanShape:h,Base64Shape:d},t.exports=o},{"../util":73,"./collection":41}],46:[function(e,t,n){var r=e("./core");r.ParamValidator=r.util.inherit({constructor:function(e){!0!==e&&void 0!==e||(e={min:!0}),this.validation=e},validate:function(e,t,n){if(this.errors=[],this.validateMember(e,t||{},n||"params"),this.errors.length>1){var i=this.errors.join("\n* ");throw i="There were "+this.errors.length+" validation errors:\n* "+i,r.util.error(new Error(i),{code:"MultipleValidationErrors",errors:this.errors})}if(1===this.errors.length)throw this.errors[0];return!0},fail:function(e,t){this.errors.push(r.util.error(new Error(t),{code:e}))},validateStructure:function(e,t,n){this.validateType(t,n,["object"],"structure");for(var r,i=0;e.required&&i= 1, but found "'+t+'" for '+n)},validatePattern:function(e,t,n){this.validation.pattern&&void 0!==e.pattern&&(new RegExp(e.pattern).test(t)||this.fail("PatternMatchError",'Provided value "'+t+'" does not match regex pattern /'+e.pattern+"/ for "+n))},validateRange:function(e,t,n,r){this.validation.min&&void 0!==e.min&&t= "+e.min+", but found "+t+" for "+n),this.validation.max&&void 0!==e.max&&t>e.max&&this.fail("MaxRangeError","Expected "+r+" <= "+e.max+", but found "+t+" for "+n)},validateEnum:function(e,t,n){this.validation.enum&&void 0!==e.enum&&-1===e.enum.indexOf(t)&&this.fail("EnumError","Found string value of "+t+", but expected "+e.enum.join("|")+" for "+n)},validateType:function(e,t,n,i){if(null==e)return!1;for(var o=!1,s=0;s63)throw r.error(new Error,{code:"ValidationError",message:"Hostname label length should be between 1 to 63 characters, inclusive."});if(!n.test(e))throw i.util.error(new Error,{code:"ValidationError",message:e+" is not hostname compatible."})}))}(e.httpRequest.endpoint.hostname)}return e}}},{"../core":20,"../util":73}],48:[function(e,t,n){var r=e("../util"),i=e("../json/builder"),o=e("../json/parser"),s=e("./helpers").populateHostPrefix;t.exports={buildRequest:function(e){var t=e.httpRequest,n=e.service.api,r=n.targetPrefix+"."+n.operations[e.operation].name,o=n.jsonVersion||"1.0",a=n.operations[e.operation].input,c=new i;1===o&&(o="1.0"),t.body=c.build(e.params||{},a),t.headers["Content-Type"]="application/x-amz-json-"+o,t.headers["X-Amz-Target"]=r,s(e)},extractError:function(e){var t={},n=e.httpResponse;if(t.code=n.headers["x-amzn-errortype"]||"UnknownError","string"==typeof t.code&&(t.code=t.code.split(":")[0]),n.body.length>0)try{var i=JSON.parse(n.body.toString()),o=i.__type||i.code||i.Code;o&&(t.code=o.split("#").pop()),"RequestEntityTooLarge"===t.code?t.message="Request body must be less than 1 MB":t.message=i.message||i.Message||null}catch(i){t.statusCode=n.statusCode,t.message=n.statusMessage}else t.statusCode=n.statusCode,t.message=n.statusCode.toString();e.error=r.error(new Error,t)},extractData:function(e){var t=e.httpResponse.body.toString()||"{}";if(!1===e.request.service.config.convertResponseTypes)e.data=JSON.parse(t);else{var n=e.request.service.api.operations[e.request.operation].output||{},r=new o;e.data=r.parse(t,n)}}}},{"../json/builder":38,"../json/parser":39,"../util":73,"./helpers":47}],49:[function(e,t,n){var r=e("../core"),i=e("../util"),o=e("../query/query_param_serializer"),s=e("../model/shape"),a=e("./helpers").populateHostPrefix;t.exports={buildRequest:function(e){var t=e.service.api.operations[e.operation],n=e.httpRequest;n.headers["Content-Type"]="application/x-www-form-urlencoded; charset=utf-8",n.params={Version:e.service.api.apiVersion,Action:t.name},(new o).serialize(e.params,t.input,(function(e,t){n.params[e]=t})),n.body=i.queryParamsToString(n.params),a(e)},extractError:function(e){var t,n=e.httpResponse.body.toString();if(n.match("=0?"&":"?";var c=[];i.arrayEach(Object.keys(s).sort(),(function(e){Array.isArray(s[e])||(s[e]=[s[e]]);for(var t=0;t0){var p=(t=new r.XML.Parser).parse(s.toString(),c);i.update(e.data,p)}}}},{"../core":20,"../util":73,"./rest":50}],53:[function(e,t,n){function r(){}function i(e){return e.isQueryName||"ec2"!==e.api.protocol?e.name:e.name[0].toUpperCase()+e.name.substr(1)}function o(e,t,n,r){a.each(n.members,(function(n,o){var a=t[n];if(null!=a){var c=i(o);s(c=e?e+"."+c:c,a,o,r)}}))}function s(e,t,n,r){null!=t&&("structure"===n.type?o(e,t,n,r):"list"===n.type?function(e,t,n,r){var o=n.member||{};0!==t.length?a.arrayEach(t,(function(t,a){var c="."+(a+1);if("ec2"===n.api.protocol)c+="";else if(n.flattened){if(o.name){var u=e.split(".");u.pop(),u.push(i(o)),e=u.join(".")}}else c="."+(o.name?o.name:"member")+c;s(e+c,t,o,r)})):r.call(this,e,null)}(e,t,n,r):"map"===n.type?function(e,t,n,r){var i=1;a.each(t,(function(t,o){var a=(n.flattened?".":".entry.")+i+++".",c=a+(n.key.name||"key"),u=a+(n.value.name||"value");s(e+c,t,n.key,r),s(e+u,o,n.value,r)}))}(e,t,n,r):r(e,n.toWireFormat(t).toString()))}var a=e("../util");r.prototype.serialize=function(e,t,n){o("",e,t,n)},t.exports=r},{"../util":73}],54:[function(e,t,n){t.exports={now:function(){return"undefined"!=typeof performance&&"function"==typeof performance.now?performance.now():Date.now()}}},{}],55:[function(e,t,n){function r(e,t){i.each(t,(function(t,n){"globalEndpoint"!==t&&(void 0!==e.config[t]&&null!==e.config[t]||(e.config[t]=n))}))}var i=e("./util"),o=e("./region_config_data.json");t.exports={configureEndpoint:function(e){for(var t=function(e){var t=e.config.region,n=function(e){if(!e)return null;var t=e.split("-");return t.length<3?null:t.slice(0,t.length-2).join("-")+"-*"}(t),r=e.api.endpointPrefix;return[[t,r],[n,r],[t,"*"],[n,"*"],["*",r],["*","*"]].map((function(e){return e[0]&&e[1]?e.join("/"):null}))}(e),n=0;n=0){c=!0;var u=0}var l=function(){c&&u!==a?i.emit("error",n.util.error(new Error("Stream content length mismatch. Received "+u+" of "+a+" bytes."),{code:"StreamContentLengthMismatch"})):2===n.HttpClient.streamsApiVersion?i.end():i.emit("end")},p=s.httpResponse.createUnbufferedStream();if(2===n.HttpClient.streamsApiVersion)if(c){var d=new e.PassThrough;d._write=function(t){return t&&t.length&&(u+=t.length),e.PassThrough.prototype._write.apply(this,arguments)},d.on("end",l),i.on("error",(function(e){c=!1,p.unpipe(d),d.emit("end"),d.end()})),p.pipe(d).pipe(i,{end:!1})}else p.pipe(i);else c&&p.on("data",(function(e){e&&e.length&&(u+=e.length)})),p.on("data",(function(e){i.emit("data",e)})),p.on("end",l);p.on("error",(function(e){c=!1,i.emit("error",e)}))}})),i},emitEvent:function(e,t,r){"function"==typeof t&&(r=t,t=null),r||(r=function(){}),t||(t=this.eventParameters(e,this.response)),n.SequentialExecutor.prototype.emit.call(this,e,t,(function(e){e&&(this.response.error=e),r.call(this,e)}))},eventParameters:function(e){switch(e){case"restart":case"validate":case"sign":case"build":case"afterValidate":case"afterBuild":return[this];case"error":return[this.response.error,this.response];default:return[this.response]}},presign:function(e,t){return t||"function"!=typeof e||(t=e,e=null),(new n.Signers.Presign).sign(this.toGet(),e,t)},isPresigned:function(){return Object.prototype.hasOwnProperty.call(this.httpRequest.headers,"presigned-expires")},toUnauthenticated:function(){return this._unAuthenticated=!0,this.removeListener("validate",n.EventListeners.Core.VALIDATE_CREDENTIALS),this.removeListener("sign",n.EventListeners.Core.SIGN),this},toGet:function(){return"query"!==this.service.api.protocol&&"ec2"!==this.service.api.protocol||(this.removeListener("build",this.buildAsGet),this.addListener("build",this.buildAsGet)),this},buildAsGet:function(e){e.httpRequest.method="GET",e.httpRequest.path=e.service.endpoint.path+"?"+e.httpRequest.body,e.httpRequest.body="",delete e.httpRequest.headers["Content-Length"],delete e.httpRequest.headers["Content-Type"]},haltHandlersOnError:function(){this._haltHandlersOnError=!0}}),n.Request.addPromisesToClass=function(e){this.prototype.promise=function(){var t=this;return this.httpRequest.appendToUserAgent("promise"),new e((function(e,n){t.on("complete",(function(t){t.error?n(t.error):e(Object.defineProperty(t.data||{},"$response",{value:t}))})),t.runTo()}))}},n.Request.deletePromisesFromClass=function(){delete this.prototype.promise},n.util.addPromises(n.Request),n.util.mixin(n.Request,n.SequentialExecutor)}).call(this)}).call(this,e("_process"))},{"./core":20,"./state_machine":72,_process:87,jmespath:86}],58:[function(e,t,n){function r(e){var t=e.request._waiter,n=t.config.acceptors,r=!1,i="retry";n.forEach((function(n){if(!r){var o=t.matchers[n.matcher];o&&o(e,n.expected,n.argument)&&(r=!0,i=n.state)}})),!r&&e.error&&(i="failure"),"success"===i?t.setSuccess(e):t.setError(e,"retry"===i)}var i=e("./core"),o=i.util.inherit,s=e("jmespath");i.ResourceWaiter=o({constructor:function(e,t){this.service=e,this.state=t,this.loadWaiterConfig(this.state)},service:null,state:null,config:null,matchers:{path:function(e,t,n){try{var r=s.search(e.data,n)}catch(e){return!1}return s.strictDeepEqual(r,t)},pathAll:function(e,t,n){try{var r=s.search(e.data,n)}catch(e){return!1}Array.isArray(r)||(r=[r]);var i=r.length;if(!i)return!1;for(var o=0;o-1&&n.splice(i,1)}return this},removeAllListeners:function(e){return e?delete this._events[e]:this._events={},this},emit:function(e,t,n){n||(n=function(){});var r=this.listeners(e),i=r.length;return this.callListeners(r,t,n),i>0},callListeners:function(e,t,n,i){function o(i){if(i&&(a=r.util.error(a||new Error,i),s._haltHandlersOnError))return n.call(s,a);s.callListeners(e,t,n,a)}for(var s=this,a=i||null;e.length>0;){var c=e.shift();if(c._isAsync)return void c.apply(s,t.concat([o]));try{c.apply(s,t)}catch(e){a=r.util.error(a||new Error,e)}if(a&&s._haltHandlersOnError)return void n.call(s,a)}n.call(s,a)},addListeners:function(e){var t=this;return e._events&&(e=e._events),r.util.each(e,(function(e,n){"function"==typeof n&&(n=[n]),r.util.arrayEach(n,(function(n){t.on(e,n)}))})),t},addNamedListener:function(e,t,n,r){return this[e]=n,this.addListener(t,n,r),this},addNamedAsyncListener:function(e,t,n,r){return n._isAsync=!0,this.addNamedListener(e,t,n,r)},addNamedListeners:function(e){var t=this;return e((function(){t.addNamedListener.apply(t,arguments)}),(function(){t.addNamedAsyncListener.apply(t,arguments)})),this}}),r.SequentialExecutor.prototype.addListener=r.SequentialExecutor.prototype.on,t.exports=r.SequentialExecutor},{"./core":20}],61:[function(e,t,n){(function(n){(function(){var r=e("./core"),i=e("./model/api"),o=e("./region_config"),s=r.util.inherit,a=0;r.Service=s({constructor:function(e){if(!this.loadServiceClass)throw r.util.error(new Error,"Service must be constructed with `new' operator");var t=this.loadServiceClass(e||{});if(t){var n=r.util.copy(e),i=new t(e);return Object.defineProperty(i,"_originalConfig",{get:function(){return n},enumerable:!1,configurable:!0}),i._clientId=++a,i}this.initialize(e)},initialize:function(e){var t=r.config[this.serviceIdentifier];if(this.config=new r.Config(r.config),t&&this.config.update(t,!0),e&&this.config.update(e,!0),this.validateService(),this.config.endpoint||o.configureEndpoint(this),this.config.endpoint=this.endpointFromTemplate(this.config.endpoint),this.setEndpoint(this.config.endpoint),r.SequentialExecutor.call(this),r.Service.addDefaultMonitoringListeners(this),(this.config.clientSideMonitoring||r.Service._clientSideMonitoring)&&this.publisher){var i=this.publisher;this.addNamedListener("PUBLISH_API_CALL","apiCall",(function(e){n.nextTick((function(){i.eventHandler(e)}))})),this.addNamedListener("PUBLISH_API_ATTEMPT","apiCallAttempt",(function(e){n.nextTick((function(){i.eventHandler(e)}))}))}},validateService:function(){},loadServiceClass:function(e){var t=e;if(r.util.isEmpty(this.api)){if(t.apiConfig)return r.Service.defineServiceApi(this.constructor,t.apiConfig);if(this.constructor.services){(t=new r.Config(r.config)).update(e,!0);var n=t.apiVersions[this.constructor.serviceIdentifier];return n=n||t.apiVersion,this.getLatestServiceClass(n)}return null}return null},getLatestServiceClass:function(e){return e=this.getLatestServiceVersion(e),null===this.constructor.services[e]&&r.Service.defineServiceApi(this.constructor,e),this.constructor.services[e]},getLatestServiceVersion:function(e){if(!this.constructor.services||0===this.constructor.services.length)throw new Error("No services defined on "+this.constructor.serviceIdentifier);if(e?r.util.isType(e,Date)&&(e=r.util.date.iso8601(e).split("T")[0]):e="latest",Object.hasOwnProperty(this.constructor.services,e))return e;for(var t=Object.keys(this.constructor.services).sort(),n=null,i=t.length-1;i>=0;i--)if("*"!==t[i][t[i].length-1]&&(n=t[i]),t[i].substr(0,10)<=e)return n;throw new Error("Could not find "+this.constructor.serviceIdentifier+" API to satisfy version constraint `"+e+"'")},api:{},defaultRetryCount:3,customizeRequests:function(e){if(e){if("function"!=typeof e)throw new Error("Invalid callback type '"+typeof e+"' provided in customizeRequests");this.customRequestHandler=e}else this.customRequestHandler=null},makeRequest:function(e,t,n){if("function"==typeof t&&(n=t,t=null),t=t||{},this.config.params){var i=this.api.operations[e];i&&(t=r.util.copy(t),r.util.each(this.config.params,(function(e,n){i.input.members[e]&&(void 0!==t[e]&&null!==t[e]||(t[e]=n))})))}var o=new r.Request(this,e,t);return this.addAllRequestListeners(o),this.attachMonitoringEmitter(o),n&&o.send(n),o},makeUnauthenticatedRequest:function(e,t,n){"function"==typeof t&&(n=t,t={});var r=this.makeRequest(e,t).toUnauthenticated();return n?r.send(n):r},waitFor:function(e,t,n){return new r.ResourceWaiter(this,e).wait(t,n)},addAllRequestListeners:function(e){for(var t=[r.events,r.EventListeners.Core,this.serviceInterface(),r.EventListeners.CorePost],n=0;n299?(i.code&&(n.FinalAwsException=i.code),i.message&&(n.FinalAwsExceptionMessage=i.message)):((i.code||i.name)&&(n.FinalSdkException=i.code||i.name),i.message&&(n.FinalSdkExceptionMessage=i.message))}return n},apiAttemptEvent:function(e){var t=e.service.api.operations[e.operation],n={Type:"ApiCallAttempt",Api:t?t.name:e.operation,Version:1,Service:e.service.api.serviceId||e.service.api.endpointPrefix,Fqdn:e.httpRequest.endpoint.hostname,UserAgent:e.httpRequest.getUserAgent()},r=e.response;return r.httpResponse.statusCode&&(n.HttpStatusCode=r.httpResponse.statusCode),!e._unAuthenticated&&e.service.config.credentials&&e.service.config.credentials.accessKeyId&&(n.AccessKey=e.service.config.credentials.accessKeyId),r.httpResponse.headers?(e.httpRequest.headers["x-amz-security-token"]&&(n.SessionToken=e.httpRequest.headers["x-amz-security-token"]),r.httpResponse.headers["x-amzn-requestid"]&&(n.XAmznRequestId=r.httpResponse.headers["x-amzn-requestid"]),r.httpResponse.headers["x-amz-request-id"]&&(n.XAmzRequestId=r.httpResponse.headers["x-amz-request-id"]),r.httpResponse.headers["x-amz-id-2"]&&(n.XAmzId2=r.httpResponse.headers["x-amz-id-2"]),n):n},attemptFailEvent:function(e){var t=this.apiAttemptEvent(e),n=e.response,r=n.error;return n.httpResponse.statusCode>299?(r.code&&(t.AwsException=r.code),r.message&&(t.AwsExceptionMessage=r.message)):((r.code||r.name)&&(t.SdkException=r.code||r.name),r.message&&(t.SdkExceptionMessage=r.message)),t},attachMonitoringEmitter:function(e){var t,n,i,o,s,a,c=0,u=this;e.on("validate",(function(){o=r.util.realClock.now(),a=Date.now()}),!0),e.on("sign",(function(){n=r.util.realClock.now(),t=Date.now(),s=e.httpRequest.region,c++}),!0),e.on("validateResponse",(function(){i=Math.round(r.util.realClock.now()-n)})),e.addNamedListener("API_CALL_ATTEMPT","success",(function(){var n=u.apiAttemptEvent(e);n.Timestamp=t,n.AttemptLatency=i>=0?i:0,n.Region=s,u.emit("apiCallAttempt",[n])})),e.addNamedListener("API_CALL_ATTEMPT_RETRY","retry",(function(){var o=u.attemptFailEvent(e);o.Timestamp=t,i=i||Math.round(r.util.realClock.now()-n),o.AttemptLatency=i>=0?i:0,o.Region=s,u.emit("apiCallAttempt",[o])})),e.addNamedListener("API_CALL","complete",(function(){var t=u.apiCallEvent(e);if(t.AttemptCount=c,!(t.AttemptCount<=0)){t.Timestamp=a;var n=Math.round(r.util.realClock.now()-o);t.Latency=n>=0?n:0;var i=e.response;i.error&&i.error.retryable&&"number"==typeof i.retryCount&&"number"==typeof i.maxRetries&&i.retryCount>=i.maxRetries&&(t.MaxRetriesExceeded=1),u.emit("apiCall",[t])}}))},setupRequestListeners:function(e){},getSigningName:function(){return this.api.signingName||this.api.endpointPrefix},getSignerClass:function(e){var t,n=null,i="";return e&&(i=(n=(e.service.api.operations||{})[e.operation]||null)?n.authtype:""),t=this.config.signatureVersion?this.config.signatureVersion:"v4"===i||"v4-unsigned-body"===i?"v4":this.api.signatureVersion,r.Signers.RequestSigner.getVersion(t)},serviceInterface:function(){switch(this.api.protocol){case"ec2":case"query":return r.EventListeners.Query;case"json":return r.EventListeners.Json;case"rest-json":return r.EventListeners.RestJson;case"rest-xml":return r.EventListeners.RestXml}if(this.api.protocol)throw new Error("Invalid service `protocol' "+this.api.protocol+" in API config")},successfulResponse:function(e){return e.httpResponse.statusCode<300},numRetries:function(){return void 0!==this.config.maxRetries?this.config.maxRetries:this.defaultRetryCount},retryDelays:function(e,t){return r.util.calculateRetryDelay(e,this.config.retryDelayOptions,t)},retryableError:function(e){return!!this.timeoutError(e)||!!this.networkingError(e)||!!this.expiredCredentialsError(e)||!!this.throttledError(e)||e.statusCode>=500},networkingError:function(e){return"NetworkingError"===e.code},timeoutError:function(e){return"TimeoutError"===e.code},expiredCredentialsError:function(e){return"ExpiredTokenException"===e.code},clockSkewError:function(e){switch(e.code){case"RequestTimeTooSkewed":case"RequestExpired":case"InvalidSignatureException":case"SignatureDoesNotMatch":case"AuthFailure":case"RequestInTheFuture":return!0;default:return!1}},getSkewCorrectedDate:function(){return new Date(Date.now()+this.config.systemClockOffset)},applyClockOffset:function(e){e&&(this.config.systemClockOffset=e-Date.now())},isClockSkewed:function(e){if(e)return Math.abs(this.getSkewCorrectedDate().getTime()-e)>=3e5},throttledError:function(e){if(429===e.statusCode)return!0;switch(e.code){case"ProvisionedThroughputExceededException":case"Throttling":case"ThrottlingException":case"RequestLimitExceeded":case"RequestThrottled":case"RequestThrottledException":case"TooManyRequestsException":case"TransactionInProgressException":case"EC2ThrottledException":return!0;default:return!1}},endpointFromTemplate:function(e){if("string"!=typeof e)return e;return e.replace(/\{service\}/g,this.api.endpointPrefix).replace(/\{region\}/g,this.config.region).replace(/\{scheme\}/g,this.config.sslEnabled?"https":"http")},setEndpoint:function(e){this.endpoint=new r.Endpoint(e,this.config)},paginationConfig:function(e,t){var n=this.api.operations[e].paginator;if(!n){if(t){var i=new Error;throw r.util.error(i,"No pagination configuration for "+e)}return null}return n}}),r.util.update(r.Service,{defineMethods:function(e){r.util.each(e.prototype.api.operations,(function(t){e.prototype[t]||("none"===e.prototype.api.operations[t].authtype?e.prototype[t]=function(e,n){return this.makeUnauthenticatedRequest(t,e,n)}:e.prototype[t]=function(e,n){return this.makeRequest(t,e,n)})}))},defineService:function(e,t,n){r.Service._serviceMap[e]=!0,Array.isArray(t)||(n=t,t=[]);var i=s(r.Service,n||{});if("string"==typeof e){r.Service.addVersions(i,t);var o=i.serviceIdentifier||e;i.serviceIdentifier=o}else i.prototype.api=e,r.Service.defineMethods(i);if(r.SequentialExecutor.call(this.prototype),!this.prototype.publisher&&r.util.clientSideMonitoring){var a=r.util.clientSideMonitoring.Publisher,c=(0,r.util.clientSideMonitoring.configProvider)();this.prototype.publisher=new a(c),c.enabled&&(r.Service._clientSideMonitoring=!0)}return r.SequentialExecutor.call(i.prototype),r.Service.addDefaultMonitoringListeners(i.prototype),i},addVersions:function(e,t){Array.isArray(t)||(t=[t]),e.services=e.services||{};for(var n=0;n604800)throw o.util.error(new Error,{code:"InvalidExpiryTime",message:"Presigning does not support expiry time greater than a week with SigV4 signing.",retryable:!1});e.httpRequest.headers[a]=t}else{if(n!==o.Signers.S3)throw o.util.error(new Error,{message:"Presigning only supports S3 or SigV4 signing.",code:"UnsupportedSigner",retryable:!1});var r=e.service?e.service.getSkewCorrectedDate():o.util.date.getDate();e.httpRequest.headers[a]=parseInt(o.util.date.unixTimestamp(r)+t,10).toString()}}function i(e){var t=e.httpRequest.endpoint,n=o.util.urlParse(e.httpRequest.path),r={};n.search&&(r=o.util.queryStringParse(n.search.substr(1)));var i=e.httpRequest.headers.Authorization.split(" ");if("AWS"===i[0])i=i[1].split(":"),r.Signature=i.pop(),r.AWSAccessKeyId=i.join(":"),o.util.each(e.httpRequest.headers,(function(e,t){e===a&&(e="Expires"),0===e.indexOf("x-amz-meta-")&&(delete r[e],e=e.toLowerCase()),r[e]=t})),delete e.httpRequest.headers[a],delete r.Authorization,delete r.Host;else if("AWS4-HMAC-SHA256"===i[0]){i.shift();var s=i.join(" ").match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1];r["X-Amz-Signature"]=s,delete r.Expires}t.pathname=n.pathname,t.search=o.util.queryParamsToString(r)}var o=e("../core"),s=o.util.inherit,a="presigned-expires";o.Signers.Presign=s({sign:function(e,t,n){if(e.httpRequest.headers[a]=t||3600,e.on("build",r),e.on("sign",i),e.removeListener("afterBuild",o.EventListeners.Core.SET_CONTENT_LENGTH),e.removeListener("afterBuild",o.EventListeners.Core.COMPUTE_SHA256),e.emit("beforePresign",[e]),!n){if(e.build(),e.response.error)throw e.response.error;return o.util.urlFormat(e.httpRequest.endpoint)}e.build((function(){this.response.error?n(this.response.error):n(null,o.util.urlFormat(e.httpRequest.endpoint))}))}}),t.exports=o.Signers.Presign},{"../core":20}],65:[function(e,t,n){var r=e("../core"),i=r.util.inherit;r.Signers.RequestSigner=i({constructor:function(e){this.request=e},setServiceClientId:function(e){this.serviceClientId=e},getServiceClientId:function(){return this.serviceClientId}}),r.Signers.RequestSigner.getVersion=function(e){switch(e){case"v2":return r.Signers.V2;case"v3":return r.Signers.V3;case"s3v4":case"v4":return r.Signers.V4;case"s3":return r.Signers.S3;case"v3https":return r.Signers.V3Https}throw new Error("Unknown signing version "+e)},e("./v2"),e("./v3"),e("./v3https"),e("./v4"),e("./s3"),e("./presign")},{"../core":20,"./presign":64,"./s3":66,"./v2":67,"./v3":68,"./v3https":69,"./v4":70}],66:[function(e,t,n){var r=e("../core"),i=r.util.inherit;r.Signers.S3=i(r.Signers.RequestSigner,{subResources:{acl:1,accelerate:1,analytics:1,cors:1,lifecycle:1,delete:1,inventory:1,location:1,logging:1,metrics:1,notification:1,partNumber:1,policy:1,requestPayment:1,replication:1,restore:1,tagging:1,torrent:1,uploadId:1,uploads:1,versionId:1,versioning:1,versions:1,website:1},responseHeaders:{"response-content-type":1,"response-content-language":1,"response-expires":1,"response-cache-control":1,"response-content-disposition":1,"response-content-encoding":1},addAuthorization:function(e,t){this.request.headers["presigned-expires"]||(this.request.headers["X-Amz-Date"]=r.util.date.rfc822(t)),e.sessionToken&&(this.request.headers["x-amz-security-token"]=e.sessionToken);var n=this.sign(e.secretAccessKey,this.stringToSign()),i="AWS "+e.accessKeyId+":"+n;this.request.headers.Authorization=i},stringToSign:function(){var e=this.request,t=[];t.push(e.method),t.push(e.headers["Content-MD5"]||""),t.push(e.headers["Content-Type"]||""),t.push(e.headers["presigned-expires"]||"");var n=this.canonicalizedAmzHeaders();return n&&t.push(n),t.push(this.canonicalizedResource()),t.join("\n")},canonicalizedAmzHeaders:function(){var e=[];r.util.each(this.request.headers,(function(t){t.match(/^x-amz-/i)&&e.push(t)})),e.sort((function(e,t){return e.toLowerCase()=0?"&":"?";this.request.path+=o+r.util.queryParamsToString(i)},authorization:function(e,t){var n=[],r=this.credentialString(t);return n.push(this.algorithm+" Credential="+e.accessKeyId+"/"+r),n.push("SignedHeaders="+this.signedHeaders()),n.push("Signature="+this.signature(e,t)),n.join(", ")},signature:function(e,t){var n=i.getSigningKey(e,t.substr(0,8),this.request.region,this.serviceName,this.signatureCache);return r.util.crypto.hmac(n,this.stringToSign(t),"hex")},stringToSign:function(e){var t=[];return t.push("AWS4-HMAC-SHA256"),t.push(e),t.push(this.credentialString(e)),t.push(this.hexEncodedHash(this.canonicalString())),t.join("\n")},canonicalString:function(){var e=[],t=this.request.pathname();return"s3"!==this.serviceName&&"s3v4"!==this.signatureVersion&&(t=r.util.uriEscapePath(t)),e.push(this.request.method),e.push(t),e.push(this.request.search()),e.push(this.canonicalHeaders()+"\n"),e.push(this.signedHeaders()),e.push(this.hexEncodedBodyHash()),e.join("\n")},canonicalHeaders:function(){var e=[];r.util.each.call(this,this.request.headers,(function(t,n){e.push([t,n])})),e.sort((function(e,t){return e[0].toLowerCase()50&&delete i[o.shift()]),d},emptyCache:function(){i={},o=[]}}},{"../core":20}],72:[function(e,t,n){function r(e,t){this.currentState=t||null,this.states=e||{}}r.prototype.runTo=function(e,t,n,r){"function"==typeof e&&(r=n,n=t,t=e,e=null);var i=this,o=i.states[i.currentState];o.fn.call(n||i,r,(function(r){if(r){if(!o.fail)return t?t.call(n,r):null;i.currentState=o.fail}else{if(!o.accept)return t?t.call(n):null;i.currentState=o.accept}if(i.currentState===e)return t?t.call(n,r):null;i.runTo(e,t,n,r)}))},r.prototype.addState=function(e,t,n,r){return"function"==typeof t?(r=t,t=null,n=null):"function"==typeof n&&(r=n,n=null),this.currentState||(this.currentState=e),this.states[e]={accept:t,fail:n,fn:r},this},t.exports=r},{}],73:[function(e,t,n){(function(n,r){(function(){var i,o={environment:"nodejs",engine:function(){if(o.isBrowser()&&"undefined"!=typeof navigator)return navigator.userAgent;var e=n.platform+"/"+n.version;return n.env.AWS_EXECUTION_ENV&&(e+=" exec-env/"+n.env.AWS_EXECUTION_ENV),e},userAgent:function(){var t=o.environment,n="aws-sdk-"+t+"/"+e("./core").VERSION;return"nodejs"===t&&(n+=" "+o.engine()),n},uriEscape:function(e){var t=encodeURIComponent(e);return(t=t.replace(/[^A-Za-z0-9_.~\-%]+/g,escape)).replace(/[*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))},uriEscapePath:function(e){var t=[];return o.arrayEach(e.split("/"),(function(e){t.push(o.uriEscape(e))})),t.join("/")},urlParse:function(e){return o.url.parse(e)},urlFormat:function(e){return o.url.format(e)},queryStringParse:function(e){return o.querystring.parse(e)},queryParamsToString:function(e){var t=[],n=o.uriEscape,r=Object.keys(e).sort();return o.arrayEach(r,(function(r){var i=e[r],s=n(r),a=s+"=";if(Array.isArray(i)){var c=[];o.arrayEach(i,(function(e){c.push(n(e))})),a=s+"="+c.sort().join("&"+s+"=")}else null!=i&&(a=s+"="+n(i));t.push(a)})),t.join("&")},readFileSync:function(t){return o.isBrowser()?null:e("fs").readFileSync(t,"utf-8")},base64:{encode:function(e){if("number"==typeof e)throw o.error(new Error("Cannot base64 encode number "+e));return null==e?e:o.buffer.toBuffer(e).toString("base64")},decode:function(e){if("number"==typeof e)throw o.error(new Error("Cannot base64 decode number "+e));return null==e?e:o.buffer.toBuffer(e,"base64")}},buffer:{toBuffer:function(e,t){return"function"==typeof o.Buffer.from&&o.Buffer.from!==Uint8Array.from?o.Buffer.from(e,t):new o.Buffer(e,t)},alloc:function(e,t,n){if("number"!=typeof e)throw new Error("size passed to alloc must be a number.");if("function"==typeof o.Buffer.alloc)return o.Buffer.alloc(e,t,n);var r=new o.Buffer(e);return void 0!==t&&"function"==typeof r.fill&&r.fill(t,void 0,void 0,n),r},toStream:function(e){o.Buffer.isBuffer(e)||(e=o.buffer.toBuffer(e));var t=new o.stream.Readable,n=0;return t._read=function(r){if(n>=e.length)return t.push(null);var i=n+r;i>e.length&&(i=e.length),t.push(e.slice(n,i)),n=i},t},concat:function(e){var t,n,r=0,i=0;for(t=0;t>>8^t[255&(n^e.readUInt8(r))];return(-1^n)>>>0},hmac:function(e,t,n,r){return n||(n="binary"),"buffer"===n&&(n=void 0),r||(r="sha256"),"string"==typeof t&&(t=o.buffer.toBuffer(t)),o.crypto.lib.createHmac(r,e).update(t).digest(n)},md5:function(e,t,n){return o.crypto.hash("md5",e,t,n)},sha256:function(e,t,n){return o.crypto.hash("sha256",e,t,n)},hash:function(e,t,n,r){var i=o.crypto.createHash(e);n||(n="binary"),"buffer"===n&&(n=void 0),"string"==typeof t&&(t=o.buffer.toBuffer(t));var s=o.arraySliceFn(t),a=o.Buffer.isBuffer(t);if(o.isBrowser()&&"undefined"!=typeof ArrayBuffer&&t&&t.buffer instanceof ArrayBuffer&&(a=!0),r&&"object"==typeof t&&"function"==typeof t.on&&!a)t.on("data",(function(e){i.update(e)})),t.on("error",(function(e){r(e)})),t.on("end",(function(){r(null,i.digest(n))}));else{if(!r||!s||a||"undefined"==typeof FileReader){o.isBrowser()&&"object"==typeof t&&!a&&(t=new o.Buffer(new Uint8Array(t)));var c=i.update(t).digest(n);return r&&r(null,c),c}var u=0,l=new FileReader;l.onerror=function(){r(new Error("Failed to read data."))},l.onload=function(){var e=new o.Buffer(new Uint8Array(l.result));i.update(e),u+=e.length,l._continueReading()},l._continueReading=function(){if(u>=t.size)r(null,i.digest(n));else{var e=u+524288;e>t.size&&(e=t.size),l.readAsArrayBuffer(s.call(t,u,e))}},l._continueReading()}},toHex:function(e){for(var t=[],n=0;n=3e5,!1),i.config.isClockSkewed},applyClockOffset:function(e){e&&(i.config.systemClockOffset=e-(new Date).getTime())},extractRequestId:function(e){var t=e.httpResponse.headers["x-amz-request-id"]||e.httpResponse.headers["x-amzn-requestid"];!t&&e.data&&e.data.ResponseMetadata&&(t=e.data.ResponseMetadata.RequestId),t&&(e.requestId=t),e.error&&(e.error.requestId=t)},addPromises:function(e,t){var n=!1;void 0===t&&i&&i.config&&(t=i.config.getPromisesDependency()),void 0===t&&"undefined"!=typeof Promise&&(t=Promise),"function"!=typeof t&&(n=!0),Array.isArray(e)||(e=[e]);for(var r=0;r=0)return a++,void setTimeout(u,i+(e.retryAfter||0))}n(e)},u=function(){var t="";r.handleRequest(e,s,(function(e){e.on("data",(function(e){t+=e.toString()})),e.on("end",(function(){var r=e.statusCode;if(r<300)n(null,t);else{var i=1e3*parseInt(e.headers["retry-after"],10)||0,s=o.error(new Error,{statusCode:r,retryable:r>=500||429===r});i&&s.retryable&&(s.retryAfter=i),c(s)}}))}),c)};i.util.defer(u)},uuid:{v4:function(){return e("uuid").v4()}},convertPayloadToString:function(e){var t=e.request,n=t.operation,r=t.service.api.operations[n].output||{};r.payload&&e.data[r.payload]&&(e.data[r.payload]=e.data[r.payload].toString())},defer:function(e){"object"==typeof n&&"function"==typeof n.nextTick?n.nextTick(e):"function"==typeof r?r(e):setTimeout(e,0)},getRequestPayloadShape:function(e){var t=e.service.api.operations;if(t){var n=(t||{})[e.operation];if(n&&n.input&&n.input.payload)return n.input.members[n.input.payload]}},getProfilesFromSharedConfig:function(e,t){function r(e,t){for(var n=0,r=Object.keys(t);n=6},parse:function(e){var t=e.split(":");return{partition:t[1],service:t[2],region:t[3],accountId:t[4],resource:t.slice(5).join(":")}},build:function(e){if(void 0===e.service||void 0===e.region||void 0===e.accountId||void 0===e.resource)throw o.error(new Error("Input ARN object is invalid"));return"arn:"+(e.partition||"aws")+":"+e.service+":"+e.region+":"+e.accountId+":"+e.resource}},defaultProfile:"default",configOptInEnv:"AWS_SDK_LOAD_CONFIG",sharedCredentialsFileEnv:"AWS_SHARED_CREDENTIALS_FILE",sharedConfigFileEnv:"AWS_CONFIG_FILE",imdsDisabledEnv:"AWS_EC2_METADATA_DISABLED"};t.exports=o}).call(this)}).call(this,e("_process"),e("timers").setImmediate)},{"../apis/metadata.json":5,"./core":20,_process:87,fs:81,timers:95,uuid:100}],74:[function(e,t,n){function r(){}function i(e,t){for(var n=e.getElementsByTagName(t),r=0,i=n.length;r0||r?s.toString():""},t.exports=r},{"../util":73,"./xml-node":78,"./xml-text":79}],76:[function(e,t,n){t.exports={escapeAttribute:function(e){return e.replace(/&/g,"&").replace(/'/g,"'").replace(//g,">").replace(/"/g,""")}}},{}],77:[function(e,t,n){t.exports={escapeElement:function(e){return e.replace(/&/g,"&").replace(//g,">")}}},{}],78:[function(e,t,n){function r(e,t){void 0===t&&(t=[]),this.name=e,this.children=t,this.attributes={}}var i=e("./escape-attribute").escapeAttribute;r.prototype.addAttribute=function(e,t){return this.attributes[e]=t,this},r.prototype.addChildNode=function(e){return this.children.push(e),this},r.prototype.removeAttribute=function(e){return delete this.attributes[e],this},r.prototype.toString=function(){for(var e=Boolean(this.children.length),t="<"+this.name,n=this.attributes,r=0,o=Object.keys(n);r"+this.children.map((function(e){return e.toString()})).join("")+"":"/>")},t.exports={XmlNode:r}},{"./escape-attribute":76}],79:[function(e,t,n){function r(e){this.value=e}var i=e("./escape-element").escapeElement;r.prototype.toString=function(){return i(""+this.value)},t.exports={XmlText:r}},{"./escape-element":77}],80:[function(e,t,n){"use strict";function r(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function i(e){return s[e>>18&63]+s[e>>12&63]+s[e>>6&63]+s[63&e]}function o(e,t,n){for(var r,o=[],s=t;s0?o-4:o;for(n=0;n>16&255,u[l++]=t>>8&255,u[l++]=255&t;return 2===s&&(t=a[e.charCodeAt(n)]<<2|a[e.charCodeAt(n+1)]>>4,u[l++]=255&t),1===s&&(t=a[e.charCodeAt(n)]<<10|a[e.charCodeAt(n+1)]<<4|a[e.charCodeAt(n+2)]>>2,u[l++]=t>>8&255,u[l++]=255&t),u},n.fromByteArray=function(e){for(var t,n=e.length,r=n%3,i=[],a=0,c=n-r;ac?c:a+16383));return 1===r?(t=e[n-1],i.push(s[t>>2]+s[t<<4&63]+"==")):2===r&&(t=(e[n-2]<<8)+e[n-1],i.push(s[t>>10]+s[t>>4&63]+s[t<<2&63]+"=")),i.join("")};for(var s=[],a=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array,u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=0,p=u.length;l=r())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r().toString(16)+" bytes");return 0|e}function p(e,t){if(o.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return D(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return U(e).length;default:if(r)return D(e).length;t=(""+t).toLowerCase(),r=!0}}function d(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return k(this,t,n);case"utf8":case"utf-8":return C(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return I(this,t,n);case"base64":return S(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function h(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function f(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=o.from(t,r)),o.isBuffer(t))return 0===t.length?-1:m(e,t,n,r,i);if("number"==typeof t)return t&=255,o.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):m(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function m(e,t,n,r,i){function o(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var s,a=1,c=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,c/=2,u/=2,n/=2}if(i){var l=-1;for(s=n;sc&&(n=c-u),s=n;s>=0;s--){for(var p=!0,d=0;di&&(r=i):r=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var s=0;s>8,i=n%256,o.push(i),o.push(r);return o}(t,e.length-n),e,n,r)}function S(e,t,n){return 0===t&&n===e.length?j.fromByteArray(e):j.fromByteArray(e.slice(t,n))}function C(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i239?4:u>223?3:u>191?2:1;if(i+p<=n)switch(p){case 1:u<128&&(l=u);break;case 2:128==(192&(o=e[i+1]))&&(c=(31&u)<<6|63&o)>127&&(l=c);break;case 3:o=e[i+1],s=e[i+2],128==(192&o)&&128==(192&s)&&(c=(15&u)<<12|(63&o)<<6|63&s)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:o=e[i+1],s=e[i+2],a=e[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(c=(15&u)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&c<1114112&&(l=c)}null===l?(l=65533,p=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),i+=p}return function(e){var t=e.length;if(t<=B)return String.fromCharCode.apply(String,e);for(var n="",r=0;rr)&&(n=r);for(var i="",o=t;on)throw new RangeError("Trying to access beyond buffer length")}function A(e,t,n,r,i,s){if(!o.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function R(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);i>>8*(r?i:1-i)}function O(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);i>>8*(r?i:3-i)&255}function N(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function L(e,t,n,r,i){return i||N(e,0,n,4),F.write(e,t,n,r,23,4),n+4}function M(e,t,n,r,i){return i||N(e,0,n,8),F.write(e,t,n,r,52,8),n+8}function P(e){return e<16?"0"+e.toString(16):e.toString(16)}function D(e,t){t=t||1/0;for(var n,r=e.length,i=null,o=[],s=0;s55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function U(e){return j.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(z,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}var j=e("base64-js"),F=e("ieee754"),W=e("isarray");n.Buffer=o,n.SlowBuffer=function(e){return+e!=e&&(e=0),o.alloc(+e)},n.INSPECT_MAX_BYTES=50,o.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),n.kMaxLength=r(),o.poolSize=8192,o._augment=function(e){return e.__proto__=o.prototype,e},o.from=function(e,t,n){return s(null,e,t,n)},o.TYPED_ARRAY_SUPPORT&&(o.prototype.__proto__=Uint8Array.prototype,o.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&o[Symbol.species]===o&&Object.defineProperty(o,Symbol.species,{value:null,configurable:!0})),o.alloc=function(e,t,n){return function(e,t,n,r){return a(t),t<=0?i(e,t):void 0!==n?"string"==typeof r?i(e,t).fill(n,r):i(e,t).fill(n):i(e,t)}(null,e,t,n)},o.allocUnsafe=function(e){return c(null,e)},o.allocUnsafeSlow=function(e){return c(null,e)},o.isBuffer=function(e){return!(null==e||!e._isBuffer)},o.compare=function(e,t){if(!o.isBuffer(e)||!o.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,s=Math.min(n,r);i0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},o.prototype.compare=function(e,t,n,r,i){if(!o.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var s=(i>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),c=Math.min(s,a),u=this.slice(r,i),l=e.slice(t,n),p=0;pi)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return g(this,e,t,n);case"utf8":case"utf-8":return v(this,e,t,n);case"ascii":return y(this,e,t,n);case"latin1":case"binary":return b(this,e,t,n);case"base64":return w(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var B=4096;o.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)r+=this[e+--t]*i;return r},o.prototype.readUInt8=function(e,t){return t||x(e,1,this.length),this[e]},o.prototype.readUInt16LE=function(e,t){return t||x(e,2,this.length),this[e]|this[e+1]<<8},o.prototype.readUInt16BE=function(e,t){return t||x(e,2,this.length),this[e]<<8|this[e+1]},o.prototype.readUInt32LE=function(e,t){return t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},o.prototype.readUInt32BE=function(e,t){return t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},o.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=this[e],i=1,o=0;++o=(i*=128)&&(r-=Math.pow(2,8*t)),r},o.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},o.prototype.readInt8=function(e,t){return t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},o.prototype.readInt16LE=function(e,t){t||x(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},o.prototype.readInt16BE=function(e,t){t||x(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},o.prototype.readInt32LE=function(e,t){return t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},o.prototype.readInt32BE=function(e,t){return t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},o.prototype.readFloatLE=function(e,t){return t||x(e,4,this.length),F.read(this,e,!0,23,4)},o.prototype.readFloatBE=function(e,t){return t||x(e,4,this.length),F.read(this,e,!1,23,4)},o.prototype.readDoubleLE=function(e,t){return t||x(e,8,this.length),F.read(this,e,!0,52,8)},o.prototype.readDoubleBE=function(e,t){return t||x(e,8,this.length),F.read(this,e,!1,52,8)},o.prototype.writeUIntLE=function(e,t,n,r){e=+e,t|=0,n|=0,r||A(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+n},o.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,1,255,0),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},o.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):R(this,e,t,!0),t+2},o.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):R(this,e,t,!1),t+2},o.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):O(this,e,t,!0),t+4},o.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):O(this,e,t,!1),t+4},o.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);A(this,e,t,n,i-1,-i)}var o=0,s=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+n},o.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);A(this,e,t,n,i-1,-i)}var o=n-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+n},o.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,1,127,-128),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},o.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):R(this,e,t,!0),t+2},o.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):R(this,e,t,!1),t+2},o.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,4,2147483647,-2147483648),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):O(this,e,t,!0),t+4},o.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):O(this,e,t,!1),t+4},o.prototype.writeFloatLE=function(e,t,n){return L(this,e,t,!0,n)},o.prototype.writeFloatBE=function(e,t,n){return L(this,e,t,!1,n)},o.prototype.writeDoubleLE=function(e,t,n){return M(this,e,t,!0,n)},o.prototype.writeDoubleBE=function(e,t,n){return M(this,e,t,!1,n)},o.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(s<1e3||!o.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(s=t;s0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function n(){this.removeListener(e,n),r||(r=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var r=!1;return n.listener=t,this.on(e,n),this},r.prototype.removeListener=function(e,t){var n,r,s,a;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(s=(n=this._events[e]).length,r=-1,n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(a=s;a-- >0;)if(n[a]===t||n[a].listener&&n[a].listener===t){r=a;break}if(r<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(i(n=this._events[e]))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){return this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}},{}],84:[function(e,t,n){n.read=function(e,t,n,r,i){var o,s,a=8*i-r-1,c=(1<>1,l=-7,p=n?i-1:0,d=n?-1:1,h=e[t+p];for(p+=d,o=h&(1<<-l)-1,h>>=-l,l+=a;l>0;o=256*o+e[t+p],p+=d,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=r;l>0;s=256*s+e[t+p],p+=d,l-=8);if(0===o)o=1-u;else{if(o===c)return s?NaN:1/0*(h?-1:1);s+=Math.pow(2,r),o-=u}return(h?-1:1)*s*Math.pow(2,o-r)},n.write=function(e,t,n,r,i,o){var s,a,c,u=8*o-i-1,l=(1<>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:o-1,f=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),(t+=s+p>=1?d/c:d*Math.pow(2,1-p))*c>=2&&(s++,c/=2),s+p>=l?(a=0,s=l):s+p>=1?(a=(t*c-1)*Math.pow(2,i),s+=p):(a=t*Math.pow(2,p-1)*Math.pow(2,i),s=0));i>=8;e[n+h]=255&a,h+=f,a/=256,i-=8);for(s=s<0;e[n+h]=255&s,h+=f,s/=256,u-=8);e[n+h-f]|=128*m}},{}],85:[function(e,t,n){var r={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},{}],86:[function(e,t,n){!function(e){"use strict";function t(e){return null!==e&&"[object Array]"===Object.prototype.toString.call(e)}function n(e){return null!==e&&"[object Object]"===Object.prototype.toString.call(e)}function r(e,i){if(e===i)return!0;if(Object.prototype.toString.call(e)!==Object.prototype.toString.call(i))return!1;if(!0===t(e)){if(e.length!==i.length)return!1;for(var o=0;o="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e}function s(e){return e>="0"&&e<="9"||"-"===e}function a(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e}function c(){}function u(){}function l(e){this.runtime=e}function p(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[h]}]},avg:{_func:this._functionAvg,_signature:[{types:[b]}]},ceil:{_func:this._functionCeil,_signature:[{types:[h]}]},contains:{_func:this._functionContains,_signature:[{types:[m,g]},{types:[f]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[m]},{types:[m]}]},floor:{_func:this._functionFloor,_signature:[{types:[h]}]},length:{_func:this._functionLength,_signature:[{types:[m,g,v]}]},map:{_func:this._functionMap,_signature:[{types:[y]},{types:[g]}]},max:{_func:this._functionMax,_signature:[{types:[b,w]}]},merge:{_func:this._functionMerge,_signature:[{types:[v],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[g]},{types:[y]}]},sum:{_func:this._functionSum,_signature:[{types:[b]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[m]},{types:[m]}]},min:{_func:this._functionMin,_signature:[{types:[b,w]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[g]},{types:[y]}]},type:{_func:this._functionType,_signature:[{types:[f]}]},keys:{_func:this._functionKeys,_signature:[{types:[v]}]},values:{_func:this._functionValues,_signature:[{types:[v]}]},sort:{_func:this._functionSort,_signature:[{types:[w,b]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[g]},{types:[y]}]},join:{_func:this._functionJoin,_signature:[{types:[m]},{types:[w]}]},reverse:{_func:this._functionReverse,_signature:[{types:[m,g]}]},to_array:{_func:this._functionToArray,_signature:[{types:[f]}]},to_string:{_func:this._functionToString,_signature:[{types:[f]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[f]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[f],variadic:!0}]}}}var d;d="function"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\s*(.*)/)[1]};var h=0,f=1,m=2,g=3,v=4,y=6,b=8,w=9,E={".":"Dot","*":"Star",",":"Comma",":":"Colon","{":"Lbrace","}":"Rbrace","]":"Rbracket","(":"Lparen",")":"Rparen","@":"Current"},S={"<":!0,">":!0,"=":!0,"!":!0},C={" ":!0,"\t":!0,"\n":!0};c.prototype={tokenize:function(e){var t,n,r,i=[];for(this._current=0;this._current"===n?"="===e[this._current]?(this._current++,{type:"GTE",value:">=",start:t}):{type:"GT",value:">",start:t}:"="===n&&"="===e[this._current]?(this._current++,{type:"EQ",value:"==",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t,n=this._current,r=e.length;"`"!==e[this._current]&&this._current=0)return!0;if(["true","false","null"].indexOf(e)>=0)return!0;if(!("-0123456789".indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(e){return!1}}};var T={EOF:0,UnquotedIdentifier:0,QuotedIdentifier:0,Rbracket:0,Rparen:0,Comma:0,Rbrace:0,Number:0,Current:0,Expref:0,Pipe:1,Or:2,And:3,EQ:5,GT:5,LT:5,GTE:5,LTE:5,NE:5,Flatten:9,Star:20,Filter:21,Dot:40,Not:45,Lbrace:50,Lbracket:55,Lparen:60};u.prototype={parse:function(e){this._loadTokens(e),this.index=0;var t=this.expression(0);if("EOF"!==this._lookahead(0)){var n=this._lookaheadToken(0),r=new Error("Unexpected token type: "+n.type+", value: "+n.value);throw r.name="ParserError",r}return t},_loadTokens:function(e){var t=(new c).tokenize(e);t.push({type:"EOF",value:"",start:e.length}),this.tokens=t},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var n=this.nud(t),r=this._lookahead(0);e=0?this.expression(e):"Lbracket"===t?(this._match("Lbracket"),this._parseMultiselectList()):"Lbrace"===t?(this._match("Lbrace"),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(e){var t;if(T[this._lookahead(0)]<10)t={type:"Identity"};else if("Lbracket"===this._lookahead(0))t=this.expression(e);else if("Filter"===this._lookahead(0))t=this.expression(e);else{if("Dot"!==this._lookahead(0)){var n=this._lookaheadToken(0),r=new Error("Sytanx error, unexpected token: "+n.value+"("+n.type+")");throw r.name="ParserError",r}this._match("Dot"),t=this._parseDotRHS(e)}return t},_parseMultiselectList:function(){for(var e=[];"Rbracket"!==this._lookahead(0);){var t=this.expression(0);if(e.push(t),"Comma"===this._lookahead(0)&&(this._match("Comma"),"Rbracket"===this._lookahead(0)))throw new Error("Unexpected token Rbracket")}return this._match("Rbracket"),{type:"MultiSelectList",children:e}},_parseMultiselectHash:function(){for(var e,t,n,r=[],i=["UnquotedIdentifier","QuotedIdentifier"];;){if(e=this._lookaheadToken(0),i.indexOf(e.type)<0)throw new Error("Expecting an identifier token, got: "+e.type);if(t=e.value,this._advance(),this._match("Colon"),n={type:"KeyValuePair",name:t,value:this.expression(0)},r.push(n),"Comma"===this._lookahead(0))this._match("Comma");else if("Rbrace"===this._lookahead(0)){this._match("Rbrace");break}}return{type:"MultiSelectHash",children:r}}},l.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,o){var s,a,c,u,l,p,d,h,f;switch(e.type){case"Field":return null===o?null:n(o)?void 0===(p=o[e.name])?null:p:null;case"Subexpression":for(c=this.visit(e.children[0],o),f=1;f0)for(f=y;fb;f+=w)c.push(o[f]);return c;case"Projection":var E=this.visit(e.children[0],o);if(!t(E))return null;for(h=[],f=0;fl;break;case"GTE":c=u>=l;break;case"LT":c=u=e&&(t=n<0?e-1:e),t}},p.prototype={callFunction:function(e,t){var n=this.functionTable[e];if(void 0===n)throw new Error("Unknown function: "+e+"()");return this._validateArgs(e,t,n._signature),n._func.call(this,t)},_validateArgs:function(e,t,n){var r;if(n[n.length-1].variadic){if(t.length=0;r--)n+=t[r];return n}var i=e[0].slice(0);return i.reverse(),i},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,n=e[0],r=0;r=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return n(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],n=this._interpreter,r=e[0],i=e[1],o=0;o0){if(this._getTypeName(e[0][0])===h)return Math.max.apply(Math,e[0]);for(var t=e[0],n=t[0],r=1;r0){if(this._getTypeName(e[0][0])===h)return Math.min.apply(Math,e[0]);for(var t=e[0],n=t[0],r=1;ra?1:ss&&(s=n,t=i[a]);return t},_functionMinBy:function(e){for(var t,n,r=e[1],i=e[0],o=this.createKeyFunction(r,[h,m]),s=1/0,a=0;a1)for(var n=1;n1&&(r=n[0]+"@",e=n[1]),r+u((e=e.replace(M,".")).split("."),t).join(".")}function p(e){for(var t,n,r=[],i=0,o=e.length;i=55296&&t<=56319&&i65535&&(t+=q((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+q(e)})).join("")}function h(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:T}function f(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function m(e,t,n){var r=0;for(e=n?U(e/x):e>>1,e+=U(e/t);e>D*k>>1;r+=T)e=U(e/D);return U(r+(D+1)*e/(e+_))}function g(e){var t,n,r,i,o,s,a,u,l,p,f=[],g=e.length,v=0,y=R,b=A;for((n=e.lastIndexOf(O))<0&&(n=0),r=0;r=128&&c("not-basic"),f.push(e.charCodeAt(r));for(i=n>0?n+1:0;i=g&&c("invalid-input"),((u=h(e.charCodeAt(i++)))>=T||u>U((C-v)/s))&&c("overflow"),v+=u*s,!(u<(l=a<=b?I:a>=b+k?k:a-b));a+=T)s>U(C/(p=T-l))&&c("overflow"),s*=p;b=m(v-o,t=f.length+1,0==o),U(v/t)>C-y&&c("overflow"),y+=U(v/t),v%=t,f.splice(v++,0,y)}return d(f)}function v(e){var t,n,r,i,o,s,a,u,l,d,h,g,v,y,b,w=[];for(g=(e=p(e)).length,t=R,n=0,o=A,s=0;s=t&&hU((C-n)/(v=r+1))&&c("overflow"),n+=(a-t)*v,t=a,s=0;sC&&c("overflow"),h==t){for(u=n,l=T;!(u<(d=l<=o?I:l>=o+k?k:l-o));l+=T)b=u-d,y=T-d,w.push(q(f(d+b%y,0))),u=U(b/y);w.push(q(f(u,0))),o=m(n,v,r==i),n=0,++r}++n,++t}return w.join("")}var y="object"==typeof s&&s&&!s.nodeType&&s,b="object"==typeof o&&o&&!o.nodeType&&o,w="object"==typeof i&&i;w.global!==w&&w.window!==w&&w.self!==w||(a=w);var E,S,C=2147483647,T=36,I=1,k=26,_=38,x=700,A=72,R=128,O="-",N=/^xn--/,L=/[^\x20-\x7E]/,M=/[\x2E\u3002\uFF0E\uFF61]/g,P={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},D=T-I,U=Math.floor,q=String.fromCharCode;if(E={version:"1.3.2",ucs2:{decode:p,encode:d},decode:g,encode:v,toASCII:function(e){return l(e,(function(e){return L.test(e)?"xn--"+v(e):e}))},toUnicode:function(e){return l(e,(function(e){return N.test(e)?g(e.slice(4).toLowerCase()):e}))}},n.amdO)void 0===(r=function(){return E}.call(t,n,t,e))||(e.exports=r);else if(y&&b)if(o.exports==y)b.exports=E;else for(S in E)E.hasOwnProperty(S)&&(y[S]=E[S]);else a.punycode=E}(this)}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],89:[function(e,t,n){"use strict";function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.exports=function(e,t,n,o){t=t||"&",n=n||"=";var s={};if("string"!=typeof e||0===e.length)return s;var a=/\+/g;e=e.split(t);var c=1e3;o&&"number"==typeof o.maxKeys&&(c=o.maxKeys);var u=e.length;c>0&&u>c&&(u=c);for(var l=0;l=0?(p=m.substr(0,g),d=m.substr(g+1)):(p=m,d=""),h=decodeURIComponent(p),f=decodeURIComponent(d),r(s,h)?i(s[h])?s[h].push(f):s[h]=[s[h],f]:s[h]=f}return s};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],90:[function(e,t,n){"use strict";function r(e,t){if(e.map)return e.map(t);for(var n=[],r=0;r0&&c>a&&(c=a);for(var u=0;u=0?(l=f.substr(0,m),p=f.substr(m+1)):(l=f,p=""),d=decodeURIComponent(l),h=decodeURIComponent(p),r(o,d)?Array.isArray(o[d])?o[d].push(h):o[d]=[o[d],h]:o[d]=h}return o}},{}],93:[function(e,t,n){"use strict";var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};t.exports=function(e,t,n,i){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(i){var o=encodeURIComponent(r(i))+n;return Array.isArray(e[i])?e[i].map((function(e){return o+encodeURIComponent(r(e))})).join(t):o+encodeURIComponent(r(e[i]))})).join(t):i?encodeURIComponent(r(i))+n+encodeURIComponent(r(e)):""}},{}],94:[function(e,t,n){arguments[4][91][0].apply(n,arguments)},{"./decode":92,"./encode":93,dup:91}],95:[function(e,t,n){(function(t,r){(function(){function i(e,t){this._id=e,this._clearFn=t}var o=e("process/browser.js").nextTick,s=Function.prototype.apply,a=Array.prototype.slice,c={},u=0;n.setTimeout=function(){return new i(s.call(setTimeout,window,arguments),clearTimeout)},n.setInterval=function(){return new i(s.call(setInterval,window,arguments),clearInterval)},n.clearTimeout=n.clearInterval=function(e){e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(window,this._id)},n.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},n.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},n._unrefActive=n.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n.setImmediate="function"==typeof t?t:function(e){var t=u++,r=!(arguments.length<2)&&a.call(arguments,1);return c[t]=!0,o((function(){c[t]&&(r?e.apply(null,r):e.call(null),n.clearImmediate(t))})),t},n.clearImmediate="function"==typeof r?r:function(e){delete c[e]}}).call(this)}).call(this,e("timers").setImmediate,e("timers").clearImmediate)},{"process/browser.js":87,timers:95}],96:[function(e,t,n){function r(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function i(e,t,n){if(e&&s(e)&&e instanceof r)return e;var i=new r;return i.parse(e,t,n),i}function o(e){return"string"==typeof e}function s(e){return"object"==typeof e&&null!==e}function a(e){return null===e}var c=e("punycode");n.parse=i,n.resolve=function(e,t){return i(e,!1,!0).resolve(t)},n.resolveObject=function(e,t){return e?i(e,!1,!0).resolveObject(t):t},n.format=function(e){return o(e)&&(e=i(e)),e instanceof r?e.format():r.prototype.format.call(e)},n.Url=r;var u=/^([a-z0-9.+-]+:)/i,l=/:[0-9]*$/,p=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),d=["'"].concat(p),h=["%","/","?",";","#"].concat(d),f=["/","?","#"],m=/^[a-z0-9A-Z_-]{0,63}$/,g=/^([a-z0-9A-Z_-]{0,63})(.*)$/,v={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},b={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},w=e("querystring");r.prototype.parse=function(e,t,n){if(!o(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var r=e;r=r.trim();var i=u.exec(r);if(i){var s=(i=i[0]).toLowerCase();this.protocol=s,r=r.substr(i.length)}if(n||i||r.match(/^\/\/[^@\/]+@[^@\/]+/)){var a="//"===r.substr(0,2);!a||i&&y[i]||(r=r.substr(2),this.slashes=!0)}if(!y[i]&&(a||i&&!b[i])){for(var l=-1,p=0;p127?x+="x":x+=_[A];if(!x.match(m)){var O=I.slice(0,p),N=I.slice(p+1),L=_.match(g);L&&(O.push(L[1]),N.unshift(L[2])),N.length&&(r="/"+N.join(".")+r),this.hostname=O.join(".");break}}}if(this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),!T){var M=this.hostname.split("."),P=[];for(p=0;p0)&&n.host.split("@"))&&(n.auth=E.shift(),n.host=n.hostname=E.shift())),n.search=e.search,n.query=e.query,a(n.pathname)&&a(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n;if(!h.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var m=h.slice(-1)[0],g=(n.host||e.host)&&("."===m||".."===m)||""===m,v=0,w=h.length;w>=0;w--)"."==(m=h[w])?h.splice(w,1):".."===m?(h.splice(w,1),v++):v&&(h.splice(w,1),v--);if(!p&&!d)for(;v--;v)h.unshift("..");!p||""===h[0]||h[0]&&"/"===h[0].charAt(0)||h.unshift(""),g&&"/"!==h.join("/").substr(-1)&&h.push("");var E,S=""===h[0]||h[0]&&"/"===h[0].charAt(0);return f&&(n.hostname=n.host=S?"":h.length?h.shift():"",(E=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=E.shift(),n.host=n.hostname=E.shift())),(p=p||n.host&&h.length)&&!S&&h.unshift(""),h.length?n.pathname=h.join("/"):(n.pathname=null,n.path=null),a(n.pathname)&&a(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},r.prototype.parseHost=function(){var e=this.host,t=l.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},{punycode:88,querystring:91}],97:[function(e,t,n){"function"==typeof Object.create?t.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},{}],98:[function(e,t,n){t.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},{}],99:[function(e,t,n){(function(t,r){(function(){function i(e,t){var r={seen:[],stylize:s};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(t)?r.showHidden=t:t&&n._extend(r,t),g(r.showHidden)&&(r.showHidden=!1),g(r.depth)&&(r.depth=2),g(r.colors)&&(r.colors=!1),g(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),a(r,e,r.depth)}function o(e,t){var n=i.styles[t];return n?"["+i.colors[n][0]+"m"+e+"["+i.colors[n][1]+"m":e}function s(e,t){return e}function a(e,t,r){if(e.customInspect&&t&&E(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(r,e);return m(i)||(i=a(e,i,r)),i}var o=c(e,t);if(o)return o;var s=Object.keys(t),d=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(t)),w(t)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return u(t);if(0===s.length){if(E(t)){var h=t.name?": "+t.name:"";return e.stylize("[Function"+h+"]","special")}if(v(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(b(t))return e.stylize(Date.prototype.toString.call(t),"date");if(w(t))return u(t)}var f,g="",y=!1,S=["{","}"];return p(t)&&(y=!0,S=["[","]"]),E(t)&&(g=" [Function"+(t.name?": "+t.name:"")+"]"),v(t)&&(g=" "+RegExp.prototype.toString.call(t)),b(t)&&(g=" "+Date.prototype.toUTCString.call(t)),w(t)&&(g=" "+u(t)),0!==s.length||y&&0!=t.length?r<0?v(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),f=y?function(e,t,n,r,i){for(var o=[],s=0,a=t.length;s60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}(f,g,S)):S[0]+g+S[1]}function c(e,t){if(g(t))return e.stylize("undefined","undefined");if(m(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return f(t)?e.stylize(""+t,"number"):d(t)?e.stylize(""+t,"boolean"):h(t)?e.stylize("null","null"):void 0}function u(e){return"["+Error.prototype.toString.call(e)+"]"}function l(e,t,n,r,i,o){var s,c,u;if((u=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?c=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(c=e.stylize("[Setter]","special")),T(r,i)||(s="["+i+"]"),c||(e.seen.indexOf(u.value)<0?(c=h(n)?a(e,u.value,null):a(e,u.value,n-1)).indexOf("\n")>-1&&(c=o?c.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+c.split("\n").map((function(e){return" "+e})).join("\n")):c=e.stylize("[Circular]","special")),g(s)){if(o&&i.match(/^\d+$/))return c;(s=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+c}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function h(e){return null===e}function f(e){return"number"==typeof e}function m(e){return"string"==typeof e}function g(e){return void 0===e}function v(e){return y(e)&&"[object RegExp]"===S(e)}function y(e){return"object"==typeof e&&null!==e}function b(e){return y(e)&&"[object Date]"===S(e)}function w(e){return y(e)&&("[object Error]"===S(e)||e instanceof Error)}function E(e){return"function"==typeof e}function S(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var I=/%[sdj%]/g;n.format=function(e){if(!m(e)){for(var t=[],n=0;n=o)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),a=r[n];n>>((3&t)<<3)&255;return o}}},{}],103:[function(e,t,n){var r,i,o=e("./lib/rng"),s=e("./lib/bytesToUuid"),a=0,c=0;t.exports=function(e,t,n){var u=t&&n||0,l=t||[],p=(e=e||{}).node||r,d=void 0!==e.clockseq?e.clockseq:i;if(null==p||null==d){var h=o();null==p&&(p=r=[1|h[0],h[1],h[2],h[3],h[4],h[5]]),null==d&&(d=i=16383&(h[6]<<8|h[7]))}var f=void 0!==e.msecs?e.msecs:(new Date).getTime(),m=void 0!==e.nsecs?e.nsecs:c+1,g=f-a+(m-c)/1e4;if(g<0&&void 0===e.clockseq&&(d=d+1&16383),(g<0||f>a)&&void 0===e.nsecs&&(m=0),m>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");a=f,c=m,i=d;var v=(1e4*(268435455&(f+=122192928e5))+m)%4294967296;l[u++]=v>>>24&255,l[u++]=v>>>16&255,l[u++]=v>>>8&255,l[u++]=255&v;var y=f/4294967296*1e4&268435455;l[u++]=y>>>8&255,l[u++]=255&y,l[u++]=y>>>24&15|16,l[u++]=y>>>16&255,l[u++]=d>>>8|128,l[u++]=255&d;for(var b=0;b<6;++b)l[u+b]=p[b];return t||s(l)}},{"./lib/bytesToUuid":101,"./lib/rng":102}],104:[function(e,t,n){var r=e("./lib/rng"),i=e("./lib/bytesToUuid");t.exports=function(e,t,n){var o=t&&n||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var s=(e=e||{}).random||(e.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t)for(var a=0;a<16;++a)t[o+a]=s[a];return t||i(s)}},{"./lib/bytesToUuid":101,"./lib/rng":102}],105:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=e("./utils/LRU"),i=function(){function e(e){void 0===e&&(e=1e3),this.maxSize=e,this.cache=new r.LRUCache(e)}return Object.defineProperty(e.prototype,"size",{get:function(){return this.cache.length},enumerable:!0,configurable:!0}),e.prototype.put=function(t,n){var r="string"!=typeof t?e.getKeyString(t):t,i=this.populateValue(n);this.cache.put(r,i)},e.prototype.get=function(t){var n="string"!=typeof t?e.getKeyString(t):t,r=Date.now(),i=this.cache.get(n);if(i)for(var o=0;o{var r=n(639).Symbol;e.exports=r},239:(e,t,n)=>{var r=n(705),i=n(607),o=n(333),s=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":s&&s in Object(e)?i(e):o(e)}},561:(e,t,n)=>{var r=n(990),i=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(i,""):e}},957:e=>{var t="object"==typeof global&&global&&global.Object===Object&&global;e.exports=t},607:(e,t,n)=>{var r=n(705),i=Object.prototype,o=i.hasOwnProperty,s=i.toString,a=r?r.toStringTag:void 0;e.exports=function(e){var t=o.call(e,a),n=e[a];try{e[a]=void 0;var r=!0}catch(e){}var i=s.call(e);return r&&(t?e[a]=n:delete e[a]),i}},333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},639:(e,t,n)=>{var r=n(957),i="object"==typeof self&&self&&self.Object===Object&&self,o=r||i||Function("return this")();e.exports=o},990:e=>{var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},279:(e,t,n)=>{var r=n(218),i=n(771),o=n(841),s=Math.max,a=Math.min;e.exports=function(e,t,n){var c,u,l,p,d,h,f=0,m=!1,g=!1,v=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function y(t){var n=c,r=u;return c=u=void 0,f=t,p=e.apply(r,n)}function b(e){var n=e-h;return void 0===h||n>=t||n<0||g&&e-f>=l}function w(){var e=i();if(b(e))return E(e);d=setTimeout(w,function(e){var n=t-(e-h);return g?a(n,l-(e-f)):n}(e))}function E(e){return d=void 0,v&&c?y(e):(c=u=void 0,p)}function S(){var e=i(),n=b(e);if(c=arguments,u=this,h=e,n){if(void 0===d)return function(e){return f=e,d=setTimeout(w,t),m?y(e):p}(h);if(g)return clearTimeout(d),d=setTimeout(w,t),y(h)}return void 0===d&&(d=setTimeout(w,t)),p}return t=o(t)||0,r(n)&&(m=!!n.leading,l=(g="maxWait"in n)?s(o(n.maxWait)||0,t):l,v="trailing"in n?!!n.trailing:v),S.cancel=function(){void 0!==d&&clearTimeout(d),f=0,c=h=u=d=void 0},S.flush=function(){return void 0===d?p:E(i())},S}},218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},5:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},448:(e,t,n)=>{var r=n(239),i=n(5);e.exports=function(e){return"symbol"==typeof e||i(e)&&"[object Symbol]"==r(e)}},771:(e,t,n)=>{var r=n(639);e.exports=function(){return r.Date.now()}},493:(e,t,n)=>{var r=n(279),i=n(218);e.exports=function(e,t,n){var o=!0,s=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return i(n)&&(o="leading"in n?!!n.leading:o,s="trailing"in n?!!n.trailing:s),r(e,t,{leading:o,maxWait:t,trailing:s})}},841:(e,t,n)=>{var r=n(561),i=n(218),o=n(448),s=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,c=/^0o[0-7]+$/i,u=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return NaN;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=a.test(e);return n||c.test(e)?u(e.slice(2),n?2:8):s.test(e)?NaN:+e}},975:(e,t,n)=>{var r;!function(){"use strict";var i={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function o(e){return function(e,t){var n,r,s,a,c,u,l,p,d,h=1,f=e.length,m="";for(r=0;r=0),a.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,a.width?parseInt(a.width):0);break;case"e":n=a.precision?parseFloat(n).toExponential(a.precision):parseFloat(n).toExponential();break;case"f":n=a.precision?parseFloat(n).toFixed(a.precision):parseFloat(n);break;case"g":n=a.precision?String(Number(n.toPrecision(a.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=a.precision?n.substring(0,a.precision):n;break;case"t":n=String(!!n),n=a.precision?n.substring(0,a.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=a.precision?n.substring(0,a.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=a.precision?n.substring(0,a.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}i.json.test(a.type)?m+=n:(!i.number.test(a.type)||p&&!a.sign?d="":(d=p?"+":"-",n=n.toString().replace(i.sign,"")),u=a.pad_char?"0"===a.pad_char?"0":a.pad_char.charAt(1):" ",l=a.width-(d+n).length,c=a.width&&l>0?u.repeat(l):"",m+=a.align?d+n+c:"0"===u?d+c+n:c+d+n)}return m}(function(e){if(a[e])return a[e];for(var t,n=e,r=[],o=0;n;){if(null!==(t=i.text.exec(n)))r.push(t[0]);else if(null!==(t=i.modulo.exec(n)))r.push("%");else{if(null===(t=i.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){o|=1;var s=[],c=t[2],u=[];if(null===(u=i.key.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(u[1]);""!==(c=c.substring(u[0].length));)if(null!==(u=i.key_access.exec(c)))s.push(u[1]);else{if(null===(u=i.index_access.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(u[1])}t[2]=s}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}n=n.substring(t[0].length)}return a[e]=r}(e),arguments)}function s(e,t){return o.apply(null,[e].concat(t||[]))}var a=Object.create(null);t.sprintf=o,t.vsprintf=s,"undefined"!=typeof window&&(window.sprintf=o,window.vsprintf=s,void 0===(r=function(){return{sprintf:o,vsprintf:s}}.call(t,n,t,e))||(e.exports=r))}()}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.amdO={},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";class e extends Error{constructor(e){super(e),this.name="ValueError"}}class t extends Error{constructor(e){super(e),this.name="UnImplementedMethod"}}class r extends Error{constructor(e,t){super(e),this.name="IllegalArgument",this.argument=t}}class i extends Error{constructor(e){super(e),this.name="IllegalState"}}class o extends Error{constructor(e,t){super(e),this.name="IllegalState",this.causeException=t.causeException,this.originalJsonString=t.originalJsonString}}var s=new class{constructor(){this.stage="prod",this.region="us-west-2",this.reconnect=!0;var e=this;this.features=new Proxy([],{set:function(t,n,r){console.log("new features added, initialValue: "+t[n]+" , newValue: "+r,Array.isArray(t[n]));var i=t[n];return Array.isArray(r)&&r.forEach((t=>{Array.isArray(i)&&-1===i.indexOf(t)&&Array.isArray(e.featureChangeListeners[t])&&(e.featureChangeListeners[t].forEach((e=>e())),e._cleanFeatureChangeListener(t))})),t[n]=r,!0}}),this.featureChangeListeners=[]}update(e){var t=e||{};this.stage=t.stage||this.stage,this.region=t.region||this.region,this.endpointOverride=t.endpoint||this.endpointOverride,this.reconnect=!1!==t.reconnect&&this.reconnect,this.messageReceiptThrottleTime=t.throttleTime?t.throttleTime:5e3,this.features.values=Array.isArray(t.features)?[...t.features]:new Array}updateStageRegion(e){e&&(this.stage=e.stage||this.stage,this.region=e.region||this.region)}updateThrottleTime(e){this.messageReceiptThrottleTime=e||this.messageReceiptThrottleTime}getMessageReceiptsThrottleTime(){return this.messageReceiptThrottleTime}getStage(){return this.stage}getRegion(){return this.region}getEndpointOverride(){return this.endpointOverride}setFeatureFlag(e){if(!this.isFeatureEnabled(e)){var t=Array.isArray(this.features.values)?this.features.values:[];this.features.values=[...t,e]}}_registerFeatureChangeListener(e,t){this.featureChangeListeners[e]||(this.featureChangeListeners[e]=[]),this.featureChangeListeners[e].push(t)}_cleanFeatureChangeListener(e){delete this.featureChangeListeners[e]}isFeatureEnabled(e,t){return Array.isArray(this.features.values)&&-1!==this.features.values.indexOf(e)?"function"!=typeof t||t():("function"==typeof t&&this._registerFeatureChangeListener(e,t),!1)}},a="MESSAGE_RECEIPTS_ENABLED",c={AGENT:"AGENT",CUSTOMER:"CUSTOMER"},u="API",l="SendMessage",p="SendAttachment",d="DownloadAttachment",h="SendEvent",f="GetTranscript",m="DisconnectParticipant",g="CreateParticipantConnection",v="InitWebsocket",y={INCOMING_MESSAGE:"INCOMING_MESSAGE",INCOMING_TYPING:"INCOMING_TYPING",INCOMING_READ_RECEIPT:"INCOMING_READ_RECEIPT",INCOMING_DELIVERED_RECEIPT:"INCOMING_DELIVERED_RECEIPT",CONNECTION_ESTABLISHED:"CONNECTION_ESTABLISHED",CONNECTION_LOST:"CONNECTION_LOST",CONNECTION_BROKEN:"CONNECTION_BROKEN",CONNECTION_ACK:"CONNECTION_ACK",CHAT_ENDED:"CHAT_ENDED",MESSAGE_METADATA:"MESSAGEMETADATA",PARTICIPANT_IDLE:"PARTICIPANT_IDLE",PARTICIPANT_RETURNED:"PARTICIPANT_RETURNED",AUTODISCONNECTION:"AUTODISCONNECTION"},b={textPlain:"text/plain",textMarkdown:"text/markdown",textCsv:"text/csv",applicationDoc:"application/msword",applicationDocx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",applicationJson:"application/json",applicationPdf:"application/pdf",applicationPpt:"application/vnd.ms-powerpoint",applicationPptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",applicationXls:"application/vnd.ms-excel",applicationXlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",imageJpg:"image/jpeg",imagePng:"image/png",audioWav:"audio/wav",audioXWav:"audio/x-wav",audioVndWave:"audio/vnd.wave",connectionAcknowledged:"application/vnd.amazonaws.connect.event.connection.acknowledged",typing:"application/vnd.amazonaws.connect.event.typing",participantJoined:"application/vnd.amazonaws.connect.event.participant.joined",participantLeft:"application/vnd.amazonaws.connect.event.participant.left",participantActive:"application/vnd.amazonaws.connect.event.participant.active",participantInactive:"application/vnd.amazonaws.connect.event.participant.inactive",transferSucceeded:"application/vnd.amazonaws.connect.event.transfer.succeeded",transferFailed:"application/vnd.amazonaws.connect.event.transfer.failed",chatEnded:"application/vnd.amazonaws.connect.event.chat.ended",interactiveMessage:"application/vnd.amazonaws.connect.message.interactive",interactiveMessageResponse:"application/vnd.amazonaws.connect.message.interactive.response",readReceipt:"application/vnd.amazonaws.connect.event.message.read",deliveredReceipt:"application/vnd.amazonaws.connect.event.message.delivered",participantIdle:"application/vnd.amazonaws.connect.event.participant.idle",participantReturned:"application/vnd.amazonaws.connect.event.participant.returned",autoDisconnection:"application/vnd.amazonaws.connect.event.participant.autodisconnection"},w={[b.typing]:y.INCOMING_TYPING,[b.readReceipt]:y.INCOMING_READ_RECEIPT,[b.deliveredReceipt]:y.INCOMING_DELIVERED_RECEIPT,[b.participantIdle]:y.PARTICIPANT_IDLE,[b.participantReturned]:y.PARTICIPANT_RETURNED,[b.autoDisconnection]:y.AUTODISCONNECTION,default:y.INCOMING_MESSAGE},E=3540,S=n(975),C={assertTrue:function(t,n){if(!t)throw new e(n)},assertNotNull:function(e,t){return C.assertTrue(null!=e,(0,S.sprintf)("%s must be provided",t||"A value")),e},now:function(){return(new Date).getTime()},isString:function(e){return"string"==typeof e},randomId:function(){return(0,S.sprintf)("%s-%s",C.now(),Math.random().toString(36).slice(2))},assertIsNonEmptyString:function(e,t){if(!e||"string"!=typeof e)throw new r(t+" is not a non-empty string!")},assertIsList:function(e,t){if(!Array.isArray(e))throw new r(t+" is not an array")},assertIsEnum:function(e,t,n){var i;for(i=0;inew Promise((t=>setTimeout(t,e))),asyncWhileInterval:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,o=new Date;return t(r)?e(r).catch((i=>{var s=Math.max(0,n-(new Date).valueOf()+o.valueOf());return C.delay(s).then((()=>C.asyncWhileInterval(e,t,n,r+1,i)))})):Promise.reject(i||new Error("async while aborted"))},isAttachmentContentType:function(e){return e===b.applicationPdf||e===b.imageJpg||e===b.imagePng||e===b.applicationDoc||e===b.applicationXls||e===b.applicationPpt||e===b.textCsv||e===b.audioWav}};const T=C;var I={DEBUG:10,INFO:20,WARN:30,ERROR:40,ADVANCED_LOG:50},k=new class{constructor(){this.updateLoggerConfig()}writeToClientLogger(e,t,n){if(this.hasClientLogger()){var r=function(e){switch(e){case 10:return"DEBUG";case 20:return"INFO";case 30:return"WARN";case 40:return"ERROR";case 50:return"ADVANCED_LOG"}}(e);switch(e){case I.DEBUG:return this._clientLogger.debug(r,t,n)||t;case I.INFO:return this._clientLogger.info(r,t,n)||t;case I.WARN:return this._clientLogger.warn(r,t,n)||t;case I.ERROR:return this._clientLogger.error(r,t,n)||t;case I.ADVANCED_LOG:return this._advancedLogWriter&&this._clientLogger[this._advancedLogWriter]&&this._clientLogger[this._advancedLogWriter](r,t,n)||t}}}isLevelEnabled(e){return e>=this._level}hasClientLogger(){return null!==this._clientLogger}getLogger(){return new x(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})}updateLoggerConfig(e){var t=e||{};this._level=t.level||I.INFO,this._advancedLogWriter="warn",function(e,t){var n=t&&Object.keys(t);if(n&&-1===n.indexOf(e))return console.error("customizedLogger: incorrect value for loggerConfig:advancedLogWriter; use valid values from list ".concat(n," but used ").concat(e)),!1;var r=["warn","info","debug","log"];return!e||-1!==r.indexOf(e)||(console.error("incorrect value for loggerConfig:advancedLogWriter; use valid values from list ".concat(r," but used ").concat(e)),!1)}(t.advancedLogWriter,t.customizedLogger)&&(this._advancedLogWriter=t.advancedLogWriter),(t.customizedLogger&&"object"==typeof t.customizedLogger||t.logger&&"object"==typeof t.logger)&&(this.useClientLogger=!0),this._clientLogger=this.selectLogger(t)}selectLogger(e){return e.customizedLogger&&"object"==typeof e.customizedLogger?e.customizedLogger:e.logger&&"object"==typeof e.logger?e.logger:e.useDefaultLogger?A():null}};class _{debug(){}info(){}warn(){}error(){}}class x extends _{constructor(e){super(),this.options=e||{}}debug(){for(var e=arguments.length,t=new Array(e),n=0;n{var e=new _;return e.debug=console.debug.bind(window.console),e.info=console.info.bind(window.console),e.warn=console.warn.bind(window.console),e.error=console.error.bind(window.console),e},R=(n(228),n(493)),O=n.n(R);function N(e,t,n,r,i,o,s){try{var a=e[o](s),c=a.value}catch(e){return void n(e)}a.done?t(c):Promise.resolve(c).then(r,i)}function L(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 M(e){for(var t=1;tthis._submitEvent(e,t,n)),1e4,{trailing:!1,leading:!0}));var t=new AWS.Credentials("",""),n=new AWS.Config({region:e.region,endpoint:e.endpoint,credentials:t});this.chatClient=new AWS.ConnectParticipant(n),this.invokeUrl=e.endpoint,this.logger=k.getLogger({prefix:"Amazon-Connect-ChatJS-ChatClient",logMetaData:e.logMetaData})}createParticipantConnection(e,t,n){var r=this,i={ParticipantToken:e,Type:t,ConnectParticipant:n},o=r.chatClient.createParticipantConnection(i);return r._sendRequest(o).then((e=>{var t,n;return null===(t=r.logger.info("Successfully create connection request"))||void 0===t||null===(n=t.sendInternalLogToServer)||void 0===n||n.call(t),e})).catch((e=>{var t,n;return null===(t=r.logger.error("Error when creating connection request ",e))||void 0===t||null===(n=t.sendInternalLogToServer)||void 0===n||n.call(t),Promise.reject(e)}))}disconnectParticipant(e){var t=this,n={ConnectionToken:e},r=t.chatClient.disconnectParticipant(n);return t._sendRequest(r).then((e=>{var n,r;return null===(n=t.logger.info("Successfully disconnect participant"))||void 0===n||null===(r=n.sendInternalLogToServer)||void 0===r||r.call(n),e})).catch((e=>{var n,r;return null===(n=t.logger.error("Error when disconnecting participant ",e))||void 0===n||null===(r=n.sendInternalLogToServer)||void 0===r||r.call(n),Promise.reject(e)}))}getTranscript(e,t){var n={MaxResults:t.maxResults,NextToken:t.nextToken,ScanDirection:t.scanDirection,SortOrder:t.sortOrder,StartPosition:{Id:t.startPosition.id,AbsoluteTime:t.startPosition.absoluteTime,MostRecent:t.startPosition.mostRecent},ConnectionToken:e};t.contactId&&(n.ContactId=t.contactId);var r=this.chatClient.getTranscript(n);return this._sendRequest(r).then((e=>(this.logger.info("Successfully get transcript"),e))).catch((e=>(this.logger.error("Get transcript error",e),Promise.reject(e))))}sendMessage(e,t,n){var r={Content:t,ContentType:n,ConnectionToken:e},i=this.chatClient.sendMessage(r);return this._sendRequest(i).then((e=>{var t,n={id:null===(t=e.data)||void 0===t?void 0:t.Id,contentType:r.ContentType};return this.logger.debug("Successfully send message",n),e})).catch((e=>(this.logger.error("Send message error",e,{contentType:r.ContentType}),Promise.reject(e))))}sendAttachment(e,t,n){var r=this,i={ContentType:t.type,AttachmentName:t.name,AttachmentSizeInBytes:t.size,ConnectionToken:e},o=r.chatClient.startAttachmentUpload(i),s={contentType:t.type,size:t.size};return r._sendRequest(o).then((n=>r._uploadToS3(t,n.data.UploadMetadata).then((()=>{var t,i={AttachmentIds:[n.data.AttachmentId],ConnectionToken:e};this.logger.debug("Successfully upload attachment",M(M({},s),{},{attachmentId:null===(t=n.data)||void 0===t?void 0:t.AttachmentId}));var o=r.chatClient.completeAttachmentUpload(i);return r._sendRequest(o)})))).catch((e=>(this.logger.error("Upload attachment error",e,s),Promise.reject(e))))}_uploadToS3(e,t){return fetch(t.Url,{method:"PUT",headers:t.HeadersToInclude,body:e})}downloadAttachment(e,t){var n=this,r={AttachmentId:t,ConnectionToken:e},i={attachmentId:t},o=n.chatClient.getAttachment(r);return n._sendRequest(o).then((e=>(this.logger.debug("Successfully download attachment",i),n._downloadUrl(e.data.Url)))).catch((e=>(this.logger.error("Download attachment error",e,i),Promise.reject(e))))}_downloadUrl(e){return fetch(e).then((e=>e.blob())).catch((e=>Promise.reject(e)))}sendEvent(e,t,n){return t===b.typing?this.throttleEvent(e,t,n):this._submitEvent(e,t,n)}_submitEvent(e,t,n){var r,i=this;return(r=function*(){var r=i,o={ConnectionToken:e,ContentType:t,Content:n},s=r.chatClient.sendEvent(o),a={contentType:t};try{var c,u=yield r._sendRequest(s);return i.logger.debug("Successfully send event",M(M({},a),{},{id:null===(c=u.data)||void 0===c?void 0:c.Id})),u}catch(e){return yield Promise.reject(e)}},function(){var e=this,t=arguments;return new Promise((function(n,i){var o=r.apply(e,t);function s(e){N(o,n,i,s,a,"next",e)}function a(e){N(o,n,i,s,a,"throw",e)}s(void 0)}))})()}_sendRequest(e){return new Promise(((t,n)=>{e.on("success",(function(e){t(e)})).on("error",(function(e){var t={type:e.code,message:e.message,stack:e.stack?e.stack.split("\n"):[],statusCode:e.statusCode};n(t)})).send()}))}}var q=new class{constructor(){this.clientCache={}}getCachedClient(e,t){var n=Object.assign({},e),r=e.region||s.getRegion()||"us-west-2";if(n.region=r,t.region=r,this.clientCache[r])return this.clientCache[r];var i=this._createAwsClient(n,t);return this.clientCache[r]=i,i}_createAwsClient(e,t){var n=e.region,r=s.getEndpointOverride(),i="https://participant.connect.".concat(n,".amazonaws.com");return r&&(i=r),new U({endpoint:i,region:n,logMetaData:t})}};class j{validateNewControllerDetails(e){return!0}validateSendMessage(e){if(!T.isString(e.message))throw new r(e.message+"is not a valid message");this.validateContentType(e.contentType)}validateContentType(e){T.assertIsEnum(e,Object.values(b),"contentType")}validateConnectChat(e){return!0}validateLogger(e){T.assertIsObject(e,"logger"),["debug","info","warn","error"].forEach((t=>{if(!T.isFunction(e[t]))throw new r(t+" should be a valid function on the passed logger object!")}))}validateSendEvent(e){this.validateContentType(e.contentType)}validateGetMessages(e){return!0}}class F extends j{validateChatDetails(e,t){if(T.assertIsObject(e,"chatDetails"),t===c.AGENT&&!T.isFunction(e.getConnectionToken))throw new r("getConnectionToken was not a function",e.getConnectionToken);if(T.assertIsNonEmptyString(e.contactId,"chatDetails.contactId"),T.assertIsNonEmptyString(e.participantId,"chatDetails.participantId"),t===c.CUSTOMER){if(!e.participantToken)throw new r("participantToken was not provided for a customer session type",e.participantToken);T.assertIsNonEmptyString(e.participantToken,"chatDetails.participantToken")}}validateInitiateChatResponse(){return!0}normalizeChatDetails(e){var t={};return t.contactId=e.ContactId||e.contactId,t.participantId=e.ParticipantId||e.participantId,t.initialContactId=e.InitialContactId||e.initialContactId||t.contactId||t.ContactId,t.getConnectionToken=e.getConnectionToken||e.GetConnectionToken,(e.participantToken||e.ParticipantToken)&&(t.participantToken=e.ParticipantToken||e.participantToken),this.validateChatDetails(t),t}}var W="NeverStarted",B="Starting",z="Connected",H="ConnectionLost",V="Ended",G="ConnectionLost",K="ConnectionGained",X="Ended",J="IncomingMessage";class Y{constructor(e,t){this.connectionDetailsProvider=e,this.isStarted=!1,this.logger=k.getLogger({prefix:"ChatJS-BaseConnectionHelper",logMetaData:t})}startConnectionTokenPolling(){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:432e5;if(!(arguments.length>0&&void 0!==arguments[0]&&arguments[0]))return this.connectionDetailsProvider.fetchConnectionDetails().then((t=>(this.logger.info("Connection token polling succeeded."),e=this.getTimeToConnectionTokenExpiry(),this.timeout=setTimeout(this.startConnectionTokenPolling.bind(this),e),t))).catch((t=>(this.logger.error("An error occurred when attempting to fetch the connection token during Connection Token Polling",t),this.timeout=setTimeout(this.startConnectionTokenPolling.bind(this),e),t)));this.logger.info("First time polling connection token."),this.timeout=setTimeout(this.startConnectionTokenPolling.bind(this),e)}start(){return this.isStarted?this.getConnectionToken():(this.isStarted=!0,this.startConnectionTokenPolling(!0,this.getTimeToConnectionTokenExpiry()))}end(){clearTimeout(this.timeout)}getConnectionToken(){return this.connectionDetailsProvider.getFetchedConnectionToken()}getConnectionTokenExpiry(){return this.connectionDetailsProvider.getConnectionTokenExpiry()}getTimeToConnectionTokenExpiry(){return new Date(this.getConnectionTokenExpiry()).getTime()-(new Date).getTime()-6e4}}var $="<>",Q=function(e,t,n){this.subMap=e,this.id=T.randomId(),this.eventName=t,this.f=n};Q.prototype.unsubscribe=function(){this.subMap.unsubscribe(this.eventName,this.id)};var Z=function(){this.subIdMap={},this.subEventNameMap={}};Z.prototype.subscribe=function(e,t){var n=new Q(this,e,t);this.subIdMap[n.id]=n;var r=this.subEventNameMap[e]||[];return r.push(n),this.subEventNameMap[e]=r,()=>n.unsubscribe()},Z.prototype.unsubscribe=function(e,t){T.contains(this.subEventNameMap,e)&&(this.subEventNameMap[e]=this.subEventNameMap[e].filter((function(e){return e.id!==t})),this.subEventNameMap[e].length<1&&delete this.subEventNameMap[e]),T.contains(this.subIdMap,t)&&delete this.subIdMap[t]},Z.prototype.getAllSubscriptions=function(){return T.values(this.subEventNameMap).reduce((function(e,t){return e.concat(t)}),[])},Z.prototype.getSubscriptions=function(e){return this.subEventNameMap[e]||[]};var ee=function(e){var t=e||{};this.subMap=new Z,this.logEvents=t.logEvents||!1};ee.prototype.subscribe=function(e,t){return T.assertNotNull(e,"eventName"),T.assertNotNull(t,"f"),T.assertTrue(T.isFunction(t),"f must be a function"),this.subMap.subscribe(e,t)},ee.prototype.subscribeAll=function(e){return T.assertNotNull(e,"f"),T.assertTrue(T.isFunction(e),"f must be a function"),this.subMap.subscribe($,e)},ee.prototype.getSubscriptions=function(e){return this.subMap.getSubscriptions(e)},ee.prototype.trigger=function(e,t){T.assertNotNull(e,"eventName");var n=this,r=this.subMap.getSubscriptions($),i=this.subMap.getSubscriptions(e);r.concat(i).forEach((function(r){try{r.f(t||null,e,n)}catch(e){}}))},ee.prototype.triggerAsync=function(e,t){setTimeout((()=>this.trigger(e,t)),0)},ee.prototype.bridge=function(){var e=this;return function(t,n){e.trigger(n,t)}},ee.prototype.unsubscribeAll=function(){this.subMap.getAllSubscriptions().forEach((function(e){e.unsubscribe()}))};var te="Category",ne=new class{constructor(){this.widgetType="CustomChatWidget",this.logger=k.getLogger({prefix:"ChatJS-csmService"}),this.csmInitialized=!1,this.metricsToBePublished=[],this.agentMetricToBePublished=[],this.MAX_RETRY=5}loadCsmScriptAndExecute(){try{var e=document.createElement("script");e.type="text/javascript",e.innerHTML="(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n csm.EVENT_TYPE = {\n LOG: 'LOG',\n METRIC: 'METRIC',\n CONFIG: 'CONFIG',\n WORKFLOW_EVENT: 'WORKFLOW_EVENT',\n CUSTOM: 'CUSTOM',\n CLOSE: 'CLOSE',\n SET_AUTH: 'SET_AUTH',\n SET_CONFIG: 'SET_CONFIG',\n };\n\n csm.UNIT = {\n COUNT: 'Count',\n SECONDS: 'Seconds',\n MILLISECONDS: 'Milliseconds',\n MICROSECONDS: 'Microseconds',\n };\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const MAX_METRIC_DIMENSIONS = 10;\n\n /** ********* Dimension Classes ***********/\n\n const Dimension = function(name, value) {\n csm.Util.assertExist(name, 'name');\n csm.Util.assertExist(value, 'value');\n\n this.name = name;\n this.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n };\n\n\n /** ********* Metric Classes ***********/\n\n const Metric = function(metricName, unit, value, dedupeOptions) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(value, 'value');\n csm.Util.assertExist(unit, 'unit');\n csm.Util.assertTrue(csm.Util.isValidUnit(unit));\n if (dedupeOptions) {\n csm.Util.assertInObject(dedupeOptions, 'dedupeOptions', 'dedupeIntervalMs');\n }\n\n this.metricName = metricName;\n this.unit = unit;\n this.value = value;\n this.timestamp = new Date();\n this.dimensions = csm.globalDimensions ? csm.Util.deepCopy(csm.globalDimensions): [];\n this.namespace = csm.configuration.namespace;\n this.dedupeOptions = dedupeOptions; // optional. { dedupeIntervalMs: (int; required), context: (string; optional) }\n\n // Currently, CloudWatch can't aggregate metrics by a subset of dimensions.\n // To bypass this limitation, we introduce the optional dimensions concept to CSM.\n // The CSM metric publisher will publish a default metric without optional dimension\n // For each optional dimension, the CSM metric publisher publishes an extra metric with that dimension.\n this.optionalDimensions = csm.globalOptionalDimensions ? csm.Util.deepCopy(csm.globalOptionalDimensions): [];\n };\n\n Metric.prototype.addDimension = function(name, value) {\n this._addDimensionHelper(this.dimensions, name, value);\n };\n\n Metric.prototype.addOptionalDimension = function(name, value) {\n this._addDimensionHelper(this.optionalDimensions, name, value);\n };\n\n Metric.prototype._addDimensionHelper = function(targetDimensions, name, value) {\n // CloudWatch metric allows maximum 10 dimensions\n // http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#putMetricData-property\n if ((this.dimensions.length + this.optionalDimensions.length) >= MAX_METRIC_DIMENSIONS) {\n throw new csm.ExceedDimensionLimitException(name);\n }\n\n const existing = targetDimensions.find(function(dimension) {\n return dimension.name === name;\n });\n\n if (existing) {\n existing.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n } else {\n targetDimensions.push(new Dimension(name, value));\n }\n };\n\n\n /** ********* Telemetry Classes ***********/\n\n const WorkflowEvent = function(params) {\n this.timestamp = params.timestamp || new Date().getTime();\n this.workflowType = params.workflow.type;\n this.instanceId = params.workflow.instanceId;\n this.userId = params.userId;\n this.organizationId = params.organizationId;\n this.accountId = params.accountId;\n this.event = params.event;\n this.appName = params.appName;\n this.data = [];\n\n // Convert 'data' map into the KeyValuePairList structure expected by the Lambda API\n for (const key in params.data) {\n if (Object.prototype.hasOwnProperty.call(params.data, key)) {\n this.data.push({'key': key, 'value': params.data[key]});\n }\n }\n };\n\n /** ********* Exceptions ***********/\n\n const NullOrUndefinedException = function(paramName) {\n this.name = 'NullOrUndefinedException';\n this.message = paramName + ' is null or undefined. ';\n };\n NullOrUndefinedException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const AssertTrueException = function() {\n this.name = 'AssertTrueException';\n this.message = 'Assertion failed. ';\n };\n AssertTrueException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const ExceedDimensionLimitException = function(dimensionName) {\n this.name = 'ExceedDimensionLimitException';\n this.message = 'Could not add dimension \\'' + dimensionName + '\\'. Metric has maximum 10 dimensions. ';\n };\n ExceedDimensionLimitException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const InitializationException = function() {\n this.name = 'InitializationException';\n this.message = 'Initialization failed. ';\n };\n InitializationException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n\n csm.Dimension = Dimension;\n csm.Metric = Metric;\n csm.WorkflowEvent = WorkflowEvent;\n csm.NullOrUndefinedException = NullOrUndefinedException;\n csm.AssertTrueException = AssertTrueException;\n csm.InitializationException = InitializationException;\n csm.ExceedDimensionLimitException = ExceedDimensionLimitException;\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const validTimeUnits = [csm.UNIT.SECONDS, csm.UNIT.MILLISECONDS, csm.UNIT.MICROSECONDS];\n const validUnits = validTimeUnits.concat(csm.UNIT.COUNT);\n\n const Util = {\n assertExist: function(value, paramName) {\n if (value === null || value === undefined) {\n throw new csm.NullOrUndefinedException(paramName);\n }\n },\n assertTrue: function(value) {\n if (!value) {\n throw new csm.AssertTrueException();\n }\n },\n assertInObject: function(obj, objName, key) {\n if (obj === null || obj === undefined || typeof obj !== 'object') {\n throw new csm.NullOrUndefinedException(objName);\n }\n if (key === null || key === undefined || !obj[key]) {\n throw new csm.NullOrUndefinedException(`${objName}[${key}]`);\n }\n },\n isValidUnit: function(unit) {\n return validUnits.includes(unit);\n },\n isValidTimeUnit: function(unit) {\n return validTimeUnits.includes(unit);\n },\n isEmpty: function(value) {\n if (value !== null && typeof val === 'object') {\n return Objects.keys(value).length === 0;\n }\n return !value;\n },\n deepCopy: function(obj) {\n // NOTE: this will fail if obj has a circular reference\n return JSON.parse(JSON.stringify(obj));\n },\n\n /**\n * This function is used before setting the page location for default metrics and logs,\n * and the APIs that set page location\n * Can be overridden by calling csm.API.setPageLocationTransformer(function(){})\n * @param {string} pathname path for page location\n * @return {string} pathname provided\n */\n pageLocationTransformer: function(pathname) {\n return pathname;\n },\n\n /**\n * As of now, our service public claims only support for Firefox and Chrome\n * Reference https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent\n *\n * This function will only return firefox, chrome and others\n *\n * Best practice as indicated in MDN, \"Avoiding user agent detection\"\n */\n getBrowserDetails: function() {\n const userAgent = window.navigator.userAgent;\n const details = {};\n if (userAgent.includes('Firefox') && !userAgent.includes('Seamonkey')) {\n details.name = 'Firefox';\n details.version = getBrowserVersion('Firefox');\n } else if (userAgent.includes('Chrome') && !userAgent.includes('Chromium')) {\n details.name = 'Chrome';\n details.version = getBrowserVersion('Chrome');\n }\n },\n\n randomId: function() {\n return new Date().getTime() + '-' + Math.random().toString(36).slice(2);\n },\n\n getOrigin: function() {\n return document.location.origin;\n },\n\n getReferrerUrl: function() {\n const referrer = document.referrer || '';\n return this.getURLOrigin(referrer);\n },\n\n getWindowParent: function() {\n let parentLocation = '';\n try {\n parentLocation = window.parent.location.href;\n } catch (e) {\n parentLocation = '';\n }\n return parentLocation;\n },\n\n getURLOrigin: function(urlValue) {\n let origin = '';\n const originArray = urlValue.split( '/' );\n if (originArray.length >= 3) {\n const protocol = originArray[0];\n const host = originArray[2];\n origin = protocol + '//' + host;\n }\n return origin;\n },\n\n };\n\n const getBrowserVersion = function(browserName) {\n const userAgent = window.navigator.userAgent;\n const browserNameIndex = userAgent.indexOf(browserName);\n const nextSpaceIndex = userAgent.indexOf(' ', browserNameIndex);\n if (nextSpaceIndex === -1) {\n return userAgent.substring(browserNameIndex + browserName.length + 1, userAgent.length);\n } else {\n return userAgent.substring(browserNameIndex + browserName.length + 1, nextSpaceIndex);\n }\n };\n\n csm.Util = Util;\n})();\n\n(function() {\n const global = window;\n const csm = global.csm || {};\n global.csm = csm;\n\n csm.globalDimensions = []; // These dimensions are added to all captured metrics.\n csm.globalOptionalDimensions = [];\n csm.initFailureDimensions = [];\n\n const API = {\n getWorkflow: function(workflowType, instanceId, data) {\n return csm.workflow(workflowType, instanceId, data);\n },\n\n addMetric: function(metric) {\n csm.Util.assertExist(metric, 'metric');\n csm.putMetric(metric);\n },\n\n addMetricWithDedupe: function(metric, dedupeIntervalMs, context) {\n csm.Util.assertExist(metric, 'metric');\n csm.Util.assertExist(metric, 'dedupeIntervalMs');\n // context is optional; if present it will only dedupe on metrics with the same context. ex.) tabId\n metric.dedupeOptions = {dedupeIntervalMs, context: context || 'global'};\n csm.putMetric(metric);\n },\n\n addCount: function(metricName, count) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(count, 'count');\n\n const metric = new csm.Metric(metricName, csm.UNIT.COUNT, count);\n csm.putMetric(metric);\n },\n\n addCountWithPageLocation: function(metricName) {\n csm.Util.assertExist(metricName, 'metricName');\n\n const metric = new csm.Metric(metricName, csm.UNIT.COUNT, 1.0);\n metric.addDimension('WindowLocation', csm.Util.pageLocationTransformer(window.location.pathname));\n csm.putMetric(metric);\n },\n\n addError: function(metricName, count) {\n csm.Util.assertExist(metricName, 'metricName');\n\n if (count === undefined || count == null) {\n count = 1.0;\n }\n const metric = new csm.Metric(metricName, csm.UNIT.COUNT, count);\n metric.addDimension('Metric', 'Error');\n csm.putMetric(metric);\n },\n\n addSuccess: function(metricName) {\n API.addError(metricName, 0);\n },\n\n addTime: function(metricName, time, unit) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(time, 'time');\n\n let timeUnit = csm.UNIT.MILLISECONDS;\n if (unit && csm.Util.isValidTimeUnit(unit)) {\n timeUnit = unit;\n }\n const metric = new csm.Metric(metricName, timeUnit, time);\n metric.addDimension('Metric', 'Time');\n csm.putMetric(metric);\n },\n\n addTimeWithPageLocation: function(metricName, time, unit) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(time, 'time');\n\n let timeUnit = csm.UNIT.MILLISECONDS;\n if (unit && csm.Util.isValidTimeUnit(unit)) {\n timeUnit = unit;\n }\n const metric = new csm.Metric(metricName, timeUnit, time);\n metric.addDimension('WindowLocation', csm.Util.pageLocationTransformer(window.location.pathname));\n csm.putMetric(metric);\n },\n\n pageReady: function() {\n if (window.performance && window.performance.now) {\n const pageLoadTime = window.performance.now();\n const metric = new csm.Metric('PageReadyLatency', csm.UNIT.MILLISECONDS, pageLoadTime);\n metric.addDimension('WindowLocation', csm.Util.pageLocationTransformer(window.location.pathname));\n csm.putMetric(metric);\n }\n },\n\n setPageLocationTransformer: function(transformFunc) {\n csm.Util.assertExist(transformFunc, 'transformFunc');\n csm.Util.assertTrue((typeof transformFunc) === 'function');\n csm.Util.pageLocationTransformer = transformFunc;\n },\n\n setGlobalDimensions: function(dimensions) {\n csm.Util.assertExist(dimensions, 'dimensions');\n csm.globalDimensions = dimensions;\n },\n\n setGlobalOptionalDimensions: function(dimensions) {\n csm.Util.assertExist(dimensions, 'dimensions');\n csm.globalOptionalDimensions = dimensions;\n },\n\n setInitFailureDimensions: function(dimensions) {\n csm.Util.assertExist(dimensions, 'dimensions');\n csm.initFailureDimensions = dimensions;\n },\n\n putCustom: function(endpoint, headers, data) {\n csm.Util.assertExist(data, 'data');\n csm.Util.assertExist(endpoint, 'endpoint');\n csm.Util.assertExist(headers, 'headers');\n csm.putCustom(endpoint, headers, data);\n },\n\n setAuthParams: function(authParams) {\n csm.setAuthParams(authParams);\n },\n\n setConfig: function(key, value) {\n csm.Util.assertExist(key, 'key');\n csm.Util.assertExist(value, 'value');\n if (!csm.configuration[key]) {\n csm.setConfig(key, value); // set configuration variables such as accountId, instanceId, userId\n }\n },\n };\n\n csm.API = API;\n})();\n\n(function() {\n const global = window;\n const csm = global.csm || {};\n global.csm = csm;\n\n const WORKFLOW_KEY_PREFIX = 'csm.workflow';\n\n /**\n * Calculates the local storage key used to store a workflow of the specified type.\n * @param {string} type of workflow\n * @return {string} storage key\n */\n const getWorkflowKeyForType = function(type) {\n return [\n WORKFLOW_KEY_PREFIX,\n type,\n ].join('.');\n };\n\n /**\n * Constructor for new Workflow objects.\n *\n * If you need to be able to share a workflow across tabs, it is recommended\n * to use \"csm.workflow\" to create/hydrate your workflows instead.\n * @param {string} type of workflow\n * @param {string} instanceId of workflow\n * @param {JSON} data blob associated with workflow\n */\n const Workflow = function(type, instanceId, data) {\n this.type = type;\n this.instanceId = instanceId || csm.Util.randomId();\n this.instanceSpecified = instanceId || false;\n this.eventMap = {};\n this.data = data || {};\n\n // Merge global dimensions into the data map.\n const dimensionData = {};\n csm.globalDimensions.forEach(function(dimension) {\n dimensionData[dimension.name] = dimension.value;\n });\n csm.globalOptionalDimensions.forEach(function(dimension) {\n dimensionData[dimension.name] = dimension.value;\n });\n this.data = this._mergeData(dimensionData);\n };\n\n /**\n * Create a new workflow or rehydrate an existing shared workflow.\n *\n * @param {string} type The type of workflow to be created.\n * @param {string} instanceId The instanceId of the workflow. If not provided, it will be\n * assigned a random ID and will not be automatically saved to local storage.\n * If provided, we will attempt to load an existing workflow of the same type\n * from local storage and rehydrate it.\n * @param {JSON} data An optional map of key/value pairs to be added as data to every\n * workflow event created with this workflow.\n * @return {Workflow} workflow event\n * NOTE: Only one workflow of each type can be stored at the same time, to avoid\n * overloading localStorage with unused workflow records.\n */\n csm.workflow = function(type, instanceId, data) {\n let workflow = new Workflow(type, instanceId, data);\n\n if (instanceId) {\n const savedWorkflow = csm._loadWorkflow(type);\n if (savedWorkflow && savedWorkflow.instanceId === instanceId) {\n workflow = savedWorkflow;\n workflow.addData(data || {});\n }\n }\n\n return workflow;\n };\n\n csm._loadWorkflow = function(type) {\n let workflow = null;\n const workflowJson = localStorage.getItem(getWorkflowKeyForType(type));\n const workflowStruct = workflowJson ? JSON.parse(workflowJson) : null;\n if (workflowStruct) {\n workflow = new Workflow(type, workflowStruct.instanceId);\n workflow.eventMap = workflowStruct.eventMap;\n }\n return workflow;\n };\n\n /**\n * Creates a new workflow event and returns it. Then this workflow event is sent upstream\n * to the CSMSharedWorker where it is provided to the backend.\n *\n * If an instanceId was specified when the workflow was created, this will also save the workflow\n * and all of its events to localStorage.\n *\n * @param {string} event The name of the event that occurred.\n * @param {JSON} data An optional free-form key attribute pair of metadata items that will be stored\n * and reported backstream with the workflow event.\n * @return {WorkflowEvent} workflowEvent\n */\n Workflow.prototype.event = function(event, data) {\n const mergedData = this._mergeData(data || {});\n const workflowEvent = new csm.WorkflowEvent({\n workflow: this,\n event: event,\n data: mergedData,\n userId: csm.configuration.userId || '',\n organizationId: csm.configuration.organizationId || '',\n accountId: csm.configuration.accountId || '',\n appName: csm.configuration.namespace || '',\n });\n csm.putWorkflowEvent(workflowEvent);\n this.eventMap[event] = workflowEvent;\n if (this.instanceSpecified) {\n this.save();\n }\n return workflowEvent;\n };\n\n /**\n * Creates a new workflow event and returns it, if the same event is not happened in ths past\n * dedupeIntervalMs milliseconds.\n * @param {string} event The name of the event that occurred.\n * @param {JSON} data An optional free-form key attribute pair of metadata items that will be stored\n * and reported backstream with the workflow event.\n * @param {int} dedupeIntervalMs defaults to 200 MS\n * @return {WorkflowEvent} workflowEvent\n */\n Workflow.prototype.eventWithDedupe = function(event, data, dedupeIntervalMs) {\n const pastEvent = this.getPastEvent(event);\n const now = new Date().getTime();\n const interval = dedupeIntervalMs || 200;\n\n // Crafting the expected workflow event data result\n const mergedData = this._mergeData(data);\n const expectedData = [];\n for (const key in mergedData) {\n if (Object.prototype.hasOwnProperty.call(mergedData, key)) {\n expectedData.push({'key': key, 'value': mergedData[key]});\n }\n }\n\n // Deduplicate same events that happened within interval\n if (!pastEvent || (pastEvent && JSON.stringify(pastEvent.data) !== JSON.stringify(expectedData)) ||\n (pastEvent && (now - pastEvent.timestamp > interval))) {\n return this.event(event, data);\n }\n return null;\n };\n\n /**\n * Get a past event if it exists in this workflow, otherwise returns null.\n * This can be helpful to emit metrics in real time based on the differences\n * between workflow event timestamps, especially for workflows shared across tabs.\n * @param {string} event key to see if workflow exists for this event\n * @return {WorkflowEvent} workflow event retrieved\n */\n Workflow.prototype.getPastEvent = function(event) {\n return event in this.eventMap ? this.eventMap[event] : null;\n };\n\n /**\n * Save the workflow to local storage. This only happens automatically when an\n * instanceId is specified on workflow creation, however if this method is called\n * explicitly by the client, the randomly generated workflow instance id can be\n * used to retrieve the workflow later and automatic save on events will be enabled.\n */\n Workflow.prototype.save = function() {\n this.instanceSpecified = true;\n localStorage.setItem(getWorkflowKeyForType(this.type), JSON.stringify(this));\n };\n\n /**\n * Remove this workflow if it is the saved instance for this workflow type in localStorage.\n */\n Workflow.prototype.close = function() {\n const storedWorkflow = csm._loadWorkflow(this.type);\n if (storedWorkflow && storedWorkflow.instanceId === this.instanceId) {\n localStorage.removeItem(getWorkflowKeyForType(this.type));\n }\n };\n\n Workflow.prototype.addData = function(data) {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n this.data[key] = data[key];\n }\n }\n };\n\n Workflow.prototype._mergeData = function(data) {\n const mergedData = {};\n let key = null;\n for (key in this.data) {\n if (Object.prototype.hasOwnProperty.call(this.data, key)) {\n mergedData[key] = this.data[key] == null ? 'null' : (this.data[key] === '' ? ' ' : this.data[key].toString());\n }\n }\n for (key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n mergedData[key] = data[key] == null ? 'null' : (data[key] === '' ? ' ' : data[key].toString());\n }\n }\n return mergedData;\n };\n})();\n\n(function() {\n const global = window;\n const csm = global.csm || {};\n global.csm = csm;\n\n let worker = null;\n let portId = null;\n\n const MAX_INIT_MILLISECONDS = 5000;\n const preInitTaskQueue = [];\n csm.configuration = {};\n\n /**\n * Initialize CSM variables\n * @param {object} params for CSM\n * @params.namespace Define your metric namespace used in CloudWatch metrics\n * @params.sharedWorkerUrl Specify the relative url to the connect-csm-worker.js file in your service\n * @params.endpoint Specify an LDAS endpoint to use.\n * @params.dryRunMode When CSM is initialized with dry run mode, it won't actually publish metrics.\n * @params.defaultMetrics Enable default metrics. Default to false.\n */\n csm.initCSM = function(params) {\n csm.Util.assertExist(params.namespace, 'namespace');\n csm.Util.assertExist(params.sharedWorkerUrl, 'sharedWorkerUrl');\n csm.Util.assertExist(params.endpoint, 'endpoint');\n\n try {\n console.log('Starting csm shared worker with', params.sharedWorkerUrl);\n worker = new SharedWorker(params.sharedWorkerUrl, 'CSM_SharedWorker');\n worker.port.start();\n } catch (e) {\n console.log('Failed to initialize csm shared worker with', params.sharedWorkerUrl);\n console.log(e.message);\n }\n\n /**\n * Configure shared worker\n */\n csm.configuration = {\n namespace: params.namespace,\n userId: params.userId || '',\n accountId: params.accountId || '',\n organizationId: params.organizationId || '',\n endpointUrl: params.endpoint || null,\n batchSettings: params.batchSettings || null,\n addPageVisibilityDimension: params.addPageVisibilityDimension || false,\n addUrlDataDimensions: params.addUrlDataDimensions || false,\n dryRunMode: params.dryRunMode || false, // When csm is in dryRunMode it won't actually publish metrics to CSM\n };\n\n postEventToWorker(csm.EVENT_TYPE.CONFIG, csm.configuration);\n\n /**\n * Receive message from shared worker\n * @param {MessageEvent} messageEvent from shared worker\n */\n worker.port.onmessage = function(messageEvent) {\n const messageType = messageEvent.data.type;\n onMessageFromWorker(messageType, messageEvent.data);\n };\n\n /**\n * Inform shared worker window closed\n */\n global.onbeforeunload = function() {\n worker.port.postMessage(\n {\n type: csm.EVENT_TYPE.CLOSE,\n portId: portId,\n },\n );\n };\n\n /**\n * Check if initialization success\n */\n global.setTimeout(function() {\n if (!isCSMInitialized()) {\n console.log('[FATAL] CSM initialization failed! Please make sure the sharedWorkerUrl is reachable.');\n }\n }, MAX_INIT_MILLISECONDS);\n\n // Emit out of the box metrics\n if (params.defaultMetrics) {\n emitDefaultMetrics();\n }\n };\n // Final processing before sending to SharedWorker\n const processMetric = function(metric) {\n if (csm.configuration.addPageVisibilityDimension && document.visibilityState) {\n metric.addOptionalDimension('VisibilityState', document.visibilityState);\n }\n };\n\n const processWorkflowEvent = function(event) {\n if (csm.configuration.addUrlDataDimensions) {\n event.data.push({'key': 'ReferrerUrl', 'value': csm.Util.getReferrerUrl()});\n event.data.push({'key': 'Origin', 'value': csm.Util.getOrigin()});\n event.data.push({'key': 'WindowParent', 'value': csm.Util.getWindowParent()});\n }\n if (['initFailure', 'initializationLatencyInfo'].includes(event.event)) {\n csm.initFailureDimensions.forEach((dimension) => {\n Object.keys(dimension).forEach((key) => {\n event.data.push({'key': key, 'value': dimension[key]});\n });\n });\n }\n return event;\n };\n\n csm.putMetric = function(metric) {\n processMetric(metric);\n postEventToWorker(csm.EVENT_TYPE.METRIC, metric);\n };\n\n csm.putLog = function(log) {\n postEventToWorker(csm.EVENT_TYPE.LOG, log);\n };\n\n csm.putWorkflowEvent = function(event) {\n const processedEvent = processWorkflowEvent(event);\n postEventToWorker(csm.EVENT_TYPE.WORKFLOW_EVENT, processedEvent);\n };\n\n csm.putCustom = function(endpoint, headers, data) {\n postEventToWorker(csm.EVENT_TYPE.CUSTOM, data, endpoint, headers);\n };\n\n csm.setAuthParams = function(authParams) {\n postEventToWorker(csm.EVENT_TYPE.SET_AUTH, authParams);\n };\n\n csm.setConfig = function(key, value) {\n csm.configuration[key] = value;\n postEventToWorker(csm.EVENT_TYPE.SET_CONFIG, {key, value});\n };\n /** ********************** PRIVATE METHODS ************************/\n\n const onMessageFromWorker = function(messageType, data) {\n if (messageType === csm.EVENT_TYPE.CONFIG) {\n portId = data.portId;\n onCSMInitialized();\n }\n };\n\n const onCSMInitialized = function() {\n // Purge the preInitTaskQueue\n preInitTaskQueue.forEach(function(task) {\n postEventToWorker(task.type, task.message, task.endpoint, task.headers);\n });\n\n // TODO: Capture on errors and publish log to shared worker\n /**\n window.onerror = function(message, fileName, lineNumber, columnNumber, errorstack) {\n var log = new csm.Log(message, fileName, lineNumber, columnNumber, errorstack.stack);\n csm.putLog(log);\n };\n */\n };\n\n /**\n * Emit out of the box metrics automatically\n *\n * TODO allow configuration\n */\n const emitDefaultMetrics = function() {\n window.addEventListener('load', function() {\n // loadEventEnd is avaliable after the onload function finished\n // https://www.w3.org/TR/navigation-timing-2/#processing-model\n // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\n global.setTimeout(function() {\n try {\n const perfData = window.performance.getEntriesByType('navigation')[0];\n const pageLoadTime = perfData.loadEventEnd - perfData.startTime;\n const connectTime = perfData.responseEnd - perfData.requestStart;\n const domRenderTime = perfData.domComplete - perfData.domInteractive;\n csm.API.addCountWithPageLocation('PageLoad');\n csm.API.addTimeWithPageLocation('PageLoadTime', pageLoadTime);\n csm.API.addTimeWithPageLocation('ConnectTime', connectTime);\n csm.API.addTimeWithPageLocation('DomRenderTime', domRenderTime);\n } catch (err) {\n console.log('Error emitting default metrics', err);\n }\n }, 0);\n });\n };\n\n /**\n * Try posting message to shared worker\n * If shared worker hasn't been initialized, put the task to queue to be clean up once initialized\n * @param {csm.EVENT_TYPE} eventType for CSM\n * @param {object} message event following type of eventType\n * @param {string} [endpoint] optional parameter for putCustom function (put any data to specified endpoint)\n * @param {object} [headers] optional parameter for putCustom function\n */\n const postEventToWorker = function(eventType, message, endpoint, headers) {\n if (eventType === csm.EVENT_TYPE.CONFIG || isCSMInitialized()) {\n worker.port.postMessage(\n {\n type: eventType,\n portId: portId,\n message: message,\n endpoint: endpoint,\n headers: headers,\n },\n );\n } else {\n preInitTaskQueue.push({\n type: eventType,\n message: message,\n endpoint: endpoint,\n headers: headers,\n });\n }\n };\n\n const isCSMInitialized = function() {\n return portId !== null;\n };\n})()",document.head.appendChild(e),this.initializeCSM()}catch(e){this.logger.error("Load csm script error: ",e)}}initializeCSM(){try{if(this.csmInitialized)return;var e=s.getRegion(),t="(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n csm.EVENT_TYPE = {\n LOG: 'LOG',\n METRIC: 'METRIC',\n CONFIG: 'CONFIG',\n WORKFLOW_EVENT: 'WORKFLOW_EVENT',\n CUSTOM: 'CUSTOM',\n CLOSE: 'CLOSE',\n SET_AUTH: 'SET_AUTH',\n SET_CONFIG: 'SET_CONFIG',\n };\n\n csm.UNIT = {\n COUNT: 'Count',\n SECONDS: 'Seconds',\n MILLISECONDS: 'Milliseconds',\n MICROSECONDS: 'Microseconds',\n };\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const MAX_METRIC_DIMENSIONS = 10;\n\n /** ********* Dimension Classes ***********/\n\n const Dimension = function(name, value) {\n csm.Util.assertExist(name, 'name');\n csm.Util.assertExist(value, 'value');\n\n this.name = name;\n this.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n };\n\n\n /** ********* Metric Classes ***********/\n\n const Metric = function(metricName, unit, value, dedupeOptions) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(value, 'value');\n csm.Util.assertExist(unit, 'unit');\n csm.Util.assertTrue(csm.Util.isValidUnit(unit));\n if (dedupeOptions) {\n csm.Util.assertInObject(dedupeOptions, 'dedupeOptions', 'dedupeIntervalMs');\n }\n\n this.metricName = metricName;\n this.unit = unit;\n this.value = value;\n this.timestamp = new Date();\n this.dimensions = csm.globalDimensions ? csm.Util.deepCopy(csm.globalDimensions): [];\n this.namespace = csm.configuration.namespace;\n this.dedupeOptions = dedupeOptions; // optional. { dedupeIntervalMs: (int; required), context: (string; optional) }\n\n // Currently, CloudWatch can't aggregate metrics by a subset of dimensions.\n // To bypass this limitation, we introduce the optional dimensions concept to CSM.\n // The CSM metric publisher will publish a default metric without optional dimension\n // For each optional dimension, the CSM metric publisher publishes an extra metric with that dimension.\n this.optionalDimensions = csm.globalOptionalDimensions ? csm.Util.deepCopy(csm.globalOptionalDimensions): [];\n };\n\n Metric.prototype.addDimension = function(name, value) {\n this._addDimensionHelper(this.dimensions, name, value);\n };\n\n Metric.prototype.addOptionalDimension = function(name, value) {\n this._addDimensionHelper(this.optionalDimensions, name, value);\n };\n\n Metric.prototype._addDimensionHelper = function(targetDimensions, name, value) {\n // CloudWatch metric allows maximum 10 dimensions\n // http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#putMetricData-property\n if ((this.dimensions.length + this.optionalDimensions.length) >= MAX_METRIC_DIMENSIONS) {\n throw new csm.ExceedDimensionLimitException(name);\n }\n\n const existing = targetDimensions.find(function(dimension) {\n return dimension.name === name;\n });\n\n if (existing) {\n existing.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n } else {\n targetDimensions.push(new Dimension(name, value));\n }\n };\n\n\n /** ********* Telemetry Classes ***********/\n\n const WorkflowEvent = function(params) {\n this.timestamp = params.timestamp || new Date().getTime();\n this.workflowType = params.workflow.type;\n this.instanceId = params.workflow.instanceId;\n this.userId = params.userId;\n this.organizationId = params.organizationId;\n this.accountId = params.accountId;\n this.event = params.event;\n this.appName = params.appName;\n this.data = [];\n\n // Convert 'data' map into the KeyValuePairList structure expected by the Lambda API\n for (const key in params.data) {\n if (Object.prototype.hasOwnProperty.call(params.data, key)) {\n this.data.push({'key': key, 'value': params.data[key]});\n }\n }\n };\n\n /** ********* Exceptions ***********/\n\n const NullOrUndefinedException = function(paramName) {\n this.name = 'NullOrUndefinedException';\n this.message = paramName + ' is null or undefined. ';\n };\n NullOrUndefinedException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const AssertTrueException = function() {\n this.name = 'AssertTrueException';\n this.message = 'Assertion failed. ';\n };\n AssertTrueException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const ExceedDimensionLimitException = function(dimensionName) {\n this.name = 'ExceedDimensionLimitException';\n this.message = 'Could not add dimension ' + dimensionName + ' . Metric has maximum 10 dimensions. ';\n };\n ExceedDimensionLimitException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const InitializationException = function() {\n this.name = 'InitializationException';\n this.message = 'Initialization failed. ';\n };\n InitializationException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n\n csm.Dimension = Dimension;\n csm.Metric = Metric;\n csm.WorkflowEvent = WorkflowEvent;\n csm.NullOrUndefinedException = NullOrUndefinedException;\n csm.AssertTrueException = AssertTrueException;\n csm.InitializationException = InitializationException;\n csm.ExceedDimensionLimitException = ExceedDimensionLimitException;\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const validTimeUnits = [csm.UNIT.SECONDS, csm.UNIT.MILLISECONDS, csm.UNIT.MICROSECONDS];\n const validUnits = validTimeUnits.concat(csm.UNIT.COUNT);\n\n const Util = {\n assertExist: function(value, paramName) {\n if (value === null || value === undefined) {\n throw new csm.NullOrUndefinedException(paramName);\n }\n },\n assertTrue: function(value) {\n if (!value) {\n throw new csm.AssertTrueException();\n }\n },\n assertInObject: function(obj, objName, key) {\n if (obj === null || obj === undefined || typeof obj !== 'object') {\n throw new csm.NullOrUndefinedException(objName);\n }\n if (key === null || key === undefined || !obj[key]) {\n throw new csm.NullOrUndefinedException(`${objName}[${key}]`);\n }\n },\n isValidUnit: function(unit) {\n return validUnits.includes(unit);\n },\n isValidTimeUnit: function(unit) {\n return validTimeUnits.includes(unit);\n },\n isEmpty: function(value) {\n if (value !== null && typeof val === 'object') {\n return Objects.keys(value).length === 0;\n }\n return !value;\n },\n deepCopy: function(obj) {\n // NOTE: this will fail if obj has a circular reference\n return JSON.parse(JSON.stringify(obj));\n },\n\n /**\n * This function is used before setting the page location for default metrics and logs,\n * and the APIs that set page location\n * Can be overridden by calling csm.API.setPageLocationTransformer(function(){})\n * @param {string} pathname path for page location\n * @return {string} pathname provided\n */\n pageLocationTransformer: function(pathname) {\n return pathname;\n },\n\n /**\n * As of now, our service public claims only support for Firefox and Chrome\n * Reference https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent\n *\n * This function will only return firefox, chrome and others\n *\n * Best practice as indicated in MDN, \"Avoiding user agent detection\"\n */\n getBrowserDetails: function() {\n const userAgent = window.navigator.userAgent;\n const details = {};\n if (userAgent.includes('Firefox') && !userAgent.includes('Seamonkey')) {\n details.name = 'Firefox';\n details.version = getBrowserVersion('Firefox');\n } else if (userAgent.includes('Chrome') && !userAgent.includes('Chromium')) {\n details.name = 'Chrome';\n details.version = getBrowserVersion('Chrome');\n }\n },\n\n randomId: function() {\n return new Date().getTime() + '-' + Math.random().toString(36).slice(2);\n },\n\n getOrigin: function() {\n return document.location.origin;\n },\n\n getReferrerUrl: function() {\n const referrer = document.referrer || '';\n return this.getURLOrigin(referrer);\n },\n\n getWindowParent: function() {\n let parentLocation = '';\n try {\n parentLocation = window.parent.location.href;\n } catch (e) {\n parentLocation = '';\n }\n return parentLocation;\n },\n\n getURLOrigin: function(urlValue) {\n let origin = '';\n const originArray = urlValue.split( '/' );\n if (originArray.length >= 3) {\n const protocol = originArray[0];\n const host = originArray[2];\n origin = protocol + '//' + host;\n }\n return origin;\n },\n\n };\n\n const getBrowserVersion = function(browserName) {\n const userAgent = window.navigator.userAgent;\n const browserNameIndex = userAgent.indexOf(browserName);\n const nextSpaceIndex = userAgent.indexOf(' ', browserNameIndex);\n if (nextSpaceIndex === -1) {\n return userAgent.substring(browserNameIndex + browserName.length + 1, userAgent.length);\n } else {\n return userAgent.substring(browserNameIndex + browserName.length + 1, nextSpaceIndex);\n }\n };\n\n csm.Util = Util;\n})();\n\n(function() {\n const XHR_DONE_READY_STATE = 4; // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState\n\n const global = self;\n const configuration = {};\n const batchSettings = {\n maxMetricsSize: 30,\n maxWorkflowEventsSize: 30,\n putMetricsIntervalMs: 30000,\n putWorkflowEventsIntervalMs: 2000,\n };\n const metricLists = {}; // metricList per CloudWatch Namespace\n const metricMap = {};\n const ports = {};\n let workflowEvents = {workflowEventList: []};\n\n // SharedWorker wiki: https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker\n onconnect = function(connectEvent) {\n const port = connectEvent.ports[0];\n\n port.onmessage = function(event) {\n const data = event.data;\n const messageType = data.type;\n const message = data.message;\n const endpoint = data.endpoint;\n const headers = data.headers;\n\n if (data.portId && !(data.portId in ports)) {\n // This could happen when a user tries to close a tab which has a pop up alert to confirm closing,\n // and the user decides to cancel closing\n // This triggers before unload event while the tab or window is not closed actually\n ports[data.portId] = port;\n }\n\n const {METRIC, WORKFLOW_EVENT, CUSTOM, CONFIG, SET_AUTH, SET_CONFIG, CLOSE} = csm.EVENT_TYPE;\n switch (messageType) {\n case METRIC: {\n csm.Util.assertInObject(message, 'message', 'namespace');\n const namespace = message.namespace;\n if (shouldDedupe(message)) break;\n addMetricEventToMap(message);\n if (metricLists[namespace]) {\n metricLists[namespace].push(message);\n } else {\n metricLists[namespace] = [message];\n }\n if (metricLists[namespace].length >= batchSettings.maxMetricsSize) {\n putMetricsForNamespace(namespace);\n }\n break;\n }\n case WORKFLOW_EVENT: {\n workflowEvents.workflowEventList.push(message);\n if (workflowEvents.length >= batchSettings.maxWorkflowEventsSize) {\n putWorkflowEvents();\n }\n break;\n }\n case CUSTOM: {\n putCustom(endpoint, headers, message);\n break;\n }\n case CONFIG: {\n const portId = Object.keys(ports).length + 1; // portId starts from 1\n ports[portId] = port;\n for (const setting of Object.keys(message)) {\n if (!csm.Util.isEmpty(message[setting])) {\n configuration[setting] = message[setting];\n }\n }\n\n // set optional batch settings\n if (configuration.batchSettings) {\n for (const setting of Object.keys(configuration.batchSettings)) {\n batchSettings[setting] = configuration.batchSettings[setting];\n }\n }\n // send metrics and workflow events at set intervals\n putMetrics();\n putWorkflowEvents();\n global.setInterval(putMetrics, batchSettings.putMetricsIntervalMs);\n global.setInterval(putWorkflowEvents, batchSettings.putWorkflowEventsIntervalMs);\n\n port.postMessage(\n {\n type: csm.EVENT_TYPE.CONFIG,\n portId: portId,\n },\n );\n break;\n }\n case SET_AUTH: {\n configuration.authParams = message;\n authenticate();\n break;\n }\n case SET_CONFIG: {\n configuration[message.key] = message.value;\n break;\n }\n case CLOSE: {\n delete ports[data.portId];\n if (Object.keys(ports).length === 0) {\n putMetrics();\n putWorkflowEvents();\n }\n break;\n }\n default:\n break;\n }\n };\n };\n\n const shouldDedupe = function(metric) {\n try {\n const pastMetric = getPastMetricEvent(metric);\n return pastMetric && metric.dedupeOptions &&\n (metric.timestamp - pastMetric.timestamp < metric.dedupeOptions.dedupeIntervalMs);\n } catch (err) {\n console.error('Error in shouldDedupe', err);\n return false;\n }\n };\n\n const getPastMetricEvent = function(metric) {\n try {\n return metricMap[getMetricEventKey(metric)];\n } catch (err) {\n // ignore err - no previous metrics found\n return null;\n }\n };\n\n const addMetricEventToMap = function(metric) {\n try {\n metricMap[getMetricEventKey(metric)] = metric;\n } catch (err) {\n console.error('Failed to add event to metricMap', err);\n }\n csm.metricMap = metricMap;\n };\n\n const getMetricEventKey = function(metric) {\n const {namespace, metricName, unit, dedupeOptions} = metric;\n let context = 'global';\n if (dedupeOptions && dedupeOptions.context) {\n context = dedupeOptions.context;\n }\n return `${namespace}-${metricName}-${unit}-${context}`;\n };\n\n const authenticate = function() {\n postRequest(configuration.endpointUrl + '/auth', {authParams: configuration.authParams},\n {\n success: function(response) {\n if (response && response.jwtToken) {\n configuration.authParams.jwtToken = response.jwtToken;\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] csm auth failed!');\n broadcastMessage('Response : ' + response);\n },\n }, {'x-api-key': 'auth-method-level-key'});\n };\n\n /**\n * Put metrics to service when:\n * a) metricList size is at maxMetricsSize\n * b) every putMetricsIntervalMs time if the metricList is not empty\n * c) worker is closed\n *\n * Timer is reset, and metricList emptied after each putMetrics call\n */\n const putMetrics = function() {\n for (const namespace of Object.keys(metricLists)) {\n putMetricsForNamespace(namespace);\n }\n };\n\n const putMetricsForNamespace = function(namespace) {\n csm.Util.assertInObject(metricLists, 'metricLists', namespace);\n const metricList = metricLists[namespace];\n\n if (metricList.length > 0 && !configuration.dryRunMode && configuration.endpointUrl) {\n postRequest(configuration.endpointUrl + '/put-metrics', {\n metricNamespace: namespace,\n metricList: metricList,\n authParams: configuration.authParams,\n accountId: configuration.accountId,\n organizationId: configuration.organizationId,\n agentResourceId: configuration.userId,\n }, {\n success: function(response) {\n if (response) {\n broadcastMessage('PutMetrics response : ' + response);\n if (response.unsetToken) {\n delete configuration.authParams.jwtToken;\n authenticate();\n }\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] Put metrics to service failed! ');\n },\n });\n }\n metricLists[namespace] = [];\n };\n\n /**\n * Put metrics to service every two seconds if there are events to be put.\n */\n const putWorkflowEvents = function() {\n if (workflowEvents.workflowEventList.length > 0 && !configuration.dryRunMode && configuration.endpointUrl) {\n workflowEvents.authParams = configuration.authParams;\n postRequest(configuration.endpointUrl + '/put-workflow-events', workflowEvents,\n {\n success: function(response) {\n if (response) {\n if (response.workflowEventList && response.workflowEventList.length > 0) {\n broadcastMessage('[WARN] There are ' + response.length + ' workflow events that failed to publish');\n broadcastMessage('Response : ' + response);\n }\n if (response.unsetToken) {\n delete configuration.authParams.jwtToken;\n authenticate();\n }\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] Put workflow events to service failed! ');\n },\n });\n }\n\n workflowEvents = {workflowEventList: []};\n };\n\n /**\n * Put data to custom endpoint on demand\n * @param {string} endpoint\n * @param {object} headers\n * @param {object} data to send to endpoint\n */\n const putCustom = function(endpoint, headers, data) {\n if (!configuration.dryRunMode && endpoint && data) {\n postRequest(endpoint, data, {\n success: function(response) {\n if (response) {\n broadcastMessage('Response : ' + response);\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] Failed to put custom data! ');\n },\n }, headers);\n }\n };\n\n /**\n * Broadcast message to all tabs\n * @param {string} message to post to all the tabs\n */\n const broadcastMessage = function(message) {\n for (const portId in ports) {\n if (Object.prototype.hasOwnProperty.call(ports, portId)) {\n ports[portId].postMessage(message);\n }\n }\n };\n\n const postRequest = function(url, data, callbacks, headers) {\n csm.Util.assertExist(url, 'url');\n csm.Util.assertExist(data, 'data');\n\n callbacks = callbacks || {};\n callbacks.success = callbacks.success || function() {};\n callbacks.failure = callbacks.failure || function() {};\n\n const request = new XMLHttpRequest(); // new HttpRequest instance\n request.onreadystatechange = function() {\n const errorList = request.response ? JSON.parse(request.response): [];\n if (request.readyState === XHR_DONE_READY_STATE) { // request finished and response is ready\n if (request.status === 200) {\n callbacks.success(errorList);\n } else {\n broadcastMessage('AJAX request failed with status: ' + request.status);\n callbacks.failure(errorList);\n }\n }\n };\n\n request.open('POST', url);\n if (headers && typeof headers === 'object') {\n Object.keys(headers).forEach((header) => request.setRequestHeader(header, headers[header]));\n } else {\n request.setRequestHeader('Content-Type', 'application/json');\n }\n request.send(JSON.stringify(data));\n };\n})()".replace(/\\/g,""),n=URL.createObjectURL(new Blob([t],{type:"text/javascript"})),r=(e=>"https://ieluqbvv.telemetry.connect.".concat(e,".amazonaws.com/prod"))(e),i={endpoint:r,namespace:"chat-widget",sharedWorkerUrl:n};csm.initCSM(i),this.logger.info("CSMService is initialized in ".concat(e)),this.csmInitialized=!0,this.metricsToBePublished&&(this.metricsToBePublished.forEach((e=>{csm.API.addMetric(e)})),this.metricsToBePublished=null)}catch(e){this.logger.error("Failed to initialize csm: ",e)}}updateCsmConfig(e){this.widgetType="object"!=typeof e||null===e||Array.isArray(e)?this.widgetType:e.widgetType}getDefaultDimensions(){return[{name:"WidgetType",value:this.widgetType}]}addMetric(e){if(this.csmInitialized)try{csm.API.addMetric(e)}catch(e){this.logger.error("Failed to addMetric csm: ",e)}else this.metricsToBePublished&&(this.metricsToBePublished.push(e),this.logger.info("CSMService is not initialized yet. Adding metrics to queue to be published once CSMService is initialized"))}setDimensions(e,t){t.forEach((t=>{e.addDimension(t.name,t.value)}))}addLatencyMetric(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];try{var i=new csm.Metric(e,csm.UNIT.MILLISECONDS,t),o=[...this.getDefaultDimensions(),{name:"Metric",value:"Latency"},{name:te,value:n},...r];this.setDimensions(i,o),this.addMetric(i),this.logger.debug("Successfully published latency API metrics for method ".concat(e))}catch(e){this.logger.error("Failed to addLatencyMetric csm: ",e)}}addLatencyMetricWithStartTime(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],i=(new Date).getTime()-t;this.addLatencyMetric(e,i,n,r),this.logger.debug("Successfully published latency API metrics for method ".concat(e))}addCountAndErrorMetric(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];try{var i=[...this.getDefaultDimensions(),{name:te,value:t},...r],o=new csm.Metric(e,csm.UNIT.COUNT,1);this.setDimensions(o,[...i,{name:"Metric",value:"Count"}]);var s=n?1:0,a=new csm.Metric(e,csm.UNIT.COUNT,s);this.setDimensions(a,[...i,{name:"Metric",value:"Error"}]),this.addMetric(o),this.addMetric(a),this.logger.debug("Successfully published count and error metrics for method ".concat(e))}catch(e){this.logger.error("Failed to addCountAndErrorMetric csm: ",e)}}addCountMetric(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];try{var r=[...this.getDefaultDimensions(),{name:te,value:t},{name:"Metric",value:"Count"},...n],i=new csm.Metric(e,csm.UNIT.COUNT,1);this.setDimensions(i,r),this.addMetric(i),this.logger.debug("Successfully published count metrics for method ".concat(e))}catch(e){this.logger.error("Failed to addCountMetric csm: ",e)}}addAgentCountMetric(e,t){try{var n=this;csm&&csm.API.addCount&&e?(csm.API.addCount(e,t),n.MAX_RETRY=5):(e&&this.agentMetricToBePublished.push({metricName:e,count:t}),setTimeout((()=>{csm&&csm.API.addCount?(this.agentMetricToBePublished.forEach((e=>{csm.API.addCount(e.metricName,e.count)})),this.agentMetricToBePublished=[]):n.MAX_RETRY>0&&(n.MAX_RETRY-=1,n.addAgentCountMetric())}),3e3))}catch(e){this.logger.error("Failed to addAgentCountMetric csm: ",e)}}};function re(e,t,n,r,i,o,s){try{var a=e[o](s),c=a.value}catch(e){return void n(e)}a.done?t(c):Promise.resolve(c).then(r,i)}class ie{constructor(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;this.chatClient=t,this.participantToken=e||null,this.connectionDetails=null,this.connectionToken=null,this.connectionTokenExpiry=null,this.sessionType=n,this.getConnectionToken=r}getFetchedConnectionToken(){return this.connectionToken}getConnectionTokenExpiry(){return this.connectionTokenExpiry}getConnectionDetails(){return this.connectionDetails}fetchConnectionDetails(){return this._fetchConnectionDetails().then((e=>e))}_handleCreateParticipantConnectionResponse(e,t){return this.connectionDetails={url:e.Websocket.Url,expiry:e.Websocket.ConnectionExpiry,transportLifeTimeInSeconds:E,connectionAcknowledged:t,connectionToken:e.ConnectionCredentials.ConnectionToken,connectionTokenExpiry:e.ConnectionCredentials.Expiry},this.connectionToken=e.ConnectionCredentials.ConnectionToken,this.connectionTokenExpiry=e.ConnectionCredentials.Expiry,this.connectionDetails}_handleGetConnectionTokenResponse(e){return this.connectionDetails={url:null,expiry:null,connectionToken:e.participantToken,connectionTokenExpiry:e.expiry,transportLifeTimeInSeconds:E,connectionAcknowledged:!1},this.connectionToken=e.participantToken,this.connectionTokenExpiry=e.expiry,Promise.resolve(this.connectionDetails)}callCreateParticipantConnection(){var{Type:e=!0,ConnectParticipant:t=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=(new Date).getTime();return this.chatClient.createParticipantConnection(this.participantToken,e?["WEBSOCKET","CONNECTION_CREDENTIALS"]:null,t||null).then((r=>{if(e)return this._addParticipantConnectionMetric(n),this._handleCreateParticipantConnectionResponse(r.data,t)})).catch((t=>(e&&this._addParticipantConnectionMetric(n,!0),Promise.reject({reason:"Failed to fetch connectionDetails with createParticipantConnection",_debug:t}))))}_addParticipantConnectionMetric(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];ne.addLatencyMetricWithStartTime(g,e,u),ne.addCountAndErrorMetric(g,u,t)}_fetchConnectionDetails(){var e,t=this;return(e=function*(){return t.sessionType===c.CUSTOMER?t.callCreateParticipantConnection():t.sessionType===c.AGENT?t.getConnectionToken().then((e=>t._handleGetConnectionTokenResponse(e.chatTokenTransport))).catch((()=>t.callCreateParticipantConnection({Type:!0,ConnectParticipant:!0}).catch((e=>{throw new Error({type:"CONN_ACK_FAILED",errorMessage:e})})))):Promise.reject({reason:"Failed to fetch connectionDetails.",_debug:new r("Failed to fetch connectionDetails.")})},function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function s(e){re(o,r,i,s,a,"next",e)}function a(e){re(o,r,i,s,a,"throw",e)}s(void 0)}))})()}}var oe=void 0!==oe?oe:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};oe.connect=oe.connect||{};var se=connect.WebSocketManager;!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}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return 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=10)}([function(e,t){function n(t){return e.exports=n="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,n(t)}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t){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},function(e,t){function n(e,t){for(var n=0;n=0),a.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,a.width?parseInt(a.width):0);break;case"e":n=a.precision?parseFloat(n).toExponential(a.precision):parseFloat(n).toExponential();break;case"f":n=a.precision?parseFloat(n).toFixed(a.precision):parseFloat(n);break;case"g":n=a.precision?String(Number(n.toPrecision(a.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=a.precision?n.substring(0,a.precision):n;break;case"t":n=String(!!n),n=a.precision?n.substring(0,a.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=a.precision?n.substring(0,a.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=a.precision?n.substring(0,a.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}i.json.test(a.type)?m+=n:(!i.number.test(a.type)||p&&!a.sign?d="":(d=p?"+":"-",n=n.toString().replace(i.sign,"")),u=a.pad_char?"0"===a.pad_char?"0":a.pad_char.charAt(1):" ",l=a.width-(d+n).length,c=a.width&&l>0?u.repeat(l):"",m+=a.align?d+n+c:"0"===u?d+c+n:c+d+n)}return m}(function(e){if(a[e])return a[e];for(var t,n=e,r=[],o=0;n;){if(null!==(t=i.text.exec(n)))r.push(t[0]);else if(null!==(t=i.modulo.exec(n)))r.push("%");else{if(null===(t=i.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){o|=1;var s=[],c=t[2],u=[];if(null===(u=i.key.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(u[1]);""!==(c=c.substring(u[0].length));)if(null!==(u=i.key_access.exec(c)))s.push(u[1]);else{if(null===(u=i.index_access.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(u[1])}t[2]=s}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}n=n.substring(t[0].length)}return a[e]=r}(e),arguments)}function s(e,t){return o.apply(null,[e].concat(t||[]))}var a=Object.create(null);t.sprintf=o,t.vsprintf=s,"undefined"!=typeof window&&(window.sprintf=o,window.vsprintf=s,void 0===(r=function(){return{sprintf:o,vsprintf:s}}.call(t,n,t,e))||(e.exports=r))}()},function(e,t,n){var r=n(8);e.exports=function(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&&r(e,t)},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){var r=n(0).default,i=n(9);e.exports=function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return i(e)},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t){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},function(e,t){function n(t,r){return e.exports=n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,n(t,r)}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t){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},function(e,t,n){n.r(t),n.d(t,"WebSocketManager",(function(){return ce}));var r=n(0),i=n.n(r),o=n(4),s="AMZ_WEB_SOCKET_MANAGER:",a="Network offline",c="Network online, connecting to WebSocket server",u="Network offline, ignoring this getWebSocketConnConfig request",l="Heartbeat response not received",p="aws/ping deep heartbeat response not received",d="Failed to send heartbeat since WebSocket is not open",h="Failed to send aws/ping deep heartbeat since WebSocket is not open",f="WebSocket connection established!",m="WebSocket connection is closed",g="WebSocketManager Error, error_event: ",v="Scheduling WebSocket reinitialization, after delay ",y="WebSocket URL cannot be used to establish connection",b="WebSocket Initialization failed - Terminating and cleaning subscriptions",w="Fetching new WebSocket connection configuration",E="Successfully fetched webSocket connection configuration",S="Failed to fetch webSocket connection configuration",C="Retrying fetching new WebSocket connection configuration",T="Initializing Websocket Manager",I="WebSocketManager Message Error",k="Message received for topic ",_="Invalid incoming message",x="aws/subscribe",A="aws/heartbeat",R="aws/ping",O="disconnected",N={assertTrue:function(e,t){if(!e)throw new Error(t)},assertNotNull:function(e,t){return N.assertTrue(null!==e&&void 0!==i()(e),Object(o.sprintf)("%s must be provided",t||"A value")),e},isNonEmptyString:function(e){return"string"==typeof e&&e.length>0},assertIsList:function(e,t){if(!Array.isArray(e))throw new Error(t+" is not an array")},isFunction:function(e){return!!(e&&e.constructor&&e.call&&e.apply)},isObject:function(e){return!("object"!==i()(e)||null===e)},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e}},L=new RegExp("^(wss://)\\w*"),M=new RegExp("^(ws://127.0.0.1:)");N.validWSUrl=function(e){return L.test(e)||M.test(e)},N.getSubscriptionResponse=function(e,t,n){return{topic:e,content:{status:t?"success":"failure",topics:n}}},N.assertIsObject=function(e,t){if(!N.isObject(e))throw new Error(t+" is not an object!")},N.addJitter=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;t=Math.min(t,1);var n=Math.random()>.5?1:-1;return Math.floor(e+n*e*Math.random()*t)},N.isNetworkOnline=function(){return navigator.onLine},N.isNetworkFailure=function(e){return!(!e._debug||!e._debug.type)&&"NetworkingError"===e._debug.type};var P=N,D=n(5),U=n.n(D),q=n(6),j=n.n(q),F=n(3),W=n.n(F),B=n(7),z=n.n(B),H=n(1),V=n.n(H),G=n(2),K=n.n(G);function X(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}var J=function(){function e(){V()(this,e)}return K()(e,[{key:"debug",value:function(e){}},{key:"info",value:function(e){}},{key:"warn",value:function(e){}},{key:"error",value:function(e){}},{key:"advancedLog",value:function(e){}}]),e}(),Y=s,$={DEBUG:10,INFO:20,WARN:30,ERROR:40,ADVANCED_LOG:50},Q=function(){function e(t){V()(this,e),this.logMetaData=t||"",this.updateLoggerConfig()}return K()(e,[{key:"hasLogMetaData",value:function(){return!!this.logMetaData}},{key:"writeToClientLogger",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(this.hasClientLogger()){var n="string"==typeof t?t:JSON.stringify(t,te()),r="string"==typeof this.logMetaData?this.logMetaData:JSON.stringify(this.logMetaData,te()),i="".concat(function(e){switch(e){case 10:return"DEBUG";case 20:return"INFO";case 30:return"WARN";case 40:return"ERROR";case 50:return"ADVANCED_LOG"}}(e)," ").concat(n," ").concat(r);switch(e){case $.DEBUG:return this._clientLogger.debug(i)||i;case $.INFO:return this._clientLogger.info(i)||i;case $.WARN:return this._clientLogger.warn(i)||i;case $.ERROR:return this._clientLogger.error(i)||i;case $.ADVANCED_LOG:return this._advancedLogWriter?this._clientLogger[this._advancedLogWriter](i)||i:""}}}},{key:"isLevelEnabled",value:function(e){return e>=this._level}},{key:"hasClientLogger",value:function(){return null!==this._clientLogger}},{key:"getLogger",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.prefix||Y;return e.logMetaData&&this.setLogMetaData(e.logMetaData),this.logMetaData||console.info("*********Missing required option: WebSocketManager:logMetaData**********"),new ee(this,function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:2e3;V()(this,e),this.numAttempts=0,this.executor=t,this.hasActiveReconnection=!1,this.defaultRetry=n}return K()(e,[{key:"retry",value:function(){var e=this;this.hasActiveReconnection||(this.hasActiveReconnection=!0,setTimeout((function(){e._execute()}),this._getDelay()))}},{key:"_execute",value:function(){this.hasActiveReconnection=!1,this.executor(),this.numAttempts++}},{key:"connected",value:function(){this.numAttempts=0}},{key:"_getDelay",value:function(){var e=Math.pow(2,this.numAttempts)*this.defaultRetry;return e<=3e4?e:3e4}},{key:"getIsConnected",value:function(){return!this.numAttempts}}]),e}(),ie=null,se=function(){var e=!1,t=ie.getLogger({prefix:s}),n=P.isNetworkOnline(),r={primary:null,secondary:null},i={reconnectWebSocket:!0,websocketInitFailed:!1,exponentialBackOffTime:1e3,exponentialTimeoutHandle:null,lifeTimeTimeoutHandle:null,webSocketInitCheckerTimeoutId:null,connState:null},o={connectWebSocketRetryCount:0,connectionAttemptStartTime:null,noOpenConnectionsTimestamp:null},N={pendingResponse:!1,intervalHandle:null},L={pendingResponse:!1,intervalHandle:null},M={initFailure:new Set,getWebSocketTransport:null,subscriptionUpdate:new Set,subscriptionFailure:new Set,topic:new Map,allMessage:new Set,connectionGain:new Set,connectionLost:new Set,connectionOpen:new Set,connectionClose:new Set,deepHeartbeatSuccess:new Set,deepHeartbeatFailure:new Set,topicFailure:new Set},D={connConfig:null,promiseHandle:null,promiseCompleted:!0},U={subscribed:new Set,pending:new Set,subscriptionHistory:new Set},q={responseCheckIntervalId:null,requestCompleted:!0,reSubscribeIntervalId:null,consecutiveFailedSubscribeAttempts:0,consecutiveNoResponseRequest:0},j=new re((function(){pe()})),F=new Set([x,"aws/unsubscribe",A,R]),W=setInterval((function(){if(n!==P.isNetworkOnline()){if(!(n=P.isNetworkOnline()))return t.advancedLog(a),void fe(t.info(a));var e=X();n&&(!e||V(e,WebSocket.CLOSING)||V(e,WebSocket.CLOSED))&&(t.advancedLog(c),fe(t.info(c)),pe())}}),250),B=function(e,n){e.forEach((function(e){try{e(n)}catch(e){fe(t.error("Error executing callback",e))}}))},z=function(e){if(null===e)return"NULL";switch(e.readyState){case WebSocket.CONNECTING:return"CONNECTING";case WebSocket.OPEN:return"OPEN";case WebSocket.CLOSING:return"CLOSING";case WebSocket.CLOSED:return"CLOSED";default:return"UNDEFINED"}},H=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";fe(t.debug("["+e+"] Primary WebSocket: "+z(r.primary)+" | Secondary WebSocket: "+z(r.secondary)))},V=function(e,t){return e&&e.readyState===t},G=function(e){return V(e,WebSocket.OPEN)},K=function(e){return null===e||void 0===e.readyState||V(e,WebSocket.CLOSED)},X=function(){return null!==r.secondary?r.secondary:r.primary},J=function(){return G(X())},Y=function(){if(e&&L.pendingResponse&&(t.advancedLog(p),fe(t.warn(p)),B(M.deepHeartbeatFailure,{timestamp:Date.now(),error:"aws/ping response is not received"}),clearInterval(L.intervalHandle),L.pendingResponse=!1),N.pendingResponse)return t.advancedLog(l),fe(t.warn(l)),clearInterval(N.intervalHandle),N.intervalHandle=null,N.pendingResponse=!1,void pe();J()?(e&&(fe(t.debug("Sending aws/ping deep heartbeat")),X().send(ue(R)),L.pendingResponse=!0),fe(t.debug("Sending heartbeat")),X().send(ue(A)),N.pendingResponse=!0):(e&&(t.advancedLog(h),fe(t.warn(h)),B(M.deepHeartbeatFailure,{timestamp:Date.now(),error:"Unable to send message to aws/ping because websocket connection is not established."})),t.advancedLog(d),fe(t.warn(d)),H("sendHeartBeat"),pe())},$=function(){t.advancedLog("Reset Websocket state"),i.exponentialBackOffTime=1e3,N.pendingResponse=!1,L.pendingResponse=!1,i.reconnectWebSocket=!0,clearTimeout(i.lifeTimeTimeoutHandle),clearInterval(N.intervalHandle),clearInterval(L.intervalHandle),clearTimeout(i.exponentialTimeoutHandle),clearTimeout(i.webSocketInitCheckerTimeoutId),N.intervalHandle=null},Q=function(){q.consecutiveFailedSubscribeAttempts=0,q.consecutiveNoResponseRequest=0,clearInterval(q.responseCheckIntervalId),clearInterval(q.reSubscribeIntervalId)},Z=function(){o.connectWebSocketRetryCount=0,o.connectionAttemptStartTime=null,o.noOpenConnectionsTimestamp=null},ee=function(){j.connected();try{t.advancedLog(f),fe(t.info(f)),H("webSocketOnOpen"),null!==i.connState&&i.connState!==O||B(M.connectionGain),i.connState="connected";var e=Date.now();B(M.connectionOpen,{connectWebSocketRetryCount:o.connectWebSocketRetryCount,connectionAttemptStartTime:o.connectionAttemptStartTime,noOpenConnectionsTimestamp:o.noOpenConnectionsTimestamp,connectionEstablishedTime:e,timeToConnect:e-o.connectionAttemptStartTime,timeWithoutConnection:o.noOpenConnectionsTimestamp?e-o.noOpenConnectionsTimestamp:null}),Z(),$(),X().openTimestamp=Date.now(),0===U.subscribed.size&&G(r.secondary)&&se(r.primary,"[Primary WebSocket] Closing WebSocket"),(U.subscribed.size>0||U.pending.size>0)&&(G(r.secondary)&&fe(t.info("Subscribing secondary websocket to topics of primary websocket")),U.subscribed.forEach((function(e){U.subscriptionHistory.add(e),U.pending.add(e)})),U.subscribed.clear(),oe()),Y(),null!==N.intervalHandle&&clearInterval(N.intervalHandle),N.intervalHandle=setInterval(Y,1e4);var n=1e3*D.connConfig.webSocketTransport.transportLifeTimeInSeconds;fe(t.debug("Scheduling WebSocket manager reconnection, after delay "+n+" ms")),i.lifeTimeTimeoutHandle=setTimeout((function(){fe(t.debug("Starting scheduled WebSocket manager reconnection")),pe()}),n)}catch(e){fe(t.error("Error after establishing WebSocket connection",e))}},te=function(e){H("webSocketOnError"),t.advancedLog(g,JSON.stringify(e)),fe(t.error(g,JSON.stringify(e))),j.getIsConnected()?pe():j.retry()},ne=function(e){var n=JSON.parse(e.data);switch(n.topic){case x:if(fe(t.debug("Subscription Message received from webSocket server",e.data)),q.requestCompleted=!0,q.consecutiveNoResponseRequest=0,"success"===n.content.status)q.consecutiveFailedSubscribeAttempts=0,n.content.topics.forEach((function(e){U.subscriptionHistory.delete(e),U.pending.delete(e),U.subscribed.add(e)})),0===U.subscriptionHistory.size?G(r.secondary)&&(fe(t.info("Successfully subscribed secondary websocket to all topics of primary websocket")),se(r.primary,"[Primary WebSocket] Closing WebSocket")):oe(),B(M.subscriptionUpdate,n);else{if(clearInterval(q.reSubscribeIntervalId),++q.consecutiveFailedSubscribeAttempts,5===q.consecutiveFailedSubscribeAttempts)return B(M.subscriptionFailure,n),void(q.consecutiveFailedSubscribeAttempts=0);q.reSubscribeIntervalId=setInterval((function(){oe()}),500)}break;case A:fe(t.debug("Heartbeat response received")),N.pendingResponse=!1,null===N.intervalHandle&&(N.intervalHandle=setInterval(Y,1e4));break;case R:fe(t.debug("aws/ping deep heartbeat received")),L.pendingResponse=!1,200===n.statusCode?B(M.deepHeartbeatSuccess,{timestamp:Date.now()}):B(M.deepHeartbeatFailure,{timestamp:Date.now(),statusCode:n.statusCode,statusContent:n.statusContent});break;default:if(n.topic){if(t.advancedLog(k,n.topic),fe(t.debug(k+n.topic)),G(r.primary)&&G(r.secondary)&&0===U.subscriptionHistory.size&&this===r.primary)return void fe(t.warn("Ignoring Message for Topic "+n.topic+", to avoid duplicates"));if(0===M.allMessage.size&&0===M.topic.size)return void fe(t.warn("No registered callback listener for Topic",n.topic));t.advancedLog("WebsocketManager invoke callbacks for topic success ",n.topic),B(M.allMessage,n),M.topic.has(n.topic)&&B(M.topic.get(n.topic),n)}else n.message?(t.advancedLog(I,n),fe(t.warn(I,n)),B(M.topicFailure,{timestamp:Date.now(),errorMessage:n.message,connectionId:n.connectionId,requestId:n.requestId})):(t.advancedLog(_,n),fe(t.warn(_,n)))}},oe=function e(){if(q.consecutiveNoResponseRequest>3)return fe(t.warn("Ignoring subscribePendingTopics since we have exhausted max subscription retries with no response")),void B(M.subscriptionFailure,P.getSubscriptionResponse(x,!1,Array.from(U.pending)));J()?0!==Array.from(U.pending).length&&(clearInterval(q.responseCheckIntervalId),X().send(ue(x,{topics:Array.from(U.pending)})),q.requestCompleted=!1,q.responseCheckIntervalId=setInterval((function(){q.requestCompleted||(++q.consecutiveNoResponseRequest,e())}),1e3)):fe(t.warn("Ignoring subscribePendingTopics call since Default WebSocket is not open"))},se=function(e,n){V(e,WebSocket.CONNECTING)||V(e,WebSocket.OPEN)?e.close(1e3,n):fe(t.warn("Ignoring WebSocket Close request, WebSocket State: "+z(e)))},ae=function(e){se(r.primary,"[Primary] WebSocket "+e),se(r.secondary,"[Secondary] WebSocket "+e)},ce=function(e){$(),Q(),t.advancedLog(b,e),fe(t.error(b)),i.websocketInitFailed=!0,ae("Terminating WebSocket Manager"),clearInterval(W),B(M.initFailure,{connectWebSocketRetryCount:o.connectWebSocketRetryCount,connectionAttemptStartTime:o.connectionAttemptStartTime,reason:e}),Z()},ue=function(e,t){return JSON.stringify({topic:e,content:t})},le=function(e){return!!(P.isObject(e)&&P.isObject(e.webSocketTransport)&&P.isNonEmptyString(e.webSocketTransport.url)&&P.validWSUrl(e.webSocketTransport.url)&&1e3*e.webSocketTransport.transportLifeTimeInSeconds>=3e5)||(fe(t.error("Invalid WebSocket Connection Configuration",e)),!1)},pe=function(){if(!P.isNetworkOnline())return t.advancedLog(u),void fe(t.info(u));if(i.websocketInitFailed)fe(t.debug("WebSocket Init had failed, ignoring this getWebSocketConnConfig request"));else{if(D.promiseCompleted)return $(),t.advancedLog(w),fe(t.info(w)),o.connectionAttemptStartTime=o.connectionAttemptStartTime||Date.now(),D.promiseCompleted=!1,D.promiseHandle=M.getWebSocketTransport(),D.promiseHandle.then((function(e){return D.promiseCompleted=!0,t.advancedLog(E),fe(t.debug(E,e)),le(e)?(D.connConfig=e,D.connConfig.urlConnValidTime=Date.now()+85e3,de()):(ce("Invalid WebSocket connection configuration: "+e),{webSocketConnectionFailed:!0})}),(function(e){return D.promiseCompleted=!0,t.advancedLog(S),fe(t.error(S,e)),P.isNetworkFailure(e)?(t.advancedLog(C+JSON.stringify(e)),fe(t.info(C+JSON.stringify(e))),j.retry()):ce("Failed to fetch webSocket connection configuration: "+JSON.stringify(e)),{webSocketConnectionFailed:!0}}));fe(t.debug("There is an ongoing getWebSocketConnConfig request, this request will be ignored"))}},de=function(){if(i.websocketInitFailed)return fe(t.info("web-socket initializing had failed, aborting re-init")),{webSocketConnectionFailed:!0};if(!P.isNetworkOnline())return fe(t.warn("System is offline aborting web-socket init")),{webSocketConnectionFailed:!0};t.advancedLog(T),fe(t.info(T)),H("initWebSocket");try{if(le(D.connConfig)){var e=null;return G(r.primary)?(fe(t.debug("Primary Socket connection is already open")),V(r.secondary,WebSocket.CONNECTING)||(fe(t.debug("Establishing a secondary web-socket connection")),j.numAttempts=0,r.secondary=he()),e=r.secondary):(V(r.primary,WebSocket.CONNECTING)||(fe(t.debug("Establishing a primary web-socket connection")),r.primary=he()),e=r.primary),i.webSocketInitCheckerTimeoutId=setTimeout((function(){G(e)||function(){o.connectWebSocketRetryCount++;var e=P.addJitter(i.exponentialBackOffTime,.3);Date.now()+e<=D.connConfig.urlConnValidTime?(t.advancedLog(v),fe(t.debug(v+e+" ms")),i.exponentialTimeoutHandle=setTimeout((function(){return de()}),e),i.exponentialBackOffTime*=2):(t.advancedLog(y),fe(t.warn(y)),pe())}()}),1e3),{webSocketConnectionFailed:!1}}}catch(e){return fe(t.error("Error Initializing web-socket-manager",e)),ce("Failed to initialize new WebSocket: "+e.message),{webSocketConnectionFailed:!0}}},he=function(){var e=new WebSocket(D.connConfig.webSocketTransport.url);return e.addEventListener("open",ee),e.addEventListener("message",ne),e.addEventListener("error",te),e.addEventListener("close",(function(n){return function(e,n){t.advancedLog(m,JSON.stringify(e)),fe(t.info(m,JSON.stringify(e))),H("webSocketOnClose before-cleanup"),B(M.connectionClose,{openTimestamp:n.openTimestamp,closeTimestamp:Date.now(),connectionDuration:Date.now()-n.openTimestamp,code:e.code,reason:e.reason}),K(r.primary)&&(r.primary=null),K(r.secondary)&&(r.secondary=null),i.reconnectWebSocket&&(G(r.primary)||G(r.secondary)?K(r.primary)&&G(r.secondary)&&(fe(t.info("[Primary] WebSocket Cleanly Closed")),r.primary=r.secondary,r.secondary=null):(fe(t.warn("Neither primary websocket and nor secondary websocket have open connections, attempting to re-establish connection")),i.connState===O?fe(t.info("Ignoring connectionLost callback invocation")):(B(M.connectionLost,{openTimestamp:n.openTimestamp,closeTimestamp:Date.now(),connectionDuration:Date.now()-n.openTimestamp,code:e.code,reason:e.reason}),o.noOpenConnectionsTimestamp=Date.now()),i.connState=O,pe()),H("webSocketOnClose after-cleanup"))}(n,e)})),e},fe=function(e){return e&&"function"==typeof e.sendInternalLogToServer&&e.sendInternalLogToServer(),e};this.init=function(e){if(P.assertTrue(P.isFunction(e),"transportHandle must be a function"),null===M.getWebSocketTransport)return M.getWebSocketTransport=e,pe();fe(t.warn("Web Socket Manager was already initialized"))},this.onInitFailure=function(e){return t.advancedLog("Initializing Websocket Manager Failure callback registered"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.initFailure.add(e),i.websocketInitFailed&&e(),function(){return M.initFailure.delete(e)}},this.onConnectionOpen=function(e){return t.advancedLog("Websocket connection open callback registered"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.connectionOpen.add(e),function(){return M.connectionOpen.delete(e)}},this.onConnectionClose=function(e){return t.advancedLog("Websocket connection close callback registered"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.connectionClose.add(e),function(){return M.connectionClose.delete(e)}},this.onConnectionGain=function(e){return t.advancedLog("Websocket connection gain callback registered"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.connectionGain.add(e),J()&&e(),function(){return M.connectionGain.delete(e)}},this.onConnectionLost=function(e){return t.advancedLog("Websocket connection lost callback registered"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.connectionLost.add(e),i.connState===O&&e(),function(){return M.connectionLost.delete(e)}},this.onSubscriptionUpdate=function(e){return P.assertTrue(P.isFunction(e),"cb must be a function"),M.subscriptionUpdate.add(e),function(){return M.subscriptionUpdate.delete(e)}},this.onSubscriptionFailure=function(e){return t.advancedLog("Websocket subscription failure callback registered"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.subscriptionFailure.add(e),function(){return M.subscriptionFailure.delete(e)}},this.onMessage=function(e,t){return P.assertNotNull(e,"topicName"),P.assertTrue(P.isFunction(t),"cb must be a function"),M.topic.has(e)?M.topic.get(e).add(t):M.topic.set(e,new Set([t])),function(){return M.topic.get(e).delete(t)}},this.onAllMessage=function(e){return P.assertTrue(P.isFunction(e),"cb must be a function"),M.allMessage.add(e),function(){return M.allMessage.delete(e)}},this.subscribeTopics=function(e){P.assertNotNull(e,"topics"),P.assertIsList(e),e.forEach((function(e){U.subscribed.has(e)||U.pending.add(e)})),q.consecutiveNoResponseRequest=0,oe()},this.sendMessage=function(e){if(P.assertIsObject(e,"payload"),void 0===e.topic||F.has(e.topic))fe(t.warn("Cannot send message, Invalid topic",e));else{try{e=JSON.stringify(e)}catch(n){return void fe(t.warn("Error stringify message",e))}J()?X().send(e):fe(t.warn("Cannot send message, web socket connection is not open"))}},this.deepHeartbeatHandler=function(){e=!0},this.onDeepHeartbeatSuccess=function(e){return t.advancedLog("Deep Heartbeat is successful. WebSocketManager has received 200 response from aws/ping"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.deepHeartbeatSuccess.add(e),function(){return M.deepHeartbeatSuccess.delete(e)}},this.onDeepHeartbeatFailure=function(e){return t.advancedLog("Deep Heartbeat failed. WebSocketManager does not receive 200 response from aws/ping"),P.assertTrue(P.isFunction(e),"cb must be a function"),M.deepHeartbeatFailure.add(e),function(){return M.deepHeartbeatFailure.delete(e)}},this.onTopicFailure=function(e){return t.advancedLog("Generic topic failed."),P.assertTrue(P.isFunction(e),"cb must be a function"),M.topicFailure.add(e),function(){return M.topicFailure.delete(e)}},this.closeWebSocket=function(){$(),Q(),i.reconnectWebSocket=!1,clearInterval(W),ae("User request to close WebSocket")},this.terminateWebSocketManager=ce},ae={create:function(e){return ie||(ie=new Q(e)),ie.hasLogMetaData()||ie.setLogMetaData(e),e||console.info("********Missing metaData for logs from websocketManager: initialize websocketManager using create(metaData)*******"),new se},setGlobalConfig:function(e){var t=e&&e.loggerConfig;ie||(ie=new Q),ie.updateLoggerConfig(t);var n=e&&e.webSocketManagerConfig,r=n&&n.isNetworkOnline;r&&"function"==typeof r&&(P.isNetworkOnline=r)},LogLevel:$,Logger:J};oe.connect=oe.connect||{},connect.WebSocketManager=ae;var ce=ae;t.default=ce}]);var ae=connect.WebSocketManager;connect.WebSocketManager=se||ae;const ce=ae;class ue extends Y{constructor(e,t,n,r,i,o){super(n,i),this.customerConnection=!r,this.customerConnection?(ue.customerBaseInstances[e]||(ue.customerBaseInstances[e]=new le(n,void 0,i,o)),this.baseInstance=ue.customerBaseInstances[e]):(ue.agentBaseInstance&&ue.agentBaseInstance.getWebsocketManager()!==r&&(ue.agentBaseInstance.end(),ue.agentBaseInstance=null),ue.agentBaseInstance||(ue.agentBaseInstance=new le(void 0,r,i)),this.baseInstance=ue.agentBaseInstance),this.contactId=e,this.initialContactId=t,this.status=null,this.eventBus=new ee,this.subscriptions=[this.baseInstance.onEnded(this.handleEnded.bind(this)),this.baseInstance.onConnectionGain(this.handleConnectionGain.bind(this)),this.baseInstance.onConnectionLost(this.handleConnectionLost.bind(this)),this.baseInstance.onMessage(this.handleMessage.bind(this))]}start(){return super.start(),this.baseInstance.start()}end(){super.end(),this.eventBus.unsubscribeAll(),this.subscriptions.forEach((e=>e())),this.status=V,this.tryCleanup()}tryCleanup(){this.customerConnection&&!this.baseInstance.hasMessageSubscribers()&&(this.baseInstance.end(),delete ue.customerBaseInstances[this.contactId])}getStatus(){return this.status||this.baseInstance.getStatus()}onEnded(e){return this.eventBus.subscribe(X,e)}handleEnded(){this.eventBus.trigger(X,{})}onConnectionGain(e){return this.eventBus.subscribe(K,e)}handleConnectionGain(){this.eventBus.trigger(K,{})}onConnectionLost(e){return this.eventBus.subscribe(G,e)}handleConnectionLost(){this.eventBus.trigger(G,{})}onMessage(e){return this.eventBus.subscribe(J,e)}handleMessage(e){e.InitialContactId!==this.initialContactId&&e.ContactId!==this.contactId&&e.Type!==y.MESSAGE_METADATA||this.eventBus.trigger(J,e)}}ue.customerBaseInstances={},ue.agentBaseInstance=null;class le{constructor(e,t,n,r){this.status=W,this.eventBus=new ee,this.logger=k.getLogger({prefix:"ChatJS-LPCConnectionHelperBase",logMetaData:n}),this.initialConnectionDetails=r,this.initWebsocketManager(t,e,n)}initWebsocketManager(e,t,n){if(this.websocketManager=e||ce.create(n),this.websocketManager.subscribeTopics(["aws/chat"]),this.subscriptions=[this.websocketManager.onMessage("aws/chat",this.handleMessage.bind(this)),this.websocketManager.onConnectionGain(this.handleConnectionGain.bind(this)),this.websocketManager.onConnectionLost(this.handleConnectionLost.bind(this)),this.websocketManager.onInitFailure(this.handleEnded.bind(this))],this.logger.info("Initializing websocket manager."),!e){var r=(new Date).getTime();this.websocketManager.init((()=>this._getConnectionDetails(t,this.initialConnectionDetails,r).then((e=>(this.initialConnectionDetails=null,e)))))}}_getConnectionDetails(e,t,n){if(null!==t&&"object"==typeof t&&t.expiry&&t.connectionTokenExpiry){var r={expiry:t.expiry,transportLifeTimeInSeconds:E};return this.logger.debug("Websocket manager initialized. Connection details:",r),Promise.resolve({webSocketTransport:{url:t.url,expiry:t.expiry,transportLifeTimeInSeconds:E}})}return e.fetchConnectionDetails().then((e=>{var t={webSocketTransport:{url:e.url,expiry:e.expiry,transportLifeTimeInSeconds:E}},r={expiry:e.expiry,transportLifeTimeInSeconds:E};return this.logger.debug("Websocket manager initialized. Connection details:",r),this._addWebsocketInitCSMMetric(n),t})).catch((e=>{throw this.logger.error("Initializing Websocket Manager failed:",e),this._addWebsocketInitCSMMetric(n,!0),e}))}_addWebsocketInitCSMMetric(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];ne.addLatencyMetric(v,e,u),ne.addCountAndErrorMetric(v,u,t)}end(){this.websocketManager.closeWebSocket&&this.websocketManager.closeWebSocket(),this.eventBus.unsubscribeAll(),this.subscriptions.forEach((e=>e())),this.logger.info("Websocket closed. All event subscriptions are cleared.")}start(){return this.status===W&&(this.status=B),Promise.resolve({websocketStatus:this.status})}onEnded(e){return this.eventBus.subscribe(X,e)}handleEnded(){this.status=V,this.eventBus.trigger(X,{}),ne.addCountMetric("WebsocketEnded",u),this.logger.info("Websocket connection ended.")}onConnectionGain(e){return this.eventBus.subscribe(K,e)}handleConnectionGain(){this.status=z,this.eventBus.trigger(K,{}),ne.addCountMetric("WebsocketConnectionGained",u),this.logger.info("Websocket connection gained.")}onConnectionLost(e){return this.eventBus.subscribe(G,e)}handleConnectionLost(){this.status=H,this.eventBus.trigger(G,{}),ne.addCountMetric("WebsocketConnectionLost",u),this.logger.info("Websocket connection lost.")}onMessage(e){return this.eventBus.subscribe(J,e)}handleMessage(e){var t;try{t=JSON.parse(e.content),this.eventBus.trigger(J,t),ne.addCountMetric("WebsocketIncomingMessage",u),this.logger.info("this.eventBus trigger Websocket incoming message",J,t)}catch(e){this._sendInternalLogToServer(this.logger.error("Wrong message format"))}}getStatus(){return this.status}getWebsocketManager(){return this.websocketManager}hasMessageSubscribers(){return this.eventBus.getSubscriptions(J).length>0}_sendInternalLogToServer(e){return e&&"function"==typeof e.sendInternalLogToServer&&e.sendInternalLogToServer(),e}}const pe=ue;function de(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,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class fe{constructor(e){this.logger=k.getLogger({prefix:"ChatJS-MessageReceiptUtil",logMetaData:e}),this.timeout=null,this.timeoutId=null,this.readSet=new Set,this.deliveredSet=new Set,this.readPromiseMap=new Map,this.deliveredPromiseMap=new Map,this.lastReadArgs=null,this.throttleInitialEventsToPrioritizeRead=null,this.throttleSendEventApiCall=null}isMessageReceipt(e,t){return-1!==[y.INCOMING_READ_RECEIPT,y.INCOMING_DELIVERED_RECEIPT].indexOf(e)||t.Type===y.MESSAGE_METADATA}getEventTypeFromMessageMetaData(e){return Array.isArray(e.Receipts)&&e.Receipts[0]&&e.Receipts[0].ReadTimestamp?y.INCOMING_READ_RECEIPT:e.Receipts[0].DeliveredTimestamp?y.INCOMING_DELIVERED_RECEIPT:null}shouldShowMessageReceiptForCurrentParticipantId(e,t){return e!==(t.MessageMetadata&&Array.isArray(t.MessageMetadata.Receipts)&&t.MessageMetadata.Receipts[0]&&t.MessageMetadata.Receipts[0].RecipientParticipantId)}prioritizeAndSendMessageReceipt(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i2?n-2:0),i=2;i{o.resolveReadPromises(s.messageId,e[0]),o.resolveDeliveredPromises(u,e[0])}))}}catch(e){o.logger.error("send message receipt failed",e),o.resolveReadPromises(u,e,!0),o.resolveDeliveredPromises(u,e,!0)}},o.timeoutId||(o.timeoutId=setTimeout((function(){o.timeoutId=null,o.throttleSendEventApiCall()}),a))}resolveDeliveredPromises(e,t,n){return this.resolvePromises(this.deliveredPromiseMap,e,t,n)}resolveReadPromises(e,t,n){return this.resolvePromises(this.readPromiseMap,e,t,n)}resolvePromises(e,t,n,r){var i=Array.from(e.keys()),o=i.indexOf(t);if(-1!==o)for(var s=0;s<=o;s++){var a,c=null===(a=e.get(i[s]))||void 0===a?void 0:a[r?1:0];"function"==typeof c&&(e.delete(i[s]),c(n))}else this.logger.debug("Promise for messageId: ".concat(t," already resolved"))}rehydrateReceiptMappers(e,t){var n=this;return r=>{if(n.logger.debug("rehydrate chat",null==r?void 0:r.data),t){var{Transcript:i=[]}=(null==r?void 0:r.data)||{};i.forEach((e=>{if((null==e?void 0:e.Type)===y.MESSAGE_METADATA){var t,n,r,i=null==e||null===(t=e.MessageMetadata)||void 0===t||null===(n=t.Receipts)||void 0===n?void 0:n[0],o=null==e||null===(r=e.MessageMetadata)||void 0===r?void 0:r.MessageId;null!=i&&i.ReadTimestamp&&this.readSet.add(o),null!=i&&i.DeliveredTimestamp&&this.deliveredSet.add(o)}}))}return e(r)}}}class me{constructor(e){this.argsValidator=new F,this.pubsub=new ee,this.sessionType=e.sessionType,this.getConnectionToken=e.chatDetails.getConnectionToken,this.connectionDetails=e.chatDetails.connectionDetails,this.initialContactId=e.chatDetails.initialContactId,this.contactId=e.chatDetails.contactId,this.participantId=e.chatDetails.participantId,this.chatClient=e.chatClient,this.participantToken=e.chatDetails.participantToken,this.websocketManager=e.websocketManager,this._participantDisconnected=!1,this.sessionMetadata={},this.logger=k.getLogger({prefix:"ChatJS-ChatController",logMetaData:e.logMetaData}),this.logMetaData=e.logMetaData,this.messageReceiptUtil=new fe(e.logMetaData),this.logger.info("Browser info:",window.navigator.userAgent)}subscribe(e,t){this.pubsub.subscribe(e,t),this._sendInternalLogToServer(this.logger.info("Subscribed successfully to event:",e))}handleRequestSuccess(e,t,n,r){return i=>{var o=r?[{name:"ContentType",value:r}]:[];return ne.addLatencyMetricWithStartTime(t,n,u,o),ne.addCountAndErrorMetric(t,u,!1,o),i.metadata=e,i}}handleRequestFailure(e,t,n,r){return i=>{var o=r?[{name:"ContentType",value:r}]:[];return ne.addLatencyMetricWithStartTime(t,n,u,o),ne.addCountAndErrorMetric(t,u,!0,o),i.metadata=e,Promise.reject(i)}}sendMessage(e){var t=(new Date).getTime(),n=e.metadata||null;this.argsValidator.validateSendMessage(e);var r=this.connectionHelper.getConnectionToken();return this.chatClient.sendMessage(r,e.message,e.contentType).then(this.handleRequestSuccess(n,l,t,e.contentType)).catch(this.handleRequestFailure(n,l,t,e.contentType))}sendAttachment(e){var t=(new Date).getTime(),n=e.metadata||null,r=this.connectionHelper.getConnectionToken();return this.chatClient.sendAttachment(r,e.attachment,e.metadata).then(this.handleRequestSuccess(n,p,t,e.attachment.type)).catch(this.handleRequestFailure(n,p,t,e.attachment.type))}downloadAttachment(e){var t=(new Date).getTime(),n=e.metadata||null,r=this.connectionHelper.getConnectionToken();return this.chatClient.downloadAttachment(r,e.attachmentId).then(this.handleRequestSuccess(n,d,t)).catch(this.handleRequestFailure(n,d,t))}sendEvent(e){var t=(new Date).getTime(),n=e.metadata||null;this.argsValidator.validateSendEvent(e);var r=this.connectionHelper.getConnectionToken(),i=e.content||null,o=ge(e.contentType),c="string"==typeof i?JSON.parse(i):i;return this.messageReceiptUtil.isMessageReceipt(o,e)?s.isFeatureEnabled(a)&&c.messageId?this.messageReceiptUtil.prioritizeAndSendMessageReceipt(this.chatClient,this.chatClient.sendEvent,r,e.contentType,i,o,s.getMessageReceiptsThrottleTime()).then(this.handleRequestSuccess(n,h,t,e.contentType)).catch(this.handleRequestFailure(n,h,t,e.contentType)):(this.logger.warn("Ignoring messageReceipt: ".concat(s.isFeatureEnabled(a)&&"missing messageId"),e),Promise.reject({errorMessage:"Ignoring messageReceipt: ".concat(s.isFeatureEnabled(a)&&"missing messageId"),data:e})):this.chatClient.sendEvent(r,e.contentType,i).then(this.handleRequestSuccess(n,h,t,e.contentType)).catch(this.handleRequestFailure(n,h,t,e.contentType))}getTranscript(e){var t=(new Date).getTime(),n=e.metadata||null,r={startPosition:e.startPosition||{},scanDirection:e.scanDirection||"BACKWARD",sortOrder:e.sortOrder||"ASCENDING",maxResults:e.maxResults||15};e.nextToken&&(r.nextToken=e.nextToken),e.contactId&&(r.contactId=e.contactId);var i=this.connectionHelper.getConnectionToken();return this.chatClient.getTranscript(i,r).then(this.messageReceiptUtil.rehydrateReceiptMappers(this.handleRequestSuccess(n,f,t),s.isFeatureEnabled(a))).catch(this.handleRequestFailure(n,f,t))}connect(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sessionMetadata=e.metadata||null,this.argsValidator.validateConnectChat(e);var t=this._getConnectionDetailsProvider();return t.fetchConnectionDetails().then((e=>this._initConnectionHelper(t,e))).then((e=>this._onConnectSuccess(e,t))).catch((e=>this._onConnectFailure(e)))}_initConnectionHelper(e,t){return this.connectionHelper=new pe(this.contactId,this.initialContactId,e,this.websocketManager,this.logMetaData,t),this.connectionHelper.onEnded(this._handleEndedConnection.bind(this)),this.connectionHelper.onConnectionLost(this._handleLostConnection.bind(this)),this.connectionHelper.onConnectionGain(this._handleGainedConnection.bind(this)),this.connectionHelper.onMessage(this._handleIncomingMessage.bind(this)),this.connectionHelper.start()}_getConnectionDetailsProvider(){return new ie(this.participantToken,this.chatClient,this.sessionType,this.getConnectionToken)}_handleEndedConnection(e){this._forwardChatEvent(y.CONNECTION_BROKEN,{data:e,chatDetails:this.getChatDetails()}),this.breakConnection()}_handleLostConnection(e){this._forwardChatEvent(y.CONNECTION_LOST,{data:e,chatDetails:this.getChatDetails()})}_handleGainedConnection(e){this._forwardChatEvent(y.CONNECTION_ESTABLISHED,{data:e,chatDetails:this.getChatDetails()})}_handleIncomingMessage(e){try{var t=ge(null==e?void 0:e.ContentType);if(this.messageReceiptUtil.isMessageReceipt(t,e)&&(!(t=this.messageReceiptUtil.getEventTypeFromMessageMetaData(null==e?void 0:e.MessageMetadata))||!this.messageReceiptUtil.shouldShowMessageReceiptForCurrentParticipantId(this.participantId,e)))return;this._forwardChatEvent(t,{data:e,chatDetails:this.getChatDetails()}),e.ContentType===b.chatEnded&&(this._forwardChatEvent(y.CHAT_ENDED,{data:null,chatDetails:this.getChatDetails()}),this.breakConnection())}catch(t){this._sendInternalLogToServer(this.logger.error("Error occured while handling message from Connection. eventData:",e," Causing exception:",t))}}_forwardChatEvent(e,t){this.pubsub.triggerAsync(e,t)}_onConnectSuccess(e,t){var n;this._sendInternalLogToServer(this.logger.info("Connect successful!")),console.warn("onConnectionSuccess response",e);var r={_debug:e,connectSuccess:!0,connectCalled:!0,metadata:this.sessionMetadata},i=Object.assign({chatDetails:this.getChatDetails()},r);this.pubsub.triggerAsync(y.CONNECTION_ESTABLISHED,i);var o=null===(n=t.getConnectionDetails())||void 0===n?void 0:n.connectionAcknowledged;return this._shouldAcknowledgeContact()&&!o&&(ne.addAgentCountMetric("CREATE_PARTICIPANT_CONACK_CALL_COUNT",1),t.callCreateParticipantConnection({Type:!1,ConnectParticipant:!0}).catch((e=>{this.logger.warn("ConnectParticipant failed to acknowledge Agent connection in CreateParticipantConnection: ",e),ne.addAgentCountMetric("CREATE_PARTICIPANT_CONACK_FAILURE",1)}))),console.warn("onConnectionSuccess responseObject",r),r}_onConnectFailure(e){var t={_debug:e,connectSuccess:!1,connectCalled:!0,metadata:this.sessionMetadata};return this._sendInternalLogToServer(this.logger.error("Connect Failed. Error: ",t)),Promise.reject(t)}_shouldAcknowledgeContact(){return this.sessionType===c.AGENT}breakConnection(){return this.connectionHelper?this.connectionHelper.end():Promise.resolve()}cleanUpOnParticipantDisconnect(){this.pubsub.unsubscribeAll()}disconnectParticipant(){var e=(new Date).getTime(),t=this.connectionHelper.getConnectionToken();return this.chatClient.disconnectParticipant(t).then((t=>(this._sendInternalLogToServer(this.logger.info("Disconnect participant successfully")),this._participantDisconnected=!0,this.cleanUpOnParticipantDisconnect(),this.breakConnection(),ne.addLatencyMetricWithStartTime(m,e,u),ne.addCountAndErrorMetric(m,u,!1),t)),(t=>(this._sendInternalLogToServer(this.logger.error("Disconnect participant failed. Error:",t)),ne.addLatencyMetricWithStartTime(m,e,u),ne.addCountAndErrorMetric(m,u,!0),Promise.reject(t))))}getChatDetails(){return{initialContactId:this.initialContactId,contactId:this.contactId,participantId:this.participantId,participantToken:this.participantToken,connectionDetails:this.connectionDetails}}_convertConnectionHelperStatus(e){switch(e){case W:return"NeverEstablished";case B:return"Establishing";case V:case H:return"Broken";case z:return"Established"}this._sendInternalLogToServer(this.logger.error("Reached invalid state. Unknown connectionHelperStatus: ",e))}getConnectionStatus(){return this._convertConnectionHelperStatus(this.connectionHelper.getStatus())}_sendInternalLogToServer(e){return e&&"function"==typeof e.sendInternalLogToServer&&e.sendInternalLogToServer(),e}}var ge=e=>w[e]||w.default;class ve{createAgentChatController(e,n){throw new t("createAgentChatController in ChatControllerFactory.")}createCustomerChatController(e,n){throw new t("createCustomerChatController in ChatControllerFactory.")}}class ye{constructor(e){this.controller=e}onMessage(e){this.controller.subscribe(y.INCOMING_MESSAGE,e)}onTyping(e){this.controller.subscribe(y.INCOMING_TYPING,e)}onReadReceipt(e){this.controller.subscribe(y.INCOMING_READ_RECEIPT,e)}onDeliveredReceipt(e){this.controller.subscribe(y.INCOMING_DELIVERED_RECEIPT,e)}onConnectionBroken(e){this.controller.subscribe(y.CONNECTION_BROKEN,e)}onConnectionEstablished(e){this.controller.subscribe(y.CONNECTION_ESTABLISHED,e)}onEnded(e){this.controller.subscribe(y.CHAT_ENDED,e)}onParticipantIdle(e){this.controller.subscribe(y.PARTICIPANT_IDLE,e)}onParticipantReturned(e){this.controller.subscribe(y.PARTICIPANT_RETURNED,e)}onAutoDisconnection(e){this.controller.subscribe(y.AUTODISCONNECTION,e)}onConnectionLost(e){this.controller.subscribe(y.CONNECTION_LOST,e)}sendMessage(e){return this.controller.sendMessage(e)}sendAttachment(e){return this.controller.sendAttachment(e)}downloadAttachment(e){return this.controller.downloadAttachment(e)}connect(e){return this.controller.connect(e)}sendEvent(e){return this.controller.sendEvent(e)}getTranscript(e){return this.controller.getTranscript(e)}getChatDetails(){return this.controller.getChatDetails()}}class be extends ye{constructor(e){super(e)}cleanUpOnParticipantDisconnect(){return this.controller.cleanUpOnParticipantDisconnect()}}class we extends ye{constructor(e){super(e)}disconnectParticipant(){return this.controller.disconnectParticipant()}}var Ee=new class extends ve{constructor(){super(),this.argsValidator=new F}createChatSession(e,t,n,i){var o=this._createChatController(e,t,n,i);if(e===c.AGENT)return new be(o);if(e===c.CUSTOMER)return new we(o);throw new r("Unkown value for session type, Allowed values are: "+Object.values(c),e)}_createChatController(e,t,n,r){var i=this.argsValidator.normalizeChatDetails(t),o={contactId:i.contactId,participantId:i.participantId,sessionType:e},s=q.getCachedClient(n,o);return new me({sessionType:e,chatDetails:i,chatClient:s,websocketManager:r,logMetaData:o})}},Se=e=>{s.setFeatureFlag(e)},Ce={create:e=>{var t=e.options||{},n=e.type||c.AGENT;return s.updateStageRegion(t),e.disableCSM||n!==c.CUSTOMER||ne.loadCsmScriptAndExecute(),Ee.createChatSession(n,e.chatDetails,t,e.websocketManager)},setGlobalConfig:e=>{var t,n,r,i,o=e.loggerConfig,c=e.csmConfig;s.update(e),ce.setGlobalConfig(e),k.updateLoggerConfig(o),c&&ne.updateCsmConfig(c),!1!==(null===(t=e.features)||void 0===t||null===(n=t.messageReceipts)||void 0===n?void 0:n.shouldSendMessageReceipts)&&(console.warn("enabling message-receipts by default; to disable set config.features.messageReceipts.shouldSendMessageReceipts = false"),Se(a),s.updateThrottleTime(null===(r=e.features)||void 0===r||null===(i=r.messageReceipts)||void 0===i?void 0:i.thorttleTime))},LogLevel:I,Logger:class{debug(e){}info(e){}warn(e){}error(e){}advancedLog(e){}},SessionTypes:c,csmService:ne,setFeatureFlag:Se},Te=void 0!==Te?Te:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};Te.connect=Te.connect||{},connect.ChatSession=Ce,connect.LogManager=k,connect.LogLevel=I,connect.csmService=Ce.csmService})()})(); //# sourceMappingURL=amazon-connect-chat.js.map \ No newline at end of file diff --git a/dist/amazon-connect-chat.js.map b/dist/amazon-connect-chat.js.map index d9d5ccd..bf07246 100644 --- a/dist/amazon-connect-chat.js.map +++ b/dist/amazon-connect-chat.js.map @@ -1 +1 @@ -{"version":3,"file":"amazon-connect-chat.js","mappings":"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ACqtB,WAAW,CAAC,EAAE,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,SAAS,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,SAAS,WAAW,WAAW,WAAW,SAAS,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,SAAS,WAAW,WAAW,WAAW,SAAS,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS,WAAW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","sources":["webpack://amazon-connect-chatjs/./src/client/aws-sdk-connectparticipant.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_Symbol.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_baseGetTag.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_baseTrim.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_freeGlobal.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_getRawTag.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_objectToString.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_root.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_trimmedEndIndex.js","webpack://amazon-connect-chatjs/./node_modules/lodash/debounce.js","webpack://amazon-connect-chatjs/./node_modules/lodash/isObject.js","webpack://amazon-connect-chatjs/./node_modules/lodash/isObjectLike.js","webpack://amazon-connect-chatjs/./node_modules/lodash/isSymbol.js","webpack://amazon-connect-chatjs/./node_modules/lodash/now.js","webpack://amazon-connect-chatjs/./node_modules/lodash/throttle.js","webpack://amazon-connect-chatjs/./node_modules/lodash/toNumber.js","webpack://amazon-connect-chatjs/./node_modules/sprintf-js/src/sprintf.js","webpack://amazon-connect-chatjs/webpack/bootstrap","webpack://amazon-connect-chatjs/webpack/runtime/amd options","webpack://amazon-connect-chatjs/webpack/runtime/compat get default export","webpack://amazon-connect-chatjs/webpack/runtime/define property getters","webpack://amazon-connect-chatjs/webpack/runtime/hasOwnProperty shorthand","webpack://amazon-connect-chatjs/./src/core/exceptions.js","webpack://amazon-connect-chatjs/./src/globalConfig.js","webpack://amazon-connect-chatjs/./src/constants.js","webpack://amazon-connect-chatjs/./src/utils.js","webpack://amazon-connect-chatjs/./src/log.js","webpack://amazon-connect-chatjs/./src/client/client.js","webpack://amazon-connect-chatjs/./src/core/chatArgsValidator.js","webpack://amazon-connect-chatjs/./src/core/connectionHelpers/baseConnectionHelper.js","webpack://amazon-connect-chatjs/./src/core/eventbus.js","webpack://amazon-connect-chatjs/./src/configs/csmConfig.js","webpack://amazon-connect-chatjs/./src/service/csmService.js","webpack://amazon-connect-chatjs/./src/lib/connect-csm.js","webpack://amazon-connect-chatjs/./src/lib/connect-csm-worker.js","webpack://amazon-connect-chatjs/./src/core/connectionHelpers/connectionDetailsProvider.js","webpack://amazon-connect-chatjs/../../../../webpack/bootstrap","webpack://amazon-connect-chatjs/./src/core/connectionHelpers/LpcConnectionHelper.js","webpack://amazon-connect-chatjs/./src/core/MessageReceiptsUtil.js","webpack://amazon-connect-chatjs/./src/core/chatController.js","webpack://amazon-connect-chatjs/./src/core/chatSession.js","webpack://amazon-connect-chatjs/./src/index.js"],"sourcesContent":["// AWS SDK for JavaScript v2.772.0\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// License at https://sdk.amazonaws.com/js/BUNDLE_LICENSE.txt\n!function(){function e(t,r,n){function i(s,a){if(!r[s]){if(!t[s]){var u=\"function\"==typeof require&&require;if(!a&&u)return u(s,!0);if(o)return o(s,!0);var c=new Error(\"Cannot find module '\"+s+\"'\");throw c.code=\"MODULE_NOT_FOUND\",c}var l=r[s]={exports:{}};t[s][0].call(l.exports,function(e){return i(t[s][1][e]||e)},l,l.exports,e,t,r,n)}return r[s].exports}for(var o=\"function\"==typeof require&&require,s=0;s-1});var s=[\"[object Int8Array]\",\"[object Uint8Array]\",\"[object Uint8ClampedArray]\",\"[object Int16Array]\",\"[object Uint16Array]\",\"[object Int32Array]\",\"[object Uint32Array]\",\"[object Float32Array]\",\"[object Float64Array]\",\"[object DataView]\"];t.exports={isEmptyData:n,convertToBuffer:i}},{\"buffer/\":82}],13:[function(e,t,r){function n(e,t){this.hash=new e,this.outer=new e;var r=i(e,t),n=new Uint8Array(e.BLOCK_SIZE);n.set(r);for(var o=0;oe.BLOCK_SIZE){var n=new e;n.update(r),r=n.digest()}var i=new Uint8Array(e.BLOCK_SIZE);return i.set(r),i}var o=e(\"./browserHashUtils\");t.exports=n,n.prototype.update=function(e){if(o.isEmptyData(e)||this.error)return this;try{this.hash.update(o.convertToBuffer(e))}catch(e){this.error=e}return this},n.prototype.digest=function(e){return this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest(e)}},{\"./browserHashUtils\":12}],14:[function(e,t,r){function n(){this.state=[1732584193,4023233417,2562383102,271733878],this.buffer=new DataView(new ArrayBuffer(p)),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}function i(e,t,r,n,i,o){return((t=(t+e&4294967295)+(n+o&4294967295)&4294967295)<>>32-i)+r&4294967295}function o(e,t,r,n,o,s,a){return i(t&r|~t&n,e,t,o,s,a)}function s(e,t,r,n,o,s,a){return i(t&n|r&~n,e,t,o,s,a)}function a(e,t,r,n,o,s,a){return i(t^r^n,e,t,o,s,a)}function u(e,t,r,n,o,s,a){return i(r^(t|~n),e,t,o,s,a)}var c=e(\"./browserHashUtils\"),l=e(\"buffer/\").Buffer,p=64;t.exports=n,n.BLOCK_SIZE=p,n.prototype.update=function(e){if(c.isEmptyData(e))return this;if(this.finished)throw new Error(\"Attempted to update an already finished hash.\");var t=c.convertToBuffer(e),r=0,n=t.byteLength;for(this.bytesHashed+=n;n>0;)this.buffer.setUint8(this.bufferLength++,t[r++]),n--,this.bufferLength===p&&(this.hashBuffer(),this.bufferLength=0);return this},n.prototype.digest=function(e){if(!this.finished){var t=this,r=t.buffer,n=t.bufferLength,i=t.bytesHashed,o=8*i;if(r.setUint8(this.bufferLength++,128),n%p>=p-8){for(var s=this.bufferLength;s>>0,!0),r.setUint32(p-4,Math.floor(o/4294967296),!0),this.hashBuffer(),this.finished=!0}for(var a=new DataView(new ArrayBuffer(16)),s=0;s<4;s++)a.setUint32(4*s,this.state[s],!0);var u=new l(a.buffer,a.byteOffset,a.byteLength);return e?u.toString(e):u},n.prototype.hashBuffer=function(){var e=this,t=e.buffer,r=e.state,n=r[0],i=r[1],c=r[2],l=r[3];n=o(n,i,c,l,t.getUint32(0,!0),7,3614090360),l=o(l,n,i,c,t.getUint32(4,!0),12,3905402710),c=o(c,l,n,i,t.getUint32(8,!0),17,606105819),i=o(i,c,l,n,t.getUint32(12,!0),22,3250441966),n=o(n,i,c,l,t.getUint32(16,!0),7,4118548399),l=o(l,n,i,c,t.getUint32(20,!0),12,1200080426),c=o(c,l,n,i,t.getUint32(24,!0),17,2821735955),i=o(i,c,l,n,t.getUint32(28,!0),22,4249261313),n=o(n,i,c,l,t.getUint32(32,!0),7,1770035416),l=o(l,n,i,c,t.getUint32(36,!0),12,2336552879),c=o(c,l,n,i,t.getUint32(40,!0),17,4294925233),i=o(i,c,l,n,t.getUint32(44,!0),22,2304563134),n=o(n,i,c,l,t.getUint32(48,!0),7,1804603682),l=o(l,n,i,c,t.getUint32(52,!0),12,4254626195),c=o(c,l,n,i,t.getUint32(56,!0),17,2792965006),i=o(i,c,l,n,t.getUint32(60,!0),22,1236535329),n=s(n,i,c,l,t.getUint32(4,!0),5,4129170786),l=s(l,n,i,c,t.getUint32(24,!0),9,3225465664),c=s(c,l,n,i,t.getUint32(44,!0),14,643717713),i=s(i,c,l,n,t.getUint32(0,!0),20,3921069994),n=s(n,i,c,l,t.getUint32(20,!0),5,3593408605),l=s(l,n,i,c,t.getUint32(40,!0),9,38016083),c=s(c,l,n,i,t.getUint32(60,!0),14,3634488961),i=s(i,c,l,n,t.getUint32(16,!0),20,3889429448),n=s(n,i,c,l,t.getUint32(36,!0),5,568446438),l=s(l,n,i,c,t.getUint32(56,!0),9,3275163606),c=s(c,l,n,i,t.getUint32(12,!0),14,4107603335),i=s(i,c,l,n,t.getUint32(32,!0),20,1163531501),n=s(n,i,c,l,t.getUint32(52,!0),5,2850285829),l=s(l,n,i,c,t.getUint32(8,!0),9,4243563512),c=s(c,l,n,i,t.getUint32(28,!0),14,1735328473),i=s(i,c,l,n,t.getUint32(48,!0),20,2368359562),n=a(n,i,c,l,t.getUint32(20,!0),4,4294588738),l=a(l,n,i,c,t.getUint32(32,!0),11,2272392833),c=a(c,l,n,i,t.getUint32(44,!0),16,1839030562),i=a(i,c,l,n,t.getUint32(56,!0),23,4259657740),n=a(n,i,c,l,t.getUint32(4,!0),4,2763975236),l=a(l,n,i,c,t.getUint32(16,!0),11,1272893353),c=a(c,l,n,i,t.getUint32(28,!0),16,4139469664),i=a(i,c,l,n,t.getUint32(40,!0),23,3200236656),n=a(n,i,c,l,t.getUint32(52,!0),4,681279174),l=a(l,n,i,c,t.getUint32(0,!0),11,3936430074),c=a(c,l,n,i,t.getUint32(12,!0),16,3572445317),i=a(i,c,l,n,t.getUint32(24,!0),23,76029189),n=a(n,i,c,l,t.getUint32(36,!0),4,3654602809),l=a(l,n,i,c,t.getUint32(48,!0),11,3873151461),c=a(c,l,n,i,t.getUint32(60,!0),16,530742520),i=a(i,c,l,n,t.getUint32(8,!0),23,3299628645),n=u(n,i,c,l,t.getUint32(0,!0),6,4096336452),l=u(l,n,i,c,t.getUint32(28,!0),10,1126891415),c=u(c,l,n,i,t.getUint32(56,!0),15,2878612391),i=u(i,c,l,n,t.getUint32(20,!0),21,4237533241),n=u(n,i,c,l,t.getUint32(48,!0),6,1700485571),\nl=u(l,n,i,c,t.getUint32(12,!0),10,2399980690),c=u(c,l,n,i,t.getUint32(40,!0),15,4293915773),i=u(i,c,l,n,t.getUint32(4,!0),21,2240044497),n=u(n,i,c,l,t.getUint32(32,!0),6,1873313359),l=u(l,n,i,c,t.getUint32(60,!0),10,4264355552),c=u(c,l,n,i,t.getUint32(24,!0),15,2734768916),i=u(i,c,l,n,t.getUint32(52,!0),21,1309151649),n=u(n,i,c,l,t.getUint32(16,!0),6,4149444226),l=u(l,n,i,c,t.getUint32(44,!0),10,3174756917),c=u(c,l,n,i,t.getUint32(8,!0),15,718787259),i=u(i,c,l,n,t.getUint32(36,!0),21,3951481745),r[0]=n+r[0]&4294967295,r[1]=i+r[1]&4294967295,r[2]=c+r[2]&4294967295,r[3]=l+r[3]&4294967295}},{\"./browserHashUtils\":12,\"buffer/\":82}],15:[function(e,t,r){function n(){this.h0=1732584193,this.h1=4023233417,this.h2=2562383102,this.h3=271733878,this.h4=3285377520,this.block=new Uint32Array(80),this.offset=0,this.shift=24,this.totalLength=0}var i=e(\"buffer/\").Buffer,o=e(\"./browserHashUtils\");new Uint32Array([1518500249,1859775393,-1894007588,-899497514]),Math.pow(2,53);t.exports=n,n.BLOCK_SIZE=64,n.prototype.update=function(e){if(this.finished)throw new Error(\"Attempted to update an already finished hash.\");if(o.isEmptyData(e))return this;e=o.convertToBuffer(e);var t=e.length;this.totalLength+=8*t;for(var r=0;r14||14===this.offset&&this.shift<24)&&this.processBlock(),this.offset=14,this.shift=24,this.write(0),this.write(0),this.write(this.totalLength>0xffffffffff?this.totalLength/1099511627776:0),this.write(this.totalLength>4294967295?this.totalLength/4294967296:0);for(var t=24;t>=0;t-=8)this.write(this.totalLength>>t);var r=new i(20),n=new DataView(r.buffer);return n.setUint32(0,this.h0,!1),n.setUint32(4,this.h1,!1),n.setUint32(8,this.h2,!1),n.setUint32(12,this.h3,!1),n.setUint32(16,this.h4,!1),e?r.toString(e):r},n.prototype.processBlock=function(){for(var e=16;e<80;e++){var t=this.block[e-3]^this.block[e-8]^this.block[e-14]^this.block[e-16];this.block[e]=t<<1|t>>>31}var r,n,i=this.h0,o=this.h1,s=this.h2,a=this.h3,u=this.h4;for(e=0;e<80;e++){e<20?(r=a^o&(s^a),n=1518500249):e<40?(r=o^s^a,n=1859775393):e<60?(r=o&s|a&(o|s),n=2400959708):(r=o^s^a,n=3395469782);var c=(i<<5|i>>>27)+r+u+n+(0|this.block[e]);u=a,a=s,s=o<<30|o>>>2,o=i,i=c}for(this.h0=this.h0+i|0,this.h1=this.h1+o|0,this.h2=this.h2+s|0,this.h3=this.h3+a|0,this.h4=this.h4+u|0,this.offset=0,e=0;e<16;e++)this.block[e]=0}},{\"./browserHashUtils\":12,\"buffer/\":82}],16:[function(e,t,r){function n(){this.state=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}var i=e(\"buffer/\").Buffer,o=e(\"./browserHashUtils\"),s=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),a=Math.pow(2,53)-1;t.exports=n,n.BLOCK_SIZE=64,n.prototype.update=function(e){if(this.finished)throw new Error(\"Attempted to update an already finished hash.\");if(o.isEmptyData(e))return this;e=o.convertToBuffer(e);var t=0,r=e.byteLength;if(this.bytesHashed+=r,8*this.bytesHashed>a)throw new Error(\"Cannot hash more than 2^53 - 1 bits\");for(;r>0;)this.buffer[this.bufferLength++]=e[t++],r--,64===this.bufferLength&&(this.hashBuffer(),this.bufferLength=0);return this},n.prototype.digest=function(e){if(!this.finished){var t=8*this.bytesHashed,r=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(r.setUint8(this.bufferLength++,128),n%64>=56){for(var o=this.bufferLength;o<64;o++)r.setUint8(o,0);this.hashBuffer(),this.bufferLength=0}for(var o=this.bufferLength;o<56;o++)r.setUint8(o,0);r.setUint32(56,Math.floor(t/4294967296),!0),r.setUint32(60,t),this.hashBuffer(),this.finished=!0}for(var s=new i(32),o=0;o<8;o++)s[4*o]=this.state[o]>>>24&255,s[4*o+1]=this.state[o]>>>16&255,s[4*o+2]=this.state[o]>>>8&255,s[4*o+3]=this.state[o]>>>0&255;return e?s.toString(e):s},n.prototype.hashBuffer=function(){for(var e=this,t=e.buffer,r=e.state,n=r[0],i=r[1],o=r[2],a=r[3],u=r[4],c=r[5],l=r[6],p=r[7],h=0;h<64;h++){if(h<16)this.temp[h]=(255&t[4*h])<<24|(255&t[4*h+1])<<16|(255&t[4*h+2])<<8|255&t[4*h+3];else{var f=this.temp[h-2],d=(f>>>17|f<<15)^(f>>>19|f<<13)^f>>>10;f=this.temp[h-15];var m=(f>>>7|f<<25)^(f>>>18|f<<14)^f>>>3;this.temp[h]=(d+this.temp[h-7]|0)+(m+this.temp[h-16]|0)}var v=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&c^~u&l)|0)+(p+(s[h]+this.temp[h]|0)|0)|0,g=((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+(n&i^n&o^i&o)|0;p=l,l=c,c=u,u=a+v|0,a=o,o=i,i=n,n=v+g|0}r[0]+=n,r[1]+=i,r[2]+=o,r[3]+=a,r[4]+=u,r[5]+=c,r[6]+=l,r[7]+=p}},{\"./browserHashUtils\":12,\"buffer/\":82}],17:[function(e,t,r){(function(r){(function(){var r=e(\"./util\");r.crypto.lib=e(\"./browserCryptoLib\"),r.Buffer=e(\"buffer/\").Buffer,r.url=e(\"url/\"),r.querystring=e(\"querystring/\"),r.realClock=e(\"./realclock/browserClock\"),r.environment=\"js\",r.createEventStream=e(\"./event-stream/buffered-create-event-stream\").createEventStream,r.isBrowser=function(){return!0},r.isNode=function(){return!1};var n=e(\"./core\");if(t.exports=n,e(\"./credentials\"),e(\"./credentials/credential_provider_chain\"),e(\"./credentials/temporary_credentials\"),e(\"./credentials/chainable_temporary_credentials\"),e(\"./credentials/web_identity_credentials\"),e(\"./credentials/cognito_identity_credentials\"),e(\"./credentials/saml_credentials\"),n.XML.Parser=e(\"./xml/browser_parser\"),e(\"./http/xhr\"),void 0===i)var i={browser:!0}}).call(this)}).call(this,e(\"_process\"))},{\"./browserCryptoLib\":11,\"./core\":20,\"./credentials\":21,\"./credentials/chainable_temporary_credentials\":22,\"./credentials/cognito_identity_credentials\":23,\"./credentials/credential_provider_chain\":24,\"./credentials/saml_credentials\":25,\"./credentials/temporary_credentials\":26,\"./credentials/web_identity_credentials\":27,\"./event-stream/buffered-create-event-stream\":29,\"./http/xhr\":37,\"./realclock/browserClock\":54,\"./util\":73,\"./xml/browser_parser\":74,_process:87,\"buffer/\":82,\"querystring/\":94,\"url/\":96}],18:[function(e,t,r){var n=e(\"./core\");e(\"./credentials\"),e(\"./credentials/credential_provider_chain\");var i;n.Config=n.util.inherit({constructor:function(e){void 0===e&&(e={}),e=this.extractCredentials(e),n.util.each.call(this,this.keys,function(t,r){this.set(t,e[t],r)})},getCredentials:function(e){function t(t){e(t,t?null:i.credentials)}function r(e,t){return new n.util.error(t||new Error,{code:\"CredentialsError\",message:e,name:\"CredentialsError\"})}var i=this;i.credentials?\"function\"==typeof i.credentials.get?function(){i.credentials.get(function(e){e&&(e=r(\"Could not load credentials from \"+i.credentials.constructor.name,e)),t(e)})}():function(){var e=null;i.credentials.accessKeyId&&i.credentials.secretAccessKey||(e=r(\"Missing credentials\")),t(e)}():i.credentialProvider?i.credentialProvider.resolve(function(e,n){e&&(e=r(\"Could not load credentials from any providers\",e)),i.credentials=n,t(e)}):t(r(\"No credentials to load\"))},update:function(e,t){t=t||!1,e=this.extractCredentials(e),n.util.each.call(this,e,function(e,r){(t||Object.prototype.hasOwnProperty.call(this.keys,e)||n.Service.hasService(e))&&this.set(e,r)})},loadFromPath:function(e){this.clear();var t=JSON.parse(n.util.readFileSync(e)),r=new n.FileSystemCredentials(e),i=new n.CredentialProviderChain;return i.providers.unshift(r),i.resolve(function(e,r){if(e)throw e;t.credentials=r}),this.constructor(t),this},clear:function(){n.util.each.call(this,this.keys,function(e){delete this[e]}),this.set(\"credentials\",void 0),this.set(\"credentialProvider\",void 0)},set:function(e,t,r){void 0===t?(void 0===r&&(r=this.keys[e]),this[e]=\"function\"==typeof r?r.call(this):r):\"httpOptions\"===e&&this[e]?this[e]=n.util.merge(this[e],t):this[e]=t},keys:{credentials:null,credentialProvider:null,region:null,logger:null,apiVersions:{},apiVersion:null,endpoint:void 0,httpOptions:{timeout:12e4},maxRetries:void 0,maxRedirects:10,paramValidation:!0,sslEnabled:!0,s3ForcePathStyle:!1,s3BucketEndpoint:!1,s3DisableBodySigning:!0,s3UsEast1RegionalEndpoint:\"legacy\",s3UseArnRegion:void 0,computeChecksums:!0,convertResponseTypes:!0,correctClockSkew:!1,customUserAgent:null,dynamoDbCrc32:!0,systemClockOffset:0,signatureVersion:null,signatureCache:!0,retryDelayOptions:{},useAccelerateEndpoint:!1,clientSideMonitoring:!1,endpointDiscoveryEnabled:void 0,endpointCacheSize:1e3,hostPrefixEnabled:!0,stsRegionalEndpoints:\"legacy\"},extractCredentials:function(e){return e.accessKeyId&&e.secretAccessKey&&(e=n.util.copy(e),e.credentials=new n.Credentials(e)),e},setPromisesDependency:function(e){i=e,null===e&&\"function\"==typeof Promise&&(i=Promise);var t=[n.Request,n.Credentials,n.CredentialProviderChain];n.S3&&(t.push(n.S3),n.S3.ManagedUpload&&t.push(n.S3.ManagedUpload)),n.util.addPromises(t,i)},getPromisesDependency:function(){return i}}),n.config=new n.Config},{\"./core\":20,\"./credentials\":21,\"./credentials/credential_provider_chain\":24}],19:[function(e,t,r){(function(r){(function(){function n(e,t){if(\"string\"==typeof e){if([\"legacy\",\"regional\"].indexOf(e.toLowerCase())>=0)return e.toLowerCase();throw o.util.error(new Error,t)}}function i(e,t){e=e||{};var i;if(e[t.clientConfig]&&(i=n(e[t.clientConfig],{code:\"InvalidConfiguration\",message:'invalid \"'+t.clientConfig+'\" configuration. Expect \"legacy\" or \"regional\". Got \"'+e[t.clientConfig]+'\".'})))return i;if(!o.util.isNode())return i;if(Object.prototype.hasOwnProperty.call(r.env,t.env)){if(i=n(r.env[t.env],{code:\"InvalidEnvironmentalVariable\",message:\"invalid \"+t.env+' environmental variable. Expect \"legacy\" or \"regional\". Got \"'+r.env[t.env]+'\".'}))return i}var s={};try{s=o.util.getProfilesFromSharedConfig(o.util.iniLoader)[r.env.AWS_PROFILE||o.util.defaultProfile]}catch(e){}if(s&&Object.prototype.hasOwnProperty.call(s,t.sharedConfig)){if(i=n(s[t.sharedConfig],{code:\"InvalidConfiguration\",message:\"invalid \"+t.sharedConfig+' profile config. Expect \"legacy\" or \"regional\". Got \"'+s[t.sharedConfig]+'\".'}))return i}return i}var o=e(\"./core\");t.exports=i}).call(this)}).call(this,e(\"_process\"))},{\"./core\":20,_process:87}],20:[function(e,t,r){var n={util:e(\"./util\")};({}).toString(),t.exports=n,n.util.update(n,{VERSION:\"2.772.0\",Signers:{},Protocol:{Json:e(\"./protocol/json\"),Query:e(\"./protocol/query\"),Rest:e(\"./protocol/rest\"),RestJson:e(\"./protocol/rest_json\"),RestXml:e(\"./protocol/rest_xml\")},XML:{Builder:e(\"./xml/builder\"),Parser:null},JSON:{Builder:e(\"./json/builder\"),Parser:e(\"./json/parser\")},Model:{Api:e(\"./model/api\"),Operation:e(\"./model/operation\"),Shape:e(\"./model/shape\"),Paginator:e(\"./model/paginator\"),ResourceWaiter:e(\"./model/resource_waiter\")},apiLoader:e(\"./api_loader\"),EndpointCache:e(\"../vendor/endpoint-cache\").EndpointCache}),e(\"./sequential_executor\"),e(\"./service\"),e(\"./config\"),e(\"./http\"),e(\"./event_listeners\"),e(\"./request\"),e(\"./response\"),e(\"./resource_waiter\"),e(\"./signers/request_signer\"),e(\"./param_validator\"),n.events=new n.SequentialExecutor,n.util.memoizedProperty(n,\"endpointCache\",function(){return new n.EndpointCache(n.config.endpointCacheSize)},!0)},{\"../vendor/endpoint-cache\":105,\"./api_loader\":10,\"./config\":18,\"./event_listeners\":35,\"./http\":36,\"./json/builder\":38,\"./json/parser\":39,\"./model/api\":40,\"./model/operation\":42,\"./model/paginator\":43,\"./model/resource_waiter\":44,\"./model/shape\":45,\"./param_validator\":46,\"./protocol/json\":48,\"./protocol/query\":49,\"./protocol/rest\":50,\"./protocol/rest_json\":51,\"./protocol/rest_xml\":52,\"./request\":57,\"./resource_waiter\":58,\"./response\":59,\"./sequential_executor\":60,\"./service\":61,\"./signers/request_signer\":65,\"./util\":73,\"./xml/builder\":75}],21:[function(e,t,r){var n=e(\"./core\");n.Credentials=n.util.inherit({constructor:function(){if(n.util.hideProperties(this,[\"secretAccessKey\"]),this.expired=!1,this.expireTime=null,this.refreshCallbacks=[],1===arguments.length&&\"object\"==typeof arguments[0]){var e=arguments[0].credentials||arguments[0];this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,this.sessionToken=e.sessionToken}else this.accessKeyId=arguments[0],this.secretAccessKey=arguments[1],this.sessionToken=arguments[2]},expiryWindow:15,needsRefresh:function(){var e=n.util.date.getDate().getTime(),t=new Date(e+1e3*this.expiryWindow);return!!(this.expireTime&&t>this.expireTime)||(this.expired||!this.accessKeyId||!this.secretAccessKey)},get:function(e){var t=this;this.needsRefresh()?this.refresh(function(r){r||(t.expired=!1),e&&e(r)}):e&&e()},refresh:function(e){this.expired=!1,e()},coalesceRefresh:function(e,t){var r=this;1===r.refreshCallbacks.push(e)&&r.load(function(e){n.util.arrayEach(r.refreshCallbacks,function(r){t?r(e):n.util.defer(function(){r(e)})}),r.refreshCallbacks.length=0})},load:function(e){e()}}),n.Credentials.addPromisesToClass=function(e){this.prototype.getPromise=n.util.promisifyMethod(\"get\",e),this.prototype.refreshPromise=n.util.promisifyMethod(\"refresh\",e)},n.Credentials.deletePromisesFromClass=function(){delete this.prototype.getPromise,delete this.prototype.refreshPromise},n.util.addPromises(n.Credentials)},{\"./core\":20}],22:[function(e,t,r){var n=e(\"../core\"),i=e(\"../../clients/sts\");n.ChainableTemporaryCredentials=n.util.inherit(n.Credentials,{constructor:function(e){n.Credentials.call(this),e=e||{},this.errorCode=\"ChainableTemporaryCredentialsProviderFailure\",this.expired=!0,this.tokenCodeFn=null;var t=n.util.copy(e.params)||{};if(t.RoleArn&&(t.RoleSessionName=t.RoleSessionName||\"temporary-credentials\"),t.SerialNumber){if(!e.tokenCodeFn||\"function\"!=typeof e.tokenCodeFn)throw new n.util.error(new Error(\"tokenCodeFn must be a function when params.SerialNumber is given\"),{code:this.errorCode});this.tokenCodeFn=e.tokenCodeFn}var r=n.util.merge({params:t,credentials:e.masterCredentials||n.config.credentials},e.stsConfig||{});this.service=new i(r)},refresh:function(e){this.coalesceRefresh(e||n.util.fn.callback)},load:function(e){var t=this,r=t.service.config.params.RoleArn?\"assumeRole\":\"getSessionToken\";this.getTokenCode(function(n,i){var o={};if(n)return void e(n);i&&(o.TokenCode=i),t.service[r](o,function(r,n){r||t.service.credentialsFrom(n,t),e(r)})})},getTokenCode:function(e){var t=this;this.tokenCodeFn?this.tokenCodeFn(this.service.config.params.SerialNumber,function(r,i){if(r){var o=r;return r instanceof Error&&(o=r.message),void e(n.util.error(new Error(\"Error fetching MFA token: \"+o),{code:t.errorCode}))}e(null,i)}):e(null)}})},{\"../../clients/sts\":9,\"../core\":20}],23:[function(e,t,r){var n=e(\"../core\"),i=e(\"../../clients/cognitoidentity\"),o=e(\"../../clients/sts\");n.CognitoIdentityCredentials=n.util.inherit(n.Credentials,{localStorageKey:{id:\"aws.cognito.identity-id.\",providers:\"aws.cognito.identity-providers.\"},constructor:function(e,t){n.Credentials.call(this),this.expired=!0,this.params=e,this.data=null,this._identityId=null,this._clientConfig=n.util.copy(t||{}),this.loadCachedId();var r=this;Object.defineProperty(this,\"identityId\",{get:function(){return r.loadCachedId(),r._identityId||r.params.IdentityId},set:function(e){r._identityId=e}})},refresh:function(e){this.coalesceRefresh(e||n.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.data=null,t._identityId=null,t.getId(function(r){r?(t.clearIdOnNotAuthorized(r),e(r)):t.params.RoleArn?t.getCredentialsFromSTS(e):t.getCredentialsForIdentity(e)})},clearCachedId:function(){this._identityId=null,delete this.params.IdentityId;var e=this.params.IdentityPoolId,t=this.params.LoginId||\"\";delete this.storage[this.localStorageKey.id+e+t],delete this.storage[this.localStorageKey.providers+e+t]},clearIdOnNotAuthorized:function(e){var t=this;\"NotAuthorizedException\"==e.code&&t.clearCachedId()},getId:function(e){var t=this;if(\"string\"==typeof t.params.IdentityId)return e(null,t.params.IdentityId);t.cognito.getId(function(r,n){!r&&n.IdentityId?(t.params.IdentityId=n.IdentityId,e(null,n.IdentityId)):e(r)})},loadCredentials:function(e,t){e&&t&&(t.expired=!1,t.accessKeyId=e.Credentials.AccessKeyId,t.secretAccessKey=e.Credentials.SecretKey,t.sessionToken=e.Credentials.SessionToken,t.expireTime=e.Credentials.Expiration)},getCredentialsForIdentity:function(e){var t=this;t.cognito.getCredentialsForIdentity(function(r,n){r?t.clearIdOnNotAuthorized(r):(t.cacheId(n),t.data=n,t.loadCredentials(t.data,t)),e(r)})},getCredentialsFromSTS:function(e){var t=this;t.cognito.getOpenIdToken(function(r,n){r?(t.clearIdOnNotAuthorized(r),e(r)):(t.cacheId(n),t.params.WebIdentityToken=n.Token,t.webIdentityCredentials.refresh(function(r){r||(t.data=t.webIdentityCredentials.data,t.sts.credentialsFrom(t.data,t)),e(r)}))})},loadCachedId:function(){var e=this;if(n.util.isBrowser()&&!e.params.IdentityId){var t=e.getStorage(\"id\");if(t&&e.params.Logins){var r=Object.keys(e.params.Logins);0!==(e.getStorage(\"providers\")||\"\").split(\",\").filter(function(e){return-1!==r.indexOf(e)}).length&&(e.params.IdentityId=t)}else t&&(e.params.IdentityId=t)}},createClients:function(){var e=this._clientConfig;if(this.webIdentityCredentials=this.webIdentityCredentials||new n.WebIdentityCredentials(this.params,e),!this.cognito){var t=n.util.merge({},e);t.params=this.params,this.cognito=new i(t)}this.sts=this.sts||new o(e)},cacheId:function(e){this._identityId=e.IdentityId,this.params.IdentityId=this._identityId,n.util.isBrowser()&&(this.setStorage(\"id\",e.IdentityId),this.params.Logins&&this.setStorage(\"providers\",Object.keys(this.params.Logins).join(\",\")))},getStorage:function(e){return this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||\"\")]},setStorage:function(e,t){try{this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||\"\")]=t}catch(e){}},storage:function(){try{var e=n.util.isBrowser()&&null!==window.localStorage&&\"object\"==typeof window.localStorage?window.localStorage:{};return e[\"aws.test-storage\"]=\"foobar\",delete e[\"aws.test-storage\"],e}catch(e){return{}}}()})},{\"../../clients/cognitoidentity\":8,\"../../clients/sts\":9,\"../core\":20}],24:[function(e,t,r){var n=e(\"../core\");n.CredentialProviderChain=n.util.inherit(n.Credentials,{constructor:function(e){this.providers=e||n.CredentialProviderChain.defaultProviders.slice(0),this.resolveCallbacks=[]},resolve:function(e){function t(e,s){if(!e&&s||i===o.length)return n.util.arrayEach(r.resolveCallbacks,function(t){t(e,s)}),void(r.resolveCallbacks.length=0);var a=o[i++];s=\"function\"==typeof a?a.call():a,s.get?s.get(function(e){t(e,e?null:s)}):t(null,s)}var r=this;if(0===r.providers.length)return e(new Error(\"No providers\")),r;if(1===r.resolveCallbacks.push(e)){var i=0,o=r.providers.slice(0);t()}return r}}),n.CredentialProviderChain.defaultProviders=[],n.CredentialProviderChain.addPromisesToClass=function(e){this.prototype.resolvePromise=n.util.promisifyMethod(\"resolve\",e)},n.CredentialProviderChain.deletePromisesFromClass=function(){delete this.prototype.resolvePromise},n.util.addPromises(n.CredentialProviderChain)},{\"../core\":20}],25:[function(e,t,r){var n=e(\"../core\"),i=e(\"../../clients/sts\");n.SAMLCredentials=n.util.inherit(n.Credentials,{constructor:function(e){n.Credentials.call(this),this.expired=!0,this.params=e},refresh:function(e){this.coalesceRefresh(e||n.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.service.assumeRoleWithSAML(function(r,n){r||t.service.credentialsFrom(n,t),e(r)})},createClients:function(){this.service=this.service||new i({params:this.params})}})},{\"../../clients/sts\":9,\"../core\":20}],26:[function(e,t,r){var n=e(\"../core\"),i=e(\"../../clients/sts\");n.TemporaryCredentials=n.util.inherit(n.Credentials,{constructor:function(e,t){n.Credentials.call(this),this.loadMasterCredentials(t),this.expired=!0,this.params=e||{},this.params.RoleArn&&(this.params.RoleSessionName=this.params.RoleSessionName||\"temporary-credentials\")},refresh:function(e){this.coalesceRefresh(e||n.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.masterCredentials.get(function(){t.service.config.credentials=t.masterCredentials,(t.params.RoleArn?t.service.assumeRole:t.service.getSessionToken).call(t.service,function(r,n){r||t.service.credentialsFrom(n,t),e(r)})})},loadMasterCredentials:function(e){for(this.masterCredentials=e||n.config.credentials;this.masterCredentials.masterCredentials;)this.masterCredentials=this.masterCredentials.masterCredentials;\"function\"!=typeof this.masterCredentials.get&&(this.masterCredentials=new n.Credentials(this.masterCredentials))},createClients:function(){this.service=this.service||new i({params:this.params})}})},{\"../../clients/sts\":9,\"../core\":20}],27:[function(e,t,r){var n=e(\"../core\"),i=e(\"../../clients/sts\");n.WebIdentityCredentials=n.util.inherit(n.Credentials,{constructor:function(e,t){n.Credentials.call(this),this.expired=!0,this.params=e,this.params.RoleSessionName=this.params.RoleSessionName||\"web-identity\",this.data=null,this._clientConfig=n.util.copy(t||{})},refresh:function(e){this.coalesceRefresh(e||n.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.service.assumeRoleWithWebIdentity(function(r,n){t.data=null,r||(t.data=n,t.service.credentialsFrom(n,t)),e(r)})},createClients:function(){if(!this.service){var e=n.util.merge({},this._clientConfig);e.params=this.params,this.service=new i(e)}}})},{\"../../clients/sts\":9,\"../core\":20}],28:[function(e,t,r){(function(r){(function(){function n(e){var t=e.service,r=t.api||{},n={};return t.config.region&&(n.region=t.config.region),r.serviceId&&(n.serviceId=r.serviceId),t.config.credentials.accessKeyId&&(n.accessKeyId=t.config.credentials.accessKeyId),n}function i(e,t,r){r&&void 0!==t&&null!==t&&\"structure\"===r.type&&r.required&&r.required.length>0&&m.arrayEach(r.required,function(n){var o=r.members[n];if(!0===o.endpointDiscoveryId){var s=o.isLocationName?o.name:n;e[s]=String(t[n])}else i(e,t[n],o)})}function o(e,t){var r={};return i(r,e.params,t),r}function s(e){var t=e.service,r=t.api,i=r.operations?r.operations[e.operation]:void 0,s=i?i.input:void 0,a=o(e,s),c=n(e);Object.keys(a).length>0&&(c=m.update(c,a),i&&(c.operation=i.name));var l=d.endpointCache.get(c);if(!l||1!==l.length||\"\"!==l[0].Address)if(l&&l.length>0)e.httpRequest.updateEndpoint(l[0].Address);else{var p=t.makeRequest(r.endpointOperation,{Operation:i.name,Identifiers:a});u(p),p.removeListener(\"validate\",d.EventListeners.Core.VALIDATE_PARAMETERS),p.removeListener(\"retry\",d.EventListeners.Core.RETRY_CHECK),d.endpointCache.put(c,[{Address:\"\",CachePeriodInMinutes:1}]),p.send(function(e,t){t&&t.Endpoints?d.endpointCache.put(c,t.Endpoints):e&&d.endpointCache.put(c,[{Address:\"\",CachePeriodInMinutes:1}])})}}function a(e,t){var r=e.service,i=r.api,s=i.operations?i.operations[e.operation]:void 0,a=s?s.input:void 0,c=o(e,a),l=n(e);Object.keys(c).length>0&&(l=m.update(l,c),s&&(l.operation=s.name));var p=d.EndpointCache.getKeyString(l),h=d.endpointCache.get(p);if(h&&1===h.length&&\"\"===h[0].Address)return g[p]||(g[p]=[]),void g[p].push({request:e,callback:t});if(h&&h.length>0)e.httpRequest.updateEndpoint(h[0].Address),t();else{var f=r.makeRequest(i.endpointOperation,{Operation:s.name,Identifiers:c});f.removeListener(\"validate\",d.EventListeners.Core.VALIDATE_PARAMETERS),u(f),d.endpointCache.put(p,[{Address:\"\",CachePeriodInMinutes:60}]),f.send(function(r,n){if(r){if(e.response.error=m.error(r,{retryable:!1}),d.endpointCache.remove(l),g[p]){var i=g[p];m.arrayEach(i,function(e){e.request.response.error=m.error(r,{retryable:!1}),e.callback()}),delete g[p]}}else if(n&&(d.endpointCache.put(p,n.Endpoints),e.httpRequest.updateEndpoint(n.Endpoints[0].Address),g[p])){var i=g[p];m.arrayEach(i,function(e){e.request.httpRequest.updateEndpoint(n.Endpoints[0].Address),e.callback()}),delete g[p]}t()})}}function u(e){var t=e.service.api,r=t.apiVersion;r&&!e.httpRequest.headers[\"x-amz-api-version\"]&&(e.httpRequest.headers[\"x-amz-api-version\"]=r)}function c(e){var t=e.error,r=e.httpResponse;if(t&&(\"InvalidEndpointException\"===t.code||421===r.statusCode)){var i=e.request,s=i.service.api.operations||{},a=s[i.operation]?s[i.operation].input:void 0,u=o(i,a),c=n(i);Object.keys(u).length>0&&(c=m.update(c,u),s[i.operation]&&(c.operation=s[i.operation].name)),d.endpointCache.remove(c)}}function l(e){if(e._originalConfig&&e._originalConfig.endpoint&&!0===e._originalConfig.endpointDiscoveryEnabled)throw m.error(new Error,{code:\"ConfigurationException\",message:\"Custom endpoint is supplied; endpointDiscoveryEnabled must not be true.\"});var t=d.config[e.serviceIdentifier]||{};return Boolean(d.config.endpoint||t.endpoint||e._originalConfig&&e._originalConfig.endpoint)}function p(e){return[\"false\",\"0\"].indexOf(e)>=0}function h(e){var t=e.service||{};if(void 0!==t.config.endpointDiscoveryEnabled)return t.config.endpointDiscoveryEnabled;if(!m.isBrowser()){for(var n=0;n-1&&0===++e[t];t--);}var o=e(\"../core\").util,s=o.buffer.toBuffer;n.fromNumber=function(e){if(e>0x8000000000000000||e<-0x8000000000000000)throw new Error(e+\" is too large (or, if negative, too small) to represent as an Int64\");for(var t=new Uint8Array(8),r=7,o=Math.abs(Math.round(e));r>-1&&o>0;r--,o/=256)t[r]=o;return e<0&&i(t),new n(t)},n.prototype.valueOf=function(){var e=this.bytes.slice(0),t=128&e[0];return t&&i(e),parseInt(e.toString(\"hex\"),16)*(t?-1:1)},n.prototype.toString=function(){return String(this.valueOf())},t.exports={Int64:n}},{\"../core\":20}],32:[function(e,t,r){function n(e,t,r){var n=o(t),s=n.headers[\":message-type\"];if(s){if(\"error\"===s.value)throw i(n);if(\"event\"!==s.value)return}var a=n.headers[\":event-type\"],u=r.members[a.value];if(u){var c={},l=u.eventPayloadMemberName;if(l){var p=u.members[l];\"binary\"===p.type?c[l]=n.body:c[l]=e.parse(n.body.toString(),p)}for(var h=u.eventHeaderMemberNames,f=0;f=0)return e.httpRequest.headers[\"X-Amz-Content-Sha256\"]=\"UNSIGNED-PAYLOAD\",t();i.util.computeSha256(o,function(r,n){r?t(r):(e.httpRequest.headers[\"X-Amz-Content-Sha256\"]=n,t())})}else t()}}),e(\"SET_CONTENT_LENGTH\",\"afterBuild\",function(e){var t=n(e),r=i.util.getRequestPayloadShape(e);if(void 0===e.httpRequest.headers[\"Content-Length\"])try{var o=i.util.string.byteLength(e.httpRequest.body);e.httpRequest.headers[\"Content-Length\"]=o}catch(n){if(r&&r.isStreaming){if(r.requiresLength)throw n;if(t.indexOf(\"unsigned-body\")>=0)return void(e.httpRequest.headers[\"Transfer-Encoding\"]=\"chunked\");throw n}throw n}}),e(\"SET_HTTP_HOST\",\"afterBuild\",function(e){e.httpRequest.headers.Host=e.httpRequest.endpoint.host}),e(\"RESTART\",\"restart\",function(){var e=this.response.error;e&&e.retryable&&(this.httpRequest=new i.HttpRequest(this.service.endpoint,this.service.region),this.response.retryCount=600?this.emit(\"sign\",[this],function(e){e?t(e):s()}):s()}),e(\"HTTP_HEADERS\",\"httpHeaders\",function(e,t,r,n){r.httpResponse.statusCode=e,r.httpResponse.statusMessage=n,r.httpResponse.headers=t,r.httpResponse.body=i.util.buffer.toBuffer(\"\"),r.httpResponse.buffers=[],r.httpResponse.numBytes=0;var o=t.date||t.Date,s=r.request.service;if(o){var a=Date.parse(o);s.config.correctClockSkew&&s.isClockSkewed(a)&&s.applyClockOffset(a)}}),e(\"HTTP_DATA\",\"httpData\",function(e,t){if(e){if(i.util.isNode()){t.httpResponse.numBytes+=e.length;var r=t.httpResponse.headers[\"content-length\"],n={loaded:t.httpResponse.numBytes,total:r};t.request.emit(\"httpDownloadProgress\",[n,t])}t.httpResponse.buffers.push(i.util.buffer.toBuffer(e))}}),e(\"HTTP_DONE\",\"httpDone\",function(e){if(e.httpResponse.buffers&&e.httpResponse.buffers.length>0){var t=i.util.buffer.concat(e.httpResponse.buffers);e.httpResponse.body=t}delete e.httpResponse.numBytes,delete e.httpResponse.buffers}),e(\"FINALIZE_ERROR\",\"retry\",function(e){e.httpResponse.statusCode&&(e.error.statusCode=e.httpResponse.statusCode,void 0===e.error.retryable&&(e.error.retryable=this.service.retryableError(e.error,this)))}),e(\"INVALIDATE_CREDENTIALS\",\"retry\",function(e){if(e.error)switch(e.error.code){case\"RequestExpired\":case\"ExpiredTokenException\":case\"ExpiredToken\":e.error.retryable=!0,e.request.service.config.credentials.expired=!0}}),e(\"EXPIRED_SIGNATURE\",\"retry\",function(e){var t=e.error;t&&\"string\"==typeof t.code&&\"string\"==typeof t.message&&t.code.match(/Signature/)&&t.message.match(/expired/)&&(e.error.retryable=!0)}),e(\"CLOCK_SKEWED\",\"retry\",function(e){e.error&&this.service.clockSkewError(e.error)&&this.service.config.correctClockSkew&&(e.error.retryable=!0)}),e(\"REDIRECT\",\"retry\",function(e){e.error&&e.error.statusCode>=300&&e.error.statusCode<400&&e.httpResponse.headers.location&&(this.httpRequest.endpoint=new i.Endpoint(e.httpResponse.headers.location),this.httpRequest.headers.Host=this.httpRequest.endpoint.host,e.error.redirect=!0,e.error.retryable=!0)}),e(\"RETRY_CHECK\",\"retry\",function(e){e.error&&(e.error.redirect&&e.redirectCount=0?(e.error=null,setTimeout(t,r)):t()})}),CorePost:(new o).addNamedListeners(function(e){e(\"EXTRACT_REQUEST_ID\",\"extractData\",i.util.extractRequestId),e(\"EXTRACT_REQUEST_ID\",\"extractError\",i.util.extractRequestId),e(\"ENOTFOUND_ERROR\",\"httpError\",function(e){if(\"NetworkingError\"===e.code&&function(e){return\"ENOTFOUND\"===e.errno||\"number\"==typeof e.errno&&\"function\"==typeof i.util.getSystemErrorName&&[\"EAI_NONAME\",\"EAI_NODATA\"].indexOf(i.util.getSystemErrorName(e.errno)>=0)}(e)){var t=\"Inaccessible host: `\"+e.hostname+\"'. This service may not be available in the `\"+e.region+\"' region.\";this.response.error=i.util.error(new Error(t),{code:\"UnknownEndpoint\",region:e.region,hostname:e.hostname,retryable:!0,originalError:e})}})}),Logger:(new o).addNamedListeners(function(t){t(\"LOG_REQUEST\",\"complete\",function(t){function r(e,t){if(!t)return t;if(e.isSensitive)return\"***SensitiveInformation***\";switch(e.type){case\"structure\":var n={};return i.util.each(t,function(t,i){Object.prototype.hasOwnProperty.call(e.members,t)?n[t]=r(e.members[t],i):n[t]=i}),n;case\"list\":var o=[];return i.util.arrayEach(t,function(t,n){o.push(r(e.member,t))}),o;case\"map\":var s={};return i.util.each(t,function(t,n){s[t]=r(e.value,n)}),s;default:return t}}var n=t.request,o=n.service.config.logger;if(o){var s=function(){var s=t.request.service.getSkewCorrectedDate().getTime(),a=(s-n.startTime.getTime())/1e3,u=!!o.isTTY,c=t.httpResponse.statusCode,l=n.params;if(n.service.api.operations&&n.service.api.operations[n.operation]&&n.service.api.operations[n.operation].input){l=r(n.service.api.operations[n.operation].input,n.params)}var p=e(\"util\").inspect(l,!0,null),h=\"\";return u&&(h+=\"\u001b[33m\"),h+=\"[AWS \"+n.service.serviceIdentifier+\" \"+c,h+=\" \"+a.toString()+\"s \"+t.retryCount+\" retries]\",u&&(h+=\"\u001b[0;1m\"),h+=\" \"+i.util.string.lowerFirst(n.operation),h+=\"(\"+p+\")\",u&&(h+=\"\u001b[0m\"),h}();\"function\"==typeof o.log?o.log(s):\"function\"==typeof o.write&&o.write(s+\"\\n\")}})}),Json:(new o).addNamedListeners(function(t){var r=e(\"./protocol/json\");t(\"BUILD\",\"build\",r.buildRequest),t(\"EXTRACT_DATA\",\"extractData\",r.extractData),t(\"EXTRACT_ERROR\",\"extractError\",r.extractError)}),Rest:(new o).addNamedListeners(function(t){var r=e(\"./protocol/rest\");t(\"BUILD\",\"build\",r.buildRequest),t(\"EXTRACT_DATA\",\"extractData\",r.extractData),t(\"EXTRACT_ERROR\",\"extractError\",r.extractError)}),RestJson:(new o).addNamedListeners(function(t){var r=e(\"./protocol/rest_json\");t(\"BUILD\",\"build\",r.buildRequest),t(\"EXTRACT_DATA\",\"extractData\",r.extractData),t(\"EXTRACT_ERROR\",\"extractError\",r.extractError)}),RestXml:(new o).addNamedListeners(function(t){var r=e(\"./protocol/rest_xml\");t(\"BUILD\",\"build\",r.buildRequest),t(\"EXTRACT_DATA\",\"extractData\",r.extractData),t(\"EXTRACT_ERROR\",\"extractError\",r.extractError)}),Query:(new o).addNamedListeners(function(t){var r=e(\"./protocol/query\");t(\"BUILD\",\"build\",r.buildRequest),t(\"EXTRACT_DATA\",\"extractData\",r.extractData),t(\"EXTRACT_ERROR\",\"extractError\",r.extractError)})}},{\"./core\":20,\"./discover_endpoint\":28,\"./protocol/json\":48,\"./protocol/query\":49,\"./protocol/rest\":50,\"./protocol/rest_json\":51,\"./protocol/rest_xml\":52,\"./sequential_executor\":60,util:99}],36:[function(e,t,r){var n=e(\"./core\"),i=n.util.inherit;n.Endpoint=i({constructor:function(e,t){if(n.util.hideProperties(this,[\"slashes\",\"auth\",\"hash\",\"search\",\"query\"]),void 0===e||null===e)throw new Error(\"Invalid endpoint: \"+e);if(\"string\"!=typeof e)return n.util.copy(e);if(!e.match(/^http/)){e=((t&&void 0!==t.sslEnabled?t.sslEnabled:n.config.sslEnabled)?\"https\":\"http\")+\"://\"+e}n.util.update(this,n.util.urlParse(e)),this.port?this.port=parseInt(this.port,10):this.port=\"https:\"===this.protocol?443:80}}),n.HttpRequest=i({constructor:function(e,t){e=new n.Endpoint(e),this.method=\"POST\",this.path=e.path||\"/\",this.headers={},this.body=\"\",this.endpoint=e,this.region=t,this._userAgent=\"\",this.setUserAgent()},setUserAgent:function(){this._userAgent=this.headers[this.getUserAgentHeaderName()]=n.util.userAgent()},getUserAgentHeaderName:function(){return(n.util.isBrowser()?\"X-Amz-\":\"\")+\"User-Agent\"},appendToUserAgent:function(e){\"string\"==typeof e&&e&&(this._userAgent+=\" \"+e),this.headers[this.getUserAgentHeaderName()]=this._userAgent},getUserAgent:function(){return this._userAgent},pathname:function(){return this.path.split(\"?\",1)[0]},search:function(){var e=this.path.split(\"?\",2)[1];return e?(e=n.util.queryStringParse(e),n.util.queryParamsToString(e)):\"\"},updateEndpoint:function(e){var t=new n.Endpoint(e);this.endpoint=t,this.path=t.path||\"/\",this.headers.Host&&(this.headers.Host=t.host)}}),n.HttpResponse=i({constructor:function(){this.statusCode=void 0,this.headers={},this.body=void 0,this.streaming=!1,this.stream=null},createUnbufferedStream:function(){return this.streaming=!0,this.stream}}),n.HttpClient=i({}),n.HttpClient.getInstance=function(){return void 0===this.singleton&&(this.singleton=new this),this.singleton}},{\"./core\":20}],37:[function(e,t,r){var n=e(\"../core\"),i=e(\"events\").EventEmitter;e(\"../http\"),n.XHRClient=n.util.inherit({handleRequest:function(e,t,r,o){var s=this,a=e.endpoint,u=new i,c=a.protocol+\"//\"+a.hostname;80!==a.port&&443!==a.port&&(c+=\":\"+a.port),c+=e.path;var l=new XMLHttpRequest,p=!1;e.stream=l,l.addEventListener(\"readystatechange\",function(){try{if(0===l.status)return}catch(e){return}this.readyState>=this.HEADERS_RECEIVED&&!p&&(u.statusCode=l.status,u.headers=s.parseHeaders(l.getAllResponseHeaders()),u.emit(\"headers\",u.statusCode,u.headers,l.statusText),p=!0),this.readyState===this.DONE&&s.finishRequest(l,u)},!1),l.upload.addEventListener(\"progress\",function(e){u.emit(\"sendProgress\",e)}),l.addEventListener(\"progress\",function(e){u.emit(\"receiveProgress\",e)},!1),l.addEventListener(\"timeout\",function(){o(n.util.error(new Error(\"Timeout\"),{code:\"TimeoutError\"}))},!1),l.addEventListener(\"error\",function(){o(n.util.error(new Error(\"Network Failure\"),{code:\"NetworkingError\"}))},!1),l.addEventListener(\"abort\",function(){o(n.util.error(new Error(\"Request aborted\"),{code:\"RequestAbortedError\"}))},!1),r(u),l.open(e.method,c,!1!==t.xhrAsync),n.util.each(e.headers,function(e,t){\"Content-Length\"!==e&&\"User-Agent\"!==e&&\"Host\"!==e&&l.setRequestHeader(e,t)}),t.timeout&&!1!==t.xhrAsync&&(l.timeout=t.timeout),t.xhrWithCredentials&&(l.withCredentials=!0);try{l.responseType=\"arraybuffer\"}catch(e){}try{e.body?l.send(e.body):l.send()}catch(t){if(!e.body||\"object\"!=typeof e.body.buffer)throw t;l.send(e.body.buffer)}return u},parseHeaders:function(e){var t={};return n.util.arrayEach(e.split(/\\r?\\n/),function(e){var r=e.split(\":\",1)[0],n=e.substring(r.length+2);r.length>0&&(t[r.toLowerCase()]=n)}),t},finishRequest:function(e,t){var r;if(\"arraybuffer\"===e.responseType&&e.response){var i=e.response;r=new n.util.Buffer(i.byteLength);for(var o=new Uint8Array(i),s=0;s-1?t||\"\":t,this.isJsonValue?JSON.parse(t):t&&\"function\"==typeof t.toString?t.toString():t},this.toWireFormat=function(e){return this.isJsonValue?JSON.stringify(e):e}}function h(){o.apply(this,arguments),this.toType=function(e){return null===e||void 0===e?null:parseFloat(e)},this.toWireFormat=this.toType}function f(){o.apply(this,arguments),this.toType=function(e){return null===e||void 0===e?null:parseInt(e,10)},this.toWireFormat=this.toType}function d(){o.apply(this,arguments),this.toType=function(e){var t=y.base64.decode(e);if(this.isSensitive&&y.isNode()&&\"function\"==typeof y.Buffer.alloc){var r=y.Buffer.alloc(t.length,t);t.fill(0),t=r}return t},this.toWireFormat=y.base64.encode}function m(){d.apply(this,arguments)}function v(){o.apply(this,arguments),this.toType=function(e){return\"boolean\"==typeof e?e:null===e||void 0===e?null:\"true\"===e}}var g=e(\"./collection\"),y=e(\"../util\");o.normalizedTypes={character:\"string\",double:\"float\",long:\"integer\",short:\"integer\",biginteger:\"integer\",bigdecimal:\"float\",blob:\"binary\"},o.types={structure:a,list:u,map:c,boolean:v,timestamp:l,float:h,integer:f,string:p,base64:m,binary:d},o.resolve=function(e,t){if(e.shape){var r=t.api.shapes[e.shape];if(!r)throw new Error(\"Cannot find shape reference: \"+e.shape);return r}return null},o.create=function(e,t,r){if(e.isShape)return e;var n=o.resolve(e,t);if(n){var i=Object.keys(e);t.documentation||(i=i.filter(function(e){return!e.match(/documentation/)}));var s=function(){n.constructor.call(this,e,t,r)};return s.prototype=n,new s}e.type||(e.members?e.type=\"structure\":e.member?e.type=\"list\":e.key?e.type=\"map\":e.type=\"string\");var a=e.type;if(o.normalizedTypes[e.type]&&(e.type=o.normalizedTypes[e.type]),o.types[e.type])return new o.types[e.type](e,t,r);throw new Error(\"Unrecognized shape type: \"+a)},o.shapes={StructureShape:a,ListShape:u,MapShape:c,StringShape:p,BooleanShape:v,Base64Shape:m},t.exports=o},{\"../util\":73,\"./collection\":41}],46:[function(e,t,r){var n=e(\"./core\");n.ParamValidator=n.util.inherit({constructor:function(e){!0!==e&&void 0!==e||(e={min:!0}),this.validation=e},validate:function(e,t,r){if(this.errors=[],this.validateMember(e,t||{},r||\"params\"),this.errors.length>1){var i=this.errors.join(\"\\n* \");throw i=\"There were \"+this.errors.length+\" validation errors:\\n* \"+i,n.util.error(new Error(i),{code:\"MultipleValidationErrors\",errors:this.errors})}if(1===this.errors.length)throw this.errors[0];return!0},fail:function(e,t){this.errors.push(n.util.error(new Error(t),{code:e}))},validateStructure:function(e,t,r){this.validateType(t,r,[\"object\"],\"structure\");for(var n,i=0;e.required&&i= 1, but found \"'+t+'\" for '+r)},validatePattern:function(e,t,r){this.validation.pattern&&void 0!==e.pattern&&(new RegExp(e.pattern).test(t)||this.fail(\"PatternMatchError\",'Provided value \"'+t+'\" does not match regex pattern /'+e.pattern+\"/ for \"+r))},validateRange:function(e,t,r,n){this.validation.min&&void 0!==e.min&&t= \"+e.min+\", but found \"+t+\" for \"+r),this.validation.max&&void 0!==e.max&&t>e.max&&this.fail(\"MaxRangeError\",\"Expected \"+n+\" <= \"+e.max+\", but found \"+t+\" for \"+r)},validateEnum:function(e,t,r){this.validation.enum&&void 0!==e.enum&&-1===e.enum.indexOf(t)&&this.fail(\"EnumError\",\"Found string value of \"+t+\", but expected \"+e.enum.join(\"|\")+\" for \"+r)},validateType:function(e,t,r,i){if(null===e||void 0===e)return!1;for(var o=!1,s=0;s63)throw u.error(new Error,{\ncode:\"ValidationError\",message:\"Hostname label length should be between 1 to 63 characters, inclusive.\"});if(!r.test(e))throw c.util.error(new Error,{code:\"ValidationError\",message:e+\" is not hostname compatible.\"})})}var u=e(\"../util\"),c=e(\"../core\");t.exports={populateHostPrefix:n}},{\"../core\":20,\"../util\":73}],48:[function(e,t,r){function n(e){var t=e.httpRequest,r=e.service.api,n=r.targetPrefix+\".\"+r.operations[e.operation].name,i=r.jsonVersion||\"1.0\",o=r.operations[e.operation].input,s=new a;1===i&&(i=\"1.0\"),t.body=s.build(e.params||{},o),t.headers[\"Content-Type\"]=\"application/x-amz-json-\"+i,t.headers[\"X-Amz-Target\"]=n,c(e)}function i(e){var t={},r=e.httpResponse;if(t.code=r.headers[\"x-amzn-errortype\"]||\"UnknownError\",\"string\"==typeof t.code&&(t.code=t.code.split(\":\")[0]),r.body.length>0)try{var n=JSON.parse(r.body.toString()),i=n.__type||n.code||n.Code;i&&(t.code=i.split(\"#\").pop()),\"RequestEntityTooLarge\"===t.code?t.message=\"Request body must be less than 1 MB\":t.message=n.message||n.Message||null}catch(n){t.statusCode=r.statusCode,t.message=r.statusMessage}else t.statusCode=r.statusCode,t.message=r.statusCode.toString();e.error=s.error(new Error,t)}function o(e){var t=e.httpResponse.body.toString()||\"{}\";if(!1===e.request.service.config.convertResponseTypes)e.data=JSON.parse(t);else{var r=e.request.service.api.operations[e.request.operation],n=r.output||{},i=new u;e.data=i.parse(t,n)}}var s=e(\"../util\"),a=e(\"../json/builder\"),u=e(\"../json/parser\"),c=e(\"./helpers\").populateHostPrefix;t.exports={buildRequest:n,extractError:i,extractData:o}},{\"../json/builder\":38,\"../json/parser\":39,\"../util\":73,\"./helpers\":47}],49:[function(e,t,r){function n(e){var t=e.service.api.operations[e.operation],r=e.httpRequest;r.headers[\"Content-Type\"]=\"application/x-www-form-urlencoded; charset=utf-8\",r.params={Version:e.service.api.apiVersion,Action:t.name},(new u).serialize(e.params,t.input,function(e,t){r.params[e]=t}),r.body=a.queryParamsToString(r.params),l(e)}function i(e){var t,r=e.httpResponse.body.toString();if(r.match(\"=0?\"&\":\"?\";var a=[];l.arrayEach(Object.keys(o).sort(),function(e){Array.isArray(o[e])||(o[e]=[o[e]]);for(var t=0;t0){t=new a.XML.Parser;var p=t.parse(n.toString(),o);u.update(e.data,p)}}var a=e(\"../core\"),u=e(\"../util\"),c=e(\"./rest\");t.exports={buildRequest:i,extractError:o,extractData:s}},{\"../core\":20,\"../util\":73,\"./rest\":50}],53:[function(e,t,r){function n(){}function i(e){return e.isQueryName||\"ec2\"!==e.api.protocol?e.name:e.name[0].toUpperCase()+e.name.substr(1)}function o(e,t,r,n){c.each(r.members,function(r,o){var s=t[r];if(null!==s&&void 0!==s){var a=i(o);a=e?e+\".\"+a:a,u(a,s,o,n)}})}function s(e,t,r,n){var i=1;c.each(t,function(t,o){var s=r.flattened?\".\":\".entry.\",a=s+i+++\".\",c=a+(r.key.name||\"key\"),l=a+(r.value.name||\"value\");u(e+c,t,r.key,n),u(e+l,o,r.value,n)})}function a(e,t,r,n){var o=r.member||{};if(0===t.length)return void n.call(this,e,null);c.arrayEach(t,function(t,s){var a=\".\"+(s+1);if(\"ec2\"===r.api.protocol)a+=\"\";else if(r.flattened){if(o.name){var c=e.split(\".\");c.pop(),c.push(i(o)),e=c.join(\".\")}}else a=\".\"+(o.name?o.name:\"member\")+a;u(e+a,t,o,n)})}function u(e,t,r,n){null!==t&&void 0!==t&&(\"structure\"===r.type?o(e,t,r,n):\"list\"===r.type?a(e,t,r,n):\"map\"===r.type?s(e,t,r,n):n(e,r.toWireFormat(t).toString()))}var c=e(\"../util\");n.prototype.serialize=function(e,t,r){o(\"\",e,t,r)},t.exports=n},{\"../util\":73}],54:[function(e,t,r){t.exports={now:function(){return\"undefined\"!=typeof performance&&\"function\"==typeof performance.now?performance.now():Date.now()}}},{}],55:[function(e,t,r){function n(e){if(!e)return null;var t=e.split(\"-\");return t.length<3?null:t.slice(0,t.length-2).join(\"-\")+\"-*\"}function i(e){var t=e.config.region,r=n(t),i=e.api.endpointPrefix;return[[t,i],[r,i],[t,\"*\"],[r,\"*\"],[\"*\",i],[\"*\",\"*\"]].map(function(e){return e[0]&&e[1]?e.join(\"/\"):null})}function o(e,t){u.each(t,function(t,r){\"globalEndpoint\"!==t&&(void 0!==e.config[t]&&null!==e.config[t]||(e.config[t]=r))})}function s(e){for(var t=i(e),r=0;r=0){u=!0;var c=0}var l=function(){u&&c!==a?i.emit(\"error\",n.util.error(new Error(\"Stream content length mismatch. Received \"+c+\" of \"+a+\" bytes.\"),{code:\"StreamContentLengthMismatch\"})):2===n.HttpClient.streamsApiVersion?i.end():i.emit(\"end\")},p=s.httpResponse.createUnbufferedStream();if(2===n.HttpClient.streamsApiVersion)if(u){var h=new e.PassThrough;h._write=function(t){return t&&t.length&&(c+=t.length),e.PassThrough.prototype._write.apply(this,arguments)},h.on(\"end\",l),i.on(\"error\",function(e){u=!1,p.unpipe(h),h.emit(\"end\"),h.end()}),p.pipe(h).pipe(i,{end:!1})}else p.pipe(i);else u&&p.on(\"data\",function(e){e&&e.length&&(c+=e.length)}),p.on(\"data\",function(e){i.emit(\"data\",e)}),p.on(\"end\",l);p.on(\"error\",function(e){u=!1,i.emit(\"error\",e)})}}),i},emitEvent:function(e,t,r){\"function\"==typeof t&&(r=t,t=null),r||(r=function(){}),t||(t=this.eventParameters(e,this.response)),n.SequentialExecutor.prototype.emit.call(this,e,t,function(e){e&&(this.response.error=e),r.call(this,e)})},eventParameters:function(e){switch(e){case\"restart\":case\"validate\":case\"sign\":case\"build\":case\"afterValidate\":case\"afterBuild\":return[this];case\"error\":return[this.response.error,this.response];default:return[this.response]}},presign:function(e,t){return t||\"function\"!=typeof e||(t=e,e=null),(new n.Signers.Presign).sign(this.toGet(),e,t)},isPresigned:function(){return Object.prototype.hasOwnProperty.call(this.httpRequest.headers,\"presigned-expires\")},toUnauthenticated:function(){return this._unAuthenticated=!0,this.removeListener(\"validate\",n.EventListeners.Core.VALIDATE_CREDENTIALS),this.removeListener(\"sign\",n.EventListeners.Core.SIGN),this},toGet:function(){return\"query\"!==this.service.api.protocol&&\"ec2\"!==this.service.api.protocol||(this.removeListener(\"build\",this.buildAsGet),this.addListener(\"build\",this.buildAsGet)),this},buildAsGet:function(e){e.httpRequest.method=\"GET\",e.httpRequest.path=e.service.endpoint.path+\"?\"+e.httpRequest.body,e.httpRequest.body=\"\",delete e.httpRequest.headers[\"Content-Length\"],delete e.httpRequest.headers[\"Content-Type\"]},haltHandlersOnError:function(){this._haltHandlersOnError=!0}}),n.Request.addPromisesToClass=function(e){this.prototype.promise=function(){var t=this;return this.httpRequest.appendToUserAgent(\"promise\"),new e(function(e,r){t.on(\"complete\",function(t){t.error?r(t.error):e(Object.defineProperty(t.data||{},\"$response\",{value:t}))}),t.runTo()})}},n.Request.deletePromisesFromClass=function(){delete this.prototype.promise},n.util.addPromises(n.Request),n.util.mixin(n.Request,n.SequentialExecutor)}).call(this)}).call(this,e(\"_process\"))},{\"./core\":20,\"./state_machine\":72,_process:87,jmespath:86}],58:[function(e,t,r){function n(e){var t=e.request._waiter,r=t.config.acceptors,n=!1,i=\"retry\";r.forEach(function(r){if(!n){var o=t.matchers[r.matcher];o&&o(e,r.expected,r.argument)&&(n=!0,i=r.state)}}),!n&&e.error&&(i=\"failure\"),\"success\"===i?t.setSuccess(e):t.setError(e,\"retry\"===i)}var i=e(\"./core\"),o=i.util.inherit,s=e(\"jmespath\");i.ResourceWaiter=o({constructor:function(e,t){this.service=e,this.state=t,this.loadWaiterConfig(this.state)},service:null,state:null,config:null,matchers:{path:function(e,t,r){try{var n=s.search(e.data,r)}catch(e){return!1}return s.strictDeepEqual(n,t)},pathAll:function(e,t,r){try{var n=s.search(e.data,r)}catch(e){return!1}Array.isArray(n)||(n=[n]);var i=n.length;if(!i)return!1;for(var o=0;o-1&&r.splice(i,1)}return this},removeAllListeners:function(e){return e?delete this._events[e]:this._events={},this},emit:function(e,t,r){r||(r=function(){});var n=this.listeners(e),i=n.length;return this.callListeners(n,t,r),i>0},callListeners:function(e,t,r,i){function o(i){if(i&&(a=n.util.error(a||new Error,i),s._haltHandlersOnError))return r.call(s,a);s.callListeners(e,t,r,a)}for(var s=this,a=i||null;e.length>0;){var u=e.shift();if(u._isAsync)return void u.apply(s,t.concat([o]));try{u.apply(s,t)}catch(e){a=n.util.error(a||new Error,e)}if(a&&s._haltHandlersOnError)return void r.call(s,a)}r.call(s,a)},addListeners:function(e){var t=this;return e._events&&(e=e._events),n.util.each(e,function(e,r){\"function\"==typeof r&&(r=[r]),n.util.arrayEach(r,function(r){t.on(e,r)})}),t},addNamedListener:function(e,t,r,n){return this[e]=r,this.addListener(t,r,n),this},addNamedAsyncListener:function(e,t,r,n){return r._isAsync=!0,this.addNamedListener(e,t,r,n)},addNamedListeners:function(e){var t=this;return e(function(){t.addNamedListener.apply(t,arguments)},function(){t.addNamedAsyncListener.apply(t,arguments)}),this}}),n.SequentialExecutor.prototype.addListener=n.SequentialExecutor.prototype.on,t.exports=n.SequentialExecutor},{\"./core\":20}],61:[function(e,t,r){(function(r){(function(){var n=e(\"./core\"),i=e(\"./model/api\"),o=e(\"./region_config\"),s=n.util.inherit,a=0;n.Service=s({constructor:function(e){if(!this.loadServiceClass)throw n.util.error(new Error,\"Service must be constructed with `new' operator\");var t=this.loadServiceClass(e||{});if(t){var r=n.util.copy(e),i=new t(e);return Object.defineProperty(i,\"_originalConfig\",{get:function(){return r},enumerable:!1,configurable:!0}),i._clientId=++a,i}this.initialize(e)},initialize:function(e){var t=n.config[this.serviceIdentifier];if(this.config=new n.Config(n.config),t&&this.config.update(t,!0),e&&this.config.update(e,!0),this.validateService(),this.config.endpoint||o.configureEndpoint(this),this.config.endpoint=this.endpointFromTemplate(this.config.endpoint),this.setEndpoint(this.config.endpoint),n.SequentialExecutor.call(this),n.Service.addDefaultMonitoringListeners(this),(this.config.clientSideMonitoring||n.Service._clientSideMonitoring)&&this.publisher){var i=this.publisher;this.addNamedListener(\"PUBLISH_API_CALL\",\"apiCall\",function(e){r.nextTick(function(){i.eventHandler(e)})}),this.addNamedListener(\"PUBLISH_API_ATTEMPT\",\"apiCallAttempt\",function(e){r.nextTick(function(){i.eventHandler(e)})})}},validateService:function(){},loadServiceClass:function(e){var t=e;if(n.util.isEmpty(this.api)){if(t.apiConfig)return n.Service.defineServiceApi(this.constructor,t.apiConfig);if(this.constructor.services){t=new n.Config(n.config),t.update(e,!0);var r=t.apiVersions[this.constructor.serviceIdentifier];return r=r||t.apiVersion,this.getLatestServiceClass(r)}return null}return null},getLatestServiceClass:function(e){return e=this.getLatestServiceVersion(e),null===this.constructor.services[e]&&n.Service.defineServiceApi(this.constructor,e),this.constructor.services[e]},getLatestServiceVersion:function(e){if(!this.constructor.services||0===this.constructor.services.length)throw new Error(\"No services defined on \"+this.constructor.serviceIdentifier);if(e?n.util.isType(e,Date)&&(e=n.util.date.iso8601(e).split(\"T\")[0]):e=\"latest\",Object.hasOwnProperty(this.constructor.services,e))return e;for(var t=Object.keys(this.constructor.services).sort(),r=null,i=t.length-1;i>=0;i--)if(\"*\"!==t[i][t[i].length-1]&&(r=t[i]),t[i].substr(0,10)<=e)return r;throw new Error(\"Could not find \"+this.constructor.serviceIdentifier+\" API to satisfy version constraint `\"+e+\"'\")},api:{},defaultRetryCount:3,customizeRequests:function(e){if(e){if(\"function\"!=typeof e)throw new Error(\"Invalid callback type '\"+typeof e+\"' provided in customizeRequests\");this.customRequestHandler=e}else this.customRequestHandler=null},makeRequest:function(e,t,r){if(\"function\"==typeof t&&(r=t,t=null),t=t||{},this.config.params){var i=this.api.operations[e];i&&(t=n.util.copy(t),n.util.each(this.config.params,function(e,r){i.input.members[e]&&(void 0!==t[e]&&null!==t[e]||(t[e]=r))}))}var o=new n.Request(this,e,t);return this.addAllRequestListeners(o),this.attachMonitoringEmitter(o),r&&o.send(r),o},makeUnauthenticatedRequest:function(e,t,r){\"function\"==typeof t&&(r=t,t={});var n=this.makeRequest(e,t).toUnauthenticated();return r?n.send(r):n},waitFor:function(e,t,r){return new n.ResourceWaiter(this,e).wait(t,r)},addAllRequestListeners:function(e){for(var t=[n.events,n.EventListeners.Core,this.serviceInterface(),n.EventListeners.CorePost],r=0;r299?(i.code&&(r.FinalAwsException=i.code),i.message&&(r.FinalAwsExceptionMessage=i.message)):((i.code||i.name)&&(r.FinalSdkException=i.code||i.name),i.message&&(r.FinalSdkExceptionMessage=i.message))}return r},apiAttemptEvent:function(e){var t=e.service.api.operations[e.operation],r={Type:\"ApiCallAttempt\",Api:t?t.name:e.operation,Version:1,Service:e.service.api.serviceId||e.service.api.endpointPrefix,Fqdn:e.httpRequest.endpoint.hostname,UserAgent:e.httpRequest.getUserAgent()},n=e.response;return n.httpResponse.statusCode&&(r.HttpStatusCode=n.httpResponse.statusCode),!e._unAuthenticated&&e.service.config.credentials&&e.service.config.credentials.accessKeyId&&(r.AccessKey=e.service.config.credentials.accessKeyId),n.httpResponse.headers?(e.httpRequest.headers[\"x-amz-security-token\"]&&(r.SessionToken=e.httpRequest.headers[\"x-amz-security-token\"]),n.httpResponse.headers[\"x-amzn-requestid\"]&&(r.XAmznRequestId=n.httpResponse.headers[\"x-amzn-requestid\"]),n.httpResponse.headers[\"x-amz-request-id\"]&&(r.XAmzRequestId=n.httpResponse.headers[\"x-amz-request-id\"]),n.httpResponse.headers[\"x-amz-id-2\"]&&(r.XAmzId2=n.httpResponse.headers[\"x-amz-id-2\"]),r):r},attemptFailEvent:function(e){var t=this.apiAttemptEvent(e),r=e.response,n=r.error;return r.httpResponse.statusCode>299?(n.code&&(t.AwsException=n.code),n.message&&(t.AwsExceptionMessage=n.message)):((n.code||n.name)&&(t.SdkException=n.code||n.name),n.message&&(t.SdkExceptionMessage=n.message)),t},attachMonitoringEmitter:function(e){var t,r,i,o,s,a,u=0,c=this;e.on(\"validate\",function(){o=n.util.realClock.now(),a=Date.now()},!0),e.on(\"sign\",function(){r=n.util.realClock.now(),t=Date.now(),s=e.httpRequest.region,u++},!0),e.on(\"validateResponse\",function(){i=Math.round(n.util.realClock.now()-r)}),e.addNamedListener(\"API_CALL_ATTEMPT\",\"success\",function(){var r=c.apiAttemptEvent(e);r.Timestamp=t,r.AttemptLatency=i>=0?i:0,r.Region=s,c.emit(\"apiCallAttempt\",[r])}),e.addNamedListener(\"API_CALL_ATTEMPT_RETRY\",\"retry\",function(){var o=c.attemptFailEvent(e);o.Timestamp=t,i=i||Math.round(n.util.realClock.now()-r),o.AttemptLatency=i>=0?i:0,o.Region=s,c.emit(\"apiCallAttempt\",[o])}),e.addNamedListener(\"API_CALL\",\"complete\",function(){var t=c.apiCallEvent(e);if(t.AttemptCount=u,!(t.AttemptCount<=0)){t.Timestamp=a;var r=Math.round(n.util.realClock.now()-o);t.Latency=r>=0?r:0;var i=e.response;i.error&&i.error.retryable&&\"number\"==typeof i.retryCount&&\"number\"==typeof i.maxRetries&&i.retryCount>=i.maxRetries&&(t.MaxRetriesExceeded=1),c.emit(\"apiCall\",[t])}})},setupRequestListeners:function(e){},getSigningName:function(){return this.api.signingName||this.api.endpointPrefix},getSignerClass:function(e){\nvar t,r=null,i=\"\";if(e){r=(e.service.api.operations||{})[e.operation]||null,i=r?r.authtype:\"\"}return t=this.config.signatureVersion?this.config.signatureVersion:\"v4\"===i||\"v4-unsigned-body\"===i?\"v4\":this.api.signatureVersion,n.Signers.RequestSigner.getVersion(t)},serviceInterface:function(){switch(this.api.protocol){case\"ec2\":case\"query\":return n.EventListeners.Query;case\"json\":return n.EventListeners.Json;case\"rest-json\":return n.EventListeners.RestJson;case\"rest-xml\":return n.EventListeners.RestXml}if(this.api.protocol)throw new Error(\"Invalid service `protocol' \"+this.api.protocol+\" in API config\")},successfulResponse:function(e){return e.httpResponse.statusCode<300},numRetries:function(){return void 0!==this.config.maxRetries?this.config.maxRetries:this.defaultRetryCount},retryDelays:function(e,t){return n.util.calculateRetryDelay(e,this.config.retryDelayOptions,t)},retryableError:function(e){return!!this.timeoutError(e)||(!!this.networkingError(e)||(!!this.expiredCredentialsError(e)||(!!this.throttledError(e)||e.statusCode>=500)))},networkingError:function(e){return\"NetworkingError\"===e.code},timeoutError:function(e){return\"TimeoutError\"===e.code},expiredCredentialsError:function(e){return\"ExpiredTokenException\"===e.code},clockSkewError:function(e){switch(e.code){case\"RequestTimeTooSkewed\":case\"RequestExpired\":case\"InvalidSignatureException\":case\"SignatureDoesNotMatch\":case\"AuthFailure\":case\"RequestInTheFuture\":return!0;default:return!1}},getSkewCorrectedDate:function(){return new Date(Date.now()+this.config.systemClockOffset)},applyClockOffset:function(e){e&&(this.config.systemClockOffset=e-Date.now())},isClockSkewed:function(e){if(e)return Math.abs(this.getSkewCorrectedDate().getTime()-e)>=3e5},throttledError:function(e){if(429===e.statusCode)return!0;switch(e.code){case\"ProvisionedThroughputExceededException\":case\"Throttling\":case\"ThrottlingException\":case\"RequestLimitExceeded\":case\"RequestThrottled\":case\"RequestThrottledException\":case\"TooManyRequestsException\":case\"TransactionInProgressException\":case\"EC2ThrottledException\":return!0;default:return!1}},endpointFromTemplate:function(e){if(\"string\"!=typeof e)return e;var t=e;return t=t.replace(/\\{service\\}/g,this.api.endpointPrefix),t=t.replace(/\\{region\\}/g,this.config.region),t=t.replace(/\\{scheme\\}/g,this.config.sslEnabled?\"https\":\"http\")},setEndpoint:function(e){this.endpoint=new n.Endpoint(e,this.config)},paginationConfig:function(e,t){var r=this.api.operations[e].paginator;if(!r){if(t){var i=new Error;throw n.util.error(i,\"No pagination configuration for \"+e)}return null}return r}}),n.util.update(n.Service,{defineMethods:function(e){n.util.each(e.prototype.api.operations,function(t){if(!e.prototype[t]){\"none\"===e.prototype.api.operations[t].authtype?e.prototype[t]=function(e,r){return this.makeUnauthenticatedRequest(t,e,r)}:e.prototype[t]=function(e,r){return this.makeRequest(t,e,r)}}})},defineService:function(e,t,r){n.Service._serviceMap[e]=!0,Array.isArray(t)||(r=t,t=[]);var i=s(n.Service,r||{});if(\"string\"==typeof e){n.Service.addVersions(i,t);var o=i.serviceIdentifier||e;i.serviceIdentifier=o}else i.prototype.api=e,n.Service.defineMethods(i);if(n.SequentialExecutor.call(this.prototype),!this.prototype.publisher&&n.util.clientSideMonitoring){var a=n.util.clientSideMonitoring.Publisher,u=n.util.clientSideMonitoring.configProvider,c=u();this.prototype.publisher=new a(c),c.enabled&&(n.Service._clientSideMonitoring=!0)}return n.SequentialExecutor.call(i.prototype),n.Service.addDefaultMonitoringListeners(i.prototype),i},addVersions:function(e,t){Array.isArray(t)||(t=[t]),e.services=e.services||{};for(var r=0;r604800){throw o.util.error(new Error,{code:\"InvalidExpiryTime\",message:\"Presigning does not support expiry time greater than a week with SigV4 signing.\",retryable:!1})}e.httpRequest.headers[a]=t}else{if(r!==o.Signers.S3)throw o.util.error(new Error,{message:\"Presigning only supports S3 or SigV4 signing.\",code:\"UnsupportedSigner\",retryable:!1});var n=e.service?e.service.getSkewCorrectedDate():o.util.date.getDate();e.httpRequest.headers[a]=parseInt(o.util.date.unixTimestamp(n)+t,10).toString()}}function i(e){var t=e.httpRequest.endpoint,r=o.util.urlParse(e.httpRequest.path),n={};r.search&&(n=o.util.queryStringParse(r.search.substr(1)));var i=e.httpRequest.headers.Authorization.split(\" \");if(\"AWS\"===i[0])i=i[1].split(\":\"),n.Signature=i.pop(),n.AWSAccessKeyId=i.join(\":\"),o.util.each(e.httpRequest.headers,function(e,t){e===a&&(e=\"Expires\"),0===e.indexOf(\"x-amz-meta-\")&&(delete n[e],e=e.toLowerCase()),n[e]=t}),delete e.httpRequest.headers[a],delete n.Authorization,delete n.Host;else if(\"AWS4-HMAC-SHA256\"===i[0]){i.shift();var s=i.join(\" \"),u=s.match(/Signature=(.*?)(?:,|\\s|\\r?\\n|$)/)[1];n[\"X-Amz-Signature\"]=u,delete n.Expires}t.pathname=r.pathname,t.search=o.util.queryParamsToString(n)}var o=e(\"../core\"),s=o.util.inherit,a=\"presigned-expires\";o.Signers.Presign=s({sign:function(e,t,r){if(e.httpRequest.headers[a]=t||3600,e.on(\"build\",n),e.on(\"sign\",i),e.removeListener(\"afterBuild\",o.EventListeners.Core.SET_CONTENT_LENGTH),e.removeListener(\"afterBuild\",o.EventListeners.Core.COMPUTE_SHA256),e.emit(\"beforePresign\",[e]),!r){if(e.build(),e.response.error)throw e.response.error;return o.util.urlFormat(e.httpRequest.endpoint)}e.build(function(){this.response.error?r(this.response.error):r(null,o.util.urlFormat(e.httpRequest.endpoint))})}}),t.exports=o.Signers.Presign},{\"../core\":20}],65:[function(e,t,r){var n=e(\"../core\"),i=n.util.inherit;n.Signers.RequestSigner=i({constructor:function(e){this.request=e},setServiceClientId:function(e){this.serviceClientId=e},getServiceClientId:function(){return this.serviceClientId}}),n.Signers.RequestSigner.getVersion=function(e){switch(e){case\"v2\":return n.Signers.V2;case\"v3\":return n.Signers.V3;case\"s3v4\":case\"v4\":return n.Signers.V4;case\"s3\":return n.Signers.S3;case\"v3https\":return n.Signers.V3Https}throw new Error(\"Unknown signing version \"+e)},e(\"./v2\"),e(\"./v3\"),e(\"./v3https\"),e(\"./v4\"),e(\"./s3\"),e(\"./presign\")},{\"../core\":20,\"./presign\":64,\"./s3\":66,\"./v2\":67,\"./v3\":68,\"./v3https\":69,\"./v4\":70}],66:[function(e,t,r){var n=e(\"../core\"),i=n.util.inherit;n.Signers.S3=i(n.Signers.RequestSigner,{subResources:{acl:1,accelerate:1,analytics:1,cors:1,lifecycle:1,delete:1,inventory:1,location:1,logging:1,metrics:1,notification:1,partNumber:1,policy:1,requestPayment:1,replication:1,restore:1,tagging:1,torrent:1,uploadId:1,uploads:1,versionId:1,versioning:1,versions:1,website:1},responseHeaders:{\"response-content-type\":1,\"response-content-language\":1,\"response-expires\":1,\"response-cache-control\":1,\"response-content-disposition\":1,\"response-content-encoding\":1},addAuthorization:function(e,t){this.request.headers[\"presigned-expires\"]||(this.request.headers[\"X-Amz-Date\"]=n.util.date.rfc822(t)),e.sessionToken&&(this.request.headers[\"x-amz-security-token\"]=e.sessionToken);var r=this.sign(e.secretAccessKey,this.stringToSign()),i=\"AWS \"+e.accessKeyId+\":\"+r;this.request.headers.Authorization=i},stringToSign:function(){var e=this.request,t=[];t.push(e.method),t.push(e.headers[\"Content-MD5\"]||\"\"),t.push(e.headers[\"Content-Type\"]||\"\"),t.push(e.headers[\"presigned-expires\"]||\"\");var r=this.canonicalizedAmzHeaders();return r&&t.push(r),t.push(this.canonicalizedResource()),t.join(\"\\n\")},canonicalizedAmzHeaders:function(){var e=[];n.util.each(this.request.headers,function(t){t.match(/^x-amz-/i)&&e.push(t)}),e.sort(function(e,t){return e.toLowerCase()=0?\"&\":\"?\";this.request.path+=o+n.util.queryParamsToString(i)},authorization:function(e,t){var r=[],n=this.credentialString(t);return r.push(this.algorithm+\" Credential=\"+e.accessKeyId+\"/\"+n),r.push(\"SignedHeaders=\"+this.signedHeaders()),r.push(\"Signature=\"+this.signature(e,t)),r.join(\", \")},signature:function(e,t){var r=i.getSigningKey(e,t.substr(0,8),this.request.region,this.serviceName,this.signatureCache);return n.util.crypto.hmac(r,this.stringToSign(t),\"hex\")},stringToSign:function(e){var t=[];return t.push(\"AWS4-HMAC-SHA256\"),t.push(e),t.push(this.credentialString(e)),t.push(this.hexEncodedHash(this.canonicalString())),t.join(\"\\n\")},canonicalString:function(){var e=[],t=this.request.pathname();return\"s3\"!==this.serviceName&&\"s3v4\"!==this.signatureVersion&&(t=n.util.uriEscapePath(t)),e.push(this.request.method),e.push(t),e.push(this.request.search()),e.push(this.canonicalHeaders()+\"\\n\"),e.push(this.signedHeaders()),e.push(this.hexEncodedBodyHash()),e.join(\"\\n\")},canonicalHeaders:function(){var e=[];n.util.each.call(this,this.request.headers,function(t,r){e.push([t,r])}),e.sort(function(e,t){return e[0].toLowerCase()50&&delete i[o.shift()]),f},emptyCache:function(){i={},o=[]}}},{\"../core\":20}],72:[function(e,t,r){function n(e,t){this.currentState=t||null,this.states=e||{}}n.prototype.runTo=function(e,t,r,n){\"function\"==typeof e&&(n=r,r=t,t=e,e=null);var i=this,o=i.states[i.currentState];o.fn.call(r||i,n,function(n){if(n){if(!o.fail)return t?t.call(r,n):null;i.currentState=o.fail}else{if(!o.accept)return t?t.call(r):null;i.currentState=o.accept}if(i.currentState===e)return t?t.call(r,n):null;i.runTo(e,t,r,n)})},n.prototype.addState=function(e,t,r,n){return\"function\"==typeof t?(n=t,t=null,r=null):\"function\"==typeof r&&(n=r,r=null),this.currentState||(this.currentState=e),this.states[e]={accept:t,fail:r,fn:n},this},t.exports=n},{}],73:[function(e,t,r){(function(r,n){(function(){var i,o={environment:\"nodejs\",engine:function(){if(o.isBrowser()&&\"undefined\"!=typeof navigator)return navigator.userAgent;var e=r.platform+\"/\"+r.version;return r.env.AWS_EXECUTION_ENV&&(e+=\" exec-env/\"+r.env.AWS_EXECUTION_ENV),e},userAgent:function(){var t=o.environment,r=\"aws-sdk-\"+t+\"/\"+e(\"./core\").VERSION;return\"nodejs\"===t&&(r+=\" \"+o.engine()),r},uriEscape:function(e){var t=encodeURIComponent(e);return t=t.replace(/[^A-Za-z0-9_.~\\-%]+/g,escape),t=t.replace(/[*]/g,function(e){return\"%\"+e.charCodeAt(0).toString(16).toUpperCase()})},uriEscapePath:function(e){var t=[];return o.arrayEach(e.split(\"/\"),function(e){t.push(o.uriEscape(e))}),t.join(\"/\")},urlParse:function(e){return o.url.parse(e)},urlFormat:function(e){return o.url.format(e)},queryStringParse:function(e){return o.querystring.parse(e)},queryParamsToString:function(e){var t=[],r=o.uriEscape,n=Object.keys(e).sort();return o.arrayEach(n,function(n){var i=e[n],s=r(n),a=s+\"=\";if(Array.isArray(i)){var u=[];o.arrayEach(i,function(e){u.push(r(e))}),a=s+\"=\"+u.sort().join(\"&\"+s+\"=\")}else void 0!==i&&null!==i&&(a=s+\"=\"+r(i));t.push(a)}),t.join(\"&\")},readFileSync:function(t){return o.isBrowser()?null:e(\"fs\").readFileSync(t,\"utf-8\")},base64:{encode:function(e){if(\"number\"==typeof e)throw o.error(new Error(\"Cannot base64 encode number \"+e));return null===e||void 0===e?e:o.buffer.toBuffer(e).toString(\"base64\")},decode:function(e){if(\"number\"==typeof e)throw o.error(new Error(\"Cannot base64 decode number \"+e));return null===e||void 0===e?e:o.buffer.toBuffer(e,\"base64\")}},buffer:{toBuffer:function(e,t){return\"function\"==typeof o.Buffer.from&&o.Buffer.from!==Uint8Array.from?o.Buffer.from(e,t):new o.Buffer(e,t)},alloc:function(e,t,r){if(\"number\"!=typeof e)throw new Error(\"size passed to alloc must be a number.\");if(\"function\"==typeof o.Buffer.alloc)return o.Buffer.alloc(e,t,r);var n=new o.Buffer(e);return void 0!==t&&\"function\"==typeof n.fill&&n.fill(t,void 0,void 0,r),n},toStream:function(e){o.Buffer.isBuffer(e)||(e=o.buffer.toBuffer(e));var t=new o.stream.Readable,r=0;return t._read=function(n){if(r>=e.length)return t.push(null);var i=r+n;i>e.length&&(i=e.length),t.push(e.slice(r,i)),r=i},t},concat:function(e){var t,r=0,n=0,i=null;for(t=0;t>>8^t[255&(r^e.readUInt8(n))]}return(-1^r)>>>0},hmac:function(e,t,r,n){return r||(r=\"binary\"),\"buffer\"===r&&(r=void 0),n||(n=\"sha256\"),\"string\"==typeof t&&(t=o.buffer.toBuffer(t)),o.crypto.lib.createHmac(n,e).update(t).digest(r)},md5:function(e,t,r){return o.crypto.hash(\"md5\",e,t,r)},sha256:function(e,t,r){return o.crypto.hash(\"sha256\",e,t,r)},hash:function(e,t,r,n){var i=o.crypto.createHash(e);r||(r=\"binary\"),\"buffer\"===r&&(r=void 0),\"string\"==typeof t&&(t=o.buffer.toBuffer(t));var s=o.arraySliceFn(t),a=o.Buffer.isBuffer(t);if(o.isBrowser()&&\"undefined\"!=typeof ArrayBuffer&&t&&t.buffer instanceof ArrayBuffer&&(a=!0),n&&\"object\"==typeof t&&\"function\"==typeof t.on&&!a)t.on(\"data\",function(e){i.update(e)}),t.on(\"error\",function(e){n(e)}),t.on(\"end\",function(){n(null,i.digest(r))});else{if(!n||!s||a||\"undefined\"==typeof FileReader){o.isBrowser()&&\"object\"==typeof t&&!a&&(t=new o.Buffer(new Uint8Array(t)));var u=i.update(t).digest(r);return n&&n(null,u),u}var c=0,l=new FileReader;l.onerror=function(){n(new Error(\"Failed to read data.\"))},l.onload=function(){var e=new o.Buffer(new Uint8Array(l.result));i.update(e),c+=e.length,l._continueReading()},l._continueReading=function(){if(c>=t.size)return void n(null,i.digest(r));var e=c+524288;e>t.size&&(e=t.size),l.readAsArrayBuffer(s.call(t,c,e))},l._continueReading()}},toHex:function(e){for(var t=[],r=0;r=3e5,!1),i.config.isClockSkewed},applyClockOffset:function(e){e&&(i.config.systemClockOffset=e-(new Date).getTime())},extractRequestId:function(e){var t=e.httpResponse.headers[\"x-amz-request-id\"]||e.httpResponse.headers[\"x-amzn-requestid\"];!t&&e.data&&e.data.ResponseMetadata&&(t=e.data.ResponseMetadata.RequestId),t&&(e.requestId=t),e.error&&(e.error.requestId=t)},addPromises:function(e,t){var r=!1;void 0===t&&i&&i.config&&(t=i.config.getPromisesDependency()),void 0===t&&\"undefined\"!=typeof Promise&&(t=Promise),\"function\"!=typeof t&&(r=!0),Array.isArray(e)||(e=[e]);for(var n=0;n=0)return a++,void setTimeout(c,i+(e.retryAfter||0))}r(e)},c=function(){var t=\"\";n.handleRequest(e,s,function(e){e.on(\"data\",function(e){t+=e.toString()}),e.on(\"end\",function(){var n=e.statusCode;if(n<300)r(null,t);else{var i=1e3*parseInt(e.headers[\"retry-after\"],10)||0,s=o.error(new Error,{statusCode:n,retryable:n>=500||429===n});i&&s.retryable&&(s.retryAfter=i),u(s)}})},u)};i.util.defer(c)},uuid:{v4:function(){return e(\"uuid\").v4()}},convertPayloadToString:function(e){var t=e.request,r=t.operation,n=t.service.api.operations[r].output||{};n.payload&&e.data[n.payload]&&(e.data[n.payload]=e.data[n.payload].toString())},defer:function(e){\"object\"==typeof r&&\"function\"==typeof r.nextTick?r.nextTick(e):\"function\"==typeof n?n(e):setTimeout(e,0)},getRequestPayloadShape:function(e){var t=e.service.api.operations;if(t){var r=(t||{})[e.operation];if(r&&r.input&&r.input.payload)return r.input.members[r.input.payload]}},getProfilesFromSharedConfig:function(e,t){function n(e,t){for(var r=0,n=Object.keys(t);r=6},parse:function(e){var t=e.split(\":\");return{partition:t[1],service:t[2],region:t[3],accountId:t[4],resource:t.slice(5).join(\":\")}},build:function(e){if(void 0===e.service||void 0===e.region||void 0===e.accountId||void 0===e.resource)throw o.error(new Error(\"Input ARN object is invalid\"));return\"arn:\"+(e.partition||\"aws\")+\":\"+e.service+\":\"+e.region+\":\"+e.accountId+\":\"+e.resource}},defaultProfile:\"default\",configOptInEnv:\"AWS_SDK_LOAD_CONFIG\",sharedCredentialsFileEnv:\"AWS_SHARED_CREDENTIALS_FILE\",sharedConfigFileEnv:\"AWS_CONFIG_FILE\",imdsDisabledEnv:\"AWS_EC2_METADATA_DISABLED\"};t.exports=o}).call(this)}).call(this,e(\"_process\"),e(\"timers\").setImmediate)},{\"../apis/metadata.json\":5,\"./core\":20,_process:87,fs:81,timers:95,uuid:100}],74:[function(e,t,r){function n(){}function i(e,t){for(var r=e.getElementsByTagName(t),n=0,i=r.length;n0||n?o.toString():\"\"},t.exports=n},{\"../util\":73,\"./xml-node\":78,\"./xml-text\":79}],76:[function(e,t,r){function n(e){return e.replace(/&/g,\"&\").replace(/'/g,\"'\").replace(//g,\">\").replace(/\"/g,\""\")}t.exports={escapeAttribute:n}},{}],77:[function(e,t,r){function n(e){return e.replace(/&/g,\"&\").replace(//g,\">\")}t.exports={escapeElement:n}},{}],78:[function(e,t,r){function n(e,t){void 0===t&&(t=[]),this.name=e,this.children=t,this.attributes={}}var i=e(\"./escape-attribute\").escapeAttribute;n.prototype.addAttribute=function(e,t){return this.attributes[e]=t,this},n.prototype.addChildNode=function(e){return this.children.push(e),this},n.prototype.removeAttribute=function(e){return delete this.attributes[e],this},n.prototype.toString=function(){for(var e=Boolean(this.children.length),t=\"<\"+this.name,r=this.attributes,n=0,o=Object.keys(r);n\"+this.children.map(function(e){return e.toString()}).join(\"\")+\"\":\"/>\"},t.exports={XmlNode:n}},{\"./escape-attribute\":76}],79:[function(e,t,r){function n(e){this.value=e}var i=e(\"./escape-element\").escapeElement;n.prototype.toString=function(){return i(\"\"+this.value)},t.exports={XmlText:n}},{\"./escape-element\":77}],80:[function(e,t,r){\"use strict\";function n(e){var t=e.length;if(t%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=e.indexOf(\"=\");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function i(e){var t=n(e),r=t[0],i=t[1];return 3*(r+i)/4-i}function o(e,t,r){return 3*(t+r)/4-r}function s(e){var t,r,i=n(e),s=i[0],a=i[1],u=new h(o(e,s,a)),c=0,l=a>0?s-4:s;for(r=0;r>16&255,u[c++]=t>>8&255,u[c++]=255&t;return 2===a&&(t=p[e.charCodeAt(r)]<<2|p[e.charCodeAt(r+1)]>>4,u[c++]=255&t),1===a&&(t=p[e.charCodeAt(r)]<<10|p[e.charCodeAt(r+1)]<<4|p[e.charCodeAt(r+2)]>>2,u[c++]=t>>8&255,u[c++]=255&t),u}function a(e){return l[e>>18&63]+l[e>>12&63]+l[e>>6&63]+l[63&e]}function u(e,t,r){for(var n,i=[],o=t;os?s:o+16383));return 1===n?(t=e[r-1],i.push(l[t>>2]+l[t<<4&63]+\"==\")):2===n&&(t=(e[r-2]<<8)+e[r-1],i.push(l[t>>10]+l[t>>4&63]+l[t<<2&63]+\"=\")),i.join(\"\")}r.byteLength=i,r.toByteArray=s,r.fromByteArray=c;for(var l=[],p=[],h=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,f=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",d=0,m=f.length;d=n())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+n().toString(16)+\" bytes\");return 0|e}function m(e){return+e!=e&&(e=0),o.alloc(+e)}function v(e,t){if(o.isBuffer(e))return e.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;\"string\"!=typeof e&&(e=\"\"+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":case void 0:return V(e).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return X(e).length;default:if(n)return V(e).length;t=(\"\"+t).toLowerCase(),n=!0}}function g(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if(r>>>=0,t>>>=0,r<=t)return\"\";for(e||(e=\"utf8\");;)switch(e){case\"hex\":return q(this,t,r);case\"utf8\":case\"utf-8\":return T(this,t,r);case\"ascii\":return k(this,t,r);case\"latin1\":case\"binary\":return P(this,t,r);case\"base64\":return x(this,t,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return L(this,t,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+e);e=(e+\"\").toLowerCase(),n=!0}}function y(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function b(e,t,r,n,i){if(0===e.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if(\"string\"==typeof t&&(t=o.from(t,n)),o.isBuffer(t))return 0===t.length?-1:w(e,t,r,n,i);if(\"number\"==typeof t)return t&=255,o.TYPED_ARRAY_SUPPORT&&\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):w(e,[t],r,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function w(e,t,r,n,i){function o(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}var s=1,a=e.length,u=t.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,u/=2,r/=2}var c;if(i){var l=-1;for(c=r;ca&&(r=a-u),c=r;c>=0;c--){for(var p=!0,h=0;hi&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError(\"Invalid hex string\");n>o/2&&(n=o/2);for(var s=0;s239?4:o>223?3:o>191?2:1;if(i+a<=r){var u,c,l,p;switch(a){case 1:o<128&&(s=o);break;case 2:u=e[i+1],128==(192&u)&&(p=(31&o)<<6|63&u)>127&&(s=p);break;case 3:u=e[i+1],c=e[i+2],128==(192&u)&&128==(192&c)&&(p=(15&o)<<12|(63&u)<<6|63&c)>2047&&(p<55296||p>57343)&&(s=p);break;case 4:u=e[i+1],c=e[i+2],l=e[i+3],128==(192&u)&&128==(192&c)&&128==(192&l)&&(p=(15&o)<<18|(63&u)<<12|(63&c)<<6|63&l)>65535&&p<1114112&&(s=p)}}null===s?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|1023&s),n.push(s),i+=a}return I(n)}function I(e){var t=e.length;if(t<=Q)return String.fromCharCode.apply(String,e);for(var r=\"\",n=0;nn)&&(r=n);for(var i=\"\",o=t;or)throw new RangeError(\"Trying to access beyond buffer length\")}function N(e,t,r,n,i,s){if(!o.isBuffer(e))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError(\"Index out of range\")}function U(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function D(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function M(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function j(e,t,r,n,i){return i||M(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,r,n,23,4),r+4}function B(e,t,r,n,i){return i||M(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,r,n,52,8),r+8}function F(e){if(e=z(e).replace(ee,\"\"),e.length<2)return\"\";for(;e.length%4!=0;)e+=\"=\";return e}function z(e){return e.trim?e.trim():e.replace(/^\\s+|\\s+$/g,\"\")}function H(e){return e<16?\"0\"+e.toString(16):e.toString(16)}function V(e,t){t=t||1/0;for(var r,n=e.length,i=null,o=[],s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function W(e){for(var t=[],r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function X(e){return J.toByteArray(F(e))}function G(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function Y(e){return e!==e}var J=e(\"base64-js\"),Z=e(\"ieee754\"),$=e(\"isarray\");r.Buffer=o,r.SlowBuffer=m,r.INSPECT_MAX_BYTES=50,o.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&\"function\"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),r.kMaxLength=n(),o.poolSize=8192,o._augment=function(e){return e.__proto__=o.prototype,e},o.from=function(e,t,r){return s(null,e,t,r)},o.TYPED_ARRAY_SUPPORT&&(o.prototype.__proto__=Uint8Array.prototype,o.__proto__=Uint8Array,\"undefined\"!=typeof Symbol&&Symbol.species&&o[Symbol.species]===o&&Object.defineProperty(o,Symbol.species,{value:null,configurable:!0})),o.alloc=function(e,t,r){return u(null,e,t,r)},o.allocUnsafe=function(e){return c(null,e)},o.allocUnsafeSlow=function(e){return c(null,e)},o.isBuffer=function(e){return!(null==e||!e._isBuffer)},o.compare=function(e,t){if(!o.isBuffer(e)||!o.isBuffer(t))throw new TypeError(\"Arguments must be Buffers\");if(e===t)return 0;for(var r=e.length,n=t.length,i=0,s=Math.min(r,n);i0&&(e=this.toString(\"hex\",0,t).match(/.{2}/g).join(\" \"),this.length>t&&(e+=\" ... \")),\"\"},o.prototype.compare=function(e,t,r,n,i){if(!o.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError(\"out of range index\");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;for(var s=i-n,a=r-t,u=Math.min(s,a),c=this.slice(n,i),l=e.slice(t,r),p=0;pi)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");for(var o=!1;;)switch(n){case\"hex\":return E(this,e,t,r);case\"utf8\":case\"utf-8\":return S(this,e,t,r);case\"ascii\":return _(this,e,t,r);case\"latin1\":case\"binary\":return C(this,e,t,r);case\"base64\":return A(this,e,t,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return R(this,e,t,r);default:if(o)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),o=!0}},o.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};var Q=4096;o.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)n+=this[e+--t]*i;return n},o.prototype.readUInt8=function(e,t){return t||O(e,1,this.length),this[e]},o.prototype.readUInt16LE=function(e,t){return t||O(e,2,this.length),this[e]|this[e+1]<<8},o.prototype.readUInt16BE=function(e,t){return t||O(e,2,this.length),this[e]<<8|this[e+1]},o.prototype.readUInt32LE=function(e,t){return t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},o.prototype.readUInt32BE=function(e,t){return t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},o.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=this[e],i=1,o=0;++o=i&&(n-=Math.pow(2,8*t)),n},o.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},o.prototype.readInt8=function(e,t){return t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},o.prototype.readInt16LE=function(e,t){t||O(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},o.prototype.readInt16BE=function(e,t){t||O(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},o.prototype.readInt32LE=function(e,t){return t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},o.prototype.readInt32BE=function(e,t){return t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},o.prototype.readFloatLE=function(e,t){return t||O(e,4,this.length),Z.read(this,e,!0,23,4)},o.prototype.readFloatBE=function(e,t){return t||O(e,4,this.length),Z.read(this,e,!1,23,4)},o.prototype.readDoubleLE=function(e,t){return t||O(e,8,this.length),Z.read(this,e,!0,52,8)},o.prototype.readDoubleBE=function(e,t){return t||O(e,8,this.length),Z.read(this,e,!1,52,8)},o.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t|=0,r|=0,!n){N(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+r},o.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,1,255,0),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},o.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):U(this,e,t,!0),t+2},o.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):U(this,e,t,!1),t+2},o.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):D(this,e,t,!0),t+4},o.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},o.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);N(this,e,t,r,i-1,-i)}var o=0,s=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+r},o.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);N(this,e,t,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+r},o.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,1,127,-128),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},o.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):U(this,e,t,!0),t+2},o.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):U(this,e,t,!1),t+2},o.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,4,2147483647,-2147483648),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):D(this,e,t,!0),t+4},o.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},o.prototype.writeFloatLE=function(e,t,r){return j(this,e,t,!0,r)},o.prototype.writeFloatBE=function(e,t,r){return j(this,e,t,!1,r)},o.prototype.writeDoubleLE=function(e,t,r){return B(this,e,t,!0,r)},o.prototype.writeDoubleBE=function(e,t,r){return B(this,e,t,!1,r)},o.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError(\"sourceStart out of bounds\");if(n<0)throw new RangeError(\"sourceEnd out of bounds\");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(s<1e3||!o.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var s;if(\"number\"==typeof e)for(s=t;s0&&this._events[e].length>r&&(this._events[e].warned=!0,\nconsole.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[e].length),\"function\"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError(\"listener must be a function\");var n=!1;return r.listener=t,this.on(e,r),this},n.prototype.removeListener=function(e,t){var r,n,o,a;if(!i(t))throw TypeError(\"listener must be a function\");if(!this._events||!this._events[e])return this;if(r=this._events[e],o=r.length,n=-1,r===t||i(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit(\"removeListener\",e,t);else if(s(r)){for(a=o;a-- >0;)if(r[a]===t||r[a].listener&&r[a].listener===t){n=a;break}if(n<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(n,1),this._events.removeListener&&this.emit(\"removeListener\",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)\"removeListener\"!==t&&this.removeAllListeners(t);return this.removeAllListeners(\"removeListener\"),this._events={},this}if(r=this._events[e],i(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){return this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},{}],84:[function(e,t,r){r.read=function(e,t,r,n,i){var o,s,a=8*i-n-1,u=(1<>1,l=-7,p=r?i-1:0,h=r?-1:1,f=e[t+p];for(p+=h,o=f&(1<<-l)-1,f>>=-l,l+=a;l>0;o=256*o+e[t+p],p+=h,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=n;l>0;s=256*s+e[t+p],p+=h,l-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,n),o-=c}return(f?-1:1)*s*Math.pow(2,o-n)},r.write=function(e,t,r,n,i,o){var s,a,u,c=8*o-i-1,l=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,d=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),t+=s+p>=1?h/u:h*Math.pow(2,1-p),t*u>=2&&(s++,u/=2),s+p>=l?(a=0,s=l):s+p>=1?(a=(t*u-1)*Math.pow(2,i),s+=p):(a=t*Math.pow(2,p-1)*Math.pow(2,i),s=0));i>=8;e[r+f]=255&a,f+=d,a/=256,i-=8);for(s=s<0;e[r+f]=255&s,f+=d,s/=256,c-=8);e[r+f-d]|=128*m}},{}],85:[function(e,t,r){var n={}.toString;t.exports=Array.isArray||function(e){return\"[object Array]\"==n.call(e)}},{}],86:[function(e,t,r){!function(e){\"use strict\";function t(e){return null!==e&&\"[object Array]\"===Object.prototype.toString.call(e)}function r(e){return null!==e&&\"[object Object]\"===Object.prototype.toString.call(e)}function n(e,i){if(e===i)return!0;if(Object.prototype.toString.call(e)!==Object.prototype.toString.call(i))return!1;if(!0===t(e)){if(e.length!==i.length)return!1;for(var o=0;o=\"a\"&&e<=\"z\"||e>=\"A\"&&e<=\"Z\"||\"_\"===e}function a(e){return e>=\"0\"&&e<=\"9\"||\"-\"===e}function u(e){return e>=\"a\"&&e<=\"z\"||e>=\"A\"&&e<=\"Z\"||e>=\"0\"&&e<=\"9\"||\"_\"===e}function c(){}function l(){}function p(e){this.runtime=e}function h(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[g]}]},avg:{_func:this._functionAvg,_signature:[{types:[_]}]},ceil:{_func:this._functionCeil,_signature:[{types:[g]}]},contains:{_func:this._functionContains,_signature:[{types:[b,w]},{types:[y]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[b]},{types:[b]}]},floor:{_func:this._functionFloor,_signature:[{types:[g]}]},length:{_func:this._functionLength,_signature:[{types:[b,w,E]}]},map:{_func:this._functionMap,_signature:[{types:[S]},{types:[w]}]},max:{_func:this._functionMax,_signature:[{types:[_,C]}]},merge:{_func:this._functionMerge,_signature:[{types:[E],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[w]},{types:[S]}]},sum:{_func:this._functionSum,_signature:[{types:[_]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[b]},{types:[b]}]},min:{_func:this._functionMin,_signature:[{types:[_,C]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[w]},{types:[S]}]},type:{_func:this._functionType,_signature:[{types:[y]}]},keys:{_func:this._functionKeys,_signature:[{types:[E]}]},values:{_func:this._functionValues,_signature:[{types:[E]}]},sort:{_func:this._functionSort,_signature:[{types:[C,_]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[w]},{types:[S]}]},join:{_func:this._functionJoin,_signature:[{types:[b]},{types:[C]}]},reverse:{_func:this._functionReverse,_signature:[{types:[b,w]}]},to_array:{_func:this._functionToArray,_signature:[{types:[y]}]},to_string:{_func:this._functionToString,_signature:[{types:[y]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[y]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[y],variadic:!0}]}}}function f(e){return(new l).parse(e)}function d(e){return(new c).tokenize(e)}function m(e,t){var r=new l,n=new h,i=new p(n);n._interpreter=i;var o=r.parse(t);return i.search(o,e)}var v;v=\"function\"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\\s*(.*)/)[1]};var g=0,y=1,b=2,w=3,E=4,S=6,_=8,C=9,A={\".\":\"Dot\",\"*\":\"Star\",\",\":\"Comma\",\":\":\"Colon\",\"{\":\"Lbrace\",\"}\":\"Rbrace\",\"]\":\"Rbracket\",\"(\":\"Lparen\",\")\":\"Rparen\",\"@\":\"Current\"},R={\"<\":!0,\">\":!0,\"=\":!0,\"!\":!0},x={\" \":!0,\"\\t\":!0,\"\\n\":!0};c.prototype={tokenize:function(e){var t=[];this._current=0;for(var r,n,i;this._current\"===r?\"=\"===e[this._current]?(this._current++,{type:\"GTE\",value:\">=\",start:t}):{type:\"GT\",value:\">\",start:t}:\"=\"===r&&\"=\"===e[this._current]?(this._current++,{type:\"EQ\",value:\"==\",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t,r=this._current,n=e.length;\"`\"!==e[this._current]&&this._current=0)return!0;if(r.indexOf(e)>=0)return!0;if(!(n.indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(e){return!1}}};var T={};T.EOF=0,T.UnquotedIdentifier=0,T.QuotedIdentifier=0,T.Rbracket=0,T.Rparen=0,T.Comma=0,T.Rbrace=0,T.Number=0,T.Current=0,T.Expref=0,T.Pipe=1,T.Or=2,T.And=3,T.EQ=5,T.GT=5,T.LT=5,T.GTE=5,T.LTE=5,T.NE=5,T.Flatten=9,T.Star=20,T.Filter=21,T.Dot=40,T.Not=45,T.Lbrace=50,T.Lbracket=55,T.Lparen=60,l.prototype={parse:function(e){this._loadTokens(e),this.index=0;var t=this.expression(0);if(\"EOF\"!==this._lookahead(0)){var r=this._lookaheadToken(0),n=new Error(\"Unexpected token type: \"+r.type+\", value: \"+r.value);throw n.name=\"ParserError\",n}return t},_loadTokens:function(e){var t=new c,r=t.tokenize(e);r.push({type:\"EOF\",value:\"\",start:e.length}),this.tokens=r},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var r=this.nud(t),n=this._lookahead(0);e=0?this.expression(e):\"Lbracket\"===t?(this._match(\"Lbracket\"),this._parseMultiselectList()):\"Lbrace\"===t?(this._match(\"Lbrace\"),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(e){var t;if(T[this._lookahead(0)]<10)t={type:\"Identity\"};else if(\"Lbracket\"===this._lookahead(0))t=this.expression(e);else if(\"Filter\"===this._lookahead(0))t=this.expression(e);else{if(\"Dot\"!==this._lookahead(0)){var r=this._lookaheadToken(0),n=new Error(\"Sytanx error, unexpected token: \"+r.value+\"(\"+r.type+\")\");throw n.name=\"ParserError\",n}this._match(\"Dot\"),t=this._parseDotRHS(e)}return t},_parseMultiselectList:function(){for(var e=[];\"Rbracket\"!==this._lookahead(0);){var t=this.expression(0);if(e.push(t),\"Comma\"===this._lookahead(0)&&(this._match(\"Comma\"),\"Rbracket\"===this._lookahead(0)))throw new Error(\"Unexpected token Rbracket\")}return this._match(\"Rbracket\"),{type:\"MultiSelectList\",children:e}},_parseMultiselectHash:function(){for(var e,t,r,n,i=[],o=[\"UnquotedIdentifier\",\"QuotedIdentifier\"];;){if(e=this._lookaheadToken(0),o.indexOf(e.type)<0)throw new Error(\"Expecting an identifier token, got: \"+e.type);if(t=e.value,this._advance(),this._match(\"Colon\"),r=this.expression(0),n={type:\"KeyValuePair\",name:t,value:r},i.push(n),\"Comma\"===this._lookahead(0))this._match(\"Comma\");else if(\"Rbrace\"===this._lookahead(0)){this._match(\"Rbrace\");break}}return{type:\"MultiSelectHash\",children:i}}},p.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,s){var a,u,c,l,p,h,f,d,m;switch(e.type){case\"Field\":return null===s?null:r(s)?(h=s[e.name],void 0===h?null:h):null;case\"Subexpression\":for(c=this.visit(e.children[0],s),m=1;m0)for(m=b;mw;m+=E)c.push(s[m]);return c;case\"Projection\":var S=this.visit(e.children[0],s);if(!t(S))return null;for(d=[],m=0;mp;break;case\"GTE\":c=l>=p;break;case\"LT\":c=l=e&&(t=r<0?e-1:e),t}},h.prototype={callFunction:function(e,t){var r=this.functionTable[e];if(void 0===r)throw new Error(\"Unknown function: \"+e+\"()\");return this._validateArgs(e,t,r._signature),r._func.call(this,t)},_validateArgs:function(e,t,r){var n;if(r[r.length-1].variadic){if(t.length=0;n--)r+=t[n];return r}var i=e[0].slice(0);return i.reverse(),i},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,r=e[0],n=0;n=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return r(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],r=this._interpreter,n=e[0],i=e[1],o=0;o0){if(this._getTypeName(e[0][0])===g)return Math.max.apply(Math,e[0]);for(var t=e[0],r=t[0],n=1;n0){if(this._getTypeName(e[0][0])===g)return Math.min.apply(Math,e[0]);for(var t=e[0],r=t[0],n=1;na?1:ss&&(s=r,t=i[a]);return t},_functionMinBy:function(e){for(var t,r,n=e[1],i=e[0],o=this.createKeyFunction(n,[g,b]),s=1/0,a=0;a1)for(var r=1;r1&&(n=r[0]+\"@\",e=r[1]),e=e.replace(q,\".\"),n+o(e.split(\".\"),t).join(\".\")}function a(e){for(var t,r,n=[],i=0,o=e.length;i=55296&&t<=56319&&i65535&&(e-=65536,t+=U(e>>>10&1023|55296),e=56320|1023&e),t+=U(e)}).join(\"\")}function c(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:S}function l(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function p(e,t,r){var n=0;for(e=r?N(e/R):e>>1,e+=N(e/t);e>O*C>>1;n+=S)e=N(e/O);return N(n+(O+1)*e/(e+A))}function h(e){var t,r,n,o,s,a,l,h,f,d,m=[],v=e.length,g=0,y=T,b=x;for(r=e.lastIndexOf(I),r<0&&(r=0),n=0;n=128&&i(\"not-basic\"),m.push(e.charCodeAt(n));for(o=r>0?r+1:0;o=v&&i(\"invalid-input\"),h=c(e.charCodeAt(o++)),(h>=S||h>N((E-g)/a))&&i(\"overflow\"),g+=h*a,f=l<=b?_:l>=b+C?C:l-b,!(hN(E/d)&&i(\"overflow\"),a*=d;t=m.length+1,b=p(g-s,t,0==s),N(g/t)>E-y&&i(\"overflow\"),y+=N(g/t),g%=t,m.splice(g++,0,y)}return u(m)}function f(e){var t,r,n,o,s,u,c,h,f,d,m,v,g,y,b,w=[];for(e=a(e),v=e.length,t=T,r=0,s=x,u=0;u=t&&mN((E-r)/g)&&i(\"overflow\"),r+=(c-t)*g,t=c,u=0;uE&&i(\"overflow\"),m==t){for(h=r,f=S;d=f<=s?_:f>=s+C?C:f-s,!(h= 0x80 (not a basic code point)\",\"invalid-input\":\"Invalid input\"},O=S-_,N=Math.floor,U=String.fromCharCode;if(b={version:\"1.3.2\",ucs2:{decode:a,encode:u},decode:h,encode:f,toASCII:m,toUnicode:d},\"function\"==typeof define&&\"object\"==typeof define.amd&&define.amd)define(\"punycode\",function(){return b});else if(v&&g)if(t.exports==v)g.exports=b;else for(w in b)b.hasOwnProperty(w)&&(v[w]=b[w]);else n.punycode=b}(this)}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],89:[function(e,t,r){\"use strict\";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.exports=function(e,t,r,o){t=t||\"&\",r=r||\"=\";var s={};if(\"string\"!=typeof e||0===e.length)return s;var a=/\\+/g;e=e.split(t);var u=1e3;o&&\"number\"==typeof o.maxKeys&&(u=o.maxKeys);var c=e.length;u>0&&c>u&&(c=u);for(var l=0;l=0?(p=m.substr(0,v),h=m.substr(v+1)):(p=m,h=\"\"),f=decodeURIComponent(p),d=decodeURIComponent(h),n(s,f)?i(s[f])?s[f].push(d):s[f]=[s[f],d]:s[f]=d}return s};var i=Array.isArray||function(e){return\"[object Array]\"===Object.prototype.toString.call(e)}},{}],90:[function(e,t,r){\"use strict\";function n(e,t){if(e.map)return e.map(t);for(var r=[],n=0;n0&&u>a&&(u=a);for(var c=0;c=0?(l=d.substr(0,m),p=d.substr(m+1)):(l=d,p=\"\"),h=decodeURIComponent(l),f=decodeURIComponent(p),n(o,h)?Array.isArray(o[h])?o[h].push(f):o[h]=[o[h],f]:o[h]=f}return o}},{}],93:[function(e,t,r){\"use strict\";var n=function(e){switch(typeof e){case\"string\":return e;case\"boolean\":return e?\"true\":\"false\";case\"number\":return isFinite(e)?e:\"\";default:return\"\"}};t.exports=function(e,t,r,i){return t=t||\"&\",r=r||\"=\",null===e&&(e=void 0),\"object\"==typeof e?Object.keys(e).map(function(i){var o=encodeURIComponent(n(i))+r;return Array.isArray(e[i])?e[i].map(function(e){return o+encodeURIComponent(n(e))}).join(t):o+encodeURIComponent(n(e[i]))}).join(t):i?encodeURIComponent(n(i))+r+encodeURIComponent(n(e)):\"\"}\n},{}],94:[function(e,t,r){arguments[4][91][0].apply(r,arguments)},{\"./decode\":92,\"./encode\":93,dup:91}],95:[function(e,t,r){(function(t,n){(function(){function i(e,t){this._id=e,this._clearFn=t}var o=e(\"process/browser.js\").nextTick,s=Function.prototype.apply,a=Array.prototype.slice,u={},c=0;r.setTimeout=function(){return new i(s.call(setTimeout,window,arguments),clearTimeout)},r.setInterval=function(){return new i(s.call(setInterval,window,arguments),clearInterval)},r.clearTimeout=r.clearInterval=function(e){e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(window,this._id)},r.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},r.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},r._unrefActive=r.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},r.setImmediate=\"function\"==typeof t?t:function(e){var t=c++,n=!(arguments.length<2)&&a.call(arguments,1);return u[t]=!0,o(function(){u[t]&&(n?e.apply(null,n):e.call(null),r.clearImmediate(t))}),t},r.clearImmediate=\"function\"==typeof n?n:function(e){delete u[e]}}).call(this)}).call(this,e(\"timers\").setImmediate,e(\"timers\").clearImmediate)},{\"process/browser.js\":87,timers:95}],96:[function(e,t,r){function n(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function i(e,t,r){if(e&&c(e)&&e instanceof n)return e;var i=new n;return i.parse(e,t,r),i}function o(e){return u(e)&&(e=i(e)),e instanceof n?e.format():n.prototype.format.call(e)}function s(e,t){return i(e,!1,!0).resolve(t)}function a(e,t){return e?i(e,!1,!0).resolveObject(t):t}function u(e){return\"string\"==typeof e}function c(e){return\"object\"==typeof e&&null!==e}function l(e){return null===e}function p(e){return null==e}var h=e(\"punycode\");r.parse=i,r.resolve=s,r.resolveObject=a,r.format=o,r.Url=n;var f=/^([a-z0-9.+-]+:)/i,d=/:[0-9]*$/,m=[\"<\",\">\",'\"',\"`\",\" \",\"\\r\",\"\\n\",\"\\t\"],v=[\"{\",\"}\",\"|\",\"\\\\\",\"^\",\"`\"].concat(m),g=[\"'\"].concat(v),y=[\"%\",\"/\",\"?\",\";\",\"#\"].concat(g),b=[\"/\",\"?\",\"#\"],w=/^[a-z0-9A-Z_-]{0,63}$/,E=/^([a-z0-9A-Z_-]{0,63})(.*)$/,S={javascript:!0,\"javascript:\":!0},_={javascript:!0,\"javascript:\":!0},C={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,\"http:\":!0,\"https:\":!0,\"ftp:\":!0,\"gopher:\":!0,\"file:\":!0},A=e(\"querystring\");n.prototype.parse=function(e,t,r){if(!u(e))throw new TypeError(\"Parameter 'url' must be a string, not \"+typeof e);var n=e;n=n.trim();var i=f.exec(n);if(i){i=i[0];var o=i.toLowerCase();this.protocol=o,n=n.substr(i.length)}if(r||i||n.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)){var s=\"//\"===n.substr(0,2);!s||i&&_[i]||(n=n.substr(2),this.slashes=!0)}if(!_[i]&&(s||i&&!C[i])){for(var a=-1,c=0;c127?T+=\"x\":T+=x[I];if(!T.match(w)){var P=v.slice(0,c),q=v.slice(c+1),L=x.match(E);L&&(P.push(L[1]),q.unshift(L[2])),q.length&&(n=\"/\"+q.join(\".\")+n),this.hostname=P.join(\".\");break}}}if(this.hostname.length>255?this.hostname=\"\":this.hostname=this.hostname.toLowerCase(),!m){for(var O=this.hostname.split(\".\"),N=[],c=0;c0)&&r.host.split(\"@\");v&&(r.auth=v.shift(),r.host=r.hostname=v.shift())}return r.search=e.search,r.query=e.query,l(r.pathname)&&l(r.search)||(r.path=(r.pathname?r.pathname:\"\")+(r.search?r.search:\"\")),r.href=r.format(),r}if(!d.length)return r.pathname=null,r.search?r.path=\"/\"+r.search:r.path=null,r.href=r.format(),r;for(var g=d.slice(-1)[0],y=(r.host||e.host)&&(\".\"===g||\"..\"===g)||\"\"===g,b=0,w=d.length;w>=0;w--)g=d[w],\".\"==g?d.splice(w,1):\"..\"===g?(d.splice(w,1),b++):b&&(d.splice(w,1),b--);if(!h&&!f)for(;b--;b)d.unshift(\"..\");!h||\"\"===d[0]||d[0]&&\"/\"===d[0].charAt(0)||d.unshift(\"\"),y&&\"/\"!==d.join(\"/\").substr(-1)&&d.push(\"\");var E=\"\"===d[0]||d[0]&&\"/\"===d[0].charAt(0);if(m){r.hostname=r.host=E?\"\":d.length?d.shift():\"\";var v=!!(r.host&&r.host.indexOf(\"@\")>0)&&r.host.split(\"@\");v&&(r.auth=v.shift(),r.host=r.hostname=v.shift())}return h=h||r.host&&d.length,h&&!E&&d.unshift(\"\"),d.length?r.pathname=d.join(\"/\"):(r.pathname=null,r.path=null),l(r.pathname)&&l(r.search)||(r.path=(r.pathname?r.pathname:\"\")+(r.search?r.search:\"\")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},n.prototype.parseHost=function(){var e=this.host,t=d.exec(e);t&&(t=t[0],\":\"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},{punycode:88,querystring:91}],97:[function(e,t,r){\"function\"==typeof Object.create?t.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},{}],98:[function(e,t,r){t.exports=function(e){return e&&\"object\"==typeof e&&\"function\"==typeof e.copy&&\"function\"==typeof e.fill&&\"function\"==typeof e.readUInt8}},{}],99:[function(e,t,r){(function(t,n){(function(){function i(e,t){var n={seen:[],stylize:s};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),m(t)?n.showHidden=t:t&&r._extend(n,t),E(n.showHidden)&&(n.showHidden=!1),E(n.depth)&&(n.depth=2),E(n.colors)&&(n.colors=!1),E(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=o),u(n,e,n.depth)}function o(e,t){var r=i.styles[t];return r?\"\u001b[\"+i.colors[r][0]+\"m\"+e+\"\u001b[\"+i.colors[r][1]+\"m\":e}function s(e,t){return e}function a(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}function u(e,t,n){if(e.customInspect&&t&&R(t.inspect)&&t.inspect!==r.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(n,e);return b(i)||(i=u(e,i,n)),i}var o=c(e,t);if(o)return o;var s=Object.keys(t),m=a(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(t)),A(t)&&(s.indexOf(\"message\")>=0||s.indexOf(\"description\")>=0))return l(t);if(0===s.length){if(R(t)){var v=t.name?\": \"+t.name:\"\";return e.stylize(\"[Function\"+v+\"]\",\"special\")}if(S(t))return e.stylize(RegExp.prototype.toString.call(t),\"regexp\");if(C(t))return e.stylize(Date.prototype.toString.call(t),\"date\");if(A(t))return l(t)}var g=\"\",y=!1,w=[\"{\",\"}\"];if(d(t)&&(y=!0,w=[\"[\",\"]\"]),R(t)){g=\" [Function\"+(t.name?\": \"+t.name:\"\")+\"]\"}if(S(t)&&(g=\" \"+RegExp.prototype.toString.call(t)),C(t)&&(g=\" \"+Date.prototype.toUTCString.call(t)),A(t)&&(g=\" \"+l(t)),0===s.length&&(!y||0==t.length))return w[0]+g+w[1];if(n<0)return S(t)?e.stylize(RegExp.prototype.toString.call(t),\"regexp\"):e.stylize(\"[Object]\",\"special\");e.seen.push(t);var E;return E=y?p(e,t,n,m,s):s.map(function(r){return h(e,t,n,m,r,y)}),e.seen.pop(),f(E,g,w)}function c(e,t){if(E(t))return e.stylize(\"undefined\",\"undefined\");if(b(t)){var r=\"'\"+JSON.stringify(t).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return e.stylize(r,\"string\")}return y(t)?e.stylize(\"\"+t,\"number\"):m(t)?e.stylize(\"\"+t,\"boolean\"):v(t)?e.stylize(\"null\",\"null\"):void 0}function l(e){return\"[\"+Error.prototype.toString.call(e)+\"]\"}function p(e,t,r,n,i){for(var o=[],s=0,a=t.length;s-1&&(a=o?a.split(\"\\n\").map(function(e){return\" \"+e}).join(\"\\n\").substr(2):\"\\n\"+a.split(\"\\n\").map(function(e){return\" \"+e}).join(\"\\n\"))):a=e.stylize(\"[Circular]\",\"special\")),E(s)){if(o&&i.match(/^\\d+$/))return a;s=JSON.stringify(\"\"+i),s.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,\"name\")):(s=s.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),s=e.stylize(s,\"string\"))}return s+\": \"+a}function f(e,t,r){var n=0;return e.reduce(function(e,t){return n++,t.indexOf(\"\\n\")>=0&&n++,e+t.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1},0)>60?r[0]+(\"\"===t?\"\":t+\"\\n \")+\" \"+e.join(\",\\n \")+\" \"+r[1]:r[0]+t+\" \"+e.join(\", \")+\" \"+r[1]}function d(e){return Array.isArray(e)}function m(e){return\"boolean\"==typeof e}function v(e){return null===e}function g(e){return null==e}function y(e){return\"number\"==typeof e}function b(e){return\"string\"==typeof e}function w(e){return\"symbol\"==typeof e}function E(e){return void 0===e}function S(e){return _(e)&&\"[object RegExp]\"===T(e)}function _(e){return\"object\"==typeof e&&null!==e}function C(e){return _(e)&&\"[object Date]\"===T(e)}function A(e){return _(e)&&(\"[object Error]\"===T(e)||e instanceof Error)}function R(e){return\"function\"==typeof e}function x(e){return null===e||\"boolean\"==typeof e||\"number\"==typeof e||\"string\"==typeof e||\"symbol\"==typeof e||void 0===e}function T(e){return Object.prototype.toString.call(e)}function I(e){return e<10?\"0\"+e.toString(10):e.toString(10)}function k(){var e=new Date,t=[I(e.getHours()),I(e.getMinutes()),I(e.getSeconds())].join(\":\");return[e.getDate(),N[e.getMonth()],t].join(\" \")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var q=/%[sdj%]/g;r.format=function(e){if(!b(e)){for(var t=[],r=0;r=o)return e;switch(e){case\"%s\":return String(n[r++]);case\"%d\":return Number(n[r++]);case\"%j\":try{return JSON.stringify(n[r++])}catch(e){return\"[Circular]\"}default:return e}}),a=n[r];r>>((3&t)<<3)&255;return o}}},{}],103:[function(e,t,r){function n(e,t,r){var n=t&&r||0,l=t||[];e=e||{};var p=e.node||i,h=void 0!==e.clockseq?e.clockseq:o;if(null==p||null==h){var f=s();null==p&&(p=i=[1|f[0],f[1],f[2],f[3],f[4],f[5]]),null==h&&(h=o=16383&(f[6]<<8|f[7]))}var d=void 0!==e.msecs?e.msecs:(new Date).getTime(),m=void 0!==e.nsecs?e.nsecs:c+1,v=d-u+(m-c)/1e4;if(v<0&&void 0===e.clockseq&&(h=h+1&16383),(v<0||d>u)&&void 0===e.nsecs&&(m=0),m>=1e4)throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");u=d,c=m,o=h,d+=122192928e5;var g=(1e4*(268435455&d)+m)%4294967296;l[n++]=g>>>24&255,l[n++]=g>>>16&255,l[n++]=g>>>8&255,l[n++]=255&g;var y=d/4294967296*1e4&268435455;l[n++]=y>>>8&255,l[n++]=255&y,l[n++]=y>>>24&15|16,l[n++]=y>>>16&255,l[n++]=h>>>8|128,l[n++]=255&h;for(var b=0;b<6;++b)l[n+b]=p[b];return t||a(l)}var i,o,s=e(\"./lib/rng\"),a=e(\"./lib/bytesToUuid\"),u=0,c=0;t.exports=n},{\"./lib/bytesToUuid\":101,\"./lib/rng\":102}],104:[function(e,t,r){function n(e,t,r){var n=t&&r||0;\"string\"==typeof e&&(t=\"binary\"===e?new Array(16):null,e=null),e=e||{};var s=e.random||(e.rng||i)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t)for(var a=0;a<16;++a)t[n+a]=s[a];return t||o(s)}var i=e(\"./lib/rng\"),o=e(\"./lib/bytesToUuid\");t.exports=n},{\"./lib/bytesToUuid\":101,\"./lib/rng\":102}],105:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});var n=e(\"./utils/LRU\"),i=1e3,o=function(){function e(e){void 0===e&&(e=i),this.maxSize=e,this.cache=new n.LRUCache(e)}return Object.defineProperty(e.prototype,\"size\",{get:function(){return this.cache.length},enumerable:!0,configurable:!0}),e.prototype.put=function(t,r){var n=\"string\"!=typeof t?e.getKeyString(t):t,i=this.populateValue(r);this.cache.put(n,i)},e.prototype.get=function(t){var r=\"string\"!=typeof t?e.getKeyString(t):t,n=Date.now(),i=this.cache.get(r);if(i)for(var o=0;o= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","/* global window, exports, define */\n\n!function() {\n 'use strict'\n\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n }\n\n function sprintf(key) {\n // `arguments` is not an array, but should be fine for this call\n return sprintf_format(sprintf_parse(key), arguments)\n }\n\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []))\n }\n\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === 'string') {\n output += parse_tree[i]\n }\n else if (typeof parse_tree[i] === 'object') {\n ph = parse_tree[i] // convenience purposes only\n if (ph.keys) { // keyword argument\n arg = argv[cursor]\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == undefined) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n }\n arg = arg[ph.keys[k]]\n }\n }\n else if (ph.param_no) { // positional argument (explicit)\n arg = argv[ph.param_no]\n }\n else { // positional argument (implicit)\n arg = argv[cursor++]\n }\n\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg()\n }\n\n if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n }\n\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt]\n }\n\n var _fmt = fmt, match, parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0])\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n )\n }\n else {\n throw new SyntaxError('[sprintf] unexpected placeholder')\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return sprintf_cache[fmt] = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports['sprintf'] = sprintf\n exports['vsprintf'] = vsprintf\n }\n if (typeof window !== 'undefined') {\n window['sprintf'] = sprintf\n window['vsprintf'] = vsprintf\n\n if (typeof define === 'function' && define['amd']) {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","class ValueError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ValueError\";\n }\n}\n\nclass UnImplementedMethodException extends Error {\n constructor(message) {\n super(message);\n this.name = \"UnImplementedMethod\";\n }\n}\n\nclass IllegalArgumentException extends Error {\n constructor(message, argument) {\n super(message);\n this.name = \"IllegalArgument\";\n this.argument = argument;\n }\n}\n\nclass IllegalStateException extends Error {\n constructor(message) {\n super(message);\n this.name = \"IllegalState\";\n }\n}\n\nclass IllegalJsonException extends Error {\n constructor(message, args) {\n super(message);\n this.name = \"IllegalState\";\n this.causeException = args.causeException;\n this.originalJsonString = args.originalJsonString;\n }\n}\n\nexport {\n UnImplementedMethodException,\n IllegalArgumentException,\n IllegalStateException,\n IllegalJsonException,\n ValueError\n};\n","class GlobalConfigImpl {\n constructor() {\n this.stage = \"prod\";\n this.region = \"us-west-2\";\n this.reconnect = true;\n let self = this;\n this.features = new Proxy([], {\n set: function(target, property, value) {\n console.log(\"new features added, initialValue: \"\n + target[property] + \" , newValue: \" + value, Array.isArray(target[property]));\n let oldVal = target[property];\n //fire change listeners\n if (Array.isArray(value)) {\n value.forEach(feature => {\n //if a new feature is added\n if (Array.isArray(oldVal) && oldVal.indexOf(feature) === -1 && \n Array.isArray(self.featureChangeListeners[feature])) {\n \n self.featureChangeListeners[feature].forEach(callback => callback());\n self._cleanFeatureChangeListener(feature);\n }\n });\n }\n //change the value in this.features object.\n target[property] = value;\n return true;\n }\n });\n this.featureChangeListeners = [];\n }\n update(configInput) {\n var config = configInput || {};\n this.stage = config.stage || this.stage;\n this.region = config.region || this.region;\n this.endpointOverride = config.endpoint || this.endpointOverride;\n this.reconnect = config.reconnect === false ? false : this.reconnect;\n this.messageReceiptThrottleTime = config.throttleTime ? config.throttleTime : 5000;\n this.features[\"values\"] = Array.isArray(config.features) ? [...config.features] : new Array();\n }\n\n updateStageRegion(config) {\n if (config) {\n this.stage = config.stage || this.stage;\n this.region = config.region || this.region;\n }\n }\n\n updateThrottleTime(throttleTime) {\n this.messageReceiptThrottleTime = throttleTime ? throttleTime : this.messageReceiptThrottleTime;\n }\n\n getMessageReceiptsThrottleTime() {\n return this.messageReceiptThrottleTime;\n }\n\n getStage() {\n return this.stage;\n }\n\n getRegion() {\n return this.region;\n }\n\n getEndpointOverride() {\n return this.endpointOverride;\n }\n\n setFeatureFlag(feature) {\n if(this.isFeatureEnabled(feature)) {\n return;\n }\n const featureValues = Array.isArray(this.features[\"values\"]) ? this.features[\"values\"] : [];\n this.features[\"values\"] = [...featureValues, feature];\n }\n\n //private method\n _registerFeatureChangeListener(feature, callback) {\n if (!this.featureChangeListeners[feature]) {\n this.featureChangeListeners[feature] = [];\n }\n this.featureChangeListeners[feature].push(callback);\n }\n\n //private method\n _cleanFeatureChangeListener(feature) {\n delete this.featureChangeListeners[feature];\n }\n\n isFeatureEnabled(feature, callback) {\n if(Array.isArray(this.features[\"values\"]) &&\n this.features[\"values\"].indexOf(feature) !== -1) {\n if (typeof callback === \"function\") {\n return callback();\n }\n return true;\n }\n if (typeof callback === \"function\") {\n this._registerFeatureChangeListener(feature, callback);\n }\n return false;\n }\n}\n\nconst GlobalConfig = new GlobalConfigImpl();\n\nexport { GlobalConfig };\n","//Placeholder\nexport const CHAT_CONFIGURATIONS = {\n CONCURRENT_CHATS: 10\n};\n\nexport const PARTICIPANT_TOKEN_HEADER = \"x-amzn-connect-participant-token\";\nexport const AUTH_HEADER = \"X-Amz-Bearer\";\n\nexport const FEATURES = {\n MESSAGE_RECEIPTS_ENABLED: \"MESSAGE_RECEIPTS_ENABLED\"\n};\n\nexport const RESOURCE_PATH = {\n CONNECTION_DETAILS: \"/contact/chat/participant/connection-details\",\n MESSAGE: \"/participant/message\",\n TRANSCRIPT: \"/participant/transcript\",\n EVENT: \"/participant/event\",\n DISCONNECT: \"/participant/disconnect\",\n PARTICIPANT_CONNECTION: \"/participant/connection\",\n ATTACHMENT: \"/participant/attachment\"\n};\n\nexport const SESSION_TYPES = {\n AGENT: \"AGENT\",\n CUSTOMER: \"CUSTOMER\"\n};\n\nexport const CSM_CATEGORY = {\n API: \"API\",\n UI: \"UI\"\n};\n\nexport const ACPS_METHODS = {\n SEND_MESSAGE: \"SendMessage\",\n SEND_ATTACHMENT: \"SendAttachment\",\n DOWNLOAD_ATTACHMENT: \"DownloadAttachment\",\n SEND_EVENT: \"SendEvent\",\n GET_TRANSCRIPT: \"GetTranscript\",\n DISCONNECT_PARTICIPANT: \"DisconnectParticipant\",\n CREATE_PARTICIPANT_CONNECTION: \"CreateParticipantConnection\",\n};\n\nexport const WEBSOCKET_EVENTS = {\n ConnectionLost: \"WebsocketConnectionLost\",\n ConnectionGained: \"WebsocketConnectionGained\",\n Ended: \"WebsocketEnded\",\n IncomingMessage: \"WebsocketIncomingMessage\",\n InitWebsocket: \"InitWebsocket\"\n};\n\nexport const CHAT_EVENTS = {\n INCOMING_MESSAGE: \"INCOMING_MESSAGE\",\n INCOMING_TYPING: \"INCOMING_TYPING\",\n INCOMING_READ_RECEIPT: \"INCOMING_READ_RECEIPT\",\n INCOMING_DELIVERED_RECEIPT: \"INCOMING_DELIVERED_RECEIPT\",\n CONNECTION_ESTABLISHED: \"CONNECTION_ESTABLISHED\",\n CONNECTION_LOST: \"CONNECTION_LOST\",\n CONNECTION_BROKEN: \"CONNECTION_BROKEN\",\n CONNECTION_ACK: \"CONNECTION_ACK\",\n CHAT_ENDED: \"CHAT_ENDED\",\n MESSAGE_METADATA: \"MESSAGEMETADATA\",\n PARTICIPANT_IDLE: \"PARTICIPANT_IDLE\",\n PARTICIPANT_RETURNED: \"PARTICIPANT_RETURNED\",\n AUTODISCONNECTION: \"AUTODISCONNECTION\"\n};\n\nexport const CONTENT_TYPE = {\n textPlain: \"text/plain\",\n textMarkdown: \"text/markdown\",\n textCsv: \"text/csv\",\n applicationDoc: \"application/msword\",\n applicationDocx: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n applicationJson: \"application/json\",\n applicationPdf: \"application/pdf\",\n applicationPpt: \"application/vnd.ms-powerpoint\",\n applicationPptx: \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\n applicationXls: \"application/vnd.ms-excel\",\n applicationXlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n imageJpg: \"image/jpeg\",\n imagePng: \"image/png\",\n audioWav: \"audio/wav\",\n audioXWav: \"audio/x-wav\", //Firefox\n audioVndWave: \"audio/vnd.wave\", //IE\n connectionAcknowledged: \"application/vnd.amazonaws.connect.event.connection.acknowledged\",\n typing: \"application/vnd.amazonaws.connect.event.typing\",\n participantJoined: \"application/vnd.amazonaws.connect.event.participant.joined\",\n participantLeft: \"application/vnd.amazonaws.connect.event.participant.left\",\n participantActive: \"application/vnd.amazonaws.connect.event.participant.active\",\n participantInactive: \"application/vnd.amazonaws.connect.event.participant.inactive\",\n transferSucceeded: \"application/vnd.amazonaws.connect.event.transfer.succeeded\",\n transferFailed: \"application/vnd.amazonaws.connect.event.transfer.failed\",\n chatEnded: \"application/vnd.amazonaws.connect.event.chat.ended\",\n interactiveMessage: \"application/vnd.amazonaws.connect.message.interactive\",\n interactiveMessageResponse: \"application/vnd.amazonaws.connect.message.interactive.response\",\n readReceipt: \"application/vnd.amazonaws.connect.event.message.read\",\n deliveredReceipt: \"application/vnd.amazonaws.connect.event.message.delivered\",\n participantIdle: \"application/vnd.amazonaws.connect.event.participant.idle\",\n participantReturned: \"application/vnd.amazonaws.connect.event.participant.returned\",\n autoDisconnection: \"application/vnd.amazonaws.connect.event.participant.autodisconnection\"\n};\n\nexport const CHAT_EVENT_TYPE_MAPPING = {\n [CONTENT_TYPE.typing]: CHAT_EVENTS.INCOMING_TYPING,\n [CONTENT_TYPE.readReceipt]: CHAT_EVENTS.INCOMING_READ_RECEIPT,\n [CONTENT_TYPE.deliveredReceipt]: CHAT_EVENTS.INCOMING_DELIVERED_RECEIPT,\n [CONTENT_TYPE.participantIdle]: CHAT_EVENTS.PARTICIPANT_IDLE,\n [CONTENT_TYPE.participantReturned]: CHAT_EVENTS.PARTICIPANT_RETURNED,\n [CONTENT_TYPE.autoDisconnection]: CHAT_EVENTS.AUTODISCONNECTION,\n default: CHAT_EVENTS.INCOMING_MESSAGE,\n};\n\nexport const EVENT = \"EVENT\";\nexport const MESSAGE = \"MESSAGE\";\nexport const CONN_ACK_FAILED = \"CONN_ACK_FAILED\";\n\nexport const TRANSCRIPT_DEFAULT_PARAMS = {\n MAX_RESULTS: 15,\n SORT_ORDER: \"ASCENDING\",\n SCAN_DIRECTION: \"BACKWARD\"\n};\n\nexport const LOGS_DESTINATION = {\n NULL: \"NULL\",\n CLIENT_LOGGER: \"CLIENT_LOGGER\",\n DEBUG: \"DEBUG\"\n};\n\nexport const REGIONS = {\n pdx: \"us-west-2\",\n iad: \"us-east-1\",\n syd: \"ap-southeast-2\",\n nrt: \"ap-northeast-1\",\n fra: \"eu-central-1\",\n pdt: \"us-gov-west-1\",\n yul: \"ca-central-1\",\n icn: \"ap-northeast-2\",\n cpt: \"af-south-1\"\n};\n\nexport const AGENT_RECONNECT_CONFIG = {\n interval: 3000,\n maxRetries: 5\n};\n\nexport const CUSTOMER_RECONNECT_CONFIG = {\n interval: 3000,\n maxRetries: 5\n};\n\nexport const CONNECTION_TOKEN_POLLING_INTERVAL_IN_MS = 1000 * 60 * 60 * 12; // 12 hours\n\nexport const CONNECTION_TOKEN_EXPIRY_BUFFER_IN_MS = 60 * 1000; //1 min\n\nexport const TRANSPORT_LIFETIME_IN_SECONDS = 3540; // 59 mins\n\nexport const START_CHAT_SESSION = \"StartChatSession\";\n\nexport const MOCK_USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36';\n\nexport const SEND_EVENT_CONACK_THROTTLED = \"SEND_EVENT_CONACK_THROTTLED\";\nexport const CREATE_PARTICIPANT_CONACK_FAILURE = \"CREATE_PARTICIPANT_CONACK_FAILURE\";\nexport const SEND_EVENT_CONACK_FAILURE = \"SEND_EVENT_CONACK_FAILURE\";\nexport const CREATE_PARTICIPANT_CONACK_API_CALL_COUNT = \"CREATE_PARTICIPANT_CONACK_CALL_COUNT\";\n\nexport const TYPING_VALIDITY_TIME = 10000;","import { IllegalArgumentException } from \"./core/exceptions\";\nimport { ValueError } from \"./core/exceptions\";\nimport { sprintf } from \"sprintf-js\";\nimport { CONTENT_TYPE } from \"./constants\";\nconst Utils = {};\n\n/**\n * Asserts that a premise is true.\n */\nUtils.assertTrue = function(premise, message) {\n if (!premise) {\n throw new ValueError(message);\n }\n};\n\n/**\n * Asserts that a value is not null or undefined.\n */\nUtils.assertNotNull = function(value, name) {\n Utils.assertTrue(\n value !== null && typeof value !== \"undefined\",\n sprintf(\"%s must be provided\", name || \"A value\")\n );\n return value;\n};\n\nUtils.now = function() {\n return new Date().getTime();\n};\n\nUtils.isString = function(value) {\n return typeof value === \"string\";\n};\n\n/**\n * Generate a random ID consisting of the current timestamp\n * and a random base-36 number based on Math.random().\n */\nUtils.randomId = function() {\n return sprintf(\n \"%s-%s\",\n Utils.now(),\n Math.random()\n .toString(36)\n .slice(2)\n );\n};\n\nUtils.assertIsNonEmptyString = function(value, key) {\n if (!value || typeof value !== \"string\") {\n throw new IllegalArgumentException(key + \" is not a non-empty string!\");\n }\n};\n\nUtils.assertIsList = function(value, key) {\n if (!Array.isArray(value)) {\n throw new IllegalArgumentException(key + \" is not an array\");\n }\n};\n\nUtils.assertIsEnum = function(value, allowedValues, key) {\n var i;\n for (i = 0; i < allowedValues.length; i++) {\n if (allowedValues[i] === value) {\n return;\n }\n }\n throw new IllegalArgumentException(\n key + \" passed (\" + value + \")\" + \" is not valid. Allowed values are: \" + allowedValues\n );\n};\n\n/**\n * Generate an enum from the given list of lower-case enum values,\n * where the enum keys will be upper case.\n *\n * Conversion from pascal case based on code from here:\n * http://stackoverflow.com/questions/30521224\n */\nUtils.makeEnum = function(values) {\n var enumObj = {};\n\n values.forEach(function(value) {\n var key = value\n .replace(/\\.?([a-z]+)_?/g, function(x, y) {\n return y.toUpperCase() + \"_\";\n })\n .replace(/_$/, \"\");\n\n enumObj[key] = value;\n });\n\n return enumObj;\n};\n\nUtils.contains = function(obj, value) {\n if (obj instanceof Array) {\n return (\n Utils.find(obj, function(v) {\n return v === value;\n }) !== null\n );\n } else {\n return value in obj;\n }\n};\n\nUtils.find = function(array, predicate) {\n for (var x = 0; x < array.length; x++) {\n if (predicate(array[x])) {\n return array[x];\n }\n }\n\n return null;\n};\n\nUtils.containsValue = function(obj, value) {\n if (obj instanceof Array) {\n return (\n Utils.find(obj, function(v) {\n return v === value;\n }) !== null\n );\n } else {\n return (\n Utils.find(Utils.values(obj), function(v) {\n return v === value;\n }) !== null\n );\n }\n};\n\n/**\n * Determine if the given value is a callable function type.\n * Borrowed from Underscore.js.\n */\nUtils.isFunction = function(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n};\n\n/**\n * Get a list of values from a Javascript object used\n * as a hash map.\n */\nUtils.values = function(map) {\n var values = [];\n\n Utils.assertNotNull(map, \"map\");\n\n for (var k in map) {\n values.push(map[k]);\n }\n\n return values;\n};\n\nUtils.isObject = function(value) {\n return !(typeof value !== \"object\" || value === null);\n};\n\nUtils.assertIsObject = function(value, key) {\n if (!Utils.isObject(value)) {\n throw new IllegalArgumentException(key + \" is not an object!\");\n }\n};\n\nUtils.delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));\n\nUtils.asyncWhileInterval = function(f, predicate, interval, count=0, error=null) {\n const now = new Date();\n if (predicate(count)) {\n return f(count).catch((e) => {\n const delay = Math.max(0, interval - (new Date()).valueOf() + now.valueOf());\n return Utils\n .delay(delay)\n .then(() => Utils.asyncWhileInterval(f, predicate, interval, count + 1, e));\n });\n } else {\n return Promise.reject(error || new Error(\"async while aborted\"));\n }\n};\n\nUtils.isAttachmentContentType = function(contentType){\n return contentType === CONTENT_TYPE.applicationPdf\n || contentType === CONTENT_TYPE.imageJpg\n || contentType === CONTENT_TYPE.imagePng\n || contentType === CONTENT_TYPE.applicationDoc\n || contentType === CONTENT_TYPE.applicationXls\n || contentType === CONTENT_TYPE.applicationPpt\n || contentType === CONTENT_TYPE.textCsv\n || contentType === CONTENT_TYPE.audioWav;\n};\n\nexport default Utils;\n","import Utils from \"./utils\";\n\n/*eslint-disable no-unused-vars*/\nclass Logger {\n debug(data) {}\n\n info(data) {}\n\n warn(data) {}\n\n error(data) {}\n\n advancedLog(data) {}\n}\n/*eslint-enable no-unused-vars*/\n\nconst LogLevel = {\n DEBUG: 10,\n INFO: 20,\n WARN: 30,\n ERROR: 40,\n ADVANCED_LOG: 50,\n};\n\nclass LogManagerImpl {\n constructor() {\n this.updateLoggerConfig();\n }\n\n writeToClientLogger(level, logStatement, logMetaData) {\n if (!this.hasClientLogger()) {\n return;\n }\n var levelStringValue = getLogLevelByValue(level);\n switch (level) {\n case LogLevel.DEBUG:\n return this._clientLogger.debug(levelStringValue, logStatement, logMetaData) || logStatement;\n case LogLevel.INFO:\n return this._clientLogger.info(levelStringValue, logStatement, logMetaData) || logStatement;\n case LogLevel.WARN:\n return this._clientLogger.warn(levelStringValue, logStatement, logMetaData) || logStatement;\n case LogLevel.ERROR:\n return this._clientLogger.error(levelStringValue, logStatement, logMetaData) || logStatement;\n case LogLevel.ADVANCED_LOG:\n return this._advancedLogWriter && this._clientLogger[this._advancedLogWriter] && this._clientLogger[this._advancedLogWriter](levelStringValue, logStatement, logMetaData) || logStatement;\n }\n }\n\n isLevelEnabled(level) {\n return level >= this._level;\n }\n\n hasClientLogger() {\n return this._clientLogger !== null;\n }\n\n getLogger(options = {}) {\n // option: {prefix: string; logMetaData: object}\n return new LoggerWrapperImpl(options);\n }\n\n updateLoggerConfig(inputConfig) {\n var config = inputConfig || {};\n this._level = config.level || LogLevel.INFO;\n //enabled advancedLogWriter\n this._advancedLogWriter = \"warn\";\n if (isValidAdvancedLogConfig(config.advancedLogWriter, config.customizedLogger)) {\n this._advancedLogWriter = config.advancedLogWriter;\n }\n //enable clientLogger\n if((config.customizedLogger && typeof config.customizedLogger === \"object\") || \n (config.logger && typeof config.logger === \"object\")) {\n this.useClientLogger = true;\n }\n this._clientLogger = this.selectLogger(config);\n }\n\n selectLogger(config) {\n if(config.customizedLogger && typeof config.customizedLogger === \"object\") {\n return config.customizedLogger;\n }\n if(config.logger && typeof config.logger === \"object\") {\n return config.logger;\n }\n if(config.useDefaultLogger) {\n return createConsoleLogger();\n }\n return null;\n }\n}\nconst LogManager = new LogManagerImpl();\n\nclass LoggerWrapper {\n debug() {}\n\n info() {}\n\n warn() {}\n\n error() {}\n}\n\nclass LoggerWrapperImpl extends LoggerWrapper {\n constructor(options) {\n super();\n this.options = options || {};\n }\n\n debug(...args) {\n return this._log(LogLevel.DEBUG, args);\n }\n\n info(...args) {\n return this._log(LogLevel.INFO, args);\n }\n\n warn(...args) {\n return this._log(LogLevel.WARN, args);\n }\n\n error(...args) {\n return this._log(LogLevel.ERROR, args);\n }\n\n advancedLog(...args) {\n return this._log(LogLevel.ADVANCED_LOG, args);\n }\n \n _shouldLog(level) {\n return LogManager.hasClientLogger() && LogManager.isLevelEnabled(level);\n }\n\n _writeToClientLogger(level, logStatement) {\n return LogManager.writeToClientLogger(level, logStatement, this.options.logMetaData);\n }\n\n _log(level, args) {\n if (this._shouldLog(level)) {\n var logStatement = LogManager.useClientLogger ? args : this._convertToSingleStatement(args);\n return this._writeToClientLogger(level, logStatement);\n }\n }\n\n _convertToSingleStatement(args) {\n var date = new Date(Date.now()).toISOString();\n var logStatement = `[${date}]`;\n if (this.options) {\n this.options.prefix ? logStatement += \" \" + this.options.prefix + \":\" : logStatement += \"\";\n }\n for (var index = 0; index < args.length; index++) {\n var arg = args[index];\n logStatement += \" \" + this._convertToString(arg);\n }\n return logStatement;\n }\n\n _convertToString(arg) {\n try {\n if (!arg) {\n return \"\";\n }\n if (Utils.isString(arg)) {\n return arg;\n }\n if (Utils.isObject(arg) && Utils.isFunction(arg.toString)) {\n var toStringResult = arg.toString();\n if (toStringResult !== \"[object Object]\") {\n return toStringResult;\n }\n }\n return JSON.stringify(arg);\n } catch (error) {\n console.error(\"Error while converting argument to string\", arg, error);\n return \"\";\n }\n }\n}\n\nfunction getLogLevelByValue(value) {\n switch(value) {\n case 10: return \"DEBUG\";\n case 20: return \"INFO\";\n case 30: return \"WARN\";\n case 40: return \"ERROR\";\n case 50: return \"ADVANCED_LOG\";\n }\n}\n\nfunction isValidAdvancedLogConfig(advancedLogVal, customizedLogger) {\n const customizedLoggerKeys = customizedLogger && Object.keys(customizedLogger);\n if (customizedLoggerKeys && customizedLoggerKeys.indexOf(advancedLogVal) === -1) {\n console.error(`customizedLogger: incorrect value for loggerConfig:advancedLogWriter; use valid values from list ${customizedLoggerKeys} but used ${advancedLogVal}`);\n return false;\n }\n const defaultLoggerKeys = [\"warn\", \"info\", \"debug\", \"log\"];\n if (advancedLogVal && defaultLoggerKeys.indexOf(advancedLogVal) === -1) {\n console.error(`incorrect value for loggerConfig:advancedLogWriter; use valid values from list ${defaultLoggerKeys} but used ${advancedLogVal}`);\n return false;\n }\n return true;\n}\n\nvar createConsoleLogger = () => {\n var logger = new LoggerWrapper();\n logger.debug = console.debug.bind(window.console);\n logger.info = console.info.bind(window.console);\n logger.warn = console.warn.bind(window.console);\n logger.error = console.error.bind(window.console);\n return logger;\n};\n\n\nexport { LogManager, Logger, LogLevel };\n","import { UnImplementedMethodException } from \"../core/exceptions\";\nimport { GlobalConfig } from \"../globalConfig\";\nimport {\n REGIONS\n} from \"../constants\";\nimport { LogManager } from \"../log\";\n//Note: this imports AWS instead from aws-sdk npm package - details in ReadMe\nimport { ConnectParticipant } from \"./aws-sdk-connectparticipant\";\nimport throttle from \"lodash/throttle\";\nimport { CONTENT_TYPE, TYPING_VALIDITY_TIME } from '../constants';\n\nconst DEFAULT_PREFIX = \"Amazon-Connect-ChatJS-ChatClient\";\n\nclass ChatClientFactoryImpl {\n constructor() {\n this.clientCache = {};\n }\n\n getCachedClient(optionsInput, logMetaData) {\n var options = Object.assign({}, optionsInput);\n var region = optionsInput.region || GlobalConfig.getRegion() || REGIONS.pdx;\n options.region = region;\n logMetaData.region = region;\n if (this.clientCache[region]) {\n return this.clientCache[region];\n }\n var client = this._createAwsClient(options, logMetaData);\n this.clientCache[region] = client;\n return client;\n }\n\n _createAwsClient(options, logMetaData) {\n var region = options.region;\n var endpointOverride = GlobalConfig.getEndpointOverride();\n var endpointUrl = `https://participant.connect.${region}.amazonaws.com`;\n if (endpointOverride) {\n endpointUrl = endpointOverride;\n }\n return new AWSChatClient({\n endpoint: endpointUrl,\n region: region,\n logMetaData\n });\n }\n}\n\n/*eslint-disable*/\nclass ChatClient {\n sendMessage(participantToken, message, type) {\n throw new UnImplementedMethodException(\"sendTextMessage in ChatClient\");\n }\n\n sendAttachment(participantToken, attachment, metadata) {\n throw new UnImplementedMethodException(\"sendAttachment in ChatClient\");\n }\n\n downloadAttachment(participantToken, attachmentId){\n throw new UnImplementedMethodException(\"downloadAttachment in ChatClient\");\n }\n\n disconnectParticipant(participantToken) {\n throw new UnImplementedMethodException(\"disconnectParticipant in ChatClient\");\n }\n\n sendEvent(connectionToken, contentType, content) {\n throw new UnImplementedMethodException(\"sendEvent in ChatClient\");\n }\n\n createParticipantConnection(participantToken, type) {\n throw new UnImplementedMethodException(\"createParticipantConnection in ChatClient\");\n }\n}\n/*eslint-enable*/\n\nclass AWSChatClient extends ChatClient {\n constructor(args) {\n super();\n var creds = new AWS.Credentials('','');\n var config = new AWS.Config({\n region: args.region,\n endpoint: args.endpoint,\n credentials: creds\n });\n this.chatClient = new AWS.ConnectParticipant(config);\n this.invokeUrl = args.endpoint;\n this.logger = LogManager.getLogger({ prefix: DEFAULT_PREFIX, logMetaData: args.logMetaData });\n }\n\n createParticipantConnection(participantToken, type, acknowledgeConnection) {\n let self = this;\n var params = {\n ParticipantToken: participantToken,\n Type: type,\n ConnectParticipant: acknowledgeConnection\n };\n \n var createParticipantConnectionRequest = self.chatClient.createParticipantConnection(\n params\n );\n return self._sendRequest(createParticipantConnectionRequest).then((res) => {\n self.logger.info(\"Successfully create connection request\")?.sendInternalLogToServer?.();\n return res;\n }).catch((err) => {\n self.logger.error(\"Error when creating connection request \", err)?.sendInternalLogToServer?.();\n return Promise.reject(err);\n });\n }\n\n disconnectParticipant(connectionToken) {\n let self = this;\n var params = {\n ConnectionToken: connectionToken\n };\n\n var disconnectParticipantRequest = self.chatClient.disconnectParticipant(\n params\n );\n return self._sendRequest(disconnectParticipantRequest).then((res) => {\n self.logger.info(\"Successfully disconnect participant\")?.sendInternalLogToServer?.();\n return res;\n }).catch((err) => {\n self.logger.error(\"Error when disconnecting participant \", err)?.sendInternalLogToServer?.();\n return Promise.reject(err);\n });\n }\n\n getTranscript(connectionToken, args) {\n let self = this;\n var params = {\n MaxResults: args.maxResults,\n NextToken: args.nextToken,\n ScanDirection: args.scanDirection,\n SortOrder: args.sortOrder,\n StartPosition: {\n Id: args.startPosition.id,\n AbsoluteTime: args.startPosition.absoluteTime,\n MostRecent: args.startPosition.mostRecent\n },\n ConnectionToken: connectionToken\n };\n if (args.contactId) {\n params.ContactId = args.contactId;\n }\n var getTranscriptRequest = self.chatClient.getTranscript(params);\n return self._sendRequest(getTranscriptRequest).then((res) => {\n this.logger.info(\"Successfully get transcript\");\n return res;\n }).catch((err) => {\n this.logger.error(\"Get transcript error\", err);\n return Promise.reject(err);\n });\n }\n\n sendMessage(connectionToken, content, contentType) {\n let self = this;\n var params = {\n Content: content,\n ContentType: contentType,\n ConnectionToken: connectionToken\n };\n var sendMessageRequest = self.chatClient.sendMessage(params);\n return self._sendRequest(sendMessageRequest).then((res) => {\n const logContent = {id: res.data?.Id, contentType: params.ContentType};\n this.logger.debug(\"Successfully send message\", logContent);\n return res;\n }).catch((err) => {\n this.logger.error(\"Send message error\", err, {contentType: params.ContentType});\n return Promise.reject(err);\n });\n }\n\n sendAttachment(connectionToken, attachment, metadata) {\n let self = this;\n const startUploadRequestParams = {\n ContentType: attachment.type,\n AttachmentName: attachment.name,\n AttachmentSizeInBytes: attachment.size,\n ConnectionToken: connectionToken\n };\n const startUploadRequest = self.chatClient.startAttachmentUpload(startUploadRequestParams);\n const logContent = {contentType: attachment.type, size: attachment.size};\n return self._sendRequest(startUploadRequest)\n .then(startUploadResponse => {\n return self._uploadToS3(attachment, startUploadResponse.data.UploadMetadata)\n .then(() => {\n const completeUploadRequestParams = {\n AttachmentIds: [ startUploadResponse.data.AttachmentId ],\n ConnectionToken: connectionToken\n };\n this.logger.debug(\"Successfully upload attachment\", {...logContent, attachmentId: startUploadResponse.data?.AttachmentId});\n const completeUploadRequest = self.chatClient.completeAttachmentUpload(completeUploadRequestParams);\n return self._sendRequest(completeUploadRequest);\n });\n }).catch((err) => {\n this.logger.error(\"Upload attachment error\", err, logContent);\n return Promise.reject(err);\n });\n }\n\n _uploadToS3(file, metadata) {\n return fetch(metadata.Url,{\n method: \"PUT\",\n headers: metadata.HeadersToInclude,\n body: file\n });\n }\n\n downloadAttachment(connectionToken, attachmentId) {\n let self = this;\n const params = {\n AttachmentId: attachmentId,\n ConnectionToken: connectionToken\n };\n const logContent = {attachmentId};\n const getAttachmentRequest = self.chatClient.getAttachment(params);\n return self._sendRequest(getAttachmentRequest)\n .then(response => {\n this.logger.debug(\"Successfully download attachment\", logContent);\n return self._downloadUrl(response.data.Url);\n }).catch(err => {\n this.logger.error(\"Download attachment error\", err, logContent);\n return Promise.reject(err);\n });\n }\n\n _downloadUrl(url){\n return fetch(url)\n .then(t => t.blob())\n .catch(err => { return Promise.reject(err); });\n }\n\n \n sendEvent(connectionToken, contentType, content) {\n let self = this;\n if(contentType === CONTENT_TYPE.typing) {\n return self.throttleEvent(connectionToken, contentType, content)\n }\n return self._submitEvent(connectionToken, contentType, content);\n }\n \n throttleEvent = throttle((connectionToken, contentType, content) => {\n return this._submitEvent(connectionToken, contentType, content);\n }, TYPING_VALIDITY_TIME, { trailing: false, leading: true })\n \n async _submitEvent(connectionToken, contentType, content) {\n let self = this;\n var params = {\n ConnectionToken: connectionToken,\n ContentType: contentType,\n Content: content\n };\n var sendEventRequest = self.chatClient.sendEvent(params);\n const logContent = {contentType};\n try {\n const res = await self._sendRequest(sendEventRequest);\n this.logger.debug(\"Successfully send event\", { ...logContent, id: res.data?.Id, });\n return res;\n } catch (err) {\n return await Promise.reject(err);\n }\n }\n\n _sendRequest(request) {\n return new Promise((resolve, reject) => {\n request\n .on(\"success\", function(res) {\n resolve(res);\n })\n .on(\"error\", function(err) {\n const errObj = {\n type: err.code,\n message: err.message,\n stack: err.stack ? err.stack.split('\\n') : [],\n statusCode: err.statusCode,\n }\n reject(errObj);\n })\n .send();\n });\n }\n}\n\nvar ChatClientFactory = new ChatClientFactoryImpl();\nexport { ChatClientFactory };\n","import Utils from \"../utils\";\nimport { IllegalArgumentException } from \"./exceptions\";\nimport { CONTENT_TYPE, SESSION_TYPES } from \"../constants\";\n\nclass ChatControllerArgsValidator {\n /*eslint-disable no-unused-vars*/\n validateNewControllerDetails(chatDetails) {\n return true;\n }\n /*eslint-enable no-unused-vars*/\n\n validateSendMessage(args) {\n if (!Utils.isString(args.message)) {\n throw new IllegalArgumentException(args.message + \"is not a valid message\");\n }\n this.validateContentType(args.contentType);\n }\n\n validateContentType(contentType) {\n Utils.assertIsEnum(contentType, Object.values(CONTENT_TYPE), \"contentType\"); \n }\n\n /*eslint-disable no-unused-vars*/\n validateConnectChat(args) {\n return true;\n }\n /*eslint-enable no-unused-vars*/\n\n validateLogger(logger) {\n Utils.assertIsObject(logger, \"logger\");\n [\"debug\", \"info\", \"warn\", \"error\"].forEach(methodName => {\n if (!Utils.isFunction(logger[methodName])) {\n throw new IllegalArgumentException(\n methodName +\n \" should be a valid function on the passed logger object!\"\n );\n }\n });\n }\n\n validateSendEvent(args) {\n this.validateContentType(args.contentType);\n }\n\n /*eslint-disable no-unused-vars*/\n validateGetMessages(args) {\n return true;\n }\n /*eslint-enable no-unused-vars*/\n}\n\nclass ChatServiceArgsValidator extends ChatControllerArgsValidator {\n validateChatDetails(chatDetails, sessionType) {\n Utils.assertIsObject(chatDetails, \"chatDetails\");\n if (sessionType===SESSION_TYPES.AGENT && !Utils.isFunction(chatDetails.getConnectionToken)) {\n throw new IllegalArgumentException(\n \"getConnectionToken was not a function\", \n chatDetails.getConnectionToken\n );\n }\n Utils.assertIsNonEmptyString(\n chatDetails.contactId,\n \"chatDetails.contactId\"\n );\n Utils.assertIsNonEmptyString(\n chatDetails.participantId,\n \"chatDetails.participantId\"\n );\n if (sessionType===SESSION_TYPES.CUSTOMER){\n if (chatDetails.participantToken){\n Utils.assertIsNonEmptyString(\n chatDetails.participantToken,\n \"chatDetails.participantToken\"\n );\n } else {\n throw new IllegalArgumentException(\n \"participantToken was not provided for a customer session type\",\n chatDetails.participantToken\n );\n }\n }\n }\n\n validateInitiateChatResponse() {\n return true;\n }\n\n normalizeChatDetails(chatDetailsInput) {\n let chatDetails = {};\n chatDetails.contactId = chatDetailsInput.ContactId || chatDetailsInput.contactId;\n chatDetails.participantId = chatDetailsInput.ParticipantId || chatDetailsInput.participantId;\n chatDetails.initialContactId = chatDetailsInput.InitialContactId || chatDetailsInput.initialContactId\n || chatDetails.contactId || chatDetails.ContactId;\n chatDetails.getConnectionToken = chatDetailsInput.getConnectionToken || chatDetailsInput.GetConnectionToken;\n if (chatDetailsInput.participantToken || chatDetailsInput.ParticipantToken) {\n chatDetails.participantToken = chatDetailsInput.ParticipantToken || chatDetailsInput.participantToken;\n }\n this.validateChatDetails(chatDetails);\n return chatDetails;\n }\n}\n\nexport { ChatServiceArgsValidator };\n","import { CONNECTION_TOKEN_POLLING_INTERVAL_IN_MS, CONNECTION_TOKEN_EXPIRY_BUFFER_IN_MS } from \"../../constants\";\nimport { LogManager } from \"../../log\";\nconst ConnectionHelperStatus = {\n NeverStarted: \"NeverStarted\",\n Starting: \"Starting\",\n Connected: \"Connected\",\n ConnectionLost: \"ConnectionLost\",\n Ended: \"Ended\"\n};\n\nconst ConnectionHelperEvents = {\n ConnectionLost: \"ConnectionLost\", // event data is: {reason: ...}\n ConnectionGained: \"ConnectionGained\", // event data is: {reason: ...}\n Ended: \"Ended\", // event data is: {reason: ...}\n IncomingMessage: \"IncomingMessage\" // event data is: {payloadString: ...}\n};\n\nconst ConnectionInfoType = {\n WEBSOCKET: \"WEBSOCKET\",\n CONNECTION_CREDENTIALS: \"CONNECTION_CREDENTIALS\"\n};\n\nexport default class BaseConnectionHelper {\n constructor(connectionDetailsProvider, logMetaData) {\n this.connectionDetailsProvider = connectionDetailsProvider;\n this.isStarted = false;\n this.logger = LogManager.getLogger({ prefix: \"ChatJS-BaseConnectionHelper\", logMetaData });\n }\n\n startConnectionTokenPolling(isFirstCall=false, expiry=CONNECTION_TOKEN_POLLING_INTERVAL_IN_MS) {\n if (!isFirstCall){\n //TODO: use Type field to avoid fetching websocket connection\n return this.connectionDetailsProvider.fetchConnectionDetails()\n .then(response => {\n this.logger.info(\"Connection token polling succeeded.\");\n expiry = this.getTimeToConnectionTokenExpiry();\n this.timeout = setTimeout(this.startConnectionTokenPolling.bind(this), expiry);\n return response;\n })\n .catch((e) => {\n this.logger.error(\"An error occurred when attempting to fetch the connection token during Connection Token Polling\", e);\n this.timeout = setTimeout(this.startConnectionTokenPolling.bind(this), expiry);\n return e;\n });\n }\n else {\n this.logger.info(\"First time polling connection token.\");\n this.timeout = setTimeout(this.startConnectionTokenPolling.bind(this), expiry);\n }\n }\n\n start() {\n if (this.isStarted) {\n return this.getConnectionToken();\n }\n this.isStarted = true;\n return this.startConnectionTokenPolling(\n true, \n this.getTimeToConnectionTokenExpiry()\n );\n }\n\n end() {\n clearTimeout(this.timeout);\n }\n\n getConnectionToken() {\n return this.connectionDetailsProvider.getFetchedConnectionToken();\n }\n\n getConnectionTokenExpiry() {\n return this.connectionDetailsProvider.getConnectionTokenExpiry();\n }\n\n getTimeToConnectionTokenExpiry() {\n var dateExpiry = new Date(\n this.getConnectionTokenExpiry()\n ).getTime();\n var now = new Date().getTime();\n return dateExpiry - now - CONNECTION_TOKEN_EXPIRY_BUFFER_IN_MS;\n }\n}\n\nexport {\n ConnectionHelperStatus,\n ConnectionHelperEvents,\n ConnectionInfoType\n};\n","import Utils from \"../utils\";\n\nconst ALL_EVENTS = \"<>\";\n\n/**\n * An object representing an event subscription in an EventBus.\n */\nvar Subscription = function(subMap, eventName, f) {\n this.subMap = subMap;\n this.id = Utils.randomId();\n this.eventName = eventName;\n this.f = f;\n};\n\n/**\n * Unsubscribe the handler of this subscription from the EventBus\n * from which it was created.\n */\nSubscription.prototype.unsubscribe = function() {\n this.subMap.unsubscribe(this.eventName, this.id);\n};\n\n/**\n * A map of event subscriptions, used by the EventBus.\n */\nvar SubscriptionMap = function() {\n this.subIdMap = {};\n this.subEventNameMap = {};\n};\n\n/**\n * Add a subscription for the named event. Creates a new Subscription\n * object and returns it. This object can be used to unsubscribe.\n */\nSubscriptionMap.prototype.subscribe = function(eventName, f) {\n var sub = new Subscription(this, eventName, f);\n\n this.subIdMap[sub.id] = sub;\n var subList = this.subEventNameMap[eventName] || [];\n subList.push(sub);\n this.subEventNameMap[eventName] = subList;\n return () => sub.unsubscribe();\n};\n\n/**\n * Unsubscribe a subscription matching the given event name and id.\n */\nSubscriptionMap.prototype.unsubscribe = function(eventName, subId) {\n if (Utils.contains(this.subEventNameMap, eventName)) {\n this.subEventNameMap[eventName] = this.subEventNameMap[eventName].filter(\n function(s) {\n return s.id !== subId;\n }\n );\n\n if (this.subEventNameMap[eventName].length < 1) {\n delete this.subEventNameMap[eventName];\n }\n }\n\n if (Utils.contains(this.subIdMap, subId)) {\n delete this.subIdMap[subId];\n }\n};\n\n/**\n * Get a list of all subscriptions in the subscription map.\n */\nSubscriptionMap.prototype.getAllSubscriptions = function() {\n return Utils.values(this.subEventNameMap).reduce(function(a, b) {\n return a.concat(b);\n }, []);\n};\n\n/**\n * Get a list of subscriptions for the given event name, or an empty\n * list if there are no subscriptions.\n */\nSubscriptionMap.prototype.getSubscriptions = function(eventName) {\n return this.subEventNameMap[eventName] || [];\n};\n\n/**\n * An object which maintains a map of subscriptions and serves as the\n * mechanism for triggering events to be handled by subscribers.\n */\nvar EventBus = function(paramsIn) {\n var params = paramsIn || {};\n\n this.subMap = new SubscriptionMap();\n this.logEvents = params.logEvents || false;\n};\n\n/**\n * Subscribe to the named event. Returns a new Subscription object\n * which can be used to unsubscribe.\n */\nEventBus.prototype.subscribe = function(eventName, f) {\n Utils.assertNotNull(eventName, \"eventName\");\n Utils.assertNotNull(f, \"f\");\n Utils.assertTrue(Utils.isFunction(f), \"f must be a function\");\n return this.subMap.subscribe(eventName, f);\n};\n\n/**\n * Subscribe a function to be called on all events.\n */\nEventBus.prototype.subscribeAll = function(f) {\n Utils.assertNotNull(f, \"f\");\n Utils.assertTrue(Utils.isFunction(f), \"f must be a function\");\n return this.subMap.subscribe(ALL_EVENTS, f);\n};\n\n/**\n * Get a list of subscriptions for the given event name, or an empty\n * list if there are no subscriptions.\n */\nEventBus.prototype.getSubscriptions = function(eventName) {\n return this.subMap.getSubscriptions(eventName);\n};\n\n/**\n * Trigger the given event with the given data. All methods subscribed\n * to this event will be called and are provided with the given arbitrary\n * data object and the name of the event, in that order.\n */\nEventBus.prototype.trigger = function(eventName, data) {\n Utils.assertNotNull(eventName, \"eventName\");\n var self = this;\n var allEventSubs = this.subMap.getSubscriptions(ALL_EVENTS);\n var eventSubs = this.subMap.getSubscriptions(eventName);\n\n // if (this.logEvents && (eventName !== connect.EventType.LOG && eventName !== connect.EventType.MASTER_RESPONSE && eventName !== connect.EventType.API_METRIC)) {\n // connect.getLog().trace(\"Publishing event: %s\", eventName);\n // }\n\n allEventSubs.concat(eventSubs).forEach(function(sub) {\n try {\n sub.f(data || null, eventName, self);\n } catch (e) {\n // connect\n // .getLog()\n // .error(\"'%s' event handler failed.\", eventName)\n // .withException(e);\n }\n });\n};\n\n/**\n * Trigger the given event with the given data. All methods subscribed\n * to this event will be called and are provided with the given arbitrary\n * data object and the name of the event, in that order.\n */\nEventBus.prototype.triggerAsync = function(eventName, data) {\n setTimeout(() => this.trigger(eventName, data), 0);\n};\n\n/**\n * Returns a closure which bridges an event from another EventBus to this bus.\n *\n * Usage:\n * conduit.onUpstream(\"MyEvent\", bus.bridge());\n */\nEventBus.prototype.bridge = function() {\n var self = this;\n return function(data, event) {\n self.trigger(event, data);\n };\n};\n\n/**\n * Unsubscribe all events in the event bus.\n */\nEventBus.prototype.unsubscribeAll = function() {\n this.subMap.getAllSubscriptions().forEach(function(sub) {\n sub.unsubscribe();\n });\n};\n\nexport { EventBus };\n","export const CHAT_WIDGET_METRIC_NAME_SPACE = \"chat-widget\";\nexport const DEFAULT_WIDGET_TYPE = \"CustomChatWidget\";\n\nexport const getLdasEndpointUrl = (region) => {\n return `https://ieluqbvv.telemetry.connect.${region}.amazonaws.com/prod`;\n};","import { GlobalConfig } from \"../globalConfig\";\nimport {\n getLdasEndpointUrl,\n CHAT_WIDGET_METRIC_NAME_SPACE,\n DEFAULT_WIDGET_TYPE\n} from \"../configs/csmConfig\";\nimport { LogManager } from \"../log\";\nimport { csmJsString } from '../lib/connect-csm';\nimport { csmWorkerString } from '../lib/connect-csm-worker';\n\nexport const DIMENSION_CATEGORY = \"Category\";\nclass CsmService {\n constructor() {\n this.widgetType = DEFAULT_WIDGET_TYPE;\n this.logger = LogManager.getLogger({\n prefix: \"ChatJS-csmService\"\n });\n this.csmInitialized = false;\n this.metricsToBePublished = [];\n this.agentMetricToBePublished = [];\n this.MAX_RETRY = 5;\n }\n \n loadCsmScriptAndExecute() {\n try {\n let script = document.createElement('script');\n script.type = 'text/javascript';\n script.innerHTML = csmJsString;\n document.head.appendChild(script);\n this.initializeCSM();\n } catch (error) {\n this.logger.error(\"Load csm script error: \", error);\n }\n }\n \n initializeCSM() {\n // avoid multiple initialization\n try {\n if (this.csmInitialized) {\n return;\n }\n const region = GlobalConfig.getRegion();\n const csmWorkerText = csmWorkerString.replace(/\\\\/g, '');\n const sharedWorkerBlobUrl = URL.createObjectURL(new Blob([csmWorkerText], { type: 'text/javascript' }));\n const ldasEndpoint = getLdasEndpointUrl(region);\n let params = {\n endpoint: ldasEndpoint,\n namespace: CHAT_WIDGET_METRIC_NAME_SPACE,\n sharedWorkerUrl: sharedWorkerBlobUrl,\n };\n \n csm.initCSM(params);\n this.logger.info(`CSMService is initialized in ${region}`);\n this.csmInitialized = true;\n if (this.metricsToBePublished) {\n this.metricsToBePublished.forEach((metric) => {\n csm.API.addMetric(metric);\n });\n this.metricsToBePublished = null;\n }\n } catch(err) {\n this.logger.error('Failed to initialize csm: ', err);\n }\n }\n\n updateCsmConfig(csmConfig) {\n this.widgetType = typeof csmConfig === \"object\" && csmConfig !== null && !Array.isArray(csmConfig) ?\n csmConfig.widgetType : this.widgetType;\n }\n\n getDefaultDimensions() {\n return [\n {\n name: \"WidgetType\",\n value: this.widgetType\n }\n ];\n }\n\n addMetric(metric) {\n // if csmService is never initialized, store the metrics in an array\n if (!this.csmInitialized) {\n if (this.metricsToBePublished) {\n this.metricsToBePublished.push(metric);\n this.logger.info(`CSMService is not initialized yet. Adding metrics to queue to be published once CSMService is initialized`);\n }\n } else {\n try {\n csm.API.addMetric(metric);\n } catch(err) {\n this.logger.error('Failed to addMetric csm: ', err);\n }\n }\n }\n\n setDimensions(metric, dimensions) {\n dimensions.forEach((dimension) => {\n metric.addDimension(dimension.name, dimension.value);\n });\n }\n\n addLatencyMetric(method, timeDifference, category, otherDimensions = []) {\n try {\n const latencyMetric = new csm.Metric(\n method,\n csm.UNIT.MILLISECONDS,\n timeDifference\n );\n const dimensions = [\n ...this.getDefaultDimensions(),\n {\n name: \"Metric\",\n value: \"Latency\",\n },\n {\n name: DIMENSION_CATEGORY,\n value: category\n },\n ...otherDimensions\n ];\n this.setDimensions(latencyMetric, dimensions);\n this.addMetric(latencyMetric);\n this.logger.debug(`Successfully published latency API metrics for method ${method}`);\n } catch (err) {\n this.logger.error('Failed to addLatencyMetric csm: ', err);\n }\n }\n\n addLatencyMetricWithStartTime(method, startTime, category, otherDimensions = []) {\n const endTime = new Date().getTime();\n const timeDifference = endTime - startTime;\n this.addLatencyMetric(method, timeDifference, category, otherDimensions);\n this.logger.debug(`Successfully published latency API metrics for method ${method}`);\n }\n\n addCountAndErrorMetric(method, category, error, otherDimensions = []) {\n try {\n const dimensions = [\n ...this.getDefaultDimensions(),\n {\n name: DIMENSION_CATEGORY,\n value: category\n },\n ...otherDimensions\n ];\n const countMetric = new csm.Metric(method, csm.UNIT.COUNT, 1);\n this.setDimensions(countMetric, [\n ...dimensions,\n {\n name: \"Metric\",\n value: \"Count\",\n }\n ]);\n const errorCount = error ? 1 : 0;\n const errorMetric = new csm.Metric(method, csm.UNIT.COUNT, errorCount);\n this.setDimensions(errorMetric, [\n ...dimensions,\n {\n name: \"Metric\",\n value: \"Error\",\n }\n ]);\n this.addMetric(countMetric);\n this.addMetric(errorMetric);\n this.logger.debug(`Successfully published count and error metrics for method ${method}`);\n } catch(err) {\n this.logger.error('Failed to addCountAndErrorMetric csm: ', err);\n }\n }\n\n addCountMetric(method, category, otherDimensions = []) {\n try {\n const dimensions = [\n ...this.getDefaultDimensions(),\n {\n name: DIMENSION_CATEGORY,\n value: category\n },\n {\n name: \"Metric\",\n value: \"Count\",\n },\n ...otherDimensions\n ];\n const countMetric = new csm.Metric(method, csm.UNIT.COUNT, 1);\n this.setDimensions(countMetric, dimensions);\n this.addMetric(countMetric);\n this.logger.debug(`Successfully published count metrics for method ${method}`);\n } catch(err) {\n this.logger.error('Failed to addCountMetric csm: ', err);\n }\n }\n\n addAgentCountMetric(metricName, count) {\n try {\n const _self = this;\n if (csm && csm.API.addCount && metricName) {\n csm.API.addCount(metricName, count);\n _self.MAX_RETRY = 5;\n } else {\n //add to list and retry later\n if (metricName) {\n this.agentMetricToBePublished.push({\n \n metricName,\n \n count\n });\n }\n setTimeout(() => {\n if (csm && csm.API.addCount) {\n this.agentMetricToBePublished.forEach(metricItem => {\n csm.API.addCount(metricItem.metricName, metricItem.count);\n });\n this.agentMetricToBePublished = [];\n } else if(_self.MAX_RETRY > 0) {\n _self.MAX_RETRY -= 1;\n _self.addAgentCountMetric();\n }\n }, 3000);\n }\n } catch(err) {\n this.logger.error('Failed to addAgentCountMetric csm: ', err);\n }\n }\n}\n\nconst csmService = new CsmService();\nexport { csmService };","export const csmJsString = `(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n csm.EVENT_TYPE = {\n LOG: 'LOG',\n METRIC: 'METRIC',\n CONFIG: 'CONFIG',\n WORKFLOW_EVENT: 'WORKFLOW_EVENT',\n CUSTOM: 'CUSTOM',\n CLOSE: 'CLOSE',\n SET_AUTH: 'SET_AUTH',\n SET_CONFIG: 'SET_CONFIG',\n };\n\n csm.UNIT = {\n COUNT: 'Count',\n SECONDS: 'Seconds',\n MILLISECONDS: 'Milliseconds',\n MICROSECONDS: 'Microseconds',\n };\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const MAX_METRIC_DIMENSIONS = 10;\n\n /** ********* Dimension Classes ***********/\n\n const Dimension = function(name, value) {\n csm.Util.assertExist(name, 'name');\n csm.Util.assertExist(value, 'value');\n\n this.name = name;\n this.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n };\n\n\n /** ********* Metric Classes ***********/\n\n const Metric = function(metricName, unit, value, dedupeOptions) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(value, 'value');\n csm.Util.assertExist(unit, 'unit');\n csm.Util.assertTrue(csm.Util.isValidUnit(unit));\n if (dedupeOptions) {\n csm.Util.assertInObject(dedupeOptions, 'dedupeOptions', 'dedupeIntervalMs');\n }\n\n this.metricName = metricName;\n this.unit = unit;\n this.value = value;\n this.timestamp = new Date();\n this.dimensions = csm.globalDimensions ? csm.Util.deepCopy(csm.globalDimensions): [];\n this.namespace = csm.configuration.namespace;\n this.dedupeOptions = dedupeOptions; // optional. { dedupeIntervalMs: (int; required), context: (string; optional) }\n\n // Currently, CloudWatch can't aggregate metrics by a subset of dimensions.\n // To bypass this limitation, we introduce the optional dimensions concept to CSM.\n // The CSM metric publisher will publish a default metric without optional dimension\n // For each optional dimension, the CSM metric publisher publishes an extra metric with that dimension.\n this.optionalDimensions = csm.globalOptionalDimensions ? csm.Util.deepCopy(csm.globalOptionalDimensions): [];\n };\n\n Metric.prototype.addDimension = function(name, value) {\n this._addDimensionHelper(this.dimensions, name, value);\n };\n\n Metric.prototype.addOptionalDimension = function(name, value) {\n this._addDimensionHelper(this.optionalDimensions, name, value);\n };\n\n Metric.prototype._addDimensionHelper = function(targetDimensions, name, value) {\n // CloudWatch metric allows maximum 10 dimensions\n // http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#putMetricData-property\n if ((this.dimensions.length + this.optionalDimensions.length) >= MAX_METRIC_DIMENSIONS) {\n throw new csm.ExceedDimensionLimitException(name);\n }\n\n const existing = targetDimensions.find(function(dimension) {\n return dimension.name === name;\n });\n\n if (existing) {\n existing.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n } else {\n targetDimensions.push(new Dimension(name, value));\n }\n };\n\n\n /** ********* Telemetry Classes ***********/\n\n const WorkflowEvent = function(params) {\n this.timestamp = params.timestamp || new Date().getTime();\n this.workflowType = params.workflow.type;\n this.instanceId = params.workflow.instanceId;\n this.userId = params.userId;\n this.organizationId = params.organizationId;\n this.accountId = params.accountId;\n this.event = params.event;\n this.appName = params.appName;\n this.data = [];\n\n // Convert 'data' map into the KeyValuePairList structure expected by the Lambda API\n for (const key in params.data) {\n if (Object.prototype.hasOwnProperty.call(params.data, key)) {\n this.data.push({'key': key, 'value': params.data[key]});\n }\n }\n };\n\n /** ********* Exceptions ***********/\n\n const NullOrUndefinedException = function(paramName) {\n this.name = 'NullOrUndefinedException';\n this.message = paramName + ' is null or undefined. ';\n };\n NullOrUndefinedException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const AssertTrueException = function() {\n this.name = 'AssertTrueException';\n this.message = 'Assertion failed. ';\n };\n AssertTrueException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const ExceedDimensionLimitException = function(dimensionName) {\n this.name = 'ExceedDimensionLimitException';\n this.message = 'Could not add dimension \\\\'' + dimensionName + '\\\\'. Metric has maximum 10 dimensions. ';\n };\n ExceedDimensionLimitException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const InitializationException = function() {\n this.name = 'InitializationException';\n this.message = 'Initialization failed. ';\n };\n InitializationException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n\n csm.Dimension = Dimension;\n csm.Metric = Metric;\n csm.WorkflowEvent = WorkflowEvent;\n csm.NullOrUndefinedException = NullOrUndefinedException;\n csm.AssertTrueException = AssertTrueException;\n csm.InitializationException = InitializationException;\n csm.ExceedDimensionLimitException = ExceedDimensionLimitException;\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const validTimeUnits = [csm.UNIT.SECONDS, csm.UNIT.MILLISECONDS, csm.UNIT.MICROSECONDS];\n const validUnits = validTimeUnits.concat(csm.UNIT.COUNT);\n\n const Util = {\n assertExist: function(value, paramName) {\n if (value === null || value === undefined) {\n throw new csm.NullOrUndefinedException(paramName);\n }\n },\n assertTrue: function(value) {\n if (!value) {\n throw new csm.AssertTrueException();\n }\n },\n assertInObject: function(obj, objName, key) {\n if (obj === null || obj === undefined || typeof obj !== 'object') {\n throw new csm.NullOrUndefinedException(objName);\n }\n if (key === null || key === undefined || !obj[key]) {\n throw new csm.NullOrUndefinedException(\\`\\${objName}[\\${key}]\\`);\n }\n },\n isValidUnit: function(unit) {\n return validUnits.includes(unit);\n },\n isValidTimeUnit: function(unit) {\n return validTimeUnits.includes(unit);\n },\n isEmpty: function(value) {\n if (value !== null && typeof val === 'object') {\n return Objects.keys(value).length === 0;\n }\n return !value;\n },\n deepCopy: function(obj) {\n // NOTE: this will fail if obj has a circular reference\n return JSON.parse(JSON.stringify(obj));\n },\n\n /**\n * This function is used before setting the page location for default metrics and logs,\n * and the APIs that set page location\n * Can be overridden by calling csm.API.setPageLocationTransformer(function(){})\n * @param {string} pathname path for page location\n * @return {string} pathname provided\n */\n pageLocationTransformer: function(pathname) {\n return pathname;\n },\n\n /**\n * As of now, our service public claims only support for Firefox and Chrome\n * Reference https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent\n *\n * This function will only return firefox, chrome and others\n *\n * Best practice as indicated in MDN, \"Avoiding user agent detection\"\n */\n getBrowserDetails: function() {\n const userAgent = window.navigator.userAgent;\n const details = {};\n if (userAgent.includes('Firefox') && !userAgent.includes('Seamonkey')) {\n details.name = 'Firefox';\n details.version = getBrowserVersion('Firefox');\n } else if (userAgent.includes('Chrome') && !userAgent.includes('Chromium')) {\n details.name = 'Chrome';\n details.version = getBrowserVersion('Chrome');\n }\n },\n\n randomId: function() {\n return new Date().getTime() + '-' + Math.random().toString(36).slice(2);\n },\n\n getOrigin: function() {\n return document.location.origin;\n },\n\n getReferrerUrl: function() {\n const referrer = document.referrer || '';\n return this.getURLOrigin(referrer);\n },\n\n getWindowParent: function() {\n let parentLocation = '';\n try {\n parentLocation = window.parent.location.href;\n } catch (e) {\n parentLocation = '';\n }\n return parentLocation;\n },\n\n getURLOrigin: function(urlValue) {\n let origin = '';\n const originArray = urlValue.split( '/' );\n if (originArray.length >= 3) {\n const protocol = originArray[0];\n const host = originArray[2];\n origin = protocol + '//' + host;\n }\n return origin;\n },\n\n };\n\n const getBrowserVersion = function(browserName) {\n const userAgent = window.navigator.userAgent;\n const browserNameIndex = userAgent.indexOf(browserName);\n const nextSpaceIndex = userAgent.indexOf(' ', browserNameIndex);\n if (nextSpaceIndex === -1) {\n return userAgent.substring(browserNameIndex + browserName.length + 1, userAgent.length);\n } else {\n return userAgent.substring(browserNameIndex + browserName.length + 1, nextSpaceIndex);\n }\n };\n\n csm.Util = Util;\n})();\n\n(function() {\n const global = window;\n const csm = global.csm || {};\n global.csm = csm;\n\n csm.globalDimensions = []; // These dimensions are added to all captured metrics.\n csm.globalOptionalDimensions = [];\n csm.initFailureDimensions = [];\n\n const API = {\n getWorkflow: function(workflowType, instanceId, data) {\n return csm.workflow(workflowType, instanceId, data);\n },\n\n addMetric: function(metric) {\n csm.Util.assertExist(metric, 'metric');\n csm.putMetric(metric);\n },\n\n addMetricWithDedupe: function(metric, dedupeIntervalMs, context) {\n csm.Util.assertExist(metric, 'metric');\n csm.Util.assertExist(metric, 'dedupeIntervalMs');\n // context is optional; if present it will only dedupe on metrics with the same context. ex.) tabId\n metric.dedupeOptions = {dedupeIntervalMs, context: context || 'global'};\n csm.putMetric(metric);\n },\n\n addCount: function(metricName, count) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(count, 'count');\n\n const metric = new csm.Metric(metricName, csm.UNIT.COUNT, count);\n csm.putMetric(metric);\n },\n\n addCountWithPageLocation: function(metricName) {\n csm.Util.assertExist(metricName, 'metricName');\n\n const metric = new csm.Metric(metricName, csm.UNIT.COUNT, 1.0);\n metric.addDimension('WindowLocation', csm.Util.pageLocationTransformer(window.location.pathname));\n csm.putMetric(metric);\n },\n\n addError: function(metricName, count) {\n csm.Util.assertExist(metricName, 'metricName');\n\n if (count === undefined || count == null) {\n count = 1.0;\n }\n const metric = new csm.Metric(metricName, csm.UNIT.COUNT, count);\n metric.addDimension('Metric', 'Error');\n csm.putMetric(metric);\n },\n\n addSuccess: function(metricName) {\n API.addError(metricName, 0);\n },\n\n addTime: function(metricName, time, unit) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(time, 'time');\n\n let timeUnit = csm.UNIT.MILLISECONDS;\n if (unit && csm.Util.isValidTimeUnit(unit)) {\n timeUnit = unit;\n }\n const metric = new csm.Metric(metricName, timeUnit, time);\n metric.addDimension('Metric', 'Time');\n csm.putMetric(metric);\n },\n\n addTimeWithPageLocation: function(metricName, time, unit) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(time, 'time');\n\n let timeUnit = csm.UNIT.MILLISECONDS;\n if (unit && csm.Util.isValidTimeUnit(unit)) {\n timeUnit = unit;\n }\n const metric = new csm.Metric(metricName, timeUnit, time);\n metric.addDimension('WindowLocation', csm.Util.pageLocationTransformer(window.location.pathname));\n csm.putMetric(metric);\n },\n\n pageReady: function() {\n if (window.performance && window.performance.now) {\n const pageLoadTime = window.performance.now();\n const metric = new csm.Metric('PageReadyLatency', csm.UNIT.MILLISECONDS, pageLoadTime);\n metric.addDimension('WindowLocation', csm.Util.pageLocationTransformer(window.location.pathname));\n csm.putMetric(metric);\n }\n },\n\n setPageLocationTransformer: function(transformFunc) {\n csm.Util.assertExist(transformFunc, 'transformFunc');\n csm.Util.assertTrue((typeof transformFunc) === 'function');\n csm.Util.pageLocationTransformer = transformFunc;\n },\n\n setGlobalDimensions: function(dimensions) {\n csm.Util.assertExist(dimensions, 'dimensions');\n csm.globalDimensions = dimensions;\n },\n\n setGlobalOptionalDimensions: function(dimensions) {\n csm.Util.assertExist(dimensions, 'dimensions');\n csm.globalOptionalDimensions = dimensions;\n },\n\n setInitFailureDimensions: function(dimensions) {\n csm.Util.assertExist(dimensions, 'dimensions');\n csm.initFailureDimensions = dimensions;\n },\n\n putCustom: function(endpoint, headers, data) {\n csm.Util.assertExist(data, 'data');\n csm.Util.assertExist(endpoint, 'endpoint');\n csm.Util.assertExist(headers, 'headers');\n csm.putCustom(endpoint, headers, data);\n },\n\n setAuthParams: function(authParams) {\n csm.setAuthParams(authParams);\n },\n\n setConfig: function(key, value) {\n csm.Util.assertExist(key, 'key');\n csm.Util.assertExist(value, 'value');\n if (!csm.configuration[key]) {\n csm.setConfig(key, value); // set configuration variables such as accountId, instanceId, userId\n }\n },\n };\n\n csm.API = API;\n})();\n\n(function() {\n const global = window;\n const csm = global.csm || {};\n global.csm = csm;\n\n const WORKFLOW_KEY_PREFIX = 'csm.workflow';\n\n /**\n * Calculates the local storage key used to store a workflow of the specified type.\n * @param {string} type of workflow\n * @return {string} storage key\n */\n const getWorkflowKeyForType = function(type) {\n return [\n WORKFLOW_KEY_PREFIX,\n type,\n ].join('.');\n };\n\n /**\n * Constructor for new Workflow objects.\n *\n * If you need to be able to share a workflow across tabs, it is recommended\n * to use \"csm.workflow\" to create/hydrate your workflows instead.\n * @param {string} type of workflow\n * @param {string} instanceId of workflow\n * @param {JSON} data blob associated with workflow\n */\n const Workflow = function(type, instanceId, data) {\n this.type = type;\n this.instanceId = instanceId || csm.Util.randomId();\n this.instanceSpecified = instanceId || false;\n this.eventMap = {};\n this.data = data || {};\n\n // Merge global dimensions into the data map.\n const dimensionData = {};\n csm.globalDimensions.forEach(function(dimension) {\n dimensionData[dimension.name] = dimension.value;\n });\n csm.globalOptionalDimensions.forEach(function(dimension) {\n dimensionData[dimension.name] = dimension.value;\n });\n this.data = this._mergeData(dimensionData);\n };\n\n /**\n * Create a new workflow or rehydrate an existing shared workflow.\n *\n * @param {string} type The type of workflow to be created.\n * @param {string} instanceId The instanceId of the workflow. If not provided, it will be\n * assigned a random ID and will not be automatically saved to local storage.\n * If provided, we will attempt to load an existing workflow of the same type\n * from local storage and rehydrate it.\n * @param {JSON} data An optional map of key/value pairs to be added as data to every\n * workflow event created with this workflow.\n * @return {Workflow} workflow event\n * NOTE: Only one workflow of each type can be stored at the same time, to avoid\n * overloading localStorage with unused workflow records.\n */\n csm.workflow = function(type, instanceId, data) {\n let workflow = new Workflow(type, instanceId, data);\n\n if (instanceId) {\n const savedWorkflow = csm._loadWorkflow(type);\n if (savedWorkflow && savedWorkflow.instanceId === instanceId) {\n workflow = savedWorkflow;\n workflow.addData(data || {});\n }\n }\n\n return workflow;\n };\n\n csm._loadWorkflow = function(type) {\n let workflow = null;\n const workflowJson = localStorage.getItem(getWorkflowKeyForType(type));\n const workflowStruct = workflowJson ? JSON.parse(workflowJson) : null;\n if (workflowStruct) {\n workflow = new Workflow(type, workflowStruct.instanceId);\n workflow.eventMap = workflowStruct.eventMap;\n }\n return workflow;\n };\n\n /**\n * Creates a new workflow event and returns it. Then this workflow event is sent upstream\n * to the CSMSharedWorker where it is provided to the backend.\n *\n * If an instanceId was specified when the workflow was created, this will also save the workflow\n * and all of its events to localStorage.\n *\n * @param {string} event The name of the event that occurred.\n * @param {JSON} data An optional free-form key attribute pair of metadata items that will be stored\n * and reported backstream with the workflow event.\n * @return {WorkflowEvent} workflowEvent\n */\n Workflow.prototype.event = function(event, data) {\n const mergedData = this._mergeData(data || {});\n const workflowEvent = new csm.WorkflowEvent({\n workflow: this,\n event: event,\n data: mergedData,\n userId: csm.configuration.userId || '',\n organizationId: csm.configuration.organizationId || '',\n accountId: csm.configuration.accountId || '',\n appName: csm.configuration.namespace || '',\n });\n csm.putWorkflowEvent(workflowEvent);\n this.eventMap[event] = workflowEvent;\n if (this.instanceSpecified) {\n this.save();\n }\n return workflowEvent;\n };\n\n /**\n * Creates a new workflow event and returns it, if the same event is not happened in ths past\n * dedupeIntervalMs milliseconds.\n * @param {string} event The name of the event that occurred.\n * @param {JSON} data An optional free-form key attribute pair of metadata items that will be stored\n * and reported backstream with the workflow event.\n * @param {int} dedupeIntervalMs defaults to 200 MS\n * @return {WorkflowEvent} workflowEvent\n */\n Workflow.prototype.eventWithDedupe = function(event, data, dedupeIntervalMs) {\n const pastEvent = this.getPastEvent(event);\n const now = new Date().getTime();\n const interval = dedupeIntervalMs || 200;\n\n // Crafting the expected workflow event data result\n const mergedData = this._mergeData(data);\n const expectedData = [];\n for (const key in mergedData) {\n if (Object.prototype.hasOwnProperty.call(mergedData, key)) {\n expectedData.push({'key': key, 'value': mergedData[key]});\n }\n }\n\n // Deduplicate same events that happened within interval\n if (!pastEvent || (pastEvent && JSON.stringify(pastEvent.data) !== JSON.stringify(expectedData)) ||\n (pastEvent && (now - pastEvent.timestamp > interval))) {\n return this.event(event, data);\n }\n return null;\n };\n\n /**\n * Get a past event if it exists in this workflow, otherwise returns null.\n * This can be helpful to emit metrics in real time based on the differences\n * between workflow event timestamps, especially for workflows shared across tabs.\n * @param {string} event key to see if workflow exists for this event\n * @return {WorkflowEvent} workflow event retrieved\n */\n Workflow.prototype.getPastEvent = function(event) {\n return event in this.eventMap ? this.eventMap[event] : null;\n };\n\n /**\n * Save the workflow to local storage. This only happens automatically when an\n * instanceId is specified on workflow creation, however if this method is called\n * explicitly by the client, the randomly generated workflow instance id can be\n * used to retrieve the workflow later and automatic save on events will be enabled.\n */\n Workflow.prototype.save = function() {\n this.instanceSpecified = true;\n localStorage.setItem(getWorkflowKeyForType(this.type), JSON.stringify(this));\n };\n\n /**\n * Remove this workflow if it is the saved instance for this workflow type in localStorage.\n */\n Workflow.prototype.close = function() {\n const storedWorkflow = csm._loadWorkflow(this.type);\n if (storedWorkflow && storedWorkflow.instanceId === this.instanceId) {\n localStorage.removeItem(getWorkflowKeyForType(this.type));\n }\n };\n\n Workflow.prototype.addData = function(data) {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n this.data[key] = data[key];\n }\n }\n };\n\n Workflow.prototype._mergeData = function(data) {\n const mergedData = {};\n let key = null;\n for (key in this.data) {\n if (Object.prototype.hasOwnProperty.call(this.data, key)) {\n mergedData[key] = this.data[key] == null ? 'null' : (this.data[key] === '' ? ' ' : this.data[key].toString());\n }\n }\n for (key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n mergedData[key] = data[key] == null ? 'null' : (data[key] === '' ? ' ' : data[key].toString());\n }\n }\n return mergedData;\n };\n})();\n\n(function() {\n const global = window;\n const csm = global.csm || {};\n global.csm = csm;\n\n let worker = null;\n let portId = null;\n\n const MAX_INIT_MILLISECONDS = 5000;\n const preInitTaskQueue = [];\n csm.configuration = {};\n\n /**\n * Initialize CSM variables\n * @param {object} params for CSM\n * @params.namespace Define your metric namespace used in CloudWatch metrics\n * @params.sharedWorkerUrl Specify the relative url to the connect-csm-worker.js file in your service\n * @params.endpoint Specify an LDAS endpoint to use.\n * @params.dryRunMode When CSM is initialized with dry run mode, it won't actually publish metrics.\n * @params.defaultMetrics Enable default metrics. Default to false.\n */\n csm.initCSM = function(params) {\n csm.Util.assertExist(params.namespace, 'namespace');\n csm.Util.assertExist(params.sharedWorkerUrl, 'sharedWorkerUrl');\n csm.Util.assertExist(params.endpoint, 'endpoint');\n\n try {\n console.log('Starting csm shared worker with', params.sharedWorkerUrl);\n worker = new SharedWorker(params.sharedWorkerUrl, 'CSM_SharedWorker');\n worker.port.start();\n } catch (e) {\n console.log('Failed to initialize csm shared worker with', params.sharedWorkerUrl);\n console.log(e.message);\n }\n\n /**\n * Configure shared worker\n */\n csm.configuration = {\n namespace: params.namespace,\n userId: params.userId || '',\n accountId: params.accountId || '',\n organizationId: params.organizationId || '',\n endpointUrl: params.endpoint || null,\n batchSettings: params.batchSettings || null,\n addPageVisibilityDimension: params.addPageVisibilityDimension || false,\n addUrlDataDimensions: params.addUrlDataDimensions || false,\n dryRunMode: params.dryRunMode || false, // When csm is in dryRunMode it won't actually publish metrics to CSM\n };\n\n postEventToWorker(csm.EVENT_TYPE.CONFIG, csm.configuration);\n\n /**\n * Receive message from shared worker\n * @param {MessageEvent} messageEvent from shared worker\n */\n worker.port.onmessage = function(messageEvent) {\n const messageType = messageEvent.data.type;\n onMessageFromWorker(messageType, messageEvent.data);\n };\n\n /**\n * Inform shared worker window closed\n */\n global.onbeforeunload = function() {\n worker.port.postMessage(\n {\n type: csm.EVENT_TYPE.CLOSE,\n portId: portId,\n },\n );\n };\n\n /**\n * Check if initialization success\n */\n global.setTimeout(function() {\n if (!isCSMInitialized()) {\n console.log('[FATAL] CSM initialization failed! Please make sure the sharedWorkerUrl is reachable.');\n }\n }, MAX_INIT_MILLISECONDS);\n\n // Emit out of the box metrics\n if (params.defaultMetrics) {\n emitDefaultMetrics();\n }\n };\n // Final processing before sending to SharedWorker\n const processMetric = function(metric) {\n if (csm.configuration.addPageVisibilityDimension && document.visibilityState) {\n metric.addOptionalDimension('VisibilityState', document.visibilityState);\n }\n };\n\n const processWorkflowEvent = function(event) {\n if (csm.configuration.addUrlDataDimensions) {\n event.data.push({'key': 'ReferrerUrl', 'value': csm.Util.getReferrerUrl()});\n event.data.push({'key': 'Origin', 'value': csm.Util.getOrigin()});\n event.data.push({'key': 'WindowParent', 'value': csm.Util.getWindowParent()});\n }\n if (['initFailure', 'initializationLatencyInfo'].includes(event.event)) {\n csm.initFailureDimensions.forEach((dimension) => {\n Object.keys(dimension).forEach((key) => {\n event.data.push({'key': key, 'value': dimension[key]});\n });\n });\n }\n return event;\n };\n\n csm.putMetric = function(metric) {\n processMetric(metric);\n postEventToWorker(csm.EVENT_TYPE.METRIC, metric);\n };\n\n csm.putLog = function(log) {\n postEventToWorker(csm.EVENT_TYPE.LOG, log);\n };\n\n csm.putWorkflowEvent = function(event) {\n const processedEvent = processWorkflowEvent(event);\n postEventToWorker(csm.EVENT_TYPE.WORKFLOW_EVENT, processedEvent);\n };\n\n csm.putCustom = function(endpoint, headers, data) {\n postEventToWorker(csm.EVENT_TYPE.CUSTOM, data, endpoint, headers);\n };\n\n csm.setAuthParams = function(authParams) {\n postEventToWorker(csm.EVENT_TYPE.SET_AUTH, authParams);\n };\n\n csm.setConfig = function(key, value) {\n csm.configuration[key] = value;\n postEventToWorker(csm.EVENT_TYPE.SET_CONFIG, {key, value});\n };\n /** ********************** PRIVATE METHODS ************************/\n\n const onMessageFromWorker = function(messageType, data) {\n if (messageType === csm.EVENT_TYPE.CONFIG) {\n portId = data.portId;\n onCSMInitialized();\n }\n };\n\n const onCSMInitialized = function() {\n // Purge the preInitTaskQueue\n preInitTaskQueue.forEach(function(task) {\n postEventToWorker(task.type, task.message, task.endpoint, task.headers);\n });\n\n // TODO: Capture on errors and publish log to shared worker\n /**\n window.onerror = function(message, fileName, lineNumber, columnNumber, errorstack) {\n var log = new csm.Log(message, fileName, lineNumber, columnNumber, errorstack.stack);\n csm.putLog(log);\n };\n */\n };\n\n /**\n * Emit out of the box metrics automatically\n *\n * TODO allow configuration\n */\n const emitDefaultMetrics = function() {\n window.addEventListener('load', function() {\n // loadEventEnd is avaliable after the onload function finished\n // https://www.w3.org/TR/navigation-timing-2/#processing-model\n // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\n global.setTimeout(function() {\n try {\n const perfData = window.performance.getEntriesByType('navigation')[0];\n const pageLoadTime = perfData.loadEventEnd - perfData.startTime;\n const connectTime = perfData.responseEnd - perfData.requestStart;\n const domRenderTime = perfData.domComplete - perfData.domInteractive;\n csm.API.addCountWithPageLocation('PageLoad');\n csm.API.addTimeWithPageLocation('PageLoadTime', pageLoadTime);\n csm.API.addTimeWithPageLocation('ConnectTime', connectTime);\n csm.API.addTimeWithPageLocation('DomRenderTime', domRenderTime);\n } catch (err) {\n console.log('Error emitting default metrics', err);\n }\n }, 0);\n });\n };\n\n /**\n * Try posting message to shared worker\n * If shared worker hasn't been initialized, put the task to queue to be clean up once initialized\n * @param {csm.EVENT_TYPE} eventType for CSM\n * @param {object} message event following type of eventType\n * @param {string} [endpoint] optional parameter for putCustom function (put any data to specified endpoint)\n * @param {object} [headers] optional parameter for putCustom function\n */\n const postEventToWorker = function(eventType, message, endpoint, headers) {\n if (eventType === csm.EVENT_TYPE.CONFIG || isCSMInitialized()) {\n worker.port.postMessage(\n {\n type: eventType,\n portId: portId,\n message: message,\n endpoint: endpoint,\n headers: headers,\n },\n );\n } else {\n preInitTaskQueue.push({\n type: eventType,\n message: message,\n endpoint: endpoint,\n headers: headers,\n });\n }\n };\n\n const isCSMInitialized = function() {\n return portId !== null;\n };\n})()`;\n","export const csmWorkerString = `(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n csm.EVENT_TYPE = {\n LOG: 'LOG',\n METRIC: 'METRIC',\n CONFIG: 'CONFIG',\n WORKFLOW_EVENT: 'WORKFLOW_EVENT',\n CUSTOM: 'CUSTOM',\n CLOSE: 'CLOSE',\n SET_AUTH: 'SET_AUTH',\n SET_CONFIG: 'SET_CONFIG',\n };\n\n csm.UNIT = {\n COUNT: 'Count',\n SECONDS: 'Seconds',\n MILLISECONDS: 'Milliseconds',\n MICROSECONDS: 'Microseconds',\n };\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const MAX_METRIC_DIMENSIONS = 10;\n\n /** ********* Dimension Classes ***********/\n\n const Dimension = function(name, value) {\n csm.Util.assertExist(name, 'name');\n csm.Util.assertExist(value, 'value');\n\n this.name = name;\n this.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n };\n\n\n /** ********* Metric Classes ***********/\n\n const Metric = function(metricName, unit, value, dedupeOptions) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(value, 'value');\n csm.Util.assertExist(unit, 'unit');\n csm.Util.assertTrue(csm.Util.isValidUnit(unit));\n if (dedupeOptions) {\n csm.Util.assertInObject(dedupeOptions, 'dedupeOptions', 'dedupeIntervalMs');\n }\n\n this.metricName = metricName;\n this.unit = unit;\n this.value = value;\n this.timestamp = new Date();\n this.dimensions = csm.globalDimensions ? csm.Util.deepCopy(csm.globalDimensions): [];\n this.namespace = csm.configuration.namespace;\n this.dedupeOptions = dedupeOptions; // optional. { dedupeIntervalMs: (int; required), context: (string; optional) }\n\n // Currently, CloudWatch can't aggregate metrics by a subset of dimensions.\n // To bypass this limitation, we introduce the optional dimensions concept to CSM.\n // The CSM metric publisher will publish a default metric without optional dimension\n // For each optional dimension, the CSM metric publisher publishes an extra metric with that dimension.\n this.optionalDimensions = csm.globalOptionalDimensions ? csm.Util.deepCopy(csm.globalOptionalDimensions): [];\n };\n\n Metric.prototype.addDimension = function(name, value) {\n this._addDimensionHelper(this.dimensions, name, value);\n };\n\n Metric.prototype.addOptionalDimension = function(name, value) {\n this._addDimensionHelper(this.optionalDimensions, name, value);\n };\n\n Metric.prototype._addDimensionHelper = function(targetDimensions, name, value) {\n // CloudWatch metric allows maximum 10 dimensions\n // http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#putMetricData-property\n if ((this.dimensions.length + this.optionalDimensions.length) >= MAX_METRIC_DIMENSIONS) {\n throw new csm.ExceedDimensionLimitException(name);\n }\n\n const existing = targetDimensions.find(function(dimension) {\n return dimension.name === name;\n });\n\n if (existing) {\n existing.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n } else {\n targetDimensions.push(new Dimension(name, value));\n }\n };\n\n\n /** ********* Telemetry Classes ***********/\n\n const WorkflowEvent = function(params) {\n this.timestamp = params.timestamp || new Date().getTime();\n this.workflowType = params.workflow.type;\n this.instanceId = params.workflow.instanceId;\n this.userId = params.userId;\n this.organizationId = params.organizationId;\n this.accountId = params.accountId;\n this.event = params.event;\n this.appName = params.appName;\n this.data = [];\n\n // Convert 'data' map into the KeyValuePairList structure expected by the Lambda API\n for (const key in params.data) {\n if (Object.prototype.hasOwnProperty.call(params.data, key)) {\n this.data.push({'key': key, 'value': params.data[key]});\n }\n }\n };\n\n /** ********* Exceptions ***********/\n\n const NullOrUndefinedException = function(paramName) {\n this.name = 'NullOrUndefinedException';\n this.message = paramName + ' is null or undefined. ';\n };\n NullOrUndefinedException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const AssertTrueException = function() {\n this.name = 'AssertTrueException';\n this.message = 'Assertion failed. ';\n };\n AssertTrueException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const ExceedDimensionLimitException = function(dimensionName) {\n this.name = 'ExceedDimensionLimitException';\n this.message = 'Could not add dimension ' + dimensionName + ' . Metric has maximum 10 dimensions. ';\n };\n ExceedDimensionLimitException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const InitializationException = function() {\n this.name = 'InitializationException';\n this.message = 'Initialization failed. ';\n };\n InitializationException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n\n csm.Dimension = Dimension;\n csm.Metric = Metric;\n csm.WorkflowEvent = WorkflowEvent;\n csm.NullOrUndefinedException = NullOrUndefinedException;\n csm.AssertTrueException = AssertTrueException;\n csm.InitializationException = InitializationException;\n csm.ExceedDimensionLimitException = ExceedDimensionLimitException;\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const validTimeUnits = [csm.UNIT.SECONDS, csm.UNIT.MILLISECONDS, csm.UNIT.MICROSECONDS];\n const validUnits = validTimeUnits.concat(csm.UNIT.COUNT);\n\n const Util = {\n assertExist: function(value, paramName) {\n if (value === null || value === undefined) {\n throw new csm.NullOrUndefinedException(paramName);\n }\n },\n assertTrue: function(value) {\n if (!value) {\n throw new csm.AssertTrueException();\n }\n },\n assertInObject: function(obj, objName, key) {\n if (obj === null || obj === undefined || typeof obj !== 'object') {\n throw new csm.NullOrUndefinedException(objName);\n }\n if (key === null || key === undefined || !obj[key]) {\n throw new csm.NullOrUndefinedException(\\`\\${objName}[\\${key}]\\`);\n }\n },\n isValidUnit: function(unit) {\n return validUnits.includes(unit);\n },\n isValidTimeUnit: function(unit) {\n return validTimeUnits.includes(unit);\n },\n isEmpty: function(value) {\n if (value !== null && typeof val === 'object') {\n return Objects.keys(value).length === 0;\n }\n return !value;\n },\n deepCopy: function(obj) {\n // NOTE: this will fail if obj has a circular reference\n return JSON.parse(JSON.stringify(obj));\n },\n\n /**\n * This function is used before setting the page location for default metrics and logs,\n * and the APIs that set page location\n * Can be overridden by calling csm.API.setPageLocationTransformer(function(){})\n * @param {string} pathname path for page location\n * @return {string} pathname provided\n */\n pageLocationTransformer: function(pathname) {\n return pathname;\n },\n\n /**\n * As of now, our service public claims only support for Firefox and Chrome\n * Reference https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent\n *\n * This function will only return firefox, chrome and others\n *\n * Best practice as indicated in MDN, \"Avoiding user agent detection\"\n */\n getBrowserDetails: function() {\n const userAgent = window.navigator.userAgent;\n const details = {};\n if (userAgent.includes('Firefox') && !userAgent.includes('Seamonkey')) {\n details.name = 'Firefox';\n details.version = getBrowserVersion('Firefox');\n } else if (userAgent.includes('Chrome') && !userAgent.includes('Chromium')) {\n details.name = 'Chrome';\n details.version = getBrowserVersion('Chrome');\n }\n },\n\n randomId: function() {\n return new Date().getTime() + '-' + Math.random().toString(36).slice(2);\n },\n\n getOrigin: function() {\n return document.location.origin;\n },\n\n getReferrerUrl: function() {\n const referrer = document.referrer || '';\n return this.getURLOrigin(referrer);\n },\n\n getWindowParent: function() {\n let parentLocation = '';\n try {\n parentLocation = window.parent.location.href;\n } catch (e) {\n parentLocation = '';\n }\n return parentLocation;\n },\n\n getURLOrigin: function(urlValue) {\n let origin = '';\n const originArray = urlValue.split( '/' );\n if (originArray.length >= 3) {\n const protocol = originArray[0];\n const host = originArray[2];\n origin = protocol + '//' + host;\n }\n return origin;\n },\n\n };\n\n const getBrowserVersion = function(browserName) {\n const userAgent = window.navigator.userAgent;\n const browserNameIndex = userAgent.indexOf(browserName);\n const nextSpaceIndex = userAgent.indexOf(' ', browserNameIndex);\n if (nextSpaceIndex === -1) {\n return userAgent.substring(browserNameIndex + browserName.length + 1, userAgent.length);\n } else {\n return userAgent.substring(browserNameIndex + browserName.length + 1, nextSpaceIndex);\n }\n };\n\n csm.Util = Util;\n})();\n\n(function() {\n const XHR_DONE_READY_STATE = 4; // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState\n\n const global = self;\n const configuration = {};\n const batchSettings = {\n maxMetricsSize: 30,\n maxWorkflowEventsSize: 30,\n putMetricsIntervalMs: 30000,\n putWorkflowEventsIntervalMs: 2000,\n };\n const metricLists = {}; // metricList per CloudWatch Namespace\n const metricMap = {};\n const ports = {};\n let workflowEvents = {workflowEventList: []};\n\n // SharedWorker wiki: https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker\n onconnect = function(connectEvent) {\n const port = connectEvent.ports[0];\n\n port.onmessage = function(event) {\n const data = event.data;\n const messageType = data.type;\n const message = data.message;\n const endpoint = data.endpoint;\n const headers = data.headers;\n\n if (data.portId && !(data.portId in ports)) {\n // This could happen when a user tries to close a tab which has a pop up alert to confirm closing,\n // and the user decides to cancel closing\n // This triggers before unload event while the tab or window is not closed actually\n ports[data.portId] = port;\n }\n\n const {METRIC, WORKFLOW_EVENT, CUSTOM, CONFIG, SET_AUTH, SET_CONFIG, CLOSE} = csm.EVENT_TYPE;\n switch (messageType) {\n case METRIC: {\n csm.Util.assertInObject(message, 'message', 'namespace');\n const namespace = message.namespace;\n if (shouldDedupe(message)) break;\n addMetricEventToMap(message);\n if (metricLists[namespace]) {\n metricLists[namespace].push(message);\n } else {\n metricLists[namespace] = [message];\n }\n if (metricLists[namespace].length >= batchSettings.maxMetricsSize) {\n putMetricsForNamespace(namespace);\n }\n break;\n }\n case WORKFLOW_EVENT: {\n workflowEvents.workflowEventList.push(message);\n if (workflowEvents.length >= batchSettings.maxWorkflowEventsSize) {\n putWorkflowEvents();\n }\n break;\n }\n case CUSTOM: {\n putCustom(endpoint, headers, message);\n break;\n }\n case CONFIG: {\n const portId = Object.keys(ports).length + 1; // portId starts from 1\n ports[portId] = port;\n for (const setting of Object.keys(message)) {\n if (!csm.Util.isEmpty(message[setting])) {\n configuration[setting] = message[setting];\n }\n }\n\n // set optional batch settings\n if (configuration.batchSettings) {\n for (const setting of Object.keys(configuration.batchSettings)) {\n batchSettings[setting] = configuration.batchSettings[setting];\n }\n }\n // send metrics and workflow events at set intervals\n putMetrics();\n putWorkflowEvents();\n global.setInterval(putMetrics, batchSettings.putMetricsIntervalMs);\n global.setInterval(putWorkflowEvents, batchSettings.putWorkflowEventsIntervalMs);\n\n port.postMessage(\n {\n type: csm.EVENT_TYPE.CONFIG,\n portId: portId,\n },\n );\n break;\n }\n case SET_AUTH: {\n configuration.authParams = message;\n authenticate();\n break;\n }\n case SET_CONFIG: {\n configuration[message.key] = message.value;\n break;\n }\n case CLOSE: {\n delete ports[data.portId];\n if (Object.keys(ports).length === 0) {\n putMetrics();\n putWorkflowEvents();\n }\n break;\n }\n default:\n break;\n }\n };\n };\n\n const shouldDedupe = function(metric) {\n try {\n const pastMetric = getPastMetricEvent(metric);\n return pastMetric && metric.dedupeOptions &&\n (metric.timestamp - pastMetric.timestamp < metric.dedupeOptions.dedupeIntervalMs);\n } catch (err) {\n console.error('Error in shouldDedupe', err);\n return false;\n }\n };\n\n const getPastMetricEvent = function(metric) {\n try {\n return metricMap[getMetricEventKey(metric)];\n } catch (err) {\n // ignore err - no previous metrics found\n return null;\n }\n };\n\n const addMetricEventToMap = function(metric) {\n try {\n metricMap[getMetricEventKey(metric)] = metric;\n } catch (err) {\n console.error('Failed to add event to metricMap', err);\n }\n csm.metricMap = metricMap;\n };\n\n const getMetricEventKey = function(metric) {\n const {namespace, metricName, unit, dedupeOptions} = metric;\n let context = 'global';\n if (dedupeOptions && dedupeOptions.context) {\n context = dedupeOptions.context;\n }\n return \\`\\${namespace}-\\${metricName}-\\${unit}-\\${context}\\`;\n };\n\n const authenticate = function() {\n postRequest(configuration.endpointUrl + '/auth', {authParams: configuration.authParams},\n {\n success: function(response) {\n if (response && response.jwtToken) {\n configuration.authParams.jwtToken = response.jwtToken;\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] csm auth failed!');\n broadcastMessage('Response : ' + response);\n },\n }, {'x-api-key': 'auth-method-level-key'});\n };\n\n /**\n * Put metrics to service when:\n * a) metricList size is at maxMetricsSize\n * b) every putMetricsIntervalMs time if the metricList is not empty\n * c) worker is closed\n *\n * Timer is reset, and metricList emptied after each putMetrics call\n */\n const putMetrics = function() {\n for (const namespace of Object.keys(metricLists)) {\n putMetricsForNamespace(namespace);\n }\n };\n\n const putMetricsForNamespace = function(namespace) {\n csm.Util.assertInObject(metricLists, 'metricLists', namespace);\n const metricList = metricLists[namespace];\n\n if (metricList.length > 0 && !configuration.dryRunMode && configuration.endpointUrl) {\n postRequest(configuration.endpointUrl + '/put-metrics', {\n metricNamespace: namespace,\n metricList: metricList,\n authParams: configuration.authParams,\n accountId: configuration.accountId,\n organizationId: configuration.organizationId,\n agentResourceId: configuration.userId,\n }, {\n success: function(response) {\n if (response) {\n broadcastMessage('PutMetrics response : ' + response);\n if (response.unsetToken) {\n delete configuration.authParams.jwtToken;\n authenticate();\n }\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] Put metrics to service failed! ');\n },\n });\n }\n metricLists[namespace] = [];\n };\n\n /**\n * Put metrics to service every two seconds if there are events to be put.\n */\n const putWorkflowEvents = function() {\n if (workflowEvents.workflowEventList.length > 0 && !configuration.dryRunMode && configuration.endpointUrl) {\n workflowEvents.authParams = configuration.authParams;\n postRequest(configuration.endpointUrl + '/put-workflow-events', workflowEvents,\n {\n success: function(response) {\n if (response) {\n if (response.workflowEventList && response.workflowEventList.length > 0) {\n broadcastMessage('[WARN] There are ' + response.length + ' workflow events that failed to publish');\n broadcastMessage('Response : ' + response);\n }\n if (response.unsetToken) {\n delete configuration.authParams.jwtToken;\n authenticate();\n }\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] Put workflow events to service failed! ');\n },\n });\n }\n\n workflowEvents = {workflowEventList: []};\n };\n\n /**\n * Put data to custom endpoint on demand\n * @param {string} endpoint\n * @param {object} headers\n * @param {object} data to send to endpoint\n */\n const putCustom = function(endpoint, headers, data) {\n if (!configuration.dryRunMode && endpoint && data) {\n postRequest(endpoint, data, {\n success: function(response) {\n if (response) {\n broadcastMessage('Response : ' + response);\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] Failed to put custom data! ');\n },\n }, headers);\n }\n };\n\n /**\n * Broadcast message to all tabs\n * @param {string} message to post to all the tabs\n */\n const broadcastMessage = function(message) {\n for (const portId in ports) {\n if (Object.prototype.hasOwnProperty.call(ports, portId)) {\n ports[portId].postMessage(message);\n }\n }\n };\n\n const postRequest = function(url, data, callbacks, headers) {\n csm.Util.assertExist(url, 'url');\n csm.Util.assertExist(data, 'data');\n\n callbacks = callbacks || {};\n callbacks.success = callbacks.success || function() {};\n callbacks.failure = callbacks.failure || function() {};\n\n const request = new XMLHttpRequest(); // new HttpRequest instance\n request.onreadystatechange = function() {\n const errorList = request.response ? JSON.parse(request.response): [];\n if (request.readyState === XHR_DONE_READY_STATE) { // request finished and response is ready\n if (request.status === 200) {\n callbacks.success(errorList);\n } else {\n broadcastMessage('AJAX request failed with status: ' + request.status);\n callbacks.failure(errorList);\n }\n }\n };\n\n request.open('POST', url);\n if (headers && typeof headers === 'object') {\n Object.keys(headers).forEach((header) => request.setRequestHeader(header, headers[header]));\n } else {\n request.setRequestHeader('Content-Type', 'application/json');\n }\n request.send(JSON.stringify(data));\n };\n})()`;\n","import { IllegalArgumentException } from \"../exceptions\";\nimport { ConnectionInfoType } from \"./baseConnectionHelper\";\nimport { ACPS_METHODS, CSM_CATEGORY, SESSION_TYPES, TRANSPORT_LIFETIME_IN_SECONDS, CONN_ACK_FAILED } from \"../../constants\";\nimport { csmService } from \"../../service/csmService\";\n\nexport default class ConnectionDetailsProvider {\n\n constructor(participantToken, chatClient, sessionType, getConnectionToken=null) {\n this.chatClient = chatClient;\n this.participantToken = participantToken || null;\n this.connectionDetails = null;\n this.connectionToken = null;\n this.connectionTokenExpiry = null;\n this.sessionType = sessionType;\n this.getConnectionToken = getConnectionToken;\n }\n\n getFetchedConnectionToken() {\n return this.connectionToken;\n }\n\n getConnectionTokenExpiry() {\n return this.connectionTokenExpiry;\n }\n\n getConnectionDetails() {\n return this.connectionDetails;\n }\n\n fetchConnectionDetails() {\n return this._fetchConnectionDetails().then((connectionDetails) => connectionDetails);\n }\n\n _handleCreateParticipantConnectionResponse(connectionDetails, ConnectParticipant) {\n this.connectionDetails = {\n url: connectionDetails.Websocket.Url,\n expiry: connectionDetails.Websocket.ConnectionExpiry,\n transportLifeTimeInSeconds: TRANSPORT_LIFETIME_IN_SECONDS,\n connectionAcknowledged: ConnectParticipant,\n connectionToken: connectionDetails.ConnectionCredentials.ConnectionToken,\n connectionTokenExpiry: connectionDetails.ConnectionCredentials.Expiry,\n };\n this.connectionToken = connectionDetails.ConnectionCredentials.ConnectionToken;\n this.connectionTokenExpiry = connectionDetails.ConnectionCredentials.Expiry;\n return this.connectionDetails;\n }\n\n _handleGetConnectionTokenResponse(connectionTokenDetails) {\n this.connectionDetails = {\n url: null,\n expiry: null,\n connectionToken: connectionTokenDetails.participantToken,\n connectionTokenExpiry: connectionTokenDetails.expiry,\n transportLifeTimeInSeconds: TRANSPORT_LIFETIME_IN_SECONDS,\n connectionAcknowledged: false,\n };\n this.connectionToken = connectionTokenDetails.participantToken;\n this.connectionTokenExpiry = connectionTokenDetails.expiry;\n return Promise.resolve(this.connectionDetails);\n }\n\n callCreateParticipantConnection({ Type = true, ConnectParticipant = false } = {}){\n const startTime = new Date().getTime();\n return this.chatClient\n .createParticipantConnection(this.participantToken, Type ? [ConnectionInfoType.WEBSOCKET, ConnectionInfoType.CONNECTION_CREDENTIALS] : null, ConnectParticipant ? ConnectParticipant : null)\n .then((response) => {\n if (Type) {\n this._addParticipantConnectionMetric(startTime);\n return this._handleCreateParticipantConnectionResponse(response.data, ConnectParticipant);\n }\n })\n .catch( error => {\n if (Type) {\n this._addParticipantConnectionMetric(startTime, true);\n }\n return Promise.reject({\n reason: \"Failed to fetch connectionDetails with createParticipantConnection\",\n _debug: error\n });\n });\n }\n\n _addParticipantConnectionMetric(startTime, error = false) {\n csmService.addLatencyMetricWithStartTime(ACPS_METHODS.CREATE_PARTICIPANT_CONNECTION, startTime, CSM_CATEGORY.API);\n csmService.addCountAndErrorMetric(ACPS_METHODS.CREATE_PARTICIPANT_CONNECTION, CSM_CATEGORY.API, error);\n }\n\n async _fetchConnectionDetails() {\n // If this is a customer session, use the provided participantToken to call createParticipantConnection for our connection details. \n if (this.sessionType === SESSION_TYPES.CUSTOMER) {\n return this.callCreateParticipantConnection();\n }\n // If this is an agent session, we can't assume that the participantToken is valid. \n // In this case, we use the getConnectionToken API to fetch a valid connectionToken and expiry. \n // If that fails, for now we try with createParticipantConnection.\n else if (this.sessionType === SESSION_TYPES.AGENT){\n return this.getConnectionToken()\n .then((response) => {\n return this._handleGetConnectionTokenResponse(response.chatTokenTransport);\n })\n .catch(() => {\n return this.callCreateParticipantConnection({\n Type: true,\n ConnectParticipant: true\n }).catch((err) => {\n throw new Error({\n type: CONN_ACK_FAILED,\n errorMessage: err\n });\n });\n });\n }\n else {\n return Promise.reject({\n reason: \"Failed to fetch connectionDetails.\",\n _debug: new IllegalArgumentException(\"Failed to fetch connectionDetails.\")\n });\n }\n }\n}\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 10);\n","import { EventBus } from \"../eventbus\";\nimport { LogManager } from \"../../log\";\nimport { \n ConnectionHelperEvents,\n ConnectionHelperStatus\n} from \"./baseConnectionHelper\";\nimport BaseConnectionHelper from \"./baseConnectionHelper\";\nimport WebSocketManager from \"../../lib/amazon-connect-websocket-manager\";\nimport { CHAT_EVENTS, CSM_CATEGORY, TRANSPORT_LIFETIME_IN_SECONDS, WEBSOCKET_EVENTS } from \"../../constants\";\nimport { csmService } from \"../../service/csmService\";\n\nclass LpcConnectionHelper extends BaseConnectionHelper {\n\n constructor(contactId, initialContactId, connectionDetailsProvider, websocketManager, logMetaData, connectionDetails) {\n super(connectionDetailsProvider, logMetaData);\n\n // WebsocketManager instance is only provided iff agent connections\n this.customerConnection = !websocketManager;\n\n if (this.customerConnection) {\n // ensure customer base instance exists for this contact ID\n if (!LpcConnectionHelper.customerBaseInstances[contactId]) {\n LpcConnectionHelper.customerBaseInstances[contactId] =\n new LpcConnectionHelperBase(connectionDetailsProvider, undefined, logMetaData, connectionDetails);\n }\n this.baseInstance = LpcConnectionHelper.customerBaseInstances[contactId];\n } else {\n // cleanup agent base instance if it exists for old websocket manager\n if (LpcConnectionHelper.agentBaseInstance) {\n if (LpcConnectionHelper.agentBaseInstance.getWebsocketManager() !== websocketManager) {\n LpcConnectionHelper.agentBaseInstance.end();\n LpcConnectionHelper.agentBaseInstance = null;\n }\n }\n // ensure agent base instance exists\n if (!LpcConnectionHelper.agentBaseInstance) {\n LpcConnectionHelper.agentBaseInstance =\n new LpcConnectionHelperBase(undefined, websocketManager, logMetaData);\n }\n this.baseInstance = LpcConnectionHelper.agentBaseInstance;\n }\n\n this.contactId = contactId;\n this.initialContactId = initialContactId;\n this.status = null;\n this.eventBus = new EventBus();\n this.subscriptions = [\n this.baseInstance.onEnded(this.handleEnded.bind(this)),\n this.baseInstance.onConnectionGain(this.handleConnectionGain.bind(this)),\n this.baseInstance.onConnectionLost(this.handleConnectionLost.bind(this)),\n this.baseInstance.onMessage(this.handleMessage.bind(this))\n ];\n }\n\n start() {\n super.start();\n return this.baseInstance.start();\n }\n\n end() {\n super.end();\n this.eventBus.unsubscribeAll();\n this.subscriptions.forEach(unsubscribe => unsubscribe());\n this.status = ConnectionHelperStatus.Ended;\n this.tryCleanup();\n }\n\n tryCleanup() {\n if (this.customerConnection && !this.baseInstance.hasMessageSubscribers()) {\n this.baseInstance.end();\n delete LpcConnectionHelper.customerBaseInstances[this.contactId];\n }\n }\n\n getStatus() {\n return this.status || this.baseInstance.getStatus();\n }\n\n onEnded(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.Ended, handler);\n }\n\n handleEnded() {\n this.eventBus.trigger(ConnectionHelperEvents.Ended, {});\n }\n\n onConnectionGain(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.ConnectionGained, handler);\n }\n\n handleConnectionGain() {\n this.eventBus.trigger(ConnectionHelperEvents.ConnectionGained, {});\n }\n\n onConnectionLost(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.ConnectionLost, handler);\n }\n\n handleConnectionLost() {\n this.eventBus.trigger(ConnectionHelperEvents.ConnectionLost, {});\n }\n\n onMessage(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.IncomingMessage, handler);\n }\n\n handleMessage(message) {\n if (message.InitialContactId === this.initialContactId || message.ContactId === this.contactId || message.Type === CHAT_EVENTS.MESSAGE_METADATA) {\n this.eventBus.trigger(ConnectionHelperEvents.IncomingMessage, message);\n }\n }\n}\nLpcConnectionHelper.customerBaseInstances = {};\nLpcConnectionHelper.agentBaseInstance = null;\n\n\nclass LpcConnectionHelperBase {\n constructor(connectionDetailsProvider, websocketManager, logMetaData, connectionDetails) {\n this.status = ConnectionHelperStatus.NeverStarted;\n this.eventBus = new EventBus();\n this.logger = LogManager.getLogger({\n prefix: \"ChatJS-LPCConnectionHelperBase\",\n logMetaData\n });\n this.initialConnectionDetails = connectionDetails;\n this.initWebsocketManager(websocketManager, connectionDetailsProvider, logMetaData);\n }\n\n initWebsocketManager(websocketManager, connectionDetailsProvider, logMetaData) {\n this.websocketManager = websocketManager || WebSocketManager.create(logMetaData);\n this.websocketManager.subscribeTopics([\"aws/chat\"]);\n this.subscriptions = [\n this.websocketManager.onMessage(\"aws/chat\", this.handleMessage.bind(this)),\n this.websocketManager.onConnectionGain(this.handleConnectionGain.bind(this)),\n this.websocketManager.onConnectionLost(this.handleConnectionLost.bind(this)),\n this.websocketManager.onInitFailure(this.handleEnded.bind(this))\n ];\n this.logger.info(\"Initializing websocket manager.\");\n if (!websocketManager) {\n const startTime = new Date().getTime();\n this.websocketManager.init(() =>\n this._getConnectionDetails(connectionDetailsProvider, this.initialConnectionDetails, startTime).then((response) => {\n this.initialConnectionDetails = null;\n return response;\n }));\n }\n }\n\n _getConnectionDetails(connectionDetailsProvider, connectionDetails, startTime) {\n if (connectionDetails !== null && typeof connectionDetails === \"object\" && connectionDetails.expiry && connectionDetails.connectionTokenExpiry) {\n const logContent = {expiry: connectionDetails.expiry, transportLifeTimeInSeconds: TRANSPORT_LIFETIME_IN_SECONDS};\n this.logger.debug(\"Websocket manager initialized. Connection details:\", logContent);\n return Promise.resolve({\n webSocketTransport: {\n url: connectionDetails.url,\n expiry: connectionDetails.expiry,\n transportLifeTimeInSeconds: TRANSPORT_LIFETIME_IN_SECONDS\n }\n });\n } else {\n return connectionDetailsProvider.fetchConnectionDetails()\n .then(connectionDetails => {\n const details = {\n webSocketTransport: {\n url: connectionDetails.url,\n expiry: connectionDetails.expiry,\n transportLifeTimeInSeconds: TRANSPORT_LIFETIME_IN_SECONDS\n }\n };\n const logContent = {expiry: connectionDetails.expiry, transportLifeTimeInSeconds: TRANSPORT_LIFETIME_IN_SECONDS};\n this.logger.debug(\"Websocket manager initialized. Connection details:\", logContent);\n this._addWebsocketInitCSMMetric(startTime);\n return details;\n }\n ).catch(error => {\n this.logger.error(\"Initializing Websocket Manager failed:\", error);\n this._addWebsocketInitCSMMetric(startTime, true);\n throw error;\n });\n }\n }\n\n _addWebsocketInitCSMMetric(startTime, isError = false) {\n csmService.addLatencyMetric(WEBSOCKET_EVENTS.InitWebsocket, startTime, CSM_CATEGORY.API);\n csmService.addCountAndErrorMetric(WEBSOCKET_EVENTS.InitWebsocket, CSM_CATEGORY.API, isError);\n }\n\n end() {\n // WebSocketProvider instance from streams does not have closeWebSocket\n if (this.websocketManager.closeWebSocket) {\n this.websocketManager.closeWebSocket();\n }\n this.eventBus.unsubscribeAll();\n this.subscriptions.forEach(unsubscribe => unsubscribe());\n this.logger.info(\"Websocket closed. All event subscriptions are cleared.\");\n }\n\n start() {\n if (this.status === ConnectionHelperStatus.NeverStarted) {\n this.status = ConnectionHelperStatus.Starting;\n }\n return Promise.resolve({\n websocketStatus: this.status\n });\n }\n\n onEnded(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.Ended, handler);\n }\n\n handleEnded() {\n this.status = ConnectionHelperStatus.Ended;\n this.eventBus.trigger(ConnectionHelperEvents.Ended, {});\n csmService.addCountMetric(WEBSOCKET_EVENTS.Ended, CSM_CATEGORY.API);\n this.logger.info(\"Websocket connection ended.\");\n }\n\n onConnectionGain(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.ConnectionGained, handler);\n }\n\n handleConnectionGain() {\n this.status = ConnectionHelperStatus.Connected;\n this.eventBus.trigger(ConnectionHelperEvents.ConnectionGained, {});\n csmService.addCountMetric(WEBSOCKET_EVENTS.ConnectionGained, CSM_CATEGORY.API);\n this.logger.info(\"Websocket connection gained.\");\n }\n\n onConnectionLost(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.ConnectionLost, handler);\n }\n\n handleConnectionLost() {\n this.status = ConnectionHelperStatus.ConnectionLost;\n this.eventBus.trigger(ConnectionHelperEvents.ConnectionLost, {});\n csmService.addCountMetric(WEBSOCKET_EVENTS.ConnectionLost, CSM_CATEGORY.API);\n this.logger.info(\"Websocket connection lost.\");\n }\n\n onMessage(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.IncomingMessage, handler);\n }\n\n handleMessage(message) {\n let parsedMessage;\n try {\n parsedMessage = JSON.parse(message.content);\n this.eventBus.trigger(ConnectionHelperEvents.IncomingMessage, parsedMessage);\n csmService.addCountMetric(WEBSOCKET_EVENTS.IncomingMessage, CSM_CATEGORY.API);\n this.logger.info(\"this.eventBus trigger Websocket incoming message\", ConnectionHelperEvents.IncomingMessage, parsedMessage);\n } catch (e) {\n this._sendInternalLogToServer(this.logger.error(\"Wrong message format\"));\n }\n }\n\n getStatus() {\n return this.status;\n }\n\n getWebsocketManager() {\n return this.websocketManager;\n }\n\n hasMessageSubscribers() {\n return this.eventBus.getSubscriptions(ConnectionHelperEvents.IncomingMessage).length > 0;\n }\n\n _sendInternalLogToServer(logEntry) {\n if (logEntry && typeof logEntry.sendInternalLogToServer === \"function\")\n logEntry.sendInternalLogToServer();\n\n return logEntry;\n }\n}\n\nexport default LpcConnectionHelper;\n","import { CHAT_EVENTS } from '../constants';\nimport { GlobalConfig } from '../globalConfig';\nimport { LogManager } from '../log';\n\nexport default class MessageReceiptsUtil {\n constructor(logMetaData) {\n this.logger = LogManager.getLogger({ prefix: 'ChatJS-MessageReceiptUtil', logMetaData });\n this.timeout = null;\n this.timeoutId = null;\n this.readSet = new Set();\n this.deliveredSet = new Set();\n this.readPromiseMap = new Map();\n this.deliveredPromiseMap = new Map();\n this.lastReadArgs = null;\n this.throttleInitialEventsToPrioritizeRead = null;\n this.throttleSendEventApiCall = null;\n }\n\n /**\n * check if message is of type read or delivered event\n *\n * @param {string} eventType either INCOMING_READ_RECEIPT or INCOMING_DELIVERED_RECEIPT.\n * @param {Object} incomingData object contains messageDetails\n * @return {boolean} returns true if read or delivered event else false\n */\n isMessageReceipt(eventType, incomingData) {\n return [CHAT_EVENTS.INCOMING_READ_RECEIPT, CHAT_EVENTS.INCOMING_DELIVERED_RECEIPT]\n .indexOf(eventType) !== -1 || incomingData.Type === CHAT_EVENTS.MESSAGE_METADATA;\n }\n \n /** \n * check if message is for currentParticipantId \n * \n * @param {string} currentParticipantId of the contact\n * @param {Object} incomingData object contains messageDetails\n * @return {boolean} returns true if we need to display messageReceipt for the currentParticipantId\n * \n */\n getEventTypeFromMessageMetaData(messageMetadata) {\n return Array.isArray(messageMetadata.Receipts) &&\n messageMetadata.Receipts[0] &&\n messageMetadata.Receipts[0].ReadTimestamp ? CHAT_EVENTS.INCOMING_READ_RECEIPT :\n messageMetadata.Receipts[0].DeliveredTimestamp ? CHAT_EVENTS.INCOMING_DELIVERED_RECEIPT : null;\n }\n\n /** \n * check if message is for currentParticipantId \n * \n * @param {string} currentParticipantId of the contact\n * @param {Object} incomingData object contains messageDetails\n * @return {boolean} returns true if we need to display messageReceipt for the currentParticipantId\n * \n */\n shouldShowMessageReceiptForCurrentParticipantId(currentParticipantId, incomingData) {\n const recipientParticipantId = incomingData.MessageMetadata && \n Array.isArray(incomingData.MessageMetadata.Receipts) &&\n incomingData.MessageMetadata.Receipts[0] &&\n incomingData.MessageMetadata.Receipts[0].RecipientParticipantId;\n return currentParticipantId !== recipientParticipantId;\n }\n\n /**\n * Assumption: sendMessageReceipts are called in correct order of time the messages are Delivered or Read\n * Prioritize Read Event by Throttling Delivered events for 300ms but firing Read events immediately!\n *\n * @param {function} callback The callback fn to throttle and invoke.\n * @param {Array} args array of params [connectionToken, contentType, content, eventType, throttleTime]\n * @return {promise} returnPromise for Read and Delivered events\n */\n prioritizeAndSendMessageReceipt(ChatClientContext, callback, ...args) {\n try {\n var self = this;\n var deliverEventThrottleTime = 300;\n var eventType = args[3];\n var content = typeof args[2] === \"string\" ? JSON.parse(args[2]) : args[2];\n var messageId = typeof content === \"object\" ? content.messageId : \"\";\n \n //ignore repeat events - do not make sendEvent API call.\n if (self.readSet.has(messageId) || \n (eventType === CHAT_EVENTS.INCOMING_DELIVERED_RECEIPT && self.deliveredSet.has(messageId)) ||\n !messageId) {\n this.logger.info(`Event already fired ${messageId}: sending messageReceipt ${eventType}`);\n return Promise.resolve({\n message: 'Event already fired'\n });\n }\n \n var resolve, reject;\n var returnPromise = new Promise(function(res,rej) {\n resolve = res;\n reject = rej;\n });\n \n if (eventType === CHAT_EVENTS.INCOMING_DELIVERED_RECEIPT) {\n self.deliveredPromiseMap.set(messageId, [resolve, reject]);\n } else {\n self.readPromiseMap.set(messageId, [resolve, reject]);\n }\n \n self.throttleInitialEventsToPrioritizeRead = function() {\n // ignore Delivered event if Read event has been triggered for the current messageId\n if (eventType === CHAT_EVENTS.INCOMING_DELIVERED_RECEIPT) {\n self.deliveredSet.add(messageId);\n if (self.readSet.has(messageId)) {\n self.resolveDeliveredPromises(messageId, 'Event already fired');\n return resolve({\n message: 'Event already fired'\n });\n }\n }\n if (self.readSet.has(messageId)) {\n self.resolveReadPromises(messageId, 'Event already fired');\n return resolve({\n message: 'Event already fired'\n });\n }\n if (eventType === CHAT_EVENTS.INCOMING_READ_RECEIPT) {\n self.readSet.add(messageId);\n }\n\n if (content.disableThrottle) {\n this.logger.info(`throttleFn disabled for ${messageId}: sending messageReceipt ${eventType}`);\n return resolve(callback.call(ChatClientContext, ...args));\n }\n self.logger.debug('call next throttleFn sendMessageReceipts', args);\n self.sendMessageReceipts.call(self, ChatClientContext, callback, ...args);\n };\n \n if(!self.timeout) {\n self.timeout = setTimeout(function() {\n self.timeout = null;\n self.throttleInitialEventsToPrioritizeRead();\n }, deliverEventThrottleTime);\n }\n \n //prevent multiple Read events for same messageId - call readEvent without delay\n if (eventType === CHAT_EVENTS.INCOMING_READ_RECEIPT && !self.readSet.has(messageId)) {\n clearTimeout(self.timeout);\n self.timeout = null;\n self.throttleInitialEventsToPrioritizeRead();\n }\n \n return returnPromise;\n } catch (Err) {\n return Promise.reject({\n message: \"Failed to send messageReceipt\", \n args,\n ...Err\n });\n }\n }\n\n /**\n * Throttle for ${GlobalConfig.getMessageReceiptsThrottleTime()} and then fire Read and Delivered events\n *\n * @param {function} callback The callback fn to throttle and invoke.\n * @param {Array} args array of params [connectionToken, contentType, content, eventType, throttleTime]\n */\n sendMessageReceipts(ChatClientContext, callback, ...args) {\n var self = this;\n var throttleTime = args[4] || GlobalConfig.getMessageReceiptsThrottleTime();\n var eventType = args[3];\n var content = typeof args[2] === \"string\" ? JSON.parse(args[2]) : args[2];\n var messageId = content.messageId;\n this.lastReadArgs = eventType === CHAT_EVENTS.INCOMING_READ_RECEIPT ? args : this.lastReadArgs;\n\n self.throttleSendEventApiCall = function() {\n try {\n if(eventType === CHAT_EVENTS.INCOMING_READ_RECEIPT) {\n var sendEventPromise = callback.call(ChatClientContext, ...args);\n self.resolveReadPromises(messageId, sendEventPromise);\n self.logger.debug('send Read event:', callback, args);\n } else {\n //delivered event is the last event fired\n //fire delivered for latest messageId\n //fire read for latest messageId\n var PromiseArr = [callback.call(ChatClientContext, ...args)];\n if(this.lastReadArgs) {\n var contentVal = typeof this.lastReadArgs[2] === \"string\" ? JSON.parse(this.lastReadArgs[2]) : this.lastReadArgs[2];\n var readEventMessageId = contentVal.messageId;\n // if readPromise has been resolved for readEventMessageId; readPromiseMap should not contain readEventMessageId\n // if readPromiseMap contains readEventMessageId; read event has not been called!\n if (self.readPromiseMap.has(readEventMessageId)) {\n PromiseArr.push(callback.call(ChatClientContext, ...this.lastReadArgs));\n }\n }\n self.logger.debug('send Delivered event:', args, 'read event:', this.lastReadArgs);\n Promise.all(PromiseArr).then(res => {\n self.resolveReadPromises(contentVal.messageId, res[0]);\n self.resolveDeliveredPromises(messageId, res[0]);\n });\n }\n } catch(err) {\n self.logger.error('send message receipt failed', err);\n self.resolveReadPromises(messageId, err, true);\n self.resolveDeliveredPromises(messageId, err, true);\n }\n };\n\n if (!self.timeoutId) {\n self.timeoutId = setTimeout(function() {\n self.timeoutId = null;\n self.throttleSendEventApiCall();\n }, throttleTime);\n }\n }\n\n /**\n * resolve All Delivered promises till messageId\n *\n * @param {string} messageId of the latest message receipt event\n * @param {Object} result of the latest message receipt event\n */\n resolveDeliveredPromises(messageId, result, isError) {\n return this.resolvePromises(this.deliveredPromiseMap, messageId, result, isError);\n }\n\n /**\n * resolve All Read promises till messageId\n *\n * @param {string} messageId of the latest message receipt event\n * @param {Object} result of the latest message receipt event\n */\n resolveReadPromises(messageId, result, isError) {\n return this.resolvePromises(this.readPromiseMap, messageId, result, isError);\n }\n\n /**\n * resolve All promises till messageId\n *\n * @param {Map} promiseMap of either send or delivered promises\n * @param {string} messageId of the latest message receipt event\n * @param {Object} result of the latest message receipt event\n */\n resolvePromises(promiseMap, messageId, result, isError) {\n var arr = Array.from(promiseMap.keys());\n var indexToResolve = arr.indexOf(messageId);\n \n if (indexToResolve !== -1) {\n for(let i=0;i<=indexToResolve;i++) {\n var callbackFn = promiseMap.get(arr[i])?.[ isError ? 1 : 0 ];\n if (typeof callbackFn === 'function') {\n promiseMap.delete(arr[i]);\n callbackFn(result);\n }\n }\n } else {\n this.logger.debug(`Promise for messageId: ${messageId} already resolved`);\n }\n }\n\n /**\n * getTranscript API call should hydrate readSet and deliveredSet\n *\n * @param {function} callback to call with getTranscript response object.\n * @param {boolean} shouldSendMessageReceipts decides whether to hydrate mappers or not\n * @return {function} function which takes in input response from API call and calls callback with response.\n */\n rehydrateReceiptMappers(callback, shouldSendMessageReceipts) {\n var self = this;\n return response => {\n self.logger.debug('rehydrate chat', response?.data);\n if (shouldSendMessageReceipts) {\n const { Transcript = [] } = response?.data || {};\n Transcript.forEach(transcript => {\n if (transcript?.Type === CHAT_EVENTS.MESSAGE_METADATA) {\n const Receipt = transcript?.MessageMetadata?.Receipts?.[0];\n const messageId = transcript?.MessageMetadata?.MessageId;\n if (Receipt?.ReadTimestamp) {\n this.readSet.add(messageId);\n }\n if (Receipt?.DeliveredTimestamp) {\n this.deliveredSet.add(messageId);\n }\n }\n });\n }\n // send MessageReceipt for latest message is done by ChatInterface\n // UI will send Read receipt for the latest message displayed in the UI.\n return callback(response);\n };\n }\n\n}\n","import { ConnectionHelperStatus } from \"./connectionHelpers/baseConnectionHelper\";\nimport {\n CHAT_EVENTS,\n TRANSCRIPT_DEFAULT_PARAMS,\n SESSION_TYPES,\n CONTENT_TYPE,\n CHAT_EVENT_TYPE_MAPPING,\n CSM_CATEGORY,\n ACPS_METHODS,\n FEATURES,\n CREATE_PARTICIPANT_CONACK_FAILURE,\n CREATE_PARTICIPANT_CONACK_API_CALL_COUNT\n} from \"../constants\";\nimport { LogManager } from \"../log\";\nimport { EventBus } from \"./eventbus\";\nimport { ChatServiceArgsValidator } from \"./chatArgsValidator\";\nimport ConnectionDetailsProvider from \"./connectionHelpers/connectionDetailsProvider\";\nimport LpcConnectionHelper from \"./connectionHelpers/LpcConnectionHelper\";\nimport MessageReceiptsUtil from './MessageReceiptsUtil';\nimport { csmService } from \"../service/csmService\";\nimport { GlobalConfig } from \"../globalConfig\";\n\nvar NetworkLinkStatus = {\n NeverEstablished: \"NeverEstablished\",\n Establishing: \"Establishing\",\n Established: \"Established\",\n Broken: \"Broken\"\n};\n\nclass ChatController {\n\n constructor(args) {\n this.argsValidator = new ChatServiceArgsValidator();\n this.pubsub = new EventBus();\n this.sessionType = args.sessionType;\n this.getConnectionToken = args.chatDetails.getConnectionToken;\n this.connectionDetails = args.chatDetails.connectionDetails;\n this.initialContactId = args.chatDetails.initialContactId;\n this.contactId = args.chatDetails.contactId;\n this.participantId = args.chatDetails.participantId;\n this.chatClient = args.chatClient;\n this.participantToken = args.chatDetails.participantToken;\n this.websocketManager = args.websocketManager;\n this._participantDisconnected = false;\n this.sessionMetadata = {};\n this.logger = LogManager.getLogger({\n prefix: \"ChatJS-ChatController\",\n logMetaData: args.logMetaData\n });\n this.logMetaData = args.logMetaData;\n this.messageReceiptUtil = new MessageReceiptsUtil(args.logMetaData);\n this.logger.info(\"Browser info:\", window.navigator.userAgent);\n }\n\n subscribe(eventName, callback) {\n this.pubsub.subscribe(eventName, callback);\n this._sendInternalLogToServer(this.logger.info(\"Subscribed successfully to event:\", eventName));\n }\n\n handleRequestSuccess(metadata, method, startTime, contentType) {\n return response => {\n const contentTypeDimension = contentType?\n [\n {\n name: \"ContentType\",\n value: contentType\n }\n ]\n : [];\n csmService.addLatencyMetricWithStartTime(method, startTime, CSM_CATEGORY.API, contentTypeDimension);\n csmService.addCountAndErrorMetric(method, CSM_CATEGORY.API, false, contentTypeDimension);\n response.metadata = metadata;\n return response;\n };\n }\n\n handleRequestFailure(metadata, method, startTime, contentType) {\n return error => {\n const contentTypeDimension = contentType?\n [\n {\n name: \"ContentType\",\n value: contentType\n }\n ]\n : [];\n csmService.addLatencyMetricWithStartTime(method, startTime, CSM_CATEGORY.API, contentTypeDimension);\n csmService.addCountAndErrorMetric(method, CSM_CATEGORY.API, true, contentTypeDimension);\n error.metadata = metadata;\n return Promise.reject(error);\n };\n }\n\n sendMessage(args) {\n const startTime = new Date().getTime();\n const metadata = args.metadata || null;\n this.argsValidator.validateSendMessage(args);\n const connectionToken = this.connectionHelper.getConnectionToken();\n return this.chatClient\n .sendMessage(connectionToken, args.message, args.contentType)\n .then(this.handleRequestSuccess(metadata, ACPS_METHODS.SEND_MESSAGE, startTime, args.contentType))\n .catch(this.handleRequestFailure(metadata, ACPS_METHODS.SEND_MESSAGE, startTime, args.contentType));\n }\n\n sendAttachment(args){\n const startTime = new Date().getTime();\n const metadata = args.metadata || null;\n //TODO: validation\n const connectionToken = this.connectionHelper.getConnectionToken();\n return this.chatClient\n .sendAttachment(connectionToken, args.attachment, args.metadata)\n .then(this.handleRequestSuccess(metadata, ACPS_METHODS.SEND_ATTACHMENT, startTime, args.attachment.type))\n .catch(this.handleRequestFailure(metadata, ACPS_METHODS.SEND_ATTACHMENT, startTime, args.attachment.type));\n }\n\n downloadAttachment(args){\n const startTime = new Date().getTime();\n const metadata = args.metadata || null;\n const connectionToken = this.connectionHelper.getConnectionToken();\n return this.chatClient\n .downloadAttachment(connectionToken, args.attachmentId)\n .then(this.handleRequestSuccess(metadata, ACPS_METHODS.DOWNLOAD_ATTACHMENT, startTime))\n .catch(this.handleRequestFailure(metadata, ACPS_METHODS.DOWNLOAD_ATTACHMENT, startTime));\n }\n\n sendEvent(args) {\n const startTime = new Date().getTime();\n const metadata = args.metadata || null;\n this.argsValidator.validateSendEvent(args);\n const connectionToken = this.connectionHelper.getConnectionToken();\n const content = args.content || null;\n var eventType = getEventTypeFromContentType(args.contentType);\n var parsedContent = typeof content === \"string\" ? JSON.parse(content) : content;\n if (this.messageReceiptUtil.isMessageReceipt(eventType, args)) {\n // Ignore all MessageReceipt events\n if(!GlobalConfig.isFeatureEnabled(FEATURES.MESSAGE_RECEIPTS_ENABLED) || !parsedContent.messageId) {\n this.logger.warn(`Ignoring messageReceipt: ${GlobalConfig.isFeatureEnabled(FEATURES.MESSAGE_RECEIPTS_ENABLED) && \"missing messageId\"}`, args);\n return Promise.reject({\n errorMessage: `Ignoring messageReceipt: ${GlobalConfig.isFeatureEnabled(FEATURES.MESSAGE_RECEIPTS_ENABLED) && \"missing messageId\"}`,\n data: args\n });\n }\n // Prioritize and send selective message receipts\n return this.messageReceiptUtil.prioritizeAndSendMessageReceipt(this.chatClient, this.chatClient.sendEvent,\n connectionToken,\n args.contentType,\n content, \n eventType, \n GlobalConfig.getMessageReceiptsThrottleTime())\n .then(this.handleRequestSuccess(metadata, ACPS_METHODS.SEND_EVENT, startTime, args.contentType))\n .catch(this.handleRequestFailure(metadata, ACPS_METHODS.SEND_EVENT, startTime, args.contentType));\n }\n return this.chatClient\n .sendEvent(\n connectionToken,\n args.contentType,\n content\n )\n .then(this.handleRequestSuccess(metadata, ACPS_METHODS.SEND_EVENT, startTime, args.contentType))\n .catch(this.handleRequestFailure(metadata, ACPS_METHODS.SEND_EVENT, startTime, args.contentType));\n }\n\n getTranscript(inputArgs) {\n const startTime = new Date().getTime();\n const metadata = inputArgs.metadata || null;\n const args = {\n startPosition: inputArgs.startPosition || {},\n scanDirection: inputArgs.scanDirection || TRANSCRIPT_DEFAULT_PARAMS.SCAN_DIRECTION,\n sortOrder: inputArgs.sortOrder || TRANSCRIPT_DEFAULT_PARAMS.SORT_ORDER,\n maxResults: inputArgs.maxResults || TRANSCRIPT_DEFAULT_PARAMS.MAX_RESULTS,\n };\n if (inputArgs.nextToken) {\n args.nextToken = inputArgs.nextToken;\n }\n if (inputArgs.contactId) {\n args.contactId = inputArgs.contactId;\n }\n const connectionToken = this.connectionHelper.getConnectionToken();\n return this.chatClient\n .getTranscript(connectionToken, args)\n .then(\n this.messageReceiptUtil.rehydrateReceiptMappers(\n this.handleRequestSuccess(metadata, ACPS_METHODS.GET_TRANSCRIPT, startTime), \n GlobalConfig.isFeatureEnabled(FEATURES.MESSAGE_RECEIPTS_ENABLED)\n )\n )\n .catch(this.handleRequestFailure(metadata, ACPS_METHODS.GET_TRANSCRIPT, startTime));\n }\n\n connect(args={}) {\n this.sessionMetadata = args.metadata || null;\n this.argsValidator.validateConnectChat(args);\n const connectionDetailsProvider = this._getConnectionDetailsProvider();\n return connectionDetailsProvider.fetchConnectionDetails()\n .then(\n (connectionDetails) => \n this._initConnectionHelper(connectionDetailsProvider, connectionDetails)\n )\n .then(response => this._onConnectSuccess(response, connectionDetailsProvider))\n .catch(err => {\n return this._onConnectFailure(err);\n });\n }\n\n _initConnectionHelper(connectionDetailsProvider, connectionDetails) {\n this.connectionHelper = new LpcConnectionHelper(\n this.contactId,\n this.initialContactId,\n connectionDetailsProvider,\n this.websocketManager,\n this.logMetaData,\n connectionDetails\n );\n this.connectionHelper.onEnded(this._handleEndedConnection.bind(this));\n this.connectionHelper.onConnectionLost(this._handleLostConnection.bind(this));\n this.connectionHelper.onConnectionGain(this._handleGainedConnection.bind(this));\n this.connectionHelper.onMessage(this._handleIncomingMessage.bind(this));\n return this.connectionHelper.start();\n }\n\n _getConnectionDetailsProvider() {\n return new ConnectionDetailsProvider(\n this.participantToken, \n this.chatClient,\n this.sessionType,\n this.getConnectionToken\n );\n }\n\n _handleEndedConnection(eventData) {\n this._forwardChatEvent(CHAT_EVENTS.CONNECTION_BROKEN, {\n data: eventData,\n chatDetails: this.getChatDetails()\n });\n this.breakConnection();\n }\n\n _handleLostConnection(eventData) {\n this._forwardChatEvent(CHAT_EVENTS.CONNECTION_LOST, {\n data: eventData,\n chatDetails: this.getChatDetails()\n });\n }\n\n _handleGainedConnection(eventData) {\n this._forwardChatEvent(CHAT_EVENTS.CONNECTION_ESTABLISHED, {\n data: eventData,\n chatDetails: this.getChatDetails()\n });\n }\n\n _handleIncomingMessage(incomingData) {\n try {\n let eventType = getEventTypeFromContentType(incomingData?.ContentType);\n if (this.messageReceiptUtil.isMessageReceipt(eventType, incomingData)) {\n eventType = this.messageReceiptUtil.getEventTypeFromMessageMetaData(incomingData?.MessageMetadata);\n if (!eventType || \n !this.messageReceiptUtil.shouldShowMessageReceiptForCurrentParticipantId(this.participantId, incomingData)) {\n //ignore bec we do not want to show messageReceipt to sender of receipt.\n //messageReceipt needs to be shown to the sender of message.\n return;\n }\n }\n\n this._forwardChatEvent(eventType, {\n data: incomingData,\n chatDetails: this.getChatDetails()\n });\n if (incomingData.ContentType === CONTENT_TYPE.chatEnded) {\n this._forwardChatEvent(CHAT_EVENTS.CHAT_ENDED, {\n data: null,\n chatDetails: this.getChatDetails()\n });\n this.breakConnection();\n }\n } catch (e) {\n this._sendInternalLogToServer(this.logger.error(\n \"Error occured while handling message from Connection. eventData:\",\n incomingData,\n \" Causing exception:\",\n e\n ));\n }\n }\n\n _forwardChatEvent(eventName, eventData) {\n this.pubsub.triggerAsync(eventName, eventData);\n }\n\n _onConnectSuccess(response, connectionDetailsProvider) {\n this._sendInternalLogToServer(this.logger.info(\"Connect successful!\"));\n console.warn(\"onConnectionSuccess response\", response);\n const responseObject = {\n _debug: response,\n connectSuccess: true,\n connectCalled: true,\n metadata: this.sessionMetadata\n };\n const eventData = Object.assign({\n chatDetails: this.getChatDetails()\n }, responseObject);\n this.pubsub.triggerAsync(CHAT_EVENTS.CONNECTION_ESTABLISHED, eventData);\n \n // TODO: Fix the floating promise issue: https://app.asana.com/0/1203611591691532/1203880194668408/f\n const connectionAcknowledged = connectionDetailsProvider.getConnectionDetails()?.connectionAcknowledged;\n if (this._shouldAcknowledgeContact() && !connectionAcknowledged) {\n csmService.addAgentCountMetric(CREATE_PARTICIPANT_CONACK_API_CALL_COUNT, 1);\n connectionDetailsProvider.callCreateParticipantConnection({\n Type: false,\n ConnectParticipant: true\n }).catch(err => {\n this.logger.warn(\"ConnectParticipant failed to acknowledge Agent connection in CreateParticipantConnection: \", err);\n csmService.addAgentCountMetric(CREATE_PARTICIPANT_CONACK_FAILURE, 1);\n });\n }\n console.warn(\"onConnectionSuccess responseObject\", responseObject);\n return responseObject;\n }\n\n _onConnectFailure(error) {\n const errorObject = {\n _debug: error,\n connectSuccess: false,\n connectCalled: true,\n metadata: this.sessionMetadata\n };\n this._sendInternalLogToServer(this.logger.error(\"Connect Failed. Error: \", errorObject));\n\n return Promise.reject(errorObject);\n }\n\n _shouldAcknowledgeContact() {\n return this.sessionType === SESSION_TYPES.AGENT;\n }\n\n breakConnection() {\n return this.connectionHelper\n ? this.connectionHelper.end()\n : Promise.resolve();\n }\n\n // Do any clean up that needs to be done upon the participant being disconnected from the chat -\n // disconnected here means that the participant is no longer part of ther chat.\n cleanUpOnParticipantDisconnect() {\n this.pubsub.unsubscribeAll();\n }\n\n disconnectParticipant() {\n const startTime = new Date().getTime();\n const connectionToken = this.connectionHelper.getConnectionToken();\n return this.chatClient\n .disconnectParticipant(connectionToken)\n .then(response => {\n this._sendInternalLogToServer(this.logger.info(\"Disconnect participant successfully\"));\n\n this._participantDisconnected = true;\n this.cleanUpOnParticipantDisconnect();\n this.breakConnection();\n csmService.addLatencyMetricWithStartTime(ACPS_METHODS.DISCONNECT_PARTICIPANT, startTime, CSM_CATEGORY.API);\n csmService.addCountAndErrorMetric(ACPS_METHODS.DISCONNECT_PARTICIPANT, CSM_CATEGORY.API, false);\n return response;\n }, error => {\n this._sendInternalLogToServer(this.logger.error(\"Disconnect participant failed. Error:\", error));\n csmService.addLatencyMetricWithStartTime(ACPS_METHODS.DISCONNECT_PARTICIPANT, startTime, CSM_CATEGORY.API);\n csmService.addCountAndErrorMetric(ACPS_METHODS.DISCONNECT_PARTICIPANT, CSM_CATEGORY.API, true);\n return Promise.reject(error);\n });\n }\n\n getChatDetails() {\n return {\n initialContactId: this.initialContactId,\n contactId: this.contactId,\n participantId: this.participantId,\n participantToken: this.participantToken,\n connectionDetails: this.connectionDetails\n };\n }\n\n _convertConnectionHelperStatus(connectionHelperStatus) {\n switch (connectionHelperStatus) {\n case ConnectionHelperStatus.NeverStarted:\n return NetworkLinkStatus.NeverEstablished;\n case ConnectionHelperStatus.Starting:\n return NetworkLinkStatus.Establishing;\n case ConnectionHelperStatus.Ended:\n return NetworkLinkStatus.Broken;\n case ConnectionHelperStatus.ConnectionLost:\n return NetworkLinkStatus.Broken;\n case ConnectionHelperStatus.Connected:\n return NetworkLinkStatus.Established;\n }\n this._sendInternalLogToServer(this.logger.error(\n \"Reached invalid state. Unknown connectionHelperStatus: \",\n connectionHelperStatus\n ));\n }\n\n getConnectionStatus() {\n return this._convertConnectionHelperStatus(\n this.connectionHelper.getStatus()\n );\n }\n\n _sendInternalLogToServer(logEntry) {\n if (logEntry && typeof logEntry.sendInternalLogToServer === \"function\")\n logEntry.sendInternalLogToServer();\n\n return logEntry;\n }\n}\n\nexport const getEventTypeFromContentType = (contentType) => {\n return CHAT_EVENT_TYPE_MAPPING[contentType] || CHAT_EVENT_TYPE_MAPPING.default;\n};\n\nexport { ChatController, NetworkLinkStatus };\n","import {\n UnImplementedMethodException,\n IllegalArgumentException\n} from \"./exceptions\";\nimport { ChatClientFactory } from \"../client/client\";\nimport { ChatServiceArgsValidator } from \"./chatArgsValidator\";\nimport { SESSION_TYPES, CHAT_EVENTS, FEATURES } from \"../constants\";\nimport { GlobalConfig } from \"../globalConfig\";\nimport { ChatController } from \"./chatController\";\nimport { LogManager, LogLevel, Logger } from \"../log\";\nimport { csmService } from \"../service/csmService\";\nimport WebSocketManager from \"../lib/amazon-connect-websocket-manager\";\n\nclass ChatSessionFactory {\n /*eslint-disable no-unused-vars*/\n\n createAgentChatController(chatDetails, participantType) {\n throw new UnImplementedMethodException(\n \"createAgentChatController in ChatControllerFactory.\"\n );\n }\n\n createCustomerChatController(chatDetails, participantType) {\n throw new UnImplementedMethodException(\n \"createCustomerChatController in ChatControllerFactory.\"\n );\n }\n /*eslint-enable no-unused-vars*/\n}\n\nclass PersistentConnectionAndChatServiceSessionFactory extends ChatSessionFactory {\n constructor() {\n super();\n this.argsValidator = new ChatServiceArgsValidator();\n }\n\n createChatSession(sessionType, chatDetails, options, websocketManager) {\n const chatController = this._createChatController(sessionType, chatDetails, options, websocketManager);\n if (sessionType === SESSION_TYPES.AGENT) {\n return new AgentChatSession(chatController);\n } else if (sessionType === SESSION_TYPES.CUSTOMER) {\n return new CustomerChatSession(chatController);\n } else {\n throw new IllegalArgumentException(\n \"Unkown value for session type, Allowed values are: \" +\n Object.values(SESSION_TYPES),\n sessionType\n );\n }\n }\n\n _createChatController(sessionType, chatDetailsInput, options, websocketManager) {\n var chatDetails = this.argsValidator.normalizeChatDetails(chatDetailsInput);\n var logMetaData = {\n contactId: chatDetails.contactId,\n participantId: chatDetails.participantId,\n sessionType\n };\n\n var chatClient = ChatClientFactory.getCachedClient(options, logMetaData);\n \n var args = {\n sessionType: sessionType,\n chatDetails,\n chatClient,\n websocketManager: websocketManager,\n logMetaData,\n };\n\n return new ChatController(args);\n }\n}\n\nexport class ChatSession {\n constructor(controller) {\n this.controller = controller;\n }\n\n onMessage(callback) {\n this.controller.subscribe(CHAT_EVENTS.INCOMING_MESSAGE, callback);\n }\n\n onTyping(callback) {\n this.controller.subscribe(CHAT_EVENTS.INCOMING_TYPING, callback);\n }\n\n onReadReceipt(callback) {\n this.controller.subscribe(CHAT_EVENTS.INCOMING_READ_RECEIPT, callback);\n }\n\n onDeliveredReceipt(callback) {\n this.controller.subscribe(CHAT_EVENTS.INCOMING_DELIVERED_RECEIPT, callback);\n }\n\n onConnectionBroken(callback) {\n this.controller.subscribe(CHAT_EVENTS.CONNECTION_BROKEN, callback);\n }\n\n onConnectionEstablished(callback) {\n this.controller.subscribe(CHAT_EVENTS.CONNECTION_ESTABLISHED, callback);\n }\n\n onEnded(callback) {\n this.controller.subscribe(CHAT_EVENTS.CHAT_ENDED, callback);\n }\n\n onParticipantIdle(callback) {\n this.controller.subscribe(CHAT_EVENTS.PARTICIPANT_IDLE, callback);\n }\n\n onParticipantReturned(callback) {\n this.controller.subscribe(CHAT_EVENTS.PARTICIPANT_RETURNED, callback);\n }\n\n onAutoDisconnection(callback) {\n this.controller.subscribe(CHAT_EVENTS.AUTODISCONNECTION, callback);\n }\n\n onConnectionLost(callback) {\n this.controller.subscribe(CHAT_EVENTS.CONNECTION_LOST, callback);\n }\n\n sendMessage(args) {\n return this.controller.sendMessage(args);\n }\n\n sendAttachment(args){\n return this.controller.sendAttachment(args);\n }\n\n downloadAttachment(args){\n return this.controller.downloadAttachment(args);\n }\n\n connect(args) {\n return this.controller.connect(args);\n }\n\n sendEvent(args) {\n return this.controller.sendEvent(args);\n }\n\n getTranscript(args) {\n return this.controller.getTranscript(args);\n }\n\n getChatDetails() {\n return this.controller.getChatDetails();\n }\n}\n\nclass AgentChatSession extends ChatSession {\n constructor(controller) {\n super(controller);\n }\n\n cleanUpOnParticipantDisconnect() {\n return this.controller.cleanUpOnParticipantDisconnect();\n }\n}\n\nclass CustomerChatSession extends ChatSession {\n constructor(controller) {\n super(controller);\n }\n\n disconnectParticipant() {\n return this.controller.disconnectParticipant();\n }\n}\n\nexport const CHAT_SESSION_FACTORY = new PersistentConnectionAndChatServiceSessionFactory();\n\nvar setGlobalConfig = config => {\n var loggerConfig = config.loggerConfig;\n var csmConfig = config.csmConfig;\n GlobalConfig.update(config);\n /**\n * if config.loggerConfig.logger is present - use it in websocketManager\n * if config.loggerConfig.customizedLogger is present - use it in websocketManager\n * if config.loggerConfig.useDefaultLogger is true - use default window.console + default level INFO\n * config.loggerConfig.advancedLogWriter to customize where you want to log advancedLog messages. Default is warn.\n * else no logs from websocketManager - DEFAULT\n */\n WebSocketManager.setGlobalConfig(config);\n LogManager.updateLoggerConfig(loggerConfig);\n if (csmConfig) {\n csmService.updateCsmConfig(csmConfig);\n }\n //Message Receipts enabled by default\n if (!(config.features?.messageReceipts?.shouldSendMessageReceipts === false)) {\n console.warn(\"enabling message-receipts by default; to disable set config.features.messageReceipts.shouldSendMessageReceipts = false\");\n setFeatureFlag(FEATURES.MESSAGE_RECEIPTS_ENABLED);\n GlobalConfig.updateThrottleTime(config.features?.messageReceipts?.thorttleTime);\n }\n};\n\nvar setFeatureFlag = feature => {\n GlobalConfig.setFeatureFlag(feature);\n};\n\nvar ChatSessionConstructor = args => {\n var options = args.options || {};\n var type = args.type || SESSION_TYPES.AGENT;\n GlobalConfig.updateStageRegion(options);\n // initialize CSM Service for only customer chat widget\n // Disable CSM service from canary test\n if(!args.disableCSM && type === SESSION_TYPES.CUSTOMER) {\n csmService.loadCsmScriptAndExecute();\n }\n return CHAT_SESSION_FACTORY.createChatSession(\n type,\n args.chatDetails,\n options,//options contain region \n args.websocketManager,\n );\n};\n\nconst ChatSessionObject = {\n create: ChatSessionConstructor,\n setGlobalConfig: setGlobalConfig,\n LogLevel: LogLevel,\n Logger: Logger,\n SessionTypes: SESSION_TYPES,\n csmService: csmService,\n setFeatureFlag: setFeatureFlag,\n};\n\nexport { ChatSessionObject };\n","/*eslint no-unused-vars: \"off\"*/\nimport { ChatSessionObject } from \"./core/chatSession\";\nimport { LogManager, LogLevel } from \"./log\";\n\nvar global = typeof global !== 'undefined' ? global :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window : {};\nglobal.connect = global.connect || {};\nconnect.ChatSession = ChatSessionObject;\nconnect.LogManager = LogManager;\nconnect.LogLevel = LogLevel;\nconnect.csmService = ChatSessionObject.csmService;\nexport const ChatSession = ChatSessionObject;\n"],"names":["e","t","r","n","i","s","a","o","c","Error","code","l","exports","call","length","version","metadata","apiVersion","endpointPrefix","jsonVersion","protocol","serviceFullName","serviceId","signatureVersion","targetPrefix","uid","operations","CreateIdentityPool","input","type","required","members","IdentityPoolName","AllowUnauthenticatedIdentities","AllowClassicFlow","SupportedLoginProviders","shape","DeveloperProviderName","OpenIdConnectProviderARNs","CognitoIdentityProviders","SamlProviderARNs","IdentityPoolTags","output","DeleteIdentities","IdentityIdsToDelete","member","UnprocessedIdentityIds","IdentityId","ErrorCode","DeleteIdentityPool","IdentityPoolId","DescribeIdentity","DescribeIdentityPool","GetCredentialsForIdentity","Logins","CustomRoleArn","Credentials","AccessKeyId","SecretKey","SessionToken","Expiration","GetId","AccountId","GetIdentityPoolRoles","Roles","RoleMappings","GetOpenIdToken","Token","GetOpenIdTokenForDeveloperIdentity","TokenDuration","ListIdentities","MaxResults","NextToken","HideDisabled","Identities","ListIdentityPools","IdentityPools","ListTagsForResource","ResourceArn","Tags","LookupDeveloperIdentity","DeveloperUserIdentifier","DeveloperUserIdentifierList","MergeDeveloperIdentities","SourceUserIdentifier","DestinationUserIdentifier","SetIdentityPoolRoles","TagResource","UnlinkDeveloperIdentity","UnlinkIdentity","LoginsToRemove","UntagResource","TagKeys","UpdateIdentityPool","shapes","S5","key","value","S9","Sb","ProviderName","ClientId","ServerSideTokenCheck","Sg","Sh","Sk","Sv","CreationDate","LastModifiedDate","Sw","S10","S1c","S1e","Type","AmbiguousRoleResolution","RulesConfiguration","Rules","Claim","MatchType","Value","RoleARN","pagination","serviceAbbreviation","signingName","CompleteAttachmentUpload","http","requestUri","AttachmentIds","ClientToken","idempotencyToken","ConnectionToken","location","locationName","CreateParticipantConnection","ParticipantToken","ConnectParticipant","Websocket","Url","ConnectionExpiry","ConnectionCredentials","Expiry","DisconnectParticipant","GetAttachment","AttachmentId","UrlExpiry","GetTranscript","ContactId","ScanDirection","SortOrder","StartPosition","Id","AbsoluteTime","MostRecent","InitialContactId","Transcript","Content","ContentType","ParticipantId","DisplayName","ParticipantRole","Attachments","AttachmentName","Status","MessageMetadata","MessageId","Receipts","DeliveredTimestamp","ReadTimestamp","RecipientParticipantId","SendEvent","SendMessage","StartAttachmentUpload","AttachmentSizeInBytes","UploadMetadata","HeadersToInclude","input_token","output_token","limit_key","acm","name","cors","apigateway","applicationautoscaling","prefix","appstream","autoscaling","batch","budgets","clouddirectory","versions","cloudformation","cloudfront","cloudhsm","cloudsearch","cloudsearchdomain","cloudtrail","cloudwatch","cloudwatchevents","cloudwatchlogs","codebuild","codecommit","codedeploy","codepipeline","cognitoidentity","cognitoidentityserviceprovider","cognitosync","configservice","cur","datapipeline","devicefarm","directconnect","directoryservice","discovery","dms","dynamodb","dynamodbstreams","ec2","ecr","ecs","efs","elasticache","elasticbeanstalk","elb","elbv2","emr","es","elastictranscoder","firehose","gamelift","glacier","health","iam","importexport","inspector","iot","iotdata","kinesis","kinesisanalytics","kms","lambda","lexruntime","lightsail","machinelearning","marketplacecommerceanalytics","marketplacemetering","mturk","mobileanalytics","opsworks","opsworkscm","organizations","pinpoint","polly","rds","redshift","rekognition","resourcegroupstaggingapi","route53","route53domains","s3","dualstackAvailable","s3control","xmlNoDefaultLists","servicecatalog","ses","shield","simpledb","sms","snowball","sns","sqs","ssm","storagegateway","stepfunctions","sts","support","swf","xray","waf","wafregional","workdocs","workspaces","codestar","lexmodelbuildingservice","marketplaceentitlementservice","athena","greengrass","dax","migrationhub","cloudhsmv2","glue","mobile","pricing","costexplorer","mediaconvert","medialive","mediapackage","mediastore","mediastoredata","appsync","guardduty","mq","comprehend","iotjobsdataplane","kinesisvideoarchivedmedia","kinesisvideomedia","kinesisvideo","sagemakerruntime","sagemaker","translate","resourcegroups","alexaforbusiness","cloud9","serverlessapplicationrepository","servicediscovery","workmail","autoscalingplans","transcribeservice","connect","acmpca","fms","secretsmanager","iotanalytics","iot1clickdevicesservice","iot1clickprojects","pi","neptune","mediatailor","eks","macie","dlm","signer","chime","pinpointemail","ram","route53resolver","pinpointsmsvoice","quicksight","rdsdataservice","amplify","datasync","robomaker","transfer","globalaccelerator","comprehendmedical","kinesisanalyticsv2","mediaconnect","fsx","securityhub","appmesh","licensemanager","kafka","apigatewaymanagementapi","apigatewayv2","docdb","backup","worklink","textract","managedblockchain","mediapackagevod","groundstation","iotthingsgraph","iotevents","ioteventsdata","personalize","personalizeevents","personalizeruntime","applicationinsights","servicequotas","ec2instanceconnect","eventbridge","lakeformation","forecastservice","forecastqueryservice","qldb","qldbsession","workmailmessageflow","codestarnotifications","savingsplans","sso","ssooidc","marketplacecatalog","dataexchange","sesv2","migrationhubconfig","connectparticipant","appconfig","iotsecuretunneling","wafv2","elasticinference","imagebuilder","schemas","accessanalyzer","codegurureviewer","codeguruprofiler","computeoptimizer","frauddetector","kendra","networkmanager","outposts","augmentedairuntime","ebs","kinesisvideosignalingchannels","detective","codestarconnections","synthetics","iotsitewise","macie2","codeartifact","honeycode","ivs","braket","identitystore","appflow","redshiftdata","ssoadmin","timestreamquery","timestreamwrite","s3outposts","globalEndpoint","xmlNamespace","AssumeRole","RoleArn","RoleSessionName","PolicyArns","Policy","DurationSeconds","TransitiveTagKeys","ExternalId","SerialNumber","TokenCode","resultWrapper","AssumedRoleUser","PackedPolicySize","AssumeRoleWithSAML","PrincipalArn","SAMLAssertion","Subject","SubjectType","Issuer","Audience","NameQualifier","AssumeRoleWithWebIdentity","WebIdentityToken","ProviderId","SubjectFromWebIdentityToken","Provider","DecodeAuthorizationMessage","EncodedMessage","DecodedMessage","GetAccessKeyInfo","Account","GetCallerIdentity","UserId","Arn","GetFederationToken","Name","FederatedUser","FederatedUserId","GetSessionToken","S4","arn","S8","Key","SecretAccessKey","Sm","AssumedRoleId","arguments","apply","dup","Service","apiLoader","services","CognitoIdentity","defineService","Object","defineProperty","get","paginators","enumerable","configurable","STS","hasOwnProperty","createHash","toLowerCase","createHmac","createSign","Buffer","ArrayBuffer","isView","indexOf","prototype","toString","isEmptyData","byteLength","convertToBuffer","Uint8Array","buffer","byteOffset","BYTES_PER_ELEMENT","this","hash","outer","BLOCK_SIZE","set","update","digest","error","finished","state","DataView","p","bufferLength","bytesHashed","u","setUint8","hashBuffer","setUint32","Math","floor","getUint32","h0","h1","h2","h3","h4","block","Uint32Array","offset","shift","totalLength","pow","write","processBlock","temp","Int32Array","h","f","d","m","v","g","crypto","lib","url","querystring","realClock","environment","createEventStream","isBrowser","isNode","XML","Parser","browser","_process","Config","util","inherit","constructor","extractCredentials","each","keys","getCredentials","credentials","message","accessKeyId","secretAccessKey","credentialProvider","resolve","hasService","loadFromPath","clear","JSON","parse","readFileSync","FileSystemCredentials","CredentialProviderChain","providers","unshift","merge","region","logger","apiVersions","endpoint","httpOptions","timeout","maxRetries","maxRedirects","paramValidation","sslEnabled","s3ForcePathStyle","s3BucketEndpoint","s3DisableBodySigning","s3UsEast1RegionalEndpoint","s3UseArnRegion","computeChecksums","convertResponseTypes","correctClockSkew","customUserAgent","dynamoDbCrc32","systemClockOffset","signatureCache","retryDelayOptions","useAccelerateEndpoint","clientSideMonitoring","endpointDiscoveryEnabled","endpointCacheSize","hostPrefixEnabled","stsRegionalEndpoints","copy","setPromisesDependency","Promise","Request","S3","push","ManagedUpload","addPromises","getPromisesDependency","config","clientConfig","env","getProfilesFromSharedConfig","iniLoader","AWS_PROFILE","defaultProfile","sharedConfig","VERSION","Signers","Protocol","Json","Query","Rest","RestJson","RestXml","Builder","Model","Api","Operation","Shape","Paginator","ResourceWaiter","EndpointCache","events","SequentialExecutor","memoizedProperty","hideProperties","expired","expireTime","refreshCallbacks","sessionToken","expiryWindow","needsRefresh","date","getDate","getTime","Date","refresh","coalesceRefresh","load","arrayEach","defer","addPromisesToClass","getPromise","promisifyMethod","refreshPromise","deletePromisesFromClass","ChainableTemporaryCredentials","errorCode","tokenCodeFn","params","masterCredentials","stsConfig","service","fn","callback","getTokenCode","credentialsFrom","CognitoIdentityCredentials","localStorageKey","id","data","_identityId","_clientConfig","loadCachedId","createClients","getId","clearIdOnNotAuthorized","getCredentialsFromSTS","getCredentialsForIdentity","clearCachedId","LoginId","storage","cognito","loadCredentials","cacheId","getOpenIdToken","webIdentityCredentials","getStorage","split","filter","WebIdentityCredentials","setStorage","join","window","localStorage","defaultProviders","slice","resolveCallbacks","resolvePromise","SAMLCredentials","assumeRoleWithSAML","TemporaryCredentials","loadMasterCredentials","assumeRole","getSessionToken","assumeRoleWithWebIdentity","api","endpointDiscoveryId","isLocationName","String","operation","endpointCache","Address","httpRequest","updateEndpoint","makeRequest","endpointOperation","Identifiers","removeListener","EventListeners","Core","VALIDATE_PARAMETERS","RETRY_CHECK","put","CachePeriodInMinutes","send","Endpoints","getKeyString","request","response","retryable","remove","headers","httpResponse","statusCode","loadFrom","isConfig","filename","sharedConfigFileEnv","endpoint_discovery_enabled","discoverEndpoint","_originalConfig","serviceIdentifier","Boolean","isPresigned","endpointDiscoveryRequired","hasRequiredEndpointDiscovery","appendToUserAgent","addNamedListener","className","requiredDiscoverEndpoint","optionalDiscoverEndpoint","marshallCustomIdentifiers","getCacheKey","invalidateCachedEndpoint","eventMessageChunker","parseEvent","readInt32BE","isBuffer","bytes","toBuffer","fromNumber","abs","round","valueOf","parseInt","Int64","parseMessage","eventPayloadMemberName","body","eventHeaderMemberNames","toType","readUInt8","readInt8","readInt16BE","readUInt16BE","substr","splitMessage","readUInt32BE","crc32","addNamedListeners","isGlobalEndpoint","RegExp","test","idempotentMembers","uuid","v4","ParamValidator","validate","haltHandlersOnError","authtype","getSignerClass","V4","computeSha256","getRequestPayloadShape","string","isStreaming","requiresLength","Host","host","HttpRequest","retryCount","getSkewCorrectedDate","getSigningName","setServiceClientId","_clientId","Authorization","addAuthorization","signedAt","successfulResponse","stream","on","emit","streaming","HttpClient","streamsApiVersion","hasEventOutput","read","didCallback","hostname","getInstance","handleRequest","_abortCallback","statusMessage","buffers","numBytes","isClockSkewed","applyClockOffset","loaded","total","concat","retryableError","match","clockSkewError","Endpoint","redirect","redirectCount","retryDelay","retryDelays","setTimeout","CorePost","extractRequestId","errno","getSystemErrorName","originalError","Logger","isSensitive","startTime","isTTY","inspect","lowerFirst","log","buildRequest","extractData","extractError","urlParse","port","method","path","_userAgent","setUserAgent","getUserAgentHeaderName","userAgent","getUserAgent","pathname","search","queryStringParse","queryParamsToString","HttpResponse","createUnbufferedStream","singleton","EventEmitter","XHRClient","XMLHttpRequest","addEventListener","status","readyState","HEADERS_RECEIVED","parseHeaders","getAllResponseHeaders","statusText","DONE","finishRequest","upload","open","xhrAsync","setRequestHeader","xhrWithCredentials","withCredentials","responseType","substring","responseText","toWireFormat","build","stringify","property","timestampFormat","replace","endpointoperation","endpointdiscovery","create","waiters","documentation","documentationUrl","errors","isIdempotent","payload","isEventStream","more_results","result_key","forEach","y","enum","min","max","pattern","xmlName","queryName","isComposite","jsonvalue","sensitive","eventstream","event","eventpayload","eventheader","isTimestampFormatSet","endpointdiscoveryid","hostLabel","xmlAttribute","flattened","isShape","xmlOrder","memberNames","isEventPayload","isEventHeader","uri","isJsonValue","base64","decode","alloc","fill","encode","normalizedTypes","character","double","long","short","biginteger","bigdecimal","blob","types","structure","list","map","boolean","timestamp","toUTCString","parseTimestamp","format","float","parseFloat","integer","binary","StructureShape","ListShape","MapShape","StringShape","BooleanShape","Base64Shape","validation","validateMember","fail","validateStructure","validateType","validateList","validateMap","validateScalar","Array","validateRange","validateString","validatePayload","validateNumber","validateEnum","validatePattern","validateUri","isType","typeName","Stream","Blob","populateHostPrefix","hostPrefix","__type","Code","pop","Message","Version","Action","serialize","requestId","Errors","_XAMZRequestId","uriEscapePath","uriEscape","isArray","sort","httpMethod","httpPath","generateURI","AWS","toXML","upperFirst","isQueryName","toUpperCase","now","performance","configureEndpoint","rules","patterns","useDualstack","isDualstackAvailable","signingRegion","getEndpointSuffix","globalSSL","globalGovCloud","s3signature","domain","success","complete","setupStates","_haltHandlersOnError","_asm","currentState","Domain","domainEmitter","domainThrown","addState","active","Response","states","emitEvent","runTo","abort","removeAllListeners","eachPage","makeAsync","hasNextPage","nextPage","noop","eachItem","paginationConfig","resultKey","isPageable","createReadStream","PassThrough","nextTick","readable","sent","HTTP_DATA","HTTP_ERROR","isNaN","end","_write","unpipe","pipe","eventParameters","presign","Presign","sign","toGet","toUnauthenticated","_unAuthenticated","VALIDATE_CREDENTIALS","SIGN","buildAsGet","addListener","promise","mixin","jmespath","_waiter","acceptors","matchers","matcher","expected","argument","setSuccess","setError","loadWaiterConfig","strictDeepEqual","pathAll","pathAny","listeners","delay","wait","$waiter","maxAttempts","addListeners","numRetries","nextPageTokens","inputToken","cacheNextPageTokens","moreResults","outputToken","_events","onAsync","_isAsync","splice","callListeners","addNamedAsyncListener","loadServiceClass","initialize","validateService","endpointFromTemplate","setEndpoint","addDefaultMonitoringListeners","_clientSideMonitoring","publisher","eventHandler","isEmpty","apiConfig","defineServiceApi","getLatestServiceClass","getLatestServiceVersion","iso8601","defaultRetryCount","customizeRequests","customRequestHandler","addAllRequestListeners","attachMonitoringEmitter","makeUnauthenticatedRequest","waitFor","serviceInterface","setupRequestListeners","apiCallEvent","Region","MaxRetriesExceeded","UserAgent","FinalHttpStatusCode","FinalAwsException","FinalAwsExceptionMessage","FinalSdkException","FinalSdkExceptionMessage","apiAttemptEvent","Fqdn","HttpStatusCode","AccessKey","XAmznRequestId","XAmzRequestId","XAmzId2","attemptFailEvent","AwsException","AwsExceptionMessage","SdkException","SdkExceptionMessage","Timestamp","AttemptLatency","AttemptCount","Latency","RequestSigner","getVersion","calculateRetryDelay","timeoutError","networkingError","expiredCredentialsError","throttledError","paginator","defineMethods","_serviceMap","addVersions","Publisher","configProvider","enabled","isApi","getPrototypeOf","optInRegionalEndpoint","unixTimestamp","Signature","AWSAccessKeyId","Expires","SET_CONTENT_LENGTH","COMPUTE_SHA256","urlFormat","serviceClientId","getServiceClientId","V2","V3","V3Https","subResources","acl","accelerate","analytics","lifecycle","delete","inventory","logging","metrics","notification","partNumber","policy","requestPayment","replication","restore","tagging","torrent","uploadId","uploads","versionId","versioning","website","responseHeaders","rfc822","stringToSign","canonicalizedAmzHeaders","canonicalizedResource","virtualHostedBucket","decodeURIComponent","hmac","SignatureVersion","SignatureMethod","SecurityToken","signature","authorization","signedHeaders","headersToSign","canonicalHeaders","trim","sha256","serviceName","algorithm","updateForPresigned","addHeaders","credentialString","isSignableHeader","getSigningKey","hexEncodedHash","canonicalString","hexEncodedBodyHash","canonicalHeaderValues","createScope","unsignableHeaders","emptyCache","accept","engine","navigator","platform","AWS_EXECUTION_ENV","encodeURIComponent","escape","charCodeAt","from","toStream","Readable","_read","size","lstatSync","object","ini","toISOString","crc32Table","md5","arraySliceFn","FileReader","onerror","onload","result","_continueReading","readAsArrayBuffer","toHex","webkitSlice","mozSlice","stack","writable","time","__super__","hoistPayloadMember","start","ResponseMetadata","RequestId","customBackoff","base","random","handleRequestWithRetries","retryAfter","convertPayloadToString","configOptInEnv","sharedCredentialsFileEnv","ARN","partition","accountId","resource","imdsDisabledEnv","setImmediate","fs","timers","getElementsByTagName","parentNode","firstElementChild","nodeName","textContent","nextElementSibling","childNodes","getAttribute","isXmlAttribute","attributes","defaultValue","DOMParser","parseFromString","documentElement","ActiveXObject","async","loadXML","addAttribute","addChildNode","xmlNamespaceUri","xmlNamespacePrefix","XmlNode","XmlText","children","escapeAttribute","escapeElement","removeAttribute","toByteArray","fromByteArray","TYPED_ARRAY_SUPPORT","RangeError","__proto__","TypeError","isEncoding","Y","$","V","X","q","T","k","P","x","L","b","w","lastIndexOf","E","Number","S","G","_","W","C","A","R","K","J","Q","fromCharCode","I","H","O","N","U","D","M","j","Z","B","z","ee","F","SlowBuffer","INSPECT_MAX_BYTES","foo","subarray","kMaxLength","poolSize","_augment","Symbol","species","allocUnsafe","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","equals","includes","isFinite","toJSON","_arr","readUIntLE","readUIntBE","readUInt16LE","readUInt32LE","readIntLE","readIntBE","readInt16LE","readInt32LE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","global","self","ieee754","isarray","_maxListeners","defaultMaxListeners","setMaxListeners","context","newListener","listener","warned","console","trace","once","listenerCount","NaN","LN2","runtime","_interpreter","functionTable","_func","_functionAbs","_signature","avg","_functionAvg","ceil","_functionCeil","contains","_functionContains","ends_with","_functionEndsWith","_functionFloor","_functionLength","_functionMap","_functionMax","_functionMerge","variadic","max_by","_functionMaxBy","sum","_functionSum","starts_with","_functionStartsWith","_functionMin","min_by","_functionMinBy","_functionType","_functionKeys","values","_functionValues","_functionSort","sort_by","_functionSortBy","_functionJoin","reverse","_functionReverse","to_array","_functionToArray","to_string","_functionToString","to_number","_functionToNumber","not_null","_functionNotNull","trimLeft","tokenize","_current","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","_consumeLiteral","_consumeOperator","_looksLikeJSON","_loadTokens","index","expression","_lookahead","_lookaheadToken","tokens","_advance","nud","led","Not","_parseProjectionRHS","Star","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_match","_errorToken","Dot","_parseDotRHS","Pipe","Or","And","Filter","_parseComparator","_parseSliceExpression","visit","computeSliceParams","callFunction","jmespathType","capSliceRange","_validateArgs","_getTypeName","_typeMatches","localeCompare","createKeyFunction","compile","run","clearTimeout","fun","array","title","argv","off","prependListener","prependOnceListener","binding","cwd","chdir","umask","nodeType","overflow","ucs2","toASCII","toUnicode","define","punycode","maxKeys","_id","_clearFn","Function","setInterval","clearInterval","close","unref","ref","enroll","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","slashes","auth","query","href","resolveObject","javascript","https","ftp","gopher","file","exec","parseHost","charAt","super_","seen","stylize","depth","colors","showHidden","_extend","customInspect","styles","getOwnPropertyNames","reduce","getOwnPropertyDescriptor","getHours","getMinutes","getSeconds","getMonth","deprecate","process","noDeprecation","throwDeprecation","traceDeprecation","debuglog","NODE_DEBUG","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","number","undefined","null","regexp","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","isObject","isDate","isError","isFunction","isPrimitive","inherits","v1","getRandomValues","bind","msCrypto","node","clockseq","msecs","nsecs","rng","maxSize","cache","LRUCache","populateValue","Expire","empty","nodeMap","sizeLimit","prependToList","headerNode","prev","next","tailNode","removeFromTail","detachFromList","module","getRawTag","objectToString","symToStringTag","toStringTag","trimmedEndIndex","reTrimStart","freeGlobal","objectProto","nativeObjectToString","isOwn","tag","unmasked","freeSelf","root","reWhitespace","toNumber","nativeMax","nativeMin","func","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","args","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","cancel","flush","baseGetTag","isObjectLike","debounce","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","other","isBinary","re","not_string","not_bool","not_type","not_primitive","numeric_arg","json","not_json","text","modulo","placeholder","key_access","index_access","sprintf","sprintf_format","sprintf_parse","vsprintf","fmt","parse_tree","arg","ph","pad","pad_character","pad_length","is_positive","cursor","tree_length","param_no","width","precision","toExponential","toFixed","toPrecision","pad_char","repeat","align","sprintf_cache","_fmt","arg_names","SyntaxError","field_list","replacement_field","field_match","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","getter","__esModule","definition","obj","prop","ValueError","super","UnImplementedMethodException","IllegalArgumentException","GlobalConfig","stage","reconnect","features","Proxy","target","oldVal","feature","featureChangeListeners","_cleanFeatureChangeListener","configInput","endpointOverride","messageReceiptThrottleTime","throttleTime","updateStageRegion","updateThrottleTime","getMessageReceiptsThrottleTime","getStage","getRegion","getEndpointOverride","setFeatureFlag","isFeatureEnabled","featureValues","_registerFeatureChangeListener","FEATURES","SESSION_TYPES","AGENT","CUSTOMER","CSM_CATEGORY","ACPS_METHODS","WEBSOCKET_EVENTS","CHAT_EVENTS","INCOMING_MESSAGE","INCOMING_TYPING","INCOMING_READ_RECEIPT","INCOMING_DELIVERED_RECEIPT","CONNECTION_ESTABLISHED","CONNECTION_LOST","CONNECTION_BROKEN","CONNECTION_ACK","CHAT_ENDED","MESSAGE_METADATA","PARTICIPANT_IDLE","PARTICIPANT_RETURNED","AUTODISCONNECTION","CONTENT_TYPE","textPlain","textMarkdown","textCsv","applicationDoc","applicationDocx","applicationJson","applicationPdf","applicationPpt","applicationPptx","applicationXls","applicationXlsx","imageJpg","imagePng","audioWav","audioXWav","audioVndWave","connectionAcknowledged","typing","participantJoined","participantLeft","participantActive","participantInactive","transferSucceeded","transferFailed","chatEnded","interactiveMessage","interactiveMessageResponse","readReceipt","deliveredReceipt","participantIdle","participantReturned","autoDisconnection","CHAT_EVENT_TYPE_MAPPING","default","TRANSPORT_LIFETIME_IN_SECONDS","Utils","premise","assertTrue","allowedValues","enumObj","find","predicate","assertNotNull","ms","interval","count","catch","then","asyncWhileInterval","reject","contentType","LogLevel","DEBUG","INFO","WARN","ERROR","ADVANCED_LOG","LogManager","updateLoggerConfig","writeToClientLogger","level","logStatement","logMetaData","hasClientLogger","levelStringValue","getLogLevelByValue","_clientLogger","debug","info","warn","_advancedLogWriter","isLevelEnabled","_level","getLogger","LoggerWrapperImpl","inputConfig","advancedLogVal","customizedLogger","customizedLoggerKeys","defaultLoggerKeys","isValidAdvancedLogConfig","advancedLogWriter","useClientLogger","selectLogger","useDefaultLogger","createConsoleLogger","LoggerWrapper","_log","advancedLog","_shouldLog","_writeToClientLogger","_convertToSingleStatement","_convertToString","toStringResult","AWSChatClient","sendMessage","participantToken","sendAttachment","attachment","downloadAttachment","attachmentId","disconnectParticipant","sendEvent","connectionToken","content","createParticipantConnection","throttle","_submitEvent","creds","chatClient","invokeUrl","acknowledgeConnection","createParticipantConnectionRequest","_sendRequest","res","sendInternalLogToServer","err","disconnectParticipantRequest","getTranscript","maxResults","nextToken","scanDirection","sortOrder","startPosition","absoluteTime","mostRecent","contactId","getTranscriptRequest","sendMessageRequest","logContent","startUploadRequestParams","startUploadRequest","startAttachmentUpload","startUploadResponse","_uploadToS3","completeUploadRequestParams","completeUploadRequest","completeAttachmentUpload","fetch","getAttachmentRequest","getAttachment","_downloadUrl","throttleEvent","sendEventRequest","errObj","ChatClientFactory","clientCache","getCachedClient","optionsInput","assign","client","_createAwsClient","endpointUrl","ChatServiceArgsValidator","validateNewControllerDetails","chatDetails","validateSendMessage","validateContentType","validateConnectChat","validateLogger","methodName","validateSendEvent","validateGetMessages","validateChatDetails","sessionType","getConnectionToken","participantId","validateInitiateChatResponse","normalizeChatDetails","chatDetailsInput","initialContactId","GetConnectionToken","ConnectionHelperStatus","ConnectionHelperEvents","ALL_EVENTS","Subscription","subMap","eventName","unsubscribe","SubscriptionMap","subIdMap","subEventNameMap","subscribe","sub","subList","subId","getAllSubscriptions","getSubscriptions","EventBus","paramsIn","logEvents","subscribeAll","trigger","allEventSubs","eventSubs","triggerAsync","bridge","unsubscribeAll","DIMENSION_CATEGORY","csmService","widgetType","csmInitialized","metricsToBePublished","agentMetricToBePublished","MAX_RETRY","loadCsmScriptAndExecute","script","document","createElement","innerHTML","head","appendChild","initializeCSM","csmWorkerText","sharedWorkerBlobUrl","URL","createObjectURL","ldasEndpoint","getLdasEndpointUrl","namespace","sharedWorkerUrl","csm","initCSM","metric","API","addMetric","updateCsmConfig","csmConfig","getDefaultDimensions","setDimensions","dimensions","dimension","addDimension","addLatencyMetric","timeDifference","category","otherDimensions","latencyMetric","Metric","UNIT","MILLISECONDS","addLatencyMetricWithStartTime","addCountAndErrorMetric","countMetric","COUNT","errorCount","errorMetric","addCountMetric","addAgentCountMetric","metricName","_self","addCount","metricItem","ConnectionDetailsProvider","connectionDetails","connectionTokenExpiry","getFetchedConnectionToken","getConnectionTokenExpiry","getConnectionDetails","fetchConnectionDetails","_fetchConnectionDetails","_handleCreateParticipantConnectionResponse","expiry","transportLifeTimeInSeconds","_handleGetConnectionTokenResponse","connectionTokenDetails","callCreateParticipantConnection","_addParticipantConnectionMetric","reason","_debug","chatTokenTransport","errorMessage","LpcConnectionHelper","connectionDetailsProvider","isStarted","startConnectionTokenPolling","getTimeToConnectionTokenExpiry","websocketManager","customerConnection","customerBaseInstances","LpcConnectionHelperBase","baseInstance","agentBaseInstance","getWebsocketManager","eventBus","subscriptions","onEnded","handleEnded","onConnectionGain","handleConnectionGain","onConnectionLost","handleConnectionLost","onMessage","handleMessage","tryCleanup","hasMessageSubscribers","getStatus","handler","initialConnectionDetails","initWebsocketManager","WebSocketManager","subscribeTopics","onInitFailure","init","_getConnectionDetails","webSocketTransport","details","_addWebsocketInitCSMMetric","closeWebSocket","websocketStatus","parsedMessage","_sendInternalLogToServer","logEntry","MessageReceiptsUtil","timeoutId","readSet","Set","deliveredSet","readPromiseMap","Map","deliveredPromiseMap","lastReadArgs","throttleInitialEventsToPrioritizeRead","throttleSendEventApiCall","isMessageReceipt","eventType","incomingData","getEventTypeFromMessageMetaData","messageMetadata","shouldShowMessageReceiptForCurrentParticipantId","currentParticipantId","prioritizeAndSendMessageReceipt","ChatClientContext","messageId","has","returnPromise","rej","add","resolveDeliveredPromises","resolveReadPromises","disableThrottle","sendMessageReceipts","Err","sendEventPromise","PromiseArr","contentVal","readEventMessageId","all","resolvePromises","promiseMap","arr","indexToResolve","callbackFn","rehydrateReceiptMappers","shouldSendMessageReceipts","transcript","Receipt","ChatController","argsValidator","pubsub","_participantDisconnected","sessionMetadata","messageReceiptUtil","handleRequestSuccess","contentTypeDimension","handleRequestFailure","connectionHelper","getEventTypeFromContentType","parsedContent","inputArgs","_getConnectionDetailsProvider","_initConnectionHelper","_onConnectSuccess","_onConnectFailure","_handleEndedConnection","_handleLostConnection","_handleGainedConnection","_handleIncomingMessage","eventData","_forwardChatEvent","getChatDetails","breakConnection","responseObject","connectSuccess","connectCalled","_shouldAcknowledgeContact","errorObject","cleanUpOnParticipantDisconnect","_convertConnectionHelperStatus","connectionHelperStatus","getConnectionStatus","ChatSession","controller","onTyping","onReadReceipt","onDeliveredReceipt","onConnectionBroken","onConnectionEstablished","onParticipantIdle","onParticipantReturned","onAutoDisconnection","AgentChatSession","CustomerChatSession","CHAT_SESSION_FACTORY","createAgentChatController","participantType","createCustomerChatController","createChatSession","chatController","_createChatController","ChatSessionObject","disableCSM","setGlobalConfig","loggerConfig","messageReceipts","thorttleTime","SessionTypes"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"amazon-connect-chat.js","mappings":"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","sources":["webpack://amazon-connect-chatjs/./src/client/aws-sdk-connectparticipant.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_Symbol.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_baseGetTag.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_baseTrim.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_freeGlobal.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_getRawTag.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_objectToString.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_root.js","webpack://amazon-connect-chatjs/./node_modules/lodash/_trimmedEndIndex.js","webpack://amazon-connect-chatjs/./node_modules/lodash/debounce.js","webpack://amazon-connect-chatjs/./node_modules/lodash/isObject.js","webpack://amazon-connect-chatjs/./node_modules/lodash/isObjectLike.js","webpack://amazon-connect-chatjs/./node_modules/lodash/isSymbol.js","webpack://amazon-connect-chatjs/./node_modules/lodash/now.js","webpack://amazon-connect-chatjs/./node_modules/lodash/throttle.js","webpack://amazon-connect-chatjs/./node_modules/lodash/toNumber.js","webpack://amazon-connect-chatjs/./node_modules/sprintf-js/src/sprintf.js","webpack://amazon-connect-chatjs/webpack/bootstrap","webpack://amazon-connect-chatjs/webpack/runtime/amd options","webpack://amazon-connect-chatjs/webpack/runtime/compat get default export","webpack://amazon-connect-chatjs/webpack/runtime/define property getters","webpack://amazon-connect-chatjs/webpack/runtime/hasOwnProperty shorthand","webpack://amazon-connect-chatjs/./src/core/exceptions.js","webpack://amazon-connect-chatjs/./src/globalConfig.js","webpack://amazon-connect-chatjs/./src/constants.js","webpack://amazon-connect-chatjs/./src/utils.js","webpack://amazon-connect-chatjs/./src/log.js","webpack://amazon-connect-chatjs/./src/client/client.js","webpack://amazon-connect-chatjs/./src/core/chatArgsValidator.js","webpack://amazon-connect-chatjs/./src/core/connectionHelpers/baseConnectionHelper.js","webpack://amazon-connect-chatjs/./src/core/eventbus.js","webpack://amazon-connect-chatjs/./src/configs/csmConfig.js","webpack://amazon-connect-chatjs/./src/service/csmService.js","webpack://amazon-connect-chatjs/./src/lib/connect-csm.js","webpack://amazon-connect-chatjs/./src/lib/connect-csm-worker.js","webpack://amazon-connect-chatjs/./src/core/connectionHelpers/connectionDetailsProvider.js","webpack://amazon-connect-chatjs/../../webpack/bootstrap","webpack://amazon-connect-chatjs/./src/core/connectionHelpers/LpcConnectionHelper.js","webpack://amazon-connect-chatjs/./src/core/MessageReceiptsUtil.js","webpack://amazon-connect-chatjs/./src/core/chatController.js","webpack://amazon-connect-chatjs/./src/core/chatSession.js","webpack://amazon-connect-chatjs/./src/index.js"],"sourcesContent":["// AWS SDK for JavaScript v2.772.0\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// License at https://sdk.amazonaws.com/js/BUNDLE_LICENSE.txt\n!function(){function e(t,r,n){function i(s,a){if(!r[s]){if(!t[s]){var u=\"function\"==typeof require&&require;if(!a&&u)return u(s,!0);if(o)return o(s,!0);var c=new Error(\"Cannot find module '\"+s+\"'\");throw c.code=\"MODULE_NOT_FOUND\",c}var l=r[s]={exports:{}};t[s][0].call(l.exports,function(e){return i(t[s][1][e]||e)},l,l.exports,e,t,r,n)}return r[s].exports}for(var o=\"function\"==typeof require&&require,s=0;s-1});var s=[\"[object Int8Array]\",\"[object Uint8Array]\",\"[object Uint8ClampedArray]\",\"[object Int16Array]\",\"[object Uint16Array]\",\"[object Int32Array]\",\"[object Uint32Array]\",\"[object Float32Array]\",\"[object Float64Array]\",\"[object DataView]\"];t.exports={isEmptyData:n,convertToBuffer:i}},{\"buffer/\":82}],13:[function(e,t,r){function n(e,t){this.hash=new e,this.outer=new e;var r=i(e,t),n=new Uint8Array(e.BLOCK_SIZE);n.set(r);for(var o=0;oe.BLOCK_SIZE){var n=new e;n.update(r),r=n.digest()}var i=new Uint8Array(e.BLOCK_SIZE);return i.set(r),i}var o=e(\"./browserHashUtils\");t.exports=n,n.prototype.update=function(e){if(o.isEmptyData(e)||this.error)return this;try{this.hash.update(o.convertToBuffer(e))}catch(e){this.error=e}return this},n.prototype.digest=function(e){return this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest(e)}},{\"./browserHashUtils\":12}],14:[function(e,t,r){function n(){this.state=[1732584193,4023233417,2562383102,271733878],this.buffer=new DataView(new ArrayBuffer(p)),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}function i(e,t,r,n,i,o){return((t=(t+e&4294967295)+(n+o&4294967295)&4294967295)<>>32-i)+r&4294967295}function o(e,t,r,n,o,s,a){return i(t&r|~t&n,e,t,o,s,a)}function s(e,t,r,n,o,s,a){return i(t&n|r&~n,e,t,o,s,a)}function a(e,t,r,n,o,s,a){return i(t^r^n,e,t,o,s,a)}function u(e,t,r,n,o,s,a){return i(r^(t|~n),e,t,o,s,a)}var c=e(\"./browserHashUtils\"),l=e(\"buffer/\").Buffer,p=64;t.exports=n,n.BLOCK_SIZE=p,n.prototype.update=function(e){if(c.isEmptyData(e))return this;if(this.finished)throw new Error(\"Attempted to update an already finished hash.\");var t=c.convertToBuffer(e),r=0,n=t.byteLength;for(this.bytesHashed+=n;n>0;)this.buffer.setUint8(this.bufferLength++,t[r++]),n--,this.bufferLength===p&&(this.hashBuffer(),this.bufferLength=0);return this},n.prototype.digest=function(e){if(!this.finished){var t=this,r=t.buffer,n=t.bufferLength,i=t.bytesHashed,o=8*i;if(r.setUint8(this.bufferLength++,128),n%p>=p-8){for(var s=this.bufferLength;s>>0,!0),r.setUint32(p-4,Math.floor(o/4294967296),!0),this.hashBuffer(),this.finished=!0}for(var a=new DataView(new ArrayBuffer(16)),s=0;s<4;s++)a.setUint32(4*s,this.state[s],!0);var u=new l(a.buffer,a.byteOffset,a.byteLength);return e?u.toString(e):u},n.prototype.hashBuffer=function(){var e=this,t=e.buffer,r=e.state,n=r[0],i=r[1],c=r[2],l=r[3];n=o(n,i,c,l,t.getUint32(0,!0),7,3614090360),l=o(l,n,i,c,t.getUint32(4,!0),12,3905402710),c=o(c,l,n,i,t.getUint32(8,!0),17,606105819),i=o(i,c,l,n,t.getUint32(12,!0),22,3250441966),n=o(n,i,c,l,t.getUint32(16,!0),7,4118548399),l=o(l,n,i,c,t.getUint32(20,!0),12,1200080426),c=o(c,l,n,i,t.getUint32(24,!0),17,2821735955),i=o(i,c,l,n,t.getUint32(28,!0),22,4249261313),n=o(n,i,c,l,t.getUint32(32,!0),7,1770035416),l=o(l,n,i,c,t.getUint32(36,!0),12,2336552879),c=o(c,l,n,i,t.getUint32(40,!0),17,4294925233),i=o(i,c,l,n,t.getUint32(44,!0),22,2304563134),n=o(n,i,c,l,t.getUint32(48,!0),7,1804603682),l=o(l,n,i,c,t.getUint32(52,!0),12,4254626195),c=o(c,l,n,i,t.getUint32(56,!0),17,2792965006),i=o(i,c,l,n,t.getUint32(60,!0),22,1236535329),n=s(n,i,c,l,t.getUint32(4,!0),5,4129170786),l=s(l,n,i,c,t.getUint32(24,!0),9,3225465664),c=s(c,l,n,i,t.getUint32(44,!0),14,643717713),i=s(i,c,l,n,t.getUint32(0,!0),20,3921069994),n=s(n,i,c,l,t.getUint32(20,!0),5,3593408605),l=s(l,n,i,c,t.getUint32(40,!0),9,38016083),c=s(c,l,n,i,t.getUint32(60,!0),14,3634488961),i=s(i,c,l,n,t.getUint32(16,!0),20,3889429448),n=s(n,i,c,l,t.getUint32(36,!0),5,568446438),l=s(l,n,i,c,t.getUint32(56,!0),9,3275163606),c=s(c,l,n,i,t.getUint32(12,!0),14,4107603335),i=s(i,c,l,n,t.getUint32(32,!0),20,1163531501),n=s(n,i,c,l,t.getUint32(52,!0),5,2850285829),l=s(l,n,i,c,t.getUint32(8,!0),9,4243563512),c=s(c,l,n,i,t.getUint32(28,!0),14,1735328473),i=s(i,c,l,n,t.getUint32(48,!0),20,2368359562),n=a(n,i,c,l,t.getUint32(20,!0),4,4294588738),l=a(l,n,i,c,t.getUint32(32,!0),11,2272392833),c=a(c,l,n,i,t.getUint32(44,!0),16,1839030562),i=a(i,c,l,n,t.getUint32(56,!0),23,4259657740),n=a(n,i,c,l,t.getUint32(4,!0),4,2763975236),l=a(l,n,i,c,t.getUint32(16,!0),11,1272893353),c=a(c,l,n,i,t.getUint32(28,!0),16,4139469664),i=a(i,c,l,n,t.getUint32(40,!0),23,3200236656),n=a(n,i,c,l,t.getUint32(52,!0),4,681279174),l=a(l,n,i,c,t.getUint32(0,!0),11,3936430074),c=a(c,l,n,i,t.getUint32(12,!0),16,3572445317),i=a(i,c,l,n,t.getUint32(24,!0),23,76029189),n=a(n,i,c,l,t.getUint32(36,!0),4,3654602809),l=a(l,n,i,c,t.getUint32(48,!0),11,3873151461),c=a(c,l,n,i,t.getUint32(60,!0),16,530742520),i=a(i,c,l,n,t.getUint32(8,!0),23,3299628645),n=u(n,i,c,l,t.getUint32(0,!0),6,4096336452),l=u(l,n,i,c,t.getUint32(28,!0),10,1126891415),c=u(c,l,n,i,t.getUint32(56,!0),15,2878612391),i=u(i,c,l,n,t.getUint32(20,!0),21,4237533241),n=u(n,i,c,l,t.getUint32(48,!0),6,1700485571),\nl=u(l,n,i,c,t.getUint32(12,!0),10,2399980690),c=u(c,l,n,i,t.getUint32(40,!0),15,4293915773),i=u(i,c,l,n,t.getUint32(4,!0),21,2240044497),n=u(n,i,c,l,t.getUint32(32,!0),6,1873313359),l=u(l,n,i,c,t.getUint32(60,!0),10,4264355552),c=u(c,l,n,i,t.getUint32(24,!0),15,2734768916),i=u(i,c,l,n,t.getUint32(52,!0),21,1309151649),n=u(n,i,c,l,t.getUint32(16,!0),6,4149444226),l=u(l,n,i,c,t.getUint32(44,!0),10,3174756917),c=u(c,l,n,i,t.getUint32(8,!0),15,718787259),i=u(i,c,l,n,t.getUint32(36,!0),21,3951481745),r[0]=n+r[0]&4294967295,r[1]=i+r[1]&4294967295,r[2]=c+r[2]&4294967295,r[3]=l+r[3]&4294967295}},{\"./browserHashUtils\":12,\"buffer/\":82}],15:[function(e,t,r){function n(){this.h0=1732584193,this.h1=4023233417,this.h2=2562383102,this.h3=271733878,this.h4=3285377520,this.block=new Uint32Array(80),this.offset=0,this.shift=24,this.totalLength=0}var i=e(\"buffer/\").Buffer,o=e(\"./browserHashUtils\");new Uint32Array([1518500249,1859775393,-1894007588,-899497514]),Math.pow(2,53);t.exports=n,n.BLOCK_SIZE=64,n.prototype.update=function(e){if(this.finished)throw new Error(\"Attempted to update an already finished hash.\");if(o.isEmptyData(e))return this;e=o.convertToBuffer(e);var t=e.length;this.totalLength+=8*t;for(var r=0;r14||14===this.offset&&this.shift<24)&&this.processBlock(),this.offset=14,this.shift=24,this.write(0),this.write(0),this.write(this.totalLength>0xffffffffff?this.totalLength/1099511627776:0),this.write(this.totalLength>4294967295?this.totalLength/4294967296:0);for(var t=24;t>=0;t-=8)this.write(this.totalLength>>t);var r=new i(20),n=new DataView(r.buffer);return n.setUint32(0,this.h0,!1),n.setUint32(4,this.h1,!1),n.setUint32(8,this.h2,!1),n.setUint32(12,this.h3,!1),n.setUint32(16,this.h4,!1),e?r.toString(e):r},n.prototype.processBlock=function(){for(var e=16;e<80;e++){var t=this.block[e-3]^this.block[e-8]^this.block[e-14]^this.block[e-16];this.block[e]=t<<1|t>>>31}var r,n,i=this.h0,o=this.h1,s=this.h2,a=this.h3,u=this.h4;for(e=0;e<80;e++){e<20?(r=a^o&(s^a),n=1518500249):e<40?(r=o^s^a,n=1859775393):e<60?(r=o&s|a&(o|s),n=2400959708):(r=o^s^a,n=3395469782);var c=(i<<5|i>>>27)+r+u+n+(0|this.block[e]);u=a,a=s,s=o<<30|o>>>2,o=i,i=c}for(this.h0=this.h0+i|0,this.h1=this.h1+o|0,this.h2=this.h2+s|0,this.h3=this.h3+a|0,this.h4=this.h4+u|0,this.offset=0,e=0;e<16;e++)this.block[e]=0}},{\"./browserHashUtils\":12,\"buffer/\":82}],16:[function(e,t,r){function n(){this.state=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}var i=e(\"buffer/\").Buffer,o=e(\"./browserHashUtils\"),s=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),a=Math.pow(2,53)-1;t.exports=n,n.BLOCK_SIZE=64,n.prototype.update=function(e){if(this.finished)throw new Error(\"Attempted to update an already finished hash.\");if(o.isEmptyData(e))return this;e=o.convertToBuffer(e);var t=0,r=e.byteLength;if(this.bytesHashed+=r,8*this.bytesHashed>a)throw new Error(\"Cannot hash more than 2^53 - 1 bits\");for(;r>0;)this.buffer[this.bufferLength++]=e[t++],r--,64===this.bufferLength&&(this.hashBuffer(),this.bufferLength=0);return this},n.prototype.digest=function(e){if(!this.finished){var t=8*this.bytesHashed,r=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(r.setUint8(this.bufferLength++,128),n%64>=56){for(var o=this.bufferLength;o<64;o++)r.setUint8(o,0);this.hashBuffer(),this.bufferLength=0}for(var o=this.bufferLength;o<56;o++)r.setUint8(o,0);r.setUint32(56,Math.floor(t/4294967296),!0),r.setUint32(60,t),this.hashBuffer(),this.finished=!0}for(var s=new i(32),o=0;o<8;o++)s[4*o]=this.state[o]>>>24&255,s[4*o+1]=this.state[o]>>>16&255,s[4*o+2]=this.state[o]>>>8&255,s[4*o+3]=this.state[o]>>>0&255;return e?s.toString(e):s},n.prototype.hashBuffer=function(){for(var e=this,t=e.buffer,r=e.state,n=r[0],i=r[1],o=r[2],a=r[3],u=r[4],c=r[5],l=r[6],p=r[7],h=0;h<64;h++){if(h<16)this.temp[h]=(255&t[4*h])<<24|(255&t[4*h+1])<<16|(255&t[4*h+2])<<8|255&t[4*h+3];else{var f=this.temp[h-2],d=(f>>>17|f<<15)^(f>>>19|f<<13)^f>>>10;f=this.temp[h-15];var m=(f>>>7|f<<25)^(f>>>18|f<<14)^f>>>3;this.temp[h]=(d+this.temp[h-7]|0)+(m+this.temp[h-16]|0)}var v=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&c^~u&l)|0)+(p+(s[h]+this.temp[h]|0)|0)|0,g=((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+(n&i^n&o^i&o)|0;p=l,l=c,c=u,u=a+v|0,a=o,o=i,i=n,n=v+g|0}r[0]+=n,r[1]+=i,r[2]+=o,r[3]+=a,r[4]+=u,r[5]+=c,r[6]+=l,r[7]+=p}},{\"./browserHashUtils\":12,\"buffer/\":82}],17:[function(e,t,r){(function(r){(function(){var r=e(\"./util\");r.crypto.lib=e(\"./browserCryptoLib\"),r.Buffer=e(\"buffer/\").Buffer,r.url=e(\"url/\"),r.querystring=e(\"querystring/\"),r.realClock=e(\"./realclock/browserClock\"),r.environment=\"js\",r.createEventStream=e(\"./event-stream/buffered-create-event-stream\").createEventStream,r.isBrowser=function(){return!0},r.isNode=function(){return!1};var n=e(\"./core\");if(t.exports=n,e(\"./credentials\"),e(\"./credentials/credential_provider_chain\"),e(\"./credentials/temporary_credentials\"),e(\"./credentials/chainable_temporary_credentials\"),e(\"./credentials/web_identity_credentials\"),e(\"./credentials/cognito_identity_credentials\"),e(\"./credentials/saml_credentials\"),n.XML.Parser=e(\"./xml/browser_parser\"),e(\"./http/xhr\"),void 0===i)var i={browser:!0}}).call(this)}).call(this,e(\"_process\"))},{\"./browserCryptoLib\":11,\"./core\":20,\"./credentials\":21,\"./credentials/chainable_temporary_credentials\":22,\"./credentials/cognito_identity_credentials\":23,\"./credentials/credential_provider_chain\":24,\"./credentials/saml_credentials\":25,\"./credentials/temporary_credentials\":26,\"./credentials/web_identity_credentials\":27,\"./event-stream/buffered-create-event-stream\":29,\"./http/xhr\":37,\"./realclock/browserClock\":54,\"./util\":73,\"./xml/browser_parser\":74,_process:87,\"buffer/\":82,\"querystring/\":94,\"url/\":96}],18:[function(e,t,r){var n=e(\"./core\");e(\"./credentials\"),e(\"./credentials/credential_provider_chain\");var i;n.Config=n.util.inherit({constructor:function(e){void 0===e&&(e={}),e=this.extractCredentials(e),n.util.each.call(this,this.keys,function(t,r){this.set(t,e[t],r)})},getCredentials:function(e){function t(t){e(t,t?null:i.credentials)}function r(e,t){return new n.util.error(t||new Error,{code:\"CredentialsError\",message:e,name:\"CredentialsError\"})}var i=this;i.credentials?\"function\"==typeof i.credentials.get?function(){i.credentials.get(function(e){e&&(e=r(\"Could not load credentials from \"+i.credentials.constructor.name,e)),t(e)})}():function(){var e=null;i.credentials.accessKeyId&&i.credentials.secretAccessKey||(e=r(\"Missing credentials\")),t(e)}():i.credentialProvider?i.credentialProvider.resolve(function(e,n){e&&(e=r(\"Could not load credentials from any providers\",e)),i.credentials=n,t(e)}):t(r(\"No credentials to load\"))},update:function(e,t){t=t||!1,e=this.extractCredentials(e),n.util.each.call(this,e,function(e,r){(t||Object.prototype.hasOwnProperty.call(this.keys,e)||n.Service.hasService(e))&&this.set(e,r)})},loadFromPath:function(e){this.clear();var t=JSON.parse(n.util.readFileSync(e)),r=new n.FileSystemCredentials(e),i=new n.CredentialProviderChain;return i.providers.unshift(r),i.resolve(function(e,r){if(e)throw e;t.credentials=r}),this.constructor(t),this},clear:function(){n.util.each.call(this,this.keys,function(e){delete this[e]}),this.set(\"credentials\",void 0),this.set(\"credentialProvider\",void 0)},set:function(e,t,r){void 0===t?(void 0===r&&(r=this.keys[e]),this[e]=\"function\"==typeof r?r.call(this):r):\"httpOptions\"===e&&this[e]?this[e]=n.util.merge(this[e],t):this[e]=t},keys:{credentials:null,credentialProvider:null,region:null,logger:null,apiVersions:{},apiVersion:null,endpoint:void 0,httpOptions:{timeout:12e4},maxRetries:void 0,maxRedirects:10,paramValidation:!0,sslEnabled:!0,s3ForcePathStyle:!1,s3BucketEndpoint:!1,s3DisableBodySigning:!0,s3UsEast1RegionalEndpoint:\"legacy\",s3UseArnRegion:void 0,computeChecksums:!0,convertResponseTypes:!0,correctClockSkew:!1,customUserAgent:null,dynamoDbCrc32:!0,systemClockOffset:0,signatureVersion:null,signatureCache:!0,retryDelayOptions:{},useAccelerateEndpoint:!1,clientSideMonitoring:!1,endpointDiscoveryEnabled:void 0,endpointCacheSize:1e3,hostPrefixEnabled:!0,stsRegionalEndpoints:\"legacy\"},extractCredentials:function(e){return e.accessKeyId&&e.secretAccessKey&&(e=n.util.copy(e),e.credentials=new n.Credentials(e)),e},setPromisesDependency:function(e){i=e,null===e&&\"function\"==typeof Promise&&(i=Promise);var t=[n.Request,n.Credentials,n.CredentialProviderChain];n.S3&&(t.push(n.S3),n.S3.ManagedUpload&&t.push(n.S3.ManagedUpload)),n.util.addPromises(t,i)},getPromisesDependency:function(){return i}}),n.config=new n.Config},{\"./core\":20,\"./credentials\":21,\"./credentials/credential_provider_chain\":24}],19:[function(e,t,r){(function(r){(function(){function n(e,t){if(\"string\"==typeof e){if([\"legacy\",\"regional\"].indexOf(e.toLowerCase())>=0)return e.toLowerCase();throw o.util.error(new Error,t)}}function i(e,t){e=e||{};var i;if(e[t.clientConfig]&&(i=n(e[t.clientConfig],{code:\"InvalidConfiguration\",message:'invalid \"'+t.clientConfig+'\" configuration. Expect \"legacy\" or \"regional\". Got \"'+e[t.clientConfig]+'\".'})))return i;if(!o.util.isNode())return i;if(Object.prototype.hasOwnProperty.call(r.env,t.env)){if(i=n(r.env[t.env],{code:\"InvalidEnvironmentalVariable\",message:\"invalid \"+t.env+' environmental variable. Expect \"legacy\" or \"regional\". Got \"'+r.env[t.env]+'\".'}))return i}var s={};try{s=o.util.getProfilesFromSharedConfig(o.util.iniLoader)[r.env.AWS_PROFILE||o.util.defaultProfile]}catch(e){}if(s&&Object.prototype.hasOwnProperty.call(s,t.sharedConfig)){if(i=n(s[t.sharedConfig],{code:\"InvalidConfiguration\",message:\"invalid \"+t.sharedConfig+' profile config. Expect \"legacy\" or \"regional\". Got \"'+s[t.sharedConfig]+'\".'}))return i}return i}var o=e(\"./core\");t.exports=i}).call(this)}).call(this,e(\"_process\"))},{\"./core\":20,_process:87}],20:[function(e,t,r){var n={util:e(\"./util\")};({}).toString(),t.exports=n,n.util.update(n,{VERSION:\"2.772.0\",Signers:{},Protocol:{Json:e(\"./protocol/json\"),Query:e(\"./protocol/query\"),Rest:e(\"./protocol/rest\"),RestJson:e(\"./protocol/rest_json\"),RestXml:e(\"./protocol/rest_xml\")},XML:{Builder:e(\"./xml/builder\"),Parser:null},JSON:{Builder:e(\"./json/builder\"),Parser:e(\"./json/parser\")},Model:{Api:e(\"./model/api\"),Operation:e(\"./model/operation\"),Shape:e(\"./model/shape\"),Paginator:e(\"./model/paginator\"),ResourceWaiter:e(\"./model/resource_waiter\")},apiLoader:e(\"./api_loader\"),EndpointCache:e(\"../vendor/endpoint-cache\").EndpointCache}),e(\"./sequential_executor\"),e(\"./service\"),e(\"./config\"),e(\"./http\"),e(\"./event_listeners\"),e(\"./request\"),e(\"./response\"),e(\"./resource_waiter\"),e(\"./signers/request_signer\"),e(\"./param_validator\"),n.events=new n.SequentialExecutor,n.util.memoizedProperty(n,\"endpointCache\",function(){return new n.EndpointCache(n.config.endpointCacheSize)},!0)},{\"../vendor/endpoint-cache\":105,\"./api_loader\":10,\"./config\":18,\"./event_listeners\":35,\"./http\":36,\"./json/builder\":38,\"./json/parser\":39,\"./model/api\":40,\"./model/operation\":42,\"./model/paginator\":43,\"./model/resource_waiter\":44,\"./model/shape\":45,\"./param_validator\":46,\"./protocol/json\":48,\"./protocol/query\":49,\"./protocol/rest\":50,\"./protocol/rest_json\":51,\"./protocol/rest_xml\":52,\"./request\":57,\"./resource_waiter\":58,\"./response\":59,\"./sequential_executor\":60,\"./service\":61,\"./signers/request_signer\":65,\"./util\":73,\"./xml/builder\":75}],21:[function(e,t,r){var n=e(\"./core\");n.Credentials=n.util.inherit({constructor:function(){if(n.util.hideProperties(this,[\"secretAccessKey\"]),this.expired=!1,this.expireTime=null,this.refreshCallbacks=[],1===arguments.length&&\"object\"==typeof arguments[0]){var e=arguments[0].credentials||arguments[0];this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,this.sessionToken=e.sessionToken}else this.accessKeyId=arguments[0],this.secretAccessKey=arguments[1],this.sessionToken=arguments[2]},expiryWindow:15,needsRefresh:function(){var e=n.util.date.getDate().getTime(),t=new Date(e+1e3*this.expiryWindow);return!!(this.expireTime&&t>this.expireTime)||(this.expired||!this.accessKeyId||!this.secretAccessKey)},get:function(e){var t=this;this.needsRefresh()?this.refresh(function(r){r||(t.expired=!1),e&&e(r)}):e&&e()},refresh:function(e){this.expired=!1,e()},coalesceRefresh:function(e,t){var r=this;1===r.refreshCallbacks.push(e)&&r.load(function(e){n.util.arrayEach(r.refreshCallbacks,function(r){t?r(e):n.util.defer(function(){r(e)})}),r.refreshCallbacks.length=0})},load:function(e){e()}}),n.Credentials.addPromisesToClass=function(e){this.prototype.getPromise=n.util.promisifyMethod(\"get\",e),this.prototype.refreshPromise=n.util.promisifyMethod(\"refresh\",e)},n.Credentials.deletePromisesFromClass=function(){delete this.prototype.getPromise,delete this.prototype.refreshPromise},n.util.addPromises(n.Credentials)},{\"./core\":20}],22:[function(e,t,r){var n=e(\"../core\"),i=e(\"../../clients/sts\");n.ChainableTemporaryCredentials=n.util.inherit(n.Credentials,{constructor:function(e){n.Credentials.call(this),e=e||{},this.errorCode=\"ChainableTemporaryCredentialsProviderFailure\",this.expired=!0,this.tokenCodeFn=null;var t=n.util.copy(e.params)||{};if(t.RoleArn&&(t.RoleSessionName=t.RoleSessionName||\"temporary-credentials\"),t.SerialNumber){if(!e.tokenCodeFn||\"function\"!=typeof e.tokenCodeFn)throw new n.util.error(new Error(\"tokenCodeFn must be a function when params.SerialNumber is given\"),{code:this.errorCode});this.tokenCodeFn=e.tokenCodeFn}var r=n.util.merge({params:t,credentials:e.masterCredentials||n.config.credentials},e.stsConfig||{});this.service=new i(r)},refresh:function(e){this.coalesceRefresh(e||n.util.fn.callback)},load:function(e){var t=this,r=t.service.config.params.RoleArn?\"assumeRole\":\"getSessionToken\";this.getTokenCode(function(n,i){var o={};if(n)return void e(n);i&&(o.TokenCode=i),t.service[r](o,function(r,n){r||t.service.credentialsFrom(n,t),e(r)})})},getTokenCode:function(e){var t=this;this.tokenCodeFn?this.tokenCodeFn(this.service.config.params.SerialNumber,function(r,i){if(r){var o=r;return r instanceof Error&&(o=r.message),void e(n.util.error(new Error(\"Error fetching MFA token: \"+o),{code:t.errorCode}))}e(null,i)}):e(null)}})},{\"../../clients/sts\":9,\"../core\":20}],23:[function(e,t,r){var n=e(\"../core\"),i=e(\"../../clients/cognitoidentity\"),o=e(\"../../clients/sts\");n.CognitoIdentityCredentials=n.util.inherit(n.Credentials,{localStorageKey:{id:\"aws.cognito.identity-id.\",providers:\"aws.cognito.identity-providers.\"},constructor:function(e,t){n.Credentials.call(this),this.expired=!0,this.params=e,this.data=null,this._identityId=null,this._clientConfig=n.util.copy(t||{}),this.loadCachedId();var r=this;Object.defineProperty(this,\"identityId\",{get:function(){return r.loadCachedId(),r._identityId||r.params.IdentityId},set:function(e){r._identityId=e}})},refresh:function(e){this.coalesceRefresh(e||n.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.data=null,t._identityId=null,t.getId(function(r){r?(t.clearIdOnNotAuthorized(r),e(r)):t.params.RoleArn?t.getCredentialsFromSTS(e):t.getCredentialsForIdentity(e)})},clearCachedId:function(){this._identityId=null,delete this.params.IdentityId;var e=this.params.IdentityPoolId,t=this.params.LoginId||\"\";delete this.storage[this.localStorageKey.id+e+t],delete this.storage[this.localStorageKey.providers+e+t]},clearIdOnNotAuthorized:function(e){var t=this;\"NotAuthorizedException\"==e.code&&t.clearCachedId()},getId:function(e){var t=this;if(\"string\"==typeof t.params.IdentityId)return e(null,t.params.IdentityId);t.cognito.getId(function(r,n){!r&&n.IdentityId?(t.params.IdentityId=n.IdentityId,e(null,n.IdentityId)):e(r)})},loadCredentials:function(e,t){e&&t&&(t.expired=!1,t.accessKeyId=e.Credentials.AccessKeyId,t.secretAccessKey=e.Credentials.SecretKey,t.sessionToken=e.Credentials.SessionToken,t.expireTime=e.Credentials.Expiration)},getCredentialsForIdentity:function(e){var t=this;t.cognito.getCredentialsForIdentity(function(r,n){r?t.clearIdOnNotAuthorized(r):(t.cacheId(n),t.data=n,t.loadCredentials(t.data,t)),e(r)})},getCredentialsFromSTS:function(e){var t=this;t.cognito.getOpenIdToken(function(r,n){r?(t.clearIdOnNotAuthorized(r),e(r)):(t.cacheId(n),t.params.WebIdentityToken=n.Token,t.webIdentityCredentials.refresh(function(r){r||(t.data=t.webIdentityCredentials.data,t.sts.credentialsFrom(t.data,t)),e(r)}))})},loadCachedId:function(){var e=this;if(n.util.isBrowser()&&!e.params.IdentityId){var t=e.getStorage(\"id\");if(t&&e.params.Logins){var r=Object.keys(e.params.Logins);0!==(e.getStorage(\"providers\")||\"\").split(\",\").filter(function(e){return-1!==r.indexOf(e)}).length&&(e.params.IdentityId=t)}else t&&(e.params.IdentityId=t)}},createClients:function(){var e=this._clientConfig;if(this.webIdentityCredentials=this.webIdentityCredentials||new n.WebIdentityCredentials(this.params,e),!this.cognito){var t=n.util.merge({},e);t.params=this.params,this.cognito=new i(t)}this.sts=this.sts||new o(e)},cacheId:function(e){this._identityId=e.IdentityId,this.params.IdentityId=this._identityId,n.util.isBrowser()&&(this.setStorage(\"id\",e.IdentityId),this.params.Logins&&this.setStorage(\"providers\",Object.keys(this.params.Logins).join(\",\")))},getStorage:function(e){return this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||\"\")]},setStorage:function(e,t){try{this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||\"\")]=t}catch(e){}},storage:function(){try{var e=n.util.isBrowser()&&null!==window.localStorage&&\"object\"==typeof window.localStorage?window.localStorage:{};return e[\"aws.test-storage\"]=\"foobar\",delete e[\"aws.test-storage\"],e}catch(e){return{}}}()})},{\"../../clients/cognitoidentity\":8,\"../../clients/sts\":9,\"../core\":20}],24:[function(e,t,r){var n=e(\"../core\");n.CredentialProviderChain=n.util.inherit(n.Credentials,{constructor:function(e){this.providers=e||n.CredentialProviderChain.defaultProviders.slice(0),this.resolveCallbacks=[]},resolve:function(e){function t(e,s){if(!e&&s||i===o.length)return n.util.arrayEach(r.resolveCallbacks,function(t){t(e,s)}),void(r.resolveCallbacks.length=0);var a=o[i++];s=\"function\"==typeof a?a.call():a,s.get?s.get(function(e){t(e,e?null:s)}):t(null,s)}var r=this;if(0===r.providers.length)return e(new Error(\"No providers\")),r;if(1===r.resolveCallbacks.push(e)){var i=0,o=r.providers.slice(0);t()}return r}}),n.CredentialProviderChain.defaultProviders=[],n.CredentialProviderChain.addPromisesToClass=function(e){this.prototype.resolvePromise=n.util.promisifyMethod(\"resolve\",e)},n.CredentialProviderChain.deletePromisesFromClass=function(){delete this.prototype.resolvePromise},n.util.addPromises(n.CredentialProviderChain)},{\"../core\":20}],25:[function(e,t,r){var n=e(\"../core\"),i=e(\"../../clients/sts\");n.SAMLCredentials=n.util.inherit(n.Credentials,{constructor:function(e){n.Credentials.call(this),this.expired=!0,this.params=e},refresh:function(e){this.coalesceRefresh(e||n.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.service.assumeRoleWithSAML(function(r,n){r||t.service.credentialsFrom(n,t),e(r)})},createClients:function(){this.service=this.service||new i({params:this.params})}})},{\"../../clients/sts\":9,\"../core\":20}],26:[function(e,t,r){var n=e(\"../core\"),i=e(\"../../clients/sts\");n.TemporaryCredentials=n.util.inherit(n.Credentials,{constructor:function(e,t){n.Credentials.call(this),this.loadMasterCredentials(t),this.expired=!0,this.params=e||{},this.params.RoleArn&&(this.params.RoleSessionName=this.params.RoleSessionName||\"temporary-credentials\")},refresh:function(e){this.coalesceRefresh(e||n.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.masterCredentials.get(function(){t.service.config.credentials=t.masterCredentials,(t.params.RoleArn?t.service.assumeRole:t.service.getSessionToken).call(t.service,function(r,n){r||t.service.credentialsFrom(n,t),e(r)})})},loadMasterCredentials:function(e){for(this.masterCredentials=e||n.config.credentials;this.masterCredentials.masterCredentials;)this.masterCredentials=this.masterCredentials.masterCredentials;\"function\"!=typeof this.masterCredentials.get&&(this.masterCredentials=new n.Credentials(this.masterCredentials))},createClients:function(){this.service=this.service||new i({params:this.params})}})},{\"../../clients/sts\":9,\"../core\":20}],27:[function(e,t,r){var n=e(\"../core\"),i=e(\"../../clients/sts\");n.WebIdentityCredentials=n.util.inherit(n.Credentials,{constructor:function(e,t){n.Credentials.call(this),this.expired=!0,this.params=e,this.params.RoleSessionName=this.params.RoleSessionName||\"web-identity\",this.data=null,this._clientConfig=n.util.copy(t||{})},refresh:function(e){this.coalesceRefresh(e||n.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.service.assumeRoleWithWebIdentity(function(r,n){t.data=null,r||(t.data=n,t.service.credentialsFrom(n,t)),e(r)})},createClients:function(){if(!this.service){var e=n.util.merge({},this._clientConfig);e.params=this.params,this.service=new i(e)}}})},{\"../../clients/sts\":9,\"../core\":20}],28:[function(e,t,r){(function(r){(function(){function n(e){var t=e.service,r=t.api||{},n={};return t.config.region&&(n.region=t.config.region),r.serviceId&&(n.serviceId=r.serviceId),t.config.credentials.accessKeyId&&(n.accessKeyId=t.config.credentials.accessKeyId),n}function i(e,t,r){r&&void 0!==t&&null!==t&&\"structure\"===r.type&&r.required&&r.required.length>0&&m.arrayEach(r.required,function(n){var o=r.members[n];if(!0===o.endpointDiscoveryId){var s=o.isLocationName?o.name:n;e[s]=String(t[n])}else i(e,t[n],o)})}function o(e,t){var r={};return i(r,e.params,t),r}function s(e){var t=e.service,r=t.api,i=r.operations?r.operations[e.operation]:void 0,s=i?i.input:void 0,a=o(e,s),c=n(e);Object.keys(a).length>0&&(c=m.update(c,a),i&&(c.operation=i.name));var l=d.endpointCache.get(c);if(!l||1!==l.length||\"\"!==l[0].Address)if(l&&l.length>0)e.httpRequest.updateEndpoint(l[0].Address);else{var p=t.makeRequest(r.endpointOperation,{Operation:i.name,Identifiers:a});u(p),p.removeListener(\"validate\",d.EventListeners.Core.VALIDATE_PARAMETERS),p.removeListener(\"retry\",d.EventListeners.Core.RETRY_CHECK),d.endpointCache.put(c,[{Address:\"\",CachePeriodInMinutes:1}]),p.send(function(e,t){t&&t.Endpoints?d.endpointCache.put(c,t.Endpoints):e&&d.endpointCache.put(c,[{Address:\"\",CachePeriodInMinutes:1}])})}}function a(e,t){var r=e.service,i=r.api,s=i.operations?i.operations[e.operation]:void 0,a=s?s.input:void 0,c=o(e,a),l=n(e);Object.keys(c).length>0&&(l=m.update(l,c),s&&(l.operation=s.name));var p=d.EndpointCache.getKeyString(l),h=d.endpointCache.get(p);if(h&&1===h.length&&\"\"===h[0].Address)return g[p]||(g[p]=[]),void g[p].push({request:e,callback:t});if(h&&h.length>0)e.httpRequest.updateEndpoint(h[0].Address),t();else{var f=r.makeRequest(i.endpointOperation,{Operation:s.name,Identifiers:c});f.removeListener(\"validate\",d.EventListeners.Core.VALIDATE_PARAMETERS),u(f),d.endpointCache.put(p,[{Address:\"\",CachePeriodInMinutes:60}]),f.send(function(r,n){if(r){if(e.response.error=m.error(r,{retryable:!1}),d.endpointCache.remove(l),g[p]){var i=g[p];m.arrayEach(i,function(e){e.request.response.error=m.error(r,{retryable:!1}),e.callback()}),delete g[p]}}else if(n&&(d.endpointCache.put(p,n.Endpoints),e.httpRequest.updateEndpoint(n.Endpoints[0].Address),g[p])){var i=g[p];m.arrayEach(i,function(e){e.request.httpRequest.updateEndpoint(n.Endpoints[0].Address),e.callback()}),delete g[p]}t()})}}function u(e){var t=e.service.api,r=t.apiVersion;r&&!e.httpRequest.headers[\"x-amz-api-version\"]&&(e.httpRequest.headers[\"x-amz-api-version\"]=r)}function c(e){var t=e.error,r=e.httpResponse;if(t&&(\"InvalidEndpointException\"===t.code||421===r.statusCode)){var i=e.request,s=i.service.api.operations||{},a=s[i.operation]?s[i.operation].input:void 0,u=o(i,a),c=n(i);Object.keys(u).length>0&&(c=m.update(c,u),s[i.operation]&&(c.operation=s[i.operation].name)),d.endpointCache.remove(c)}}function l(e){if(e._originalConfig&&e._originalConfig.endpoint&&!0===e._originalConfig.endpointDiscoveryEnabled)throw m.error(new Error,{code:\"ConfigurationException\",message:\"Custom endpoint is supplied; endpointDiscoveryEnabled must not be true.\"});var t=d.config[e.serviceIdentifier]||{};return Boolean(d.config.endpoint||t.endpoint||e._originalConfig&&e._originalConfig.endpoint)}function p(e){return[\"false\",\"0\"].indexOf(e)>=0}function h(e){var t=e.service||{};if(void 0!==t.config.endpointDiscoveryEnabled)return t.config.endpointDiscoveryEnabled;if(!m.isBrowser()){for(var n=0;n-1&&0===++e[t];t--);}var o=e(\"../core\").util,s=o.buffer.toBuffer;n.fromNumber=function(e){if(e>0x8000000000000000||e<-0x8000000000000000)throw new Error(e+\" is too large (or, if negative, too small) to represent as an Int64\");for(var t=new Uint8Array(8),r=7,o=Math.abs(Math.round(e));r>-1&&o>0;r--,o/=256)t[r]=o;return e<0&&i(t),new n(t)},n.prototype.valueOf=function(){var e=this.bytes.slice(0),t=128&e[0];return t&&i(e),parseInt(e.toString(\"hex\"),16)*(t?-1:1)},n.prototype.toString=function(){return String(this.valueOf())},t.exports={Int64:n}},{\"../core\":20}],32:[function(e,t,r){function n(e,t,r){var n=o(t),s=n.headers[\":message-type\"];if(s){if(\"error\"===s.value)throw i(n);if(\"event\"!==s.value)return}var a=n.headers[\":event-type\"],u=r.members[a.value];if(u){var c={},l=u.eventPayloadMemberName;if(l){var p=u.members[l];\"binary\"===p.type?c[l]=n.body:c[l]=e.parse(n.body.toString(),p)}for(var h=u.eventHeaderMemberNames,f=0;f=0)return e.httpRequest.headers[\"X-Amz-Content-Sha256\"]=\"UNSIGNED-PAYLOAD\",t();i.util.computeSha256(o,function(r,n){r?t(r):(e.httpRequest.headers[\"X-Amz-Content-Sha256\"]=n,t())})}else t()}}),e(\"SET_CONTENT_LENGTH\",\"afterBuild\",function(e){var t=n(e),r=i.util.getRequestPayloadShape(e);if(void 0===e.httpRequest.headers[\"Content-Length\"])try{var o=i.util.string.byteLength(e.httpRequest.body);e.httpRequest.headers[\"Content-Length\"]=o}catch(n){if(r&&r.isStreaming){if(r.requiresLength)throw n;if(t.indexOf(\"unsigned-body\")>=0)return void(e.httpRequest.headers[\"Transfer-Encoding\"]=\"chunked\");throw n}throw n}}),e(\"SET_HTTP_HOST\",\"afterBuild\",function(e){e.httpRequest.headers.Host=e.httpRequest.endpoint.host}),e(\"RESTART\",\"restart\",function(){var e=this.response.error;e&&e.retryable&&(this.httpRequest=new i.HttpRequest(this.service.endpoint,this.service.region),this.response.retryCount=600?this.emit(\"sign\",[this],function(e){e?t(e):s()}):s()}),e(\"HTTP_HEADERS\",\"httpHeaders\",function(e,t,r,n){r.httpResponse.statusCode=e,r.httpResponse.statusMessage=n,r.httpResponse.headers=t,r.httpResponse.body=i.util.buffer.toBuffer(\"\"),r.httpResponse.buffers=[],r.httpResponse.numBytes=0;var o=t.date||t.Date,s=r.request.service;if(o){var a=Date.parse(o);s.config.correctClockSkew&&s.isClockSkewed(a)&&s.applyClockOffset(a)}}),e(\"HTTP_DATA\",\"httpData\",function(e,t){if(e){if(i.util.isNode()){t.httpResponse.numBytes+=e.length;var r=t.httpResponse.headers[\"content-length\"],n={loaded:t.httpResponse.numBytes,total:r};t.request.emit(\"httpDownloadProgress\",[n,t])}t.httpResponse.buffers.push(i.util.buffer.toBuffer(e))}}),e(\"HTTP_DONE\",\"httpDone\",function(e){if(e.httpResponse.buffers&&e.httpResponse.buffers.length>0){var t=i.util.buffer.concat(e.httpResponse.buffers);e.httpResponse.body=t}delete e.httpResponse.numBytes,delete e.httpResponse.buffers}),e(\"FINALIZE_ERROR\",\"retry\",function(e){e.httpResponse.statusCode&&(e.error.statusCode=e.httpResponse.statusCode,void 0===e.error.retryable&&(e.error.retryable=this.service.retryableError(e.error,this)))}),e(\"INVALIDATE_CREDENTIALS\",\"retry\",function(e){if(e.error)switch(e.error.code){case\"RequestExpired\":case\"ExpiredTokenException\":case\"ExpiredToken\":e.error.retryable=!0,e.request.service.config.credentials.expired=!0}}),e(\"EXPIRED_SIGNATURE\",\"retry\",function(e){var t=e.error;t&&\"string\"==typeof t.code&&\"string\"==typeof t.message&&t.code.match(/Signature/)&&t.message.match(/expired/)&&(e.error.retryable=!0)}),e(\"CLOCK_SKEWED\",\"retry\",function(e){e.error&&this.service.clockSkewError(e.error)&&this.service.config.correctClockSkew&&(e.error.retryable=!0)}),e(\"REDIRECT\",\"retry\",function(e){e.error&&e.error.statusCode>=300&&e.error.statusCode<400&&e.httpResponse.headers.location&&(this.httpRequest.endpoint=new i.Endpoint(e.httpResponse.headers.location),this.httpRequest.headers.Host=this.httpRequest.endpoint.host,e.error.redirect=!0,e.error.retryable=!0)}),e(\"RETRY_CHECK\",\"retry\",function(e){e.error&&(e.error.redirect&&e.redirectCount=0?(e.error=null,setTimeout(t,r)):t()})}),CorePost:(new o).addNamedListeners(function(e){e(\"EXTRACT_REQUEST_ID\",\"extractData\",i.util.extractRequestId),e(\"EXTRACT_REQUEST_ID\",\"extractError\",i.util.extractRequestId),e(\"ENOTFOUND_ERROR\",\"httpError\",function(e){if(\"NetworkingError\"===e.code&&function(e){return\"ENOTFOUND\"===e.errno||\"number\"==typeof e.errno&&\"function\"==typeof i.util.getSystemErrorName&&[\"EAI_NONAME\",\"EAI_NODATA\"].indexOf(i.util.getSystemErrorName(e.errno)>=0)}(e)){var t=\"Inaccessible host: `\"+e.hostname+\"'. This service may not be available in the `\"+e.region+\"' region.\";this.response.error=i.util.error(new Error(t),{code:\"UnknownEndpoint\",region:e.region,hostname:e.hostname,retryable:!0,originalError:e})}})}),Logger:(new o).addNamedListeners(function(t){t(\"LOG_REQUEST\",\"complete\",function(t){function r(e,t){if(!t)return t;if(e.isSensitive)return\"***SensitiveInformation***\";switch(e.type){case\"structure\":var n={};return i.util.each(t,function(t,i){Object.prototype.hasOwnProperty.call(e.members,t)?n[t]=r(e.members[t],i):n[t]=i}),n;case\"list\":var o=[];return i.util.arrayEach(t,function(t,n){o.push(r(e.member,t))}),o;case\"map\":var s={};return i.util.each(t,function(t,n){s[t]=r(e.value,n)}),s;default:return t}}var n=t.request,o=n.service.config.logger;if(o){var s=function(){var s=t.request.service.getSkewCorrectedDate().getTime(),a=(s-n.startTime.getTime())/1e3,u=!!o.isTTY,c=t.httpResponse.statusCode,l=n.params;if(n.service.api.operations&&n.service.api.operations[n.operation]&&n.service.api.operations[n.operation].input){l=r(n.service.api.operations[n.operation].input,n.params)}var p=e(\"util\").inspect(l,!0,null),h=\"\";return u&&(h+=\"\u001b[33m\"),h+=\"[AWS \"+n.service.serviceIdentifier+\" \"+c,h+=\" \"+a.toString()+\"s \"+t.retryCount+\" retries]\",u&&(h+=\"\u001b[0;1m\"),h+=\" \"+i.util.string.lowerFirst(n.operation),h+=\"(\"+p+\")\",u&&(h+=\"\u001b[0m\"),h}();\"function\"==typeof o.log?o.log(s):\"function\"==typeof o.write&&o.write(s+\"\\n\")}})}),Json:(new o).addNamedListeners(function(t){var r=e(\"./protocol/json\");t(\"BUILD\",\"build\",r.buildRequest),t(\"EXTRACT_DATA\",\"extractData\",r.extractData),t(\"EXTRACT_ERROR\",\"extractError\",r.extractError)}),Rest:(new o).addNamedListeners(function(t){var r=e(\"./protocol/rest\");t(\"BUILD\",\"build\",r.buildRequest),t(\"EXTRACT_DATA\",\"extractData\",r.extractData),t(\"EXTRACT_ERROR\",\"extractError\",r.extractError)}),RestJson:(new o).addNamedListeners(function(t){var r=e(\"./protocol/rest_json\");t(\"BUILD\",\"build\",r.buildRequest),t(\"EXTRACT_DATA\",\"extractData\",r.extractData),t(\"EXTRACT_ERROR\",\"extractError\",r.extractError)}),RestXml:(new o).addNamedListeners(function(t){var r=e(\"./protocol/rest_xml\");t(\"BUILD\",\"build\",r.buildRequest),t(\"EXTRACT_DATA\",\"extractData\",r.extractData),t(\"EXTRACT_ERROR\",\"extractError\",r.extractError)}),Query:(new o).addNamedListeners(function(t){var r=e(\"./protocol/query\");t(\"BUILD\",\"build\",r.buildRequest),t(\"EXTRACT_DATA\",\"extractData\",r.extractData),t(\"EXTRACT_ERROR\",\"extractError\",r.extractError)})}},{\"./core\":20,\"./discover_endpoint\":28,\"./protocol/json\":48,\"./protocol/query\":49,\"./protocol/rest\":50,\"./protocol/rest_json\":51,\"./protocol/rest_xml\":52,\"./sequential_executor\":60,util:99}],36:[function(e,t,r){var n=e(\"./core\"),i=n.util.inherit;n.Endpoint=i({constructor:function(e,t){if(n.util.hideProperties(this,[\"slashes\",\"auth\",\"hash\",\"search\",\"query\"]),void 0===e||null===e)throw new Error(\"Invalid endpoint: \"+e);if(\"string\"!=typeof e)return n.util.copy(e);if(!e.match(/^http/)){e=((t&&void 0!==t.sslEnabled?t.sslEnabled:n.config.sslEnabled)?\"https\":\"http\")+\"://\"+e}n.util.update(this,n.util.urlParse(e)),this.port?this.port=parseInt(this.port,10):this.port=\"https:\"===this.protocol?443:80}}),n.HttpRequest=i({constructor:function(e,t){e=new n.Endpoint(e),this.method=\"POST\",this.path=e.path||\"/\",this.headers={},this.body=\"\",this.endpoint=e,this.region=t,this._userAgent=\"\",this.setUserAgent()},setUserAgent:function(){this._userAgent=this.headers[this.getUserAgentHeaderName()]=n.util.userAgent()},getUserAgentHeaderName:function(){return(n.util.isBrowser()?\"X-Amz-\":\"\")+\"User-Agent\"},appendToUserAgent:function(e){\"string\"==typeof e&&e&&(this._userAgent+=\" \"+e),this.headers[this.getUserAgentHeaderName()]=this._userAgent},getUserAgent:function(){return this._userAgent},pathname:function(){return this.path.split(\"?\",1)[0]},search:function(){var e=this.path.split(\"?\",2)[1];return e?(e=n.util.queryStringParse(e),n.util.queryParamsToString(e)):\"\"},updateEndpoint:function(e){var t=new n.Endpoint(e);this.endpoint=t,this.path=t.path||\"/\",this.headers.Host&&(this.headers.Host=t.host)}}),n.HttpResponse=i({constructor:function(){this.statusCode=void 0,this.headers={},this.body=void 0,this.streaming=!1,this.stream=null},createUnbufferedStream:function(){return this.streaming=!0,this.stream}}),n.HttpClient=i({}),n.HttpClient.getInstance=function(){return void 0===this.singleton&&(this.singleton=new this),this.singleton}},{\"./core\":20}],37:[function(e,t,r){var n=e(\"../core\"),i=e(\"events\").EventEmitter;e(\"../http\"),n.XHRClient=n.util.inherit({handleRequest:function(e,t,r,o){var s=this,a=e.endpoint,u=new i,c=a.protocol+\"//\"+a.hostname;80!==a.port&&443!==a.port&&(c+=\":\"+a.port),c+=e.path;var l=new XMLHttpRequest,p=!1;e.stream=l,l.addEventListener(\"readystatechange\",function(){try{if(0===l.status)return}catch(e){return}this.readyState>=this.HEADERS_RECEIVED&&!p&&(u.statusCode=l.status,u.headers=s.parseHeaders(l.getAllResponseHeaders()),u.emit(\"headers\",u.statusCode,u.headers,l.statusText),p=!0),this.readyState===this.DONE&&s.finishRequest(l,u)},!1),l.upload.addEventListener(\"progress\",function(e){u.emit(\"sendProgress\",e)}),l.addEventListener(\"progress\",function(e){u.emit(\"receiveProgress\",e)},!1),l.addEventListener(\"timeout\",function(){o(n.util.error(new Error(\"Timeout\"),{code:\"TimeoutError\"}))},!1),l.addEventListener(\"error\",function(){o(n.util.error(new Error(\"Network Failure\"),{code:\"NetworkingError\"}))},!1),l.addEventListener(\"abort\",function(){o(n.util.error(new Error(\"Request aborted\"),{code:\"RequestAbortedError\"}))},!1),r(u),l.open(e.method,c,!1!==t.xhrAsync),n.util.each(e.headers,function(e,t){\"Content-Length\"!==e&&\"User-Agent\"!==e&&\"Host\"!==e&&l.setRequestHeader(e,t)}),t.timeout&&!1!==t.xhrAsync&&(l.timeout=t.timeout),t.xhrWithCredentials&&(l.withCredentials=!0);try{l.responseType=\"arraybuffer\"}catch(e){}try{e.body?l.send(e.body):l.send()}catch(t){if(!e.body||\"object\"!=typeof e.body.buffer)throw t;l.send(e.body.buffer)}return u},parseHeaders:function(e){var t={};return n.util.arrayEach(e.split(/\\r?\\n/),function(e){var r=e.split(\":\",1)[0],n=e.substring(r.length+2);r.length>0&&(t[r.toLowerCase()]=n)}),t},finishRequest:function(e,t){var r;if(\"arraybuffer\"===e.responseType&&e.response){var i=e.response;r=new n.util.Buffer(i.byteLength);for(var o=new Uint8Array(i),s=0;s-1?t||\"\":t,this.isJsonValue?JSON.parse(t):t&&\"function\"==typeof t.toString?t.toString():t},this.toWireFormat=function(e){return this.isJsonValue?JSON.stringify(e):e}}function h(){o.apply(this,arguments),this.toType=function(e){return null===e||void 0===e?null:parseFloat(e)},this.toWireFormat=this.toType}function f(){o.apply(this,arguments),this.toType=function(e){return null===e||void 0===e?null:parseInt(e,10)},this.toWireFormat=this.toType}function d(){o.apply(this,arguments),this.toType=function(e){var t=y.base64.decode(e);if(this.isSensitive&&y.isNode()&&\"function\"==typeof y.Buffer.alloc){var r=y.Buffer.alloc(t.length,t);t.fill(0),t=r}return t},this.toWireFormat=y.base64.encode}function m(){d.apply(this,arguments)}function v(){o.apply(this,arguments),this.toType=function(e){return\"boolean\"==typeof e?e:null===e||void 0===e?null:\"true\"===e}}var g=e(\"./collection\"),y=e(\"../util\");o.normalizedTypes={character:\"string\",double:\"float\",long:\"integer\",short:\"integer\",biginteger:\"integer\",bigdecimal:\"float\",blob:\"binary\"},o.types={structure:a,list:u,map:c,boolean:v,timestamp:l,float:h,integer:f,string:p,base64:m,binary:d},o.resolve=function(e,t){if(e.shape){var r=t.api.shapes[e.shape];if(!r)throw new Error(\"Cannot find shape reference: \"+e.shape);return r}return null},o.create=function(e,t,r){if(e.isShape)return e;var n=o.resolve(e,t);if(n){var i=Object.keys(e);t.documentation||(i=i.filter(function(e){return!e.match(/documentation/)}));var s=function(){n.constructor.call(this,e,t,r)};return s.prototype=n,new s}e.type||(e.members?e.type=\"structure\":e.member?e.type=\"list\":e.key?e.type=\"map\":e.type=\"string\");var a=e.type;if(o.normalizedTypes[e.type]&&(e.type=o.normalizedTypes[e.type]),o.types[e.type])return new o.types[e.type](e,t,r);throw new Error(\"Unrecognized shape type: \"+a)},o.shapes={StructureShape:a,ListShape:u,MapShape:c,StringShape:p,BooleanShape:v,Base64Shape:m},t.exports=o},{\"../util\":73,\"./collection\":41}],46:[function(e,t,r){var n=e(\"./core\");n.ParamValidator=n.util.inherit({constructor:function(e){!0!==e&&void 0!==e||(e={min:!0}),this.validation=e},validate:function(e,t,r){if(this.errors=[],this.validateMember(e,t||{},r||\"params\"),this.errors.length>1){var i=this.errors.join(\"\\n* \");throw i=\"There were \"+this.errors.length+\" validation errors:\\n* \"+i,n.util.error(new Error(i),{code:\"MultipleValidationErrors\",errors:this.errors})}if(1===this.errors.length)throw this.errors[0];return!0},fail:function(e,t){this.errors.push(n.util.error(new Error(t),{code:e}))},validateStructure:function(e,t,r){this.validateType(t,r,[\"object\"],\"structure\");for(var n,i=0;e.required&&i= 1, but found \"'+t+'\" for '+r)},validatePattern:function(e,t,r){this.validation.pattern&&void 0!==e.pattern&&(new RegExp(e.pattern).test(t)||this.fail(\"PatternMatchError\",'Provided value \"'+t+'\" does not match regex pattern /'+e.pattern+\"/ for \"+r))},validateRange:function(e,t,r,n){this.validation.min&&void 0!==e.min&&t= \"+e.min+\", but found \"+t+\" for \"+r),this.validation.max&&void 0!==e.max&&t>e.max&&this.fail(\"MaxRangeError\",\"Expected \"+n+\" <= \"+e.max+\", but found \"+t+\" for \"+r)},validateEnum:function(e,t,r){this.validation.enum&&void 0!==e.enum&&-1===e.enum.indexOf(t)&&this.fail(\"EnumError\",\"Found string value of \"+t+\", but expected \"+e.enum.join(\"|\")+\" for \"+r)},validateType:function(e,t,r,i){if(null===e||void 0===e)return!1;for(var o=!1,s=0;s63)throw u.error(new Error,{\ncode:\"ValidationError\",message:\"Hostname label length should be between 1 to 63 characters, inclusive.\"});if(!r.test(e))throw c.util.error(new Error,{code:\"ValidationError\",message:e+\" is not hostname compatible.\"})})}var u=e(\"../util\"),c=e(\"../core\");t.exports={populateHostPrefix:n}},{\"../core\":20,\"../util\":73}],48:[function(e,t,r){function n(e){var t=e.httpRequest,r=e.service.api,n=r.targetPrefix+\".\"+r.operations[e.operation].name,i=r.jsonVersion||\"1.0\",o=r.operations[e.operation].input,s=new a;1===i&&(i=\"1.0\"),t.body=s.build(e.params||{},o),t.headers[\"Content-Type\"]=\"application/x-amz-json-\"+i,t.headers[\"X-Amz-Target\"]=n,c(e)}function i(e){var t={},r=e.httpResponse;if(t.code=r.headers[\"x-amzn-errortype\"]||\"UnknownError\",\"string\"==typeof t.code&&(t.code=t.code.split(\":\")[0]),r.body.length>0)try{var n=JSON.parse(r.body.toString()),i=n.__type||n.code||n.Code;i&&(t.code=i.split(\"#\").pop()),\"RequestEntityTooLarge\"===t.code?t.message=\"Request body must be less than 1 MB\":t.message=n.message||n.Message||null}catch(n){t.statusCode=r.statusCode,t.message=r.statusMessage}else t.statusCode=r.statusCode,t.message=r.statusCode.toString();e.error=s.error(new Error,t)}function o(e){var t=e.httpResponse.body.toString()||\"{}\";if(!1===e.request.service.config.convertResponseTypes)e.data=JSON.parse(t);else{var r=e.request.service.api.operations[e.request.operation],n=r.output||{},i=new u;e.data=i.parse(t,n)}}var s=e(\"../util\"),a=e(\"../json/builder\"),u=e(\"../json/parser\"),c=e(\"./helpers\").populateHostPrefix;t.exports={buildRequest:n,extractError:i,extractData:o}},{\"../json/builder\":38,\"../json/parser\":39,\"../util\":73,\"./helpers\":47}],49:[function(e,t,r){function n(e){var t=e.service.api.operations[e.operation],r=e.httpRequest;r.headers[\"Content-Type\"]=\"application/x-www-form-urlencoded; charset=utf-8\",r.params={Version:e.service.api.apiVersion,Action:t.name},(new u).serialize(e.params,t.input,function(e,t){r.params[e]=t}),r.body=a.queryParamsToString(r.params),l(e)}function i(e){var t,r=e.httpResponse.body.toString();if(r.match(\"=0?\"&\":\"?\";var a=[];l.arrayEach(Object.keys(o).sort(),function(e){Array.isArray(o[e])||(o[e]=[o[e]]);for(var t=0;t0){t=new a.XML.Parser;var p=t.parse(n.toString(),o);u.update(e.data,p)}}var a=e(\"../core\"),u=e(\"../util\"),c=e(\"./rest\");t.exports={buildRequest:i,extractError:o,extractData:s}},{\"../core\":20,\"../util\":73,\"./rest\":50}],53:[function(e,t,r){function n(){}function i(e){return e.isQueryName||\"ec2\"!==e.api.protocol?e.name:e.name[0].toUpperCase()+e.name.substr(1)}function o(e,t,r,n){c.each(r.members,function(r,o){var s=t[r];if(null!==s&&void 0!==s){var a=i(o);a=e?e+\".\"+a:a,u(a,s,o,n)}})}function s(e,t,r,n){var i=1;c.each(t,function(t,o){var s=r.flattened?\".\":\".entry.\",a=s+i+++\".\",c=a+(r.key.name||\"key\"),l=a+(r.value.name||\"value\");u(e+c,t,r.key,n),u(e+l,o,r.value,n)})}function a(e,t,r,n){var o=r.member||{};if(0===t.length)return void n.call(this,e,null);c.arrayEach(t,function(t,s){var a=\".\"+(s+1);if(\"ec2\"===r.api.protocol)a+=\"\";else if(r.flattened){if(o.name){var c=e.split(\".\");c.pop(),c.push(i(o)),e=c.join(\".\")}}else a=\".\"+(o.name?o.name:\"member\")+a;u(e+a,t,o,n)})}function u(e,t,r,n){null!==t&&void 0!==t&&(\"structure\"===r.type?o(e,t,r,n):\"list\"===r.type?a(e,t,r,n):\"map\"===r.type?s(e,t,r,n):n(e,r.toWireFormat(t).toString()))}var c=e(\"../util\");n.prototype.serialize=function(e,t,r){o(\"\",e,t,r)},t.exports=n},{\"../util\":73}],54:[function(e,t,r){t.exports={now:function(){return\"undefined\"!=typeof performance&&\"function\"==typeof performance.now?performance.now():Date.now()}}},{}],55:[function(e,t,r){function n(e){if(!e)return null;var t=e.split(\"-\");return t.length<3?null:t.slice(0,t.length-2).join(\"-\")+\"-*\"}function i(e){var t=e.config.region,r=n(t),i=e.api.endpointPrefix;return[[t,i],[r,i],[t,\"*\"],[r,\"*\"],[\"*\",i],[\"*\",\"*\"]].map(function(e){return e[0]&&e[1]?e.join(\"/\"):null})}function o(e,t){u.each(t,function(t,r){\"globalEndpoint\"!==t&&(void 0!==e.config[t]&&null!==e.config[t]||(e.config[t]=r))})}function s(e){for(var t=i(e),r=0;r=0){u=!0;var c=0}var l=function(){u&&c!==a?i.emit(\"error\",n.util.error(new Error(\"Stream content length mismatch. Received \"+c+\" of \"+a+\" bytes.\"),{code:\"StreamContentLengthMismatch\"})):2===n.HttpClient.streamsApiVersion?i.end():i.emit(\"end\")},p=s.httpResponse.createUnbufferedStream();if(2===n.HttpClient.streamsApiVersion)if(u){var h=new e.PassThrough;h._write=function(t){return t&&t.length&&(c+=t.length),e.PassThrough.prototype._write.apply(this,arguments)},h.on(\"end\",l),i.on(\"error\",function(e){u=!1,p.unpipe(h),h.emit(\"end\"),h.end()}),p.pipe(h).pipe(i,{end:!1})}else p.pipe(i);else u&&p.on(\"data\",function(e){e&&e.length&&(c+=e.length)}),p.on(\"data\",function(e){i.emit(\"data\",e)}),p.on(\"end\",l);p.on(\"error\",function(e){u=!1,i.emit(\"error\",e)})}}),i},emitEvent:function(e,t,r){\"function\"==typeof t&&(r=t,t=null),r||(r=function(){}),t||(t=this.eventParameters(e,this.response)),n.SequentialExecutor.prototype.emit.call(this,e,t,function(e){e&&(this.response.error=e),r.call(this,e)})},eventParameters:function(e){switch(e){case\"restart\":case\"validate\":case\"sign\":case\"build\":case\"afterValidate\":case\"afterBuild\":return[this];case\"error\":return[this.response.error,this.response];default:return[this.response]}},presign:function(e,t){return t||\"function\"!=typeof e||(t=e,e=null),(new n.Signers.Presign).sign(this.toGet(),e,t)},isPresigned:function(){return Object.prototype.hasOwnProperty.call(this.httpRequest.headers,\"presigned-expires\")},toUnauthenticated:function(){return this._unAuthenticated=!0,this.removeListener(\"validate\",n.EventListeners.Core.VALIDATE_CREDENTIALS),this.removeListener(\"sign\",n.EventListeners.Core.SIGN),this},toGet:function(){return\"query\"!==this.service.api.protocol&&\"ec2\"!==this.service.api.protocol||(this.removeListener(\"build\",this.buildAsGet),this.addListener(\"build\",this.buildAsGet)),this},buildAsGet:function(e){e.httpRequest.method=\"GET\",e.httpRequest.path=e.service.endpoint.path+\"?\"+e.httpRequest.body,e.httpRequest.body=\"\",delete e.httpRequest.headers[\"Content-Length\"],delete e.httpRequest.headers[\"Content-Type\"]},haltHandlersOnError:function(){this._haltHandlersOnError=!0}}),n.Request.addPromisesToClass=function(e){this.prototype.promise=function(){var t=this;return this.httpRequest.appendToUserAgent(\"promise\"),new e(function(e,r){t.on(\"complete\",function(t){t.error?r(t.error):e(Object.defineProperty(t.data||{},\"$response\",{value:t}))}),t.runTo()})}},n.Request.deletePromisesFromClass=function(){delete this.prototype.promise},n.util.addPromises(n.Request),n.util.mixin(n.Request,n.SequentialExecutor)}).call(this)}).call(this,e(\"_process\"))},{\"./core\":20,\"./state_machine\":72,_process:87,jmespath:86}],58:[function(e,t,r){function n(e){var t=e.request._waiter,r=t.config.acceptors,n=!1,i=\"retry\";r.forEach(function(r){if(!n){var o=t.matchers[r.matcher];o&&o(e,r.expected,r.argument)&&(n=!0,i=r.state)}}),!n&&e.error&&(i=\"failure\"),\"success\"===i?t.setSuccess(e):t.setError(e,\"retry\"===i)}var i=e(\"./core\"),o=i.util.inherit,s=e(\"jmespath\");i.ResourceWaiter=o({constructor:function(e,t){this.service=e,this.state=t,this.loadWaiterConfig(this.state)},service:null,state:null,config:null,matchers:{path:function(e,t,r){try{var n=s.search(e.data,r)}catch(e){return!1}return s.strictDeepEqual(n,t)},pathAll:function(e,t,r){try{var n=s.search(e.data,r)}catch(e){return!1}Array.isArray(n)||(n=[n]);var i=n.length;if(!i)return!1;for(var o=0;o-1&&r.splice(i,1)}return this},removeAllListeners:function(e){return e?delete this._events[e]:this._events={},this},emit:function(e,t,r){r||(r=function(){});var n=this.listeners(e),i=n.length;return this.callListeners(n,t,r),i>0},callListeners:function(e,t,r,i){function o(i){if(i&&(a=n.util.error(a||new Error,i),s._haltHandlersOnError))return r.call(s,a);s.callListeners(e,t,r,a)}for(var s=this,a=i||null;e.length>0;){var u=e.shift();if(u._isAsync)return void u.apply(s,t.concat([o]));try{u.apply(s,t)}catch(e){a=n.util.error(a||new Error,e)}if(a&&s._haltHandlersOnError)return void r.call(s,a)}r.call(s,a)},addListeners:function(e){var t=this;return e._events&&(e=e._events),n.util.each(e,function(e,r){\"function\"==typeof r&&(r=[r]),n.util.arrayEach(r,function(r){t.on(e,r)})}),t},addNamedListener:function(e,t,r,n){return this[e]=r,this.addListener(t,r,n),this},addNamedAsyncListener:function(e,t,r,n){return r._isAsync=!0,this.addNamedListener(e,t,r,n)},addNamedListeners:function(e){var t=this;return e(function(){t.addNamedListener.apply(t,arguments)},function(){t.addNamedAsyncListener.apply(t,arguments)}),this}}),n.SequentialExecutor.prototype.addListener=n.SequentialExecutor.prototype.on,t.exports=n.SequentialExecutor},{\"./core\":20}],61:[function(e,t,r){(function(r){(function(){var n=e(\"./core\"),i=e(\"./model/api\"),o=e(\"./region_config\"),s=n.util.inherit,a=0;n.Service=s({constructor:function(e){if(!this.loadServiceClass)throw n.util.error(new Error,\"Service must be constructed with `new' operator\");var t=this.loadServiceClass(e||{});if(t){var r=n.util.copy(e),i=new t(e);return Object.defineProperty(i,\"_originalConfig\",{get:function(){return r},enumerable:!1,configurable:!0}),i._clientId=++a,i}this.initialize(e)},initialize:function(e){var t=n.config[this.serviceIdentifier];if(this.config=new n.Config(n.config),t&&this.config.update(t,!0),e&&this.config.update(e,!0),this.validateService(),this.config.endpoint||o.configureEndpoint(this),this.config.endpoint=this.endpointFromTemplate(this.config.endpoint),this.setEndpoint(this.config.endpoint),n.SequentialExecutor.call(this),n.Service.addDefaultMonitoringListeners(this),(this.config.clientSideMonitoring||n.Service._clientSideMonitoring)&&this.publisher){var i=this.publisher;this.addNamedListener(\"PUBLISH_API_CALL\",\"apiCall\",function(e){r.nextTick(function(){i.eventHandler(e)})}),this.addNamedListener(\"PUBLISH_API_ATTEMPT\",\"apiCallAttempt\",function(e){r.nextTick(function(){i.eventHandler(e)})})}},validateService:function(){},loadServiceClass:function(e){var t=e;if(n.util.isEmpty(this.api)){if(t.apiConfig)return n.Service.defineServiceApi(this.constructor,t.apiConfig);if(this.constructor.services){t=new n.Config(n.config),t.update(e,!0);var r=t.apiVersions[this.constructor.serviceIdentifier];return r=r||t.apiVersion,this.getLatestServiceClass(r)}return null}return null},getLatestServiceClass:function(e){return e=this.getLatestServiceVersion(e),null===this.constructor.services[e]&&n.Service.defineServiceApi(this.constructor,e),this.constructor.services[e]},getLatestServiceVersion:function(e){if(!this.constructor.services||0===this.constructor.services.length)throw new Error(\"No services defined on \"+this.constructor.serviceIdentifier);if(e?n.util.isType(e,Date)&&(e=n.util.date.iso8601(e).split(\"T\")[0]):e=\"latest\",Object.hasOwnProperty(this.constructor.services,e))return e;for(var t=Object.keys(this.constructor.services).sort(),r=null,i=t.length-1;i>=0;i--)if(\"*\"!==t[i][t[i].length-1]&&(r=t[i]),t[i].substr(0,10)<=e)return r;throw new Error(\"Could not find \"+this.constructor.serviceIdentifier+\" API to satisfy version constraint `\"+e+\"'\")},api:{},defaultRetryCount:3,customizeRequests:function(e){if(e){if(\"function\"!=typeof e)throw new Error(\"Invalid callback type '\"+typeof e+\"' provided in customizeRequests\");this.customRequestHandler=e}else this.customRequestHandler=null},makeRequest:function(e,t,r){if(\"function\"==typeof t&&(r=t,t=null),t=t||{},this.config.params){var i=this.api.operations[e];i&&(t=n.util.copy(t),n.util.each(this.config.params,function(e,r){i.input.members[e]&&(void 0!==t[e]&&null!==t[e]||(t[e]=r))}))}var o=new n.Request(this,e,t);return this.addAllRequestListeners(o),this.attachMonitoringEmitter(o),r&&o.send(r),o},makeUnauthenticatedRequest:function(e,t,r){\"function\"==typeof t&&(r=t,t={});var n=this.makeRequest(e,t).toUnauthenticated();return r?n.send(r):n},waitFor:function(e,t,r){return new n.ResourceWaiter(this,e).wait(t,r)},addAllRequestListeners:function(e){for(var t=[n.events,n.EventListeners.Core,this.serviceInterface(),n.EventListeners.CorePost],r=0;r299?(i.code&&(r.FinalAwsException=i.code),i.message&&(r.FinalAwsExceptionMessage=i.message)):((i.code||i.name)&&(r.FinalSdkException=i.code||i.name),i.message&&(r.FinalSdkExceptionMessage=i.message))}return r},apiAttemptEvent:function(e){var t=e.service.api.operations[e.operation],r={Type:\"ApiCallAttempt\",Api:t?t.name:e.operation,Version:1,Service:e.service.api.serviceId||e.service.api.endpointPrefix,Fqdn:e.httpRequest.endpoint.hostname,UserAgent:e.httpRequest.getUserAgent()},n=e.response;return n.httpResponse.statusCode&&(r.HttpStatusCode=n.httpResponse.statusCode),!e._unAuthenticated&&e.service.config.credentials&&e.service.config.credentials.accessKeyId&&(r.AccessKey=e.service.config.credentials.accessKeyId),n.httpResponse.headers?(e.httpRequest.headers[\"x-amz-security-token\"]&&(r.SessionToken=e.httpRequest.headers[\"x-amz-security-token\"]),n.httpResponse.headers[\"x-amzn-requestid\"]&&(r.XAmznRequestId=n.httpResponse.headers[\"x-amzn-requestid\"]),n.httpResponse.headers[\"x-amz-request-id\"]&&(r.XAmzRequestId=n.httpResponse.headers[\"x-amz-request-id\"]),n.httpResponse.headers[\"x-amz-id-2\"]&&(r.XAmzId2=n.httpResponse.headers[\"x-amz-id-2\"]),r):r},attemptFailEvent:function(e){var t=this.apiAttemptEvent(e),r=e.response,n=r.error;return r.httpResponse.statusCode>299?(n.code&&(t.AwsException=n.code),n.message&&(t.AwsExceptionMessage=n.message)):((n.code||n.name)&&(t.SdkException=n.code||n.name),n.message&&(t.SdkExceptionMessage=n.message)),t},attachMonitoringEmitter:function(e){var t,r,i,o,s,a,u=0,c=this;e.on(\"validate\",function(){o=n.util.realClock.now(),a=Date.now()},!0),e.on(\"sign\",function(){r=n.util.realClock.now(),t=Date.now(),s=e.httpRequest.region,u++},!0),e.on(\"validateResponse\",function(){i=Math.round(n.util.realClock.now()-r)}),e.addNamedListener(\"API_CALL_ATTEMPT\",\"success\",function(){var r=c.apiAttemptEvent(e);r.Timestamp=t,r.AttemptLatency=i>=0?i:0,r.Region=s,c.emit(\"apiCallAttempt\",[r])}),e.addNamedListener(\"API_CALL_ATTEMPT_RETRY\",\"retry\",function(){var o=c.attemptFailEvent(e);o.Timestamp=t,i=i||Math.round(n.util.realClock.now()-r),o.AttemptLatency=i>=0?i:0,o.Region=s,c.emit(\"apiCallAttempt\",[o])}),e.addNamedListener(\"API_CALL\",\"complete\",function(){var t=c.apiCallEvent(e);if(t.AttemptCount=u,!(t.AttemptCount<=0)){t.Timestamp=a;var r=Math.round(n.util.realClock.now()-o);t.Latency=r>=0?r:0;var i=e.response;i.error&&i.error.retryable&&\"number\"==typeof i.retryCount&&\"number\"==typeof i.maxRetries&&i.retryCount>=i.maxRetries&&(t.MaxRetriesExceeded=1),c.emit(\"apiCall\",[t])}})},setupRequestListeners:function(e){},getSigningName:function(){return this.api.signingName||this.api.endpointPrefix},getSignerClass:function(e){\nvar t,r=null,i=\"\";if(e){r=(e.service.api.operations||{})[e.operation]||null,i=r?r.authtype:\"\"}return t=this.config.signatureVersion?this.config.signatureVersion:\"v4\"===i||\"v4-unsigned-body\"===i?\"v4\":this.api.signatureVersion,n.Signers.RequestSigner.getVersion(t)},serviceInterface:function(){switch(this.api.protocol){case\"ec2\":case\"query\":return n.EventListeners.Query;case\"json\":return n.EventListeners.Json;case\"rest-json\":return n.EventListeners.RestJson;case\"rest-xml\":return n.EventListeners.RestXml}if(this.api.protocol)throw new Error(\"Invalid service `protocol' \"+this.api.protocol+\" in API config\")},successfulResponse:function(e){return e.httpResponse.statusCode<300},numRetries:function(){return void 0!==this.config.maxRetries?this.config.maxRetries:this.defaultRetryCount},retryDelays:function(e,t){return n.util.calculateRetryDelay(e,this.config.retryDelayOptions,t)},retryableError:function(e){return!!this.timeoutError(e)||(!!this.networkingError(e)||(!!this.expiredCredentialsError(e)||(!!this.throttledError(e)||e.statusCode>=500)))},networkingError:function(e){return\"NetworkingError\"===e.code},timeoutError:function(e){return\"TimeoutError\"===e.code},expiredCredentialsError:function(e){return\"ExpiredTokenException\"===e.code},clockSkewError:function(e){switch(e.code){case\"RequestTimeTooSkewed\":case\"RequestExpired\":case\"InvalidSignatureException\":case\"SignatureDoesNotMatch\":case\"AuthFailure\":case\"RequestInTheFuture\":return!0;default:return!1}},getSkewCorrectedDate:function(){return new Date(Date.now()+this.config.systemClockOffset)},applyClockOffset:function(e){e&&(this.config.systemClockOffset=e-Date.now())},isClockSkewed:function(e){if(e)return Math.abs(this.getSkewCorrectedDate().getTime()-e)>=3e5},throttledError:function(e){if(429===e.statusCode)return!0;switch(e.code){case\"ProvisionedThroughputExceededException\":case\"Throttling\":case\"ThrottlingException\":case\"RequestLimitExceeded\":case\"RequestThrottled\":case\"RequestThrottledException\":case\"TooManyRequestsException\":case\"TransactionInProgressException\":case\"EC2ThrottledException\":return!0;default:return!1}},endpointFromTemplate:function(e){if(\"string\"!=typeof e)return e;var t=e;return t=t.replace(/\\{service\\}/g,this.api.endpointPrefix),t=t.replace(/\\{region\\}/g,this.config.region),t=t.replace(/\\{scheme\\}/g,this.config.sslEnabled?\"https\":\"http\")},setEndpoint:function(e){this.endpoint=new n.Endpoint(e,this.config)},paginationConfig:function(e,t){var r=this.api.operations[e].paginator;if(!r){if(t){var i=new Error;throw n.util.error(i,\"No pagination configuration for \"+e)}return null}return r}}),n.util.update(n.Service,{defineMethods:function(e){n.util.each(e.prototype.api.operations,function(t){if(!e.prototype[t]){\"none\"===e.prototype.api.operations[t].authtype?e.prototype[t]=function(e,r){return this.makeUnauthenticatedRequest(t,e,r)}:e.prototype[t]=function(e,r){return this.makeRequest(t,e,r)}}})},defineService:function(e,t,r){n.Service._serviceMap[e]=!0,Array.isArray(t)||(r=t,t=[]);var i=s(n.Service,r||{});if(\"string\"==typeof e){n.Service.addVersions(i,t);var o=i.serviceIdentifier||e;i.serviceIdentifier=o}else i.prototype.api=e,n.Service.defineMethods(i);if(n.SequentialExecutor.call(this.prototype),!this.prototype.publisher&&n.util.clientSideMonitoring){var a=n.util.clientSideMonitoring.Publisher,u=n.util.clientSideMonitoring.configProvider,c=u();this.prototype.publisher=new a(c),c.enabled&&(n.Service._clientSideMonitoring=!0)}return n.SequentialExecutor.call(i.prototype),n.Service.addDefaultMonitoringListeners(i.prototype),i},addVersions:function(e,t){Array.isArray(t)||(t=[t]),e.services=e.services||{};for(var r=0;r604800){throw o.util.error(new Error,{code:\"InvalidExpiryTime\",message:\"Presigning does not support expiry time greater than a week with SigV4 signing.\",retryable:!1})}e.httpRequest.headers[a]=t}else{if(r!==o.Signers.S3)throw o.util.error(new Error,{message:\"Presigning only supports S3 or SigV4 signing.\",code:\"UnsupportedSigner\",retryable:!1});var n=e.service?e.service.getSkewCorrectedDate():o.util.date.getDate();e.httpRequest.headers[a]=parseInt(o.util.date.unixTimestamp(n)+t,10).toString()}}function i(e){var t=e.httpRequest.endpoint,r=o.util.urlParse(e.httpRequest.path),n={};r.search&&(n=o.util.queryStringParse(r.search.substr(1)));var i=e.httpRequest.headers.Authorization.split(\" \");if(\"AWS\"===i[0])i=i[1].split(\":\"),n.Signature=i.pop(),n.AWSAccessKeyId=i.join(\":\"),o.util.each(e.httpRequest.headers,function(e,t){e===a&&(e=\"Expires\"),0===e.indexOf(\"x-amz-meta-\")&&(delete n[e],e=e.toLowerCase()),n[e]=t}),delete e.httpRequest.headers[a],delete n.Authorization,delete n.Host;else if(\"AWS4-HMAC-SHA256\"===i[0]){i.shift();var s=i.join(\" \"),u=s.match(/Signature=(.*?)(?:,|\\s|\\r?\\n|$)/)[1];n[\"X-Amz-Signature\"]=u,delete n.Expires}t.pathname=r.pathname,t.search=o.util.queryParamsToString(n)}var o=e(\"../core\"),s=o.util.inherit,a=\"presigned-expires\";o.Signers.Presign=s({sign:function(e,t,r){if(e.httpRequest.headers[a]=t||3600,e.on(\"build\",n),e.on(\"sign\",i),e.removeListener(\"afterBuild\",o.EventListeners.Core.SET_CONTENT_LENGTH),e.removeListener(\"afterBuild\",o.EventListeners.Core.COMPUTE_SHA256),e.emit(\"beforePresign\",[e]),!r){if(e.build(),e.response.error)throw e.response.error;return o.util.urlFormat(e.httpRequest.endpoint)}e.build(function(){this.response.error?r(this.response.error):r(null,o.util.urlFormat(e.httpRequest.endpoint))})}}),t.exports=o.Signers.Presign},{\"../core\":20}],65:[function(e,t,r){var n=e(\"../core\"),i=n.util.inherit;n.Signers.RequestSigner=i({constructor:function(e){this.request=e},setServiceClientId:function(e){this.serviceClientId=e},getServiceClientId:function(){return this.serviceClientId}}),n.Signers.RequestSigner.getVersion=function(e){switch(e){case\"v2\":return n.Signers.V2;case\"v3\":return n.Signers.V3;case\"s3v4\":case\"v4\":return n.Signers.V4;case\"s3\":return n.Signers.S3;case\"v3https\":return n.Signers.V3Https}throw new Error(\"Unknown signing version \"+e)},e(\"./v2\"),e(\"./v3\"),e(\"./v3https\"),e(\"./v4\"),e(\"./s3\"),e(\"./presign\")},{\"../core\":20,\"./presign\":64,\"./s3\":66,\"./v2\":67,\"./v3\":68,\"./v3https\":69,\"./v4\":70}],66:[function(e,t,r){var n=e(\"../core\"),i=n.util.inherit;n.Signers.S3=i(n.Signers.RequestSigner,{subResources:{acl:1,accelerate:1,analytics:1,cors:1,lifecycle:1,delete:1,inventory:1,location:1,logging:1,metrics:1,notification:1,partNumber:1,policy:1,requestPayment:1,replication:1,restore:1,tagging:1,torrent:1,uploadId:1,uploads:1,versionId:1,versioning:1,versions:1,website:1},responseHeaders:{\"response-content-type\":1,\"response-content-language\":1,\"response-expires\":1,\"response-cache-control\":1,\"response-content-disposition\":1,\"response-content-encoding\":1},addAuthorization:function(e,t){this.request.headers[\"presigned-expires\"]||(this.request.headers[\"X-Amz-Date\"]=n.util.date.rfc822(t)),e.sessionToken&&(this.request.headers[\"x-amz-security-token\"]=e.sessionToken);var r=this.sign(e.secretAccessKey,this.stringToSign()),i=\"AWS \"+e.accessKeyId+\":\"+r;this.request.headers.Authorization=i},stringToSign:function(){var e=this.request,t=[];t.push(e.method),t.push(e.headers[\"Content-MD5\"]||\"\"),t.push(e.headers[\"Content-Type\"]||\"\"),t.push(e.headers[\"presigned-expires\"]||\"\");var r=this.canonicalizedAmzHeaders();return r&&t.push(r),t.push(this.canonicalizedResource()),t.join(\"\\n\")},canonicalizedAmzHeaders:function(){var e=[];n.util.each(this.request.headers,function(t){t.match(/^x-amz-/i)&&e.push(t)}),e.sort(function(e,t){return e.toLowerCase()=0?\"&\":\"?\";this.request.path+=o+n.util.queryParamsToString(i)},authorization:function(e,t){var r=[],n=this.credentialString(t);return r.push(this.algorithm+\" Credential=\"+e.accessKeyId+\"/\"+n),r.push(\"SignedHeaders=\"+this.signedHeaders()),r.push(\"Signature=\"+this.signature(e,t)),r.join(\", \")},signature:function(e,t){var r=i.getSigningKey(e,t.substr(0,8),this.request.region,this.serviceName,this.signatureCache);return n.util.crypto.hmac(r,this.stringToSign(t),\"hex\")},stringToSign:function(e){var t=[];return t.push(\"AWS4-HMAC-SHA256\"),t.push(e),t.push(this.credentialString(e)),t.push(this.hexEncodedHash(this.canonicalString())),t.join(\"\\n\")},canonicalString:function(){var e=[],t=this.request.pathname();return\"s3\"!==this.serviceName&&\"s3v4\"!==this.signatureVersion&&(t=n.util.uriEscapePath(t)),e.push(this.request.method),e.push(t),e.push(this.request.search()),e.push(this.canonicalHeaders()+\"\\n\"),e.push(this.signedHeaders()),e.push(this.hexEncodedBodyHash()),e.join(\"\\n\")},canonicalHeaders:function(){var e=[];n.util.each.call(this,this.request.headers,function(t,r){e.push([t,r])}),e.sort(function(e,t){return e[0].toLowerCase()50&&delete i[o.shift()]),f},emptyCache:function(){i={},o=[]}}},{\"../core\":20}],72:[function(e,t,r){function n(e,t){this.currentState=t||null,this.states=e||{}}n.prototype.runTo=function(e,t,r,n){\"function\"==typeof e&&(n=r,r=t,t=e,e=null);var i=this,o=i.states[i.currentState];o.fn.call(r||i,n,function(n){if(n){if(!o.fail)return t?t.call(r,n):null;i.currentState=o.fail}else{if(!o.accept)return t?t.call(r):null;i.currentState=o.accept}if(i.currentState===e)return t?t.call(r,n):null;i.runTo(e,t,r,n)})},n.prototype.addState=function(e,t,r,n){return\"function\"==typeof t?(n=t,t=null,r=null):\"function\"==typeof r&&(n=r,r=null),this.currentState||(this.currentState=e),this.states[e]={accept:t,fail:r,fn:n},this},t.exports=n},{}],73:[function(e,t,r){(function(r,n){(function(){var i,o={environment:\"nodejs\",engine:function(){if(o.isBrowser()&&\"undefined\"!=typeof navigator)return navigator.userAgent;var e=r.platform+\"/\"+r.version;return r.env.AWS_EXECUTION_ENV&&(e+=\" exec-env/\"+r.env.AWS_EXECUTION_ENV),e},userAgent:function(){var t=o.environment,r=\"aws-sdk-\"+t+\"/\"+e(\"./core\").VERSION;return\"nodejs\"===t&&(r+=\" \"+o.engine()),r},uriEscape:function(e){var t=encodeURIComponent(e);return t=t.replace(/[^A-Za-z0-9_.~\\-%]+/g,escape),t=t.replace(/[*]/g,function(e){return\"%\"+e.charCodeAt(0).toString(16).toUpperCase()})},uriEscapePath:function(e){var t=[];return o.arrayEach(e.split(\"/\"),function(e){t.push(o.uriEscape(e))}),t.join(\"/\")},urlParse:function(e){return o.url.parse(e)},urlFormat:function(e){return o.url.format(e)},queryStringParse:function(e){return o.querystring.parse(e)},queryParamsToString:function(e){var t=[],r=o.uriEscape,n=Object.keys(e).sort();return o.arrayEach(n,function(n){var i=e[n],s=r(n),a=s+\"=\";if(Array.isArray(i)){var u=[];o.arrayEach(i,function(e){u.push(r(e))}),a=s+\"=\"+u.sort().join(\"&\"+s+\"=\")}else void 0!==i&&null!==i&&(a=s+\"=\"+r(i));t.push(a)}),t.join(\"&\")},readFileSync:function(t){return o.isBrowser()?null:e(\"fs\").readFileSync(t,\"utf-8\")},base64:{encode:function(e){if(\"number\"==typeof e)throw o.error(new Error(\"Cannot base64 encode number \"+e));return null===e||void 0===e?e:o.buffer.toBuffer(e).toString(\"base64\")},decode:function(e){if(\"number\"==typeof e)throw o.error(new Error(\"Cannot base64 decode number \"+e));return null===e||void 0===e?e:o.buffer.toBuffer(e,\"base64\")}},buffer:{toBuffer:function(e,t){return\"function\"==typeof o.Buffer.from&&o.Buffer.from!==Uint8Array.from?o.Buffer.from(e,t):new o.Buffer(e,t)},alloc:function(e,t,r){if(\"number\"!=typeof e)throw new Error(\"size passed to alloc must be a number.\");if(\"function\"==typeof o.Buffer.alloc)return o.Buffer.alloc(e,t,r);var n=new o.Buffer(e);return void 0!==t&&\"function\"==typeof n.fill&&n.fill(t,void 0,void 0,r),n},toStream:function(e){o.Buffer.isBuffer(e)||(e=o.buffer.toBuffer(e));var t=new o.stream.Readable,r=0;return t._read=function(n){if(r>=e.length)return t.push(null);var i=r+n;i>e.length&&(i=e.length),t.push(e.slice(r,i)),r=i},t},concat:function(e){var t,r=0,n=0,i=null;for(t=0;t>>8^t[255&(r^e.readUInt8(n))]}return(-1^r)>>>0},hmac:function(e,t,r,n){return r||(r=\"binary\"),\"buffer\"===r&&(r=void 0),n||(n=\"sha256\"),\"string\"==typeof t&&(t=o.buffer.toBuffer(t)),o.crypto.lib.createHmac(n,e).update(t).digest(r)},md5:function(e,t,r){return o.crypto.hash(\"md5\",e,t,r)},sha256:function(e,t,r){return o.crypto.hash(\"sha256\",e,t,r)},hash:function(e,t,r,n){var i=o.crypto.createHash(e);r||(r=\"binary\"),\"buffer\"===r&&(r=void 0),\"string\"==typeof t&&(t=o.buffer.toBuffer(t));var s=o.arraySliceFn(t),a=o.Buffer.isBuffer(t);if(o.isBrowser()&&\"undefined\"!=typeof ArrayBuffer&&t&&t.buffer instanceof ArrayBuffer&&(a=!0),n&&\"object\"==typeof t&&\"function\"==typeof t.on&&!a)t.on(\"data\",function(e){i.update(e)}),t.on(\"error\",function(e){n(e)}),t.on(\"end\",function(){n(null,i.digest(r))});else{if(!n||!s||a||\"undefined\"==typeof FileReader){o.isBrowser()&&\"object\"==typeof t&&!a&&(t=new o.Buffer(new Uint8Array(t)));var u=i.update(t).digest(r);return n&&n(null,u),u}var c=0,l=new FileReader;l.onerror=function(){n(new Error(\"Failed to read data.\"))},l.onload=function(){var e=new o.Buffer(new Uint8Array(l.result));i.update(e),c+=e.length,l._continueReading()},l._continueReading=function(){if(c>=t.size)return void n(null,i.digest(r));var e=c+524288;e>t.size&&(e=t.size),l.readAsArrayBuffer(s.call(t,c,e))},l._continueReading()}},toHex:function(e){for(var t=[],r=0;r=3e5,!1),i.config.isClockSkewed},applyClockOffset:function(e){e&&(i.config.systemClockOffset=e-(new Date).getTime())},extractRequestId:function(e){var t=e.httpResponse.headers[\"x-amz-request-id\"]||e.httpResponse.headers[\"x-amzn-requestid\"];!t&&e.data&&e.data.ResponseMetadata&&(t=e.data.ResponseMetadata.RequestId),t&&(e.requestId=t),e.error&&(e.error.requestId=t)},addPromises:function(e,t){var r=!1;void 0===t&&i&&i.config&&(t=i.config.getPromisesDependency()),void 0===t&&\"undefined\"!=typeof Promise&&(t=Promise),\"function\"!=typeof t&&(r=!0),Array.isArray(e)||(e=[e]);for(var n=0;n=0)return a++,void setTimeout(c,i+(e.retryAfter||0))}r(e)},c=function(){var t=\"\";n.handleRequest(e,s,function(e){e.on(\"data\",function(e){t+=e.toString()}),e.on(\"end\",function(){var n=e.statusCode;if(n<300)r(null,t);else{var i=1e3*parseInt(e.headers[\"retry-after\"],10)||0,s=o.error(new Error,{statusCode:n,retryable:n>=500||429===n});i&&s.retryable&&(s.retryAfter=i),u(s)}})},u)};i.util.defer(c)},uuid:{v4:function(){return e(\"uuid\").v4()}},convertPayloadToString:function(e){var t=e.request,r=t.operation,n=t.service.api.operations[r].output||{};n.payload&&e.data[n.payload]&&(e.data[n.payload]=e.data[n.payload].toString())},defer:function(e){\"object\"==typeof r&&\"function\"==typeof r.nextTick?r.nextTick(e):\"function\"==typeof n?n(e):setTimeout(e,0)},getRequestPayloadShape:function(e){var t=e.service.api.operations;if(t){var r=(t||{})[e.operation];if(r&&r.input&&r.input.payload)return r.input.members[r.input.payload]}},getProfilesFromSharedConfig:function(e,t){function n(e,t){for(var r=0,n=Object.keys(t);r=6},parse:function(e){var t=e.split(\":\");return{partition:t[1],service:t[2],region:t[3],accountId:t[4],resource:t.slice(5).join(\":\")}},build:function(e){if(void 0===e.service||void 0===e.region||void 0===e.accountId||void 0===e.resource)throw o.error(new Error(\"Input ARN object is invalid\"));return\"arn:\"+(e.partition||\"aws\")+\":\"+e.service+\":\"+e.region+\":\"+e.accountId+\":\"+e.resource}},defaultProfile:\"default\",configOptInEnv:\"AWS_SDK_LOAD_CONFIG\",sharedCredentialsFileEnv:\"AWS_SHARED_CREDENTIALS_FILE\",sharedConfigFileEnv:\"AWS_CONFIG_FILE\",imdsDisabledEnv:\"AWS_EC2_METADATA_DISABLED\"};t.exports=o}).call(this)}).call(this,e(\"_process\"),e(\"timers\").setImmediate)},{\"../apis/metadata.json\":5,\"./core\":20,_process:87,fs:81,timers:95,uuid:100}],74:[function(e,t,r){function n(){}function i(e,t){for(var r=e.getElementsByTagName(t),n=0,i=r.length;n0||n?o.toString():\"\"},t.exports=n},{\"../util\":73,\"./xml-node\":78,\"./xml-text\":79}],76:[function(e,t,r){function n(e){return e.replace(/&/g,\"&\").replace(/'/g,\"'\").replace(//g,\">\").replace(/\"/g,\""\")}t.exports={escapeAttribute:n}},{}],77:[function(e,t,r){function n(e){return e.replace(/&/g,\"&\").replace(//g,\">\")}t.exports={escapeElement:n}},{}],78:[function(e,t,r){function n(e,t){void 0===t&&(t=[]),this.name=e,this.children=t,this.attributes={}}var i=e(\"./escape-attribute\").escapeAttribute;n.prototype.addAttribute=function(e,t){return this.attributes[e]=t,this},n.prototype.addChildNode=function(e){return this.children.push(e),this},n.prototype.removeAttribute=function(e){return delete this.attributes[e],this},n.prototype.toString=function(){for(var e=Boolean(this.children.length),t=\"<\"+this.name,r=this.attributes,n=0,o=Object.keys(r);n\"+this.children.map(function(e){return e.toString()}).join(\"\")+\"\":\"/>\"},t.exports={XmlNode:n}},{\"./escape-attribute\":76}],79:[function(e,t,r){function n(e){this.value=e}var i=e(\"./escape-element\").escapeElement;n.prototype.toString=function(){return i(\"\"+this.value)},t.exports={XmlText:n}},{\"./escape-element\":77}],80:[function(e,t,r){\"use strict\";function n(e){var t=e.length;if(t%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=e.indexOf(\"=\");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function i(e){var t=n(e),r=t[0],i=t[1];return 3*(r+i)/4-i}function o(e,t,r){return 3*(t+r)/4-r}function s(e){var t,r,i=n(e),s=i[0],a=i[1],u=new h(o(e,s,a)),c=0,l=a>0?s-4:s;for(r=0;r>16&255,u[c++]=t>>8&255,u[c++]=255&t;return 2===a&&(t=p[e.charCodeAt(r)]<<2|p[e.charCodeAt(r+1)]>>4,u[c++]=255&t),1===a&&(t=p[e.charCodeAt(r)]<<10|p[e.charCodeAt(r+1)]<<4|p[e.charCodeAt(r+2)]>>2,u[c++]=t>>8&255,u[c++]=255&t),u}function a(e){return l[e>>18&63]+l[e>>12&63]+l[e>>6&63]+l[63&e]}function u(e,t,r){for(var n,i=[],o=t;os?s:o+16383));return 1===n?(t=e[r-1],i.push(l[t>>2]+l[t<<4&63]+\"==\")):2===n&&(t=(e[r-2]<<8)+e[r-1],i.push(l[t>>10]+l[t>>4&63]+l[t<<2&63]+\"=\")),i.join(\"\")}r.byteLength=i,r.toByteArray=s,r.fromByteArray=c;for(var l=[],p=[],h=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,f=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",d=0,m=f.length;d=n())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+n().toString(16)+\" bytes\");return 0|e}function m(e){return+e!=e&&(e=0),o.alloc(+e)}function v(e,t){if(o.isBuffer(e))return e.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;\"string\"!=typeof e&&(e=\"\"+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":case void 0:return V(e).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return X(e).length;default:if(n)return V(e).length;t=(\"\"+t).toLowerCase(),n=!0}}function g(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if(r>>>=0,t>>>=0,r<=t)return\"\";for(e||(e=\"utf8\");;)switch(e){case\"hex\":return q(this,t,r);case\"utf8\":case\"utf-8\":return T(this,t,r);case\"ascii\":return k(this,t,r);case\"latin1\":case\"binary\":return P(this,t,r);case\"base64\":return x(this,t,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return L(this,t,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+e);e=(e+\"\").toLowerCase(),n=!0}}function y(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function b(e,t,r,n,i){if(0===e.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if(\"string\"==typeof t&&(t=o.from(t,n)),o.isBuffer(t))return 0===t.length?-1:w(e,t,r,n,i);if(\"number\"==typeof t)return t&=255,o.TYPED_ARRAY_SUPPORT&&\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):w(e,[t],r,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function w(e,t,r,n,i){function o(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}var s=1,a=e.length,u=t.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,u/=2,r/=2}var c;if(i){var l=-1;for(c=r;ca&&(r=a-u),c=r;c>=0;c--){for(var p=!0,h=0;hi&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError(\"Invalid hex string\");n>o/2&&(n=o/2);for(var s=0;s239?4:o>223?3:o>191?2:1;if(i+a<=r){var u,c,l,p;switch(a){case 1:o<128&&(s=o);break;case 2:u=e[i+1],128==(192&u)&&(p=(31&o)<<6|63&u)>127&&(s=p);break;case 3:u=e[i+1],c=e[i+2],128==(192&u)&&128==(192&c)&&(p=(15&o)<<12|(63&u)<<6|63&c)>2047&&(p<55296||p>57343)&&(s=p);break;case 4:u=e[i+1],c=e[i+2],l=e[i+3],128==(192&u)&&128==(192&c)&&128==(192&l)&&(p=(15&o)<<18|(63&u)<<12|(63&c)<<6|63&l)>65535&&p<1114112&&(s=p)}}null===s?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|1023&s),n.push(s),i+=a}return I(n)}function I(e){var t=e.length;if(t<=Q)return String.fromCharCode.apply(String,e);for(var r=\"\",n=0;nn)&&(r=n);for(var i=\"\",o=t;or)throw new RangeError(\"Trying to access beyond buffer length\")}function N(e,t,r,n,i,s){if(!o.isBuffer(e))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError(\"Index out of range\")}function U(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function D(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function M(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function j(e,t,r,n,i){return i||M(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,r,n,23,4),r+4}function B(e,t,r,n,i){return i||M(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,r,n,52,8),r+8}function F(e){if(e=z(e).replace(ee,\"\"),e.length<2)return\"\";for(;e.length%4!=0;)e+=\"=\";return e}function z(e){return e.trim?e.trim():e.replace(/^\\s+|\\s+$/g,\"\")}function H(e){return e<16?\"0\"+e.toString(16):e.toString(16)}function V(e,t){t=t||1/0;for(var r,n=e.length,i=null,o=[],s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function W(e){for(var t=[],r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function X(e){return J.toByteArray(F(e))}function G(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function Y(e){return e!==e}var J=e(\"base64-js\"),Z=e(\"ieee754\"),$=e(\"isarray\");r.Buffer=o,r.SlowBuffer=m,r.INSPECT_MAX_BYTES=50,o.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&\"function\"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),r.kMaxLength=n(),o.poolSize=8192,o._augment=function(e){return e.__proto__=o.prototype,e},o.from=function(e,t,r){return s(null,e,t,r)},o.TYPED_ARRAY_SUPPORT&&(o.prototype.__proto__=Uint8Array.prototype,o.__proto__=Uint8Array,\"undefined\"!=typeof Symbol&&Symbol.species&&o[Symbol.species]===o&&Object.defineProperty(o,Symbol.species,{value:null,configurable:!0})),o.alloc=function(e,t,r){return u(null,e,t,r)},o.allocUnsafe=function(e){return c(null,e)},o.allocUnsafeSlow=function(e){return c(null,e)},o.isBuffer=function(e){return!(null==e||!e._isBuffer)},o.compare=function(e,t){if(!o.isBuffer(e)||!o.isBuffer(t))throw new TypeError(\"Arguments must be Buffers\");if(e===t)return 0;for(var r=e.length,n=t.length,i=0,s=Math.min(r,n);i0&&(e=this.toString(\"hex\",0,t).match(/.{2}/g).join(\" \"),this.length>t&&(e+=\" ... \")),\"\"},o.prototype.compare=function(e,t,r,n,i){if(!o.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError(\"out of range index\");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;for(var s=i-n,a=r-t,u=Math.min(s,a),c=this.slice(n,i),l=e.slice(t,r),p=0;pi)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");for(var o=!1;;)switch(n){case\"hex\":return E(this,e,t,r);case\"utf8\":case\"utf-8\":return S(this,e,t,r);case\"ascii\":return _(this,e,t,r);case\"latin1\":case\"binary\":return C(this,e,t,r);case\"base64\":return A(this,e,t,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return R(this,e,t,r);default:if(o)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),o=!0}},o.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};var Q=4096;o.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)n+=this[e+--t]*i;return n},o.prototype.readUInt8=function(e,t){return t||O(e,1,this.length),this[e]},o.prototype.readUInt16LE=function(e,t){return t||O(e,2,this.length),this[e]|this[e+1]<<8},o.prototype.readUInt16BE=function(e,t){return t||O(e,2,this.length),this[e]<<8|this[e+1]},o.prototype.readUInt32LE=function(e,t){return t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},o.prototype.readUInt32BE=function(e,t){return t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},o.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=this[e],i=1,o=0;++o=i&&(n-=Math.pow(2,8*t)),n},o.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},o.prototype.readInt8=function(e,t){return t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},o.prototype.readInt16LE=function(e,t){t||O(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},o.prototype.readInt16BE=function(e,t){t||O(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},o.prototype.readInt32LE=function(e,t){return t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},o.prototype.readInt32BE=function(e,t){return t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},o.prototype.readFloatLE=function(e,t){return t||O(e,4,this.length),Z.read(this,e,!0,23,4)},o.prototype.readFloatBE=function(e,t){return t||O(e,4,this.length),Z.read(this,e,!1,23,4)},o.prototype.readDoubleLE=function(e,t){return t||O(e,8,this.length),Z.read(this,e,!0,52,8)},o.prototype.readDoubleBE=function(e,t){return t||O(e,8,this.length),Z.read(this,e,!1,52,8)},o.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t|=0,r|=0,!n){N(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+r},o.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,1,255,0),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},o.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):U(this,e,t,!0),t+2},o.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):U(this,e,t,!1),t+2},o.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):D(this,e,t,!0),t+4},o.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},o.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);N(this,e,t,r,i-1,-i)}var o=0,s=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+r},o.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);N(this,e,t,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+r},o.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,1,127,-128),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},o.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):U(this,e,t,!0),t+2},o.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):U(this,e,t,!1),t+2},o.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,4,2147483647,-2147483648),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):D(this,e,t,!0),t+4},o.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},o.prototype.writeFloatLE=function(e,t,r){return j(this,e,t,!0,r)},o.prototype.writeFloatBE=function(e,t,r){return j(this,e,t,!1,r)},o.prototype.writeDoubleLE=function(e,t,r){return B(this,e,t,!0,r)},o.prototype.writeDoubleBE=function(e,t,r){return B(this,e,t,!1,r)},o.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError(\"sourceStart out of bounds\");if(n<0)throw new RangeError(\"sourceEnd out of bounds\");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(s<1e3||!o.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var s;if(\"number\"==typeof e)for(s=t;s0&&this._events[e].length>r&&(this._events[e].warned=!0,\nconsole.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[e].length),\"function\"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError(\"listener must be a function\");var n=!1;return r.listener=t,this.on(e,r),this},n.prototype.removeListener=function(e,t){var r,n,o,a;if(!i(t))throw TypeError(\"listener must be a function\");if(!this._events||!this._events[e])return this;if(r=this._events[e],o=r.length,n=-1,r===t||i(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit(\"removeListener\",e,t);else if(s(r)){for(a=o;a-- >0;)if(r[a]===t||r[a].listener&&r[a].listener===t){n=a;break}if(n<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(n,1),this._events.removeListener&&this.emit(\"removeListener\",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)\"removeListener\"!==t&&this.removeAllListeners(t);return this.removeAllListeners(\"removeListener\"),this._events={},this}if(r=this._events[e],i(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){return this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},{}],84:[function(e,t,r){r.read=function(e,t,r,n,i){var o,s,a=8*i-n-1,u=(1<>1,l=-7,p=r?i-1:0,h=r?-1:1,f=e[t+p];for(p+=h,o=f&(1<<-l)-1,f>>=-l,l+=a;l>0;o=256*o+e[t+p],p+=h,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=n;l>0;s=256*s+e[t+p],p+=h,l-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,n),o-=c}return(f?-1:1)*s*Math.pow(2,o-n)},r.write=function(e,t,r,n,i,o){var s,a,u,c=8*o-i-1,l=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,d=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),t+=s+p>=1?h/u:h*Math.pow(2,1-p),t*u>=2&&(s++,u/=2),s+p>=l?(a=0,s=l):s+p>=1?(a=(t*u-1)*Math.pow(2,i),s+=p):(a=t*Math.pow(2,p-1)*Math.pow(2,i),s=0));i>=8;e[r+f]=255&a,f+=d,a/=256,i-=8);for(s=s<0;e[r+f]=255&s,f+=d,s/=256,c-=8);e[r+f-d]|=128*m}},{}],85:[function(e,t,r){var n={}.toString;t.exports=Array.isArray||function(e){return\"[object Array]\"==n.call(e)}},{}],86:[function(e,t,r){!function(e){\"use strict\";function t(e){return null!==e&&\"[object Array]\"===Object.prototype.toString.call(e)}function r(e){return null!==e&&\"[object Object]\"===Object.prototype.toString.call(e)}function n(e,i){if(e===i)return!0;if(Object.prototype.toString.call(e)!==Object.prototype.toString.call(i))return!1;if(!0===t(e)){if(e.length!==i.length)return!1;for(var o=0;o=\"a\"&&e<=\"z\"||e>=\"A\"&&e<=\"Z\"||\"_\"===e}function a(e){return e>=\"0\"&&e<=\"9\"||\"-\"===e}function u(e){return e>=\"a\"&&e<=\"z\"||e>=\"A\"&&e<=\"Z\"||e>=\"0\"&&e<=\"9\"||\"_\"===e}function c(){}function l(){}function p(e){this.runtime=e}function h(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[g]}]},avg:{_func:this._functionAvg,_signature:[{types:[_]}]},ceil:{_func:this._functionCeil,_signature:[{types:[g]}]},contains:{_func:this._functionContains,_signature:[{types:[b,w]},{types:[y]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[b]},{types:[b]}]},floor:{_func:this._functionFloor,_signature:[{types:[g]}]},length:{_func:this._functionLength,_signature:[{types:[b,w,E]}]},map:{_func:this._functionMap,_signature:[{types:[S]},{types:[w]}]},max:{_func:this._functionMax,_signature:[{types:[_,C]}]},merge:{_func:this._functionMerge,_signature:[{types:[E],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[w]},{types:[S]}]},sum:{_func:this._functionSum,_signature:[{types:[_]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[b]},{types:[b]}]},min:{_func:this._functionMin,_signature:[{types:[_,C]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[w]},{types:[S]}]},type:{_func:this._functionType,_signature:[{types:[y]}]},keys:{_func:this._functionKeys,_signature:[{types:[E]}]},values:{_func:this._functionValues,_signature:[{types:[E]}]},sort:{_func:this._functionSort,_signature:[{types:[C,_]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[w]},{types:[S]}]},join:{_func:this._functionJoin,_signature:[{types:[b]},{types:[C]}]},reverse:{_func:this._functionReverse,_signature:[{types:[b,w]}]},to_array:{_func:this._functionToArray,_signature:[{types:[y]}]},to_string:{_func:this._functionToString,_signature:[{types:[y]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[y]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[y],variadic:!0}]}}}function f(e){return(new l).parse(e)}function d(e){return(new c).tokenize(e)}function m(e,t){var r=new l,n=new h,i=new p(n);n._interpreter=i;var o=r.parse(t);return i.search(o,e)}var v;v=\"function\"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\\s*(.*)/)[1]};var g=0,y=1,b=2,w=3,E=4,S=6,_=8,C=9,A={\".\":\"Dot\",\"*\":\"Star\",\",\":\"Comma\",\":\":\"Colon\",\"{\":\"Lbrace\",\"}\":\"Rbrace\",\"]\":\"Rbracket\",\"(\":\"Lparen\",\")\":\"Rparen\",\"@\":\"Current\"},R={\"<\":!0,\">\":!0,\"=\":!0,\"!\":!0},x={\" \":!0,\"\\t\":!0,\"\\n\":!0};c.prototype={tokenize:function(e){var t=[];this._current=0;for(var r,n,i;this._current\"===r?\"=\"===e[this._current]?(this._current++,{type:\"GTE\",value:\">=\",start:t}):{type:\"GT\",value:\">\",start:t}:\"=\"===r&&\"=\"===e[this._current]?(this._current++,{type:\"EQ\",value:\"==\",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t,r=this._current,n=e.length;\"`\"!==e[this._current]&&this._current=0)return!0;if(r.indexOf(e)>=0)return!0;if(!(n.indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(e){return!1}}};var T={};T.EOF=0,T.UnquotedIdentifier=0,T.QuotedIdentifier=0,T.Rbracket=0,T.Rparen=0,T.Comma=0,T.Rbrace=0,T.Number=0,T.Current=0,T.Expref=0,T.Pipe=1,T.Or=2,T.And=3,T.EQ=5,T.GT=5,T.LT=5,T.GTE=5,T.LTE=5,T.NE=5,T.Flatten=9,T.Star=20,T.Filter=21,T.Dot=40,T.Not=45,T.Lbrace=50,T.Lbracket=55,T.Lparen=60,l.prototype={parse:function(e){this._loadTokens(e),this.index=0;var t=this.expression(0);if(\"EOF\"!==this._lookahead(0)){var r=this._lookaheadToken(0),n=new Error(\"Unexpected token type: \"+r.type+\", value: \"+r.value);throw n.name=\"ParserError\",n}return t},_loadTokens:function(e){var t=new c,r=t.tokenize(e);r.push({type:\"EOF\",value:\"\",start:e.length}),this.tokens=r},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var r=this.nud(t),n=this._lookahead(0);e=0?this.expression(e):\"Lbracket\"===t?(this._match(\"Lbracket\"),this._parseMultiselectList()):\"Lbrace\"===t?(this._match(\"Lbrace\"),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(e){var t;if(T[this._lookahead(0)]<10)t={type:\"Identity\"};else if(\"Lbracket\"===this._lookahead(0))t=this.expression(e);else if(\"Filter\"===this._lookahead(0))t=this.expression(e);else{if(\"Dot\"!==this._lookahead(0)){var r=this._lookaheadToken(0),n=new Error(\"Sytanx error, unexpected token: \"+r.value+\"(\"+r.type+\")\");throw n.name=\"ParserError\",n}this._match(\"Dot\"),t=this._parseDotRHS(e)}return t},_parseMultiselectList:function(){for(var e=[];\"Rbracket\"!==this._lookahead(0);){var t=this.expression(0);if(e.push(t),\"Comma\"===this._lookahead(0)&&(this._match(\"Comma\"),\"Rbracket\"===this._lookahead(0)))throw new Error(\"Unexpected token Rbracket\")}return this._match(\"Rbracket\"),{type:\"MultiSelectList\",children:e}},_parseMultiselectHash:function(){for(var e,t,r,n,i=[],o=[\"UnquotedIdentifier\",\"QuotedIdentifier\"];;){if(e=this._lookaheadToken(0),o.indexOf(e.type)<0)throw new Error(\"Expecting an identifier token, got: \"+e.type);if(t=e.value,this._advance(),this._match(\"Colon\"),r=this.expression(0),n={type:\"KeyValuePair\",name:t,value:r},i.push(n),\"Comma\"===this._lookahead(0))this._match(\"Comma\");else if(\"Rbrace\"===this._lookahead(0)){this._match(\"Rbrace\");break}}return{type:\"MultiSelectHash\",children:i}}},p.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,s){var a,u,c,l,p,h,f,d,m;switch(e.type){case\"Field\":return null===s?null:r(s)?(h=s[e.name],void 0===h?null:h):null;case\"Subexpression\":for(c=this.visit(e.children[0],s),m=1;m0)for(m=b;mw;m+=E)c.push(s[m]);return c;case\"Projection\":var S=this.visit(e.children[0],s);if(!t(S))return null;for(d=[],m=0;mp;break;case\"GTE\":c=l>=p;break;case\"LT\":c=l=e&&(t=r<0?e-1:e),t}},h.prototype={callFunction:function(e,t){var r=this.functionTable[e];if(void 0===r)throw new Error(\"Unknown function: \"+e+\"()\");return this._validateArgs(e,t,r._signature),r._func.call(this,t)},_validateArgs:function(e,t,r){var n;if(r[r.length-1].variadic){if(t.length=0;n--)r+=t[n];return r}var i=e[0].slice(0);return i.reverse(),i},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,r=e[0],n=0;n=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return r(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],r=this._interpreter,n=e[0],i=e[1],o=0;o0){if(this._getTypeName(e[0][0])===g)return Math.max.apply(Math,e[0]);for(var t=e[0],r=t[0],n=1;n0){if(this._getTypeName(e[0][0])===g)return Math.min.apply(Math,e[0]);for(var t=e[0],r=t[0],n=1;na?1:ss&&(s=r,t=i[a]);return t},_functionMinBy:function(e){for(var t,r,n=e[1],i=e[0],o=this.createKeyFunction(n,[g,b]),s=1/0,a=0;a1)for(var r=1;r1&&(n=r[0]+\"@\",e=r[1]),e=e.replace(q,\".\"),n+o(e.split(\".\"),t).join(\".\")}function a(e){for(var t,r,n=[],i=0,o=e.length;i=55296&&t<=56319&&i65535&&(e-=65536,t+=U(e>>>10&1023|55296),e=56320|1023&e),t+=U(e)}).join(\"\")}function c(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:S}function l(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function p(e,t,r){var n=0;for(e=r?N(e/R):e>>1,e+=N(e/t);e>O*C>>1;n+=S)e=N(e/O);return N(n+(O+1)*e/(e+A))}function h(e){var t,r,n,o,s,a,l,h,f,d,m=[],v=e.length,g=0,y=T,b=x;for(r=e.lastIndexOf(I),r<0&&(r=0),n=0;n=128&&i(\"not-basic\"),m.push(e.charCodeAt(n));for(o=r>0?r+1:0;o=v&&i(\"invalid-input\"),h=c(e.charCodeAt(o++)),(h>=S||h>N((E-g)/a))&&i(\"overflow\"),g+=h*a,f=l<=b?_:l>=b+C?C:l-b,!(hN(E/d)&&i(\"overflow\"),a*=d;t=m.length+1,b=p(g-s,t,0==s),N(g/t)>E-y&&i(\"overflow\"),y+=N(g/t),g%=t,m.splice(g++,0,y)}return u(m)}function f(e){var t,r,n,o,s,u,c,h,f,d,m,v,g,y,b,w=[];for(e=a(e),v=e.length,t=T,r=0,s=x,u=0;u=t&&mN((E-r)/g)&&i(\"overflow\"),r+=(c-t)*g,t=c,u=0;uE&&i(\"overflow\"),m==t){for(h=r,f=S;d=f<=s?_:f>=s+C?C:f-s,!(h= 0x80 (not a basic code point)\",\"invalid-input\":\"Invalid input\"},O=S-_,N=Math.floor,U=String.fromCharCode;if(b={version:\"1.3.2\",ucs2:{decode:a,encode:u},decode:h,encode:f,toASCII:m,toUnicode:d},\"function\"==typeof define&&\"object\"==typeof define.amd&&define.amd)define(\"punycode\",function(){return b});else if(v&&g)if(t.exports==v)g.exports=b;else for(w in b)b.hasOwnProperty(w)&&(v[w]=b[w]);else n.punycode=b}(this)}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],89:[function(e,t,r){\"use strict\";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.exports=function(e,t,r,o){t=t||\"&\",r=r||\"=\";var s={};if(\"string\"!=typeof e||0===e.length)return s;var a=/\\+/g;e=e.split(t);var u=1e3;o&&\"number\"==typeof o.maxKeys&&(u=o.maxKeys);var c=e.length;u>0&&c>u&&(c=u);for(var l=0;l=0?(p=m.substr(0,v),h=m.substr(v+1)):(p=m,h=\"\"),f=decodeURIComponent(p),d=decodeURIComponent(h),n(s,f)?i(s[f])?s[f].push(d):s[f]=[s[f],d]:s[f]=d}return s};var i=Array.isArray||function(e){return\"[object Array]\"===Object.prototype.toString.call(e)}},{}],90:[function(e,t,r){\"use strict\";function n(e,t){if(e.map)return e.map(t);for(var r=[],n=0;n0&&u>a&&(u=a);for(var c=0;c=0?(l=d.substr(0,m),p=d.substr(m+1)):(l=d,p=\"\"),h=decodeURIComponent(l),f=decodeURIComponent(p),n(o,h)?Array.isArray(o[h])?o[h].push(f):o[h]=[o[h],f]:o[h]=f}return o}},{}],93:[function(e,t,r){\"use strict\";var n=function(e){switch(typeof e){case\"string\":return e;case\"boolean\":return e?\"true\":\"false\";case\"number\":return isFinite(e)?e:\"\";default:return\"\"}};t.exports=function(e,t,r,i){return t=t||\"&\",r=r||\"=\",null===e&&(e=void 0),\"object\"==typeof e?Object.keys(e).map(function(i){var o=encodeURIComponent(n(i))+r;return Array.isArray(e[i])?e[i].map(function(e){return o+encodeURIComponent(n(e))}).join(t):o+encodeURIComponent(n(e[i]))}).join(t):i?encodeURIComponent(n(i))+r+encodeURIComponent(n(e)):\"\"}\n},{}],94:[function(e,t,r){arguments[4][91][0].apply(r,arguments)},{\"./decode\":92,\"./encode\":93,dup:91}],95:[function(e,t,r){(function(t,n){(function(){function i(e,t){this._id=e,this._clearFn=t}var o=e(\"process/browser.js\").nextTick,s=Function.prototype.apply,a=Array.prototype.slice,u={},c=0;r.setTimeout=function(){return new i(s.call(setTimeout,window,arguments),clearTimeout)},r.setInterval=function(){return new i(s.call(setInterval,window,arguments),clearInterval)},r.clearTimeout=r.clearInterval=function(e){e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(window,this._id)},r.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},r.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},r._unrefActive=r.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},r.setImmediate=\"function\"==typeof t?t:function(e){var t=c++,n=!(arguments.length<2)&&a.call(arguments,1);return u[t]=!0,o(function(){u[t]&&(n?e.apply(null,n):e.call(null),r.clearImmediate(t))}),t},r.clearImmediate=\"function\"==typeof n?n:function(e){delete u[e]}}).call(this)}).call(this,e(\"timers\").setImmediate,e(\"timers\").clearImmediate)},{\"process/browser.js\":87,timers:95}],96:[function(e,t,r){function n(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function i(e,t,r){if(e&&c(e)&&e instanceof n)return e;var i=new n;return i.parse(e,t,r),i}function o(e){return u(e)&&(e=i(e)),e instanceof n?e.format():n.prototype.format.call(e)}function s(e,t){return i(e,!1,!0).resolve(t)}function a(e,t){return e?i(e,!1,!0).resolveObject(t):t}function u(e){return\"string\"==typeof e}function c(e){return\"object\"==typeof e&&null!==e}function l(e){return null===e}function p(e){return null==e}var h=e(\"punycode\");r.parse=i,r.resolve=s,r.resolveObject=a,r.format=o,r.Url=n;var f=/^([a-z0-9.+-]+:)/i,d=/:[0-9]*$/,m=[\"<\",\">\",'\"',\"`\",\" \",\"\\r\",\"\\n\",\"\\t\"],v=[\"{\",\"}\",\"|\",\"\\\\\",\"^\",\"`\"].concat(m),g=[\"'\"].concat(v),y=[\"%\",\"/\",\"?\",\";\",\"#\"].concat(g),b=[\"/\",\"?\",\"#\"],w=/^[a-z0-9A-Z_-]{0,63}$/,E=/^([a-z0-9A-Z_-]{0,63})(.*)$/,S={javascript:!0,\"javascript:\":!0},_={javascript:!0,\"javascript:\":!0},C={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,\"http:\":!0,\"https:\":!0,\"ftp:\":!0,\"gopher:\":!0,\"file:\":!0},A=e(\"querystring\");n.prototype.parse=function(e,t,r){if(!u(e))throw new TypeError(\"Parameter 'url' must be a string, not \"+typeof e);var n=e;n=n.trim();var i=f.exec(n);if(i){i=i[0];var o=i.toLowerCase();this.protocol=o,n=n.substr(i.length)}if(r||i||n.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)){var s=\"//\"===n.substr(0,2);!s||i&&_[i]||(n=n.substr(2),this.slashes=!0)}if(!_[i]&&(s||i&&!C[i])){for(var a=-1,c=0;c127?T+=\"x\":T+=x[I];if(!T.match(w)){var P=v.slice(0,c),q=v.slice(c+1),L=x.match(E);L&&(P.push(L[1]),q.unshift(L[2])),q.length&&(n=\"/\"+q.join(\".\")+n),this.hostname=P.join(\".\");break}}}if(this.hostname.length>255?this.hostname=\"\":this.hostname=this.hostname.toLowerCase(),!m){for(var O=this.hostname.split(\".\"),N=[],c=0;c0)&&r.host.split(\"@\");v&&(r.auth=v.shift(),r.host=r.hostname=v.shift())}return r.search=e.search,r.query=e.query,l(r.pathname)&&l(r.search)||(r.path=(r.pathname?r.pathname:\"\")+(r.search?r.search:\"\")),r.href=r.format(),r}if(!d.length)return r.pathname=null,r.search?r.path=\"/\"+r.search:r.path=null,r.href=r.format(),r;for(var g=d.slice(-1)[0],y=(r.host||e.host)&&(\".\"===g||\"..\"===g)||\"\"===g,b=0,w=d.length;w>=0;w--)g=d[w],\".\"==g?d.splice(w,1):\"..\"===g?(d.splice(w,1),b++):b&&(d.splice(w,1),b--);if(!h&&!f)for(;b--;b)d.unshift(\"..\");!h||\"\"===d[0]||d[0]&&\"/\"===d[0].charAt(0)||d.unshift(\"\"),y&&\"/\"!==d.join(\"/\").substr(-1)&&d.push(\"\");var E=\"\"===d[0]||d[0]&&\"/\"===d[0].charAt(0);if(m){r.hostname=r.host=E?\"\":d.length?d.shift():\"\";var v=!!(r.host&&r.host.indexOf(\"@\")>0)&&r.host.split(\"@\");v&&(r.auth=v.shift(),r.host=r.hostname=v.shift())}return h=h||r.host&&d.length,h&&!E&&d.unshift(\"\"),d.length?r.pathname=d.join(\"/\"):(r.pathname=null,r.path=null),l(r.pathname)&&l(r.search)||(r.path=(r.pathname?r.pathname:\"\")+(r.search?r.search:\"\")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},n.prototype.parseHost=function(){var e=this.host,t=d.exec(e);t&&(t=t[0],\":\"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},{punycode:88,querystring:91}],97:[function(e,t,r){\"function\"==typeof Object.create?t.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},{}],98:[function(e,t,r){t.exports=function(e){return e&&\"object\"==typeof e&&\"function\"==typeof e.copy&&\"function\"==typeof e.fill&&\"function\"==typeof e.readUInt8}},{}],99:[function(e,t,r){(function(t,n){(function(){function i(e,t){var n={seen:[],stylize:s};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),m(t)?n.showHidden=t:t&&r._extend(n,t),E(n.showHidden)&&(n.showHidden=!1),E(n.depth)&&(n.depth=2),E(n.colors)&&(n.colors=!1),E(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=o),u(n,e,n.depth)}function o(e,t){var r=i.styles[t];return r?\"\u001b[\"+i.colors[r][0]+\"m\"+e+\"\u001b[\"+i.colors[r][1]+\"m\":e}function s(e,t){return e}function a(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}function u(e,t,n){if(e.customInspect&&t&&R(t.inspect)&&t.inspect!==r.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(n,e);return b(i)||(i=u(e,i,n)),i}var o=c(e,t);if(o)return o;var s=Object.keys(t),m=a(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(t)),A(t)&&(s.indexOf(\"message\")>=0||s.indexOf(\"description\")>=0))return l(t);if(0===s.length){if(R(t)){var v=t.name?\": \"+t.name:\"\";return e.stylize(\"[Function\"+v+\"]\",\"special\")}if(S(t))return e.stylize(RegExp.prototype.toString.call(t),\"regexp\");if(C(t))return e.stylize(Date.prototype.toString.call(t),\"date\");if(A(t))return l(t)}var g=\"\",y=!1,w=[\"{\",\"}\"];if(d(t)&&(y=!0,w=[\"[\",\"]\"]),R(t)){g=\" [Function\"+(t.name?\": \"+t.name:\"\")+\"]\"}if(S(t)&&(g=\" \"+RegExp.prototype.toString.call(t)),C(t)&&(g=\" \"+Date.prototype.toUTCString.call(t)),A(t)&&(g=\" \"+l(t)),0===s.length&&(!y||0==t.length))return w[0]+g+w[1];if(n<0)return S(t)?e.stylize(RegExp.prototype.toString.call(t),\"regexp\"):e.stylize(\"[Object]\",\"special\");e.seen.push(t);var E;return E=y?p(e,t,n,m,s):s.map(function(r){return h(e,t,n,m,r,y)}),e.seen.pop(),f(E,g,w)}function c(e,t){if(E(t))return e.stylize(\"undefined\",\"undefined\");if(b(t)){var r=\"'\"+JSON.stringify(t).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return e.stylize(r,\"string\")}return y(t)?e.stylize(\"\"+t,\"number\"):m(t)?e.stylize(\"\"+t,\"boolean\"):v(t)?e.stylize(\"null\",\"null\"):void 0}function l(e){return\"[\"+Error.prototype.toString.call(e)+\"]\"}function p(e,t,r,n,i){for(var o=[],s=0,a=t.length;s-1&&(a=o?a.split(\"\\n\").map(function(e){return\" \"+e}).join(\"\\n\").substr(2):\"\\n\"+a.split(\"\\n\").map(function(e){return\" \"+e}).join(\"\\n\"))):a=e.stylize(\"[Circular]\",\"special\")),E(s)){if(o&&i.match(/^\\d+$/))return a;s=JSON.stringify(\"\"+i),s.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,\"name\")):(s=s.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),s=e.stylize(s,\"string\"))}return s+\": \"+a}function f(e,t,r){var n=0;return e.reduce(function(e,t){return n++,t.indexOf(\"\\n\")>=0&&n++,e+t.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1},0)>60?r[0]+(\"\"===t?\"\":t+\"\\n \")+\" \"+e.join(\",\\n \")+\" \"+r[1]:r[0]+t+\" \"+e.join(\", \")+\" \"+r[1]}function d(e){return Array.isArray(e)}function m(e){return\"boolean\"==typeof e}function v(e){return null===e}function g(e){return null==e}function y(e){return\"number\"==typeof e}function b(e){return\"string\"==typeof e}function w(e){return\"symbol\"==typeof e}function E(e){return void 0===e}function S(e){return _(e)&&\"[object RegExp]\"===T(e)}function _(e){return\"object\"==typeof e&&null!==e}function C(e){return _(e)&&\"[object Date]\"===T(e)}function A(e){return _(e)&&(\"[object Error]\"===T(e)||e instanceof Error)}function R(e){return\"function\"==typeof e}function x(e){return null===e||\"boolean\"==typeof e||\"number\"==typeof e||\"string\"==typeof e||\"symbol\"==typeof e||void 0===e}function T(e){return Object.prototype.toString.call(e)}function I(e){return e<10?\"0\"+e.toString(10):e.toString(10)}function k(){var e=new Date,t=[I(e.getHours()),I(e.getMinutes()),I(e.getSeconds())].join(\":\");return[e.getDate(),N[e.getMonth()],t].join(\" \")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var q=/%[sdj%]/g;r.format=function(e){if(!b(e)){for(var t=[],r=0;r=o)return e;switch(e){case\"%s\":return String(n[r++]);case\"%d\":return Number(n[r++]);case\"%j\":try{return JSON.stringify(n[r++])}catch(e){return\"[Circular]\"}default:return e}}),a=n[r];r>>((3&t)<<3)&255;return o}}},{}],103:[function(e,t,r){function n(e,t,r){var n=t&&r||0,l=t||[];e=e||{};var p=e.node||i,h=void 0!==e.clockseq?e.clockseq:o;if(null==p||null==h){var f=s();null==p&&(p=i=[1|f[0],f[1],f[2],f[3],f[4],f[5]]),null==h&&(h=o=16383&(f[6]<<8|f[7]))}var d=void 0!==e.msecs?e.msecs:(new Date).getTime(),m=void 0!==e.nsecs?e.nsecs:c+1,v=d-u+(m-c)/1e4;if(v<0&&void 0===e.clockseq&&(h=h+1&16383),(v<0||d>u)&&void 0===e.nsecs&&(m=0),m>=1e4)throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");u=d,c=m,o=h,d+=122192928e5;var g=(1e4*(268435455&d)+m)%4294967296;l[n++]=g>>>24&255,l[n++]=g>>>16&255,l[n++]=g>>>8&255,l[n++]=255&g;var y=d/4294967296*1e4&268435455;l[n++]=y>>>8&255,l[n++]=255&y,l[n++]=y>>>24&15|16,l[n++]=y>>>16&255,l[n++]=h>>>8|128,l[n++]=255&h;for(var b=0;b<6;++b)l[n+b]=p[b];return t||a(l)}var i,o,s=e(\"./lib/rng\"),a=e(\"./lib/bytesToUuid\"),u=0,c=0;t.exports=n},{\"./lib/bytesToUuid\":101,\"./lib/rng\":102}],104:[function(e,t,r){function n(e,t,r){var n=t&&r||0;\"string\"==typeof e&&(t=\"binary\"===e?new Array(16):null,e=null),e=e||{};var s=e.random||(e.rng||i)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t)for(var a=0;a<16;++a)t[n+a]=s[a];return t||o(s)}var i=e(\"./lib/rng\"),o=e(\"./lib/bytesToUuid\");t.exports=n},{\"./lib/bytesToUuid\":101,\"./lib/rng\":102}],105:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});var n=e(\"./utils/LRU\"),i=1e3,o=function(){function e(e){void 0===e&&(e=i),this.maxSize=e,this.cache=new n.LRUCache(e)}return Object.defineProperty(e.prototype,\"size\",{get:function(){return this.cache.length},enumerable:!0,configurable:!0}),e.prototype.put=function(t,r){var n=\"string\"!=typeof t?e.getKeyString(t):t,i=this.populateValue(r);this.cache.put(n,i)},e.prototype.get=function(t){var r=\"string\"!=typeof t?e.getKeyString(t):t,n=Date.now(),i=this.cache.get(r);if(i)for(var o=0;o= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","/* global window, exports, define */\n\n!function() {\n 'use strict'\n\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n }\n\n function sprintf(key) {\n // `arguments` is not an array, but should be fine for this call\n return sprintf_format(sprintf_parse(key), arguments)\n }\n\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []))\n }\n\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === 'string') {\n output += parse_tree[i]\n }\n else if (typeof parse_tree[i] === 'object') {\n ph = parse_tree[i] // convenience purposes only\n if (ph.keys) { // keyword argument\n arg = argv[cursor]\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == undefined) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n }\n arg = arg[ph.keys[k]]\n }\n }\n else if (ph.param_no) { // positional argument (explicit)\n arg = argv[ph.param_no]\n }\n else { // positional argument (implicit)\n arg = argv[cursor++]\n }\n\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg()\n }\n\n if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n }\n\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt]\n }\n\n var _fmt = fmt, match, parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0])\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n )\n }\n else {\n throw new SyntaxError('[sprintf] unexpected placeholder')\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return sprintf_cache[fmt] = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports['sprintf'] = sprintf\n exports['vsprintf'] = vsprintf\n }\n if (typeof window !== 'undefined') {\n window['sprintf'] = sprintf\n window['vsprintf'] = vsprintf\n\n if (typeof define === 'function' && define['amd']) {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","class ValueError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ValueError\";\n }\n}\n\nclass UnImplementedMethodException extends Error {\n constructor(message) {\n super(message);\n this.name = \"UnImplementedMethod\";\n }\n}\n\nclass IllegalArgumentException extends Error {\n constructor(message, argument) {\n super(message);\n this.name = \"IllegalArgument\";\n this.argument = argument;\n }\n}\n\nclass IllegalStateException extends Error {\n constructor(message) {\n super(message);\n this.name = \"IllegalState\";\n }\n}\n\nclass IllegalJsonException extends Error {\n constructor(message, args) {\n super(message);\n this.name = \"IllegalState\";\n this.causeException = args.causeException;\n this.originalJsonString = args.originalJsonString;\n }\n}\n\nexport {\n UnImplementedMethodException,\n IllegalArgumentException,\n IllegalStateException,\n IllegalJsonException,\n ValueError\n};\n","class GlobalConfigImpl {\n constructor() {\n this.stage = \"prod\";\n this.region = \"us-west-2\";\n this.reconnect = true;\n let self = this;\n this.features = new Proxy([], {\n set: function(target, property, value) {\n console.log(\"new features added, initialValue: \"\n + target[property] + \" , newValue: \" + value, Array.isArray(target[property]));\n let oldVal = target[property];\n //fire change listeners\n if (Array.isArray(value)) {\n value.forEach(feature => {\n //if a new feature is added\n if (Array.isArray(oldVal) && oldVal.indexOf(feature) === -1 && \n Array.isArray(self.featureChangeListeners[feature])) {\n \n self.featureChangeListeners[feature].forEach(callback => callback());\n self._cleanFeatureChangeListener(feature);\n }\n });\n }\n //change the value in this.features object.\n target[property] = value;\n return true;\n }\n });\n this.featureChangeListeners = [];\n }\n update(configInput) {\n var config = configInput || {};\n this.stage = config.stage || this.stage;\n this.region = config.region || this.region;\n this.endpointOverride = config.endpoint || this.endpointOverride;\n this.reconnect = config.reconnect === false ? false : this.reconnect;\n this.messageReceiptThrottleTime = config.throttleTime ? config.throttleTime : 5000;\n this.features[\"values\"] = Array.isArray(config.features) ? [...config.features] : new Array();\n }\n\n updateStageRegion(config) {\n if (config) {\n this.stage = config.stage || this.stage;\n this.region = config.region || this.region;\n }\n }\n\n updateThrottleTime(throttleTime) {\n this.messageReceiptThrottleTime = throttleTime ? throttleTime : this.messageReceiptThrottleTime;\n }\n\n getMessageReceiptsThrottleTime() {\n return this.messageReceiptThrottleTime;\n }\n\n getStage() {\n return this.stage;\n }\n\n getRegion() {\n return this.region;\n }\n\n getEndpointOverride() {\n return this.endpointOverride;\n }\n\n setFeatureFlag(feature) {\n if(this.isFeatureEnabled(feature)) {\n return;\n }\n const featureValues = Array.isArray(this.features[\"values\"]) ? this.features[\"values\"] : [];\n this.features[\"values\"] = [...featureValues, feature];\n }\n\n //private method\n _registerFeatureChangeListener(feature, callback) {\n if (!this.featureChangeListeners[feature]) {\n this.featureChangeListeners[feature] = [];\n }\n this.featureChangeListeners[feature].push(callback);\n }\n\n //private method\n _cleanFeatureChangeListener(feature) {\n delete this.featureChangeListeners[feature];\n }\n\n isFeatureEnabled(feature, callback) {\n if(Array.isArray(this.features[\"values\"]) &&\n this.features[\"values\"].indexOf(feature) !== -1) {\n if (typeof callback === \"function\") {\n return callback();\n }\n return true;\n }\n if (typeof callback === \"function\") {\n this._registerFeatureChangeListener(feature, callback);\n }\n return false;\n }\n}\n\nconst GlobalConfig = new GlobalConfigImpl();\n\nexport { GlobalConfig };\n","//Placeholder\nexport const CHAT_CONFIGURATIONS = {\n CONCURRENT_CHATS: 10\n};\n\nexport const PARTICIPANT_TOKEN_HEADER = \"x-amzn-connect-participant-token\";\nexport const AUTH_HEADER = \"X-Amz-Bearer\";\n\nexport const FEATURES = {\n MESSAGE_RECEIPTS_ENABLED: \"MESSAGE_RECEIPTS_ENABLED\"\n};\n\nexport const RESOURCE_PATH = {\n CONNECTION_DETAILS: \"/contact/chat/participant/connection-details\",\n MESSAGE: \"/participant/message\",\n TRANSCRIPT: \"/participant/transcript\",\n EVENT: \"/participant/event\",\n DISCONNECT: \"/participant/disconnect\",\n PARTICIPANT_CONNECTION: \"/participant/connection\",\n ATTACHMENT: \"/participant/attachment\"\n};\n\nexport const SESSION_TYPES = {\n AGENT: \"AGENT\",\n CUSTOMER: \"CUSTOMER\"\n};\n\nexport const CSM_CATEGORY = {\n API: \"API\",\n UI: \"UI\"\n};\n\nexport const ACPS_METHODS = {\n SEND_MESSAGE: \"SendMessage\",\n SEND_ATTACHMENT: \"SendAttachment\",\n DOWNLOAD_ATTACHMENT: \"DownloadAttachment\",\n SEND_EVENT: \"SendEvent\",\n GET_TRANSCRIPT: \"GetTranscript\",\n DISCONNECT_PARTICIPANT: \"DisconnectParticipant\",\n CREATE_PARTICIPANT_CONNECTION: \"CreateParticipantConnection\",\n};\n\nexport const WEBSOCKET_EVENTS = {\n ConnectionLost: \"WebsocketConnectionLost\",\n ConnectionGained: \"WebsocketConnectionGained\",\n Ended: \"WebsocketEnded\",\n IncomingMessage: \"WebsocketIncomingMessage\",\n InitWebsocket: \"InitWebsocket\"\n};\n\nexport const CHAT_EVENTS = {\n INCOMING_MESSAGE: \"INCOMING_MESSAGE\",\n INCOMING_TYPING: \"INCOMING_TYPING\",\n INCOMING_READ_RECEIPT: \"INCOMING_READ_RECEIPT\",\n INCOMING_DELIVERED_RECEIPT: \"INCOMING_DELIVERED_RECEIPT\",\n CONNECTION_ESTABLISHED: \"CONNECTION_ESTABLISHED\",\n CONNECTION_LOST: \"CONNECTION_LOST\",\n CONNECTION_BROKEN: \"CONNECTION_BROKEN\",\n CONNECTION_ACK: \"CONNECTION_ACK\",\n CHAT_ENDED: \"CHAT_ENDED\",\n MESSAGE_METADATA: \"MESSAGEMETADATA\",\n PARTICIPANT_IDLE: \"PARTICIPANT_IDLE\",\n PARTICIPANT_RETURNED: \"PARTICIPANT_RETURNED\",\n AUTODISCONNECTION: \"AUTODISCONNECTION\"\n};\n\nexport const CONTENT_TYPE = {\n textPlain: \"text/plain\",\n textMarkdown: \"text/markdown\",\n textCsv: \"text/csv\",\n applicationDoc: \"application/msword\",\n applicationDocx: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n applicationJson: \"application/json\",\n applicationPdf: \"application/pdf\",\n applicationPpt: \"application/vnd.ms-powerpoint\",\n applicationPptx: \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\n applicationXls: \"application/vnd.ms-excel\",\n applicationXlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n imageJpg: \"image/jpeg\",\n imagePng: \"image/png\",\n audioWav: \"audio/wav\",\n audioXWav: \"audio/x-wav\", //Firefox\n audioVndWave: \"audio/vnd.wave\", //IE\n connectionAcknowledged: \"application/vnd.amazonaws.connect.event.connection.acknowledged\",\n typing: \"application/vnd.amazonaws.connect.event.typing\",\n participantJoined: \"application/vnd.amazonaws.connect.event.participant.joined\",\n participantLeft: \"application/vnd.amazonaws.connect.event.participant.left\",\n participantActive: \"application/vnd.amazonaws.connect.event.participant.active\",\n participantInactive: \"application/vnd.amazonaws.connect.event.participant.inactive\",\n transferSucceeded: \"application/vnd.amazonaws.connect.event.transfer.succeeded\",\n transferFailed: \"application/vnd.amazonaws.connect.event.transfer.failed\",\n chatEnded: \"application/vnd.amazonaws.connect.event.chat.ended\",\n interactiveMessage: \"application/vnd.amazonaws.connect.message.interactive\",\n interactiveMessageResponse: \"application/vnd.amazonaws.connect.message.interactive.response\",\n readReceipt: \"application/vnd.amazonaws.connect.event.message.read\",\n deliveredReceipt: \"application/vnd.amazonaws.connect.event.message.delivered\",\n participantIdle: \"application/vnd.amazonaws.connect.event.participant.idle\",\n participantReturned: \"application/vnd.amazonaws.connect.event.participant.returned\",\n autoDisconnection: \"application/vnd.amazonaws.connect.event.participant.autodisconnection\"\n};\n\nexport const CHAT_EVENT_TYPE_MAPPING = {\n [CONTENT_TYPE.typing]: CHAT_EVENTS.INCOMING_TYPING,\n [CONTENT_TYPE.readReceipt]: CHAT_EVENTS.INCOMING_READ_RECEIPT,\n [CONTENT_TYPE.deliveredReceipt]: CHAT_EVENTS.INCOMING_DELIVERED_RECEIPT,\n [CONTENT_TYPE.participantIdle]: CHAT_EVENTS.PARTICIPANT_IDLE,\n [CONTENT_TYPE.participantReturned]: CHAT_EVENTS.PARTICIPANT_RETURNED,\n [CONTENT_TYPE.autoDisconnection]: CHAT_EVENTS.AUTODISCONNECTION,\n default: CHAT_EVENTS.INCOMING_MESSAGE,\n};\n\nexport const EVENT = \"EVENT\";\nexport const MESSAGE = \"MESSAGE\";\nexport const CONN_ACK_FAILED = \"CONN_ACK_FAILED\";\n\nexport const TRANSCRIPT_DEFAULT_PARAMS = {\n MAX_RESULTS: 15,\n SORT_ORDER: \"ASCENDING\",\n SCAN_DIRECTION: \"BACKWARD\"\n};\n\nexport const LOGS_DESTINATION = {\n NULL: \"NULL\",\n CLIENT_LOGGER: \"CLIENT_LOGGER\",\n DEBUG: \"DEBUG\"\n};\n\nexport const REGIONS = {\n pdx: \"us-west-2\",\n iad: \"us-east-1\",\n syd: \"ap-southeast-2\",\n nrt: \"ap-northeast-1\",\n fra: \"eu-central-1\",\n pdt: \"us-gov-west-1\",\n yul: \"ca-central-1\",\n icn: \"ap-northeast-2\",\n cpt: \"af-south-1\"\n};\n\nexport const AGENT_RECONNECT_CONFIG = {\n interval: 3000,\n maxRetries: 5\n};\n\nexport const CUSTOMER_RECONNECT_CONFIG = {\n interval: 3000,\n maxRetries: 5\n};\n\nexport const CONNECTION_TOKEN_POLLING_INTERVAL_IN_MS = 1000 * 60 * 60 * 12; // 12 hours\n\nexport const CONNECTION_TOKEN_EXPIRY_BUFFER_IN_MS = 60 * 1000; //1 min\n\nexport const TRANSPORT_LIFETIME_IN_SECONDS = 3540; // 59 mins\n\nexport const START_CHAT_SESSION = \"StartChatSession\";\n\nexport const MOCK_USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36';\n\nexport const SEND_EVENT_CONACK_THROTTLED = \"SEND_EVENT_CONACK_THROTTLED\";\nexport const CREATE_PARTICIPANT_CONACK_FAILURE = \"CREATE_PARTICIPANT_CONACK_FAILURE\";\nexport const SEND_EVENT_CONACK_FAILURE = \"SEND_EVENT_CONACK_FAILURE\";\nexport const CREATE_PARTICIPANT_CONACK_API_CALL_COUNT = \"CREATE_PARTICIPANT_CONACK_CALL_COUNT\";\n\nexport const TYPING_VALIDITY_TIME = 10000;","import { IllegalArgumentException } from \"./core/exceptions\";\nimport { ValueError } from \"./core/exceptions\";\nimport { sprintf } from \"sprintf-js\";\nimport { CONTENT_TYPE } from \"./constants\";\nconst Utils = {};\n\n/**\n * Asserts that a premise is true.\n */\nUtils.assertTrue = function(premise, message) {\n if (!premise) {\n throw new ValueError(message);\n }\n};\n\n/**\n * Asserts that a value is not null or undefined.\n */\nUtils.assertNotNull = function(value, name) {\n Utils.assertTrue(\n value !== null && typeof value !== \"undefined\",\n sprintf(\"%s must be provided\", name || \"A value\")\n );\n return value;\n};\n\nUtils.now = function() {\n return new Date().getTime();\n};\n\nUtils.isString = function(value) {\n return typeof value === \"string\";\n};\n\n/**\n * Generate a random ID consisting of the current timestamp\n * and a random base-36 number based on Math.random().\n */\nUtils.randomId = function() {\n return sprintf(\n \"%s-%s\",\n Utils.now(),\n Math.random()\n .toString(36)\n .slice(2)\n );\n};\n\nUtils.assertIsNonEmptyString = function(value, key) {\n if (!value || typeof value !== \"string\") {\n throw new IllegalArgumentException(key + \" is not a non-empty string!\");\n }\n};\n\nUtils.assertIsList = function(value, key) {\n if (!Array.isArray(value)) {\n throw new IllegalArgumentException(key + \" is not an array\");\n }\n};\n\nUtils.assertIsEnum = function(value, allowedValues, key) {\n var i;\n for (i = 0; i < allowedValues.length; i++) {\n if (allowedValues[i] === value) {\n return;\n }\n }\n throw new IllegalArgumentException(\n key + \" passed (\" + value + \")\" + \" is not valid. Allowed values are: \" + allowedValues\n );\n};\n\n/**\n * Generate an enum from the given list of lower-case enum values,\n * where the enum keys will be upper case.\n *\n * Conversion from pascal case based on code from here:\n * http://stackoverflow.com/questions/30521224\n */\nUtils.makeEnum = function(values) {\n var enumObj = {};\n\n values.forEach(function(value) {\n var key = value\n .replace(/\\.?([a-z]+)_?/g, function(x, y) {\n return y.toUpperCase() + \"_\";\n })\n .replace(/_$/, \"\");\n\n enumObj[key] = value;\n });\n\n return enumObj;\n};\n\nUtils.contains = function(obj, value) {\n if (obj instanceof Array) {\n return (\n Utils.find(obj, function(v) {\n return v === value;\n }) !== null\n );\n } else {\n return value in obj;\n }\n};\n\nUtils.find = function(array, predicate) {\n for (var x = 0; x < array.length; x++) {\n if (predicate(array[x])) {\n return array[x];\n }\n }\n\n return null;\n};\n\nUtils.containsValue = function(obj, value) {\n if (obj instanceof Array) {\n return (\n Utils.find(obj, function(v) {\n return v === value;\n }) !== null\n );\n } else {\n return (\n Utils.find(Utils.values(obj), function(v) {\n return v === value;\n }) !== null\n );\n }\n};\n\n/**\n * Determine if the given value is a callable function type.\n * Borrowed from Underscore.js.\n */\nUtils.isFunction = function(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n};\n\n/**\n * Get a list of values from a Javascript object used\n * as a hash map.\n */\nUtils.values = function(map) {\n var values = [];\n\n Utils.assertNotNull(map, \"map\");\n\n for (var k in map) {\n values.push(map[k]);\n }\n\n return values;\n};\n\nUtils.isObject = function(value) {\n return !(typeof value !== \"object\" || value === null);\n};\n\nUtils.assertIsObject = function(value, key) {\n if (!Utils.isObject(value)) {\n throw new IllegalArgumentException(key + \" is not an object!\");\n }\n};\n\nUtils.delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));\n\nUtils.asyncWhileInterval = function(f, predicate, interval, count=0, error=null) {\n const now = new Date();\n if (predicate(count)) {\n return f(count).catch((e) => {\n const delay = Math.max(0, interval - (new Date()).valueOf() + now.valueOf());\n return Utils\n .delay(delay)\n .then(() => Utils.asyncWhileInterval(f, predicate, interval, count + 1, e));\n });\n } else {\n return Promise.reject(error || new Error(\"async while aborted\"));\n }\n};\n\nUtils.isAttachmentContentType = function(contentType){\n return contentType === CONTENT_TYPE.applicationPdf\n || contentType === CONTENT_TYPE.imageJpg\n || contentType === CONTENT_TYPE.imagePng\n || contentType === CONTENT_TYPE.applicationDoc\n || contentType === CONTENT_TYPE.applicationXls\n || contentType === CONTENT_TYPE.applicationPpt\n || contentType === CONTENT_TYPE.textCsv\n || contentType === CONTENT_TYPE.audioWav;\n};\n\nexport default Utils;\n","import Utils from \"./utils\";\n\n/*eslint-disable no-unused-vars*/\nclass Logger {\n debug(data) {}\n\n info(data) {}\n\n warn(data) {}\n\n error(data) {}\n\n advancedLog(data) {}\n}\n/*eslint-enable no-unused-vars*/\n\nconst LogLevel = {\n DEBUG: 10,\n INFO: 20,\n WARN: 30,\n ERROR: 40,\n ADVANCED_LOG: 50,\n};\n\nclass LogManagerImpl {\n constructor() {\n this.updateLoggerConfig();\n }\n\n writeToClientLogger(level, logStatement, logMetaData) {\n if (!this.hasClientLogger()) {\n return;\n }\n var levelStringValue = getLogLevelByValue(level);\n switch (level) {\n case LogLevel.DEBUG:\n return this._clientLogger.debug(levelStringValue, logStatement, logMetaData) || logStatement;\n case LogLevel.INFO:\n return this._clientLogger.info(levelStringValue, logStatement, logMetaData) || logStatement;\n case LogLevel.WARN:\n return this._clientLogger.warn(levelStringValue, logStatement, logMetaData) || logStatement;\n case LogLevel.ERROR:\n return this._clientLogger.error(levelStringValue, logStatement, logMetaData) || logStatement;\n case LogLevel.ADVANCED_LOG:\n return this._advancedLogWriter && this._clientLogger[this._advancedLogWriter] && this._clientLogger[this._advancedLogWriter](levelStringValue, logStatement, logMetaData) || logStatement;\n }\n }\n\n isLevelEnabled(level) {\n return level >= this._level;\n }\n\n hasClientLogger() {\n return this._clientLogger !== null;\n }\n\n getLogger(options = {}) {\n // option: {prefix: string; logMetaData: object}\n return new LoggerWrapperImpl(options);\n }\n\n updateLoggerConfig(inputConfig) {\n var config = inputConfig || {};\n this._level = config.level || LogLevel.INFO;\n //enabled advancedLogWriter\n this._advancedLogWriter = \"warn\";\n if (isValidAdvancedLogConfig(config.advancedLogWriter, config.customizedLogger)) {\n this._advancedLogWriter = config.advancedLogWriter;\n }\n //enable clientLogger\n if((config.customizedLogger && typeof config.customizedLogger === \"object\") || \n (config.logger && typeof config.logger === \"object\")) {\n this.useClientLogger = true;\n }\n this._clientLogger = this.selectLogger(config);\n }\n\n selectLogger(config) {\n if(config.customizedLogger && typeof config.customizedLogger === \"object\") {\n return config.customizedLogger;\n }\n if(config.logger && typeof config.logger === \"object\") {\n return config.logger;\n }\n if(config.useDefaultLogger) {\n return createConsoleLogger();\n }\n return null;\n }\n}\nconst LogManager = new LogManagerImpl();\n\nclass LoggerWrapper {\n debug() {}\n\n info() {}\n\n warn() {}\n\n error() {}\n}\n\nclass LoggerWrapperImpl extends LoggerWrapper {\n constructor(options) {\n super();\n this.options = options || {};\n }\n\n debug(...args) {\n return this._log(LogLevel.DEBUG, args);\n }\n\n info(...args) {\n return this._log(LogLevel.INFO, args);\n }\n\n warn(...args) {\n return this._log(LogLevel.WARN, args);\n }\n\n error(...args) {\n return this._log(LogLevel.ERROR, args);\n }\n\n advancedLog(...args) {\n return this._log(LogLevel.ADVANCED_LOG, args);\n }\n \n _shouldLog(level) {\n return LogManager.hasClientLogger() && LogManager.isLevelEnabled(level);\n }\n\n _writeToClientLogger(level, logStatement) {\n return LogManager.writeToClientLogger(level, logStatement, this.options.logMetaData);\n }\n\n _log(level, args) {\n if (this._shouldLog(level)) {\n var logStatement = LogManager.useClientLogger ? args : this._convertToSingleStatement(args);\n return this._writeToClientLogger(level, logStatement);\n }\n }\n\n _convertToSingleStatement(args) {\n var date = new Date(Date.now()).toISOString();\n var logStatement = `[${date}]`;\n if (this.options) {\n this.options.prefix ? logStatement += \" \" + this.options.prefix + \":\" : logStatement += \"\";\n }\n for (var index = 0; index < args.length; index++) {\n var arg = args[index];\n logStatement += \" \" + this._convertToString(arg);\n }\n return logStatement;\n }\n\n _convertToString(arg) {\n try {\n if (!arg) {\n return \"\";\n }\n if (Utils.isString(arg)) {\n return arg;\n }\n if (Utils.isObject(arg) && Utils.isFunction(arg.toString)) {\n var toStringResult = arg.toString();\n if (toStringResult !== \"[object Object]\") {\n return toStringResult;\n }\n }\n return JSON.stringify(arg);\n } catch (error) {\n console.error(\"Error while converting argument to string\", arg, error);\n return \"\";\n }\n }\n}\n\nfunction getLogLevelByValue(value) {\n switch(value) {\n case 10: return \"DEBUG\";\n case 20: return \"INFO\";\n case 30: return \"WARN\";\n case 40: return \"ERROR\";\n case 50: return \"ADVANCED_LOG\";\n }\n}\n\nfunction isValidAdvancedLogConfig(advancedLogVal, customizedLogger) {\n const customizedLoggerKeys = customizedLogger && Object.keys(customizedLogger);\n if (customizedLoggerKeys && customizedLoggerKeys.indexOf(advancedLogVal) === -1) {\n console.error(`customizedLogger: incorrect value for loggerConfig:advancedLogWriter; use valid values from list ${customizedLoggerKeys} but used ${advancedLogVal}`);\n return false;\n }\n const defaultLoggerKeys = [\"warn\", \"info\", \"debug\", \"log\"];\n if (advancedLogVal && defaultLoggerKeys.indexOf(advancedLogVal) === -1) {\n console.error(`incorrect value for loggerConfig:advancedLogWriter; use valid values from list ${defaultLoggerKeys} but used ${advancedLogVal}`);\n return false;\n }\n return true;\n}\n\nvar createConsoleLogger = () => {\n var logger = new LoggerWrapper();\n logger.debug = console.debug.bind(window.console);\n logger.info = console.info.bind(window.console);\n logger.warn = console.warn.bind(window.console);\n logger.error = console.error.bind(window.console);\n return logger;\n};\n\n\nexport { LogManager, Logger, LogLevel };\n","import { UnImplementedMethodException } from \"../core/exceptions\";\nimport { GlobalConfig } from \"../globalConfig\";\nimport {\n REGIONS\n} from \"../constants\";\nimport { LogManager } from \"../log\";\n//Note: this imports AWS instead from aws-sdk npm package - details in ReadMe\nimport { ConnectParticipant } from \"./aws-sdk-connectparticipant\";\nimport throttle from \"lodash/throttle\";\nimport { CONTENT_TYPE, TYPING_VALIDITY_TIME } from '../constants';\n\nconst DEFAULT_PREFIX = \"Amazon-Connect-ChatJS-ChatClient\";\n\nclass ChatClientFactoryImpl {\n constructor() {\n this.clientCache = {};\n }\n\n getCachedClient(optionsInput, logMetaData) {\n var options = Object.assign({}, optionsInput);\n var region = optionsInput.region || GlobalConfig.getRegion() || REGIONS.pdx;\n options.region = region;\n logMetaData.region = region;\n if (this.clientCache[region]) {\n return this.clientCache[region];\n }\n var client = this._createAwsClient(options, logMetaData);\n this.clientCache[region] = client;\n return client;\n }\n\n _createAwsClient(options, logMetaData) {\n var region = options.region;\n var endpointOverride = GlobalConfig.getEndpointOverride();\n var endpointUrl = `https://participant.connect.${region}.amazonaws.com`;\n if (endpointOverride) {\n endpointUrl = endpointOverride;\n }\n return new AWSChatClient({\n endpoint: endpointUrl,\n region: region,\n logMetaData\n });\n }\n}\n\n/*eslint-disable*/\nclass ChatClient {\n sendMessage(participantToken, message, type) {\n throw new UnImplementedMethodException(\"sendTextMessage in ChatClient\");\n }\n\n sendAttachment(participantToken, attachment, metadata) {\n throw new UnImplementedMethodException(\"sendAttachment in ChatClient\");\n }\n\n downloadAttachment(participantToken, attachmentId){\n throw new UnImplementedMethodException(\"downloadAttachment in ChatClient\");\n }\n\n disconnectParticipant(participantToken) {\n throw new UnImplementedMethodException(\"disconnectParticipant in ChatClient\");\n }\n\n sendEvent(connectionToken, contentType, content) {\n throw new UnImplementedMethodException(\"sendEvent in ChatClient\");\n }\n\n createParticipantConnection(participantToken, type) {\n throw new UnImplementedMethodException(\"createParticipantConnection in ChatClient\");\n }\n}\n/*eslint-enable*/\n\nclass AWSChatClient extends ChatClient {\n constructor(args) {\n super();\n var creds = new AWS.Credentials('','');\n var config = new AWS.Config({\n region: args.region,\n endpoint: args.endpoint,\n credentials: creds\n });\n this.chatClient = new AWS.ConnectParticipant(config);\n this.invokeUrl = args.endpoint;\n this.logger = LogManager.getLogger({ prefix: DEFAULT_PREFIX, logMetaData: args.logMetaData });\n }\n\n createParticipantConnection(participantToken, type, acknowledgeConnection) {\n let self = this;\n var params = {\n ParticipantToken: participantToken,\n Type: type,\n ConnectParticipant: acknowledgeConnection\n };\n \n var createParticipantConnectionRequest = self.chatClient.createParticipantConnection(\n params\n );\n return self._sendRequest(createParticipantConnectionRequest).then((res) => {\n self.logger.info(\"Successfully create connection request\")?.sendInternalLogToServer?.();\n return res;\n }).catch((err) => {\n self.logger.error(\"Error when creating connection request \", err)?.sendInternalLogToServer?.();\n return Promise.reject(err);\n });\n }\n\n disconnectParticipant(connectionToken) {\n let self = this;\n var params = {\n ConnectionToken: connectionToken\n };\n\n var disconnectParticipantRequest = self.chatClient.disconnectParticipant(\n params\n );\n return self._sendRequest(disconnectParticipantRequest).then((res) => {\n self.logger.info(\"Successfully disconnect participant\")?.sendInternalLogToServer?.();\n return res;\n }).catch((err) => {\n self.logger.error(\"Error when disconnecting participant \", err)?.sendInternalLogToServer?.();\n return Promise.reject(err);\n });\n }\n\n getTranscript(connectionToken, args) {\n let self = this;\n var params = {\n MaxResults: args.maxResults,\n NextToken: args.nextToken,\n ScanDirection: args.scanDirection,\n SortOrder: args.sortOrder,\n StartPosition: {\n Id: args.startPosition.id,\n AbsoluteTime: args.startPosition.absoluteTime,\n MostRecent: args.startPosition.mostRecent\n },\n ConnectionToken: connectionToken\n };\n if (args.contactId) {\n params.ContactId = args.contactId;\n }\n var getTranscriptRequest = self.chatClient.getTranscript(params);\n return self._sendRequest(getTranscriptRequest).then((res) => {\n this.logger.info(\"Successfully get transcript\");\n return res;\n }).catch((err) => {\n this.logger.error(\"Get transcript error\", err);\n return Promise.reject(err);\n });\n }\n\n sendMessage(connectionToken, content, contentType) {\n let self = this;\n var params = {\n Content: content,\n ContentType: contentType,\n ConnectionToken: connectionToken\n };\n var sendMessageRequest = self.chatClient.sendMessage(params);\n return self._sendRequest(sendMessageRequest).then((res) => {\n const logContent = {id: res.data?.Id, contentType: params.ContentType};\n this.logger.debug(\"Successfully send message\", logContent);\n return res;\n }).catch((err) => {\n this.logger.error(\"Send message error\", err, {contentType: params.ContentType});\n return Promise.reject(err);\n });\n }\n\n sendAttachment(connectionToken, attachment, metadata) {\n let self = this;\n const startUploadRequestParams = {\n ContentType: attachment.type,\n AttachmentName: attachment.name,\n AttachmentSizeInBytes: attachment.size,\n ConnectionToken: connectionToken\n };\n const startUploadRequest = self.chatClient.startAttachmentUpload(startUploadRequestParams);\n const logContent = {contentType: attachment.type, size: attachment.size};\n return self._sendRequest(startUploadRequest)\n .then(startUploadResponse => {\n return self._uploadToS3(attachment, startUploadResponse.data.UploadMetadata)\n .then(() => {\n const completeUploadRequestParams = {\n AttachmentIds: [ startUploadResponse.data.AttachmentId ],\n ConnectionToken: connectionToken\n };\n this.logger.debug(\"Successfully upload attachment\", {...logContent, attachmentId: startUploadResponse.data?.AttachmentId});\n const completeUploadRequest = self.chatClient.completeAttachmentUpload(completeUploadRequestParams);\n return self._sendRequest(completeUploadRequest);\n });\n }).catch((err) => {\n this.logger.error(\"Upload attachment error\", err, logContent);\n return Promise.reject(err);\n });\n }\n\n _uploadToS3(file, metadata) {\n return fetch(metadata.Url,{\n method: \"PUT\",\n headers: metadata.HeadersToInclude,\n body: file\n });\n }\n\n downloadAttachment(connectionToken, attachmentId) {\n let self = this;\n const params = {\n AttachmentId: attachmentId,\n ConnectionToken: connectionToken\n };\n const logContent = {attachmentId};\n const getAttachmentRequest = self.chatClient.getAttachment(params);\n return self._sendRequest(getAttachmentRequest)\n .then(response => {\n this.logger.debug(\"Successfully download attachment\", logContent);\n return self._downloadUrl(response.data.Url);\n }).catch(err => {\n this.logger.error(\"Download attachment error\", err, logContent);\n return Promise.reject(err);\n });\n }\n\n _downloadUrl(url){\n return fetch(url)\n .then(t => t.blob())\n .catch(err => { return Promise.reject(err); });\n }\n\n \n sendEvent(connectionToken, contentType, content) {\n let self = this;\n if(contentType === CONTENT_TYPE.typing) {\n return self.throttleEvent(connectionToken, contentType, content)\n }\n return self._submitEvent(connectionToken, contentType, content);\n }\n \n throttleEvent = throttle((connectionToken, contentType, content) => {\n return this._submitEvent(connectionToken, contentType, content);\n }, TYPING_VALIDITY_TIME, { trailing: false, leading: true })\n \n async _submitEvent(connectionToken, contentType, content) {\n let self = this;\n var params = {\n ConnectionToken: connectionToken,\n ContentType: contentType,\n Content: content\n };\n var sendEventRequest = self.chatClient.sendEvent(params);\n const logContent = {contentType};\n try {\n const res = await self._sendRequest(sendEventRequest);\n this.logger.debug(\"Successfully send event\", { ...logContent, id: res.data?.Id, });\n return res;\n } catch (err) {\n return await Promise.reject(err);\n }\n }\n\n _sendRequest(request) {\n return new Promise((resolve, reject) => {\n request\n .on(\"success\", function(res) {\n resolve(res);\n })\n .on(\"error\", function(err) {\n const errObj = {\n type: err.code,\n message: err.message,\n stack: err.stack ? err.stack.split('\\n') : [],\n statusCode: err.statusCode,\n }\n reject(errObj);\n })\n .send();\n });\n }\n}\n\nvar ChatClientFactory = new ChatClientFactoryImpl();\nexport { ChatClientFactory };\n","import Utils from \"../utils\";\nimport { IllegalArgumentException } from \"./exceptions\";\nimport { CONTENT_TYPE, SESSION_TYPES } from \"../constants\";\n\nclass ChatControllerArgsValidator {\n /*eslint-disable no-unused-vars*/\n validateNewControllerDetails(chatDetails) {\n return true;\n }\n /*eslint-enable no-unused-vars*/\n\n validateSendMessage(args) {\n if (!Utils.isString(args.message)) {\n throw new IllegalArgumentException(args.message + \"is not a valid message\");\n }\n this.validateContentType(args.contentType);\n }\n\n validateContentType(contentType) {\n Utils.assertIsEnum(contentType, Object.values(CONTENT_TYPE), \"contentType\"); \n }\n\n /*eslint-disable no-unused-vars*/\n validateConnectChat(args) {\n return true;\n }\n /*eslint-enable no-unused-vars*/\n\n validateLogger(logger) {\n Utils.assertIsObject(logger, \"logger\");\n [\"debug\", \"info\", \"warn\", \"error\"].forEach(methodName => {\n if (!Utils.isFunction(logger[methodName])) {\n throw new IllegalArgumentException(\n methodName +\n \" should be a valid function on the passed logger object!\"\n );\n }\n });\n }\n\n validateSendEvent(args) {\n this.validateContentType(args.contentType);\n }\n\n /*eslint-disable no-unused-vars*/\n validateGetMessages(args) {\n return true;\n }\n /*eslint-enable no-unused-vars*/\n}\n\nclass ChatServiceArgsValidator extends ChatControllerArgsValidator {\n validateChatDetails(chatDetails, sessionType) {\n Utils.assertIsObject(chatDetails, \"chatDetails\");\n if (sessionType===SESSION_TYPES.AGENT && !Utils.isFunction(chatDetails.getConnectionToken)) {\n throw new IllegalArgumentException(\n \"getConnectionToken was not a function\", \n chatDetails.getConnectionToken\n );\n }\n Utils.assertIsNonEmptyString(\n chatDetails.contactId,\n \"chatDetails.contactId\"\n );\n Utils.assertIsNonEmptyString(\n chatDetails.participantId,\n \"chatDetails.participantId\"\n );\n if (sessionType===SESSION_TYPES.CUSTOMER){\n if (chatDetails.participantToken){\n Utils.assertIsNonEmptyString(\n chatDetails.participantToken,\n \"chatDetails.participantToken\"\n );\n } else {\n throw new IllegalArgumentException(\n \"participantToken was not provided for a customer session type\",\n chatDetails.participantToken\n );\n }\n }\n }\n\n validateInitiateChatResponse() {\n return true;\n }\n\n normalizeChatDetails(chatDetailsInput) {\n let chatDetails = {};\n chatDetails.contactId = chatDetailsInput.ContactId || chatDetailsInput.contactId;\n chatDetails.participantId = chatDetailsInput.ParticipantId || chatDetailsInput.participantId;\n chatDetails.initialContactId = chatDetailsInput.InitialContactId || chatDetailsInput.initialContactId\n || chatDetails.contactId || chatDetails.ContactId;\n chatDetails.getConnectionToken = chatDetailsInput.getConnectionToken || chatDetailsInput.GetConnectionToken;\n if (chatDetailsInput.participantToken || chatDetailsInput.ParticipantToken) {\n chatDetails.participantToken = chatDetailsInput.ParticipantToken || chatDetailsInput.participantToken;\n }\n this.validateChatDetails(chatDetails);\n return chatDetails;\n }\n}\n\nexport { ChatServiceArgsValidator };\n","import { CONNECTION_TOKEN_POLLING_INTERVAL_IN_MS, CONNECTION_TOKEN_EXPIRY_BUFFER_IN_MS } from \"../../constants\";\nimport { LogManager } from \"../../log\";\nconst ConnectionHelperStatus = {\n NeverStarted: \"NeverStarted\",\n Starting: \"Starting\",\n Connected: \"Connected\",\n ConnectionLost: \"ConnectionLost\",\n Ended: \"Ended\"\n};\n\nconst ConnectionHelperEvents = {\n ConnectionLost: \"ConnectionLost\", // event data is: {reason: ...}\n ConnectionGained: \"ConnectionGained\", // event data is: {reason: ...}\n Ended: \"Ended\", // event data is: {reason: ...}\n IncomingMessage: \"IncomingMessage\" // event data is: {payloadString: ...}\n};\n\nconst ConnectionInfoType = {\n WEBSOCKET: \"WEBSOCKET\",\n CONNECTION_CREDENTIALS: \"CONNECTION_CREDENTIALS\"\n};\n\nexport default class BaseConnectionHelper {\n constructor(connectionDetailsProvider, logMetaData) {\n this.connectionDetailsProvider = connectionDetailsProvider;\n this.isStarted = false;\n this.logger = LogManager.getLogger({ prefix: \"ChatJS-BaseConnectionHelper\", logMetaData });\n }\n\n startConnectionTokenPolling(isFirstCall=false, expiry=CONNECTION_TOKEN_POLLING_INTERVAL_IN_MS) {\n if (!isFirstCall){\n //TODO: use Type field to avoid fetching websocket connection\n return this.connectionDetailsProvider.fetchConnectionDetails()\n .then(response => {\n this.logger.info(\"Connection token polling succeeded.\");\n expiry = this.getTimeToConnectionTokenExpiry();\n this.timeout = setTimeout(this.startConnectionTokenPolling.bind(this), expiry);\n return response;\n })\n .catch((e) => {\n this.logger.error(\"An error occurred when attempting to fetch the connection token during Connection Token Polling\", e);\n this.timeout = setTimeout(this.startConnectionTokenPolling.bind(this), expiry);\n return e;\n });\n }\n else {\n this.logger.info(\"First time polling connection token.\");\n this.timeout = setTimeout(this.startConnectionTokenPolling.bind(this), expiry);\n }\n }\n\n start() {\n if (this.isStarted) {\n return this.getConnectionToken();\n }\n this.isStarted = true;\n return this.startConnectionTokenPolling(\n true, \n this.getTimeToConnectionTokenExpiry()\n );\n }\n\n end() {\n clearTimeout(this.timeout);\n }\n\n getConnectionToken() {\n return this.connectionDetailsProvider.getFetchedConnectionToken();\n }\n\n getConnectionTokenExpiry() {\n return this.connectionDetailsProvider.getConnectionTokenExpiry();\n }\n\n getTimeToConnectionTokenExpiry() {\n var dateExpiry = new Date(\n this.getConnectionTokenExpiry()\n ).getTime();\n var now = new Date().getTime();\n return dateExpiry - now - CONNECTION_TOKEN_EXPIRY_BUFFER_IN_MS;\n }\n}\n\nexport {\n ConnectionHelperStatus,\n ConnectionHelperEvents,\n ConnectionInfoType\n};\n","import Utils from \"../utils\";\n\nconst ALL_EVENTS = \"<>\";\n\n/**\n * An object representing an event subscription in an EventBus.\n */\nvar Subscription = function(subMap, eventName, f) {\n this.subMap = subMap;\n this.id = Utils.randomId();\n this.eventName = eventName;\n this.f = f;\n};\n\n/**\n * Unsubscribe the handler of this subscription from the EventBus\n * from which it was created.\n */\nSubscription.prototype.unsubscribe = function() {\n this.subMap.unsubscribe(this.eventName, this.id);\n};\n\n/**\n * A map of event subscriptions, used by the EventBus.\n */\nvar SubscriptionMap = function() {\n this.subIdMap = {};\n this.subEventNameMap = {};\n};\n\n/**\n * Add a subscription for the named event. Creates a new Subscription\n * object and returns it. This object can be used to unsubscribe.\n */\nSubscriptionMap.prototype.subscribe = function(eventName, f) {\n var sub = new Subscription(this, eventName, f);\n\n this.subIdMap[sub.id] = sub;\n var subList = this.subEventNameMap[eventName] || [];\n subList.push(sub);\n this.subEventNameMap[eventName] = subList;\n return () => sub.unsubscribe();\n};\n\n/**\n * Unsubscribe a subscription matching the given event name and id.\n */\nSubscriptionMap.prototype.unsubscribe = function(eventName, subId) {\n if (Utils.contains(this.subEventNameMap, eventName)) {\n this.subEventNameMap[eventName] = this.subEventNameMap[eventName].filter(\n function(s) {\n return s.id !== subId;\n }\n );\n\n if (this.subEventNameMap[eventName].length < 1) {\n delete this.subEventNameMap[eventName];\n }\n }\n\n if (Utils.contains(this.subIdMap, subId)) {\n delete this.subIdMap[subId];\n }\n};\n\n/**\n * Get a list of all subscriptions in the subscription map.\n */\nSubscriptionMap.prototype.getAllSubscriptions = function() {\n return Utils.values(this.subEventNameMap).reduce(function(a, b) {\n return a.concat(b);\n }, []);\n};\n\n/**\n * Get a list of subscriptions for the given event name, or an empty\n * list if there are no subscriptions.\n */\nSubscriptionMap.prototype.getSubscriptions = function(eventName) {\n return this.subEventNameMap[eventName] || [];\n};\n\n/**\n * An object which maintains a map of subscriptions and serves as the\n * mechanism for triggering events to be handled by subscribers.\n */\nvar EventBus = function(paramsIn) {\n var params = paramsIn || {};\n\n this.subMap = new SubscriptionMap();\n this.logEvents = params.logEvents || false;\n};\n\n/**\n * Subscribe to the named event. Returns a new Subscription object\n * which can be used to unsubscribe.\n */\nEventBus.prototype.subscribe = function(eventName, f) {\n Utils.assertNotNull(eventName, \"eventName\");\n Utils.assertNotNull(f, \"f\");\n Utils.assertTrue(Utils.isFunction(f), \"f must be a function\");\n return this.subMap.subscribe(eventName, f);\n};\n\n/**\n * Subscribe a function to be called on all events.\n */\nEventBus.prototype.subscribeAll = function(f) {\n Utils.assertNotNull(f, \"f\");\n Utils.assertTrue(Utils.isFunction(f), \"f must be a function\");\n return this.subMap.subscribe(ALL_EVENTS, f);\n};\n\n/**\n * Get a list of subscriptions for the given event name, or an empty\n * list if there are no subscriptions.\n */\nEventBus.prototype.getSubscriptions = function(eventName) {\n return this.subMap.getSubscriptions(eventName);\n};\n\n/**\n * Trigger the given event with the given data. All methods subscribed\n * to this event will be called and are provided with the given arbitrary\n * data object and the name of the event, in that order.\n */\nEventBus.prototype.trigger = function(eventName, data) {\n Utils.assertNotNull(eventName, \"eventName\");\n var self = this;\n var allEventSubs = this.subMap.getSubscriptions(ALL_EVENTS);\n var eventSubs = this.subMap.getSubscriptions(eventName);\n\n // if (this.logEvents && (eventName !== connect.EventType.LOG && eventName !== connect.EventType.MASTER_RESPONSE && eventName !== connect.EventType.API_METRIC)) {\n // connect.getLog().trace(\"Publishing event: %s\", eventName);\n // }\n\n allEventSubs.concat(eventSubs).forEach(function(sub) {\n try {\n sub.f(data || null, eventName, self);\n } catch (e) {\n // connect\n // .getLog()\n // .error(\"'%s' event handler failed.\", eventName)\n // .withException(e);\n }\n });\n};\n\n/**\n * Trigger the given event with the given data. All methods subscribed\n * to this event will be called and are provided with the given arbitrary\n * data object and the name of the event, in that order.\n */\nEventBus.prototype.triggerAsync = function(eventName, data) {\n setTimeout(() => this.trigger(eventName, data), 0);\n};\n\n/**\n * Returns a closure which bridges an event from another EventBus to this bus.\n *\n * Usage:\n * conduit.onUpstream(\"MyEvent\", bus.bridge());\n */\nEventBus.prototype.bridge = function() {\n var self = this;\n return function(data, event) {\n self.trigger(event, data);\n };\n};\n\n/**\n * Unsubscribe all events in the event bus.\n */\nEventBus.prototype.unsubscribeAll = function() {\n this.subMap.getAllSubscriptions().forEach(function(sub) {\n sub.unsubscribe();\n });\n};\n\nexport { EventBus };\n","export const CHAT_WIDGET_METRIC_NAME_SPACE = \"chat-widget\";\nexport const DEFAULT_WIDGET_TYPE = \"CustomChatWidget\";\n\nexport const getLdasEndpointUrl = (region) => {\n return `https://ieluqbvv.telemetry.connect.${region}.amazonaws.com/prod`;\n};","import { GlobalConfig } from \"../globalConfig\";\nimport {\n getLdasEndpointUrl,\n CHAT_WIDGET_METRIC_NAME_SPACE,\n DEFAULT_WIDGET_TYPE\n} from \"../configs/csmConfig\";\nimport { LogManager } from \"../log\";\nimport { csmJsString } from '../lib/connect-csm';\nimport { csmWorkerString } from '../lib/connect-csm-worker';\n\nexport const DIMENSION_CATEGORY = \"Category\";\nclass CsmService {\n constructor() {\n this.widgetType = DEFAULT_WIDGET_TYPE;\n this.logger = LogManager.getLogger({\n prefix: \"ChatJS-csmService\"\n });\n this.csmInitialized = false;\n this.metricsToBePublished = [];\n this.agentMetricToBePublished = [];\n this.MAX_RETRY = 5;\n }\n \n loadCsmScriptAndExecute() {\n try {\n let script = document.createElement('script');\n script.type = 'text/javascript';\n script.innerHTML = csmJsString;\n document.head.appendChild(script);\n this.initializeCSM();\n } catch (error) {\n this.logger.error(\"Load csm script error: \", error);\n }\n }\n \n initializeCSM() {\n // avoid multiple initialization\n try {\n if (this.csmInitialized) {\n return;\n }\n const region = GlobalConfig.getRegion();\n const csmWorkerText = csmWorkerString.replace(/\\\\/g, '');\n const sharedWorkerBlobUrl = URL.createObjectURL(new Blob([csmWorkerText], { type: 'text/javascript' }));\n const ldasEndpoint = getLdasEndpointUrl(region);\n let params = {\n endpoint: ldasEndpoint,\n namespace: CHAT_WIDGET_METRIC_NAME_SPACE,\n sharedWorkerUrl: sharedWorkerBlobUrl,\n };\n \n csm.initCSM(params);\n this.logger.info(`CSMService is initialized in ${region}`);\n this.csmInitialized = true;\n if (this.metricsToBePublished) {\n this.metricsToBePublished.forEach((metric) => {\n csm.API.addMetric(metric);\n });\n this.metricsToBePublished = null;\n }\n } catch(err) {\n this.logger.error('Failed to initialize csm: ', err);\n }\n }\n\n updateCsmConfig(csmConfig) {\n this.widgetType = typeof csmConfig === \"object\" && csmConfig !== null && !Array.isArray(csmConfig) ?\n csmConfig.widgetType : this.widgetType;\n }\n\n getDefaultDimensions() {\n return [\n {\n name: \"WidgetType\",\n value: this.widgetType\n }\n ];\n }\n\n addMetric(metric) {\n // if csmService is never initialized, store the metrics in an array\n if (!this.csmInitialized) {\n if (this.metricsToBePublished) {\n this.metricsToBePublished.push(metric);\n this.logger.info(`CSMService is not initialized yet. Adding metrics to queue to be published once CSMService is initialized`);\n }\n } else {\n try {\n csm.API.addMetric(metric);\n } catch(err) {\n this.logger.error('Failed to addMetric csm: ', err);\n }\n }\n }\n\n setDimensions(metric, dimensions) {\n dimensions.forEach((dimension) => {\n metric.addDimension(dimension.name, dimension.value);\n });\n }\n\n addLatencyMetric(method, timeDifference, category, otherDimensions = []) {\n try {\n const latencyMetric = new csm.Metric(\n method,\n csm.UNIT.MILLISECONDS,\n timeDifference\n );\n const dimensions = [\n ...this.getDefaultDimensions(),\n {\n name: \"Metric\",\n value: \"Latency\",\n },\n {\n name: DIMENSION_CATEGORY,\n value: category\n },\n ...otherDimensions\n ];\n this.setDimensions(latencyMetric, dimensions);\n this.addMetric(latencyMetric);\n this.logger.debug(`Successfully published latency API metrics for method ${method}`);\n } catch (err) {\n this.logger.error('Failed to addLatencyMetric csm: ', err);\n }\n }\n\n addLatencyMetricWithStartTime(method, startTime, category, otherDimensions = []) {\n const endTime = new Date().getTime();\n const timeDifference = endTime - startTime;\n this.addLatencyMetric(method, timeDifference, category, otherDimensions);\n this.logger.debug(`Successfully published latency API metrics for method ${method}`);\n }\n\n addCountAndErrorMetric(method, category, error, otherDimensions = []) {\n try {\n const dimensions = [\n ...this.getDefaultDimensions(),\n {\n name: DIMENSION_CATEGORY,\n value: category\n },\n ...otherDimensions\n ];\n const countMetric = new csm.Metric(method, csm.UNIT.COUNT, 1);\n this.setDimensions(countMetric, [\n ...dimensions,\n {\n name: \"Metric\",\n value: \"Count\",\n }\n ]);\n const errorCount = error ? 1 : 0;\n const errorMetric = new csm.Metric(method, csm.UNIT.COUNT, errorCount);\n this.setDimensions(errorMetric, [\n ...dimensions,\n {\n name: \"Metric\",\n value: \"Error\",\n }\n ]);\n this.addMetric(countMetric);\n this.addMetric(errorMetric);\n this.logger.debug(`Successfully published count and error metrics for method ${method}`);\n } catch(err) {\n this.logger.error('Failed to addCountAndErrorMetric csm: ', err);\n }\n }\n\n addCountMetric(method, category, otherDimensions = []) {\n try {\n const dimensions = [\n ...this.getDefaultDimensions(),\n {\n name: DIMENSION_CATEGORY,\n value: category\n },\n {\n name: \"Metric\",\n value: \"Count\",\n },\n ...otherDimensions\n ];\n const countMetric = new csm.Metric(method, csm.UNIT.COUNT, 1);\n this.setDimensions(countMetric, dimensions);\n this.addMetric(countMetric);\n this.logger.debug(`Successfully published count metrics for method ${method}`);\n } catch(err) {\n this.logger.error('Failed to addCountMetric csm: ', err);\n }\n }\n\n addAgentCountMetric(metricName, count) {\n try {\n const _self = this;\n if (csm && csm.API.addCount && metricName) {\n csm.API.addCount(metricName, count);\n _self.MAX_RETRY = 5;\n } else {\n //add to list and retry later\n if (metricName) {\n this.agentMetricToBePublished.push({\n \n metricName,\n \n count\n });\n }\n setTimeout(() => {\n if (csm && csm.API.addCount) {\n this.agentMetricToBePublished.forEach(metricItem => {\n csm.API.addCount(metricItem.metricName, metricItem.count);\n });\n this.agentMetricToBePublished = [];\n } else if(_self.MAX_RETRY > 0) {\n _self.MAX_RETRY -= 1;\n _self.addAgentCountMetric();\n }\n }, 3000);\n }\n } catch(err) {\n this.logger.error('Failed to addAgentCountMetric csm: ', err);\n }\n }\n}\n\nconst csmService = new CsmService();\nexport { csmService };","export const csmJsString = `(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n csm.EVENT_TYPE = {\n LOG: 'LOG',\n METRIC: 'METRIC',\n CONFIG: 'CONFIG',\n WORKFLOW_EVENT: 'WORKFLOW_EVENT',\n CUSTOM: 'CUSTOM',\n CLOSE: 'CLOSE',\n SET_AUTH: 'SET_AUTH',\n SET_CONFIG: 'SET_CONFIG',\n };\n\n csm.UNIT = {\n COUNT: 'Count',\n SECONDS: 'Seconds',\n MILLISECONDS: 'Milliseconds',\n MICROSECONDS: 'Microseconds',\n };\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const MAX_METRIC_DIMENSIONS = 10;\n\n /** ********* Dimension Classes ***********/\n\n const Dimension = function(name, value) {\n csm.Util.assertExist(name, 'name');\n csm.Util.assertExist(value, 'value');\n\n this.name = name;\n this.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n };\n\n\n /** ********* Metric Classes ***********/\n\n const Metric = function(metricName, unit, value, dedupeOptions) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(value, 'value');\n csm.Util.assertExist(unit, 'unit');\n csm.Util.assertTrue(csm.Util.isValidUnit(unit));\n if (dedupeOptions) {\n csm.Util.assertInObject(dedupeOptions, 'dedupeOptions', 'dedupeIntervalMs');\n }\n\n this.metricName = metricName;\n this.unit = unit;\n this.value = value;\n this.timestamp = new Date();\n this.dimensions = csm.globalDimensions ? csm.Util.deepCopy(csm.globalDimensions): [];\n this.namespace = csm.configuration.namespace;\n this.dedupeOptions = dedupeOptions; // optional. { dedupeIntervalMs: (int; required), context: (string; optional) }\n\n // Currently, CloudWatch can't aggregate metrics by a subset of dimensions.\n // To bypass this limitation, we introduce the optional dimensions concept to CSM.\n // The CSM metric publisher will publish a default metric without optional dimension\n // For each optional dimension, the CSM metric publisher publishes an extra metric with that dimension.\n this.optionalDimensions = csm.globalOptionalDimensions ? csm.Util.deepCopy(csm.globalOptionalDimensions): [];\n };\n\n Metric.prototype.addDimension = function(name, value) {\n this._addDimensionHelper(this.dimensions, name, value);\n };\n\n Metric.prototype.addOptionalDimension = function(name, value) {\n this._addDimensionHelper(this.optionalDimensions, name, value);\n };\n\n Metric.prototype._addDimensionHelper = function(targetDimensions, name, value) {\n // CloudWatch metric allows maximum 10 dimensions\n // http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#putMetricData-property\n if ((this.dimensions.length + this.optionalDimensions.length) >= MAX_METRIC_DIMENSIONS) {\n throw new csm.ExceedDimensionLimitException(name);\n }\n\n const existing = targetDimensions.find(function(dimension) {\n return dimension.name === name;\n });\n\n if (existing) {\n existing.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n } else {\n targetDimensions.push(new Dimension(name, value));\n }\n };\n\n\n /** ********* Telemetry Classes ***********/\n\n const WorkflowEvent = function(params) {\n this.timestamp = params.timestamp || new Date().getTime();\n this.workflowType = params.workflow.type;\n this.instanceId = params.workflow.instanceId;\n this.userId = params.userId;\n this.organizationId = params.organizationId;\n this.accountId = params.accountId;\n this.event = params.event;\n this.appName = params.appName;\n this.data = [];\n\n // Convert 'data' map into the KeyValuePairList structure expected by the Lambda API\n for (const key in params.data) {\n if (Object.prototype.hasOwnProperty.call(params.data, key)) {\n this.data.push({'key': key, 'value': params.data[key]});\n }\n }\n };\n\n /** ********* Exceptions ***********/\n\n const NullOrUndefinedException = function(paramName) {\n this.name = 'NullOrUndefinedException';\n this.message = paramName + ' is null or undefined. ';\n };\n NullOrUndefinedException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const AssertTrueException = function() {\n this.name = 'AssertTrueException';\n this.message = 'Assertion failed. ';\n };\n AssertTrueException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const ExceedDimensionLimitException = function(dimensionName) {\n this.name = 'ExceedDimensionLimitException';\n this.message = 'Could not add dimension \\\\'' + dimensionName + '\\\\'. Metric has maximum 10 dimensions. ';\n };\n ExceedDimensionLimitException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const InitializationException = function() {\n this.name = 'InitializationException';\n this.message = 'Initialization failed. ';\n };\n InitializationException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n\n csm.Dimension = Dimension;\n csm.Metric = Metric;\n csm.WorkflowEvent = WorkflowEvent;\n csm.NullOrUndefinedException = NullOrUndefinedException;\n csm.AssertTrueException = AssertTrueException;\n csm.InitializationException = InitializationException;\n csm.ExceedDimensionLimitException = ExceedDimensionLimitException;\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const validTimeUnits = [csm.UNIT.SECONDS, csm.UNIT.MILLISECONDS, csm.UNIT.MICROSECONDS];\n const validUnits = validTimeUnits.concat(csm.UNIT.COUNT);\n\n const Util = {\n assertExist: function(value, paramName) {\n if (value === null || value === undefined) {\n throw new csm.NullOrUndefinedException(paramName);\n }\n },\n assertTrue: function(value) {\n if (!value) {\n throw new csm.AssertTrueException();\n }\n },\n assertInObject: function(obj, objName, key) {\n if (obj === null || obj === undefined || typeof obj !== 'object') {\n throw new csm.NullOrUndefinedException(objName);\n }\n if (key === null || key === undefined || !obj[key]) {\n throw new csm.NullOrUndefinedException(\\`\\${objName}[\\${key}]\\`);\n }\n },\n isValidUnit: function(unit) {\n return validUnits.includes(unit);\n },\n isValidTimeUnit: function(unit) {\n return validTimeUnits.includes(unit);\n },\n isEmpty: function(value) {\n if (value !== null && typeof val === 'object') {\n return Objects.keys(value).length === 0;\n }\n return !value;\n },\n deepCopy: function(obj) {\n // NOTE: this will fail if obj has a circular reference\n return JSON.parse(JSON.stringify(obj));\n },\n\n /**\n * This function is used before setting the page location for default metrics and logs,\n * and the APIs that set page location\n * Can be overridden by calling csm.API.setPageLocationTransformer(function(){})\n * @param {string} pathname path for page location\n * @return {string} pathname provided\n */\n pageLocationTransformer: function(pathname) {\n return pathname;\n },\n\n /**\n * As of now, our service public claims only support for Firefox and Chrome\n * Reference https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent\n *\n * This function will only return firefox, chrome and others\n *\n * Best practice as indicated in MDN, \"Avoiding user agent detection\"\n */\n getBrowserDetails: function() {\n const userAgent = window.navigator.userAgent;\n const details = {};\n if (userAgent.includes('Firefox') && !userAgent.includes('Seamonkey')) {\n details.name = 'Firefox';\n details.version = getBrowserVersion('Firefox');\n } else if (userAgent.includes('Chrome') && !userAgent.includes('Chromium')) {\n details.name = 'Chrome';\n details.version = getBrowserVersion('Chrome');\n }\n },\n\n randomId: function() {\n return new Date().getTime() + '-' + Math.random().toString(36).slice(2);\n },\n\n getOrigin: function() {\n return document.location.origin;\n },\n\n getReferrerUrl: function() {\n const referrer = document.referrer || '';\n return this.getURLOrigin(referrer);\n },\n\n getWindowParent: function() {\n let parentLocation = '';\n try {\n parentLocation = window.parent.location.href;\n } catch (e) {\n parentLocation = '';\n }\n return parentLocation;\n },\n\n getURLOrigin: function(urlValue) {\n let origin = '';\n const originArray = urlValue.split( '/' );\n if (originArray.length >= 3) {\n const protocol = originArray[0];\n const host = originArray[2];\n origin = protocol + '//' + host;\n }\n return origin;\n },\n\n };\n\n const getBrowserVersion = function(browserName) {\n const userAgent = window.navigator.userAgent;\n const browserNameIndex = userAgent.indexOf(browserName);\n const nextSpaceIndex = userAgent.indexOf(' ', browserNameIndex);\n if (nextSpaceIndex === -1) {\n return userAgent.substring(browserNameIndex + browserName.length + 1, userAgent.length);\n } else {\n return userAgent.substring(browserNameIndex + browserName.length + 1, nextSpaceIndex);\n }\n };\n\n csm.Util = Util;\n})();\n\n(function() {\n const global = window;\n const csm = global.csm || {};\n global.csm = csm;\n\n csm.globalDimensions = []; // These dimensions are added to all captured metrics.\n csm.globalOptionalDimensions = [];\n csm.initFailureDimensions = [];\n\n const API = {\n getWorkflow: function(workflowType, instanceId, data) {\n return csm.workflow(workflowType, instanceId, data);\n },\n\n addMetric: function(metric) {\n csm.Util.assertExist(metric, 'metric');\n csm.putMetric(metric);\n },\n\n addMetricWithDedupe: function(metric, dedupeIntervalMs, context) {\n csm.Util.assertExist(metric, 'metric');\n csm.Util.assertExist(metric, 'dedupeIntervalMs');\n // context is optional; if present it will only dedupe on metrics with the same context. ex.) tabId\n metric.dedupeOptions = {dedupeIntervalMs, context: context || 'global'};\n csm.putMetric(metric);\n },\n\n addCount: function(metricName, count) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(count, 'count');\n\n const metric = new csm.Metric(metricName, csm.UNIT.COUNT, count);\n csm.putMetric(metric);\n },\n\n addCountWithPageLocation: function(metricName) {\n csm.Util.assertExist(metricName, 'metricName');\n\n const metric = new csm.Metric(metricName, csm.UNIT.COUNT, 1.0);\n metric.addDimension('WindowLocation', csm.Util.pageLocationTransformer(window.location.pathname));\n csm.putMetric(metric);\n },\n\n addError: function(metricName, count) {\n csm.Util.assertExist(metricName, 'metricName');\n\n if (count === undefined || count == null) {\n count = 1.0;\n }\n const metric = new csm.Metric(metricName, csm.UNIT.COUNT, count);\n metric.addDimension('Metric', 'Error');\n csm.putMetric(metric);\n },\n\n addSuccess: function(metricName) {\n API.addError(metricName, 0);\n },\n\n addTime: function(metricName, time, unit) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(time, 'time');\n\n let timeUnit = csm.UNIT.MILLISECONDS;\n if (unit && csm.Util.isValidTimeUnit(unit)) {\n timeUnit = unit;\n }\n const metric = new csm.Metric(metricName, timeUnit, time);\n metric.addDimension('Metric', 'Time');\n csm.putMetric(metric);\n },\n\n addTimeWithPageLocation: function(metricName, time, unit) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(time, 'time');\n\n let timeUnit = csm.UNIT.MILLISECONDS;\n if (unit && csm.Util.isValidTimeUnit(unit)) {\n timeUnit = unit;\n }\n const metric = new csm.Metric(metricName, timeUnit, time);\n metric.addDimension('WindowLocation', csm.Util.pageLocationTransformer(window.location.pathname));\n csm.putMetric(metric);\n },\n\n pageReady: function() {\n if (window.performance && window.performance.now) {\n const pageLoadTime = window.performance.now();\n const metric = new csm.Metric('PageReadyLatency', csm.UNIT.MILLISECONDS, pageLoadTime);\n metric.addDimension('WindowLocation', csm.Util.pageLocationTransformer(window.location.pathname));\n csm.putMetric(metric);\n }\n },\n\n setPageLocationTransformer: function(transformFunc) {\n csm.Util.assertExist(transformFunc, 'transformFunc');\n csm.Util.assertTrue((typeof transformFunc) === 'function');\n csm.Util.pageLocationTransformer = transformFunc;\n },\n\n setGlobalDimensions: function(dimensions) {\n csm.Util.assertExist(dimensions, 'dimensions');\n csm.globalDimensions = dimensions;\n },\n\n setGlobalOptionalDimensions: function(dimensions) {\n csm.Util.assertExist(dimensions, 'dimensions');\n csm.globalOptionalDimensions = dimensions;\n },\n\n setInitFailureDimensions: function(dimensions) {\n csm.Util.assertExist(dimensions, 'dimensions');\n csm.initFailureDimensions = dimensions;\n },\n\n putCustom: function(endpoint, headers, data) {\n csm.Util.assertExist(data, 'data');\n csm.Util.assertExist(endpoint, 'endpoint');\n csm.Util.assertExist(headers, 'headers');\n csm.putCustom(endpoint, headers, data);\n },\n\n setAuthParams: function(authParams) {\n csm.setAuthParams(authParams);\n },\n\n setConfig: function(key, value) {\n csm.Util.assertExist(key, 'key');\n csm.Util.assertExist(value, 'value');\n if (!csm.configuration[key]) {\n csm.setConfig(key, value); // set configuration variables such as accountId, instanceId, userId\n }\n },\n };\n\n csm.API = API;\n})();\n\n(function() {\n const global = window;\n const csm = global.csm || {};\n global.csm = csm;\n\n const WORKFLOW_KEY_PREFIX = 'csm.workflow';\n\n /**\n * Calculates the local storage key used to store a workflow of the specified type.\n * @param {string} type of workflow\n * @return {string} storage key\n */\n const getWorkflowKeyForType = function(type) {\n return [\n WORKFLOW_KEY_PREFIX,\n type,\n ].join('.');\n };\n\n /**\n * Constructor for new Workflow objects.\n *\n * If you need to be able to share a workflow across tabs, it is recommended\n * to use \"csm.workflow\" to create/hydrate your workflows instead.\n * @param {string} type of workflow\n * @param {string} instanceId of workflow\n * @param {JSON} data blob associated with workflow\n */\n const Workflow = function(type, instanceId, data) {\n this.type = type;\n this.instanceId = instanceId || csm.Util.randomId();\n this.instanceSpecified = instanceId || false;\n this.eventMap = {};\n this.data = data || {};\n\n // Merge global dimensions into the data map.\n const dimensionData = {};\n csm.globalDimensions.forEach(function(dimension) {\n dimensionData[dimension.name] = dimension.value;\n });\n csm.globalOptionalDimensions.forEach(function(dimension) {\n dimensionData[dimension.name] = dimension.value;\n });\n this.data = this._mergeData(dimensionData);\n };\n\n /**\n * Create a new workflow or rehydrate an existing shared workflow.\n *\n * @param {string} type The type of workflow to be created.\n * @param {string} instanceId The instanceId of the workflow. If not provided, it will be\n * assigned a random ID and will not be automatically saved to local storage.\n * If provided, we will attempt to load an existing workflow of the same type\n * from local storage and rehydrate it.\n * @param {JSON} data An optional map of key/value pairs to be added as data to every\n * workflow event created with this workflow.\n * @return {Workflow} workflow event\n * NOTE: Only one workflow of each type can be stored at the same time, to avoid\n * overloading localStorage with unused workflow records.\n */\n csm.workflow = function(type, instanceId, data) {\n let workflow = new Workflow(type, instanceId, data);\n\n if (instanceId) {\n const savedWorkflow = csm._loadWorkflow(type);\n if (savedWorkflow && savedWorkflow.instanceId === instanceId) {\n workflow = savedWorkflow;\n workflow.addData(data || {});\n }\n }\n\n return workflow;\n };\n\n csm._loadWorkflow = function(type) {\n let workflow = null;\n const workflowJson = localStorage.getItem(getWorkflowKeyForType(type));\n const workflowStruct = workflowJson ? JSON.parse(workflowJson) : null;\n if (workflowStruct) {\n workflow = new Workflow(type, workflowStruct.instanceId);\n workflow.eventMap = workflowStruct.eventMap;\n }\n return workflow;\n };\n\n /**\n * Creates a new workflow event and returns it. Then this workflow event is sent upstream\n * to the CSMSharedWorker where it is provided to the backend.\n *\n * If an instanceId was specified when the workflow was created, this will also save the workflow\n * and all of its events to localStorage.\n *\n * @param {string} event The name of the event that occurred.\n * @param {JSON} data An optional free-form key attribute pair of metadata items that will be stored\n * and reported backstream with the workflow event.\n * @return {WorkflowEvent} workflowEvent\n */\n Workflow.prototype.event = function(event, data) {\n const mergedData = this._mergeData(data || {});\n const workflowEvent = new csm.WorkflowEvent({\n workflow: this,\n event: event,\n data: mergedData,\n userId: csm.configuration.userId || '',\n organizationId: csm.configuration.organizationId || '',\n accountId: csm.configuration.accountId || '',\n appName: csm.configuration.namespace || '',\n });\n csm.putWorkflowEvent(workflowEvent);\n this.eventMap[event] = workflowEvent;\n if (this.instanceSpecified) {\n this.save();\n }\n return workflowEvent;\n };\n\n /**\n * Creates a new workflow event and returns it, if the same event is not happened in ths past\n * dedupeIntervalMs milliseconds.\n * @param {string} event The name of the event that occurred.\n * @param {JSON} data An optional free-form key attribute pair of metadata items that will be stored\n * and reported backstream with the workflow event.\n * @param {int} dedupeIntervalMs defaults to 200 MS\n * @return {WorkflowEvent} workflowEvent\n */\n Workflow.prototype.eventWithDedupe = function(event, data, dedupeIntervalMs) {\n const pastEvent = this.getPastEvent(event);\n const now = new Date().getTime();\n const interval = dedupeIntervalMs || 200;\n\n // Crafting the expected workflow event data result\n const mergedData = this._mergeData(data);\n const expectedData = [];\n for (const key in mergedData) {\n if (Object.prototype.hasOwnProperty.call(mergedData, key)) {\n expectedData.push({'key': key, 'value': mergedData[key]});\n }\n }\n\n // Deduplicate same events that happened within interval\n if (!pastEvent || (pastEvent && JSON.stringify(pastEvent.data) !== JSON.stringify(expectedData)) ||\n (pastEvent && (now - pastEvent.timestamp > interval))) {\n return this.event(event, data);\n }\n return null;\n };\n\n /**\n * Get a past event if it exists in this workflow, otherwise returns null.\n * This can be helpful to emit metrics in real time based on the differences\n * between workflow event timestamps, especially for workflows shared across tabs.\n * @param {string} event key to see if workflow exists for this event\n * @return {WorkflowEvent} workflow event retrieved\n */\n Workflow.prototype.getPastEvent = function(event) {\n return event in this.eventMap ? this.eventMap[event] : null;\n };\n\n /**\n * Save the workflow to local storage. This only happens automatically when an\n * instanceId is specified on workflow creation, however if this method is called\n * explicitly by the client, the randomly generated workflow instance id can be\n * used to retrieve the workflow later and automatic save on events will be enabled.\n */\n Workflow.prototype.save = function() {\n this.instanceSpecified = true;\n localStorage.setItem(getWorkflowKeyForType(this.type), JSON.stringify(this));\n };\n\n /**\n * Remove this workflow if it is the saved instance for this workflow type in localStorage.\n */\n Workflow.prototype.close = function() {\n const storedWorkflow = csm._loadWorkflow(this.type);\n if (storedWorkflow && storedWorkflow.instanceId === this.instanceId) {\n localStorage.removeItem(getWorkflowKeyForType(this.type));\n }\n };\n\n Workflow.prototype.addData = function(data) {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n this.data[key] = data[key];\n }\n }\n };\n\n Workflow.prototype._mergeData = function(data) {\n const mergedData = {};\n let key = null;\n for (key in this.data) {\n if (Object.prototype.hasOwnProperty.call(this.data, key)) {\n mergedData[key] = this.data[key] == null ? 'null' : (this.data[key] === '' ? ' ' : this.data[key].toString());\n }\n }\n for (key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n mergedData[key] = data[key] == null ? 'null' : (data[key] === '' ? ' ' : data[key].toString());\n }\n }\n return mergedData;\n };\n})();\n\n(function() {\n const global = window;\n const csm = global.csm || {};\n global.csm = csm;\n\n let worker = null;\n let portId = null;\n\n const MAX_INIT_MILLISECONDS = 5000;\n const preInitTaskQueue = [];\n csm.configuration = {};\n\n /**\n * Initialize CSM variables\n * @param {object} params for CSM\n * @params.namespace Define your metric namespace used in CloudWatch metrics\n * @params.sharedWorkerUrl Specify the relative url to the connect-csm-worker.js file in your service\n * @params.endpoint Specify an LDAS endpoint to use.\n * @params.dryRunMode When CSM is initialized with dry run mode, it won't actually publish metrics.\n * @params.defaultMetrics Enable default metrics. Default to false.\n */\n csm.initCSM = function(params) {\n csm.Util.assertExist(params.namespace, 'namespace');\n csm.Util.assertExist(params.sharedWorkerUrl, 'sharedWorkerUrl');\n csm.Util.assertExist(params.endpoint, 'endpoint');\n\n try {\n console.log('Starting csm shared worker with', params.sharedWorkerUrl);\n worker = new SharedWorker(params.sharedWorkerUrl, 'CSM_SharedWorker');\n worker.port.start();\n } catch (e) {\n console.log('Failed to initialize csm shared worker with', params.sharedWorkerUrl);\n console.log(e.message);\n }\n\n /**\n * Configure shared worker\n */\n csm.configuration = {\n namespace: params.namespace,\n userId: params.userId || '',\n accountId: params.accountId || '',\n organizationId: params.organizationId || '',\n endpointUrl: params.endpoint || null,\n batchSettings: params.batchSettings || null,\n addPageVisibilityDimension: params.addPageVisibilityDimension || false,\n addUrlDataDimensions: params.addUrlDataDimensions || false,\n dryRunMode: params.dryRunMode || false, // When csm is in dryRunMode it won't actually publish metrics to CSM\n };\n\n postEventToWorker(csm.EVENT_TYPE.CONFIG, csm.configuration);\n\n /**\n * Receive message from shared worker\n * @param {MessageEvent} messageEvent from shared worker\n */\n worker.port.onmessage = function(messageEvent) {\n const messageType = messageEvent.data.type;\n onMessageFromWorker(messageType, messageEvent.data);\n };\n\n /**\n * Inform shared worker window closed\n */\n global.onbeforeunload = function() {\n worker.port.postMessage(\n {\n type: csm.EVENT_TYPE.CLOSE,\n portId: portId,\n },\n );\n };\n\n /**\n * Check if initialization success\n */\n global.setTimeout(function() {\n if (!isCSMInitialized()) {\n console.log('[FATAL] CSM initialization failed! Please make sure the sharedWorkerUrl is reachable.');\n }\n }, MAX_INIT_MILLISECONDS);\n\n // Emit out of the box metrics\n if (params.defaultMetrics) {\n emitDefaultMetrics();\n }\n };\n // Final processing before sending to SharedWorker\n const processMetric = function(metric) {\n if (csm.configuration.addPageVisibilityDimension && document.visibilityState) {\n metric.addOptionalDimension('VisibilityState', document.visibilityState);\n }\n };\n\n const processWorkflowEvent = function(event) {\n if (csm.configuration.addUrlDataDimensions) {\n event.data.push({'key': 'ReferrerUrl', 'value': csm.Util.getReferrerUrl()});\n event.data.push({'key': 'Origin', 'value': csm.Util.getOrigin()});\n event.data.push({'key': 'WindowParent', 'value': csm.Util.getWindowParent()});\n }\n if (['initFailure', 'initializationLatencyInfo'].includes(event.event)) {\n csm.initFailureDimensions.forEach((dimension) => {\n Object.keys(dimension).forEach((key) => {\n event.data.push({'key': key, 'value': dimension[key]});\n });\n });\n }\n return event;\n };\n\n csm.putMetric = function(metric) {\n processMetric(metric);\n postEventToWorker(csm.EVENT_TYPE.METRIC, metric);\n };\n\n csm.putLog = function(log) {\n postEventToWorker(csm.EVENT_TYPE.LOG, log);\n };\n\n csm.putWorkflowEvent = function(event) {\n const processedEvent = processWorkflowEvent(event);\n postEventToWorker(csm.EVENT_TYPE.WORKFLOW_EVENT, processedEvent);\n };\n\n csm.putCustom = function(endpoint, headers, data) {\n postEventToWorker(csm.EVENT_TYPE.CUSTOM, data, endpoint, headers);\n };\n\n csm.setAuthParams = function(authParams) {\n postEventToWorker(csm.EVENT_TYPE.SET_AUTH, authParams);\n };\n\n csm.setConfig = function(key, value) {\n csm.configuration[key] = value;\n postEventToWorker(csm.EVENT_TYPE.SET_CONFIG, {key, value});\n };\n /** ********************** PRIVATE METHODS ************************/\n\n const onMessageFromWorker = function(messageType, data) {\n if (messageType === csm.EVENT_TYPE.CONFIG) {\n portId = data.portId;\n onCSMInitialized();\n }\n };\n\n const onCSMInitialized = function() {\n // Purge the preInitTaskQueue\n preInitTaskQueue.forEach(function(task) {\n postEventToWorker(task.type, task.message, task.endpoint, task.headers);\n });\n\n // TODO: Capture on errors and publish log to shared worker\n /**\n window.onerror = function(message, fileName, lineNumber, columnNumber, errorstack) {\n var log = new csm.Log(message, fileName, lineNumber, columnNumber, errorstack.stack);\n csm.putLog(log);\n };\n */\n };\n\n /**\n * Emit out of the box metrics automatically\n *\n * TODO allow configuration\n */\n const emitDefaultMetrics = function() {\n window.addEventListener('load', function() {\n // loadEventEnd is avaliable after the onload function finished\n // https://www.w3.org/TR/navigation-timing-2/#processing-model\n // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\n global.setTimeout(function() {\n try {\n const perfData = window.performance.getEntriesByType('navigation')[0];\n const pageLoadTime = perfData.loadEventEnd - perfData.startTime;\n const connectTime = perfData.responseEnd - perfData.requestStart;\n const domRenderTime = perfData.domComplete - perfData.domInteractive;\n csm.API.addCountWithPageLocation('PageLoad');\n csm.API.addTimeWithPageLocation('PageLoadTime', pageLoadTime);\n csm.API.addTimeWithPageLocation('ConnectTime', connectTime);\n csm.API.addTimeWithPageLocation('DomRenderTime', domRenderTime);\n } catch (err) {\n console.log('Error emitting default metrics', err);\n }\n }, 0);\n });\n };\n\n /**\n * Try posting message to shared worker\n * If shared worker hasn't been initialized, put the task to queue to be clean up once initialized\n * @param {csm.EVENT_TYPE} eventType for CSM\n * @param {object} message event following type of eventType\n * @param {string} [endpoint] optional parameter for putCustom function (put any data to specified endpoint)\n * @param {object} [headers] optional parameter for putCustom function\n */\n const postEventToWorker = function(eventType, message, endpoint, headers) {\n if (eventType === csm.EVENT_TYPE.CONFIG || isCSMInitialized()) {\n worker.port.postMessage(\n {\n type: eventType,\n portId: portId,\n message: message,\n endpoint: endpoint,\n headers: headers,\n },\n );\n } else {\n preInitTaskQueue.push({\n type: eventType,\n message: message,\n endpoint: endpoint,\n headers: headers,\n });\n }\n };\n\n const isCSMInitialized = function() {\n return portId !== null;\n };\n})()`;\n","export const csmWorkerString = `(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n csm.EVENT_TYPE = {\n LOG: 'LOG',\n METRIC: 'METRIC',\n CONFIG: 'CONFIG',\n WORKFLOW_EVENT: 'WORKFLOW_EVENT',\n CUSTOM: 'CUSTOM',\n CLOSE: 'CLOSE',\n SET_AUTH: 'SET_AUTH',\n SET_CONFIG: 'SET_CONFIG',\n };\n\n csm.UNIT = {\n COUNT: 'Count',\n SECONDS: 'Seconds',\n MILLISECONDS: 'Milliseconds',\n MICROSECONDS: 'Microseconds',\n };\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const MAX_METRIC_DIMENSIONS = 10;\n\n /** ********* Dimension Classes ***********/\n\n const Dimension = function(name, value) {\n csm.Util.assertExist(name, 'name');\n csm.Util.assertExist(value, 'value');\n\n this.name = name;\n this.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n };\n\n\n /** ********* Metric Classes ***********/\n\n const Metric = function(metricName, unit, value, dedupeOptions) {\n csm.Util.assertExist(metricName, 'metricName');\n csm.Util.assertExist(value, 'value');\n csm.Util.assertExist(unit, 'unit');\n csm.Util.assertTrue(csm.Util.isValidUnit(unit));\n if (dedupeOptions) {\n csm.Util.assertInObject(dedupeOptions, 'dedupeOptions', 'dedupeIntervalMs');\n }\n\n this.metricName = metricName;\n this.unit = unit;\n this.value = value;\n this.timestamp = new Date();\n this.dimensions = csm.globalDimensions ? csm.Util.deepCopy(csm.globalDimensions): [];\n this.namespace = csm.configuration.namespace;\n this.dedupeOptions = dedupeOptions; // optional. { dedupeIntervalMs: (int; required), context: (string; optional) }\n\n // Currently, CloudWatch can't aggregate metrics by a subset of dimensions.\n // To bypass this limitation, we introduce the optional dimensions concept to CSM.\n // The CSM metric publisher will publish a default metric without optional dimension\n // For each optional dimension, the CSM metric publisher publishes an extra metric with that dimension.\n this.optionalDimensions = csm.globalOptionalDimensions ? csm.Util.deepCopy(csm.globalOptionalDimensions): [];\n };\n\n Metric.prototype.addDimension = function(name, value) {\n this._addDimensionHelper(this.dimensions, name, value);\n };\n\n Metric.prototype.addOptionalDimension = function(name, value) {\n this._addDimensionHelper(this.optionalDimensions, name, value);\n };\n\n Metric.prototype._addDimensionHelper = function(targetDimensions, name, value) {\n // CloudWatch metric allows maximum 10 dimensions\n // http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#putMetricData-property\n if ((this.dimensions.length + this.optionalDimensions.length) >= MAX_METRIC_DIMENSIONS) {\n throw new csm.ExceedDimensionLimitException(name);\n }\n\n const existing = targetDimensions.find(function(dimension) {\n return dimension.name === name;\n });\n\n if (existing) {\n existing.value = value == null ? 'null' : (value === '' ? ' ' : value.toString());\n } else {\n targetDimensions.push(new Dimension(name, value));\n }\n };\n\n\n /** ********* Telemetry Classes ***********/\n\n const WorkflowEvent = function(params) {\n this.timestamp = params.timestamp || new Date().getTime();\n this.workflowType = params.workflow.type;\n this.instanceId = params.workflow.instanceId;\n this.userId = params.userId;\n this.organizationId = params.organizationId;\n this.accountId = params.accountId;\n this.event = params.event;\n this.appName = params.appName;\n this.data = [];\n\n // Convert 'data' map into the KeyValuePairList structure expected by the Lambda API\n for (const key in params.data) {\n if (Object.prototype.hasOwnProperty.call(params.data, key)) {\n this.data.push({'key': key, 'value': params.data[key]});\n }\n }\n };\n\n /** ********* Exceptions ***********/\n\n const NullOrUndefinedException = function(paramName) {\n this.name = 'NullOrUndefinedException';\n this.message = paramName + ' is null or undefined. ';\n };\n NullOrUndefinedException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const AssertTrueException = function() {\n this.name = 'AssertTrueException';\n this.message = 'Assertion failed. ';\n };\n AssertTrueException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const ExceedDimensionLimitException = function(dimensionName) {\n this.name = 'ExceedDimensionLimitException';\n this.message = 'Could not add dimension ' + dimensionName + ' . Metric has maximum 10 dimensions. ';\n };\n ExceedDimensionLimitException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n const InitializationException = function() {\n this.name = 'InitializationException';\n this.message = 'Initialization failed. ';\n };\n InitializationException.prototype.toString = function() {\n return this.name + ': ' + this.message;\n };\n\n\n csm.Dimension = Dimension;\n csm.Metric = Metric;\n csm.WorkflowEvent = WorkflowEvent;\n csm.NullOrUndefinedException = NullOrUndefinedException;\n csm.AssertTrueException = AssertTrueException;\n csm.InitializationException = InitializationException;\n csm.ExceedDimensionLimitException = ExceedDimensionLimitException;\n})();\n\n(function() {\n const global = self;\n const csm = global.csm || {};\n global.csm = csm;\n\n const validTimeUnits = [csm.UNIT.SECONDS, csm.UNIT.MILLISECONDS, csm.UNIT.MICROSECONDS];\n const validUnits = validTimeUnits.concat(csm.UNIT.COUNT);\n\n const Util = {\n assertExist: function(value, paramName) {\n if (value === null || value === undefined) {\n throw new csm.NullOrUndefinedException(paramName);\n }\n },\n assertTrue: function(value) {\n if (!value) {\n throw new csm.AssertTrueException();\n }\n },\n assertInObject: function(obj, objName, key) {\n if (obj === null || obj === undefined || typeof obj !== 'object') {\n throw new csm.NullOrUndefinedException(objName);\n }\n if (key === null || key === undefined || !obj[key]) {\n throw new csm.NullOrUndefinedException(\\`\\${objName}[\\${key}]\\`);\n }\n },\n isValidUnit: function(unit) {\n return validUnits.includes(unit);\n },\n isValidTimeUnit: function(unit) {\n return validTimeUnits.includes(unit);\n },\n isEmpty: function(value) {\n if (value !== null && typeof val === 'object') {\n return Objects.keys(value).length === 0;\n }\n return !value;\n },\n deepCopy: function(obj) {\n // NOTE: this will fail if obj has a circular reference\n return JSON.parse(JSON.stringify(obj));\n },\n\n /**\n * This function is used before setting the page location for default metrics and logs,\n * and the APIs that set page location\n * Can be overridden by calling csm.API.setPageLocationTransformer(function(){})\n * @param {string} pathname path for page location\n * @return {string} pathname provided\n */\n pageLocationTransformer: function(pathname) {\n return pathname;\n },\n\n /**\n * As of now, our service public claims only support for Firefox and Chrome\n * Reference https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent\n *\n * This function will only return firefox, chrome and others\n *\n * Best practice as indicated in MDN, \"Avoiding user agent detection\"\n */\n getBrowserDetails: function() {\n const userAgent = window.navigator.userAgent;\n const details = {};\n if (userAgent.includes('Firefox') && !userAgent.includes('Seamonkey')) {\n details.name = 'Firefox';\n details.version = getBrowserVersion('Firefox');\n } else if (userAgent.includes('Chrome') && !userAgent.includes('Chromium')) {\n details.name = 'Chrome';\n details.version = getBrowserVersion('Chrome');\n }\n },\n\n randomId: function() {\n return new Date().getTime() + '-' + Math.random().toString(36).slice(2);\n },\n\n getOrigin: function() {\n return document.location.origin;\n },\n\n getReferrerUrl: function() {\n const referrer = document.referrer || '';\n return this.getURLOrigin(referrer);\n },\n\n getWindowParent: function() {\n let parentLocation = '';\n try {\n parentLocation = window.parent.location.href;\n } catch (e) {\n parentLocation = '';\n }\n return parentLocation;\n },\n\n getURLOrigin: function(urlValue) {\n let origin = '';\n const originArray = urlValue.split( '/' );\n if (originArray.length >= 3) {\n const protocol = originArray[0];\n const host = originArray[2];\n origin = protocol + '//' + host;\n }\n return origin;\n },\n\n };\n\n const getBrowserVersion = function(browserName) {\n const userAgent = window.navigator.userAgent;\n const browserNameIndex = userAgent.indexOf(browserName);\n const nextSpaceIndex = userAgent.indexOf(' ', browserNameIndex);\n if (nextSpaceIndex === -1) {\n return userAgent.substring(browserNameIndex + browserName.length + 1, userAgent.length);\n } else {\n return userAgent.substring(browserNameIndex + browserName.length + 1, nextSpaceIndex);\n }\n };\n\n csm.Util = Util;\n})();\n\n(function() {\n const XHR_DONE_READY_STATE = 4; // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState\n\n const global = self;\n const configuration = {};\n const batchSettings = {\n maxMetricsSize: 30,\n maxWorkflowEventsSize: 30,\n putMetricsIntervalMs: 30000,\n putWorkflowEventsIntervalMs: 2000,\n };\n const metricLists = {}; // metricList per CloudWatch Namespace\n const metricMap = {};\n const ports = {};\n let workflowEvents = {workflowEventList: []};\n\n // SharedWorker wiki: https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker\n onconnect = function(connectEvent) {\n const port = connectEvent.ports[0];\n\n port.onmessage = function(event) {\n const data = event.data;\n const messageType = data.type;\n const message = data.message;\n const endpoint = data.endpoint;\n const headers = data.headers;\n\n if (data.portId && !(data.portId in ports)) {\n // This could happen when a user tries to close a tab which has a pop up alert to confirm closing,\n // and the user decides to cancel closing\n // This triggers before unload event while the tab or window is not closed actually\n ports[data.portId] = port;\n }\n\n const {METRIC, WORKFLOW_EVENT, CUSTOM, CONFIG, SET_AUTH, SET_CONFIG, CLOSE} = csm.EVENT_TYPE;\n switch (messageType) {\n case METRIC: {\n csm.Util.assertInObject(message, 'message', 'namespace');\n const namespace = message.namespace;\n if (shouldDedupe(message)) break;\n addMetricEventToMap(message);\n if (metricLists[namespace]) {\n metricLists[namespace].push(message);\n } else {\n metricLists[namespace] = [message];\n }\n if (metricLists[namespace].length >= batchSettings.maxMetricsSize) {\n putMetricsForNamespace(namespace);\n }\n break;\n }\n case WORKFLOW_EVENT: {\n workflowEvents.workflowEventList.push(message);\n if (workflowEvents.length >= batchSettings.maxWorkflowEventsSize) {\n putWorkflowEvents();\n }\n break;\n }\n case CUSTOM: {\n putCustom(endpoint, headers, message);\n break;\n }\n case CONFIG: {\n const portId = Object.keys(ports).length + 1; // portId starts from 1\n ports[portId] = port;\n for (const setting of Object.keys(message)) {\n if (!csm.Util.isEmpty(message[setting])) {\n configuration[setting] = message[setting];\n }\n }\n\n // set optional batch settings\n if (configuration.batchSettings) {\n for (const setting of Object.keys(configuration.batchSettings)) {\n batchSettings[setting] = configuration.batchSettings[setting];\n }\n }\n // send metrics and workflow events at set intervals\n putMetrics();\n putWorkflowEvents();\n global.setInterval(putMetrics, batchSettings.putMetricsIntervalMs);\n global.setInterval(putWorkflowEvents, batchSettings.putWorkflowEventsIntervalMs);\n\n port.postMessage(\n {\n type: csm.EVENT_TYPE.CONFIG,\n portId: portId,\n },\n );\n break;\n }\n case SET_AUTH: {\n configuration.authParams = message;\n authenticate();\n break;\n }\n case SET_CONFIG: {\n configuration[message.key] = message.value;\n break;\n }\n case CLOSE: {\n delete ports[data.portId];\n if (Object.keys(ports).length === 0) {\n putMetrics();\n putWorkflowEvents();\n }\n break;\n }\n default:\n break;\n }\n };\n };\n\n const shouldDedupe = function(metric) {\n try {\n const pastMetric = getPastMetricEvent(metric);\n return pastMetric && metric.dedupeOptions &&\n (metric.timestamp - pastMetric.timestamp < metric.dedupeOptions.dedupeIntervalMs);\n } catch (err) {\n console.error('Error in shouldDedupe', err);\n return false;\n }\n };\n\n const getPastMetricEvent = function(metric) {\n try {\n return metricMap[getMetricEventKey(metric)];\n } catch (err) {\n // ignore err - no previous metrics found\n return null;\n }\n };\n\n const addMetricEventToMap = function(metric) {\n try {\n metricMap[getMetricEventKey(metric)] = metric;\n } catch (err) {\n console.error('Failed to add event to metricMap', err);\n }\n csm.metricMap = metricMap;\n };\n\n const getMetricEventKey = function(metric) {\n const {namespace, metricName, unit, dedupeOptions} = metric;\n let context = 'global';\n if (dedupeOptions && dedupeOptions.context) {\n context = dedupeOptions.context;\n }\n return \\`\\${namespace}-\\${metricName}-\\${unit}-\\${context}\\`;\n };\n\n const authenticate = function() {\n postRequest(configuration.endpointUrl + '/auth', {authParams: configuration.authParams},\n {\n success: function(response) {\n if (response && response.jwtToken) {\n configuration.authParams.jwtToken = response.jwtToken;\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] csm auth failed!');\n broadcastMessage('Response : ' + response);\n },\n }, {'x-api-key': 'auth-method-level-key'});\n };\n\n /**\n * Put metrics to service when:\n * a) metricList size is at maxMetricsSize\n * b) every putMetricsIntervalMs time if the metricList is not empty\n * c) worker is closed\n *\n * Timer is reset, and metricList emptied after each putMetrics call\n */\n const putMetrics = function() {\n for (const namespace of Object.keys(metricLists)) {\n putMetricsForNamespace(namespace);\n }\n };\n\n const putMetricsForNamespace = function(namespace) {\n csm.Util.assertInObject(metricLists, 'metricLists', namespace);\n const metricList = metricLists[namespace];\n\n if (metricList.length > 0 && !configuration.dryRunMode && configuration.endpointUrl) {\n postRequest(configuration.endpointUrl + '/put-metrics', {\n metricNamespace: namespace,\n metricList: metricList,\n authParams: configuration.authParams,\n accountId: configuration.accountId,\n organizationId: configuration.organizationId,\n agentResourceId: configuration.userId,\n }, {\n success: function(response) {\n if (response) {\n broadcastMessage('PutMetrics response : ' + response);\n if (response.unsetToken) {\n delete configuration.authParams.jwtToken;\n authenticate();\n }\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] Put metrics to service failed! ');\n },\n });\n }\n metricLists[namespace] = [];\n };\n\n /**\n * Put metrics to service every two seconds if there are events to be put.\n */\n const putWorkflowEvents = function() {\n if (workflowEvents.workflowEventList.length > 0 && !configuration.dryRunMode && configuration.endpointUrl) {\n workflowEvents.authParams = configuration.authParams;\n postRequest(configuration.endpointUrl + '/put-workflow-events', workflowEvents,\n {\n success: function(response) {\n if (response) {\n if (response.workflowEventList && response.workflowEventList.length > 0) {\n broadcastMessage('[WARN] There are ' + response.length + ' workflow events that failed to publish');\n broadcastMessage('Response : ' + response);\n }\n if (response.unsetToken) {\n delete configuration.authParams.jwtToken;\n authenticate();\n }\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] Put workflow events to service failed! ');\n },\n });\n }\n\n workflowEvents = {workflowEventList: []};\n };\n\n /**\n * Put data to custom endpoint on demand\n * @param {string} endpoint\n * @param {object} headers\n * @param {object} data to send to endpoint\n */\n const putCustom = function(endpoint, headers, data) {\n if (!configuration.dryRunMode && endpoint && data) {\n postRequest(endpoint, data, {\n success: function(response) {\n if (response) {\n broadcastMessage('Response : ' + response);\n }\n },\n failure: function(response) {\n broadcastMessage('[ERROR] Failed to put custom data! ');\n },\n }, headers);\n }\n };\n\n /**\n * Broadcast message to all tabs\n * @param {string} message to post to all the tabs\n */\n const broadcastMessage = function(message) {\n for (const portId in ports) {\n if (Object.prototype.hasOwnProperty.call(ports, portId)) {\n ports[portId].postMessage(message);\n }\n }\n };\n\n const postRequest = function(url, data, callbacks, headers) {\n csm.Util.assertExist(url, 'url');\n csm.Util.assertExist(data, 'data');\n\n callbacks = callbacks || {};\n callbacks.success = callbacks.success || function() {};\n callbacks.failure = callbacks.failure || function() {};\n\n const request = new XMLHttpRequest(); // new HttpRequest instance\n request.onreadystatechange = function() {\n const errorList = request.response ? JSON.parse(request.response): [];\n if (request.readyState === XHR_DONE_READY_STATE) { // request finished and response is ready\n if (request.status === 200) {\n callbacks.success(errorList);\n } else {\n broadcastMessage('AJAX request failed with status: ' + request.status);\n callbacks.failure(errorList);\n }\n }\n };\n\n request.open('POST', url);\n if (headers && typeof headers === 'object') {\n Object.keys(headers).forEach((header) => request.setRequestHeader(header, headers[header]));\n } else {\n request.setRequestHeader('Content-Type', 'application/json');\n }\n request.send(JSON.stringify(data));\n };\n})()`;\n","import { IllegalArgumentException } from \"../exceptions\";\nimport { ConnectionInfoType } from \"./baseConnectionHelper\";\nimport { ACPS_METHODS, CSM_CATEGORY, SESSION_TYPES, TRANSPORT_LIFETIME_IN_SECONDS, CONN_ACK_FAILED } from \"../../constants\";\nimport { csmService } from \"../../service/csmService\";\n\nexport default class ConnectionDetailsProvider {\n\n constructor(participantToken, chatClient, sessionType, getConnectionToken=null) {\n this.chatClient = chatClient;\n this.participantToken = participantToken || null;\n this.connectionDetails = null;\n this.connectionToken = null;\n this.connectionTokenExpiry = null;\n this.sessionType = sessionType;\n this.getConnectionToken = getConnectionToken;\n }\n\n getFetchedConnectionToken() {\n return this.connectionToken;\n }\n\n getConnectionTokenExpiry() {\n return this.connectionTokenExpiry;\n }\n\n getConnectionDetails() {\n return this.connectionDetails;\n }\n\n fetchConnectionDetails() {\n return this._fetchConnectionDetails().then((connectionDetails) => connectionDetails);\n }\n\n _handleCreateParticipantConnectionResponse(connectionDetails, ConnectParticipant) {\n this.connectionDetails = {\n url: connectionDetails.Websocket.Url,\n expiry: connectionDetails.Websocket.ConnectionExpiry,\n transportLifeTimeInSeconds: TRANSPORT_LIFETIME_IN_SECONDS,\n connectionAcknowledged: ConnectParticipant,\n connectionToken: connectionDetails.ConnectionCredentials.ConnectionToken,\n connectionTokenExpiry: connectionDetails.ConnectionCredentials.Expiry,\n };\n this.connectionToken = connectionDetails.ConnectionCredentials.ConnectionToken;\n this.connectionTokenExpiry = connectionDetails.ConnectionCredentials.Expiry;\n return this.connectionDetails;\n }\n\n _handleGetConnectionTokenResponse(connectionTokenDetails) {\n this.connectionDetails = {\n url: null,\n expiry: null,\n connectionToken: connectionTokenDetails.participantToken,\n connectionTokenExpiry: connectionTokenDetails.expiry,\n transportLifeTimeInSeconds: TRANSPORT_LIFETIME_IN_SECONDS,\n connectionAcknowledged: false,\n };\n this.connectionToken = connectionTokenDetails.participantToken;\n this.connectionTokenExpiry = connectionTokenDetails.expiry;\n return Promise.resolve(this.connectionDetails);\n }\n\n callCreateParticipantConnection({ Type = true, ConnectParticipant = false } = {}){\n const startTime = new Date().getTime();\n return this.chatClient\n .createParticipantConnection(this.participantToken, Type ? [ConnectionInfoType.WEBSOCKET, ConnectionInfoType.CONNECTION_CREDENTIALS] : null, ConnectParticipant ? ConnectParticipant : null)\n .then((response) => {\n if (Type) {\n this._addParticipantConnectionMetric(startTime);\n return this._handleCreateParticipantConnectionResponse(response.data, ConnectParticipant);\n }\n })\n .catch( error => {\n if (Type) {\n this._addParticipantConnectionMetric(startTime, true);\n }\n return Promise.reject({\n reason: \"Failed to fetch connectionDetails with createParticipantConnection\",\n _debug: error\n });\n });\n }\n\n _addParticipantConnectionMetric(startTime, error = false) {\n csmService.addLatencyMetricWithStartTime(ACPS_METHODS.CREATE_PARTICIPANT_CONNECTION, startTime, CSM_CATEGORY.API);\n csmService.addCountAndErrorMetric(ACPS_METHODS.CREATE_PARTICIPANT_CONNECTION, CSM_CATEGORY.API, error);\n }\n\n async _fetchConnectionDetails() {\n // If this is a customer session, use the provided participantToken to call createParticipantConnection for our connection details. \n if (this.sessionType === SESSION_TYPES.CUSTOMER) {\n return this.callCreateParticipantConnection();\n }\n // If this is an agent session, we can't assume that the participantToken is valid. \n // In this case, we use the getConnectionToken API to fetch a valid connectionToken and expiry. \n // If that fails, for now we try with createParticipantConnection.\n else if (this.sessionType === SESSION_TYPES.AGENT){\n return this.getConnectionToken()\n .then((response) => {\n return this._handleGetConnectionTokenResponse(response.chatTokenTransport);\n })\n .catch(() => {\n return this.callCreateParticipantConnection({\n Type: true,\n ConnectParticipant: true\n }).catch((err) => {\n throw new Error({\n type: CONN_ACK_FAILED,\n errorMessage: err\n });\n });\n });\n }\n else {\n return Promise.reject({\n reason: \"Failed to fetch connectionDetails.\",\n _debug: new IllegalArgumentException(\"Failed to fetch connectionDetails.\")\n });\n }\n }\n}\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 10);\n","import { EventBus } from \"../eventbus\";\nimport { LogManager } from \"../../log\";\nimport { \n ConnectionHelperEvents,\n ConnectionHelperStatus\n} from \"./baseConnectionHelper\";\nimport BaseConnectionHelper from \"./baseConnectionHelper\";\nimport WebSocketManager from \"../../lib/amazon-connect-websocket-manager\";\nimport { CHAT_EVENTS, CSM_CATEGORY, TRANSPORT_LIFETIME_IN_SECONDS, WEBSOCKET_EVENTS } from \"../../constants\";\nimport { csmService } from \"../../service/csmService\";\n\nclass LpcConnectionHelper extends BaseConnectionHelper {\n\n constructor(contactId, initialContactId, connectionDetailsProvider, websocketManager, logMetaData, connectionDetails) {\n super(connectionDetailsProvider, logMetaData);\n\n // WebsocketManager instance is only provided iff agent connections\n this.customerConnection = !websocketManager;\n\n if (this.customerConnection) {\n // ensure customer base instance exists for this contact ID\n if (!LpcConnectionHelper.customerBaseInstances[contactId]) {\n LpcConnectionHelper.customerBaseInstances[contactId] =\n new LpcConnectionHelperBase(connectionDetailsProvider, undefined, logMetaData, connectionDetails);\n }\n this.baseInstance = LpcConnectionHelper.customerBaseInstances[contactId];\n } else {\n // cleanup agent base instance if it exists for old websocket manager\n if (LpcConnectionHelper.agentBaseInstance) {\n if (LpcConnectionHelper.agentBaseInstance.getWebsocketManager() !== websocketManager) {\n LpcConnectionHelper.agentBaseInstance.end();\n LpcConnectionHelper.agentBaseInstance = null;\n }\n }\n // ensure agent base instance exists\n if (!LpcConnectionHelper.agentBaseInstance) {\n LpcConnectionHelper.agentBaseInstance =\n new LpcConnectionHelperBase(undefined, websocketManager, logMetaData);\n }\n this.baseInstance = LpcConnectionHelper.agentBaseInstance;\n }\n\n this.contactId = contactId;\n this.initialContactId = initialContactId;\n this.status = null;\n this.eventBus = new EventBus();\n this.subscriptions = [\n this.baseInstance.onEnded(this.handleEnded.bind(this)),\n this.baseInstance.onConnectionGain(this.handleConnectionGain.bind(this)),\n this.baseInstance.onConnectionLost(this.handleConnectionLost.bind(this)),\n this.baseInstance.onMessage(this.handleMessage.bind(this))\n ];\n }\n\n start() {\n super.start();\n return this.baseInstance.start();\n }\n\n end() {\n super.end();\n this.eventBus.unsubscribeAll();\n this.subscriptions.forEach(unsubscribe => unsubscribe());\n this.status = ConnectionHelperStatus.Ended;\n this.tryCleanup();\n }\n\n tryCleanup() {\n if (this.customerConnection && !this.baseInstance.hasMessageSubscribers()) {\n this.baseInstance.end();\n delete LpcConnectionHelper.customerBaseInstances[this.contactId];\n }\n }\n\n getStatus() {\n return this.status || this.baseInstance.getStatus();\n }\n\n onEnded(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.Ended, handler);\n }\n\n handleEnded() {\n this.eventBus.trigger(ConnectionHelperEvents.Ended, {});\n }\n\n onConnectionGain(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.ConnectionGained, handler);\n }\n\n handleConnectionGain() {\n this.eventBus.trigger(ConnectionHelperEvents.ConnectionGained, {});\n }\n\n onConnectionLost(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.ConnectionLost, handler);\n }\n\n handleConnectionLost() {\n this.eventBus.trigger(ConnectionHelperEvents.ConnectionLost, {});\n }\n\n onMessage(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.IncomingMessage, handler);\n }\n\n handleMessage(message) {\n if (message.InitialContactId === this.initialContactId || message.ContactId === this.contactId || message.Type === CHAT_EVENTS.MESSAGE_METADATA) {\n this.eventBus.trigger(ConnectionHelperEvents.IncomingMessage, message);\n }\n }\n}\nLpcConnectionHelper.customerBaseInstances = {};\nLpcConnectionHelper.agentBaseInstance = null;\n\n\nclass LpcConnectionHelperBase {\n constructor(connectionDetailsProvider, websocketManager, logMetaData, connectionDetails) {\n this.status = ConnectionHelperStatus.NeverStarted;\n this.eventBus = new EventBus();\n this.logger = LogManager.getLogger({\n prefix: \"ChatJS-LPCConnectionHelperBase\",\n logMetaData\n });\n this.initialConnectionDetails = connectionDetails;\n this.initWebsocketManager(websocketManager, connectionDetailsProvider, logMetaData);\n }\n\n initWebsocketManager(websocketManager, connectionDetailsProvider, logMetaData) {\n this.websocketManager = websocketManager || WebSocketManager.create(logMetaData);\n this.websocketManager.subscribeTopics([\"aws/chat\"]);\n this.subscriptions = [\n this.websocketManager.onMessage(\"aws/chat\", this.handleMessage.bind(this)),\n this.websocketManager.onConnectionGain(this.handleConnectionGain.bind(this)),\n this.websocketManager.onConnectionLost(this.handleConnectionLost.bind(this)),\n this.websocketManager.onInitFailure(this.handleEnded.bind(this))\n ];\n this.logger.info(\"Initializing websocket manager.\");\n if (!websocketManager) {\n const startTime = new Date().getTime();\n this.websocketManager.init(() =>\n this._getConnectionDetails(connectionDetailsProvider, this.initialConnectionDetails, startTime).then((response) => {\n this.initialConnectionDetails = null;\n return response;\n }));\n }\n }\n\n _getConnectionDetails(connectionDetailsProvider, connectionDetails, startTime) {\n if (connectionDetails !== null && typeof connectionDetails === \"object\" && connectionDetails.expiry && connectionDetails.connectionTokenExpiry) {\n const logContent = {expiry: connectionDetails.expiry, transportLifeTimeInSeconds: TRANSPORT_LIFETIME_IN_SECONDS};\n this.logger.debug(\"Websocket manager initialized. Connection details:\", logContent);\n return Promise.resolve({\n webSocketTransport: {\n url: connectionDetails.url,\n expiry: connectionDetails.expiry,\n transportLifeTimeInSeconds: TRANSPORT_LIFETIME_IN_SECONDS\n }\n });\n } else {\n return connectionDetailsProvider.fetchConnectionDetails()\n .then(connectionDetails => {\n const details = {\n webSocketTransport: {\n url: connectionDetails.url,\n expiry: connectionDetails.expiry,\n transportLifeTimeInSeconds: TRANSPORT_LIFETIME_IN_SECONDS\n }\n };\n const logContent = {expiry: connectionDetails.expiry, transportLifeTimeInSeconds: TRANSPORT_LIFETIME_IN_SECONDS};\n this.logger.debug(\"Websocket manager initialized. Connection details:\", logContent);\n this._addWebsocketInitCSMMetric(startTime);\n return details;\n }\n ).catch(error => {\n this.logger.error(\"Initializing Websocket Manager failed:\", error);\n this._addWebsocketInitCSMMetric(startTime, true);\n throw error;\n });\n }\n }\n\n _addWebsocketInitCSMMetric(startTime, isError = false) {\n csmService.addLatencyMetric(WEBSOCKET_EVENTS.InitWebsocket, startTime, CSM_CATEGORY.API);\n csmService.addCountAndErrorMetric(WEBSOCKET_EVENTS.InitWebsocket, CSM_CATEGORY.API, isError);\n }\n\n end() {\n // WebSocketProvider instance from streams does not have closeWebSocket\n if (this.websocketManager.closeWebSocket) {\n this.websocketManager.closeWebSocket();\n }\n this.eventBus.unsubscribeAll();\n this.subscriptions.forEach(unsubscribe => unsubscribe());\n this.logger.info(\"Websocket closed. All event subscriptions are cleared.\");\n }\n\n start() {\n if (this.status === ConnectionHelperStatus.NeverStarted) {\n this.status = ConnectionHelperStatus.Starting;\n }\n return Promise.resolve({\n websocketStatus: this.status\n });\n }\n\n onEnded(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.Ended, handler);\n }\n\n handleEnded() {\n this.status = ConnectionHelperStatus.Ended;\n this.eventBus.trigger(ConnectionHelperEvents.Ended, {});\n csmService.addCountMetric(WEBSOCKET_EVENTS.Ended, CSM_CATEGORY.API);\n this.logger.info(\"Websocket connection ended.\");\n }\n\n onConnectionGain(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.ConnectionGained, handler);\n }\n\n handleConnectionGain() {\n this.status = ConnectionHelperStatus.Connected;\n this.eventBus.trigger(ConnectionHelperEvents.ConnectionGained, {});\n csmService.addCountMetric(WEBSOCKET_EVENTS.ConnectionGained, CSM_CATEGORY.API);\n this.logger.info(\"Websocket connection gained.\");\n }\n\n onConnectionLost(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.ConnectionLost, handler);\n }\n\n handleConnectionLost() {\n this.status = ConnectionHelperStatus.ConnectionLost;\n this.eventBus.trigger(ConnectionHelperEvents.ConnectionLost, {});\n csmService.addCountMetric(WEBSOCKET_EVENTS.ConnectionLost, CSM_CATEGORY.API);\n this.logger.info(\"Websocket connection lost.\");\n }\n\n onMessage(handler) {\n return this.eventBus.subscribe(ConnectionHelperEvents.IncomingMessage, handler);\n }\n\n handleMessage(message) {\n let parsedMessage;\n try {\n parsedMessage = JSON.parse(message.content);\n this.eventBus.trigger(ConnectionHelperEvents.IncomingMessage, parsedMessage);\n csmService.addCountMetric(WEBSOCKET_EVENTS.IncomingMessage, CSM_CATEGORY.API);\n this.logger.info(\"this.eventBus trigger Websocket incoming message\", ConnectionHelperEvents.IncomingMessage, parsedMessage);\n } catch (e) {\n this._sendInternalLogToServer(this.logger.error(\"Wrong message format\"));\n }\n }\n\n getStatus() {\n return this.status;\n }\n\n getWebsocketManager() {\n return this.websocketManager;\n }\n\n hasMessageSubscribers() {\n return this.eventBus.getSubscriptions(ConnectionHelperEvents.IncomingMessage).length > 0;\n }\n\n _sendInternalLogToServer(logEntry) {\n if (logEntry && typeof logEntry.sendInternalLogToServer === \"function\")\n logEntry.sendInternalLogToServer();\n\n return logEntry;\n }\n}\n\nexport default LpcConnectionHelper;\n","import { CHAT_EVENTS } from '../constants';\nimport { GlobalConfig } from '../globalConfig';\nimport { LogManager } from '../log';\n\nexport default class MessageReceiptsUtil {\n constructor(logMetaData) {\n this.logger = LogManager.getLogger({ prefix: 'ChatJS-MessageReceiptUtil', logMetaData });\n this.timeout = null;\n this.timeoutId = null;\n this.readSet = new Set();\n this.deliveredSet = new Set();\n this.readPromiseMap = new Map();\n this.deliveredPromiseMap = new Map();\n this.lastReadArgs = null;\n this.throttleInitialEventsToPrioritizeRead = null;\n this.throttleSendEventApiCall = null;\n }\n\n /**\n * check if message is of type read or delivered event\n *\n * @param {string} eventType either INCOMING_READ_RECEIPT or INCOMING_DELIVERED_RECEIPT.\n * @param {Object} incomingData object contains messageDetails\n * @return {boolean} returns true if read or delivered event else false\n */\n isMessageReceipt(eventType, incomingData) {\n return [CHAT_EVENTS.INCOMING_READ_RECEIPT, CHAT_EVENTS.INCOMING_DELIVERED_RECEIPT]\n .indexOf(eventType) !== -1 || incomingData.Type === CHAT_EVENTS.MESSAGE_METADATA;\n }\n \n /** \n * check if message is for currentParticipantId \n * \n * @param {string} currentParticipantId of the contact\n * @param {Object} incomingData object contains messageDetails\n * @return {boolean} returns true if we need to display messageReceipt for the currentParticipantId\n * \n */\n getEventTypeFromMessageMetaData(messageMetadata) {\n return Array.isArray(messageMetadata.Receipts) &&\n messageMetadata.Receipts[0] &&\n messageMetadata.Receipts[0].ReadTimestamp ? CHAT_EVENTS.INCOMING_READ_RECEIPT :\n messageMetadata.Receipts[0].DeliveredTimestamp ? CHAT_EVENTS.INCOMING_DELIVERED_RECEIPT : null;\n }\n\n /** \n * check if message is for currentParticipantId \n * \n * @param {string} currentParticipantId of the contact\n * @param {Object} incomingData object contains messageDetails\n * @return {boolean} returns true if we need to display messageReceipt for the currentParticipantId\n * \n */\n shouldShowMessageReceiptForCurrentParticipantId(currentParticipantId, incomingData) {\n const recipientParticipantId = incomingData.MessageMetadata && \n Array.isArray(incomingData.MessageMetadata.Receipts) &&\n incomingData.MessageMetadata.Receipts[0] &&\n incomingData.MessageMetadata.Receipts[0].RecipientParticipantId;\n return currentParticipantId !== recipientParticipantId;\n }\n\n /**\n * Assumption: sendMessageReceipts are called in correct order of time the messages are Delivered or Read\n * Prioritize Read Event by Throttling Delivered events for 300ms but firing Read events immediately!\n *\n * @param {function} callback The callback fn to throttle and invoke.\n * @param {Array} args array of params [connectionToken, contentType, content, eventType, throttleTime]\n * @return {promise} returnPromise for Read and Delivered events\n */\n prioritizeAndSendMessageReceipt(ChatClientContext, callback, ...args) {\n try {\n var self = this;\n var deliverEventThrottleTime = 300;\n var eventType = args[3];\n var content = typeof args[2] === \"string\" ? JSON.parse(args[2]) : args[2];\n var messageId = typeof content === \"object\" ? content.messageId : \"\";\n \n //ignore repeat events - do not make sendEvent API call.\n if (self.readSet.has(messageId) || \n (eventType === CHAT_EVENTS.INCOMING_DELIVERED_RECEIPT && self.deliveredSet.has(messageId)) ||\n !messageId) {\n this.logger.info(`Event already fired ${messageId}: sending messageReceipt ${eventType}`);\n return Promise.resolve({\n message: 'Event already fired'\n });\n }\n \n var resolve, reject;\n var returnPromise = new Promise(function(res,rej) {\n resolve = res;\n reject = rej;\n });\n \n if (eventType === CHAT_EVENTS.INCOMING_DELIVERED_RECEIPT) {\n self.deliveredPromiseMap.set(messageId, [resolve, reject]);\n } else {\n self.readPromiseMap.set(messageId, [resolve, reject]);\n }\n \n self.throttleInitialEventsToPrioritizeRead = function() {\n // ignore Delivered event if Read event has been triggered for the current messageId\n if (eventType === CHAT_EVENTS.INCOMING_DELIVERED_RECEIPT) {\n self.deliveredSet.add(messageId);\n if (self.readSet.has(messageId)) {\n self.resolveDeliveredPromises(messageId, 'Event already fired');\n return resolve({\n message: 'Event already fired'\n });\n }\n }\n if (self.readSet.has(messageId)) {\n self.resolveReadPromises(messageId, 'Event already fired');\n return resolve({\n message: 'Event already fired'\n });\n }\n if (eventType === CHAT_EVENTS.INCOMING_READ_RECEIPT) {\n self.readSet.add(messageId);\n }\n\n if (content.disableThrottle) {\n this.logger.info(`throttleFn disabled for ${messageId}: sending messageReceipt ${eventType}`);\n return resolve(callback.call(ChatClientContext, ...args));\n }\n self.logger.debug('call next throttleFn sendMessageReceipts', args);\n self.sendMessageReceipts.call(self, ChatClientContext, callback, ...args);\n };\n \n if(!self.timeout) {\n self.timeout = setTimeout(function() {\n self.timeout = null;\n self.throttleInitialEventsToPrioritizeRead();\n }, deliverEventThrottleTime);\n }\n \n //prevent multiple Read events for same messageId - call readEvent without delay\n if (eventType === CHAT_EVENTS.INCOMING_READ_RECEIPT && !self.readSet.has(messageId)) {\n clearTimeout(self.timeout);\n self.timeout = null;\n self.throttleInitialEventsToPrioritizeRead();\n }\n \n return returnPromise;\n } catch (Err) {\n return Promise.reject({\n message: \"Failed to send messageReceipt\", \n args,\n ...Err\n });\n }\n }\n\n /**\n * Throttle for ${GlobalConfig.getMessageReceiptsThrottleTime()} and then fire Read and Delivered events\n *\n * @param {function} callback The callback fn to throttle and invoke.\n * @param {Array} args array of params [connectionToken, contentType, content, eventType, throttleTime]\n */\n sendMessageReceipts(ChatClientContext, callback, ...args) {\n var self = this;\n var throttleTime = args[4] || GlobalConfig.getMessageReceiptsThrottleTime();\n var eventType = args[3];\n var content = typeof args[2] === \"string\" ? JSON.parse(args[2]) : args[2];\n var messageId = content.messageId;\n this.lastReadArgs = eventType === CHAT_EVENTS.INCOMING_READ_RECEIPT ? args : this.lastReadArgs;\n\n self.throttleSendEventApiCall = function() {\n try {\n if(eventType === CHAT_EVENTS.INCOMING_READ_RECEIPT) {\n var sendEventPromise = callback.call(ChatClientContext, ...args);\n self.resolveReadPromises(messageId, sendEventPromise);\n self.logger.debug('send Read event:', callback, args);\n } else {\n //delivered event is the last event fired\n //fire delivered for latest messageId\n //fire read for latest messageId\n var PromiseArr = [callback.call(ChatClientContext, ...args)];\n if(this.lastReadArgs) {\n var contentVal = typeof this.lastReadArgs[2] === \"string\" ? JSON.parse(this.lastReadArgs[2]) : this.lastReadArgs[2];\n var readEventMessageId = contentVal.messageId;\n // if readPromise has been resolved for readEventMessageId; readPromiseMap should not contain readEventMessageId\n // if readPromiseMap contains readEventMessageId; read event has not been called!\n if (self.readPromiseMap.has(readEventMessageId)) {\n PromiseArr.push(callback.call(ChatClientContext, ...this.lastReadArgs));\n }\n }\n self.logger.debug('send Delivered event:', args, 'read event:', this.lastReadArgs);\n Promise.all(PromiseArr).then(res => {\n self.resolveReadPromises(contentVal.messageId, res[0]);\n self.resolveDeliveredPromises(messageId, res[0]);\n });\n }\n } catch(err) {\n self.logger.error('send message receipt failed', err);\n self.resolveReadPromises(messageId, err, true);\n self.resolveDeliveredPromises(messageId, err, true);\n }\n };\n\n if (!self.timeoutId) {\n self.timeoutId = setTimeout(function() {\n self.timeoutId = null;\n self.throttleSendEventApiCall();\n }, throttleTime);\n }\n }\n\n /**\n * resolve All Delivered promises till messageId\n *\n * @param {string} messageId of the latest message receipt event\n * @param {Object} result of the latest message receipt event\n */\n resolveDeliveredPromises(messageId, result, isError) {\n return this.resolvePromises(this.deliveredPromiseMap, messageId, result, isError);\n }\n\n /**\n * resolve All Read promises till messageId\n *\n * @param {string} messageId of the latest message receipt event\n * @param {Object} result of the latest message receipt event\n */\n resolveReadPromises(messageId, result, isError) {\n return this.resolvePromises(this.readPromiseMap, messageId, result, isError);\n }\n\n /**\n * resolve All promises till messageId\n *\n * @param {Map} promiseMap of either send or delivered promises\n * @param {string} messageId of the latest message receipt event\n * @param {Object} result of the latest message receipt event\n */\n resolvePromises(promiseMap, messageId, result, isError) {\n var arr = Array.from(promiseMap.keys());\n var indexToResolve = arr.indexOf(messageId);\n \n if (indexToResolve !== -1) {\n for(let i=0;i<=indexToResolve;i++) {\n var callbackFn = promiseMap.get(arr[i])?.[ isError ? 1 : 0 ];\n if (typeof callbackFn === 'function') {\n promiseMap.delete(arr[i]);\n callbackFn(result);\n }\n }\n } else {\n this.logger.debug(`Promise for messageId: ${messageId} already resolved`);\n }\n }\n\n /**\n * getTranscript API call should hydrate readSet and deliveredSet\n *\n * @param {function} callback to call with getTranscript response object.\n * @param {boolean} shouldSendMessageReceipts decides whether to hydrate mappers or not\n * @return {function} function which takes in input response from API call and calls callback with response.\n */\n rehydrateReceiptMappers(callback, shouldSendMessageReceipts) {\n var self = this;\n return response => {\n self.logger.debug('rehydrate chat', response?.data);\n if (shouldSendMessageReceipts) {\n const { Transcript = [] } = response?.data || {};\n Transcript.forEach(transcript => {\n if (transcript?.Type === CHAT_EVENTS.MESSAGE_METADATA) {\n const Receipt = transcript?.MessageMetadata?.Receipts?.[0];\n const messageId = transcript?.MessageMetadata?.MessageId;\n if (Receipt?.ReadTimestamp) {\n this.readSet.add(messageId);\n }\n if (Receipt?.DeliveredTimestamp) {\n this.deliveredSet.add(messageId);\n }\n }\n });\n }\n // send MessageReceipt for latest message is done by ChatInterface\n // UI will send Read receipt for the latest message displayed in the UI.\n return callback(response);\n };\n }\n\n}\n","import { ConnectionHelperStatus } from \"./connectionHelpers/baseConnectionHelper\";\nimport {\n CHAT_EVENTS,\n TRANSCRIPT_DEFAULT_PARAMS,\n SESSION_TYPES,\n CONTENT_TYPE,\n CHAT_EVENT_TYPE_MAPPING,\n CSM_CATEGORY,\n ACPS_METHODS,\n FEATURES,\n CREATE_PARTICIPANT_CONACK_FAILURE,\n CREATE_PARTICIPANT_CONACK_API_CALL_COUNT\n} from \"../constants\";\nimport { LogManager } from \"../log\";\nimport { EventBus } from \"./eventbus\";\nimport { ChatServiceArgsValidator } from \"./chatArgsValidator\";\nimport ConnectionDetailsProvider from \"./connectionHelpers/connectionDetailsProvider\";\nimport LpcConnectionHelper from \"./connectionHelpers/LpcConnectionHelper\";\nimport MessageReceiptsUtil from './MessageReceiptsUtil';\nimport { csmService } from \"../service/csmService\";\nimport { GlobalConfig } from \"../globalConfig\";\n\nvar NetworkLinkStatus = {\n NeverEstablished: \"NeverEstablished\",\n Establishing: \"Establishing\",\n Established: \"Established\",\n Broken: \"Broken\"\n};\n\nclass ChatController {\n\n constructor(args) {\n this.argsValidator = new ChatServiceArgsValidator();\n this.pubsub = new EventBus();\n this.sessionType = args.sessionType;\n this.getConnectionToken = args.chatDetails.getConnectionToken;\n this.connectionDetails = args.chatDetails.connectionDetails;\n this.initialContactId = args.chatDetails.initialContactId;\n this.contactId = args.chatDetails.contactId;\n this.participantId = args.chatDetails.participantId;\n this.chatClient = args.chatClient;\n this.participantToken = args.chatDetails.participantToken;\n this.websocketManager = args.websocketManager;\n this._participantDisconnected = false;\n this.sessionMetadata = {};\n this.logger = LogManager.getLogger({\n prefix: \"ChatJS-ChatController\",\n logMetaData: args.logMetaData\n });\n this.logMetaData = args.logMetaData;\n this.messageReceiptUtil = new MessageReceiptsUtil(args.logMetaData);\n this.logger.info(\"Browser info:\", window.navigator.userAgent);\n }\n\n subscribe(eventName, callback) {\n this.pubsub.subscribe(eventName, callback);\n this._sendInternalLogToServer(this.logger.info(\"Subscribed successfully to event:\", eventName));\n }\n\n handleRequestSuccess(metadata, method, startTime, contentType) {\n return response => {\n const contentTypeDimension = contentType?\n [\n {\n name: \"ContentType\",\n value: contentType\n }\n ]\n : [];\n csmService.addLatencyMetricWithStartTime(method, startTime, CSM_CATEGORY.API, contentTypeDimension);\n csmService.addCountAndErrorMetric(method, CSM_CATEGORY.API, false, contentTypeDimension);\n response.metadata = metadata;\n return response;\n };\n }\n\n handleRequestFailure(metadata, method, startTime, contentType) {\n return error => {\n const contentTypeDimension = contentType?\n [\n {\n name: \"ContentType\",\n value: contentType\n }\n ]\n : [];\n csmService.addLatencyMetricWithStartTime(method, startTime, CSM_CATEGORY.API, contentTypeDimension);\n csmService.addCountAndErrorMetric(method, CSM_CATEGORY.API, true, contentTypeDimension);\n error.metadata = metadata;\n return Promise.reject(error);\n };\n }\n\n sendMessage(args) {\n const startTime = new Date().getTime();\n const metadata = args.metadata || null;\n this.argsValidator.validateSendMessage(args);\n const connectionToken = this.connectionHelper.getConnectionToken();\n return this.chatClient\n .sendMessage(connectionToken, args.message, args.contentType)\n .then(this.handleRequestSuccess(metadata, ACPS_METHODS.SEND_MESSAGE, startTime, args.contentType))\n .catch(this.handleRequestFailure(metadata, ACPS_METHODS.SEND_MESSAGE, startTime, args.contentType));\n }\n\n sendAttachment(args){\n const startTime = new Date().getTime();\n const metadata = args.metadata || null;\n //TODO: validation\n const connectionToken = this.connectionHelper.getConnectionToken();\n return this.chatClient\n .sendAttachment(connectionToken, args.attachment, args.metadata)\n .then(this.handleRequestSuccess(metadata, ACPS_METHODS.SEND_ATTACHMENT, startTime, args.attachment.type))\n .catch(this.handleRequestFailure(metadata, ACPS_METHODS.SEND_ATTACHMENT, startTime, args.attachment.type));\n }\n\n downloadAttachment(args){\n const startTime = new Date().getTime();\n const metadata = args.metadata || null;\n const connectionToken = this.connectionHelper.getConnectionToken();\n return this.chatClient\n .downloadAttachment(connectionToken, args.attachmentId)\n .then(this.handleRequestSuccess(metadata, ACPS_METHODS.DOWNLOAD_ATTACHMENT, startTime))\n .catch(this.handleRequestFailure(metadata, ACPS_METHODS.DOWNLOAD_ATTACHMENT, startTime));\n }\n\n sendEvent(args) {\n const startTime = new Date().getTime();\n const metadata = args.metadata || null;\n this.argsValidator.validateSendEvent(args);\n const connectionToken = this.connectionHelper.getConnectionToken();\n const content = args.content || null;\n var eventType = getEventTypeFromContentType(args.contentType);\n var parsedContent = typeof content === \"string\" ? JSON.parse(content) : content;\n if (this.messageReceiptUtil.isMessageReceipt(eventType, args)) {\n // Ignore all MessageReceipt events\n if(!GlobalConfig.isFeatureEnabled(FEATURES.MESSAGE_RECEIPTS_ENABLED) || !parsedContent.messageId) {\n this.logger.warn(`Ignoring messageReceipt: ${GlobalConfig.isFeatureEnabled(FEATURES.MESSAGE_RECEIPTS_ENABLED) && \"missing messageId\"}`, args);\n return Promise.reject({\n errorMessage: `Ignoring messageReceipt: ${GlobalConfig.isFeatureEnabled(FEATURES.MESSAGE_RECEIPTS_ENABLED) && \"missing messageId\"}`,\n data: args\n });\n }\n // Prioritize and send selective message receipts\n return this.messageReceiptUtil.prioritizeAndSendMessageReceipt(this.chatClient, this.chatClient.sendEvent,\n connectionToken,\n args.contentType,\n content, \n eventType, \n GlobalConfig.getMessageReceiptsThrottleTime())\n .then(this.handleRequestSuccess(metadata, ACPS_METHODS.SEND_EVENT, startTime, args.contentType))\n .catch(this.handleRequestFailure(metadata, ACPS_METHODS.SEND_EVENT, startTime, args.contentType));\n }\n return this.chatClient\n .sendEvent(\n connectionToken,\n args.contentType,\n content\n )\n .then(this.handleRequestSuccess(metadata, ACPS_METHODS.SEND_EVENT, startTime, args.contentType))\n .catch(this.handleRequestFailure(metadata, ACPS_METHODS.SEND_EVENT, startTime, args.contentType));\n }\n\n getTranscript(inputArgs) {\n const startTime = new Date().getTime();\n const metadata = inputArgs.metadata || null;\n const args = {\n startPosition: inputArgs.startPosition || {},\n scanDirection: inputArgs.scanDirection || TRANSCRIPT_DEFAULT_PARAMS.SCAN_DIRECTION,\n sortOrder: inputArgs.sortOrder || TRANSCRIPT_DEFAULT_PARAMS.SORT_ORDER,\n maxResults: inputArgs.maxResults || TRANSCRIPT_DEFAULT_PARAMS.MAX_RESULTS,\n };\n if (inputArgs.nextToken) {\n args.nextToken = inputArgs.nextToken;\n }\n if (inputArgs.contactId) {\n args.contactId = inputArgs.contactId;\n }\n const connectionToken = this.connectionHelper.getConnectionToken();\n return this.chatClient\n .getTranscript(connectionToken, args)\n .then(\n this.messageReceiptUtil.rehydrateReceiptMappers(\n this.handleRequestSuccess(metadata, ACPS_METHODS.GET_TRANSCRIPT, startTime), \n GlobalConfig.isFeatureEnabled(FEATURES.MESSAGE_RECEIPTS_ENABLED)\n )\n )\n .catch(this.handleRequestFailure(metadata, ACPS_METHODS.GET_TRANSCRIPT, startTime));\n }\n\n connect(args={}) {\n this.sessionMetadata = args.metadata || null;\n this.argsValidator.validateConnectChat(args);\n const connectionDetailsProvider = this._getConnectionDetailsProvider();\n return connectionDetailsProvider.fetchConnectionDetails()\n .then(\n (connectionDetails) => \n this._initConnectionHelper(connectionDetailsProvider, connectionDetails)\n )\n .then(response => this._onConnectSuccess(response, connectionDetailsProvider))\n .catch(err => {\n return this._onConnectFailure(err);\n });\n }\n\n _initConnectionHelper(connectionDetailsProvider, connectionDetails) {\n this.connectionHelper = new LpcConnectionHelper(\n this.contactId,\n this.initialContactId,\n connectionDetailsProvider,\n this.websocketManager,\n this.logMetaData,\n connectionDetails\n );\n this.connectionHelper.onEnded(this._handleEndedConnection.bind(this));\n this.connectionHelper.onConnectionLost(this._handleLostConnection.bind(this));\n this.connectionHelper.onConnectionGain(this._handleGainedConnection.bind(this));\n this.connectionHelper.onMessage(this._handleIncomingMessage.bind(this));\n return this.connectionHelper.start();\n }\n\n _getConnectionDetailsProvider() {\n return new ConnectionDetailsProvider(\n this.participantToken, \n this.chatClient,\n this.sessionType,\n this.getConnectionToken\n );\n }\n\n _handleEndedConnection(eventData) {\n this._forwardChatEvent(CHAT_EVENTS.CONNECTION_BROKEN, {\n data: eventData,\n chatDetails: this.getChatDetails()\n });\n this.breakConnection();\n }\n\n _handleLostConnection(eventData) {\n this._forwardChatEvent(CHAT_EVENTS.CONNECTION_LOST, {\n data: eventData,\n chatDetails: this.getChatDetails()\n });\n }\n\n _handleGainedConnection(eventData) {\n this._forwardChatEvent(CHAT_EVENTS.CONNECTION_ESTABLISHED, {\n data: eventData,\n chatDetails: this.getChatDetails()\n });\n }\n\n _handleIncomingMessage(incomingData) {\n try {\n let eventType = getEventTypeFromContentType(incomingData?.ContentType);\n if (this.messageReceiptUtil.isMessageReceipt(eventType, incomingData)) {\n eventType = this.messageReceiptUtil.getEventTypeFromMessageMetaData(incomingData?.MessageMetadata);\n if (!eventType || \n !this.messageReceiptUtil.shouldShowMessageReceiptForCurrentParticipantId(this.participantId, incomingData)) {\n //ignore bec we do not want to show messageReceipt to sender of receipt.\n //messageReceipt needs to be shown to the sender of message.\n return;\n }\n }\n\n this._forwardChatEvent(eventType, {\n data: incomingData,\n chatDetails: this.getChatDetails()\n });\n if (incomingData.ContentType === CONTENT_TYPE.chatEnded) {\n this._forwardChatEvent(CHAT_EVENTS.CHAT_ENDED, {\n data: null,\n chatDetails: this.getChatDetails()\n });\n this.breakConnection();\n }\n } catch (e) {\n this._sendInternalLogToServer(this.logger.error(\n \"Error occured while handling message from Connection. eventData:\",\n incomingData,\n \" Causing exception:\",\n e\n ));\n }\n }\n\n _forwardChatEvent(eventName, eventData) {\n this.pubsub.triggerAsync(eventName, eventData);\n }\n\n _onConnectSuccess(response, connectionDetailsProvider) {\n this._sendInternalLogToServer(this.logger.info(\"Connect successful!\"));\n console.warn(\"onConnectionSuccess response\", response);\n const responseObject = {\n _debug: response,\n connectSuccess: true,\n connectCalled: true,\n metadata: this.sessionMetadata\n };\n const eventData = Object.assign({\n chatDetails: this.getChatDetails()\n }, responseObject);\n this.pubsub.triggerAsync(CHAT_EVENTS.CONNECTION_ESTABLISHED, eventData);\n \n // TODO: Fix the floating promise issue: https://app.asana.com/0/1203611591691532/1203880194668408/f\n const connectionAcknowledged = connectionDetailsProvider.getConnectionDetails()?.connectionAcknowledged;\n if (this._shouldAcknowledgeContact() && !connectionAcknowledged) {\n csmService.addAgentCountMetric(CREATE_PARTICIPANT_CONACK_API_CALL_COUNT, 1);\n connectionDetailsProvider.callCreateParticipantConnection({\n Type: false,\n ConnectParticipant: true\n }).catch(err => {\n this.logger.warn(\"ConnectParticipant failed to acknowledge Agent connection in CreateParticipantConnection: \", err);\n csmService.addAgentCountMetric(CREATE_PARTICIPANT_CONACK_FAILURE, 1);\n });\n }\n console.warn(\"onConnectionSuccess responseObject\", responseObject);\n return responseObject;\n }\n\n _onConnectFailure(error) {\n const errorObject = {\n _debug: error,\n connectSuccess: false,\n connectCalled: true,\n metadata: this.sessionMetadata\n };\n this._sendInternalLogToServer(this.logger.error(\"Connect Failed. Error: \", errorObject));\n\n return Promise.reject(errorObject);\n }\n\n _shouldAcknowledgeContact() {\n return this.sessionType === SESSION_TYPES.AGENT;\n }\n\n breakConnection() {\n return this.connectionHelper\n ? this.connectionHelper.end()\n : Promise.resolve();\n }\n\n // Do any clean up that needs to be done upon the participant being disconnected from the chat -\n // disconnected here means that the participant is no longer part of ther chat.\n cleanUpOnParticipantDisconnect() {\n this.pubsub.unsubscribeAll();\n }\n\n disconnectParticipant() {\n const startTime = new Date().getTime();\n const connectionToken = this.connectionHelper.getConnectionToken();\n return this.chatClient\n .disconnectParticipant(connectionToken)\n .then(response => {\n this._sendInternalLogToServer(this.logger.info(\"Disconnect participant successfully\"));\n\n this._participantDisconnected = true;\n this.cleanUpOnParticipantDisconnect();\n this.breakConnection();\n csmService.addLatencyMetricWithStartTime(ACPS_METHODS.DISCONNECT_PARTICIPANT, startTime, CSM_CATEGORY.API);\n csmService.addCountAndErrorMetric(ACPS_METHODS.DISCONNECT_PARTICIPANT, CSM_CATEGORY.API, false);\n return response;\n }, error => {\n this._sendInternalLogToServer(this.logger.error(\"Disconnect participant failed. Error:\", error));\n csmService.addLatencyMetricWithStartTime(ACPS_METHODS.DISCONNECT_PARTICIPANT, startTime, CSM_CATEGORY.API);\n csmService.addCountAndErrorMetric(ACPS_METHODS.DISCONNECT_PARTICIPANT, CSM_CATEGORY.API, true);\n return Promise.reject(error);\n });\n }\n\n getChatDetails() {\n return {\n initialContactId: this.initialContactId,\n contactId: this.contactId,\n participantId: this.participantId,\n participantToken: this.participantToken,\n connectionDetails: this.connectionDetails\n };\n }\n\n _convertConnectionHelperStatus(connectionHelperStatus) {\n switch (connectionHelperStatus) {\n case ConnectionHelperStatus.NeverStarted:\n return NetworkLinkStatus.NeverEstablished;\n case ConnectionHelperStatus.Starting:\n return NetworkLinkStatus.Establishing;\n case ConnectionHelperStatus.Ended:\n return NetworkLinkStatus.Broken;\n case ConnectionHelperStatus.ConnectionLost:\n return NetworkLinkStatus.Broken;\n case ConnectionHelperStatus.Connected:\n return NetworkLinkStatus.Established;\n }\n this._sendInternalLogToServer(this.logger.error(\n \"Reached invalid state. Unknown connectionHelperStatus: \",\n connectionHelperStatus\n ));\n }\n\n getConnectionStatus() {\n return this._convertConnectionHelperStatus(\n this.connectionHelper.getStatus()\n );\n }\n\n _sendInternalLogToServer(logEntry) {\n if (logEntry && typeof logEntry.sendInternalLogToServer === \"function\")\n logEntry.sendInternalLogToServer();\n\n return logEntry;\n }\n}\n\nexport const getEventTypeFromContentType = (contentType) => {\n return CHAT_EVENT_TYPE_MAPPING[contentType] || CHAT_EVENT_TYPE_MAPPING.default;\n};\n\nexport { ChatController, NetworkLinkStatus };\n","import {\n UnImplementedMethodException,\n IllegalArgumentException\n} from \"./exceptions\";\nimport { ChatClientFactory } from \"../client/client\";\nimport { ChatServiceArgsValidator } from \"./chatArgsValidator\";\nimport { SESSION_TYPES, CHAT_EVENTS, FEATURES } from \"../constants\";\nimport { GlobalConfig } from \"../globalConfig\";\nimport { ChatController } from \"./chatController\";\nimport { LogManager, LogLevel, Logger } from \"../log\";\nimport { csmService } from \"../service/csmService\";\nimport WebSocketManager from \"../lib/amazon-connect-websocket-manager\";\n\nclass ChatSessionFactory {\n /*eslint-disable no-unused-vars*/\n\n createAgentChatController(chatDetails, participantType) {\n throw new UnImplementedMethodException(\n \"createAgentChatController in ChatControllerFactory.\"\n );\n }\n\n createCustomerChatController(chatDetails, participantType) {\n throw new UnImplementedMethodException(\n \"createCustomerChatController in ChatControllerFactory.\"\n );\n }\n /*eslint-enable no-unused-vars*/\n}\n\nclass PersistentConnectionAndChatServiceSessionFactory extends ChatSessionFactory {\n constructor() {\n super();\n this.argsValidator = new ChatServiceArgsValidator();\n }\n\n createChatSession(sessionType, chatDetails, options, websocketManager) {\n const chatController = this._createChatController(sessionType, chatDetails, options, websocketManager);\n if (sessionType === SESSION_TYPES.AGENT) {\n return new AgentChatSession(chatController);\n } else if (sessionType === SESSION_TYPES.CUSTOMER) {\n return new CustomerChatSession(chatController);\n } else {\n throw new IllegalArgumentException(\n \"Unkown value for session type, Allowed values are: \" +\n Object.values(SESSION_TYPES),\n sessionType\n );\n }\n }\n\n _createChatController(sessionType, chatDetailsInput, options, websocketManager) {\n var chatDetails = this.argsValidator.normalizeChatDetails(chatDetailsInput);\n var logMetaData = {\n contactId: chatDetails.contactId,\n participantId: chatDetails.participantId,\n sessionType\n };\n\n var chatClient = ChatClientFactory.getCachedClient(options, logMetaData);\n \n var args = {\n sessionType: sessionType,\n chatDetails,\n chatClient,\n websocketManager: websocketManager,\n logMetaData,\n };\n\n return new ChatController(args);\n }\n}\n\nexport class ChatSession {\n constructor(controller) {\n this.controller = controller;\n }\n\n onMessage(callback) {\n this.controller.subscribe(CHAT_EVENTS.INCOMING_MESSAGE, callback);\n }\n\n onTyping(callback) {\n this.controller.subscribe(CHAT_EVENTS.INCOMING_TYPING, callback);\n }\n\n onReadReceipt(callback) {\n this.controller.subscribe(CHAT_EVENTS.INCOMING_READ_RECEIPT, callback);\n }\n\n onDeliveredReceipt(callback) {\n this.controller.subscribe(CHAT_EVENTS.INCOMING_DELIVERED_RECEIPT, callback);\n }\n\n onConnectionBroken(callback) {\n this.controller.subscribe(CHAT_EVENTS.CONNECTION_BROKEN, callback);\n }\n\n onConnectionEstablished(callback) {\n this.controller.subscribe(CHAT_EVENTS.CONNECTION_ESTABLISHED, callback);\n }\n\n onEnded(callback) {\n this.controller.subscribe(CHAT_EVENTS.CHAT_ENDED, callback);\n }\n\n onParticipantIdle(callback) {\n this.controller.subscribe(CHAT_EVENTS.PARTICIPANT_IDLE, callback);\n }\n\n onParticipantReturned(callback) {\n this.controller.subscribe(CHAT_EVENTS.PARTICIPANT_RETURNED, callback);\n }\n\n onAutoDisconnection(callback) {\n this.controller.subscribe(CHAT_EVENTS.AUTODISCONNECTION, callback);\n }\n\n onConnectionLost(callback) {\n this.controller.subscribe(CHAT_EVENTS.CONNECTION_LOST, callback);\n }\n\n sendMessage(args) {\n return this.controller.sendMessage(args);\n }\n\n sendAttachment(args){\n return this.controller.sendAttachment(args);\n }\n\n downloadAttachment(args){\n return this.controller.downloadAttachment(args);\n }\n\n connect(args) {\n return this.controller.connect(args);\n }\n\n sendEvent(args) {\n return this.controller.sendEvent(args);\n }\n\n getTranscript(args) {\n return this.controller.getTranscript(args);\n }\n\n getChatDetails() {\n return this.controller.getChatDetails();\n }\n}\n\nclass AgentChatSession extends ChatSession {\n constructor(controller) {\n super(controller);\n }\n\n cleanUpOnParticipantDisconnect() {\n return this.controller.cleanUpOnParticipantDisconnect();\n }\n}\n\nclass CustomerChatSession extends ChatSession {\n constructor(controller) {\n super(controller);\n }\n\n disconnectParticipant() {\n return this.controller.disconnectParticipant();\n }\n}\n\nexport const CHAT_SESSION_FACTORY = new PersistentConnectionAndChatServiceSessionFactory();\n\nvar setGlobalConfig = config => {\n var loggerConfig = config.loggerConfig;\n var csmConfig = config.csmConfig;\n GlobalConfig.update(config);\n /**\n * if config.loggerConfig.logger is present - use it in websocketManager\n * if config.loggerConfig.customizedLogger is present - use it in websocketManager\n * if config.loggerConfig.useDefaultLogger is true - use default window.console + default level INFO\n * config.loggerConfig.advancedLogWriter to customize where you want to log advancedLog messages. Default is warn.\n * else no logs from websocketManager - DEFAULT\n *\n * if config.webSocketManagerConfig.isNetworkOnline is present - use it in websocketManager\n * else websocketManager uses \"navigator.onLine\" - DEFAULT\n */\n WebSocketManager.setGlobalConfig(config);\n LogManager.updateLoggerConfig(loggerConfig);\n if (csmConfig) {\n csmService.updateCsmConfig(csmConfig);\n }\n //Message Receipts enabled by default\n if (!(config.features?.messageReceipts?.shouldSendMessageReceipts === false)) {\n console.warn(\"enabling message-receipts by default; to disable set config.features.messageReceipts.shouldSendMessageReceipts = false\");\n setFeatureFlag(FEATURES.MESSAGE_RECEIPTS_ENABLED);\n GlobalConfig.updateThrottleTime(config.features?.messageReceipts?.thorttleTime);\n }\n};\n\nvar setFeatureFlag = feature => {\n GlobalConfig.setFeatureFlag(feature);\n};\n\nvar ChatSessionConstructor = args => {\n var options = args.options || {};\n var type = args.type || SESSION_TYPES.AGENT;\n GlobalConfig.updateStageRegion(options);\n // initialize CSM Service for only customer chat widget\n // Disable CSM service from canary test\n if(!args.disableCSM && type === SESSION_TYPES.CUSTOMER) {\n csmService.loadCsmScriptAndExecute();\n }\n return CHAT_SESSION_FACTORY.createChatSession(\n type,\n args.chatDetails,\n options,//options contain region \n args.websocketManager,\n );\n};\n\nconst ChatSessionObject = {\n create: ChatSessionConstructor,\n setGlobalConfig: setGlobalConfig,\n LogLevel: LogLevel,\n Logger: Logger,\n SessionTypes: SESSION_TYPES,\n csmService: csmService,\n setFeatureFlag: setFeatureFlag,\n};\n\nexport { ChatSessionObject };\n","/*eslint no-unused-vars: \"off\"*/\nimport { ChatSessionObject } from \"./core/chatSession\";\nimport { LogManager, LogLevel } from \"./log\";\n\nvar global = typeof global !== 'undefined' ? global :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window : {};\nglobal.connect = global.connect || {};\nconnect.ChatSession = ChatSessionObject;\nconnect.LogManager = LogManager;\nconnect.LogLevel = LogLevel;\nconnect.csmService = ChatSessionObject.csmService;\nexport const ChatSession = ChatSessionObject;\n"],"names":["e","t","r","n","i","s","a","o","c","Error","code","l","exports","call","length","version","metadata","apiVersion","endpointPrefix","jsonVersion","protocol","serviceFullName","serviceId","signatureVersion","targetPrefix","uid","operations","CreateIdentityPool","input","type","required","members","IdentityPoolName","AllowUnauthenticatedIdentities","AllowClassicFlow","SupportedLoginProviders","shape","DeveloperProviderName","OpenIdConnectProviderARNs","CognitoIdentityProviders","SamlProviderARNs","IdentityPoolTags","output","DeleteIdentities","IdentityIdsToDelete","member","UnprocessedIdentityIds","IdentityId","ErrorCode","DeleteIdentityPool","IdentityPoolId","DescribeIdentity","DescribeIdentityPool","GetCredentialsForIdentity","Logins","CustomRoleArn","Credentials","AccessKeyId","SecretKey","SessionToken","Expiration","GetId","AccountId","GetIdentityPoolRoles","Roles","RoleMappings","GetOpenIdToken","Token","GetOpenIdTokenForDeveloperIdentity","TokenDuration","ListIdentities","MaxResults","NextToken","HideDisabled","Identities","ListIdentityPools","IdentityPools","ListTagsForResource","ResourceArn","Tags","LookupDeveloperIdentity","DeveloperUserIdentifier","DeveloperUserIdentifierList","MergeDeveloperIdentities","SourceUserIdentifier","DestinationUserIdentifier","SetIdentityPoolRoles","TagResource","UnlinkDeveloperIdentity","UnlinkIdentity","LoginsToRemove","UntagResource","TagKeys","UpdateIdentityPool","shapes","S5","key","value","S9","Sb","ProviderName","ClientId","ServerSideTokenCheck","Sg","Sh","Sk","Sv","CreationDate","LastModifiedDate","Sw","S10","S1c","S1e","Type","AmbiguousRoleResolution","RulesConfiguration","Rules","Claim","MatchType","Value","RoleARN","pagination","serviceAbbreviation","signingName","CompleteAttachmentUpload","http","requestUri","AttachmentIds","ClientToken","idempotencyToken","ConnectionToken","location","locationName","CreateParticipantConnection","ParticipantToken","ConnectParticipant","Websocket","Url","ConnectionExpiry","ConnectionCredentials","Expiry","DisconnectParticipant","GetAttachment","AttachmentId","UrlExpiry","GetTranscript","ContactId","ScanDirection","SortOrder","StartPosition","Id","AbsoluteTime","MostRecent","InitialContactId","Transcript","Content","ContentType","ParticipantId","DisplayName","ParticipantRole","Attachments","AttachmentName","Status","MessageMetadata","MessageId","Receipts","DeliveredTimestamp","ReadTimestamp","RecipientParticipantId","SendEvent","SendMessage","StartAttachmentUpload","AttachmentSizeInBytes","UploadMetadata","HeadersToInclude","input_token","output_token","limit_key","acm","name","cors","apigateway","applicationautoscaling","prefix","appstream","autoscaling","batch","budgets","clouddirectory","versions","cloudformation","cloudfront","cloudhsm","cloudsearch","cloudsearchdomain","cloudtrail","cloudwatch","cloudwatchevents","cloudwatchlogs","codebuild","codecommit","codedeploy","codepipeline","cognitoidentity","cognitoidentityserviceprovider","cognitosync","configservice","cur","datapipeline","devicefarm","directconnect","directoryservice","discovery","dms","dynamodb","dynamodbstreams","ec2","ecr","ecs","efs","elasticache","elasticbeanstalk","elb","elbv2","emr","es","elastictranscoder","firehose","gamelift","glacier","health","iam","importexport","inspector","iot","iotdata","kinesis","kinesisanalytics","kms","lambda","lexruntime","lightsail","machinelearning","marketplacecommerceanalytics","marketplacemetering","mturk","mobileanalytics","opsworks","opsworkscm","organizations","pinpoint","polly","rds","redshift","rekognition","resourcegroupstaggingapi","route53","route53domains","s3","dualstackAvailable","s3control","xmlNoDefaultLists","servicecatalog","ses","shield","simpledb","sms","snowball","sns","sqs","ssm","storagegateway","stepfunctions","sts","support","swf","xray","waf","wafregional","workdocs","workspaces","codestar","lexmodelbuildingservice","marketplaceentitlementservice","athena","greengrass","dax","migrationhub","cloudhsmv2","glue","mobile","pricing","costexplorer","mediaconvert","medialive","mediapackage","mediastore","mediastoredata","appsync","guardduty","mq","comprehend","iotjobsdataplane","kinesisvideoarchivedmedia","kinesisvideomedia","kinesisvideo","sagemakerruntime","sagemaker","translate","resourcegroups","alexaforbusiness","cloud9","serverlessapplicationrepository","servicediscovery","workmail","autoscalingplans","transcribeservice","connect","acmpca","fms","secretsmanager","iotanalytics","iot1clickdevicesservice","iot1clickprojects","pi","neptune","mediatailor","eks","macie","dlm","signer","chime","pinpointemail","ram","route53resolver","pinpointsmsvoice","quicksight","rdsdataservice","amplify","datasync","robomaker","transfer","globalaccelerator","comprehendmedical","kinesisanalyticsv2","mediaconnect","fsx","securityhub","appmesh","licensemanager","kafka","apigatewaymanagementapi","apigatewayv2","docdb","backup","worklink","textract","managedblockchain","mediapackagevod","groundstation","iotthingsgraph","iotevents","ioteventsdata","personalize","personalizeevents","personalizeruntime","applicationinsights","servicequotas","ec2instanceconnect","eventbridge","lakeformation","forecastservice","forecastqueryservice","qldb","qldbsession","workmailmessageflow","codestarnotifications","savingsplans","sso","ssooidc","marketplacecatalog","dataexchange","sesv2","migrationhubconfig","connectparticipant","appconfig","iotsecuretunneling","wafv2","elasticinference","imagebuilder","schemas","accessanalyzer","codegurureviewer","codeguruprofiler","computeoptimizer","frauddetector","kendra","networkmanager","outposts","augmentedairuntime","ebs","kinesisvideosignalingchannels","detective","codestarconnections","synthetics","iotsitewise","macie2","codeartifact","honeycode","ivs","braket","identitystore","appflow","redshiftdata","ssoadmin","timestreamquery","timestreamwrite","s3outposts","globalEndpoint","xmlNamespace","AssumeRole","RoleArn","RoleSessionName","PolicyArns","Policy","DurationSeconds","TransitiveTagKeys","ExternalId","SerialNumber","TokenCode","resultWrapper","AssumedRoleUser","PackedPolicySize","AssumeRoleWithSAML","PrincipalArn","SAMLAssertion","Subject","SubjectType","Issuer","Audience","NameQualifier","AssumeRoleWithWebIdentity","WebIdentityToken","ProviderId","SubjectFromWebIdentityToken","Provider","DecodeAuthorizationMessage","EncodedMessage","DecodedMessage","GetAccessKeyInfo","Account","GetCallerIdentity","UserId","Arn","GetFederationToken","Name","FederatedUser","FederatedUserId","GetSessionToken","S4","arn","S8","Key","SecretAccessKey","Sm","AssumedRoleId","arguments","apply","dup","Service","apiLoader","services","CognitoIdentity","defineService","Object","defineProperty","get","paginators","enumerable","configurable","STS","hasOwnProperty","createHash","toLowerCase","createHmac","createSign","Buffer","ArrayBuffer","isView","indexOf","prototype","toString","isEmptyData","byteLength","convertToBuffer","Uint8Array","buffer","byteOffset","BYTES_PER_ELEMENT","this","hash","outer","BLOCK_SIZE","set","update","digest","error","finished","state","DataView","p","bufferLength","bytesHashed","u","setUint8","hashBuffer","setUint32","Math","floor","getUint32","h0","h1","h2","h3","h4","block","Uint32Array","offset","shift","totalLength","pow","write","processBlock","temp","Int32Array","h","f","d","m","v","g","crypto","lib","url","querystring","realClock","environment","createEventStream","isBrowser","isNode","XML","Parser","browser","_process","Config","util","inherit","constructor","extractCredentials","each","keys","getCredentials","credentials","message","accessKeyId","secretAccessKey","credentialProvider","resolve","hasService","loadFromPath","clear","JSON","parse","readFileSync","FileSystemCredentials","CredentialProviderChain","providers","unshift","merge","region","logger","apiVersions","endpoint","httpOptions","timeout","maxRetries","maxRedirects","paramValidation","sslEnabled","s3ForcePathStyle","s3BucketEndpoint","s3DisableBodySigning","s3UsEast1RegionalEndpoint","s3UseArnRegion","computeChecksums","convertResponseTypes","correctClockSkew","customUserAgent","dynamoDbCrc32","systemClockOffset","signatureCache","retryDelayOptions","useAccelerateEndpoint","clientSideMonitoring","endpointDiscoveryEnabled","endpointCacheSize","hostPrefixEnabled","stsRegionalEndpoints","copy","setPromisesDependency","Promise","Request","S3","push","ManagedUpload","addPromises","getPromisesDependency","config","clientConfig","env","getProfilesFromSharedConfig","iniLoader","AWS_PROFILE","defaultProfile","sharedConfig","VERSION","Signers","Protocol","Json","Query","Rest","RestJson","RestXml","Builder","Model","Api","Operation","Shape","Paginator","ResourceWaiter","EndpointCache","events","SequentialExecutor","memoizedProperty","hideProperties","expired","expireTime","refreshCallbacks","sessionToken","expiryWindow","needsRefresh","date","getDate","getTime","Date","refresh","coalesceRefresh","load","arrayEach","defer","addPromisesToClass","getPromise","promisifyMethod","refreshPromise","deletePromisesFromClass","ChainableTemporaryCredentials","errorCode","tokenCodeFn","params","masterCredentials","stsConfig","service","fn","callback","getTokenCode","credentialsFrom","CognitoIdentityCredentials","localStorageKey","id","data","_identityId","_clientConfig","loadCachedId","createClients","getId","clearIdOnNotAuthorized","getCredentialsFromSTS","getCredentialsForIdentity","clearCachedId","LoginId","storage","cognito","loadCredentials","cacheId","getOpenIdToken","webIdentityCredentials","getStorage","split","filter","WebIdentityCredentials","setStorage","join","window","localStorage","defaultProviders","slice","resolveCallbacks","resolvePromise","SAMLCredentials","assumeRoleWithSAML","TemporaryCredentials","loadMasterCredentials","assumeRole","getSessionToken","assumeRoleWithWebIdentity","api","endpointDiscoveryId","isLocationName","String","operation","endpointCache","Address","httpRequest","updateEndpoint","makeRequest","endpointOperation","Identifiers","removeListener","EventListeners","Core","VALIDATE_PARAMETERS","RETRY_CHECK","put","CachePeriodInMinutes","send","Endpoints","getKeyString","request","response","retryable","remove","headers","httpResponse","statusCode","loadFrom","isConfig","filename","sharedConfigFileEnv","endpoint_discovery_enabled","discoverEndpoint","_originalConfig","serviceIdentifier","Boolean","isPresigned","endpointDiscoveryRequired","hasRequiredEndpointDiscovery","appendToUserAgent","addNamedListener","className","requiredDiscoverEndpoint","optionalDiscoverEndpoint","marshallCustomIdentifiers","getCacheKey","invalidateCachedEndpoint","eventMessageChunker","parseEvent","readInt32BE","isBuffer","bytes","toBuffer","fromNumber","abs","round","valueOf","parseInt","Int64","parseMessage","eventPayloadMemberName","body","eventHeaderMemberNames","toType","readUInt8","readInt8","readInt16BE","readUInt16BE","substr","splitMessage","readUInt32BE","crc32","addNamedListeners","isGlobalEndpoint","RegExp","test","idempotentMembers","uuid","v4","ParamValidator","validate","haltHandlersOnError","authtype","getSignerClass","V4","computeSha256","getRequestPayloadShape","string","isStreaming","requiresLength","Host","host","HttpRequest","retryCount","getSkewCorrectedDate","getSigningName","setServiceClientId","_clientId","Authorization","addAuthorization","signedAt","successfulResponse","stream","on","emit","streaming","HttpClient","streamsApiVersion","hasEventOutput","read","didCallback","hostname","getInstance","handleRequest","_abortCallback","statusMessage","buffers","numBytes","isClockSkewed","applyClockOffset","loaded","total","concat","retryableError","match","clockSkewError","Endpoint","redirect","redirectCount","retryDelay","retryDelays","setTimeout","CorePost","extractRequestId","errno","getSystemErrorName","originalError","Logger","isSensitive","startTime","isTTY","inspect","lowerFirst","log","buildRequest","extractData","extractError","urlParse","port","method","path","_userAgent","setUserAgent","getUserAgentHeaderName","userAgent","getUserAgent","pathname","search","queryStringParse","queryParamsToString","HttpResponse","createUnbufferedStream","singleton","EventEmitter","XHRClient","XMLHttpRequest","addEventListener","status","readyState","HEADERS_RECEIVED","parseHeaders","getAllResponseHeaders","statusText","DONE","finishRequest","upload","open","xhrAsync","setRequestHeader","xhrWithCredentials","withCredentials","responseType","substring","responseText","toWireFormat","build","stringify","property","timestampFormat","replace","endpointoperation","endpointdiscovery","create","waiters","documentation","documentationUrl","errors","isIdempotent","payload","isEventStream","more_results","result_key","forEach","y","enum","min","max","pattern","xmlName","queryName","isComposite","jsonvalue","sensitive","eventstream","event","eventpayload","eventheader","isTimestampFormatSet","endpointdiscoveryid","hostLabel","xmlAttribute","flattened","isShape","xmlOrder","memberNames","isEventPayload","isEventHeader","uri","isJsonValue","base64","decode","alloc","fill","encode","normalizedTypes","character","double","long","short","biginteger","bigdecimal","blob","types","structure","list","map","boolean","timestamp","toUTCString","parseTimestamp","format","float","parseFloat","integer","binary","StructureShape","ListShape","MapShape","StringShape","BooleanShape","Base64Shape","validation","validateMember","fail","validateStructure","validateType","validateList","validateMap","validateScalar","Array","validateRange","validateString","validatePayload","validateNumber","validateEnum","validatePattern","validateUri","isType","typeName","Stream","Blob","populateHostPrefix","hostPrefix","__type","Code","pop","Message","Version","Action","serialize","requestId","Errors","_XAMZRequestId","uriEscapePath","uriEscape","isArray","sort","httpMethod","httpPath","generateURI","AWS","toXML","upperFirst","isQueryName","toUpperCase","now","performance","configureEndpoint","rules","patterns","useDualstack","isDualstackAvailable","signingRegion","getEndpointSuffix","globalSSL","globalGovCloud","s3signature","domain","success","complete","setupStates","_haltHandlersOnError","_asm","currentState","Domain","domainEmitter","domainThrown","addState","active","Response","states","emitEvent","runTo","abort","removeAllListeners","eachPage","makeAsync","hasNextPage","nextPage","noop","eachItem","paginationConfig","resultKey","isPageable","createReadStream","PassThrough","nextTick","readable","sent","HTTP_DATA","HTTP_ERROR","isNaN","end","_write","unpipe","pipe","eventParameters","presign","Presign","sign","toGet","toUnauthenticated","_unAuthenticated","VALIDATE_CREDENTIALS","SIGN","buildAsGet","addListener","promise","mixin","jmespath","_waiter","acceptors","matchers","matcher","expected","argument","setSuccess","setError","loadWaiterConfig","strictDeepEqual","pathAll","pathAny","listeners","delay","wait","$waiter","maxAttempts","addListeners","numRetries","nextPageTokens","inputToken","cacheNextPageTokens","moreResults","outputToken","_events","onAsync","_isAsync","splice","callListeners","addNamedAsyncListener","loadServiceClass","initialize","validateService","endpointFromTemplate","setEndpoint","addDefaultMonitoringListeners","_clientSideMonitoring","publisher","eventHandler","isEmpty","apiConfig","defineServiceApi","getLatestServiceClass","getLatestServiceVersion","iso8601","defaultRetryCount","customizeRequests","customRequestHandler","addAllRequestListeners","attachMonitoringEmitter","makeUnauthenticatedRequest","waitFor","serviceInterface","setupRequestListeners","apiCallEvent","Region","MaxRetriesExceeded","UserAgent","FinalHttpStatusCode","FinalAwsException","FinalAwsExceptionMessage","FinalSdkException","FinalSdkExceptionMessage","apiAttemptEvent","Fqdn","HttpStatusCode","AccessKey","XAmznRequestId","XAmzRequestId","XAmzId2","attemptFailEvent","AwsException","AwsExceptionMessage","SdkException","SdkExceptionMessage","Timestamp","AttemptLatency","AttemptCount","Latency","RequestSigner","getVersion","calculateRetryDelay","timeoutError","networkingError","expiredCredentialsError","throttledError","paginator","defineMethods","_serviceMap","addVersions","Publisher","configProvider","enabled","isApi","getPrototypeOf","optInRegionalEndpoint","unixTimestamp","Signature","AWSAccessKeyId","Expires","SET_CONTENT_LENGTH","COMPUTE_SHA256","urlFormat","serviceClientId","getServiceClientId","V2","V3","V3Https","subResources","acl","accelerate","analytics","lifecycle","delete","inventory","logging","metrics","notification","partNumber","policy","requestPayment","replication","restore","tagging","torrent","uploadId","uploads","versionId","versioning","website","responseHeaders","rfc822","stringToSign","canonicalizedAmzHeaders","canonicalizedResource","virtualHostedBucket","decodeURIComponent","hmac","SignatureVersion","SignatureMethod","SecurityToken","signature","authorization","signedHeaders","headersToSign","canonicalHeaders","trim","sha256","serviceName","algorithm","updateForPresigned","addHeaders","credentialString","isSignableHeader","getSigningKey","hexEncodedHash","canonicalString","hexEncodedBodyHash","canonicalHeaderValues","createScope","unsignableHeaders","emptyCache","accept","engine","navigator","platform","AWS_EXECUTION_ENV","encodeURIComponent","escape","charCodeAt","from","toStream","Readable","_read","size","lstatSync","object","ini","toISOString","crc32Table","md5","arraySliceFn","FileReader","onerror","onload","result","_continueReading","readAsArrayBuffer","toHex","webkitSlice","mozSlice","stack","writable","time","__super__","hoistPayloadMember","start","ResponseMetadata","RequestId","customBackoff","base","random","handleRequestWithRetries","retryAfter","convertPayloadToString","configOptInEnv","sharedCredentialsFileEnv","ARN","partition","accountId","resource","imdsDisabledEnv","setImmediate","fs","timers","getElementsByTagName","parentNode","firstElementChild","nodeName","textContent","nextElementSibling","childNodes","getAttribute","isXmlAttribute","attributes","defaultValue","DOMParser","parseFromString","documentElement","ActiveXObject","async","loadXML","addAttribute","addChildNode","xmlNamespaceUri","xmlNamespacePrefix","XmlNode","XmlText","children","escapeAttribute","escapeElement","removeAttribute","toByteArray","fromByteArray","TYPED_ARRAY_SUPPORT","RangeError","__proto__","TypeError","isEncoding","Y","$","V","X","q","T","k","P","x","L","b","w","lastIndexOf","E","Number","S","G","_","W","C","A","R","K","J","Q","fromCharCode","I","H","O","N","U","D","M","j","Z","B","z","ee","F","SlowBuffer","INSPECT_MAX_BYTES","foo","subarray","kMaxLength","poolSize","_augment","Symbol","species","allocUnsafe","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","equals","includes","isFinite","toJSON","_arr","readUIntLE","readUIntBE","readUInt16LE","readUInt32LE","readIntLE","readIntBE","readInt16LE","readInt32LE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","global","self","ieee754","isarray","_maxListeners","defaultMaxListeners","setMaxListeners","context","newListener","listener","warned","console","trace","once","listenerCount","NaN","LN2","runtime","_interpreter","functionTable","_func","_functionAbs","_signature","avg","_functionAvg","ceil","_functionCeil","contains","_functionContains","ends_with","_functionEndsWith","_functionFloor","_functionLength","_functionMap","_functionMax","_functionMerge","variadic","max_by","_functionMaxBy","sum","_functionSum","starts_with","_functionStartsWith","_functionMin","min_by","_functionMinBy","_functionType","_functionKeys","values","_functionValues","_functionSort","sort_by","_functionSortBy","_functionJoin","reverse","_functionReverse","to_array","_functionToArray","to_string","_functionToString","to_number","_functionToNumber","not_null","_functionNotNull","trimLeft","tokenize","_current","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","_consumeLiteral","_consumeOperator","_looksLikeJSON","_loadTokens","index","expression","_lookahead","_lookaheadToken","tokens","_advance","nud","led","Not","_parseProjectionRHS","Star","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_match","_errorToken","Dot","_parseDotRHS","Pipe","Or","And","Filter","_parseComparator","_parseSliceExpression","visit","computeSliceParams","callFunction","jmespathType","capSliceRange","_validateArgs","_getTypeName","_typeMatches","localeCompare","createKeyFunction","compile","run","clearTimeout","fun","array","title","argv","off","prependListener","prependOnceListener","binding","cwd","chdir","umask","nodeType","overflow","ucs2","toASCII","toUnicode","define","punycode","maxKeys","_id","_clearFn","Function","setInterval","clearInterval","close","unref","ref","enroll","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","slashes","auth","query","href","resolveObject","javascript","https","ftp","gopher","file","exec","parseHost","charAt","super_","seen","stylize","depth","colors","showHidden","_extend","customInspect","styles","getOwnPropertyNames","reduce","getOwnPropertyDescriptor","deprecate","process","noDeprecation","throwDeprecation","traceDeprecation","debuglog","NODE_DEBUG","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","number","undefined","null","regexp","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","isObject","isDate","isError","isFunction","isPrimitive","getHours","getMinutes","getSeconds","getMonth","inherits","v1","getRandomValues","bind","msCrypto","node","clockseq","msecs","nsecs","rng","maxSize","cache","LRUCache","populateValue","Expire","empty","nodeMap","sizeLimit","prependToList","headerNode","prev","next","tailNode","removeFromTail","detachFromList","module","getRawTag","objectToString","symToStringTag","toStringTag","trimmedEndIndex","reTrimStart","freeGlobal","objectProto","nativeObjectToString","isOwn","tag","unmasked","freeSelf","root","reWhitespace","toNumber","nativeMax","nativeMin","func","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","args","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","cancel","flush","baseGetTag","isObjectLike","debounce","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","other","isBinary","re","not_string","not_bool","not_type","not_primitive","numeric_arg","json","not_json","text","modulo","placeholder","key_access","index_access","sprintf","parse_tree","arg","ph","pad","pad_character","pad_length","is_positive","cursor","tree_length","param_no","width","precision","toExponential","toFixed","toPrecision","pad_char","repeat","align","sprintf_format","fmt","sprintf_cache","_fmt","arg_names","SyntaxError","field_list","replacement_field","field_match","sprintf_parse","vsprintf","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","getter","__esModule","definition","obj","prop","ValueError","super","UnImplementedMethodException","IllegalArgumentException","IllegalStateException","IllegalJsonException","causeException","originalJsonString","GlobalConfig","stage","reconnect","features","Proxy","target","oldVal","feature","featureChangeListeners","_cleanFeatureChangeListener","configInput","endpointOverride","messageReceiptThrottleTime","throttleTime","updateStageRegion","updateThrottleTime","getMessageReceiptsThrottleTime","getStage","getRegion","getEndpointOverride","setFeatureFlag","isFeatureEnabled","featureValues","_registerFeatureChangeListener","FEATURES","SESSION_TYPES","AGENT","CUSTOMER","CSM_CATEGORY","ACPS_METHODS","WEBSOCKET_EVENTS","CHAT_EVENTS","INCOMING_MESSAGE","INCOMING_TYPING","INCOMING_READ_RECEIPT","INCOMING_DELIVERED_RECEIPT","CONNECTION_ESTABLISHED","CONNECTION_LOST","CONNECTION_BROKEN","CONNECTION_ACK","CHAT_ENDED","MESSAGE_METADATA","PARTICIPANT_IDLE","PARTICIPANT_RETURNED","AUTODISCONNECTION","CONTENT_TYPE","textPlain","textMarkdown","textCsv","applicationDoc","applicationDocx","applicationJson","applicationPdf","applicationPpt","applicationPptx","applicationXls","applicationXlsx","imageJpg","imagePng","audioWav","audioXWav","audioVndWave","connectionAcknowledged","typing","participantJoined","participantLeft","participantActive","participantInactive","transferSucceeded","transferFailed","chatEnded","interactiveMessage","interactiveMessageResponse","readReceipt","deliveredReceipt","participantIdle","participantReturned","autoDisconnection","CHAT_EVENT_TYPE_MAPPING","default","TRANSPORT_LIFETIME_IN_SECONDS","Utils","premise","assertTrue","allowedValues","enumObj","find","predicate","assertNotNull","ms","interval","count","catch","then","asyncWhileInterval","reject","contentType","LogLevel","DEBUG","INFO","WARN","ERROR","ADVANCED_LOG","LogManager","updateLoggerConfig","writeToClientLogger","level","logStatement","logMetaData","hasClientLogger","levelStringValue","getLogLevelByValue","_clientLogger","debug","info","warn","_advancedLogWriter","isLevelEnabled","_level","getLogger","LoggerWrapperImpl","inputConfig","advancedLogVal","customizedLogger","customizedLoggerKeys","defaultLoggerKeys","isValidAdvancedLogConfig","advancedLogWriter","useClientLogger","selectLogger","useDefaultLogger","createConsoleLogger","LoggerWrapper","_len","_key","_log","_len2","_key2","_len3","_key3","_len4","_key4","advancedLog","_len5","_key5","_shouldLog","_writeToClientLogger","_convertToSingleStatement","_convertToString","toStringResult","ChatClient","sendMessage","participantToken","sendAttachment","attachment","downloadAttachment","attachmentId","disconnectParticipant","sendEvent","connectionToken","content","createParticipantConnection","AWSChatClient","_defineProperty","throttle","_submitEvent","creds","chatClient","invokeUrl","acknowledgeConnection","createParticipantConnectionRequest","_sendRequest","res","_self$logger$info","_self$logger$info$sen","sendInternalLogToServer","err","_self$logger$error","_self$logger$error$se","disconnectParticipantRequest","_self$logger$info2","_self$logger$info2$se","_self$logger$error2","_self$logger$error2$s","getTranscript","maxResults","nextToken","scanDirection","sortOrder","startPosition","absoluteTime","mostRecent","contactId","getTranscriptRequest","sendMessageRequest","_res$data","logContent","startUploadRequestParams","startUploadRequest","startAttachmentUpload","startUploadResponse","_uploadToS3","_startUploadResponse$","completeUploadRequestParams","_objectSpread","completeUploadRequest","completeAttachmentUpload","fetch","getAttachmentRequest","getAttachment","_downloadUrl","throttleEvent","_this","sendEventRequest","_res$data2","errObj","ChatClientFactory","clientCache","getCachedClient","optionsInput","assign","client","_createAwsClient","endpointUrl","ChatControllerArgsValidator","validateNewControllerDetails","chatDetails","validateSendMessage","validateContentType","validateConnectChat","validateLogger","methodName","validateSendEvent","validateGetMessages","ChatServiceArgsValidator","validateChatDetails","sessionType","getConnectionToken","participantId","validateInitiateChatResponse","normalizeChatDetails","chatDetailsInput","initialContactId","GetConnectionToken","ConnectionHelperStatus","ConnectionHelperEvents","BaseConnectionHelper","connectionDetailsProvider","isStarted","startConnectionTokenPolling","expiry","fetchConnectionDetails","getTimeToConnectionTokenExpiry","getFetchedConnectionToken","getConnectionTokenExpiry","ALL_EVENTS","Subscription","subMap","eventName","unsubscribe","SubscriptionMap","subIdMap","subEventNameMap","subscribe","sub","subList","subId","getAllSubscriptions","getSubscriptions","EventBus","paramsIn","logEvents","subscribeAll","trigger","allEventSubs","eventSubs","triggerAsync","bridge","unsubscribeAll","DIMENSION_CATEGORY","csmService","widgetType","csmInitialized","metricsToBePublished","agentMetricToBePublished","MAX_RETRY","loadCsmScriptAndExecute","script","document","createElement","innerHTML","head","appendChild","initializeCSM","csmWorkerText","sharedWorkerBlobUrl","URL","createObjectURL","ldasEndpoint","getLdasEndpointUrl","namespace","sharedWorkerUrl","csm","initCSM","metric","API","addMetric","updateCsmConfig","csmConfig","getDefaultDimensions","setDimensions","dimensions","dimension","addDimension","addLatencyMetric","timeDifference","category","otherDimensions","latencyMetric","Metric","UNIT","MILLISECONDS","addLatencyMetricWithStartTime","addCountAndErrorMetric","countMetric","COUNT","errorCount","errorMetric","addCountMetric","addAgentCountMetric","metricName","_self","addCount","metricItem","ConnectionDetailsProvider","connectionDetails","connectionTokenExpiry","getConnectionDetails","_fetchConnectionDetails","_handleCreateParticipantConnectionResponse","transportLifeTimeInSeconds","_handleGetConnectionTokenResponse","connectionTokenDetails","callCreateParticipantConnection","_addParticipantConnectionMetric","reason","_debug","chatTokenTransport","errorMessage","LpcConnectionHelper","websocketManager","customerConnection","customerBaseInstances","LpcConnectionHelperBase","baseInstance","agentBaseInstance","getWebsocketManager","eventBus","subscriptions","onEnded","handleEnded","onConnectionGain","handleConnectionGain","onConnectionLost","handleConnectionLost","onMessage","handleMessage","tryCleanup","hasMessageSubscribers","getStatus","handler","initialConnectionDetails","initWebsocketManager","WebSocketManager","subscribeTopics","onInitFailure","init","_getConnectionDetails","webSocketTransport","details","_addWebsocketInitCSMMetric","closeWebSocket","websocketStatus","parsedMessage","_sendInternalLogToServer","logEntry","MessageReceiptsUtil","timeoutId","readSet","Set","deliveredSet","readPromiseMap","Map","deliveredPromiseMap","lastReadArgs","throttleInitialEventsToPrioritizeRead","throttleSendEventApiCall","isMessageReceipt","eventType","incomingData","getEventTypeFromMessageMetaData","messageMetadata","shouldShowMessageReceiptForCurrentParticipantId","currentParticipantId","prioritizeAndSendMessageReceipt","ChatClientContext","messageId","has","returnPromise","rej","add","resolveDeliveredPromises","resolveReadPromises","disableThrottle","sendMessageReceipts","Err","sendEventPromise","PromiseArr","contentVal","readEventMessageId","all","resolvePromises","promiseMap","arr","indexToResolve","_promiseMap$get","callbackFn","rehydrateReceiptMappers","shouldSendMessageReceipts","transcript","_transcript$MessageMe","_transcript$MessageMe2","_transcript$MessageMe3","Receipt","ChatController","argsValidator","pubsub","_participantDisconnected","sessionMetadata","messageReceiptUtil","handleRequestSuccess","contentTypeDimension","handleRequestFailure","connectionHelper","getEventTypeFromContentType","parsedContent","inputArgs","_getConnectionDetailsProvider","_initConnectionHelper","_onConnectSuccess","_onConnectFailure","_handleEndedConnection","_handleLostConnection","_handleGainedConnection","_handleIncomingMessage","eventData","_forwardChatEvent","getChatDetails","breakConnection","_connectionDetailsPro","responseObject","connectSuccess","connectCalled","_shouldAcknowledgeContact","errorObject","cleanUpOnParticipantDisconnect","_convertConnectionHelperStatus","connectionHelperStatus","getConnectionStatus","ChatSessionFactory","createAgentChatController","participantType","createCustomerChatController","ChatSession","controller","onTyping","onReadReceipt","onDeliveredReceipt","onConnectionBroken","onConnectionEstablished","onParticipantIdle","onParticipantReturned","onAutoDisconnection","AgentChatSession","CustomerChatSession","CHAT_SESSION_FACTORY","createChatSession","chatController","_createChatController","ChatSessionObject","disableCSM","setGlobalConfig","_config$features","_config$features$mess","_config$features2","_config$features2$mes","loggerConfig","messageReceipts","thorttleTime","SessionTypes"],"sourceRoot":""} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 3b43f89..36abe10 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,11042 @@ { "name": "amazon-connect-chatjs", - "version": "1.4.0", - "lockfileVersion": 1, + "version": "1.5.0", + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "amazon-connect-chatjs", + "version": "1.5.0", + "license": "Apache-2.0", + "dependencies": { + "detect-browser": "5.3.0", + "sprintf-js": "^1.1.2" + }, + "devDependencies": { + "@babel/cli": "^7.17.6", + "@babel/core": "^7.17.0", + "@babel/eslint-parser": "^7.18.9", + "@babel/preset-env": "^7.15.4", + "babel-loader": "^8.2.4", + "eslint": "^8.9.0", + "eslint-config-prettier": "^6.11.0", + "eslint-plugin-jest": "^26.6.0", + "eslint-plugin-prettier": "^4.0.0", + "jest": "^27.5.1", + "regenerator-runtime": "^0.13.9", + "typescript": "^4.4.2", + "webpack": "^5.54.0", + "webpack-cli": "^4.8.0", + "webpack-dev-server": "^4.8.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/cli": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.21.0.tgz", + "integrity": "sha512-xi7CxyS8XjSyiwUGCfwf+brtJxjW1/ZTcBUkP10xawIEXLX5HzLn+3aXkgxozcP2UhRhtKTmQurw9Uaes7jZrA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", + "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", + "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.0", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.21.0", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.0", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", + "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "dev": true, + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.21.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", + "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", + "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz", + "integrity": "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", + "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", + "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", + "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", + "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", + "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", + "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.2", + "@babel/types": "^7.21.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", + "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", + "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz", + "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "dev": true, + "optional": true + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", + "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.21.2", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.2.tgz", + "integrity": "sha512-EMpxUyystd3uZVByZap1DACsMXvb82ypQnGn89e1Y0a+LYu3JJscUd/gqhRsVFDkaD2MIiWo0MT8EfXr3DGRKw==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.33", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", + "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-proxy": { + "version": "1.17.10", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.10.tgz", + "integrity": "sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz", + "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "dev": true, + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.1.tgz", + "integrity": "sha512-zWKuGliXxvuxyM71UA/EcPxaviw39dB2504LqAmFDjmkpO8qNLHcmzlh6pbHs1h/7YQ9bnsO8CCcYCSA8sykUg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/visitor-keys": "5.54.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.1.tgz", + "integrity": "sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.1.tgz", + "integrity": "sha512-bjK5t+S6ffHnVwA0qRPTZrxKSaFYocwFIkZx5k7pvWfsB1I57pO/0M0Skatzzw1sCkjJ83AfGTL0oFIFiDX3bg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/visitor-keys": "5.54.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.1.tgz", + "integrity": "sha512-IY5dyQM8XD1zfDe5X8jegX6r2EVU5o/WJnLu/znLPWCBF7KNGC+adacXnt5jEYS9JixDcoccI6CvE4RCjHMzCQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.54.1", + "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/typescript-estree": "5.54.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.1.tgz", + "integrity": "sha512-q8iSoHTgwCfgcRJ2l2x+xCbu8nBlRAlsQ33k24Adj8eoVBE0f8dUeI+bAa8F84Mv05UGbAx57g2zrRsYIooqQg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "dev": true, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "dev": true, + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "dev": true, + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dev": true, + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-loader/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/bonjour-service": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.0.tgz", + "integrity": "sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001460", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001460.tgz", + "integrity": "sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.0.tgz", + "integrity": "sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.320", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.320.tgz", + "integrity": "sha512-h70iRscrNluMZPVICXYl5SSB+rBKo22XfuIS1ER0OQxQZpKTnFpuS6coj7wY9M/3trv7OR88rRMOlKmRvDty7Q==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz", + "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^2.0.0", + "@eslint/js": "8.35.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz", + "integrity": "sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==", + "dev": true, + "dependencies": { + "get-stdin": "^6.0.0" + }, + "bin": { + "eslint-config-prettier-check": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=3.14.1" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "26.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.9.0.tgz", + "integrity": "sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^5.10.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dev": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", + "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nwsapi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", + "dev": true + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", + "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.1.tgz", + "integrity": "sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dev": true, + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.16.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.6.tgz", + "integrity": "sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "dev": true + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.76.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.0.tgz", + "integrity": "sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "cross-spawn": "^7.0.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", + "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, "dependencies": { "@ampproject/remapping": { "version": "2.2.0", @@ -2485,7 +13519,8 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", - "dev": true + "dev": true, + "requires": {} }, "@webpack-cli/info": { "version": "1.5.0", @@ -2500,7 +13535,8 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", - "dev": true + "dev": true, + "requires": {} }, "@xtuc/ieee754": { "version": "1.2.0", @@ -2558,13 +13594,15 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true + "dev": true, + "requires": {} }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "acorn-walk": { "version": "7.2.0", @@ -2626,7 +13664,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "ansi-escapes": { "version": "4.3.2", @@ -5530,7 +16569,8 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true + "dev": true, + "requires": {} }, "jest-regex-util": { "version": "27.5.1", @@ -7353,6 +18393,23 @@ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -7374,23 +18431,6 @@ "strip-ansi": "^6.0.1" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -8037,7 +19077,8 @@ "version": "8.12.1", "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", - "dev": true + "dev": true, + "requires": {} } } }, @@ -8180,7 +19221,8 @@ "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true + "dev": true, + "requires": {} }, "xml-name-validator": { "version": "3.0.0", diff --git a/package.json b/package.json index 7e442e1..7bfb398 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "amazon-connect-chatjs", - "version": "1.4.0", + "version": "1.5.0", "main": "dist/amazon-connect-chat.js", "types": "src/index.d.ts", "engines": { diff --git a/src/core/chatSession.js b/src/core/chatSession.js index c25a3aa..b0ee728 100644 --- a/src/core/chatSession.js +++ b/src/core/chatSession.js @@ -181,6 +181,9 @@ var setGlobalConfig = config => { * if config.loggerConfig.useDefaultLogger is true - use default window.console + default level INFO * config.loggerConfig.advancedLogWriter to customize where you want to log advancedLog messages. Default is warn. * else no logs from websocketManager - DEFAULT + * + * if config.webSocketManagerConfig.isNetworkOnline is present - use it in websocketManager + * else websocketManager uses "navigator.onLine" - DEFAULT */ WebSocketManager.setGlobalConfig(config); LogManager.updateLoggerConfig(loggerConfig); diff --git a/src/globalConfig.spec.js b/src/globalConfig.spec.js index c45e19d..98817ed 100644 --- a/src/globalConfig.spec.js +++ b/src/globalConfig.spec.js @@ -2,6 +2,7 @@ import { ChatSessionObject } from "./core/chatSession"; import { LogLevel, LogManager } from "./log"; import { GlobalConfig } from "./globalConfig"; import { FEATURES } from "./constants"; +import WebSocketManager from "./lib/amazon-connect-websocket-manager"; const realDate = Date.now; const fixDate = "2022-04-12T23:12:36.677Z"; @@ -338,4 +339,24 @@ describe("globalConfig", () => { expect(handler2).toHaveBeenCalledTimes(1); }); }); + + describe("About using custom webSocketManagerConfig", () => { + it('should pass not down invalid config object', () => { + expect(() => ChatSessionObject.setGlobalConfig(null)).toThrow(TypeError); + }); + + it('should pass down config to WebSocketManager', () => { + const mockConfig = { + loggerConfig: {}, + webSocketManagerConfig: { + isNetworkOnline: () => true + } + }; + + jest.spyOn(WebSocketManager, 'setGlobalConfig').mockImplementation(() => {}); + + ChatSessionObject.setGlobalConfig(mockConfig); + expect(WebSocketManager.setGlobalConfig).toHaveBeenCalledWith(mockConfig); + }); + }); }); diff --git a/src/lib/amazon-connect-websocket-manager.js b/src/lib/amazon-connect-websocket-manager.js index 607308f..22958aa 100644 --- a/src/lib/amazon-connect-websocket-manager.js +++ b/src/lib/amazon-connect-websocket-manager.js @@ -4,7 +4,7 @@ const global = typeof global !== 'undefined' ? global : global.connect = global.connect || {}; const currentWebsocketManager = connect.WebSocketManager; -!function(e){var n={};function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var r in e)t.d(o,r,function(n){return e[n]}.bind(null,r));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=10)}([function(e,n){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},function(e,n){e.exports=function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,n){function t(e,n){for(var t=0;t=0),c.type){case"b":t=parseInt(t,10).toString(2);break;case"c":t=String.fromCharCode(parseInt(t,10));break;case"d":case"i":t=parseInt(t,10);break;case"j":t=JSON.stringify(t,null,c.width?parseInt(c.width):0);break;case"e":t=c.precision?parseFloat(t).toExponential(c.precision):parseFloat(t).toExponential();break;case"f":t=c.precision?parseFloat(t).toFixed(c.precision):parseFloat(t);break;case"g":t=c.precision?String(Number(t.toPrecision(c.precision))):parseFloat(t);break;case"o":t=(parseInt(t,10)>>>0).toString(8);break;case"s":t=String(t),t=c.precision?t.substring(0,c.precision):t;break;case"t":t=String(!!t),t=c.precision?t.substring(0,c.precision):t;break;case"T":t=Object.prototype.toString.call(t).slice(8,-1).toLowerCase(),t=c.precision?t.substring(0,c.precision):t;break;case"u":t=parseInt(t,10)>>>0;break;case"v":t=t.valueOf(),t=c.precision?t.substring(0,c.precision):t;break;case"x":t=(parseInt(t,10)>>>0).toString(16);break;case"X":t=(parseInt(t,10)>>>0).toString(16).toUpperCase()}r.json.test(c.type)?b+=t:(!r.number.test(c.type)||d&&!c.sign?p="":(p=d?"+":"-",t=t.toString().replace(r.sign,"")),u=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",l=c.width-(p+t).length,s=c.width&&l>0?u.repeat(l):"",b+=c.align?p+t+s:"0"===u?p+s+t:s+p+t)}return b}var s=Object.create(null);function u(e){if(s[e])return s[e];for(var n,t=e,o=[],i=0;t;){if(null!==(n=r.text.exec(t)))o.push(n[0]);else if(null!==(n=r.modulo.exec(t)))o.push("%");else{if(null===(n=r.placeholder.exec(t)))throw new SyntaxError("[sprintf] unexpected placeholder");if(n[2]){i|=1;var a=[],c=n[2],u=[];if(null===(u=r.key.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(u[1]);""!==(c=c.substring(u[0].length));)if(null!==(u=r.key_access.exec(c)))a.push(u[1]);else{if(null===(u=r.index_access.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(u[1])}n[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");o.push({placeholder:n[0],param_no:n[1],keys:n[2],sign:n[3],pad_char:n[4],align:n[5],width:n[6],precision:n[7],type:n[8]})}t=t.substring(n[0].length)}return s[e]=o}n.sprintf=i,n.vsprintf=a,"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(o=function(){return{sprintf:i,vsprintf:a}}.call(n,t,n,e))||(e.exports=o))}()},function(e,n,t){var o=t(8);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&&o(e,n)},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,n,t){var o=t(0).default,r=t(9);e.exports=function(e,n){if(n&&("object"===o(n)||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return r(e)},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,n){e.exports=function(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,n){function t(n,o){return e.exports=t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,o)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},function(e,n){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},function(e,n,t){"use strict";t.r(n),t.d(n,"WebSocketManager",(function(){return Ne}));var o=t(0),r=t.n(o),i=t(4),a="NULL",c="CLIENT_LOGGER",s="DEBUG",u="AMZ_WEB_SOCKET_MANAGER:",l="Network offline",d="Network online, connecting to WebSocket server",p="Network offline, ignoring this getWebSocketConnConfig request",f="Heartbeat response not received",g="aws/ping deep heartbeat response not received",b="Heartbeat response received",v="aws/ping deep heartbeat received",y="Sending heartbeat",m="Sending aws/ping deep heartbeat",h="Failed to send heartbeat since WebSocket is not open",S="Failed to send aws/ping deep heartbeat since WebSocket is not open",k="Deep Heartbeat is successful. WebSocketManager has received 200 response from aws/ping",w="Deep Heartbeat failed. WebSocketManager does not receive 200 response from aws/ping",O="Generic topic failed.",C="WebSocket connection established!",L="WebSocket connection is closed",T="WebSocketManager Error, error_event: ",_="Scheduling WebSocket reinitialization, after delay ",x="WebSocket URL cannot be used to establish connection",W="WebSocket Initialization failed - Terminating and cleaning subscriptions",I="Terminating WebSocket Manager",N="Fetching new WebSocket connection configuration",F="Successfully fetched webSocket connection configuration",E="Failed to fetch webSocket connection configuration",M="Retrying fetching new WebSocket connection configuration",D="Initializing Websocket Manager",R="Initializing Websocket Manager Failure callback registered",A="Websocket connection open callback registered",j="Websocket connection close callback registered",H="Websocket connection gain callback registered",P="Websocket connection lost callback registered",G="Websocket subscription failure callback registered",z="Reset Websocket state",q="WebSocketManager Message Error",U="Message received for topic ",J="Invalid incoming message",B="WebsocketManager invoke callbacks for topic success ",V="aws/subscribe",X="aws/unsubscribe",$="aws/heartbeat",K="aws/ping",Z="connected",Q="disconnected",Y={assertTrue:function(e,n){if(!e)throw new Error(n)},assertNotNull:function(e,n){return Y.assertTrue(null!==e&&void 0!==r()(e),Object(i.sprintf)("%s must be provided",n||"A value")),e},isNonEmptyString:function(e){return"string"==typeof e&&e.length>0},assertIsList:function(e,n){if(!Array.isArray(e))throw new Error(n+" is not an array")},isFunction:function(e){return!!(e&&e.constructor&&e.call&&e.apply)},isObject:function(e){return!("object"!==r()(e)||null===e)},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e}},ee=new RegExp("^(wss://)\\w*"),ne=new RegExp("^(ws://127.0.0.1:)");Y.validWSUrl=function(e){return ee.test(e)||ne.test(e)},Y.getSubscriptionResponse=function(e,n,t){return{topic:e,content:{status:n?"success":"failure",topics:t}}},Y.assertIsObject=function(e,n){if(!Y.isObject(e))throw new Error(n+" is not an object!")},Y.addJitter=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;n=Math.min(n,1);var t=Math.random()>.5?1:-1;return Math.floor(e+t*e*Math.random()*n)},Y.isNetworkOnline=function(){return navigator.onLine},Y.isNetworkFailure=function(e){return!(!e._debug||!e._debug.type)&&"NetworkingError"===e._debug.type};var te=Y,oe=t(5),re=t.n(oe),ie=t(6),ae=t.n(ie),ce=t(3),se=t.n(ce),ue=t(7),le=t.n(ue),de=t(1),pe=t.n(de),fe=t(2),ge=t.n(fe);function be(e){var n=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 t,o=se()(e);if(n){var r=se()(this).constructor;t=Reflect.construct(o,arguments,r)}else t=o.apply(this,arguments);return ae()(this,t)}}function ve(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function ye(e){for(var n=1;n1&&void 0!==arguments[1]?arguments[1]:"";if(this.hasClientLogger()){var t="string"==typeof n?n:JSON.stringify(n,Le()),o="string"==typeof this.logMetaData?this.logMetaData:JSON.stringify(this.logMetaData,Le()),r="".concat(Ce(e)," ").concat(t," ").concat(o);switch(e){case Se.DEBUG:return this._clientLogger.debug(r)||r;case Se.INFO:return this._clientLogger.info(r)||r;case Se.WARN:return this._clientLogger.warn(r)||r;case Se.ERROR:return this._clientLogger.error(r)||r;case Se.ADVANCED_LOG:return this._advancedLogWriter?this._clientLogger[this._advancedLogWriter](r)||r:""}}}},{key:"isLevelEnabled",value:function(e){return e>=this._level}},{key:"hasClientLogger",value:function(){return null!==this._clientLogger}},{key:"getLogger",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.prefix||he;return e.logMetaData&&this.setLogMetaData(e.logMetaData),this.logMetaData||console.info("*********Missing required option: WebSocketManager:logMetaData**********"),new Oe(this,ye({prefix:n,logMetaData:this.logMetaData},e))}},{key:"setLogMetaData",value:function(e){this.logMetaData=e}},{key:"updateLoggerConfig",value:function(e){var n=e||{};this._level=n.level||Se.INFO,this._advancedLogWriter="warn",n.advancedLogWriter&&(this._advancedLogWriter=n.advancedLogWriter),n.customizedLogger&&"object"===r()(n.customizedLogger)&&(this.useClientLogger=!0),this._clientLogger=n.logger||this.selectLogger(n),this._logsDestination=a,n.debug&&(this._logsDestination=s),n.logger&&(this._logsDestination=c)}},{key:"selectLogger",value:function(e){return e.customizedLogger&&"object"===r()(e.customizedLogger)?e.customizedLogger:e.useDefaultLogger?Te():null}}]),e}(),we=function(){function e(){pe()(this,e)}return ge()(e,[{key:"debug",value:function(){}},{key:"info",value:function(){}},{key:"warn",value:function(){}},{key:"error",value:function(){}},{key:"advancedLog",value:function(){}}]),e}(),Oe=function(e){re()(t,e);var n=be(t);function t(e,o){var r;return pe()(this,t),(r=n.call(this)).options=o||{},r.prefix=o.prefix||he,r.logManager=e,r}return ge()(t,[{key:"debug",value:function(){for(var e=arguments.length,n=new Array(e),t=0;t1&&void 0!==arguments[1]?arguments[1]:2e3;pe()(this,e),this.numAttempts=0,this.executor=n,this.hasActiveReconnection=!1,this.defaultRetry=t}return ge()(e,[{key:"retry",value:function(){var e=this;this.hasActiveReconnection||(this.hasActiveReconnection=!0,setTimeout((function(){e._execute()}),this._getDelay()))}},{key:"_execute",value:function(){this.hasActiveReconnection=!1,this.executor(),this.numAttempts++}},{key:"connected",value:function(){this.numAttempts=0}},{key:"_getDelay",value:function(){var e=Math.pow(2,this.numAttempts)*this.defaultRetry;return e<=3e4?e:3e4}},{key:"getIsConnected",value:function(){return!this.numAttempts}}]),e}(),xe=null,We=function(){var e=!1,n=xe.getLogger({prefix:u}),t=te.isNetworkOnline(),o={primary:null,secondary:null},r={reconnectWebSocket:!0,websocketInitFailed:!1,exponentialBackOffTime:1e3,exponentialTimeoutHandle:null,lifeTimeTimeoutHandle:null,webSocketInitCheckerTimeoutId:null,connState:null},i={connectWebSocketRetryCount:0,connectionAttemptStartTime:null,noOpenConnectionsTimestamp:null},a={pendingResponse:!1,intervalHandle:null},c={pendingResponse:!1,intervalHandle:null},s={initFailure:new Set,getWebSocketTransport:null,subscriptionUpdate:new Set,subscriptionFailure:new Set,topic:new Map,allMessage:new Set,connectionGain:new Set,connectionLost:new Set,connectionOpen:new Set,connectionClose:new Set,deepHeartbeatSuccess:new Set,deepHeartbeatFailure:new Set,topicFailure:new Set},Y={connConfig:null,promiseHandle:null,promiseCompleted:!0},ee={subscribed:new Set,pending:new Set,subscriptionHistory:new Set},ne={responseCheckIntervalId:null,requestCompleted:!0,reSubscribeIntervalId:null,consecutiveFailedSubscribeAttempts:0,consecutiveNoResponseRequest:0},oe=new _e((function(){Ie()})),re=new Set([V,X,$,K]),ie=setInterval((function(){if(t!==te.isNetworkOnline()){if(!(t=te.isNetworkOnline()))return n.advancedLog(l),void Ee(n.info(l));var e=pe();t&&(!e||ue(e,WebSocket.CLOSING)||ue(e,WebSocket.CLOSED))&&(n.advancedLog(d),Ee(n.info(d)),Ie())}}),250),ae=function(e,t){e.forEach((function(e){try{e(t)}catch(e){Ee(n.error("Error executing callback",e))}}))},ce=function(e){if(null===e)return"NULL";switch(e.readyState){case WebSocket.CONNECTING:return"CONNECTING";case WebSocket.OPEN:return"OPEN";case WebSocket.CLOSING:return"CLOSING";case WebSocket.CLOSED:return"CLOSED";default:return"UNDEFINED"}},se=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";Ee(n.debug("["+e+"] Primary WebSocket: "+ce(o.primary)+" | Secondary WebSocket: "+ce(o.secondary)))},ue=function(e,n){return e&&e.readyState===n},le=function(e){return ue(e,WebSocket.OPEN)},de=function(e){return null===e||void 0===e.readyState||ue(e,WebSocket.CLOSED)},pe=function(){return null!==o.secondary?o.secondary:o.primary},fe=function(){return le(pe())},ge=function(){if(e&&c.pendingResponse&&(n.advancedLog(g),Ee(n.warn(g)),ae(s.deepHeartbeatFailure,{timestamp:Date.now(),error:"aws/ping response is not received"}),clearInterval(c.intervalHandle),c.pendingResponse=!1),a.pendingResponse)return n.advancedLog(f),Ee(n.warn(f)),clearInterval(a.intervalHandle),a.intervalHandle=null,a.pendingResponse=!1,void Ie();fe()?(e&&(Ee(n.debug(m)),pe().send(Te(K)),c.pendingResponse=!0),Ee(n.debug(y)),pe().send(Te($)),a.pendingResponse=!0):(e&&(n.advancedLog(S),Ee(n.warn(S)),ae(s.deepHeartbeatFailure,{timestamp:Date.now(),error:"Unable to send message to aws/ping because websocket connection is not established."})),n.advancedLog(h),Ee(n.warn(h)),se("sendHeartBeat"),Ie())},be=function(){n.advancedLog(z),r.exponentialBackOffTime=1e3,a.pendingResponse=!1,c.pendingResponse=!1,r.reconnectWebSocket=!0,clearTimeout(r.lifeTimeTimeoutHandle),clearInterval(a.intervalHandle),clearInterval(c.intervalHandle),clearTimeout(r.exponentialTimeoutHandle),clearTimeout(r.webSocketInitCheckerTimeoutId),a.intervalHandle=null},ve=function(){ne.consecutiveFailedSubscribeAttempts=0,ne.consecutiveNoResponseRequest=0,clearInterval(ne.responseCheckIntervalId),clearInterval(ne.reSubscribeIntervalId)},ye=function(){i.connectWebSocketRetryCount=0,i.connectionAttemptStartTime=null,i.noOpenConnectionsTimestamp=null},me=function(){oe.connected();try{n.advancedLog(C),Ee(n.info(C)),se("webSocketOnOpen"),null!==r.connState&&r.connState!==Q||ae(s.connectionGain),r.connState=Z;var e=Date.now();ae(s.connectionOpen,{connectWebSocketRetryCount:i.connectWebSocketRetryCount,connectionAttemptStartTime:i.connectionAttemptStartTime,noOpenConnectionsTimestamp:i.noOpenConnectionsTimestamp,connectionEstablishedTime:e,timeToConnect:e-i.connectionAttemptStartTime,timeWithoutConnection:i.noOpenConnectionsTimestamp?e-i.noOpenConnectionsTimestamp:null}),ye(),be(),pe().openTimestamp=Date.now(),0===ee.subscribed.size&&le(o.secondary)&&we(o.primary,"[Primary WebSocket] Closing WebSocket"),(ee.subscribed.size>0||ee.pending.size>0)&&(le(o.secondary)&&Ee(n.info("Subscribing secondary websocket to topics of primary websocket")),ee.subscribed.forEach((function(e){ee.subscriptionHistory.add(e),ee.pending.add(e)})),ee.subscribed.clear(),ke()),ge(),null!==a.intervalHandle&&clearInterval(a.intervalHandle),a.intervalHandle=setInterval(ge,1e4);var t=1e3*Y.connConfig.webSocketTransport.transportLifeTimeInSeconds;Ee(n.debug("Scheduling WebSocket manager reconnection, after delay "+t+" ms")),r.lifeTimeTimeoutHandle=setTimeout((function(){Ee(n.debug("Starting scheduled WebSocket manager reconnection")),Ie()}),t)}catch(e){Ee(n.error("Error after establishing WebSocket connection",e))}},he=function(e){se("webSocketOnError"),n.advancedLog(T,JSON.stringify(e)),Ee(n.error(T,JSON.stringify(e))),oe.getIsConnected()?Ie():oe.retry()},Se=function(e){var t=JSON.parse(e.data);switch(t.topic){case V:if(Ee(n.debug("Subscription Message received from webSocket server",e.data)),ne.requestCompleted=!0,ne.consecutiveNoResponseRequest=0,"success"===t.content.status)ne.consecutiveFailedSubscribeAttempts=0,t.content.topics.forEach((function(e){ee.subscriptionHistory.delete(e),ee.pending.delete(e),ee.subscribed.add(e)})),0===ee.subscriptionHistory.size?le(o.secondary)&&(Ee(n.info("Successfully subscribed secondary websocket to all topics of primary websocket")),we(o.primary,"[Primary WebSocket] Closing WebSocket")):ke(),ae(s.subscriptionUpdate,t);else{if(clearInterval(ne.reSubscribeIntervalId),++ne.consecutiveFailedSubscribeAttempts,5===ne.consecutiveFailedSubscribeAttempts)return ae(s.subscriptionFailure,t),void(ne.consecutiveFailedSubscribeAttempts=0);ne.reSubscribeIntervalId=setInterval((function(){ke()}),500)}break;case $:Ee(n.debug(b)),a.pendingResponse=!1,null===a.intervalHandle&&(a.intervalHandle=setInterval(ge,1e4));break;case K:Ee(n.debug(v)),c.pendingResponse=!1,200===t.statusCode?ae(s.deepHeartbeatSuccess,{timestamp:Date.now()}):ae(s.deepHeartbeatFailure,{timestamp:Date.now(),statusCode:t.statusCode,statusContent:t.statusContent});break;default:if(t.topic){if(n.advancedLog(U,t.topic),Ee(n.debug(U+t.topic)),le(o.primary)&&le(o.secondary)&&0===ee.subscriptionHistory.size&&this===o.primary)return void Ee(n.warn("Ignoring Message for Topic "+t.topic+", to avoid duplicates"));if(0===s.allMessage.size&&0===s.topic.size)return void Ee(n.warn("No registered callback listener for Topic",t.topic));n.advancedLog(B,t.topic),ae(s.allMessage,t),s.topic.has(t.topic)&&ae(s.topic.get(t.topic),t)}else t.message?(n.advancedLog(q,t),Ee(n.warn(q,t)),ae(s.topicFailure,{timestamp:Date.now(),errorMessage:t.message,connectionId:t.connectionId,requestId:t.requestId})):(n.advancedLog(J,t),Ee(n.warn(J,t)))}},ke=function e(){if(ne.consecutiveNoResponseRequest>3)return Ee(n.warn("Ignoring subscribePendingTopics since we have exhausted max subscription retries with no response")),void ae(s.subscriptionFailure,te.getSubscriptionResponse(V,!1,Array.from(ee.pending)));fe()?0!==Array.from(ee.pending).length&&(clearInterval(ne.responseCheckIntervalId),pe().send(Te(V,{topics:Array.from(ee.pending)})),ne.requestCompleted=!1,ne.responseCheckIntervalId=setInterval((function(){ne.requestCompleted||(++ne.consecutiveNoResponseRequest,e())}),1e3)):Ee(n.warn("Ignoring subscribePendingTopics call since Default WebSocket is not open"))},we=function(e,t){ue(e,WebSocket.CONNECTING)||ue(e,WebSocket.OPEN)?e.close(1e3,t):Ee(n.warn("Ignoring WebSocket Close request, WebSocket State: "+ce(e)))},Oe=function(e){we(o.primary,"[Primary] WebSocket "+e),we(o.secondary,"[Secondary] WebSocket "+e)},Ce=function(){i.connectWebSocketRetryCount++;var e=te.addJitter(r.exponentialBackOffTime,.3);Date.now()+e<=Y.connConfig.urlConnValidTime?(n.advancedLog(_),Ee(n.debug(_+e+" ms")),r.exponentialTimeoutHandle=setTimeout((function(){return Ne()}),e),r.exponentialBackOffTime*=2):(n.advancedLog(x),Ee(n.warn(x)),Ie())},Le=function(e){be(),ve(),n.advancedLog(W,e),Ee(n.error(W)),r.websocketInitFailed=!0,Oe(I),clearInterval(ie),ae(s.initFailure,{connectWebSocketRetryCount:i.connectWebSocketRetryCount,connectionAttemptStartTime:i.connectionAttemptStartTime,reason:e}),ye()},Te=function(e,n){return JSON.stringify({topic:e,content:n})},We=function(e){return!!(te.isObject(e)&&te.isObject(e.webSocketTransport)&&te.isNonEmptyString(e.webSocketTransport.url)&&te.validWSUrl(e.webSocketTransport.url)&&1e3*e.webSocketTransport.transportLifeTimeInSeconds>=3e5)||(Ee(n.error("Invalid WebSocket Connection Configuration",e)),!1)},Ie=function(){if(!te.isNetworkOnline())return n.advancedLog(p),void Ee(n.info(p));if(r.websocketInitFailed)Ee(n.debug("WebSocket Init had failed, ignoring this getWebSocketConnConfig request"));else{if(Y.promiseCompleted)return be(),n.advancedLog(N),Ee(n.info(N)),i.connectionAttemptStartTime=i.connectionAttemptStartTime||Date.now(),Y.promiseCompleted=!1,Y.promiseHandle=s.getWebSocketTransport(),Y.promiseHandle.then((function(e){return Y.promiseCompleted=!0,n.advancedLog(F),Ee(n.debug(F,e)),We(e)?(Y.connConfig=e,Y.connConfig.urlConnValidTime=Date.now()+85e3,Ne()):(Le("Invalid WebSocket connection configuration: "+e),{webSocketConnectionFailed:!0})}),(function(e){return Y.promiseCompleted=!0,n.advancedLog(E),Ee(n.error(E,e)),te.isNetworkFailure(e)?(n.advancedLog(M+JSON.stringify(e)),Ee(n.info(M+JSON.stringify(e))),oe.retry()):Le("Failed to fetch webSocket connection configuration: "+JSON.stringify(e)),{webSocketConnectionFailed:!0}}));Ee(n.debug("There is an ongoing getWebSocketConnConfig request, this request will be ignored"))}},Ne=function(){if(r.websocketInitFailed)return Ee(n.info("web-socket initializing had failed, aborting re-init")),{webSocketConnectionFailed:!0};if(!te.isNetworkOnline())return Ee(n.warn("System is offline aborting web-socket init")),{webSocketConnectionFailed:!0};n.advancedLog(D),Ee(n.info(D)),se("initWebSocket");try{if(We(Y.connConfig)){var e=null;return le(o.primary)?(Ee(n.debug("Primary Socket connection is already open")),ue(o.secondary,WebSocket.CONNECTING)||(Ee(n.debug("Establishing a secondary web-socket connection")),oe.numAttempts=0,o.secondary=Fe()),e=o.secondary):(ue(o.primary,WebSocket.CONNECTING)||(Ee(n.debug("Establishing a primary web-socket connection")),o.primary=Fe()),e=o.primary),r.webSocketInitCheckerTimeoutId=setTimeout((function(){le(e)||Ce()}),1e3),{webSocketConnectionFailed:!1}}}catch(e){return Ee(n.error("Error Initializing web-socket-manager",e)),Le("Failed to initialize new WebSocket: "+e.message),{webSocketConnectionFailed:!0}}},Fe=function(){var e=new WebSocket(Y.connConfig.webSocketTransport.url);return e.addEventListener("open",me),e.addEventListener("message",Se),e.addEventListener("error",he),e.addEventListener("close",(function(t){return function(e,t){n.advancedLog(L,JSON.stringify(e)),Ee(n.info(L,JSON.stringify(e))),se("webSocketOnClose before-cleanup"),ae(s.connectionClose,{openTimestamp:t.openTimestamp,closeTimestamp:Date.now(),connectionDuration:Date.now()-t.openTimestamp,code:e.code,reason:e.reason}),de(o.primary)&&(o.primary=null),de(o.secondary)&&(o.secondary=null),r.reconnectWebSocket&&(le(o.primary)||le(o.secondary)?de(o.primary)&&le(o.secondary)&&(Ee(n.info("[Primary] WebSocket Cleanly Closed")),o.primary=o.secondary,o.secondary=null):(Ee(n.warn("Neither primary websocket and nor secondary websocket have open connections, attempting to re-establish connection")),r.connState===Q?Ee(n.info("Ignoring connectionLost callback invocation")):(ae(s.connectionLost,{openTimestamp:t.openTimestamp,closeTimestamp:Date.now(),connectionDuration:Date.now()-t.openTimestamp,code:e.code,reason:e.reason}),i.noOpenConnectionsTimestamp=Date.now()),r.connState=Q,Ie()),se("webSocketOnClose after-cleanup"))}(t,e)})),e},Ee=function(e){return e&&"function"==typeof e.sendInternalLogToServer&&e.sendInternalLogToServer(),e};this.init=function(e){if(te.assertTrue(te.isFunction(e),"transportHandle must be a function"),null===s.getWebSocketTransport)return s.getWebSocketTransport=e,Ie();Ee(n.warn("Web Socket Manager was already initialized"))},this.onInitFailure=function(e){return n.advancedLog(R),te.assertTrue(te.isFunction(e),"cb must be a function"),s.initFailure.add(e),r.websocketInitFailed&&e(),function(){return s.initFailure.delete(e)}},this.onConnectionOpen=function(e){return n.advancedLog(A),te.assertTrue(te.isFunction(e),"cb must be a function"),s.connectionOpen.add(e),function(){return s.connectionOpen.delete(e)}},this.onConnectionClose=function(e){return n.advancedLog(j),te.assertTrue(te.isFunction(e),"cb must be a function"),s.connectionClose.add(e),function(){return s.connectionClose.delete(e)}},this.onConnectionGain=function(e){return n.advancedLog(H),te.assertTrue(te.isFunction(e),"cb must be a function"),s.connectionGain.add(e),fe()&&e(),function(){return s.connectionGain.delete(e)}},this.onConnectionLost=function(e){return n.advancedLog(P),te.assertTrue(te.isFunction(e),"cb must be a function"),s.connectionLost.add(e),r.connState===Q&&e(),function(){return s.connectionLost.delete(e)}},this.onSubscriptionUpdate=function(e){return te.assertTrue(te.isFunction(e),"cb must be a function"),s.subscriptionUpdate.add(e),function(){return s.subscriptionUpdate.delete(e)}},this.onSubscriptionFailure=function(e){return n.advancedLog(G),te.assertTrue(te.isFunction(e),"cb must be a function"),s.subscriptionFailure.add(e),function(){return s.subscriptionFailure.delete(e)}},this.onMessage=function(e,n){return te.assertNotNull(e,"topicName"),te.assertTrue(te.isFunction(n),"cb must be a function"),s.topic.has(e)?s.topic.get(e).add(n):s.topic.set(e,new Set([n])),function(){return s.topic.get(e).delete(n)}},this.onAllMessage=function(e){return te.assertTrue(te.isFunction(e),"cb must be a function"),s.allMessage.add(e),function(){return s.allMessage.delete(e)}},this.subscribeTopics=function(e){te.assertNotNull(e,"topics"),te.assertIsList(e),e.forEach((function(e){ee.subscribed.has(e)||ee.pending.add(e)})),ne.consecutiveNoResponseRequest=0,ke()},this.sendMessage=function(e){if(te.assertIsObject(e,"payload"),void 0===e.topic||re.has(e.topic))Ee(n.warn("Cannot send message, Invalid topic",e));else{try{e=JSON.stringify(e)}catch(t){return void Ee(n.warn("Error stringify message",e))}fe()?pe().send(e):Ee(n.warn("Cannot send message, web socket connection is not open"))}},this.deepHeartbeatHandler=function(){e=!0},this.onDeepHeartbeatSuccess=function(e){return n.advancedLog(k),te.assertTrue(te.isFunction(e),"cb must be a function"),s.deepHeartbeatSuccess.add(e),function(){return s.deepHeartbeatSuccess.delete(e)}},this.onDeepHeartbeatFailure=function(e){return n.advancedLog(w),te.assertTrue(te.isFunction(e),"cb must be a function"),s.deepHeartbeatFailure.add(e),function(){return s.deepHeartbeatFailure.delete(e)}},this.onTopicFailure=function(e){return n.advancedLog(O),te.assertTrue(te.isFunction(e),"cb must be a function"),s.topicFailure.add(e),function(){return s.topicFailure.delete(e)}},this.closeWebSocket=function(){be(),ve(),r.reconnectWebSocket=!1,clearInterval(ie),Oe("User request to close WebSocket")},this.terminateWebSocketManager=Le},Ie={create:function(e){return xe||(xe=new ke(e)),xe.hasLogMetaData()||xe.setLogMetaData(e),e||console.info("********Missing metaData for logs from websocketManager: initialize websocketManager using create(metaData)*******"),new We},setGlobalConfig:function(e){var n=e&&e.loggerConfig;xe||(xe=new ke),xe.updateLoggerConfig(n)},LogLevel:Se,Logger:me};global.connect=global.connect||{},connect.WebSocketManager=Ie;var Ne=Ie;n.default=Ne}]); +!function(e){var n={};function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var r in e)t.d(o,r,function(n){return e[n]}.bind(null,r));return o},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=10)}([function(e,n){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},function(e,n){e.exports=function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,n){function t(e,n){for(var t=0;t=0),c.type){case"b":t=parseInt(t,10).toString(2);break;case"c":t=String.fromCharCode(parseInt(t,10));break;case"d":case"i":t=parseInt(t,10);break;case"j":t=JSON.stringify(t,null,c.width?parseInt(c.width):0);break;case"e":t=c.precision?parseFloat(t).toExponential(c.precision):parseFloat(t).toExponential();break;case"f":t=c.precision?parseFloat(t).toFixed(c.precision):parseFloat(t);break;case"g":t=c.precision?String(Number(t.toPrecision(c.precision))):parseFloat(t);break;case"o":t=(parseInt(t,10)>>>0).toString(8);break;case"s":t=String(t),t=c.precision?t.substring(0,c.precision):t;break;case"t":t=String(!!t),t=c.precision?t.substring(0,c.precision):t;break;case"T":t=Object.prototype.toString.call(t).slice(8,-1).toLowerCase(),t=c.precision?t.substring(0,c.precision):t;break;case"u":t=parseInt(t,10)>>>0;break;case"v":t=t.valueOf(),t=c.precision?t.substring(0,c.precision):t;break;case"x":t=(parseInt(t,10)>>>0).toString(16);break;case"X":t=(parseInt(t,10)>>>0).toString(16).toUpperCase()}r.json.test(c.type)?b+=t:(!r.number.test(c.type)||d&&!c.sign?p="":(p=d?"+":"-",t=t.toString().replace(r.sign,"")),u=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",l=c.width-(p+t).length,s=c.width&&l>0?u.repeat(l):"",b+=c.align?p+t+s:"0"===u?p+s+t:s+p+t)}return b}var s=Object.create(null);function u(e){if(s[e])return s[e];for(var n,t=e,o=[],i=0;t;){if(null!==(n=r.text.exec(t)))o.push(n[0]);else if(null!==(n=r.modulo.exec(t)))o.push("%");else{if(null===(n=r.placeholder.exec(t)))throw new SyntaxError("[sprintf] unexpected placeholder");if(n[2]){i|=1;var a=[],c=n[2],u=[];if(null===(u=r.key.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(u[1]);""!==(c=c.substring(u[0].length));)if(null!==(u=r.key_access.exec(c)))a.push(u[1]);else{if(null===(u=r.index_access.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(u[1])}n[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");o.push({placeholder:n[0],param_no:n[1],keys:n[2],sign:n[3],pad_char:n[4],align:n[5],width:n[6],precision:n[7],type:n[8]})}t=t.substring(n[0].length)}return s[e]=o}n.sprintf=i,n.vsprintf=a,"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(o=function(){return{sprintf:i,vsprintf:a}}.call(n,t,n,e))||(e.exports=o))}()},function(e,n,t){var o=t(8);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&&o(e,n)},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,n,t){var o=t(0).default,r=t(9);e.exports=function(e,n){if(n&&("object"===o(n)||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return r(e)},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,n){e.exports=function(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,n){function t(n,o){return e.exports=t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,o)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},function(e,n){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},function(e,n,t){"use strict";t.r(n),t.d(n,"WebSocketManager",(function(){return Ne}));var o=t(0),r=t.n(o),i=t(4),a="NULL",c="CLIENT_LOGGER",s="DEBUG",u="AMZ_WEB_SOCKET_MANAGER:",l="Network offline",d="Network online, connecting to WebSocket server",p="Network offline, ignoring this getWebSocketConnConfig request",f="Heartbeat response not received",g="aws/ping deep heartbeat response not received",b="Heartbeat response received",v="aws/ping deep heartbeat received",y="Sending heartbeat",m="Sending aws/ping deep heartbeat",h="Failed to send heartbeat since WebSocket is not open",S="Failed to send aws/ping deep heartbeat since WebSocket is not open",k="Deep Heartbeat is successful. WebSocketManager has received 200 response from aws/ping",w="Deep Heartbeat failed. WebSocketManager does not receive 200 response from aws/ping",O="Generic topic failed.",C="WebSocket connection established!",L="WebSocket connection is closed",T="WebSocketManager Error, error_event: ",_="Scheduling WebSocket reinitialization, after delay ",x="WebSocket URL cannot be used to establish connection",W="WebSocket Initialization failed - Terminating and cleaning subscriptions",I="Terminating WebSocket Manager",N="Fetching new WebSocket connection configuration",F="Successfully fetched webSocket connection configuration",M="Failed to fetch webSocket connection configuration",E="Retrying fetching new WebSocket connection configuration",D="Initializing Websocket Manager",R="Initializing Websocket Manager Failure callback registered",A="Websocket connection open callback registered",j="Websocket connection close callback registered",H="Websocket connection gain callback registered",P="Websocket connection lost callback registered",G="Websocket subscription failure callback registered",z="Reset Websocket state",q="WebSocketManager Message Error",U="Message received for topic ",J="Invalid incoming message",B="WebsocketManager invoke callbacks for topic success ",V="aws/subscribe",X="aws/unsubscribe",$="aws/heartbeat",K="aws/ping",Z="connected",Q="disconnected",Y={assertTrue:function(e,n){if(!e)throw new Error(n)},assertNotNull:function(e,n){return Y.assertTrue(null!==e&&void 0!==r()(e),Object(i.sprintf)("%s must be provided",n||"A value")),e},isNonEmptyString:function(e){return"string"==typeof e&&e.length>0},assertIsList:function(e,n){if(!Array.isArray(e))throw new Error(n+" is not an array")},isFunction:function(e){return!!(e&&e.constructor&&e.call&&e.apply)},isObject:function(e){return!("object"!==r()(e)||null===e)},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e}},ee=new RegExp("^(wss://)\\w*"),ne=new RegExp("^(ws://127.0.0.1:)");Y.validWSUrl=function(e){return ee.test(e)||ne.test(e)},Y.getSubscriptionResponse=function(e,n,t){return{topic:e,content:{status:n?"success":"failure",topics:t}}},Y.assertIsObject=function(e,n){if(!Y.isObject(e))throw new Error(n+" is not an object!")},Y.addJitter=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;n=Math.min(n,1);var t=Math.random()>.5?1:-1;return Math.floor(e+t*e*Math.random()*n)},Y.isNetworkOnline=function(){return navigator.onLine},Y.isNetworkFailure=function(e){return!(!e._debug||!e._debug.type)&&"NetworkingError"===e._debug.type};var te=Y,oe=t(5),re=t.n(oe),ie=t(6),ae=t.n(ie),ce=t(3),se=t.n(ce),ue=t(7),le=t.n(ue),de=t(1),pe=t.n(de),fe=t(2),ge=t.n(fe);function be(e){var n=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 t,o=se()(e);if(n){var r=se()(this).constructor;t=Reflect.construct(o,arguments,r)}else t=o.apply(this,arguments);return ae()(this,t)}}function ve(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function ye(e){for(var n=1;n1&&void 0!==arguments[1]?arguments[1]:"";if(this.hasClientLogger()){var t="string"==typeof n?n:JSON.stringify(n,Le()),o="string"==typeof this.logMetaData?this.logMetaData:JSON.stringify(this.logMetaData,Le()),r="".concat(Ce(e)," ").concat(t," ").concat(o);switch(e){case Se.DEBUG:return this._clientLogger.debug(r)||r;case Se.INFO:return this._clientLogger.info(r)||r;case Se.WARN:return this._clientLogger.warn(r)||r;case Se.ERROR:return this._clientLogger.error(r)||r;case Se.ADVANCED_LOG:return this._advancedLogWriter?this._clientLogger[this._advancedLogWriter](r)||r:""}}}},{key:"isLevelEnabled",value:function(e){return e>=this._level}},{key:"hasClientLogger",value:function(){return null!==this._clientLogger}},{key:"getLogger",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.prefix||he;return e.logMetaData&&this.setLogMetaData(e.logMetaData),this.logMetaData||console.info("*********Missing required option: WebSocketManager:logMetaData**********"),new Oe(this,ye({prefix:n,logMetaData:this.logMetaData},e))}},{key:"setLogMetaData",value:function(e){this.logMetaData=e}},{key:"updateLoggerConfig",value:function(e){var n=e||{};this._level=n.level||Se.INFO,this._advancedLogWriter="warn",n.advancedLogWriter&&(this._advancedLogWriter=n.advancedLogWriter),n.customizedLogger&&"object"===r()(n.customizedLogger)&&(this.useClientLogger=!0),this._clientLogger=n.logger||this.selectLogger(n),this._logsDestination=a,n.debug&&(this._logsDestination=s),n.logger&&(this._logsDestination=c)}},{key:"selectLogger",value:function(e){return e.customizedLogger&&"object"===r()(e.customizedLogger)?e.customizedLogger:e.useDefaultLogger?Te():null}}]),e}(),we=function(){function e(){pe()(this,e)}return ge()(e,[{key:"debug",value:function(){}},{key:"info",value:function(){}},{key:"warn",value:function(){}},{key:"error",value:function(){}},{key:"advancedLog",value:function(){}}]),e}(),Oe=function(e){re()(t,e);var n=be(t);function t(e,o){var r;return pe()(this,t),(r=n.call(this)).options=o||{},r.prefix=o.prefix||he,r.logManager=e,r}return ge()(t,[{key:"debug",value:function(){for(var e=arguments.length,n=new Array(e),t=0;t1&&void 0!==arguments[1]?arguments[1]:2e3;pe()(this,e),this.numAttempts=0,this.executor=n,this.hasActiveReconnection=!1,this.defaultRetry=t}return ge()(e,[{key:"retry",value:function(){var e=this;this.hasActiveReconnection||(this.hasActiveReconnection=!0,setTimeout((function(){e._execute()}),this._getDelay()))}},{key:"_execute",value:function(){this.hasActiveReconnection=!1,this.executor(),this.numAttempts++}},{key:"connected",value:function(){this.numAttempts=0}},{key:"_getDelay",value:function(){var e=Math.pow(2,this.numAttempts)*this.defaultRetry;return e<=3e4?e:3e4}},{key:"getIsConnected",value:function(){return!this.numAttempts}}]),e}(),xe=null,We=function(){var e=!1,n=xe.getLogger({prefix:u}),t=te.isNetworkOnline(),o={primary:null,secondary:null},r={reconnectWebSocket:!0,websocketInitFailed:!1,exponentialBackOffTime:1e3,exponentialTimeoutHandle:null,lifeTimeTimeoutHandle:null,webSocketInitCheckerTimeoutId:null,connState:null},i={connectWebSocketRetryCount:0,connectionAttemptStartTime:null,noOpenConnectionsTimestamp:null},a={pendingResponse:!1,intervalHandle:null},c={pendingResponse:!1,intervalHandle:null},s={initFailure:new Set,getWebSocketTransport:null,subscriptionUpdate:new Set,subscriptionFailure:new Set,topic:new Map,allMessage:new Set,connectionGain:new Set,connectionLost:new Set,connectionOpen:new Set,connectionClose:new Set,deepHeartbeatSuccess:new Set,deepHeartbeatFailure:new Set,topicFailure:new Set},Y={connConfig:null,promiseHandle:null,promiseCompleted:!0},ee={subscribed:new Set,pending:new Set,subscriptionHistory:new Set},ne={responseCheckIntervalId:null,requestCompleted:!0,reSubscribeIntervalId:null,consecutiveFailedSubscribeAttempts:0,consecutiveNoResponseRequest:0},oe=new _e((function(){Ie()})),re=new Set([V,X,$,K]),ie=setInterval((function(){if(t!==te.isNetworkOnline()){if(!(t=te.isNetworkOnline()))return n.advancedLog(l),void Me(n.info(l));var e=pe();t&&(!e||ue(e,WebSocket.CLOSING)||ue(e,WebSocket.CLOSED))&&(n.advancedLog(d),Me(n.info(d)),Ie())}}),250),ae=function(e,t){e.forEach((function(e){try{e(t)}catch(e){Me(n.error("Error executing callback",e))}}))},ce=function(e){if(null===e)return"NULL";switch(e.readyState){case WebSocket.CONNECTING:return"CONNECTING";case WebSocket.OPEN:return"OPEN";case WebSocket.CLOSING:return"CLOSING";case WebSocket.CLOSED:return"CLOSED";default:return"UNDEFINED"}},se=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";Me(n.debug("["+e+"] Primary WebSocket: "+ce(o.primary)+" | Secondary WebSocket: "+ce(o.secondary)))},ue=function(e,n){return e&&e.readyState===n},le=function(e){return ue(e,WebSocket.OPEN)},de=function(e){return null===e||void 0===e.readyState||ue(e,WebSocket.CLOSED)},pe=function(){return null!==o.secondary?o.secondary:o.primary},fe=function(){return le(pe())},ge=function(){if(e&&c.pendingResponse&&(n.advancedLog(g),Me(n.warn(g)),ae(s.deepHeartbeatFailure,{timestamp:Date.now(),error:"aws/ping response is not received"}),clearInterval(c.intervalHandle),c.pendingResponse=!1),a.pendingResponse)return n.advancedLog(f),Me(n.warn(f)),clearInterval(a.intervalHandle),a.intervalHandle=null,a.pendingResponse=!1,void Ie();fe()?(e&&(Me(n.debug(m)),pe().send(Te(K)),c.pendingResponse=!0),Me(n.debug(y)),pe().send(Te($)),a.pendingResponse=!0):(e&&(n.advancedLog(S),Me(n.warn(S)),ae(s.deepHeartbeatFailure,{timestamp:Date.now(),error:"Unable to send message to aws/ping because websocket connection is not established."})),n.advancedLog(h),Me(n.warn(h)),se("sendHeartBeat"),Ie())},be=function(){n.advancedLog(z),r.exponentialBackOffTime=1e3,a.pendingResponse=!1,c.pendingResponse=!1,r.reconnectWebSocket=!0,clearTimeout(r.lifeTimeTimeoutHandle),clearInterval(a.intervalHandle),clearInterval(c.intervalHandle),clearTimeout(r.exponentialTimeoutHandle),clearTimeout(r.webSocketInitCheckerTimeoutId),a.intervalHandle=null},ve=function(){ne.consecutiveFailedSubscribeAttempts=0,ne.consecutiveNoResponseRequest=0,clearInterval(ne.responseCheckIntervalId),clearInterval(ne.reSubscribeIntervalId)},ye=function(){i.connectWebSocketRetryCount=0,i.connectionAttemptStartTime=null,i.noOpenConnectionsTimestamp=null},me=function(){oe.connected();try{n.advancedLog(C),Me(n.info(C)),se("webSocketOnOpen"),null!==r.connState&&r.connState!==Q||ae(s.connectionGain),r.connState=Z;var e=Date.now();ae(s.connectionOpen,{connectWebSocketRetryCount:i.connectWebSocketRetryCount,connectionAttemptStartTime:i.connectionAttemptStartTime,noOpenConnectionsTimestamp:i.noOpenConnectionsTimestamp,connectionEstablishedTime:e,timeToConnect:e-i.connectionAttemptStartTime,timeWithoutConnection:i.noOpenConnectionsTimestamp?e-i.noOpenConnectionsTimestamp:null}),ye(),be(),pe().openTimestamp=Date.now(),0===ee.subscribed.size&&le(o.secondary)&&we(o.primary,"[Primary WebSocket] Closing WebSocket"),(ee.subscribed.size>0||ee.pending.size>0)&&(le(o.secondary)&&Me(n.info("Subscribing secondary websocket to topics of primary websocket")),ee.subscribed.forEach((function(e){ee.subscriptionHistory.add(e),ee.pending.add(e)})),ee.subscribed.clear(),ke()),ge(),null!==a.intervalHandle&&clearInterval(a.intervalHandle),a.intervalHandle=setInterval(ge,1e4);var t=1e3*Y.connConfig.webSocketTransport.transportLifeTimeInSeconds;Me(n.debug("Scheduling WebSocket manager reconnection, after delay "+t+" ms")),r.lifeTimeTimeoutHandle=setTimeout((function(){Me(n.debug("Starting scheduled WebSocket manager reconnection")),Ie()}),t)}catch(e){Me(n.error("Error after establishing WebSocket connection",e))}},he=function(e){se("webSocketOnError"),n.advancedLog(T,JSON.stringify(e)),Me(n.error(T,JSON.stringify(e))),oe.getIsConnected()?Ie():oe.retry()},Se=function(e){var t=JSON.parse(e.data);switch(t.topic){case V:if(Me(n.debug("Subscription Message received from webSocket server",e.data)),ne.requestCompleted=!0,ne.consecutiveNoResponseRequest=0,"success"===t.content.status)ne.consecutiveFailedSubscribeAttempts=0,t.content.topics.forEach((function(e){ee.subscriptionHistory.delete(e),ee.pending.delete(e),ee.subscribed.add(e)})),0===ee.subscriptionHistory.size?le(o.secondary)&&(Me(n.info("Successfully subscribed secondary websocket to all topics of primary websocket")),we(o.primary,"[Primary WebSocket] Closing WebSocket")):ke(),ae(s.subscriptionUpdate,t);else{if(clearInterval(ne.reSubscribeIntervalId),++ne.consecutiveFailedSubscribeAttempts,5===ne.consecutiveFailedSubscribeAttempts)return ae(s.subscriptionFailure,t),void(ne.consecutiveFailedSubscribeAttempts=0);ne.reSubscribeIntervalId=setInterval((function(){ke()}),500)}break;case $:Me(n.debug(b)),a.pendingResponse=!1,null===a.intervalHandle&&(a.intervalHandle=setInterval(ge,1e4));break;case K:Me(n.debug(v)),c.pendingResponse=!1,200===t.statusCode?ae(s.deepHeartbeatSuccess,{timestamp:Date.now()}):ae(s.deepHeartbeatFailure,{timestamp:Date.now(),statusCode:t.statusCode,statusContent:t.statusContent});break;default:if(t.topic){if(n.advancedLog(U,t.topic),Me(n.debug(U+t.topic)),le(o.primary)&&le(o.secondary)&&0===ee.subscriptionHistory.size&&this===o.primary)return void Me(n.warn("Ignoring Message for Topic "+t.topic+", to avoid duplicates"));if(0===s.allMessage.size&&0===s.topic.size)return void Me(n.warn("No registered callback listener for Topic",t.topic));n.advancedLog(B,t.topic),ae(s.allMessage,t),s.topic.has(t.topic)&&ae(s.topic.get(t.topic),t)}else t.message?(n.advancedLog(q,t),Me(n.warn(q,t)),ae(s.topicFailure,{timestamp:Date.now(),errorMessage:t.message,connectionId:t.connectionId,requestId:t.requestId})):(n.advancedLog(J,t),Me(n.warn(J,t)))}},ke=function e(){if(ne.consecutiveNoResponseRequest>3)return Me(n.warn("Ignoring subscribePendingTopics since we have exhausted max subscription retries with no response")),void ae(s.subscriptionFailure,te.getSubscriptionResponse(V,!1,Array.from(ee.pending)));fe()?0!==Array.from(ee.pending).length&&(clearInterval(ne.responseCheckIntervalId),pe().send(Te(V,{topics:Array.from(ee.pending)})),ne.requestCompleted=!1,ne.responseCheckIntervalId=setInterval((function(){ne.requestCompleted||(++ne.consecutiveNoResponseRequest,e())}),1e3)):Me(n.warn("Ignoring subscribePendingTopics call since Default WebSocket is not open"))},we=function(e,t){ue(e,WebSocket.CONNECTING)||ue(e,WebSocket.OPEN)?e.close(1e3,t):Me(n.warn("Ignoring WebSocket Close request, WebSocket State: "+ce(e)))},Oe=function(e){we(o.primary,"[Primary] WebSocket "+e),we(o.secondary,"[Secondary] WebSocket "+e)},Ce=function(){i.connectWebSocketRetryCount++;var e=te.addJitter(r.exponentialBackOffTime,.3);Date.now()+e<=Y.connConfig.urlConnValidTime?(n.advancedLog(_),Me(n.debug(_+e+" ms")),r.exponentialTimeoutHandle=setTimeout((function(){return Ne()}),e),r.exponentialBackOffTime*=2):(n.advancedLog(x),Me(n.warn(x)),Ie())},Le=function(e){be(),ve(),n.advancedLog(W,e),Me(n.error(W)),r.websocketInitFailed=!0,Oe(I),clearInterval(ie),ae(s.initFailure,{connectWebSocketRetryCount:i.connectWebSocketRetryCount,connectionAttemptStartTime:i.connectionAttemptStartTime,reason:e}),ye()},Te=function(e,n){return JSON.stringify({topic:e,content:n})},We=function(e){return!!(te.isObject(e)&&te.isObject(e.webSocketTransport)&&te.isNonEmptyString(e.webSocketTransport.url)&&te.validWSUrl(e.webSocketTransport.url)&&1e3*e.webSocketTransport.transportLifeTimeInSeconds>=3e5)||(Me(n.error("Invalid WebSocket Connection Configuration",e)),!1)},Ie=function(){if(!te.isNetworkOnline())return n.advancedLog(p),void Me(n.info(p));if(r.websocketInitFailed)Me(n.debug("WebSocket Init had failed, ignoring this getWebSocketConnConfig request"));else{if(Y.promiseCompleted)return be(),n.advancedLog(N),Me(n.info(N)),i.connectionAttemptStartTime=i.connectionAttemptStartTime||Date.now(),Y.promiseCompleted=!1,Y.promiseHandle=s.getWebSocketTransport(),Y.promiseHandle.then((function(e){return Y.promiseCompleted=!0,n.advancedLog(F),Me(n.debug(F,e)),We(e)?(Y.connConfig=e,Y.connConfig.urlConnValidTime=Date.now()+85e3,Ne()):(Le("Invalid WebSocket connection configuration: "+e),{webSocketConnectionFailed:!0})}),(function(e){return Y.promiseCompleted=!0,n.advancedLog(M),Me(n.error(M,e)),te.isNetworkFailure(e)?(n.advancedLog(E+JSON.stringify(e)),Me(n.info(E+JSON.stringify(e))),oe.retry()):Le("Failed to fetch webSocket connection configuration: "+JSON.stringify(e)),{webSocketConnectionFailed:!0}}));Me(n.debug("There is an ongoing getWebSocketConnConfig request, this request will be ignored"))}},Ne=function(){if(r.websocketInitFailed)return Me(n.info("web-socket initializing had failed, aborting re-init")),{webSocketConnectionFailed:!0};if(!te.isNetworkOnline())return Me(n.warn("System is offline aborting web-socket init")),{webSocketConnectionFailed:!0};n.advancedLog(D),Me(n.info(D)),se("initWebSocket");try{if(We(Y.connConfig)){var e=null;return le(o.primary)?(Me(n.debug("Primary Socket connection is already open")),ue(o.secondary,WebSocket.CONNECTING)||(Me(n.debug("Establishing a secondary web-socket connection")),oe.numAttempts=0,o.secondary=Fe()),e=o.secondary):(ue(o.primary,WebSocket.CONNECTING)||(Me(n.debug("Establishing a primary web-socket connection")),o.primary=Fe()),e=o.primary),r.webSocketInitCheckerTimeoutId=setTimeout((function(){le(e)||Ce()}),1e3),{webSocketConnectionFailed:!1}}}catch(e){return Me(n.error("Error Initializing web-socket-manager",e)),Le("Failed to initialize new WebSocket: "+e.message),{webSocketConnectionFailed:!0}}},Fe=function(){var e=new WebSocket(Y.connConfig.webSocketTransport.url);return e.addEventListener("open",me),e.addEventListener("message",Se),e.addEventListener("error",he),e.addEventListener("close",(function(t){return function(e,t){n.advancedLog(L,JSON.stringify(e)),Me(n.info(L,JSON.stringify(e))),se("webSocketOnClose before-cleanup"),ae(s.connectionClose,{openTimestamp:t.openTimestamp,closeTimestamp:Date.now(),connectionDuration:Date.now()-t.openTimestamp,code:e.code,reason:e.reason}),de(o.primary)&&(o.primary=null),de(o.secondary)&&(o.secondary=null),r.reconnectWebSocket&&(le(o.primary)||le(o.secondary)?de(o.primary)&&le(o.secondary)&&(Me(n.info("[Primary] WebSocket Cleanly Closed")),o.primary=o.secondary,o.secondary=null):(Me(n.warn("Neither primary websocket and nor secondary websocket have open connections, attempting to re-establish connection")),r.connState===Q?Me(n.info("Ignoring connectionLost callback invocation")):(ae(s.connectionLost,{openTimestamp:t.openTimestamp,closeTimestamp:Date.now(),connectionDuration:Date.now()-t.openTimestamp,code:e.code,reason:e.reason}),i.noOpenConnectionsTimestamp=Date.now()),r.connState=Q,Ie()),se("webSocketOnClose after-cleanup"))}(t,e)})),e},Me=function(e){return e&&"function"==typeof e.sendInternalLogToServer&&e.sendInternalLogToServer(),e};this.init=function(e){if(te.assertTrue(te.isFunction(e),"transportHandle must be a function"),null===s.getWebSocketTransport)return s.getWebSocketTransport=e,Ie();Me(n.warn("Web Socket Manager was already initialized"))},this.onInitFailure=function(e){return n.advancedLog(R),te.assertTrue(te.isFunction(e),"cb must be a function"),s.initFailure.add(e),r.websocketInitFailed&&e(),function(){return s.initFailure.delete(e)}},this.onConnectionOpen=function(e){return n.advancedLog(A),te.assertTrue(te.isFunction(e),"cb must be a function"),s.connectionOpen.add(e),function(){return s.connectionOpen.delete(e)}},this.onConnectionClose=function(e){return n.advancedLog(j),te.assertTrue(te.isFunction(e),"cb must be a function"),s.connectionClose.add(e),function(){return s.connectionClose.delete(e)}},this.onConnectionGain=function(e){return n.advancedLog(H),te.assertTrue(te.isFunction(e),"cb must be a function"),s.connectionGain.add(e),fe()&&e(),function(){return s.connectionGain.delete(e)}},this.onConnectionLost=function(e){return n.advancedLog(P),te.assertTrue(te.isFunction(e),"cb must be a function"),s.connectionLost.add(e),r.connState===Q&&e(),function(){return s.connectionLost.delete(e)}},this.onSubscriptionUpdate=function(e){return te.assertTrue(te.isFunction(e),"cb must be a function"),s.subscriptionUpdate.add(e),function(){return s.subscriptionUpdate.delete(e)}},this.onSubscriptionFailure=function(e){return n.advancedLog(G),te.assertTrue(te.isFunction(e),"cb must be a function"),s.subscriptionFailure.add(e),function(){return s.subscriptionFailure.delete(e)}},this.onMessage=function(e,n){return te.assertNotNull(e,"topicName"),te.assertTrue(te.isFunction(n),"cb must be a function"),s.topic.has(e)?s.topic.get(e).add(n):s.topic.set(e,new Set([n])),function(){return s.topic.get(e).delete(n)}},this.onAllMessage=function(e){return te.assertTrue(te.isFunction(e),"cb must be a function"),s.allMessage.add(e),function(){return s.allMessage.delete(e)}},this.subscribeTopics=function(e){te.assertNotNull(e,"topics"),te.assertIsList(e),e.forEach((function(e){ee.subscribed.has(e)||ee.pending.add(e)})),ne.consecutiveNoResponseRequest=0,ke()},this.sendMessage=function(e){if(te.assertIsObject(e,"payload"),void 0===e.topic||re.has(e.topic))Me(n.warn("Cannot send message, Invalid topic",e));else{try{e=JSON.stringify(e)}catch(t){return void Me(n.warn("Error stringify message",e))}fe()?pe().send(e):Me(n.warn("Cannot send message, web socket connection is not open"))}},this.deepHeartbeatHandler=function(){e=!0},this.onDeepHeartbeatSuccess=function(e){return n.advancedLog(k),te.assertTrue(te.isFunction(e),"cb must be a function"),s.deepHeartbeatSuccess.add(e),function(){return s.deepHeartbeatSuccess.delete(e)}},this.onDeepHeartbeatFailure=function(e){return n.advancedLog(w),te.assertTrue(te.isFunction(e),"cb must be a function"),s.deepHeartbeatFailure.add(e),function(){return s.deepHeartbeatFailure.delete(e)}},this.onTopicFailure=function(e){return n.advancedLog(O),te.assertTrue(te.isFunction(e),"cb must be a function"),s.topicFailure.add(e),function(){return s.topicFailure.delete(e)}},this.closeWebSocket=function(){be(),ve(),r.reconnectWebSocket=!1,clearInterval(ie),Oe("User request to close WebSocket")},this.terminateWebSocketManager=Le},Ie={create:function(e){return xe||(xe=new ke(e)),xe.hasLogMetaData()||xe.setLogMetaData(e),e||console.info("********Missing metaData for logs from websocketManager: initialize websocketManager using create(metaData)*******"),new We},setGlobalConfig:function(e){var n=e&&e.loggerConfig;xe||(xe=new ke),xe.updateLoggerConfig(n);var t=e&&e.webSocketManagerConfig,o=t&&t.isNetworkOnline;o&&"function"==typeof o&&(te.isNetworkOnline=o)},LogLevel:Se,Logger:me};global.connect=global.connect||{},connect.WebSocketManager=Ie;var Ne=Ie;n.default=Ne}]); //# sourceMappingURL=amazon-connect-websocket-manager.js.map const WebSocketManager = connect.WebSocketManager; diff --git a/src/lib/amazon-connect-websocket-manager.js.map b/src/lib/amazon-connect-websocket-manager.js.map index 9ced3ba..29cca8d 100644 --- a/src/lib/amazon-connect-websocket-manager.js.map +++ b/src/lib/amazon-connect-websocket-manager.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/sprintf-js/src/sprintf.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./src/constants.js","webpack:///./src/utils.js","webpack:///./src/log.js","webpack:///./src/retryProvider.js","webpack:///./src/webSocketManager.js","webpack:///./src/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","obj","iterator","constructor","instance","Constructor","TypeError","_defineProperties","target","props","length","descriptor","configurable","writable","protoProps","staticProps","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","re","not_string","not_bool","not_type","not_primitive","number","numeric_arg","json","not_json","text","modulo","placeholder","key_access","index_access","sign","sprintf","sprintf_format","sprintf_parse","arguments","vsprintf","fmt","argv","apply","concat","parse_tree","arg","k","ph","pad","pad_character","pad_length","is_positive","cursor","tree_length","output","keys","undefined","Error","param_no","test","type","Function","isNaN","parseInt","toString","String","fromCharCode","JSON","stringify","width","precision","parseFloat","toExponential","toFixed","Number","toPrecision","substring","slice","toLowerCase","valueOf","toUpperCase","replace","pad_char","charAt","repeat","align","sprintf_cache","match","_fmt","arg_names","exec","push","SyntaxError","field_list","replacement_field","field_match","window","subClass","superClass","assertThisInitialized","self","_setPrototypeOf","ReferenceError","LOGS_DESTINATION","LOG_MESSAGES","ROUTE_KEY","CONN_STATE","Utils","premise","message","assertTrue","Array","isArray","wsRegex","RegExp","localWsRegex","validWSUrl","wsUrl","getSubscriptionResponse","routeKey","isSuccess","topicList","topic","content","status","topics","assertIsObject","isObject","addJitter","base","maxJitter","Math","min","random","floor","isNetworkOnline","navigator","onLine","isNetworkFailure","reason","_debug","Logger","data","DEFAULT_PREFIX","LogLevel","DEBUG","INFO","WARN","ERROR","ADVANCED_LOG","LogManagerImpl","logMetaData","this","updateLoggerConfig","level","logStatement","hasClientLogger","log1","removeCircularReference","log2","logStringValue","getLogLevelByValue","_clientLogger","debug","info","warn","error","_advancedLogWriter","_level","options","prefix","setLogMetaData","console","LoggerWrapperImpl","inputConfig","config","advancedLogWriter","customizedLogger","useClientLogger","logger","selectLogger","_logsDestination","useDefaultLogger","createConsoleLogger","LoggerWrapper","logManagerInstance","logManager","args","_log","isLevelEnabled","writeToClientLogger","_shouldLog","_convertToSingleStatement","_writeToClientLogger","date","Date","now","toISOString","index","_convertToString","isString","isFunction","toStringResult","seen","WeakSet","has","add","RetryProvider","executor","defaultRetry","numAttempts","hasActiveReconnection","setTimeout","_execute","_getDelay","calculatedDelay","pow","WebSocketManager","enableDeepHeartbeat","getLogger","online","webSocket","primary","secondary","reconnectConfig","reconnectWebSocket","websocketInitFailed","exponentialBackOffTime","exponentialTimeoutHandle","lifeTimeTimeoutHandle","webSocketInitCheckerTimeoutId","connState","metrics","connectWebSocketRetryCount","connectionAttemptStartTime","noOpenConnectionsTimestamp","heartbeatConfig","pendingResponse","intervalHandle","deepHeartbeatConfig","callbacks","initFailure","Set","getWebSocketTransport","subscriptionUpdate","subscriptionFailure","Map","allMessage","connectionGain","connectionLost","connectionOpen","connectionClose","deepHeartbeatSuccess","deepHeartbeatFailure","topicFailure","webSocketConfig","connConfig","promiseHandle","promiseCompleted","topicSubscription","subscribed","pending","subscriptionHistory","topicSubscriptionConfig","responseCheckIntervalId","requestCompleted","reSubscribeIntervalId","consecutiveFailedSubscribeAttempts","consecutiveNoResponseRequest","reconnectionClient","getWebSocketConnConfig","invalidSendMessageRouteKeys","networkConnectivityChecker","setInterval","advancedLog","sendInternalLogToServer","ws","getDefaultWebSocket","isWebSocketState","WebSocket","CLOSING","CLOSED","invokeCallbacks","response","forEach","callback","getWebSocketStates","readyState","CONNECTING","OPEN","printWebSocketState","event","webSocketStateCode","isWebSocketOpen","isWebSocketClosed","isDefaultWebSocketOpen","sendHeartBeat","timestamp","clearInterval","send","createWebSocketPayload","resetWebSocketState","clearTimeout","resetSubscriptions","resetMetrics","webSocketOnOpen","connected","connectionEstablishedTime","timeToConnect","timeWithoutConnection","openTimestamp","size","closeSpecificWebSocket","clear","subscribePendingTopics","webSocketLifetimeTimeout","webSocketTransport","transportLifeTimeInSeconds","webSocketOnError","getIsConnected","retry","webSocketOnMessage","parse","topicName","statusCode","statusContent","errorMessage","connectionId","requestId","from","close","closeWebSocket","retryWebSocketInitialization","waitTime","urlConnValidTime","initWebSocket","terminateWebSocketManager","validWebSocketConnConfig","isNonEmptyString","url","then","webSocketConnectionFailed","getNewWebSocket","addEventListener","closeTimestamp","connectionDuration","code","webSocketOnClose","logEntry","init","transportHandle","onInitFailure","cb","onConnectionOpen","onConnectionClose","onConnectionGain","onConnectionLost","onSubscriptionUpdate","onSubscriptionFailure","onMessage","assertNotNull","set","onAllMessage","subscribeTopics","assertIsList","sendMessage","payload","deepHeartbeatHandler","onDeepHeartbeatSuccess","onDeepHeartbeatFailure","onTopicFailure","WebSocketManagerObject","hasLogMetaData","setGlobalConfig","loggerConfig","global","connect"],"mappings":"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","file":"amazon-connect-websocket-manager.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 10);\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/* global window, exports, define */\n\n!function() {\n 'use strict'\n\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n }\n\n function sprintf(key) {\n // `arguments` is not an array, but should be fine for this call\n return sprintf_format(sprintf_parse(key), arguments)\n }\n\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []))\n }\n\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === 'string') {\n output += parse_tree[i]\n }\n else if (typeof parse_tree[i] === 'object') {\n ph = parse_tree[i] // convenience purposes only\n if (ph.keys) { // keyword argument\n arg = argv[cursor]\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == undefined) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n }\n arg = arg[ph.keys[k]]\n }\n }\n else if (ph.param_no) { // positional argument (explicit)\n arg = argv[ph.param_no]\n }\n else { // positional argument (implicit)\n arg = argv[cursor++]\n }\n\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg()\n }\n\n if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n }\n\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt]\n }\n\n var _fmt = fmt, match, parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0])\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n )\n }\n else {\n throw new SyntaxError('[sprintf] unexpected placeholder')\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return sprintf_cache[fmt] = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports['sprintf'] = sprintf\n exports['vsprintf'] = vsprintf\n }\n if (typeof window !== 'undefined') {\n window['sprintf'] = sprintf\n window['vsprintf'] = vsprintf\n\n if (typeof define === 'function' && define['amd']) {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\nexport const LOGS_DESTINATION = {\n NULL: \"NULL\",\n CLIENT_LOGGER: \"CLIENT_LOGGER\",\n DEBUG: \"DEBUG\"\n};\n\nexport const MIN_WEBSOCKET_LIFETIME_MS = 300000;\nexport const HEARTBEAT_INTERVAL_MS = 10000;\nexport const WEBSOCKET_URL_VALID_TIME_MS = 85000;\nexport const TOPIC_SUBSCRIPTION_RETRY_INTERVAL_MS = 500;\nexport const MAX_CONSECUTIVE_FAILED_SUB_ATTEMPTS = 5;\nexport const MAX_WAIT_TIME_SUB_REQUEST_WITH_NO_RESPONSE_MS = 1000;\nexport const MAX_CONSECUTIVE_SUB_REQUEST_WITH_NO_RESPONSE = 3;\nexport const NETWORK_CONN_CHECK_INTERVAL_MS = 250;\nexport const WEBSOCKET_REINIT_JITTER = 0.3;\nexport const WEBSOCKET_RETRY_RATE_MS = 2000;\nexport const MAX_WEBSOCKET_RETRY_RATE_MS = 30000;\n\nexport const NETWORK_FAILURE = 'NetworkingError';\n\nexport const LOG_MESSAGES = {\n DEFAULT_PREFIX: \"AMZ_WEB_SOCKET_MANAGER:\",\n NETWORK_OFFLINE: \"Network offline\",\n NETWORK_ONLINE: \"Network online, connecting to WebSocket server\",\n NETWORK_OFFLINE_WARNING: \"Network offline, ignoring this getWebSocketConnConfig request\",\n NO_HEARTBEAT: \"Heartbeat response not received\",\n NO_DEEP_HEARTBEAT: \"aws/ping deep heartbeat response not received\",\n HEARTBEAT_RECEIVED: \"Heartbeat response received\",\n DEEP_HEARTBEAT_RECEIVED: \"aws/ping deep heartbeat received\",\n SENDING_HEARTBEAT: \"Sending heartbeat\",\n SENDING_DEEP_HEARTBEAT: \"Sending aws/ping deep heartbeat\",\n FAILED_HEARTBEAT: \"Failed to send heartbeat since WebSocket is not open\",\n FAILED_DEEP_HEARTBEAT: \"Failed to send aws/ping deep heartbeat since WebSocket is not open\",\n DEEP_HEARTBEAT_SUCCESS: \"Deep Heartbeat is successful. WebSocketManager has received 200 response from aws/ping\",\n DEEP_HEARTBEAT_FAILURE: \"Deep Heartbeat failed. WebSocketManager does not receive 200 response from aws/ping\",\n TOPIC_FAILURE: \"Generic topic failed.\",\n WEBSOCKET_CONNECTION_ESTABLISHED: \"WebSocket connection established!\",\n WEBSOCKET_CONNECTION_CLOSED: \"WebSocket connection is closed\",\n WEBSOCKET_CONNECTION_ERROR: \"WebSocketManager Error, error_event: \",\n WEBSOCKET_REINITIALIZATION: \"Scheduling WebSocket reinitialization, after delay \",\n WEBSOCKET_REINITIALIZATION_TIMEOUT: \"WebSocket URL cannot be used to establish connection\",\n WEBSOCKET_INITIALIZATION_FAILED: \"WebSocket Initialization failed - Terminating and cleaning subscriptions\",\n WEBSOCKET_TERMINATED: \"Terminating WebSocket Manager\",\n WEBSOCKET_NEW_CONNECTION: \"Fetching new WebSocket connection configuration\",\n WEBSOCKET_CONNECTION_SUCCESS: \"Successfully fetched webSocket connection configuration\",\n WEBSOCKET_CONNECTION_FAILURE: \"Failed to fetch webSocket connection configuration\",\n WEBSOCKET_CONNECTION_RETRY: \"Retrying fetching new WebSocket connection configuration\",\n WEBSOCKET_INIT: \"Initializing Websocket Manager\",\n WEBSOCKET_INIT_FAILURE: \"Initializing Websocket Manager Failure callback registered\",\n WEBSOCKET_CONNECTION_OPEN: \"Websocket connection open callback registered\",\n WEBSOCKET_CONNECTION_CLOSE: \"Websocket connection close callback registered\",\n WEBSOCKET_CONNECTION_GAIN: \"Websocket connection gain callback registered\",\n WEBSOCKET_CONNECTION_LOST: \"Websocket connection lost callback registered\",\n WEBSOCKET_SUBSCRIPTION_FAILURE: \"Websocket subscription failure callback registered\",\n WEBSOCKET_RESET: \"Reset Websocket state\",\n WEBSOCKET_MESSAGE_ERROR: \"WebSocketManager Message Error\",\n WEBSOCKET_MESSAGE_RECEIVED: \"Message received for topic \",\n WEBSOCKET_MESSAGE_INVALID: \"Invalid incoming message\",\n WEBSOCKET_MESSAGE_SUCCESS: \"WebsocketManager invoke callbacks for topic success \",\n};\n\nexport const ROUTE_KEY = {\n SUBSCRIBE: \"aws/subscribe\",\n UNSUBSCRIBE: \"aws/unsubscribe\",\n HEARTBEAT: \"aws/heartbeat\",\n DEEP_HEARTBEAT: \"aws/ping\"\n};\n\nexport const CONN_STATE = {\n CONNECTED: \"connected\",\n DISCONNECTED: \"disconnected\"\n};\n","import { sprintf } from \"sprintf-js\";\nimport { NETWORK_FAILURE } from './constants';\n\nconst Utils = {};\n\n/**\n * Asserts that a premise is true.\n */\nUtils.assertTrue = function(premise, message) {\n if (!premise) {\n throw new Error(message);\n }\n};\n\n/**\n * Asserts that a value is not null or undefined.\n */\nUtils.assertNotNull = function(value, name) {\n Utils.assertTrue(\n value !== null && typeof value !== undefined,\n sprintf(\"%s must be provided\", name || \"A value\")\n );\n return value;\n};\n\nUtils.isNonEmptyString = function(value) {\n return typeof value === \"string\" && value.length > 0;\n};\n\nUtils.assertIsList = function(value, key) {\n if (!Array.isArray(value)) {\n throw new Error(key + \" is not an array\");\n }\n};\n\n/**\n * Determine if the given value is a callable function type.\n * Borrowed from Underscore.js.\n */\nUtils.isFunction = function(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n};\n\nUtils.isObject = function(value) {\n return !(typeof value !== \"object\" || value === null);\n};\n\nUtils.isString = function(value) {\n return typeof value === \"string\";\n};\n\nUtils.isNumber = function(value) {\n return typeof value === \"number\";\n};\n\nconst wsRegex = new RegExp(\"^(wss://)\\\\w*\");\nconst localWsRegex = new RegExp(\"^(ws://127.0.0.1:)\");\nUtils.validWSUrl = function (wsUrl) {\n return wsRegex.test(wsUrl) || localWsRegex.test(wsUrl);\n};\n\nUtils.getSubscriptionResponse = (routeKey, isSuccess, topicList) => {\n return {\n topic: routeKey,\n content : {\n status: isSuccess ? \"success\" : \"failure\",\n topics: topicList\n }\n };\n};\n\nUtils.assertIsObject = function(value, key) {\n if (!Utils.isObject(value)) {\n throw new Error(key + \" is not an object!\");\n }\n};\n\nUtils.addJitter = function (base, maxJitter = 1) {\n maxJitter = Math.min(maxJitter, 1.0);\n const sign = Math.random() > 0.5 ? 1 : -1;\n return Math.floor(base + sign * base * Math.random() * maxJitter);\n};\n\nUtils.isNetworkOnline = () => navigator.onLine;\n\nUtils.isNetworkFailure = (reason) => {\n if(reason._debug && reason._debug.type) {\n return reason._debug.type === NETWORK_FAILURE;\n }\n return false;\n};\n\nexport default Utils;\n","import Utils from \"./utils\";\nimport { LOGS_DESTINATION, LOG_MESSAGES } from \"./constants\";\n\n/*eslint-disable no-unused-vars*/\nclass Logger {\n debug(data) {}\n\n info(data) {}\n\n warn(data) {}\n\n error(data) {}\n\n advancedLog(data) {}\n}\n/*eslint-enable no-unused-vars*/\n\nconst DEFAULT_PREFIX = LOG_MESSAGES.DEFAULT_PREFIX;\nconst LogLevel = {\n DEBUG: 10,\n INFO: 20,\n WARN: 30,\n ERROR: 40,\n ADVANCED_LOG: 50,\n};\n\nclass LogManagerImpl {\n constructor(logMetaData) {\n this.logMetaData = logMetaData || '';\n this.updateLoggerConfig();\n }\n\n hasLogMetaData() {\n return !!this.logMetaData;\n }\n\n writeToClientLogger(level, logStatement = '') {\n if (!this.hasClientLogger()) {\n return;\n }\n const log1 = typeof logStatement === \"string\" ? logStatement : JSON.stringify(logStatement, removeCircularReference());\n const log2 = typeof this.logMetaData === \"string\" ? this.logMetaData : JSON.stringify(this.logMetaData, removeCircularReference());\n const logStringValue = `${getLogLevelByValue(level)} ${log1} ${log2}`;\n switch (level) {\n case LogLevel.DEBUG:\n return this._clientLogger.debug(logStringValue) || logStringValue;\n case LogLevel.INFO:\n return this._clientLogger.info(logStringValue) || logStringValue;\n case LogLevel.WARN:\n return this._clientLogger.warn(logStringValue) || logStringValue;\n case LogLevel.ERROR:\n return this._clientLogger.error(logStringValue) || logStringValue;\n case LogLevel.ADVANCED_LOG:\n if(!this._advancedLogWriter) return '';\n return this._clientLogger[this._advancedLogWriter](logStringValue) || logStringValue;\n }\n }\n\n isLevelEnabled(level) {\n return level >= this._level;\n }\n\n hasClientLogger() {\n return this._clientLogger !== null;\n }\n\n getLogger(options = {}) {\n var prefix = options.prefix || DEFAULT_PREFIX;\n if (options.logMetaData) {\n this.setLogMetaData(options.logMetaData);\n }\n if (!this.logMetaData) {\n console.info(\"*********Missing required option: WebSocketManager:logMetaData**********\");\n }\n return new LoggerWrapperImpl(this, { prefix, logMetaData: this.logMetaData, ...options });\n }\n\n setLogMetaData(logMetaData) {\n this.logMetaData = logMetaData;\n }\n\n updateLoggerConfig(inputConfig) {\n var config = inputConfig || {};\n this._level = config.level || LogLevel.INFO;\n //enabled advancedLogWriter\n this._advancedLogWriter = \"warn\";\n if (config.advancedLogWriter) {\n this._advancedLogWriter = config.advancedLogWriter;\n }\n\n if(config.customizedLogger && typeof config.customizedLogger === \"object\") {\n this.useClientLogger = true;\n }\n this._clientLogger = config.logger || this.selectLogger(config);\n\n this._logsDestination = LOGS_DESTINATION.NULL;\n if (config.debug) {\n this._logsDestination = LOGS_DESTINATION.DEBUG;\n }\n if (config.logger) {\n this._logsDestination = LOGS_DESTINATION.CLIENT_LOGGER;\n }\n }\n\n selectLogger(config) {\n if(config.customizedLogger && typeof config.customizedLogger === \"object\") {\n return config.customizedLogger;\n }\n if(config.useDefaultLogger) {\n return createConsoleLogger();\n }\n return null;\n }\n}\n\nclass LoggerWrapper {\n debug() {}\n\n info() {}\n\n warn() {}\n\n error() {}\n\n advancedLog() {}\n}\n\nclass LoggerWrapperImpl extends LoggerWrapper {\n constructor(logManagerInstance, options) {\n super();\n this.options = options || {};\n this.prefix = options.prefix || DEFAULT_PREFIX;\n this.logManager = logManagerInstance;\n }\n\n debug(...args) {\n return this._log(LogLevel.DEBUG, args);\n }\n\n info(...args) {\n return this._log(LogLevel.INFO, args);\n }\n\n warn(...args) {\n return this._log(LogLevel.WARN, args);\n }\n\n error(...args) {\n return this._log(LogLevel.ERROR, args);\n }\n\n advancedLog(...args) {\n return this._log(LogLevel.ADVANCED_LOG, args);\n }\n\n _shouldLog(level) {\n return this.logManager.hasClientLogger() && this.logManager.isLevelEnabled(level);\n }\n\n _writeToClientLogger(level, logStatement) {\n return this.logManager.writeToClientLogger(level, logStatement);\n }\n\n _log(level, args) {\n if (this._shouldLog(level)) {\n var logStatement = this.logManager.useClientLogger ? args : this._convertToSingleStatement(args);\n return this._writeToClientLogger(level, logStatement);\n }\n }\n\n _convertToSingleStatement(args) {\n var date = new Date(Date.now()).toISOString();\n var logStatement = `[${date}]`;\n if (this.prefix) {\n logStatement += this.prefix + \" \";\n }\n if (this.options) {\n this.options.prefix ? logStatement += \" \" + this.options.prefix + \":\" : logStatement += \"\";\n }\n for (var index = 0; index < args.length; index++) {\n var arg = args[index];\n logStatement += this._convertToString(arg) + \" \";\n }\n return logStatement;\n }\n\n _convertToString(arg) {\n try {\n if (!arg) {\n return \"\";\n }\n if (Utils.isString(arg)) {\n return arg;\n }\n if (Utils.isObject(arg) && Utils.isFunction(arg.toString)) {\n var toStringResult = arg.toString();\n if (toStringResult !== \"[object Object]\") {\n return toStringResult;\n }\n }\n return JSON.stringify(arg);\n } catch (error) {\n console.error(\"Error while converting argument to string\", arg, error);\n return \"\";\n }\n }\n}\n\nfunction getLogLevelByValue(value) {\n switch(value) {\n case 10: return \"DEBUG\";\n case 20: return \"INFO\";\n case 30: return \"WARN\";\n case 40: return \"ERROR\";\n case 50: return \"ADVANCED_LOG\";\n }\n}\n\nfunction removeCircularReference() {\n const seen = new WeakSet();\n\n return (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n }\n return value;\n };\n}\n\nvar createConsoleLogger = () => {\n var logger = new LoggerWrapper();\n logger.debug = (...args) => console.debug.apply(window.console, [].concat(args));\n logger.info = (...args) => console.info.apply(window.console, [].concat(args));\n logger.warn = (...args) => console.warn.apply(window.console, [].concat(args));\n logger.error = (...args) => console.error.apply(window.console, [].concat(args));\n return logger;\n};\n\nexport { LogManagerImpl, Logger, LogLevel };\n","import { WEBSOCKET_RETRY_RATE_MS, MAX_WEBSOCKET_RETRY_RATE_MS } from './constants';\n\nclass RetryProvider {\n constructor(executor, defaultRetry = WEBSOCKET_RETRY_RATE_MS) {\n this.numAttempts = 0;\n this.executor = executor;\n this.hasActiveReconnection = false;\n this.defaultRetry = defaultRetry;\n }\n\n retry() {\n // Don't kickoff another reconnection attempt if we have one pending\n if (!this.hasActiveReconnection) {\n this.hasActiveReconnection = true;\n setTimeout(() => {\n this._execute();\n }, this._getDelay());\n }\n }\n\n _execute() {\n this.hasActiveReconnection = false;\n this.executor();\n this.numAttempts++;\n }\n\n connected() {\n this.numAttempts = 0;\n }\n\n _getDelay() {\n const calculatedDelay = Math.pow(2, this.numAttempts) * this.defaultRetry;\n return calculatedDelay <= MAX_WEBSOCKET_RETRY_RATE_MS ? calculatedDelay : MAX_WEBSOCKET_RETRY_RATE_MS;\n }\n\n getIsConnected() {\n return !this.numAttempts;\n }\n}\n\nexport { RetryProvider };","import Utils from \"./utils\";\nimport { LogManagerImpl, LogLevel, Logger } from \"./log\";\nimport {\n MIN_WEBSOCKET_LIFETIME_MS,\n WEBSOCKET_URL_VALID_TIME_MS,\n HEARTBEAT_INTERVAL_MS,\n ROUTE_KEY,\n CONN_STATE,\n MAX_CONSECUTIVE_FAILED_SUB_ATTEMPTS,\n TOPIC_SUBSCRIPTION_RETRY_INTERVAL_MS,\n MAX_WAIT_TIME_SUB_REQUEST_WITH_NO_RESPONSE_MS,\n MAX_CONSECUTIVE_SUB_REQUEST_WITH_NO_RESPONSE,\n NETWORK_CONN_CHECK_INTERVAL_MS,\n WEBSOCKET_REINIT_JITTER,\n LOG_MESSAGES,\n} from \"./constants\";\nimport { RetryProvider } from './retryProvider';\n\nlet logManagerInstance = null;\nconst WebSocketManager = function () {\n let enableDeepHeartbeat = false;\n\n const logger = logManagerInstance.getLogger({ prefix: LOG_MESSAGES.DEFAULT_PREFIX });\n\n let online = Utils.isNetworkOnline();\n\n let webSocket = {\n primary: null,\n secondary: null\n };\n\n let reconnectConfig = {\n reconnectWebSocket: true,\n websocketInitFailed: false,\n exponentialBackOffTime: 1000,\n exponentialTimeoutHandle: null,\n lifeTimeTimeoutHandle: null,\n webSocketInitCheckerTimeoutId: null,\n connState: null\n };\n\n let metrics = {\n connectWebSocketRetryCount: 0,\n connectionAttemptStartTime: null,\n noOpenConnectionsTimestamp: null\n };\n\n let heartbeatConfig = {\n pendingResponse: false,\n intervalHandle: null\n };\n\n let deepHeartbeatConfig = {\n pendingResponse: false,\n intervalHandle: null\n };\n\n let callbacks = {\n initFailure: new Set(),\n getWebSocketTransport: null,\n subscriptionUpdate: new Set(),\n subscriptionFailure: new Set(),\n topic: new Map(),\n allMessage: new Set(),\n connectionGain: new Set(),\n connectionLost: new Set(),\n connectionOpen: new Set(),\n connectionClose: new Set(),\n deepHeartbeatSuccess: new Set(),\n deepHeartbeatFailure: new Set(),\n topicFailure: new Set(),\n };\n\n let webSocketConfig = {\n connConfig: null,\n promiseHandle: null,\n promiseCompleted: true\n };\n\n let topicSubscription = {\n subscribed: new Set(),\n pending: new Set(),\n subscriptionHistory: new Set()\n };\n\n let topicSubscriptionConfig = {\n responseCheckIntervalId: null,\n requestCompleted: true,\n reSubscribeIntervalId: null,\n consecutiveFailedSubscribeAttempts: 0,\n consecutiveNoResponseRequest: 0\n };\n\n const reconnectionClient = new RetryProvider(() => { getWebSocketConnConfig(); });\n\n const invalidSendMessageRouteKeys = new Set([ROUTE_KEY.SUBSCRIBE, ROUTE_KEY.UNSUBSCRIBE, ROUTE_KEY.HEARTBEAT, ROUTE_KEY.DEEP_HEARTBEAT]);\n\n const networkConnectivityChecker = setInterval(function () {\n if (online !== Utils.isNetworkOnline()) {\n online = Utils.isNetworkOnline();\n if (!online) {\n logger.advancedLog(LOG_MESSAGES.NETWORK_OFFLINE);\n sendInternalLogToServer(logger.info(LOG_MESSAGES.NETWORK_OFFLINE));\n\n return;\n }\n const ws = getDefaultWebSocket();\n if (online && (!ws || isWebSocketState(ws, WebSocket.CLOSING) || isWebSocketState(ws, WebSocket.CLOSED))) {\n logger.advancedLog(LOG_MESSAGES.NETWORK_ONLINE);\n sendInternalLogToServer(logger.info(LOG_MESSAGES.NETWORK_ONLINE));\n\n getWebSocketConnConfig();\n }\n }\n }, NETWORK_CONN_CHECK_INTERVAL_MS);\n\n const invokeCallbacks = function (callbacks, response) {\n callbacks.forEach(function (callback) {\n try {\n callback(response);\n } catch (error) {\n sendInternalLogToServer(logger.error(\"Error executing callback\", error));\n }\n });\n };\n\n const getWebSocketStates = function (ws) {\n if (ws === null) return \"NULL\";\n switch (ws.readyState) {\n case WebSocket.CONNECTING:\n return \"CONNECTING\";\n case WebSocket.OPEN:\n return \"OPEN\";\n case WebSocket.CLOSING:\n return \"CLOSING\";\n case WebSocket.CLOSED:\n return \"CLOSED\";\n default:\n return \"UNDEFINED\";\n }\n };\n\n const printWebSocketState = function (event = \"\") {\n sendInternalLogToServer(logger.debug(\"[\" + event + \"] Primary WebSocket: \" + getWebSocketStates(webSocket.primary)\n + \" | \" + \"Secondary WebSocket: \" + getWebSocketStates(webSocket.secondary)));\n };\n\n const isWebSocketState = function (ws, webSocketStateCode) {\n return ws && ws.readyState === webSocketStateCode;\n };\n\n const isWebSocketOpen = function (ws) {\n return isWebSocketState(ws, WebSocket.OPEN);\n };\n\n const isWebSocketClosed = function (ws) {\n // undefined check is to address the limitation of testing framework\n return ws === null || ws.readyState === undefined || isWebSocketState(ws, WebSocket.CLOSED);\n };\n\n /**\n * This function is meant to handle the scenario when we have two web-sockets open\n * in such a scenario we always select secondary web-socket since all future operations\n * are supposed to be done by this secondary web-socket\n */\n const getDefaultWebSocket = function () {\n if (webSocket.secondary !== null) {\n return webSocket.secondary;\n }\n return webSocket.primary;\n };\n\n const isDefaultWebSocketOpen = function () {\n return isWebSocketOpen(getDefaultWebSocket());\n };\n\n const sendHeartBeat = function () {\n if (enableDeepHeartbeat && deepHeartbeatConfig.pendingResponse) {\n logger.advancedLog(LOG_MESSAGES.NO_DEEP_HEARTBEAT);\n sendInternalLogToServer(logger.warn(LOG_MESSAGES.NO_DEEP_HEARTBEAT));\n // trigger deepHeartbeatFailure - no response is received \n invokeCallbacks(callbacks.deepHeartbeatFailure, {\n timestamp: Date.now(),\n error: \"aws/ping response is not received\",\n });\n\n clearInterval(deepHeartbeatConfig.intervalHandle);\n deepHeartbeatConfig.pendingResponse = false;\n }\n if (heartbeatConfig.pendingResponse) {\n logger.advancedLog(LOG_MESSAGES.NO_HEARTBEAT);\n sendInternalLogToServer(logger.warn(LOG_MESSAGES.NO_HEARTBEAT));\n\n clearInterval(heartbeatConfig.intervalHandle);\n heartbeatConfig.intervalHandle = null;\n heartbeatConfig.pendingResponse = false;\n getWebSocketConnConfig();\n return;\n }\n if (isDefaultWebSocketOpen()) {\n if (enableDeepHeartbeat) {\n sendInternalLogToServer(logger.debug(LOG_MESSAGES.SENDING_DEEP_HEARTBEAT));\n getDefaultWebSocket().send(createWebSocketPayload(ROUTE_KEY.DEEP_HEARTBEAT));\n deepHeartbeatConfig.pendingResponse = true;\n }\n\n sendInternalLogToServer(logger.debug(LOG_MESSAGES.SENDING_HEARTBEAT));\n getDefaultWebSocket().send(createWebSocketPayload(ROUTE_KEY.HEARTBEAT));\n heartbeatConfig.pendingResponse = true;\n } else {\n if (enableDeepHeartbeat) {\n logger.advancedLog(LOG_MESSAGES.FAILED_DEEP_HEARTBEAT);\n sendInternalLogToServer(logger.warn(LOG_MESSAGES.FAILED_DEEP_HEARTBEAT));\n // trigger deepHeartbeatFailure - message is unable to be sent to aws/ping because websocket connection is not established.\n invokeCallbacks(callbacks.deepHeartbeatFailure, {\n timestamp: Date.now(),\n error: \"Unable to send message to aws/ping because websocket connection is not established.\"\n });\n }\n\n logger.advancedLog(LOG_MESSAGES.FAILED_HEARTBEAT);\n sendInternalLogToServer(logger.warn(LOG_MESSAGES.FAILED_HEARTBEAT));\n\n printWebSocketState(\"sendHeartBeat\");\n getWebSocketConnConfig();\n }\n };\n\n const resetWebSocketState = function () {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_RESET);\n reconnectConfig.exponentialBackOffTime = 1000;\n heartbeatConfig.pendingResponse = false;\n deepHeartbeatConfig.pendingResponse = false;\n\n reconnectConfig.reconnectWebSocket = true;\n\n clearTimeout(reconnectConfig.lifeTimeTimeoutHandle);\n clearInterval(heartbeatConfig.intervalHandle);\n clearInterval(deepHeartbeatConfig.intervalHandle);\n clearTimeout(reconnectConfig.exponentialTimeoutHandle);\n clearTimeout(reconnectConfig.webSocketInitCheckerTimeoutId);\n\n heartbeatConfig.intervalHandle = null;\n };\n\n const resetSubscriptions = function () {\n topicSubscriptionConfig.consecutiveFailedSubscribeAttempts = 0;\n topicSubscriptionConfig.consecutiveNoResponseRequest = 0;\n clearInterval(topicSubscriptionConfig.responseCheckIntervalId);\n clearInterval(topicSubscriptionConfig.reSubscribeIntervalId);\n };\n\n const resetMetrics = function () {\n metrics.connectWebSocketRetryCount = 0;\n metrics.connectionAttemptStartTime = null;\n metrics.noOpenConnectionsTimestamp = null;\n };\n\n const webSocketOnOpen = function () {\n // Mark connection as successful; reset the number of reconnect attempts to 0.\n reconnectionClient.connected();\n\n try {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_ESTABLISHED);\n sendInternalLogToServer(logger.info(LOG_MESSAGES.WEBSOCKET_CONNECTION_ESTABLISHED));\n\n printWebSocketState(\"webSocketOnOpen\");\n if (reconnectConfig.connState === null || reconnectConfig.connState === CONN_STATE.DISCONNECTED) {\n invokeCallbacks(callbacks.connectionGain);\n }\n reconnectConfig.connState = CONN_STATE.CONNECTED;\n\n // Report number of retries to open and record ws open time\n const now = Date.now();\n invokeCallbacks(callbacks.connectionOpen, {\n connectWebSocketRetryCount: metrics.connectWebSocketRetryCount,\n connectionAttemptStartTime: metrics.connectionAttemptStartTime,\n noOpenConnectionsTimestamp: metrics.noOpenConnectionsTimestamp,\n connectionEstablishedTime: now,\n timeToConnect: now - metrics.connectionAttemptStartTime,\n timeWithoutConnection:\n metrics.noOpenConnectionsTimestamp ? now - metrics.noOpenConnectionsTimestamp : null\n });\n\n resetMetrics();\n resetWebSocketState();\n getDefaultWebSocket().openTimestamp = Date.now(); // record open time\n\n // early closure of primary web socket\n if (topicSubscription.subscribed.size === 0 && isWebSocketOpen(webSocket.secondary)) {\n closeSpecificWebSocket(webSocket.primary, \"[Primary WebSocket] Closing WebSocket\");\n }\n if (topicSubscription.subscribed.size > 0 || topicSubscription.pending.size > 0) {\n if (isWebSocketOpen(webSocket.secondary)) {\n sendInternalLogToServer(logger.info(\"Subscribing secondary websocket to topics of primary websocket\"));\n }\n topicSubscription.subscribed.forEach(topic => {\n topicSubscription.subscriptionHistory.add(topic);\n topicSubscription.pending.add(topic);\n });\n topicSubscription.subscribed.clear();\n subscribePendingTopics();\n }\n\n sendHeartBeat();\n if (heartbeatConfig.intervalHandle !== null) {\n clearInterval(heartbeatConfig.intervalHandle);\n }\n heartbeatConfig.intervalHandle = setInterval(sendHeartBeat, HEARTBEAT_INTERVAL_MS);\n\n const webSocketLifetimeTimeout = webSocketConfig.connConfig.webSocketTransport.transportLifeTimeInSeconds * 1000;\n sendInternalLogToServer(logger.debug(\"Scheduling WebSocket manager reconnection, after delay \" + webSocketLifetimeTimeout + \" ms\"));\n\n reconnectConfig.lifeTimeTimeoutHandle = setTimeout(function () {\n sendInternalLogToServer(logger.debug(\"Starting scheduled WebSocket manager reconnection\"));\n\n getWebSocketConnConfig();\n }, webSocketLifetimeTimeout);\n } catch (error) {\n sendInternalLogToServer(logger.error(\"Error after establishing WebSocket connection\", error));\n }\n };\n\n const webSocketOnClose = function (event, ws) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_CLOSED, JSON.stringify(event));\n sendInternalLogToServer(logger.info(LOG_MESSAGES.WEBSOCKET_CONNECTION_CLOSED, JSON.stringify(event)));\n\n printWebSocketState(\"webSocketOnClose before-cleanup\");\n\n invokeCallbacks(callbacks.connectionClose, {\n openTimestamp: ws.openTimestamp,\n closeTimestamp: Date.now(),\n connectionDuration: Date.now() - ws.openTimestamp,\n code: event.code,\n reason: event.reason\n });\n\n if (isWebSocketClosed(webSocket.primary)) {\n webSocket.primary = null;\n }\n if (isWebSocketClosed(webSocket.secondary)) {\n webSocket.secondary = null;\n }\n if (!reconnectConfig.reconnectWebSocket) {\n return;\n }\n if (!isWebSocketOpen(webSocket.primary) && !isWebSocketOpen(webSocket.secondary)) {\n sendInternalLogToServer(logger.warn(\"Neither primary websocket and nor secondary websocket have open connections, attempting to re-establish connection\"));\n\n if (reconnectConfig.connState === CONN_STATE.DISCONNECTED) {\n /**\n * This check is required in the scenario where WS Server shuts-down and closes all active\n * WS Client connections and WS Server takes about a minute to become active again, in this\n * scenario WS Client's onClose is triggered and then WSM start reconnect logic immediately but all\n * connect request to WS Server would fail and WS Client's onError callback would be triggered\n * followed WS Client's onClose callback and hence \"connectionLost\" callback would be invoked several\n * times and this behavior is redundant\n */\n sendInternalLogToServer(logger.info(\"Ignoring connectionLost callback invocation\"));\n } else {\n invokeCallbacks(callbacks.connectionLost, {\n openTimestamp: ws.openTimestamp,\n closeTimestamp: Date.now(),\n connectionDuration: Date.now() - ws.openTimestamp,\n code: event.code,\n reason: event.reason\n });\n metrics.noOpenConnectionsTimestamp = Date.now();\n }\n reconnectConfig.connState = CONN_STATE.DISCONNECTED;\n getWebSocketConnConfig();\n } else if (isWebSocketClosed(webSocket.primary) && isWebSocketOpen(webSocket.secondary)) {\n sendInternalLogToServer(logger.info(\"[Primary] WebSocket Cleanly Closed\"));\n\n webSocket.primary = webSocket.secondary;\n webSocket.secondary = null;\n }\n printWebSocketState(\"webSocketOnClose after-cleanup\");\n };\n\n const webSocketOnError = function (event) {\n printWebSocketState(\"webSocketOnError\");\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_ERROR, JSON.stringify(event));\n sendInternalLogToServer(logger.error(LOG_MESSAGES.WEBSOCKET_CONNECTION_ERROR, JSON.stringify(event)));\n const isConnected = reconnectionClient.getIsConnected();\n\n if (isConnected) {\n getWebSocketConnConfig();\n } else {\n reconnectionClient.retry();\n }\n };\n\n const webSocketOnMessage = function (event) {\n const response = JSON.parse(event.data);\n\n switch (response.topic) {\n\n case ROUTE_KEY.SUBSCRIBE: {\n sendInternalLogToServer(logger.debug(\"Subscription Message received from webSocket server\", event.data));\n\n topicSubscriptionConfig.requestCompleted = true;\n topicSubscriptionConfig.consecutiveNoResponseRequest = 0;\n\n if (response.content.status === \"success\") {\n topicSubscriptionConfig.consecutiveFailedSubscribeAttempts = 0;\n response.content.topics.forEach(topicName => {\n topicSubscription.subscriptionHistory.delete(topicName);\n topicSubscription.pending.delete(topicName);\n topicSubscription.subscribed.add(topicName);\n });\n if (topicSubscription.subscriptionHistory.size === 0) {\n if (isWebSocketOpen(webSocket.secondary)) {\n sendInternalLogToServer(logger.info(\"Successfully subscribed secondary websocket to all topics of primary websocket\"));\n\n closeSpecificWebSocket(webSocket.primary, \"[Primary WebSocket] Closing WebSocket\");\n }\n } else {\n subscribePendingTopics();\n }\n invokeCallbacks(callbacks.subscriptionUpdate, response);\n\n } else {\n clearInterval(topicSubscriptionConfig.reSubscribeIntervalId);\n ++topicSubscriptionConfig.consecutiveFailedSubscribeAttempts;\n if (topicSubscriptionConfig.consecutiveFailedSubscribeAttempts === MAX_CONSECUTIVE_FAILED_SUB_ATTEMPTS) {\n invokeCallbacks(callbacks.subscriptionFailure, response);\n topicSubscriptionConfig.consecutiveFailedSubscribeAttempts = 0;\n return;\n }\n topicSubscriptionConfig.reSubscribeIntervalId = setInterval(function () {\n subscribePendingTopics();\n }, TOPIC_SUBSCRIPTION_RETRY_INTERVAL_MS);\n }\n break;\n }\n case ROUTE_KEY.HEARTBEAT: {\n sendInternalLogToServer(logger.debug(LOG_MESSAGES.HEARTBEAT_RECEIVED));\n heartbeatConfig.pendingResponse = false;\n if (heartbeatConfig.intervalHandle === null) {\n heartbeatConfig.intervalHandle = setInterval(sendHeartBeat, HEARTBEAT_INTERVAL_MS);\n }\n break;\n }\n case ROUTE_KEY.DEEP_HEARTBEAT: {\n sendInternalLogToServer(logger.debug(LOG_MESSAGES.DEEP_HEARTBEAT_RECEIVED));\n deepHeartbeatConfig.pendingResponse = false;\n \n if (response.statusCode === 200) {// trigger deepHeartbeatSuccess if 200 response is received\n invokeCallbacks(callbacks.deepHeartbeatSuccess, {\n timestamp: Date.now(),\n });\n } else {//trigger deepHeartbeatFailure if 500 response is received\n invokeCallbacks(callbacks.deepHeartbeatFailure, {\n timestamp: Date.now(),\n statusCode: response.statusCode,\n statusContent: response.statusContent,\n });\n }\n break;\n }\n default: {\n if (response.topic) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_MESSAGE_RECEIVED, response.topic);\n sendInternalLogToServer(logger.debug(LOG_MESSAGES.WEBSOCKET_MESSAGE_RECEIVED + response.topic));\n\n if (isWebSocketOpen(webSocket.primary) && isWebSocketOpen(webSocket.secondary)\n && topicSubscription.subscriptionHistory.size === 0 && this === webSocket.primary) {\n /**\n * This block is to handle scenario when both primary and secondary socket have subscribed to\n * a common topic but we are facing difficulty in closing the primary socket, then in this\n * situation messages will be received by both primary and secondary web socket\n */\n sendInternalLogToServer(logger.warn(\"Ignoring Message for Topic \" + response.topic + \", to avoid duplicates\"));\n\n return;\n }\n\n if (callbacks.allMessage.size === 0 && callbacks.topic.size === 0) {\n sendInternalLogToServer(logger.warn('No registered callback listener for Topic', response.topic));\n\n return;\n }\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_MESSAGE_SUCCESS, response.topic);\n invokeCallbacks(callbacks.allMessage, response);\n if (callbacks.topic.has(response.topic)) {\n invokeCallbacks(callbacks.topic.get(response.topic), response);\n }\n\n } else if (response.message) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_MESSAGE_ERROR, response);\n sendInternalLogToServer(logger.warn(LOG_MESSAGES.WEBSOCKET_MESSAGE_ERROR, response));\n\n // trigger topicFailure if Forbidden message OR Timeout message is received\n invokeCallbacks(callbacks.topicFailure, {\n timestamp: Date.now(),\n errorMessage: response.message,\n connectionId: response.connectionId,\n requestId: response.requestId,\n });\n } else {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_MESSAGE_INVALID, response);\n sendInternalLogToServer(logger.warn(LOG_MESSAGES.WEBSOCKET_MESSAGE_INVALID, response));\n }\n }\n }\n };\n\n const subscribePendingTopics = function () {\n if (topicSubscriptionConfig.consecutiveNoResponseRequest > MAX_CONSECUTIVE_SUB_REQUEST_WITH_NO_RESPONSE) {\n sendInternalLogToServer(logger.warn(\"Ignoring subscribePendingTopics since we have exhausted max subscription retries with no response\"));\n\n invokeCallbacks(callbacks.subscriptionFailure, Utils.getSubscriptionResponse(ROUTE_KEY.SUBSCRIBE, false, Array.from(topicSubscription.pending)));\n return;\n }\n if (!isDefaultWebSocketOpen()) {\n sendInternalLogToServer(logger.warn(\"Ignoring subscribePendingTopics call since Default WebSocket is not open\"));\n\n return;\n }\n if (Array.from(topicSubscription.pending).length === 0) {\n return;\n }\n\n clearInterval(topicSubscriptionConfig.responseCheckIntervalId);\n\n getDefaultWebSocket().send(createWebSocketPayload(ROUTE_KEY.SUBSCRIBE, {\n \"topics\": Array.from(topicSubscription.pending)\n }));\n topicSubscriptionConfig.requestCompleted = false;\n\n // This callback ensure that some response was received for subscription request\n topicSubscriptionConfig.responseCheckIntervalId = setInterval(function () {\n if (!topicSubscriptionConfig.requestCompleted) {\n ++topicSubscriptionConfig.consecutiveNoResponseRequest;\n subscribePendingTopics();\n }\n }, MAX_WAIT_TIME_SUB_REQUEST_WITH_NO_RESPONSE_MS);\n };\n\n const closeSpecificWebSocket = function (ws, reason) {\n if (isWebSocketState(ws, WebSocket.CONNECTING) || isWebSocketState(ws, WebSocket.OPEN)) {\n ws.close(1000, reason);\n } else {\n sendInternalLogToServer(logger.warn(\"Ignoring WebSocket Close request, WebSocket State: \" + getWebSocketStates(ws)));\n }\n };\n\n const closeWebSocket = function (reason) {\n closeSpecificWebSocket(webSocket.primary, \"[Primary] WebSocket \" + reason);\n closeSpecificWebSocket(webSocket.secondary, \"[Secondary] WebSocket \" + reason);\n };\n\n const retryWebSocketInitialization = function () {\n metrics.connectWebSocketRetryCount++;\n const waitTime = Utils.addJitter(reconnectConfig.exponentialBackOffTime, WEBSOCKET_REINIT_JITTER);\n if (Date.now() + waitTime <= webSocketConfig.connConfig.urlConnValidTime) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_REINITIALIZATION);\n sendInternalLogToServer(logger.debug(LOG_MESSAGES.WEBSOCKET_REINITIALIZATION + waitTime + \" ms\"));\n\n reconnectConfig.exponentialTimeoutHandle = setTimeout(() => initWebSocket(), waitTime);\n reconnectConfig.exponentialBackOffTime *= 2;\n } else {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_REINITIALIZATION_TIMEOUT);\n sendInternalLogToServer(logger.warn(LOG_MESSAGES.WEBSOCKET_REINITIALIZATION_TIMEOUT));\n\n getWebSocketConnConfig();\n }\n };\n\n const terminateWebSocketManager = function (response) {\n resetWebSocketState();\n resetSubscriptions();\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_INITIALIZATION_FAILED, response);\n sendInternalLogToServer(logger.error(LOG_MESSAGES.WEBSOCKET_INITIALIZATION_FAILED));\n\n reconnectConfig.websocketInitFailed = true;\n closeWebSocket(LOG_MESSAGES.WEBSOCKET_TERMINATED);\n clearInterval(networkConnectivityChecker);\n invokeCallbacks(callbacks.initFailure, {\n connectWebSocketRetryCount: metrics.connectWebSocketRetryCount,\n connectionAttemptStartTime: metrics.connectionAttemptStartTime,\n reason: response\n });\n resetMetrics();\n };\n\n const createWebSocketPayload = function (key, content) {\n return JSON.stringify({\n \"topic\": key,\n \"content\": content\n });\n };\n\n const sendMessage = function (payload) {\n Utils.assertIsObject(payload, \"payload\");\n if (payload.topic === undefined || invalidSendMessageRouteKeys.has(payload.topic)) {\n sendInternalLogToServer(logger.warn(\"Cannot send message, Invalid topic\", payload));\n\n return;\n }\n try {\n payload = JSON.stringify(payload);\n } catch (error) {\n sendInternalLogToServer(logger.warn(\"Error stringify message\", payload));\n\n return;\n }\n if (isDefaultWebSocketOpen()) {\n getDefaultWebSocket().send(payload);\n } else {\n sendInternalLogToServer(logger.warn(\"Cannot send message, web socket connection is not open\"));\n }\n };\n\n const subscribeTopics = function (topics) {\n Utils.assertNotNull(topics, 'topics');\n Utils.assertIsList(topics);\n\n topics.forEach(topic => {\n if (!topicSubscription.subscribed.has(topic)) {\n topicSubscription.pending.add(topic);\n }\n });\n // This ensure all participant-request to subscribe to topic chat are served at least once\n topicSubscriptionConfig.consecutiveNoResponseRequest = 0;\n subscribePendingTopics();\n };\n\n const validWebSocketConnConfig = function (connConfig) {\n if (Utils.isObject(connConfig) && Utils.isObject(connConfig.webSocketTransport)\n && Utils.isNonEmptyString(connConfig.webSocketTransport.url)\n && Utils.validWSUrl(connConfig.webSocketTransport.url) &&\n connConfig.webSocketTransport.transportLifeTimeInSeconds * 1000 >= MIN_WEBSOCKET_LIFETIME_MS) {\n return true;\n }\n sendInternalLogToServer(logger.error(\"Invalid WebSocket Connection Configuration\", connConfig));\n\n return false;\n };\n\n const getWebSocketConnConfig = function () {\n if (!Utils.isNetworkOnline()) {\n logger.advancedLog(LOG_MESSAGES.NETWORK_OFFLINE_WARNING);\n sendInternalLogToServer(logger.info(LOG_MESSAGES.NETWORK_OFFLINE_WARNING));\n\n return;\n }\n if (reconnectConfig.websocketInitFailed) {\n sendInternalLogToServer(logger.debug(\"WebSocket Init had failed, ignoring this getWebSocketConnConfig request\"));\n return;\n }\n if (!webSocketConfig.promiseCompleted) {\n sendInternalLogToServer(logger.debug(\"There is an ongoing getWebSocketConnConfig request, this request will be ignored\"));\n return;\n }\n resetWebSocketState();\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_NEW_CONNECTION);\n sendInternalLogToServer(logger.info(LOG_MESSAGES.WEBSOCKET_NEW_CONNECTION));\n\n metrics.connectionAttemptStartTime = metrics.connectionAttemptStartTime || Date.now();\n webSocketConfig.promiseCompleted = false;\n webSocketConfig.promiseHandle = callbacks.getWebSocketTransport();\n return webSocketConfig.promiseHandle\n .then(function (response) {\n webSocketConfig.promiseCompleted = true;\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_SUCCESS);\n sendInternalLogToServer(logger.debug(LOG_MESSAGES.WEBSOCKET_CONNECTION_SUCCESS, response));\n\n if (!validWebSocketConnConfig(response)) {\n terminateWebSocketManager(\"Invalid WebSocket connection configuration: \" + response);\n return { webSocketConnectionFailed: true };\n }\n webSocketConfig.connConfig = response;\n // Ideally this URL validity time should be provided by server\n webSocketConfig.connConfig.urlConnValidTime = Date.now() + WEBSOCKET_URL_VALID_TIME_MS;\n return initWebSocket();\n },\n function (reason) {\n webSocketConfig.promiseCompleted = true;\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_FAILURE);\n sendInternalLogToServer(logger.error(LOG_MESSAGES.WEBSOCKET_CONNECTION_FAILURE, reason));\n\n // If our connection fails because of network failure, we want to retry\n if (Utils.isNetworkFailure(reason)) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_RETRY + JSON.stringify(reason));\n sendInternalLogToServer(logger.info(LOG_MESSAGES.WEBSOCKET_CONNECTION_RETRY + JSON.stringify(reason)));\n reconnectionClient.retry();\n } else {\n // If we're not going to retry, we should terminate WSM\n terminateWebSocketManager(\"Failed to fetch webSocket connection configuration: \" + JSON.stringify(reason));\n }\n return { webSocketConnectionFailed: true };\n });\n };\n\n const initWebSocket = function () {\n if (reconnectConfig.websocketInitFailed) {\n sendInternalLogToServer(logger.info(\"web-socket initializing had failed, aborting re-init\"));\n\n return { webSocketConnectionFailed: true };\n }\n if (!Utils.isNetworkOnline()) {\n sendInternalLogToServer(logger.warn(\"System is offline aborting web-socket init\"));\n\n return { webSocketConnectionFailed: true };\n }\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_INIT);\n sendInternalLogToServer(logger.info(LOG_MESSAGES.WEBSOCKET_INIT));\n\n printWebSocketState(\"initWebSocket\");\n try {\n if (validWebSocketConnConfig(webSocketConfig.connConfig)) {\n let ws = null;\n if (isWebSocketOpen(webSocket.primary)) {\n sendInternalLogToServer(logger.debug(\"Primary Socket connection is already open\"));\n\n if (!isWebSocketState(webSocket.secondary, WebSocket.CONNECTING)) {\n sendInternalLogToServer(logger.debug(\"Establishing a secondary web-socket connection\"));\n reconnectionClient.numAttempts = 0;\n webSocket.secondary = getNewWebSocket();\n }\n ws = webSocket.secondary;\n } else {\n if (!isWebSocketState(webSocket.primary, WebSocket.CONNECTING)) {\n sendInternalLogToServer(logger.debug(\"Establishing a primary web-socket connection\"));\n\n webSocket.primary = getNewWebSocket();\n }\n ws = webSocket.primary;\n }\n\n // WebSocket creation is async task hence we Wait for 1sec before any potential retry\n reconnectConfig.webSocketInitCheckerTimeoutId = setTimeout(function () {\n if (!isWebSocketOpen(ws)) {\n retryWebSocketInitialization();\n }\n }, 1000);\n return { webSocketConnectionFailed: false };\n }\n } catch (error) {\n sendInternalLogToServer(logger.error(\"Error Initializing web-socket-manager\", error));\n\n terminateWebSocketManager(\"Failed to initialize new WebSocket: \" + error.message);\n return { webSocketConnectionFailed: true };\n }\n };\n\n const getNewWebSocket = function () {\n let ws = new WebSocket(webSocketConfig.connConfig.webSocketTransport.url);\n ws.addEventListener(\"open\", webSocketOnOpen);\n ws.addEventListener(\"message\", webSocketOnMessage);\n ws.addEventListener(\"error\", webSocketOnError);\n ws.addEventListener(\"close\", event => webSocketOnClose(event, ws));\n return ws;\n };\n\n const onConnectionOpen = function (cb) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_OPEN);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.connectionOpen.add(cb);\n return () => callbacks.connectionOpen.delete(cb);\n };\n\n const onConnectionClose = function (cb) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_CLOSE);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.connectionClose.add(cb);\n return () => callbacks.connectionClose.delete(cb);\n };\n\n const onConnectionGain = function (cb) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_GAIN);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.connectionGain.add(cb);\n if (isDefaultWebSocketOpen()) {\n cb();\n }\n return () => callbacks.connectionGain.delete(cb);\n };\n\n const onConnectionLost = function (cb) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_LOST);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.connectionLost.add(cb);\n if (reconnectConfig.connState === CONN_STATE.DISCONNECTED) {\n cb();\n }\n return () => callbacks.connectionLost.delete(cb);\n };\n\n const onInitFailure = function (cb) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_INIT_FAILURE);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.initFailure.add(cb);\n if (reconnectConfig.websocketInitFailed) {\n cb();\n }\n return () => callbacks.initFailure.delete(cb);\n };\n\n const init = function (transportHandle) {\n Utils.assertTrue(Utils.isFunction(transportHandle), 'transportHandle must be a function');\n if (callbacks.getWebSocketTransport !== null) {\n sendInternalLogToServer(logger.warn(\"Web Socket Manager was already initialized\"));\n return;\n }\n callbacks.getWebSocketTransport = transportHandle;\n\n return getWebSocketConnConfig();\n };\n\n const onSubscriptionUpdate = function (cb) {\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.subscriptionUpdate.add(cb);\n return () => callbacks.subscriptionUpdate.delete(cb);\n };\n\n const onSubscriptionFailure = function (cb) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_SUBSCRIPTION_FAILURE);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.subscriptionFailure.add(cb);\n return () => callbacks.subscriptionFailure.delete(cb);\n };\n\n const onMessage = function (topicName, cb) {\n Utils.assertNotNull(topicName, 'topicName');\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n if (callbacks.topic.has(topicName)) {\n callbacks.topic.get(topicName).add(cb);\n } else {\n callbacks.topic.set(topicName, new Set([cb]));\n }\n return () => callbacks.topic.get(topicName).delete(cb);\n };\n\n const onAllMessage = function (cb) {\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.allMessage.add(cb);\n return () => callbacks.allMessage.delete(cb);\n };\n\n const sendInternalLogToServer = function (logEntry) {\n if (logEntry && typeof logEntry.sendInternalLogToServer === \"function\")\n logEntry.sendInternalLogToServer();\n\n return logEntry;\n };\n\n const deepHeartbeatHandler = function () {\n enableDeepHeartbeat = true;\n };\n\n const onDeepHeartbeatSuccess = function (cb) {\n logger.advancedLog(LOG_MESSAGES.DEEP_HEARTBEAT_SUCCESS);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.deepHeartbeatSuccess.add(cb);\n return () => callbacks.deepHeartbeatSuccess.delete(cb);\n };\n\n const onDeepHeartbeatFailure = function (cb) {\n logger.advancedLog(LOG_MESSAGES.DEEP_HEARTBEAT_FAILURE);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.deepHeartbeatFailure.add(cb);\n return () => callbacks.deepHeartbeatFailure.delete(cb);\n };\n\n const onTopicFailure = function (cb) {\n logger.advancedLog(LOG_MESSAGES.TOPIC_FAILURE);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.topicFailure.add(cb);\n return () => callbacks.topicFailure.delete(cb);\n };\n\n this.init = init;\n this.onInitFailure = onInitFailure;\n this.onConnectionOpen = onConnectionOpen;\n this.onConnectionClose = onConnectionClose;\n this.onConnectionGain = onConnectionGain;\n this.onConnectionLost = onConnectionLost;\n this.onSubscriptionUpdate = onSubscriptionUpdate;\n this.onSubscriptionFailure = onSubscriptionFailure;\n this.onMessage = onMessage;\n this.onAllMessage = onAllMessage;\n this.subscribeTopics = subscribeTopics;\n this.sendMessage = sendMessage;\n this.deepHeartbeatHandler = deepHeartbeatHandler;\n this.onDeepHeartbeatSuccess = onDeepHeartbeatSuccess;\n this.onDeepHeartbeatFailure = onDeepHeartbeatFailure;\n this.onTopicFailure = onTopicFailure;\n\n this.closeWebSocket = function () {\n resetWebSocketState();\n resetSubscriptions();\n reconnectConfig.reconnectWebSocket = false;\n clearInterval(networkConnectivityChecker);\n closeWebSocket(\"User request to close WebSocket\");\n };\n\n this.terminateWebSocketManager = terminateWebSocketManager;\n};\n\nconst WebSocketManagerConstructor = (logMetaData) => {\n if (!logManagerInstance) {\n logManagerInstance = new LogManagerImpl(logMetaData);\n }\n if (!logManagerInstance.hasLogMetaData()) {\n logManagerInstance.setLogMetaData(logMetaData);\n }\n if (!logMetaData) {\n console.info(\"********Missing metaData for logs from websocketManager: initialize websocketManager using create(metaData)*******\");\n }\n return new WebSocketManager();\n};\n\nconst setGlobalConfig = config => {\n const loggerConfig = config && config.loggerConfig;\n if (!logManagerInstance) {\n logManagerInstance = new LogManagerImpl();\n }\n logManagerInstance.updateLoggerConfig(loggerConfig);\n};\n\nconst WebSocketManagerObject = {\n create: WebSocketManagerConstructor,\n setGlobalConfig: setGlobalConfig,\n LogLevel: LogLevel,\n Logger: Logger,\n};\n\nexport { WebSocketManagerObject };\n","/*eslint no-unused-vars: \"off\"*/\nimport { WebSocketManagerObject } from \"./webSocketManager\";\n\nglobal.connect = global.connect || {};\nconnect.WebSocketManager = WebSocketManagerObject;\n\nexport const WebSocketManager = WebSocketManagerObject;\n\nexport default WebSocketManager;"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/sprintf-js/src/sprintf.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./src/constants.js","webpack:///./src/utils.js","webpack:///./src/log.js","webpack:///./src/retryProvider.js","webpack:///./src/webSocketManager.js","webpack:///./src/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","obj","iterator","constructor","instance","Constructor","TypeError","_defineProperties","target","props","length","descriptor","configurable","writable","protoProps","staticProps","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","re","not_string","not_bool","not_type","not_primitive","number","numeric_arg","json","not_json","text","modulo","placeholder","key_access","index_access","sign","sprintf","sprintf_format","sprintf_parse","arguments","vsprintf","fmt","argv","apply","concat","parse_tree","arg","k","ph","pad","pad_character","pad_length","is_positive","cursor","tree_length","output","keys","undefined","Error","param_no","test","type","Function","isNaN","parseInt","toString","String","fromCharCode","JSON","stringify","width","precision","parseFloat","toExponential","toFixed","Number","toPrecision","substring","slice","toLowerCase","valueOf","toUpperCase","replace","pad_char","charAt","repeat","align","sprintf_cache","match","_fmt","arg_names","exec","push","SyntaxError","field_list","replacement_field","field_match","window","subClass","superClass","assertThisInitialized","self","_setPrototypeOf","ReferenceError","LOGS_DESTINATION","LOG_MESSAGES","ROUTE_KEY","CONN_STATE","Utils","premise","message","assertTrue","Array","isArray","wsRegex","RegExp","localWsRegex","validWSUrl","wsUrl","getSubscriptionResponse","routeKey","isSuccess","topicList","topic","content","status","topics","assertIsObject","isObject","addJitter","base","maxJitter","Math","min","random","floor","isNetworkOnline","navigator","onLine","isNetworkFailure","reason","_debug","Logger","data","DEFAULT_PREFIX","LogLevel","DEBUG","INFO","WARN","ERROR","ADVANCED_LOG","LogManagerImpl","logMetaData","this","updateLoggerConfig","level","logStatement","hasClientLogger","log1","removeCircularReference","log2","logStringValue","getLogLevelByValue","_clientLogger","debug","info","warn","error","_advancedLogWriter","_level","options","prefix","setLogMetaData","console","LoggerWrapperImpl","inputConfig","config","advancedLogWriter","customizedLogger","useClientLogger","logger","selectLogger","_logsDestination","useDefaultLogger","createConsoleLogger","LoggerWrapper","logManagerInstance","logManager","args","_log","isLevelEnabled","writeToClientLogger","_shouldLog","_convertToSingleStatement","_writeToClientLogger","date","Date","now","toISOString","index","_convertToString","isString","isFunction","toStringResult","seen","WeakSet","has","add","RetryProvider","executor","defaultRetry","numAttempts","hasActiveReconnection","setTimeout","_execute","_getDelay","calculatedDelay","pow","WebSocketManager","enableDeepHeartbeat","getLogger","online","webSocket","primary","secondary","reconnectConfig","reconnectWebSocket","websocketInitFailed","exponentialBackOffTime","exponentialTimeoutHandle","lifeTimeTimeoutHandle","webSocketInitCheckerTimeoutId","connState","metrics","connectWebSocketRetryCount","connectionAttemptStartTime","noOpenConnectionsTimestamp","heartbeatConfig","pendingResponse","intervalHandle","deepHeartbeatConfig","callbacks","initFailure","Set","getWebSocketTransport","subscriptionUpdate","subscriptionFailure","Map","allMessage","connectionGain","connectionLost","connectionOpen","connectionClose","deepHeartbeatSuccess","deepHeartbeatFailure","topicFailure","webSocketConfig","connConfig","promiseHandle","promiseCompleted","topicSubscription","subscribed","pending","subscriptionHistory","topicSubscriptionConfig","responseCheckIntervalId","requestCompleted","reSubscribeIntervalId","consecutiveFailedSubscribeAttempts","consecutiveNoResponseRequest","reconnectionClient","getWebSocketConnConfig","invalidSendMessageRouteKeys","networkConnectivityChecker","setInterval","advancedLog","sendInternalLogToServer","ws","getDefaultWebSocket","isWebSocketState","WebSocket","CLOSING","CLOSED","invokeCallbacks","response","forEach","callback","getWebSocketStates","readyState","CONNECTING","OPEN","printWebSocketState","event","webSocketStateCode","isWebSocketOpen","isWebSocketClosed","isDefaultWebSocketOpen","sendHeartBeat","timestamp","clearInterval","send","createWebSocketPayload","resetWebSocketState","clearTimeout","resetSubscriptions","resetMetrics","webSocketOnOpen","connected","connectionEstablishedTime","timeToConnect","timeWithoutConnection","openTimestamp","size","closeSpecificWebSocket","clear","subscribePendingTopics","webSocketLifetimeTimeout","webSocketTransport","transportLifeTimeInSeconds","webSocketOnError","getIsConnected","retry","webSocketOnMessage","parse","topicName","statusCode","statusContent","errorMessage","connectionId","requestId","from","close","closeWebSocket","retryWebSocketInitialization","waitTime","urlConnValidTime","initWebSocket","terminateWebSocketManager","validWebSocketConnConfig","isNonEmptyString","url","then","webSocketConnectionFailed","getNewWebSocket","addEventListener","closeTimestamp","connectionDuration","code","webSocketOnClose","logEntry","init","transportHandle","onInitFailure","cb","onConnectionOpen","onConnectionClose","onConnectionGain","onConnectionLost","onSubscriptionUpdate","onSubscriptionFailure","onMessage","assertNotNull","set","onAllMessage","subscribeTopics","assertIsList","sendMessage","payload","deepHeartbeatHandler","onDeepHeartbeatSuccess","onDeepHeartbeatFailure","onTopicFailure","WebSocketManagerObject","hasLogMetaData","setGlobalConfig","loggerConfig","webSocketManagerConfig","customIsNetworkOnline","global","connect"],"mappings":"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","file":"amazon-connect-websocket-manager.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 10);\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/* global window, exports, define */\n\n!function() {\n 'use strict'\n\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n }\n\n function sprintf(key) {\n // `arguments` is not an array, but should be fine for this call\n return sprintf_format(sprintf_parse(key), arguments)\n }\n\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []))\n }\n\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === 'string') {\n output += parse_tree[i]\n }\n else if (typeof parse_tree[i] === 'object') {\n ph = parse_tree[i] // convenience purposes only\n if (ph.keys) { // keyword argument\n arg = argv[cursor]\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == undefined) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n }\n arg = arg[ph.keys[k]]\n }\n }\n else if (ph.param_no) { // positional argument (explicit)\n arg = argv[ph.param_no]\n }\n else { // positional argument (implicit)\n arg = argv[cursor++]\n }\n\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg()\n }\n\n if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n }\n\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt]\n }\n\n var _fmt = fmt, match, parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0])\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n )\n }\n else {\n throw new SyntaxError('[sprintf] unexpected placeholder')\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return sprintf_cache[fmt] = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports['sprintf'] = sprintf\n exports['vsprintf'] = vsprintf\n }\n if (typeof window !== 'undefined') {\n window['sprintf'] = sprintf\n window['vsprintf'] = vsprintf\n\n if (typeof define === 'function' && define['amd']) {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\nexport const LOGS_DESTINATION = {\n NULL: \"NULL\",\n CLIENT_LOGGER: \"CLIENT_LOGGER\",\n DEBUG: \"DEBUG\"\n};\n\nexport const MIN_WEBSOCKET_LIFETIME_MS = 300000;\nexport const HEARTBEAT_INTERVAL_MS = 10000;\nexport const WEBSOCKET_URL_VALID_TIME_MS = 85000;\nexport const TOPIC_SUBSCRIPTION_RETRY_INTERVAL_MS = 500;\nexport const MAX_CONSECUTIVE_FAILED_SUB_ATTEMPTS = 5;\nexport const MAX_WAIT_TIME_SUB_REQUEST_WITH_NO_RESPONSE_MS = 1000;\nexport const MAX_CONSECUTIVE_SUB_REQUEST_WITH_NO_RESPONSE = 3;\nexport const NETWORK_CONN_CHECK_INTERVAL_MS = 250;\nexport const WEBSOCKET_REINIT_JITTER = 0.3;\nexport const WEBSOCKET_RETRY_RATE_MS = 2000;\nexport const MAX_WEBSOCKET_RETRY_RATE_MS = 30000;\n\nexport const NETWORK_FAILURE = 'NetworkingError';\n\nexport const LOG_MESSAGES = {\n DEFAULT_PREFIX: \"AMZ_WEB_SOCKET_MANAGER:\",\n NETWORK_OFFLINE: \"Network offline\",\n NETWORK_ONLINE: \"Network online, connecting to WebSocket server\",\n NETWORK_OFFLINE_WARNING: \"Network offline, ignoring this getWebSocketConnConfig request\",\n NO_HEARTBEAT: \"Heartbeat response not received\",\n NO_DEEP_HEARTBEAT: \"aws/ping deep heartbeat response not received\",\n HEARTBEAT_RECEIVED: \"Heartbeat response received\",\n DEEP_HEARTBEAT_RECEIVED: \"aws/ping deep heartbeat received\",\n SENDING_HEARTBEAT: \"Sending heartbeat\",\n SENDING_DEEP_HEARTBEAT: \"Sending aws/ping deep heartbeat\",\n FAILED_HEARTBEAT: \"Failed to send heartbeat since WebSocket is not open\",\n FAILED_DEEP_HEARTBEAT: \"Failed to send aws/ping deep heartbeat since WebSocket is not open\",\n DEEP_HEARTBEAT_SUCCESS: \"Deep Heartbeat is successful. WebSocketManager has received 200 response from aws/ping\",\n DEEP_HEARTBEAT_FAILURE: \"Deep Heartbeat failed. WebSocketManager does not receive 200 response from aws/ping\",\n TOPIC_FAILURE: \"Generic topic failed.\",\n WEBSOCKET_CONNECTION_ESTABLISHED: \"WebSocket connection established!\",\n WEBSOCKET_CONNECTION_CLOSED: \"WebSocket connection is closed\",\n WEBSOCKET_CONNECTION_ERROR: \"WebSocketManager Error, error_event: \",\n WEBSOCKET_REINITIALIZATION: \"Scheduling WebSocket reinitialization, after delay \",\n WEBSOCKET_REINITIALIZATION_TIMEOUT: \"WebSocket URL cannot be used to establish connection\",\n WEBSOCKET_INITIALIZATION_FAILED: \"WebSocket Initialization failed - Terminating and cleaning subscriptions\",\n WEBSOCKET_TERMINATED: \"Terminating WebSocket Manager\",\n WEBSOCKET_NEW_CONNECTION: \"Fetching new WebSocket connection configuration\",\n WEBSOCKET_CONNECTION_SUCCESS: \"Successfully fetched webSocket connection configuration\",\n WEBSOCKET_CONNECTION_FAILURE: \"Failed to fetch webSocket connection configuration\",\n WEBSOCKET_CONNECTION_RETRY: \"Retrying fetching new WebSocket connection configuration\",\n WEBSOCKET_INIT: \"Initializing Websocket Manager\",\n WEBSOCKET_INIT_FAILURE: \"Initializing Websocket Manager Failure callback registered\",\n WEBSOCKET_CONNECTION_OPEN: \"Websocket connection open callback registered\",\n WEBSOCKET_CONNECTION_CLOSE: \"Websocket connection close callback registered\",\n WEBSOCKET_CONNECTION_GAIN: \"Websocket connection gain callback registered\",\n WEBSOCKET_CONNECTION_LOST: \"Websocket connection lost callback registered\",\n WEBSOCKET_SUBSCRIPTION_FAILURE: \"Websocket subscription failure callback registered\",\n WEBSOCKET_RESET: \"Reset Websocket state\",\n WEBSOCKET_MESSAGE_ERROR: \"WebSocketManager Message Error\",\n WEBSOCKET_MESSAGE_RECEIVED: \"Message received for topic \",\n WEBSOCKET_MESSAGE_INVALID: \"Invalid incoming message\",\n WEBSOCKET_MESSAGE_SUCCESS: \"WebsocketManager invoke callbacks for topic success \",\n};\n\nexport const ROUTE_KEY = {\n SUBSCRIBE: \"aws/subscribe\",\n UNSUBSCRIBE: \"aws/unsubscribe\",\n HEARTBEAT: \"aws/heartbeat\",\n DEEP_HEARTBEAT: \"aws/ping\"\n};\n\nexport const CONN_STATE = {\n CONNECTED: \"connected\",\n DISCONNECTED: \"disconnected\"\n};\n","import { sprintf } from \"sprintf-js\";\nimport { NETWORK_FAILURE } from './constants';\n\nconst Utils = {};\n\n/**\n * Asserts that a premise is true.\n */\nUtils.assertTrue = function(premise, message) {\n if (!premise) {\n throw new Error(message);\n }\n};\n\n/**\n * Asserts that a value is not null or undefined.\n */\nUtils.assertNotNull = function(value, name) {\n Utils.assertTrue(\n value !== null && typeof value !== undefined,\n sprintf(\"%s must be provided\", name || \"A value\")\n );\n return value;\n};\n\nUtils.isNonEmptyString = function(value) {\n return typeof value === \"string\" && value.length > 0;\n};\n\nUtils.assertIsList = function(value, key) {\n if (!Array.isArray(value)) {\n throw new Error(key + \" is not an array\");\n }\n};\n\n/**\n * Determine if the given value is a callable function type.\n * Borrowed from Underscore.js.\n */\nUtils.isFunction = function(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n};\n\nUtils.isObject = function(value) {\n return !(typeof value !== \"object\" || value === null);\n};\n\nUtils.isString = function(value) {\n return typeof value === \"string\";\n};\n\nUtils.isNumber = function(value) {\n return typeof value === \"number\";\n};\n\nconst wsRegex = new RegExp(\"^(wss://)\\\\w*\");\nconst localWsRegex = new RegExp(\"^(ws://127.0.0.1:)\");\nUtils.validWSUrl = function (wsUrl) {\n return wsRegex.test(wsUrl) || localWsRegex.test(wsUrl);\n};\n\nUtils.getSubscriptionResponse = (routeKey, isSuccess, topicList) => {\n return {\n topic: routeKey,\n content : {\n status: isSuccess ? \"success\" : \"failure\",\n topics: topicList\n }\n };\n};\n\nUtils.assertIsObject = function(value, key) {\n if (!Utils.isObject(value)) {\n throw new Error(key + \" is not an object!\");\n }\n};\n\nUtils.addJitter = function (base, maxJitter = 1) {\n maxJitter = Math.min(maxJitter, 1.0);\n const sign = Math.random() > 0.5 ? 1 : -1;\n return Math.floor(base + sign * base * Math.random() * maxJitter);\n};\n\nUtils.isNetworkOnline = () => navigator.onLine;\n\nUtils.isNetworkFailure = (reason) => {\n if(reason._debug && reason._debug.type) {\n return reason._debug.type === NETWORK_FAILURE;\n }\n return false;\n};\n\nexport default Utils;\n","import Utils from \"./utils\";\nimport { LOGS_DESTINATION, LOG_MESSAGES } from \"./constants\";\n\n/*eslint-disable no-unused-vars*/\nclass Logger {\n debug(data) {}\n\n info(data) {}\n\n warn(data) {}\n\n error(data) {}\n\n advancedLog(data) {}\n}\n/*eslint-enable no-unused-vars*/\n\nconst DEFAULT_PREFIX = LOG_MESSAGES.DEFAULT_PREFIX;\nconst LogLevel = {\n DEBUG: 10,\n INFO: 20,\n WARN: 30,\n ERROR: 40,\n ADVANCED_LOG: 50,\n};\n\nclass LogManagerImpl {\n constructor(logMetaData) {\n this.logMetaData = logMetaData || '';\n this.updateLoggerConfig();\n }\n\n hasLogMetaData() {\n return !!this.logMetaData;\n }\n\n writeToClientLogger(level, logStatement = '') {\n if (!this.hasClientLogger()) {\n return;\n }\n const log1 = typeof logStatement === \"string\" ? logStatement : JSON.stringify(logStatement, removeCircularReference());\n const log2 = typeof this.logMetaData === \"string\" ? this.logMetaData : JSON.stringify(this.logMetaData, removeCircularReference());\n const logStringValue = `${getLogLevelByValue(level)} ${log1} ${log2}`;\n switch (level) {\n case LogLevel.DEBUG:\n return this._clientLogger.debug(logStringValue) || logStringValue;\n case LogLevel.INFO:\n return this._clientLogger.info(logStringValue) || logStringValue;\n case LogLevel.WARN:\n return this._clientLogger.warn(logStringValue) || logStringValue;\n case LogLevel.ERROR:\n return this._clientLogger.error(logStringValue) || logStringValue;\n case LogLevel.ADVANCED_LOG:\n if(!this._advancedLogWriter) return '';\n return this._clientLogger[this._advancedLogWriter](logStringValue) || logStringValue;\n }\n }\n\n isLevelEnabled(level) {\n return level >= this._level;\n }\n\n hasClientLogger() {\n return this._clientLogger !== null;\n }\n\n getLogger(options = {}) {\n var prefix = options.prefix || DEFAULT_PREFIX;\n if (options.logMetaData) {\n this.setLogMetaData(options.logMetaData);\n }\n if (!this.logMetaData) {\n console.info(\"*********Missing required option: WebSocketManager:logMetaData**********\");\n }\n return new LoggerWrapperImpl(this, { prefix, logMetaData: this.logMetaData, ...options });\n }\n\n setLogMetaData(logMetaData) {\n this.logMetaData = logMetaData;\n }\n\n updateLoggerConfig(inputConfig) {\n var config = inputConfig || {};\n this._level = config.level || LogLevel.INFO;\n //enabled advancedLogWriter\n this._advancedLogWriter = \"warn\";\n if (config.advancedLogWriter) {\n this._advancedLogWriter = config.advancedLogWriter;\n }\n\n if(config.customizedLogger && typeof config.customizedLogger === \"object\") {\n this.useClientLogger = true;\n }\n this._clientLogger = config.logger || this.selectLogger(config);\n\n this._logsDestination = LOGS_DESTINATION.NULL;\n if (config.debug) {\n this._logsDestination = LOGS_DESTINATION.DEBUG;\n }\n if (config.logger) {\n this._logsDestination = LOGS_DESTINATION.CLIENT_LOGGER;\n }\n }\n\n selectLogger(config) {\n if(config.customizedLogger && typeof config.customizedLogger === \"object\") {\n return config.customizedLogger;\n }\n if(config.useDefaultLogger) {\n return createConsoleLogger();\n }\n return null;\n }\n}\n\nclass LoggerWrapper {\n debug() {}\n\n info() {}\n\n warn() {}\n\n error() {}\n\n advancedLog() {}\n}\n\nclass LoggerWrapperImpl extends LoggerWrapper {\n constructor(logManagerInstance, options) {\n super();\n this.options = options || {};\n this.prefix = options.prefix || DEFAULT_PREFIX;\n this.logManager = logManagerInstance;\n }\n\n debug(...args) {\n return this._log(LogLevel.DEBUG, args);\n }\n\n info(...args) {\n return this._log(LogLevel.INFO, args);\n }\n\n warn(...args) {\n return this._log(LogLevel.WARN, args);\n }\n\n error(...args) {\n return this._log(LogLevel.ERROR, args);\n }\n\n advancedLog(...args) {\n return this._log(LogLevel.ADVANCED_LOG, args);\n }\n\n _shouldLog(level) {\n return this.logManager.hasClientLogger() && this.logManager.isLevelEnabled(level);\n }\n\n _writeToClientLogger(level, logStatement) {\n return this.logManager.writeToClientLogger(level, logStatement);\n }\n\n _log(level, args) {\n if (this._shouldLog(level)) {\n var logStatement = this.logManager.useClientLogger ? args : this._convertToSingleStatement(args);\n return this._writeToClientLogger(level, logStatement);\n }\n }\n\n _convertToSingleStatement(args) {\n var date = new Date(Date.now()).toISOString();\n var logStatement = `[${date}]`;\n if (this.prefix) {\n logStatement += this.prefix + \" \";\n }\n if (this.options) {\n this.options.prefix ? logStatement += \" \" + this.options.prefix + \":\" : logStatement += \"\";\n }\n for (var index = 0; index < args.length; index++) {\n var arg = args[index];\n logStatement += this._convertToString(arg) + \" \";\n }\n return logStatement;\n }\n\n _convertToString(arg) {\n try {\n if (!arg) {\n return \"\";\n }\n if (Utils.isString(arg)) {\n return arg;\n }\n if (Utils.isObject(arg) && Utils.isFunction(arg.toString)) {\n var toStringResult = arg.toString();\n if (toStringResult !== \"[object Object]\") {\n return toStringResult;\n }\n }\n return JSON.stringify(arg);\n } catch (error) {\n console.error(\"Error while converting argument to string\", arg, error);\n return \"\";\n }\n }\n}\n\nfunction getLogLevelByValue(value) {\n switch(value) {\n case 10: return \"DEBUG\";\n case 20: return \"INFO\";\n case 30: return \"WARN\";\n case 40: return \"ERROR\";\n case 50: return \"ADVANCED_LOG\";\n }\n}\n\nfunction removeCircularReference() {\n const seen = new WeakSet();\n\n return (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n }\n return value;\n };\n}\n\nvar createConsoleLogger = () => {\n var logger = new LoggerWrapper();\n logger.debug = (...args) => console.debug.apply(window.console, [].concat(args));\n logger.info = (...args) => console.info.apply(window.console, [].concat(args));\n logger.warn = (...args) => console.warn.apply(window.console, [].concat(args));\n logger.error = (...args) => console.error.apply(window.console, [].concat(args));\n return logger;\n};\n\nexport { LogManagerImpl, Logger, LogLevel };\n","import { WEBSOCKET_RETRY_RATE_MS, MAX_WEBSOCKET_RETRY_RATE_MS } from './constants';\n\nclass RetryProvider {\n constructor(executor, defaultRetry = WEBSOCKET_RETRY_RATE_MS) {\n this.numAttempts = 0;\n this.executor = executor;\n this.hasActiveReconnection = false;\n this.defaultRetry = defaultRetry;\n }\n\n retry() {\n // Don't kickoff another reconnection attempt if we have one pending\n if (!this.hasActiveReconnection) {\n this.hasActiveReconnection = true;\n setTimeout(() => {\n this._execute();\n }, this._getDelay());\n }\n }\n\n _execute() {\n this.hasActiveReconnection = false;\n this.executor();\n this.numAttempts++;\n }\n\n connected() {\n this.numAttempts = 0;\n }\n\n _getDelay() {\n const calculatedDelay = Math.pow(2, this.numAttempts) * this.defaultRetry;\n return calculatedDelay <= MAX_WEBSOCKET_RETRY_RATE_MS ? calculatedDelay : MAX_WEBSOCKET_RETRY_RATE_MS;\n }\n\n getIsConnected() {\n return !this.numAttempts;\n }\n}\n\nexport { RetryProvider };","import Utils from \"./utils\";\nimport { LogManagerImpl, LogLevel, Logger } from \"./log\";\nimport {\n MIN_WEBSOCKET_LIFETIME_MS,\n WEBSOCKET_URL_VALID_TIME_MS,\n HEARTBEAT_INTERVAL_MS,\n ROUTE_KEY,\n CONN_STATE,\n MAX_CONSECUTIVE_FAILED_SUB_ATTEMPTS,\n TOPIC_SUBSCRIPTION_RETRY_INTERVAL_MS,\n MAX_WAIT_TIME_SUB_REQUEST_WITH_NO_RESPONSE_MS,\n MAX_CONSECUTIVE_SUB_REQUEST_WITH_NO_RESPONSE,\n NETWORK_CONN_CHECK_INTERVAL_MS,\n WEBSOCKET_REINIT_JITTER,\n LOG_MESSAGES,\n} from \"./constants\";\nimport { RetryProvider } from './retryProvider';\n\nlet logManagerInstance = null;\nconst WebSocketManager = function () {\n let enableDeepHeartbeat = false;\n\n const logger = logManagerInstance.getLogger({ prefix: LOG_MESSAGES.DEFAULT_PREFIX });\n\n let online = Utils.isNetworkOnline();\n\n let webSocket = {\n primary: null,\n secondary: null\n };\n\n let reconnectConfig = {\n reconnectWebSocket: true,\n websocketInitFailed: false,\n exponentialBackOffTime: 1000,\n exponentialTimeoutHandle: null,\n lifeTimeTimeoutHandle: null,\n webSocketInitCheckerTimeoutId: null,\n connState: null\n };\n\n let metrics = {\n connectWebSocketRetryCount: 0,\n connectionAttemptStartTime: null,\n noOpenConnectionsTimestamp: null\n };\n\n let heartbeatConfig = {\n pendingResponse: false,\n intervalHandle: null\n };\n\n let deepHeartbeatConfig = {\n pendingResponse: false,\n intervalHandle: null\n };\n\n let callbacks = {\n initFailure: new Set(),\n getWebSocketTransport: null,\n subscriptionUpdate: new Set(),\n subscriptionFailure: new Set(),\n topic: new Map(),\n allMessage: new Set(),\n connectionGain: new Set(),\n connectionLost: new Set(),\n connectionOpen: new Set(),\n connectionClose: new Set(),\n deepHeartbeatSuccess: new Set(),\n deepHeartbeatFailure: new Set(),\n topicFailure: new Set(),\n };\n\n let webSocketConfig = {\n connConfig: null,\n promiseHandle: null,\n promiseCompleted: true\n };\n\n let topicSubscription = {\n subscribed: new Set(),\n pending: new Set(),\n subscriptionHistory: new Set()\n };\n\n let topicSubscriptionConfig = {\n responseCheckIntervalId: null,\n requestCompleted: true,\n reSubscribeIntervalId: null,\n consecutiveFailedSubscribeAttempts: 0,\n consecutiveNoResponseRequest: 0\n };\n\n const reconnectionClient = new RetryProvider(() => { getWebSocketConnConfig(); });\n\n const invalidSendMessageRouteKeys = new Set([ROUTE_KEY.SUBSCRIBE, ROUTE_KEY.UNSUBSCRIBE, ROUTE_KEY.HEARTBEAT, ROUTE_KEY.DEEP_HEARTBEAT]);\n\n const networkConnectivityChecker = setInterval(function () {\n if (online !== Utils.isNetworkOnline()) {\n online = Utils.isNetworkOnline();\n if (!online) {\n logger.advancedLog(LOG_MESSAGES.NETWORK_OFFLINE);\n sendInternalLogToServer(logger.info(LOG_MESSAGES.NETWORK_OFFLINE));\n\n return;\n }\n const ws = getDefaultWebSocket();\n if (online && (!ws || isWebSocketState(ws, WebSocket.CLOSING) || isWebSocketState(ws, WebSocket.CLOSED))) {\n logger.advancedLog(LOG_MESSAGES.NETWORK_ONLINE);\n sendInternalLogToServer(logger.info(LOG_MESSAGES.NETWORK_ONLINE));\n\n getWebSocketConnConfig();\n }\n }\n }, NETWORK_CONN_CHECK_INTERVAL_MS);\n\n const invokeCallbacks = function (callbacks, response) {\n callbacks.forEach(function (callback) {\n try {\n callback(response);\n } catch (error) {\n sendInternalLogToServer(logger.error(\"Error executing callback\", error));\n }\n });\n };\n\n const getWebSocketStates = function (ws) {\n if (ws === null) return \"NULL\";\n switch (ws.readyState) {\n case WebSocket.CONNECTING:\n return \"CONNECTING\";\n case WebSocket.OPEN:\n return \"OPEN\";\n case WebSocket.CLOSING:\n return \"CLOSING\";\n case WebSocket.CLOSED:\n return \"CLOSED\";\n default:\n return \"UNDEFINED\";\n }\n };\n\n const printWebSocketState = function (event = \"\") {\n sendInternalLogToServer(logger.debug(\"[\" + event + \"] Primary WebSocket: \" + getWebSocketStates(webSocket.primary)\n + \" | \" + \"Secondary WebSocket: \" + getWebSocketStates(webSocket.secondary)));\n };\n\n const isWebSocketState = function (ws, webSocketStateCode) {\n return ws && ws.readyState === webSocketStateCode;\n };\n\n const isWebSocketOpen = function (ws) {\n return isWebSocketState(ws, WebSocket.OPEN);\n };\n\n const isWebSocketClosed = function (ws) {\n // undefined check is to address the limitation of testing framework\n return ws === null || ws.readyState === undefined || isWebSocketState(ws, WebSocket.CLOSED);\n };\n\n /**\n * This function is meant to handle the scenario when we have two web-sockets open\n * in such a scenario we always select secondary web-socket since all future operations\n * are supposed to be done by this secondary web-socket\n */\n const getDefaultWebSocket = function () {\n if (webSocket.secondary !== null) {\n return webSocket.secondary;\n }\n return webSocket.primary;\n };\n\n const isDefaultWebSocketOpen = function () {\n return isWebSocketOpen(getDefaultWebSocket());\n };\n\n const sendHeartBeat = function () {\n if (enableDeepHeartbeat && deepHeartbeatConfig.pendingResponse) {\n logger.advancedLog(LOG_MESSAGES.NO_DEEP_HEARTBEAT);\n sendInternalLogToServer(logger.warn(LOG_MESSAGES.NO_DEEP_HEARTBEAT));\n // trigger deepHeartbeatFailure - no response is received \n invokeCallbacks(callbacks.deepHeartbeatFailure, {\n timestamp: Date.now(),\n error: \"aws/ping response is not received\",\n });\n\n clearInterval(deepHeartbeatConfig.intervalHandle);\n deepHeartbeatConfig.pendingResponse = false;\n }\n if (heartbeatConfig.pendingResponse) {\n logger.advancedLog(LOG_MESSAGES.NO_HEARTBEAT);\n sendInternalLogToServer(logger.warn(LOG_MESSAGES.NO_HEARTBEAT));\n\n clearInterval(heartbeatConfig.intervalHandle);\n heartbeatConfig.intervalHandle = null;\n heartbeatConfig.pendingResponse = false;\n getWebSocketConnConfig();\n return;\n }\n if (isDefaultWebSocketOpen()) {\n if (enableDeepHeartbeat) {\n sendInternalLogToServer(logger.debug(LOG_MESSAGES.SENDING_DEEP_HEARTBEAT));\n getDefaultWebSocket().send(createWebSocketPayload(ROUTE_KEY.DEEP_HEARTBEAT));\n deepHeartbeatConfig.pendingResponse = true;\n }\n\n sendInternalLogToServer(logger.debug(LOG_MESSAGES.SENDING_HEARTBEAT));\n getDefaultWebSocket().send(createWebSocketPayload(ROUTE_KEY.HEARTBEAT));\n heartbeatConfig.pendingResponse = true;\n } else {\n if (enableDeepHeartbeat) {\n logger.advancedLog(LOG_MESSAGES.FAILED_DEEP_HEARTBEAT);\n sendInternalLogToServer(logger.warn(LOG_MESSAGES.FAILED_DEEP_HEARTBEAT));\n // trigger deepHeartbeatFailure - message is unable to be sent to aws/ping because websocket connection is not established.\n invokeCallbacks(callbacks.deepHeartbeatFailure, {\n timestamp: Date.now(),\n error: \"Unable to send message to aws/ping because websocket connection is not established.\"\n });\n }\n\n logger.advancedLog(LOG_MESSAGES.FAILED_HEARTBEAT);\n sendInternalLogToServer(logger.warn(LOG_MESSAGES.FAILED_HEARTBEAT));\n\n printWebSocketState(\"sendHeartBeat\");\n getWebSocketConnConfig();\n }\n };\n\n const resetWebSocketState = function () {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_RESET);\n reconnectConfig.exponentialBackOffTime = 1000;\n heartbeatConfig.pendingResponse = false;\n deepHeartbeatConfig.pendingResponse = false;\n\n reconnectConfig.reconnectWebSocket = true;\n\n clearTimeout(reconnectConfig.lifeTimeTimeoutHandle);\n clearInterval(heartbeatConfig.intervalHandle);\n clearInterval(deepHeartbeatConfig.intervalHandle);\n clearTimeout(reconnectConfig.exponentialTimeoutHandle);\n clearTimeout(reconnectConfig.webSocketInitCheckerTimeoutId);\n\n heartbeatConfig.intervalHandle = null;\n };\n\n const resetSubscriptions = function () {\n topicSubscriptionConfig.consecutiveFailedSubscribeAttempts = 0;\n topicSubscriptionConfig.consecutiveNoResponseRequest = 0;\n clearInterval(topicSubscriptionConfig.responseCheckIntervalId);\n clearInterval(topicSubscriptionConfig.reSubscribeIntervalId);\n };\n\n const resetMetrics = function () {\n metrics.connectWebSocketRetryCount = 0;\n metrics.connectionAttemptStartTime = null;\n metrics.noOpenConnectionsTimestamp = null;\n };\n\n const webSocketOnOpen = function () {\n // Mark connection as successful; reset the number of reconnect attempts to 0.\n reconnectionClient.connected();\n\n try {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_ESTABLISHED);\n sendInternalLogToServer(logger.info(LOG_MESSAGES.WEBSOCKET_CONNECTION_ESTABLISHED));\n\n printWebSocketState(\"webSocketOnOpen\");\n if (reconnectConfig.connState === null || reconnectConfig.connState === CONN_STATE.DISCONNECTED) {\n invokeCallbacks(callbacks.connectionGain);\n }\n reconnectConfig.connState = CONN_STATE.CONNECTED;\n\n // Report number of retries to open and record ws open time\n const now = Date.now();\n invokeCallbacks(callbacks.connectionOpen, {\n connectWebSocketRetryCount: metrics.connectWebSocketRetryCount,\n connectionAttemptStartTime: metrics.connectionAttemptStartTime,\n noOpenConnectionsTimestamp: metrics.noOpenConnectionsTimestamp,\n connectionEstablishedTime: now,\n timeToConnect: now - metrics.connectionAttemptStartTime,\n timeWithoutConnection:\n metrics.noOpenConnectionsTimestamp ? now - metrics.noOpenConnectionsTimestamp : null\n });\n\n resetMetrics();\n resetWebSocketState();\n getDefaultWebSocket().openTimestamp = Date.now(); // record open time\n\n // early closure of primary web socket\n if (topicSubscription.subscribed.size === 0 && isWebSocketOpen(webSocket.secondary)) {\n closeSpecificWebSocket(webSocket.primary, \"[Primary WebSocket] Closing WebSocket\");\n }\n if (topicSubscription.subscribed.size > 0 || topicSubscription.pending.size > 0) {\n if (isWebSocketOpen(webSocket.secondary)) {\n sendInternalLogToServer(logger.info(\"Subscribing secondary websocket to topics of primary websocket\"));\n }\n topicSubscription.subscribed.forEach(topic => {\n topicSubscription.subscriptionHistory.add(topic);\n topicSubscription.pending.add(topic);\n });\n topicSubscription.subscribed.clear();\n subscribePendingTopics();\n }\n\n sendHeartBeat();\n if (heartbeatConfig.intervalHandle !== null) {\n clearInterval(heartbeatConfig.intervalHandle);\n }\n heartbeatConfig.intervalHandle = setInterval(sendHeartBeat, HEARTBEAT_INTERVAL_MS);\n\n const webSocketLifetimeTimeout = webSocketConfig.connConfig.webSocketTransport.transportLifeTimeInSeconds * 1000;\n sendInternalLogToServer(logger.debug(\"Scheduling WebSocket manager reconnection, after delay \" + webSocketLifetimeTimeout + \" ms\"));\n\n reconnectConfig.lifeTimeTimeoutHandle = setTimeout(function () {\n sendInternalLogToServer(logger.debug(\"Starting scheduled WebSocket manager reconnection\"));\n\n getWebSocketConnConfig();\n }, webSocketLifetimeTimeout);\n } catch (error) {\n sendInternalLogToServer(logger.error(\"Error after establishing WebSocket connection\", error));\n }\n };\n\n const webSocketOnClose = function (event, ws) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_CLOSED, JSON.stringify(event));\n sendInternalLogToServer(logger.info(LOG_MESSAGES.WEBSOCKET_CONNECTION_CLOSED, JSON.stringify(event)));\n\n printWebSocketState(\"webSocketOnClose before-cleanup\");\n\n invokeCallbacks(callbacks.connectionClose, {\n openTimestamp: ws.openTimestamp,\n closeTimestamp: Date.now(),\n connectionDuration: Date.now() - ws.openTimestamp,\n code: event.code,\n reason: event.reason\n });\n\n if (isWebSocketClosed(webSocket.primary)) {\n webSocket.primary = null;\n }\n if (isWebSocketClosed(webSocket.secondary)) {\n webSocket.secondary = null;\n }\n if (!reconnectConfig.reconnectWebSocket) {\n return;\n }\n if (!isWebSocketOpen(webSocket.primary) && !isWebSocketOpen(webSocket.secondary)) {\n sendInternalLogToServer(logger.warn(\"Neither primary websocket and nor secondary websocket have open connections, attempting to re-establish connection\"));\n\n if (reconnectConfig.connState === CONN_STATE.DISCONNECTED) {\n /**\n * This check is required in the scenario where WS Server shuts-down and closes all active\n * WS Client connections and WS Server takes about a minute to become active again, in this\n * scenario WS Client's onClose is triggered and then WSM start reconnect logic immediately but all\n * connect request to WS Server would fail and WS Client's onError callback would be triggered\n * followed WS Client's onClose callback and hence \"connectionLost\" callback would be invoked several\n * times and this behavior is redundant\n */\n sendInternalLogToServer(logger.info(\"Ignoring connectionLost callback invocation\"));\n } else {\n invokeCallbacks(callbacks.connectionLost, {\n openTimestamp: ws.openTimestamp,\n closeTimestamp: Date.now(),\n connectionDuration: Date.now() - ws.openTimestamp,\n code: event.code,\n reason: event.reason\n });\n metrics.noOpenConnectionsTimestamp = Date.now();\n }\n reconnectConfig.connState = CONN_STATE.DISCONNECTED;\n getWebSocketConnConfig();\n } else if (isWebSocketClosed(webSocket.primary) && isWebSocketOpen(webSocket.secondary)) {\n sendInternalLogToServer(logger.info(\"[Primary] WebSocket Cleanly Closed\"));\n\n webSocket.primary = webSocket.secondary;\n webSocket.secondary = null;\n }\n printWebSocketState(\"webSocketOnClose after-cleanup\");\n };\n\n const webSocketOnError = function (event) {\n printWebSocketState(\"webSocketOnError\");\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_ERROR, JSON.stringify(event));\n sendInternalLogToServer(logger.error(LOG_MESSAGES.WEBSOCKET_CONNECTION_ERROR, JSON.stringify(event)));\n const isConnected = reconnectionClient.getIsConnected();\n\n if (isConnected) {\n getWebSocketConnConfig();\n } else {\n reconnectionClient.retry();\n }\n };\n\n const webSocketOnMessage = function (event) {\n const response = JSON.parse(event.data);\n\n switch (response.topic) {\n\n case ROUTE_KEY.SUBSCRIBE: {\n sendInternalLogToServer(logger.debug(\"Subscription Message received from webSocket server\", event.data));\n\n topicSubscriptionConfig.requestCompleted = true;\n topicSubscriptionConfig.consecutiveNoResponseRequest = 0;\n\n if (response.content.status === \"success\") {\n topicSubscriptionConfig.consecutiveFailedSubscribeAttempts = 0;\n response.content.topics.forEach(topicName => {\n topicSubscription.subscriptionHistory.delete(topicName);\n topicSubscription.pending.delete(topicName);\n topicSubscription.subscribed.add(topicName);\n });\n if (topicSubscription.subscriptionHistory.size === 0) {\n if (isWebSocketOpen(webSocket.secondary)) {\n sendInternalLogToServer(logger.info(\"Successfully subscribed secondary websocket to all topics of primary websocket\"));\n\n closeSpecificWebSocket(webSocket.primary, \"[Primary WebSocket] Closing WebSocket\");\n }\n } else {\n subscribePendingTopics();\n }\n invokeCallbacks(callbacks.subscriptionUpdate, response);\n\n } else {\n clearInterval(topicSubscriptionConfig.reSubscribeIntervalId);\n ++topicSubscriptionConfig.consecutiveFailedSubscribeAttempts;\n if (topicSubscriptionConfig.consecutiveFailedSubscribeAttempts === MAX_CONSECUTIVE_FAILED_SUB_ATTEMPTS) {\n invokeCallbacks(callbacks.subscriptionFailure, response);\n topicSubscriptionConfig.consecutiveFailedSubscribeAttempts = 0;\n return;\n }\n topicSubscriptionConfig.reSubscribeIntervalId = setInterval(function () {\n subscribePendingTopics();\n }, TOPIC_SUBSCRIPTION_RETRY_INTERVAL_MS);\n }\n break;\n }\n case ROUTE_KEY.HEARTBEAT: {\n sendInternalLogToServer(logger.debug(LOG_MESSAGES.HEARTBEAT_RECEIVED));\n heartbeatConfig.pendingResponse = false;\n if (heartbeatConfig.intervalHandle === null) {\n heartbeatConfig.intervalHandle = setInterval(sendHeartBeat, HEARTBEAT_INTERVAL_MS);\n }\n break;\n }\n case ROUTE_KEY.DEEP_HEARTBEAT: {\n sendInternalLogToServer(logger.debug(LOG_MESSAGES.DEEP_HEARTBEAT_RECEIVED));\n deepHeartbeatConfig.pendingResponse = false;\n \n if (response.statusCode === 200) {// trigger deepHeartbeatSuccess if 200 response is received\n invokeCallbacks(callbacks.deepHeartbeatSuccess, {\n timestamp: Date.now(),\n });\n } else {//trigger deepHeartbeatFailure if 500 response is received\n invokeCallbacks(callbacks.deepHeartbeatFailure, {\n timestamp: Date.now(),\n statusCode: response.statusCode,\n statusContent: response.statusContent,\n });\n }\n break;\n }\n default: {\n if (response.topic) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_MESSAGE_RECEIVED, response.topic);\n sendInternalLogToServer(logger.debug(LOG_MESSAGES.WEBSOCKET_MESSAGE_RECEIVED + response.topic));\n\n if (isWebSocketOpen(webSocket.primary) && isWebSocketOpen(webSocket.secondary)\n && topicSubscription.subscriptionHistory.size === 0 && this === webSocket.primary) {\n /**\n * This block is to handle scenario when both primary and secondary socket have subscribed to\n * a common topic but we are facing difficulty in closing the primary socket, then in this\n * situation messages will be received by both primary and secondary web socket\n */\n sendInternalLogToServer(logger.warn(\"Ignoring Message for Topic \" + response.topic + \", to avoid duplicates\"));\n\n return;\n }\n\n if (callbacks.allMessage.size === 0 && callbacks.topic.size === 0) {\n sendInternalLogToServer(logger.warn('No registered callback listener for Topic', response.topic));\n\n return;\n }\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_MESSAGE_SUCCESS, response.topic);\n invokeCallbacks(callbacks.allMessage, response);\n if (callbacks.topic.has(response.topic)) {\n invokeCallbacks(callbacks.topic.get(response.topic), response);\n }\n\n } else if (response.message) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_MESSAGE_ERROR, response);\n sendInternalLogToServer(logger.warn(LOG_MESSAGES.WEBSOCKET_MESSAGE_ERROR, response));\n\n // trigger topicFailure if Forbidden message OR Timeout message is received\n invokeCallbacks(callbacks.topicFailure, {\n timestamp: Date.now(),\n errorMessage: response.message,\n connectionId: response.connectionId,\n requestId: response.requestId,\n });\n } else {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_MESSAGE_INVALID, response);\n sendInternalLogToServer(logger.warn(LOG_MESSAGES.WEBSOCKET_MESSAGE_INVALID, response));\n }\n }\n }\n };\n\n const subscribePendingTopics = function () {\n if (topicSubscriptionConfig.consecutiveNoResponseRequest > MAX_CONSECUTIVE_SUB_REQUEST_WITH_NO_RESPONSE) {\n sendInternalLogToServer(logger.warn(\"Ignoring subscribePendingTopics since we have exhausted max subscription retries with no response\"));\n\n invokeCallbacks(callbacks.subscriptionFailure, Utils.getSubscriptionResponse(ROUTE_KEY.SUBSCRIBE, false, Array.from(topicSubscription.pending)));\n return;\n }\n if (!isDefaultWebSocketOpen()) {\n sendInternalLogToServer(logger.warn(\"Ignoring subscribePendingTopics call since Default WebSocket is not open\"));\n\n return;\n }\n if (Array.from(topicSubscription.pending).length === 0) {\n return;\n }\n\n clearInterval(topicSubscriptionConfig.responseCheckIntervalId);\n\n getDefaultWebSocket().send(createWebSocketPayload(ROUTE_KEY.SUBSCRIBE, {\n \"topics\": Array.from(topicSubscription.pending)\n }));\n topicSubscriptionConfig.requestCompleted = false;\n\n // This callback ensure that some response was received for subscription request\n topicSubscriptionConfig.responseCheckIntervalId = setInterval(function () {\n if (!topicSubscriptionConfig.requestCompleted) {\n ++topicSubscriptionConfig.consecutiveNoResponseRequest;\n subscribePendingTopics();\n }\n }, MAX_WAIT_TIME_SUB_REQUEST_WITH_NO_RESPONSE_MS);\n };\n\n const closeSpecificWebSocket = function (ws, reason) {\n if (isWebSocketState(ws, WebSocket.CONNECTING) || isWebSocketState(ws, WebSocket.OPEN)) {\n ws.close(1000, reason);\n } else {\n sendInternalLogToServer(logger.warn(\"Ignoring WebSocket Close request, WebSocket State: \" + getWebSocketStates(ws)));\n }\n };\n\n const closeWebSocket = function (reason) {\n closeSpecificWebSocket(webSocket.primary, \"[Primary] WebSocket \" + reason);\n closeSpecificWebSocket(webSocket.secondary, \"[Secondary] WebSocket \" + reason);\n };\n\n const retryWebSocketInitialization = function () {\n metrics.connectWebSocketRetryCount++;\n const waitTime = Utils.addJitter(reconnectConfig.exponentialBackOffTime, WEBSOCKET_REINIT_JITTER);\n if (Date.now() + waitTime <= webSocketConfig.connConfig.urlConnValidTime) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_REINITIALIZATION);\n sendInternalLogToServer(logger.debug(LOG_MESSAGES.WEBSOCKET_REINITIALIZATION + waitTime + \" ms\"));\n\n reconnectConfig.exponentialTimeoutHandle = setTimeout(() => initWebSocket(), waitTime);\n reconnectConfig.exponentialBackOffTime *= 2;\n } else {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_REINITIALIZATION_TIMEOUT);\n sendInternalLogToServer(logger.warn(LOG_MESSAGES.WEBSOCKET_REINITIALIZATION_TIMEOUT));\n\n getWebSocketConnConfig();\n }\n };\n\n const terminateWebSocketManager = function (response) {\n resetWebSocketState();\n resetSubscriptions();\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_INITIALIZATION_FAILED, response);\n sendInternalLogToServer(logger.error(LOG_MESSAGES.WEBSOCKET_INITIALIZATION_FAILED));\n\n reconnectConfig.websocketInitFailed = true;\n closeWebSocket(LOG_MESSAGES.WEBSOCKET_TERMINATED);\n clearInterval(networkConnectivityChecker);\n invokeCallbacks(callbacks.initFailure, {\n connectWebSocketRetryCount: metrics.connectWebSocketRetryCount,\n connectionAttemptStartTime: metrics.connectionAttemptStartTime,\n reason: response\n });\n resetMetrics();\n };\n\n const createWebSocketPayload = function (key, content) {\n return JSON.stringify({\n \"topic\": key,\n \"content\": content\n });\n };\n\n const sendMessage = function (payload) {\n Utils.assertIsObject(payload, \"payload\");\n if (payload.topic === undefined || invalidSendMessageRouteKeys.has(payload.topic)) {\n sendInternalLogToServer(logger.warn(\"Cannot send message, Invalid topic\", payload));\n\n return;\n }\n try {\n payload = JSON.stringify(payload);\n } catch (error) {\n sendInternalLogToServer(logger.warn(\"Error stringify message\", payload));\n\n return;\n }\n if (isDefaultWebSocketOpen()) {\n getDefaultWebSocket().send(payload);\n } else {\n sendInternalLogToServer(logger.warn(\"Cannot send message, web socket connection is not open\"));\n }\n };\n\n const subscribeTopics = function (topics) {\n Utils.assertNotNull(topics, 'topics');\n Utils.assertIsList(topics);\n\n topics.forEach(topic => {\n if (!topicSubscription.subscribed.has(topic)) {\n topicSubscription.pending.add(topic);\n }\n });\n // This ensure all participant-request to subscribe to topic chat are served at least once\n topicSubscriptionConfig.consecutiveNoResponseRequest = 0;\n subscribePendingTopics();\n };\n\n const validWebSocketConnConfig = function (connConfig) {\n if (Utils.isObject(connConfig) && Utils.isObject(connConfig.webSocketTransport)\n && Utils.isNonEmptyString(connConfig.webSocketTransport.url)\n && Utils.validWSUrl(connConfig.webSocketTransport.url) &&\n connConfig.webSocketTransport.transportLifeTimeInSeconds * 1000 >= MIN_WEBSOCKET_LIFETIME_MS) {\n return true;\n }\n sendInternalLogToServer(logger.error(\"Invalid WebSocket Connection Configuration\", connConfig));\n\n return false;\n };\n\n const getWebSocketConnConfig = function () {\n if (!Utils.isNetworkOnline()) {\n logger.advancedLog(LOG_MESSAGES.NETWORK_OFFLINE_WARNING);\n sendInternalLogToServer(logger.info(LOG_MESSAGES.NETWORK_OFFLINE_WARNING));\n\n return;\n }\n if (reconnectConfig.websocketInitFailed) {\n sendInternalLogToServer(logger.debug(\"WebSocket Init had failed, ignoring this getWebSocketConnConfig request\"));\n return;\n }\n if (!webSocketConfig.promiseCompleted) {\n sendInternalLogToServer(logger.debug(\"There is an ongoing getWebSocketConnConfig request, this request will be ignored\"));\n return;\n }\n resetWebSocketState();\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_NEW_CONNECTION);\n sendInternalLogToServer(logger.info(LOG_MESSAGES.WEBSOCKET_NEW_CONNECTION));\n\n metrics.connectionAttemptStartTime = metrics.connectionAttemptStartTime || Date.now();\n webSocketConfig.promiseCompleted = false;\n webSocketConfig.promiseHandle = callbacks.getWebSocketTransport();\n return webSocketConfig.promiseHandle\n .then(function (response) {\n webSocketConfig.promiseCompleted = true;\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_SUCCESS);\n sendInternalLogToServer(logger.debug(LOG_MESSAGES.WEBSOCKET_CONNECTION_SUCCESS, response));\n\n if (!validWebSocketConnConfig(response)) {\n terminateWebSocketManager(\"Invalid WebSocket connection configuration: \" + response);\n return { webSocketConnectionFailed: true };\n }\n webSocketConfig.connConfig = response;\n // Ideally this URL validity time should be provided by server\n webSocketConfig.connConfig.urlConnValidTime = Date.now() + WEBSOCKET_URL_VALID_TIME_MS;\n return initWebSocket();\n },\n function (reason) {\n webSocketConfig.promiseCompleted = true;\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_FAILURE);\n sendInternalLogToServer(logger.error(LOG_MESSAGES.WEBSOCKET_CONNECTION_FAILURE, reason));\n\n // If our connection fails because of network failure, we want to retry\n if (Utils.isNetworkFailure(reason)) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_RETRY + JSON.stringify(reason));\n sendInternalLogToServer(logger.info(LOG_MESSAGES.WEBSOCKET_CONNECTION_RETRY + JSON.stringify(reason)));\n reconnectionClient.retry();\n } else {\n // If we're not going to retry, we should terminate WSM\n terminateWebSocketManager(\"Failed to fetch webSocket connection configuration: \" + JSON.stringify(reason));\n }\n return { webSocketConnectionFailed: true };\n });\n };\n\n const initWebSocket = function () {\n if (reconnectConfig.websocketInitFailed) {\n sendInternalLogToServer(logger.info(\"web-socket initializing had failed, aborting re-init\"));\n\n return { webSocketConnectionFailed: true };\n }\n if (!Utils.isNetworkOnline()) {\n sendInternalLogToServer(logger.warn(\"System is offline aborting web-socket init\"));\n\n return { webSocketConnectionFailed: true };\n }\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_INIT);\n sendInternalLogToServer(logger.info(LOG_MESSAGES.WEBSOCKET_INIT));\n\n printWebSocketState(\"initWebSocket\");\n try {\n if (validWebSocketConnConfig(webSocketConfig.connConfig)) {\n let ws = null;\n if (isWebSocketOpen(webSocket.primary)) {\n sendInternalLogToServer(logger.debug(\"Primary Socket connection is already open\"));\n\n if (!isWebSocketState(webSocket.secondary, WebSocket.CONNECTING)) {\n sendInternalLogToServer(logger.debug(\"Establishing a secondary web-socket connection\"));\n reconnectionClient.numAttempts = 0;\n webSocket.secondary = getNewWebSocket();\n }\n ws = webSocket.secondary;\n } else {\n if (!isWebSocketState(webSocket.primary, WebSocket.CONNECTING)) {\n sendInternalLogToServer(logger.debug(\"Establishing a primary web-socket connection\"));\n\n webSocket.primary = getNewWebSocket();\n }\n ws = webSocket.primary;\n }\n\n // WebSocket creation is async task hence we Wait for 1sec before any potential retry\n reconnectConfig.webSocketInitCheckerTimeoutId = setTimeout(function () {\n if (!isWebSocketOpen(ws)) {\n retryWebSocketInitialization();\n }\n }, 1000);\n return { webSocketConnectionFailed: false };\n }\n } catch (error) {\n sendInternalLogToServer(logger.error(\"Error Initializing web-socket-manager\", error));\n\n terminateWebSocketManager(\"Failed to initialize new WebSocket: \" + error.message);\n return { webSocketConnectionFailed: true };\n }\n };\n\n const getNewWebSocket = function () {\n let ws = new WebSocket(webSocketConfig.connConfig.webSocketTransport.url);\n ws.addEventListener(\"open\", webSocketOnOpen);\n ws.addEventListener(\"message\", webSocketOnMessage);\n ws.addEventListener(\"error\", webSocketOnError);\n ws.addEventListener(\"close\", event => webSocketOnClose(event, ws));\n return ws;\n };\n\n const onConnectionOpen = function (cb) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_OPEN);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.connectionOpen.add(cb);\n return () => callbacks.connectionOpen.delete(cb);\n };\n\n const onConnectionClose = function (cb) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_CLOSE);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.connectionClose.add(cb);\n return () => callbacks.connectionClose.delete(cb);\n };\n\n const onConnectionGain = function (cb) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_GAIN);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.connectionGain.add(cb);\n if (isDefaultWebSocketOpen()) {\n cb();\n }\n return () => callbacks.connectionGain.delete(cb);\n };\n\n const onConnectionLost = function (cb) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_CONNECTION_LOST);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.connectionLost.add(cb);\n if (reconnectConfig.connState === CONN_STATE.DISCONNECTED) {\n cb();\n }\n return () => callbacks.connectionLost.delete(cb);\n };\n\n const onInitFailure = function (cb) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_INIT_FAILURE);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.initFailure.add(cb);\n if (reconnectConfig.websocketInitFailed) {\n cb();\n }\n return () => callbacks.initFailure.delete(cb);\n };\n\n const init = function (transportHandle) {\n Utils.assertTrue(Utils.isFunction(transportHandle), 'transportHandle must be a function');\n if (callbacks.getWebSocketTransport !== null) {\n sendInternalLogToServer(logger.warn(\"Web Socket Manager was already initialized\"));\n return;\n }\n callbacks.getWebSocketTransport = transportHandle;\n\n return getWebSocketConnConfig();\n };\n\n const onSubscriptionUpdate = function (cb) {\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.subscriptionUpdate.add(cb);\n return () => callbacks.subscriptionUpdate.delete(cb);\n };\n\n const onSubscriptionFailure = function (cb) {\n logger.advancedLog(LOG_MESSAGES.WEBSOCKET_SUBSCRIPTION_FAILURE);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.subscriptionFailure.add(cb);\n return () => callbacks.subscriptionFailure.delete(cb);\n };\n\n const onMessage = function (topicName, cb) {\n Utils.assertNotNull(topicName, 'topicName');\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n if (callbacks.topic.has(topicName)) {\n callbacks.topic.get(topicName).add(cb);\n } else {\n callbacks.topic.set(topicName, new Set([cb]));\n }\n return () => callbacks.topic.get(topicName).delete(cb);\n };\n\n const onAllMessage = function (cb) {\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.allMessage.add(cb);\n return () => callbacks.allMessage.delete(cb);\n };\n\n const sendInternalLogToServer = function (logEntry) {\n if (logEntry && typeof logEntry.sendInternalLogToServer === \"function\")\n logEntry.sendInternalLogToServer();\n\n return logEntry;\n };\n\n const deepHeartbeatHandler = function () {\n enableDeepHeartbeat = true;\n };\n\n const onDeepHeartbeatSuccess = function (cb) {\n logger.advancedLog(LOG_MESSAGES.DEEP_HEARTBEAT_SUCCESS);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.deepHeartbeatSuccess.add(cb);\n return () => callbacks.deepHeartbeatSuccess.delete(cb);\n };\n\n const onDeepHeartbeatFailure = function (cb) {\n logger.advancedLog(LOG_MESSAGES.DEEP_HEARTBEAT_FAILURE);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.deepHeartbeatFailure.add(cb);\n return () => callbacks.deepHeartbeatFailure.delete(cb);\n };\n\n const onTopicFailure = function (cb) {\n logger.advancedLog(LOG_MESSAGES.TOPIC_FAILURE);\n Utils.assertTrue(Utils.isFunction(cb), 'cb must be a function');\n callbacks.topicFailure.add(cb);\n return () => callbacks.topicFailure.delete(cb);\n };\n\n this.init = init;\n this.onInitFailure = onInitFailure;\n this.onConnectionOpen = onConnectionOpen;\n this.onConnectionClose = onConnectionClose;\n this.onConnectionGain = onConnectionGain;\n this.onConnectionLost = onConnectionLost;\n this.onSubscriptionUpdate = onSubscriptionUpdate;\n this.onSubscriptionFailure = onSubscriptionFailure;\n this.onMessage = onMessage;\n this.onAllMessage = onAllMessage;\n this.subscribeTopics = subscribeTopics;\n this.sendMessage = sendMessage;\n this.deepHeartbeatHandler = deepHeartbeatHandler;\n this.onDeepHeartbeatSuccess = onDeepHeartbeatSuccess;\n this.onDeepHeartbeatFailure = onDeepHeartbeatFailure;\n this.onTopicFailure = onTopicFailure;\n\n this.closeWebSocket = function () {\n resetWebSocketState();\n resetSubscriptions();\n reconnectConfig.reconnectWebSocket = false;\n clearInterval(networkConnectivityChecker);\n closeWebSocket(\"User request to close WebSocket\");\n };\n\n this.terminateWebSocketManager = terminateWebSocketManager;\n};\n\nconst WebSocketManagerConstructor = (logMetaData) => {\n if (!logManagerInstance) {\n logManagerInstance = new LogManagerImpl(logMetaData);\n }\n if (!logManagerInstance.hasLogMetaData()) {\n logManagerInstance.setLogMetaData(logMetaData);\n }\n if (!logMetaData) {\n console.info(\"********Missing metaData for logs from websocketManager: initialize websocketManager using create(metaData)*******\");\n }\n return new WebSocketManager();\n};\n\nconst setGlobalConfig = config => {\n const loggerConfig = config && config.loggerConfig;\n if (!logManagerInstance) {\n logManagerInstance = new LogManagerImpl();\n }\n logManagerInstance.updateLoggerConfig(loggerConfig);\n\n const webSocketManagerConfig = config && config.webSocketManagerConfig;\n const customIsNetworkOnline = webSocketManagerConfig && webSocketManagerConfig.isNetworkOnline;\n if (customIsNetworkOnline && typeof customIsNetworkOnline === \"function\") {\n Utils.isNetworkOnline = customIsNetworkOnline;\n }\n};\n\nconst WebSocketManagerObject = {\n create: WebSocketManagerConstructor,\n setGlobalConfig: setGlobalConfig,\n LogLevel: LogLevel,\n Logger: Logger,\n};\n\nexport { WebSocketManagerObject };\n","/*eslint no-unused-vars: \"off\"*/\nimport { WebSocketManagerObject } from \"./webSocketManager\";\n\nglobal.connect = global.connect || {};\nconnect.WebSocketManager = WebSocketManagerObject;\n\nexport const WebSocketManager = WebSocketManagerObject;\n\nexport default WebSocketManager;"],"sourceRoot":""} \ No newline at end of file