amazon-cognito-identity-js
Advanced tools
Comparing version 1.26.0 to 1.27.0
@@ -17,3 +17,3 @@ /*! | ||
*/ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("aws-sdk/global"),require("aws-sdk/clients/cognitoidentityserviceprovider")):"function"==typeof define&&define.amd?define(["aws-sdk/global","aws-sdk/clients/cognitoidentityserviceprovider"],t):"object"==typeof exports?exports.AmazonCognitoIdentity=t(require("aws-sdk/global"),require("aws-sdk/clients/cognitoidentityserviceprovider")):e.AmazonCognitoIdentity=t(e.AWSCognito,e.AWSCognito.CognitoIdentityServiceProvider)}(this,function(e,t){return function(e){function t(i){if(n[i])return n[i].exports;var s=n[i]={exports:{},id:i,loaded:!1};return e[i].call(s.exports,s,s.exports,t),s.loaded=!0,s.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function s(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=n(17);Object.keys(o).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}})});var r=n(13),a=s(r),u=i(o);Object.keys(u).forEach(function(e){a.default[e]=u[e]})},function(t,n){t.exports=e},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var o=n(1),r=n(3),a=i(r),u="FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",c="userAttributes.",l=function(){function e(t){s(this,e),this.N=new a.default(u,16),this.g=new a.default("2",16),this.k=new a.default(this.hexHash("00"+this.N.toString(16)+"0"+this.g.toString(16)),16),this.smallAValue=this.generateRandomSmallA(),this.getLargeAValue(function(){}),this.infoBits=new o.util.Buffer("Caldera Derived Key","utf8"),this.poolName=t}return e.prototype.getSmallAValue=function(){return this.smallAValue},e.prototype.getLargeAValue=function(e){var t=this;this.largeAValue?e(null,this.largeAValue):this.calculateA(this.smallAValue,function(n,i){n&&e(n,null),t.largeAValue=i,e(null,t.largeAValue)})},e.prototype.generateRandomSmallA=function(){var e=o.util.crypto.lib.randomBytes(128).toString("hex"),t=new a.default(e,16),n=t.mod(this.N);return n},e.prototype.generateRandomString=function(){return o.util.crypto.lib.randomBytes(40).toString("base64")},e.prototype.getRandomPassword=function(){return this.randomPassword},e.prototype.getSaltDevices=function(){return this.SaltToHashDevices},e.prototype.getVerifierDevices=function(){return this.verifierDevices},e.prototype.generateHashDevice=function(e,t,n){var i=this;this.randomPassword=this.generateRandomString();var s=""+e+t+":"+this.randomPassword,r=this.hash(s),u=o.util.crypto.lib.randomBytes(16).toString("hex");this.SaltToHashDevices=this.padHex(new a.default(u,16)),this.g.modPow(new a.default(this.hexHash(this.SaltToHashDevices+r),16),this.N,function(e,t){e&&n(e,null),i.verifierDevices=i.padHex(t),n(null,null)})},e.prototype.calculateA=function(e,t){var n=this;this.g.modPow(e,this.N,function(e,i){e&&t(e,null),i.mod(n.N).equals(a.default.ZERO)&&t(new Error("Illegal paramater. A mod N cannot be 0."),null),t(null,i)})},e.prototype.calculateU=function(e,t){this.UHexHash=this.hexHash(this.padHex(e)+this.padHex(t));var n=new a.default(this.UHexHash,16);return n},e.prototype.hash=function(e){var t=o.util.crypto.sha256(e,"hex");return new Array(64-t.length).join("0")+t},e.prototype.hexHash=function(e){return this.hash(new o.util.Buffer(e,"hex"))},e.prototype.computehkdf=function(e,t){var n=o.util.crypto.hmac(t,e,"buffer","sha256"),i=o.util.buffer.concat([this.infoBits,new o.util.Buffer(String.fromCharCode(1),"utf8")]),s=o.util.crypto.hmac(n,i,"buffer","sha256");return s.slice(0,16)},e.prototype.getPasswordAuthenticationKey=function(e,t,n,i,s){var r=this;if(n.mod(this.N).equals(a.default.ZERO))throw new Error("B cannot be zero.");if(this.UValue=this.calculateU(this.largeAValue,n),this.UValue.equals(a.default.ZERO))throw new Error("U cannot be zero.");var u=""+this.poolName+e+":"+t,c=this.hash(u),l=new a.default(this.hexHash(this.padHex(i)+c),16);this.calculateS(l,n,function(e,t){e&&s(e,null);var n=r.computehkdf(new o.util.Buffer(r.padHex(t),"hex"),new o.util.Buffer(r.padHex(r.UValue.toString(16)),"hex"));s(null,n)})},e.prototype.calculateS=function(e,t,n){var i=this;this.g.modPow(e,this.N,function(s,o){s&&n(s,null);var r=t.subtract(i.k.multiply(o));r.modPow(i.smallAValue.add(i.UValue.multiply(e)),i.N,function(e,t){e&&n(e,null),n(null,t.mod(i.N))})})},e.prototype.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return c},e.prototype.padHex=function(e){var t=e.toString(16);return t.length%2===1?t="0"+t:"89ABCDEFabcdef".indexOf(t[0])!==-1&&(t="00"+t),t},e}();t.default=l},function(e,t){"use strict";function n(e,t){null!=e&&this.fromString(e,t)}function i(){return new n(null)}function s(e,t,n,i,s,o){for(;--o>=0;){var r=t*this[e++]+n[i]+s;s=Math.floor(r/67108864),n[i++]=67108863&r}return s}function o(e,t,n,i,s,o){for(var r=32767&t,a=t>>15;--o>=0;){var u=32767&this[e],c=this[e++]>>15,l=a*u+c*r;u=r*u+((32767&l)<<15)+n[i]+(1073741823&s),s=(u>>>30)+(l>>>15)+a*c+(s>>>30),n[i++]=1073741823&u}return s}function r(e,t,n,i,s,o){for(var r=16383&t,a=t>>14;--o>=0;){var u=16383&this[e],c=this[e++]>>14,l=a*u+c*r;u=r*u+((16383&l)<<14)+n[i]+s,s=(u>>28)+(l>>14)+a*c,n[i++]=268435455&u}return s}function a(e){return z.charAt(e)}function u(e,t){var n=Q[e.charCodeAt(t)];return null==n?-1:n}function c(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s}function l(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0}function h(e){var t=i();return t.fromInt(e),t}function f(e,t){var i;if(16==t)i=4;else if(8==t)i=3;else if(2==t)i=1;else if(32==t)i=5;else{if(4!=t)throw new Error("Only radix 2, 4, 8, 16, 32 are supported");i=2}this.t=0,this.s=0;for(var s=e.length,o=!1,r=0;--s>=0;){var a=u(e,s);a<0?"-"==e.charAt(s)&&(o=!0):(o=!1,0==r?this[this.t++]=a:r+i>this.DB?(this[this.t-1]|=(a&(1<<this.DB-r)-1)<<r,this[this.t++]=a>>this.DB-r):this[this.t-1]|=a<<r,r+=i,r>=this.DB&&(r-=this.DB))}this.clamp(),o&&n.ZERO.subTo(this,this)}function d(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t}function p(e){if(this.s<0)return"-"+this.negate().toString();var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)throw new Error("Only radix 2, 4, 8, 16, 32 are supported");t=2}var n,i=(1<<t)-1,s=!1,o="",r=this.t,u=this.DB-r*this.DB%t;if(r-- >0)for(u<this.DB&&(n=this[r]>>u)>0&&(s=!0,o=a(n));r>=0;)u<t?(n=(this[r]&(1<<u)-1)<<t-u,n|=this[--r]>>(u+=this.DB-t)):(n=this[r]>>(u-=t)&i,u<=0&&(u+=this.DB,--r)),n>0&&(s=!0),s&&(o+=a(n));return s?o:"0"}function g(){var e=i();return n.ZERO.subTo(this,e),e}function v(){return this.s<0?this.negate():this}function m(e){var t=this.s-e.s;if(0!=t)return t;var n=this.t;if(t=n-e.t,0!=t)return this.s<0?-t:t;for(;--n>=0;)if(0!=(t=this[n]-e[n]))return t;return 0}function S(e){var t,n=1;return 0!=(t=e>>>16)&&(e=t,n+=16),0!=(t=e>>8)&&(e=t,n+=8),0!=(t=e>>4)&&(e=t,n+=4),0!=(t=e>>2)&&(e=t,n+=2),0!=(t=e>>1)&&(e=t,n+=1),n}function y(){return this.t<=0?0:this.DB*(this.t-1)+S(this[this.t-1]^this.s&this.DM)}function C(e,t){var n;for(n=this.t-1;n>=0;--n)t[n+e]=this[n];for(n=e-1;n>=0;--n)t[n]=0;t.t=this.t+e,t.s=this.s}function w(e,t){for(var n=e;n<this.t;++n)t[n-e]=this[n];t.t=Math.max(this.t-e,0),t.s=this.s}function A(e,t){var n,i=e%this.DB,s=this.DB-i,o=(1<<s)-1,r=Math.floor(e/this.DB),a=this.s<<i&this.DM;for(n=this.t-1;n>=0;--n)t[n+r+1]=this[n]>>s|a,a=(this[n]&o)<<i;for(n=r-1;n>=0;--n)t[n]=0;t[r]=a,t.t=this.t+r+1,t.s=this.s,t.clamp()}function U(e,t){t.s=this.s;var n=Math.floor(e/this.DB);if(n>=this.t)return void(t.t=0);var i=e%this.DB,s=this.DB-i,o=(1<<i)-1;t[0]=this[n]>>i;for(var r=n+1;r<this.t;++r)t[r-n-1]|=(this[r]&o)<<s,t[r-n]=this[r]>>i;i>0&&(t[this.t-n-1]|=(this.s&o)<<s),t.t=this.t-n,t.clamp()}function T(e,t){for(var n=0,i=0,s=Math.min(e.t,this.t);n<s;)i+=this[n]-e[n],t[n++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i-=e.s;n<this.t;)i+=this[n],t[n++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;n<e.t;)i-=e[n],t[n++]=i&this.DM,i>>=this.DB;i-=e.s}t.s=i<0?-1:0,i<-1?t[n++]=this.DV+i:i>0&&(t[n++]=i),t.t=n,t.clamp()}function I(e,t){var i=this.abs(),s=e.abs(),o=i.t;for(t.t=o+s.t;--o>=0;)t[o]=0;for(o=0;o<s.t;++o)t[o+i.t]=i.am(0,s[o],t,o,0,i.t);t.s=0,t.clamp(),this.s!=e.s&&n.ZERO.subTo(t,t)}function D(e){for(var t=this.abs(),n=e.t=2*t.t;--n>=0;)e[n]=0;for(n=0;n<t.t-1;++n){var i=t.am(n,t[n],e,2*n,0,1);(e[n+t.t]+=t.am(n+1,2*t[n],e,2*n+1,i,t.t-n-1))>=t.DV&&(e[n+t.t]-=t.DV,e[n+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(n,t[n],e,2*n,0,1)),e.s=0,e.clamp()}function E(e,t,s){var o=e.abs();if(!(o.t<=0)){var r=this.abs();if(r.t<o.t)return null!=t&&t.fromInt(0),void(null!=s&&this.copyTo(s));null==s&&(s=i());var a=i(),u=this.s,c=e.s,l=this.DB-S(o[o.t-1]);l>0?(o.lShiftTo(l,a),r.lShiftTo(l,s)):(o.copyTo(a),r.copyTo(s));var h=a.t,f=a[h-1];if(0!=f){var d=f*(1<<this.F1)+(h>1?a[h-2]>>this.F2:0),p=this.FV/d,g=(1<<this.F1)/d,v=1<<this.F2,m=s.t,y=m-h,C=null==t?i():t;for(a.dlShiftTo(y,C),s.compareTo(C)>=0&&(s[s.t++]=1,s.subTo(C,s)),n.ONE.dlShiftTo(h,C),C.subTo(a,a);a.t<h;)a[a.t++]=0;for(;--y>=0;){var w=s[--m]==f?this.DM:Math.floor(s[m]*p+(s[m-1]+v)*g);if((s[m]+=a.am(0,w,s,y,0,h))<w)for(a.dlShiftTo(y,C),s.subTo(C,s);s[m]<--w;)s.subTo(C,s)}null!=t&&(s.drShiftTo(h,t),u!=c&&n.ZERO.subTo(t,t)),s.t=h,s.clamp(),l>0&&s.rShiftTo(l,s),u<0&&n.ZERO.subTo(s,s)}}}function k(e){var t=i();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(n.ZERO)>0&&e.subTo(t,t),t}function R(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return t=t*(2-(15&e)*t)&15,t=t*(2-(255&e)*t)&255,t=t*(2-((65535&e)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function b(e){return 0==this.compareTo(e)}function F(e,t){for(var n=0,i=0,s=Math.min(e.t,this.t);n<s;)i+=this[n]+e[n],t[n++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i+=e.s;n<this.t;)i+=this[n],t[n++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;n<e.t;)i+=e[n],t[n++]=i&this.DM,i>>=this.DB;i+=e.s}t.s=i<0?-1:0,i>0?t[n++]=i:i<-1&&(t[n++]=this.DV+i),t.t=n,t.clamp()}function P(e){var t=i();return this.addTo(e,t),t}function _(e){var t=i();return this.subTo(e,t),t}function B(e){var t=i();return this.multiplyTo(e,t),t}function M(e){var t=i();return this.divRemTo(e,t,null),t}function N(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function V(e){var t=i();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(n.ZERO)>0&&this.m.subTo(t,t),t}function O(e){var t=i();return e.copyTo(t),this.reduce(t),t}function K(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var n=32767&e[t],i=n*this.mpl+((n*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(n=t+this.m.t,e[n]+=this.m.am(0,i,e,t,0,this.m.t);e[n]>=e.DV;)e[n]-=e.DV,e[++n]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function x(e,t){e.squareTo(t),this.reduce(t)}function q(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function H(e,t,n){var s,o=e.bitLength(),r=h(1),a=new N(t);if(o<=0)return r;s=o<18?1:o<48?3:o<144?4:o<768?5:6;var u=new Array,c=3,l=s-1,f=(1<<s)-1;if(u[1]=a.convert(this),s>1){var d=i();for(a.sqrTo(u[1],d);c<=f;)u[c]=i(),a.mulTo(d,u[c-2],u[c]),c+=2}var p,g,v=e.t-1,m=!0,y=i();for(o=S(e[v])-1;v>=0;){for(o>=l?p=e[v]>>o-l&f:(p=(e[v]&(1<<o+1)-1)<<l-o,v>0&&(p|=e[v-1]>>this.DB+o-l)),c=s;0==(1&p);)p>>=1,--c;if((o-=c)<0&&(o+=this.DB,--v),m)u[p].copyTo(r),m=!1;else{for(;c>1;)a.sqrTo(r,y),a.sqrTo(y,r),c-=2;c>0?a.sqrTo(r,y):(g=r,r=y,y=g),a.mulTo(y,u[p],r)}for(;v>=0&&0==(e[v]&1<<o);)a.sqrTo(r,y),g=r,r=y,y=g,--o<0&&(o=this.DB-1,--v)}var C=a.revert(r);return n(null,C),C}t.__esModule=!0,t.default=n;var j,L=0xdeadbeefcafe,J=15715070==(16777215&L),G="undefined"!=typeof navigator;G&&J&&"Microsoft Internet Explorer"==navigator.appName?(n.prototype.am=o,j=30):G&&J&&"Netscape"!=navigator.appName?(n.prototype.am=s,j=26):(n.prototype.am=r,j=28),n.prototype.DB=j,n.prototype.DM=(1<<j)-1,n.prototype.DV=1<<j;var W=52;n.prototype.FV=Math.pow(2,W),n.prototype.F1=W-j,n.prototype.F2=2*j-W;var Z,Y,z="0123456789abcdefghijklmnopqrstuvwxyz",Q=new Array;for(Z="0".charCodeAt(0),Y=0;Y<=9;++Y)Q[Z++]=Y;for(Z="a".charCodeAt(0),Y=10;Y<36;++Y)Q[Z++]=Y;for(Z="A".charCodeAt(0),Y=10;Y<36;++Y)Q[Z++]=Y;N.prototype.convert=V,N.prototype.revert=O,N.prototype.reduce=K,N.prototype.mulTo=q,N.prototype.sqrTo=x,n.prototype.copyTo=c,n.prototype.fromInt=l,n.prototype.fromString=f,n.prototype.clamp=d,n.prototype.dlShiftTo=C,n.prototype.drShiftTo=w,n.prototype.lShiftTo=A,n.prototype.rShiftTo=U,n.prototype.subTo=T,n.prototype.multiplyTo=I,n.prototype.squareTo=D,n.prototype.divRemTo=E,n.prototype.invDigit=R,n.prototype.addTo=F,n.prototype.toString=p,n.prototype.negate=g,n.prototype.abs=v,n.prototype.compareTo=m,n.prototype.bitLength=y,n.prototype.mod=k,n.prototype.equals=b,n.prototype.add=P,n.prototype.subtract=_,n.prototype.multiply=B,n.prototype.divide=M,n.prototype.modPow=H,n.ZERO=h(0),n.ONE=h(1)},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var a=n(6),u=i(a),c=function(e){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=n.AccessToken;return s(this,t),o(this,e.call(this,i||""))}return r(t,e),t}(u.default);t.default=c},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var a=n(6),u=i(a),c=function(e){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=n.IdToken;return s(this,t),o(this,e.call(this,i||""))}return r(t,e),t}(u.default);t.default=c},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var s=n(1),o=function(){function e(t){i(this,e),this.jwtToken=t||"",this.payload=this.decodePayload()}return e.prototype.getJwtToken=function(){return this.jwtToken},e.prototype.getExpiration=function(){return this.payload.exp},e.prototype.getIssuedAt=function(){return this.payload.iat},e.prototype.decodePayload=function(){var e=this.jwtToken.split(".")[1];try{return JSON.parse(s.util.base64.decode(e).toString("utf8"))}catch(e){return{}}},e}();t.default=o},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;/*! | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("aws-sdk/global"),require("aws-sdk/clients/cognitoidentityserviceprovider")):"function"==typeof define&&define.amd?define(["aws-sdk/global","aws-sdk/clients/cognitoidentityserviceprovider"],t):"object"==typeof exports?exports.AmazonCognitoIdentity=t(require("aws-sdk/global"),require("aws-sdk/clients/cognitoidentityserviceprovider")):e.AmazonCognitoIdentity=t(e.AWSCognito,e.AWSCognito.CognitoIdentityServiceProvider)}(this,function(e,t){return function(e){function t(i){if(n[i])return n[i].exports;var s=n[i]={exports:{},id:i,loaded:!1};return e[i].call(s.exports,s,s.exports,t),s.loaded=!0,s.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function s(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=n(17);Object.keys(o).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}})});var r=n(13),a=s(r),u=i(o);Object.keys(u).forEach(function(e){a.default[e]=u[e]})},function(t,n){t.exports=e},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var o=n(1),r=n(3),a=i(r),u="FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",c="userAttributes.",l=function(){function e(t){s(this,e),this.N=new a.default(u,16),this.g=new a.default("2",16),this.k=new a.default(this.hexHash("00"+this.N.toString(16)+"0"+this.g.toString(16)),16),this.smallAValue=this.generateRandomSmallA(),this.getLargeAValue(function(){}),this.infoBits=new o.util.Buffer("Caldera Derived Key","utf8"),this.poolName=t}return e.prototype.getSmallAValue=function(){return this.smallAValue},e.prototype.getLargeAValue=function(e){var t=this;this.largeAValue?e(null,this.largeAValue):this.calculateA(this.smallAValue,function(n,i){n&&e(n,null),t.largeAValue=i,e(null,t.largeAValue)})},e.prototype.generateRandomSmallA=function(){var e=o.util.crypto.lib.randomBytes(128).toString("hex"),t=new a.default(e,16),n=t.mod(this.N);return n},e.prototype.generateRandomString=function(){return o.util.crypto.lib.randomBytes(40).toString("base64")},e.prototype.getRandomPassword=function(){return this.randomPassword},e.prototype.getSaltDevices=function(){return this.SaltToHashDevices},e.prototype.getVerifierDevices=function(){return this.verifierDevices},e.prototype.generateHashDevice=function(e,t,n){var i=this;this.randomPassword=this.generateRandomString();var s=""+e+t+":"+this.randomPassword,r=this.hash(s),u=o.util.crypto.lib.randomBytes(16).toString("hex");this.SaltToHashDevices=this.padHex(new a.default(u,16)),this.g.modPow(new a.default(this.hexHash(this.SaltToHashDevices+r),16),this.N,function(e,t){e&&n(e,null),i.verifierDevices=i.padHex(t),n(null,null)})},e.prototype.calculateA=function(e,t){var n=this;this.g.modPow(e,this.N,function(e,i){e&&t(e,null),i.mod(n.N).equals(a.default.ZERO)&&t(new Error("Illegal paramater. A mod N cannot be 0."),null),t(null,i)})},e.prototype.calculateU=function(e,t){this.UHexHash=this.hexHash(this.padHex(e)+this.padHex(t));var n=new a.default(this.UHexHash,16);return n},e.prototype.hash=function(e){var t=o.util.crypto.sha256(e,"hex");return new Array(64-t.length).join("0")+t},e.prototype.hexHash=function(e){return this.hash(new o.util.Buffer(e,"hex"))},e.prototype.computehkdf=function(e,t){var n=o.util.crypto.hmac(t,e,"buffer","sha256"),i=o.util.buffer.concat([this.infoBits,new o.util.Buffer(String.fromCharCode(1),"utf8")]),s=o.util.crypto.hmac(n,i,"buffer","sha256");return s.slice(0,16)},e.prototype.getPasswordAuthenticationKey=function(e,t,n,i,s){var r=this;if(n.mod(this.N).equals(a.default.ZERO))throw new Error("B cannot be zero.");if(this.UValue=this.calculateU(this.largeAValue,n),this.UValue.equals(a.default.ZERO))throw new Error("U cannot be zero.");var u=""+this.poolName+e+":"+t,c=this.hash(u),l=new a.default(this.hexHash(this.padHex(i)+c),16);this.calculateS(l,n,function(e,t){e&&s(e,null);var n=r.computehkdf(new o.util.Buffer(r.padHex(t),"hex"),new o.util.Buffer(r.padHex(r.UValue.toString(16)),"hex"));s(null,n)})},e.prototype.calculateS=function(e,t,n){var i=this;this.g.modPow(e,this.N,function(s,o){s&&n(s,null);var r=t.subtract(i.k.multiply(o));r.modPow(i.smallAValue.add(i.UValue.multiply(e)),i.N,function(e,t){e&&n(e,null),n(null,t.mod(i.N))})})},e.prototype.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return c},e.prototype.padHex=function(e){var t=e.toString(16);return t.length%2===1?t="0"+t:"89ABCDEFabcdef".indexOf(t[0])!==-1&&(t="00"+t),t},e}();t.default=l},function(e,t){"use strict";function n(e,t){null!=e&&this.fromString(e,t)}function i(){return new n(null)}function s(e,t,n,i,s,o){for(;--o>=0;){var r=t*this[e++]+n[i]+s;s=Math.floor(r/67108864),n[i++]=67108863&r}return s}function o(e,t,n,i,s,o){for(var r=32767&t,a=t>>15;--o>=0;){var u=32767&this[e],c=this[e++]>>15,l=a*u+c*r;u=r*u+((32767&l)<<15)+n[i]+(1073741823&s),s=(u>>>30)+(l>>>15)+a*c+(s>>>30),n[i++]=1073741823&u}return s}function r(e,t,n,i,s,o){for(var r=16383&t,a=t>>14;--o>=0;){var u=16383&this[e],c=this[e++]>>14,l=a*u+c*r;u=r*u+((16383&l)<<14)+n[i]+s,s=(u>>28)+(l>>14)+a*c,n[i++]=268435455&u}return s}function a(e){return z.charAt(e)}function u(e,t){var n=Q[e.charCodeAt(t)];return null==n?-1:n}function c(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s}function l(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0}function h(e){var t=i();return t.fromInt(e),t}function f(e,t){var i;if(16==t)i=4;else if(8==t)i=3;else if(2==t)i=1;else if(32==t)i=5;else{if(4!=t)throw new Error("Only radix 2, 4, 8, 16, 32 are supported");i=2}this.t=0,this.s=0;for(var s=e.length,o=!1,r=0;--s>=0;){var a=u(e,s);a<0?"-"==e.charAt(s)&&(o=!0):(o=!1,0==r?this[this.t++]=a:r+i>this.DB?(this[this.t-1]|=(a&(1<<this.DB-r)-1)<<r,this[this.t++]=a>>this.DB-r):this[this.t-1]|=a<<r,r+=i,r>=this.DB&&(r-=this.DB))}this.clamp(),o&&n.ZERO.subTo(this,this)}function d(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t}function p(e){if(this.s<0)return"-"+this.negate().toString();var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)throw new Error("Only radix 2, 4, 8, 16, 32 are supported");t=2}var n,i=(1<<t)-1,s=!1,o="",r=this.t,u=this.DB-r*this.DB%t;if(r-- >0)for(u<this.DB&&(n=this[r]>>u)>0&&(s=!0,o=a(n));r>=0;)u<t?(n=(this[r]&(1<<u)-1)<<t-u,n|=this[--r]>>(u+=this.DB-t)):(n=this[r]>>(u-=t)&i,u<=0&&(u+=this.DB,--r)),n>0&&(s=!0),s&&(o+=a(n));return s?o:"0"}function g(){var e=i();return n.ZERO.subTo(this,e),e}function S(){return this.s<0?this.negate():this}function v(e){var t=this.s-e.s;if(0!=t)return t;var n=this.t;if(t=n-e.t,0!=t)return this.s<0?-t:t;for(;--n>=0;)if(0!=(t=this[n]-e[n]))return t;return 0}function m(e){var t,n=1;return 0!=(t=e>>>16)&&(e=t,n+=16),0!=(t=e>>8)&&(e=t,n+=8),0!=(t=e>>4)&&(e=t,n+=4),0!=(t=e>>2)&&(e=t,n+=2),0!=(t=e>>1)&&(e=t,n+=1),n}function C(){return this.t<=0?0:this.DB*(this.t-1)+m(this[this.t-1]^this.s&this.DM)}function y(e,t){var n;for(n=this.t-1;n>=0;--n)t[n+e]=this[n];for(n=e-1;n>=0;--n)t[n]=0;t.t=this.t+e,t.s=this.s}function U(e,t){for(var n=e;n<this.t;++n)t[n-e]=this[n];t.t=Math.max(this.t-e,0),t.s=this.s}function A(e,t){var n,i=e%this.DB,s=this.DB-i,o=(1<<s)-1,r=Math.floor(e/this.DB),a=this.s<<i&this.DM;for(n=this.t-1;n>=0;--n)t[n+r+1]=this[n]>>s|a,a=(this[n]&o)<<i;for(n=r-1;n>=0;--n)t[n]=0;t[r]=a,t.t=this.t+r+1,t.s=this.s,t.clamp()}function w(e,t){t.s=this.s;var n=Math.floor(e/this.DB);if(n>=this.t)return void(t.t=0);var i=e%this.DB,s=this.DB-i,o=(1<<i)-1;t[0]=this[n]>>i;for(var r=n+1;r<this.t;++r)t[r-n-1]|=(this[r]&o)<<s,t[r-n]=this[r]>>i;i>0&&(t[this.t-n-1]|=(this.s&o)<<s),t.t=this.t-n,t.clamp()}function T(e,t){for(var n=0,i=0,s=Math.min(e.t,this.t);n<s;)i+=this[n]-e[n],t[n++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i-=e.s;n<this.t;)i+=this[n],t[n++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;n<e.t;)i-=e[n],t[n++]=i&this.DM,i>>=this.DB;i-=e.s}t.s=i<0?-1:0,i<-1?t[n++]=this.DV+i:i>0&&(t[n++]=i),t.t=n,t.clamp()}function D(e,t){var i=this.abs(),s=e.abs(),o=i.t;for(t.t=o+s.t;--o>=0;)t[o]=0;for(o=0;o<s.t;++o)t[o+i.t]=i.am(0,s[o],t,o,0,i.t);t.s=0,t.clamp(),this.s!=e.s&&n.ZERO.subTo(t,t)}function I(e){for(var t=this.abs(),n=e.t=2*t.t;--n>=0;)e[n]=0;for(n=0;n<t.t-1;++n){var i=t.am(n,t[n],e,2*n,0,1);(e[n+t.t]+=t.am(n+1,2*t[n],e,2*n+1,i,t.t-n-1))>=t.DV&&(e[n+t.t]-=t.DV,e[n+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(n,t[n],e,2*n,0,1)),e.s=0,e.clamp()}function E(e,t,s){var o=e.abs();if(!(o.t<=0)){var r=this.abs();if(r.t<o.t)return null!=t&&t.fromInt(0),void(null!=s&&this.copyTo(s));null==s&&(s=i());var a=i(),u=this.s,c=e.s,l=this.DB-m(o[o.t-1]);l>0?(o.lShiftTo(l,a),r.lShiftTo(l,s)):(o.copyTo(a),r.copyTo(s));var h=a.t,f=a[h-1];if(0!=f){var d=f*(1<<this.F1)+(h>1?a[h-2]>>this.F2:0),p=this.FV/d,g=(1<<this.F1)/d,S=1<<this.F2,v=s.t,C=v-h,y=null==t?i():t;for(a.dlShiftTo(C,y),s.compareTo(y)>=0&&(s[s.t++]=1,s.subTo(y,s)),n.ONE.dlShiftTo(h,y),y.subTo(a,a);a.t<h;)a[a.t++]=0;for(;--C>=0;){var U=s[--v]==f?this.DM:Math.floor(s[v]*p+(s[v-1]+S)*g);if((s[v]+=a.am(0,U,s,C,0,h))<U)for(a.dlShiftTo(C,y),s.subTo(y,s);s[v]<--U;)s.subTo(y,s)}null!=t&&(s.drShiftTo(h,t),u!=c&&n.ZERO.subTo(t,t)),s.t=h,s.clamp(),l>0&&s.rShiftTo(l,s),u<0&&n.ZERO.subTo(s,s)}}}function k(e){var t=i();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(n.ZERO)>0&&e.subTo(t,t),t}function R(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return t=t*(2-(15&e)*t)&15,t=t*(2-(255&e)*t)&255,t=t*(2-((65535&e)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function F(e){return 0==this.compareTo(e)}function P(e,t){for(var n=0,i=0,s=Math.min(e.t,this.t);n<s;)i+=this[n]+e[n],t[n++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i+=e.s;n<this.t;)i+=this[n],t[n++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;n<e.t;)i+=e[n],t[n++]=i&this.DM,i>>=this.DB;i+=e.s}t.s=i<0?-1:0,i>0?t[n++]=i:i<-1&&(t[n++]=this.DV+i),t.t=n,t.clamp()}function b(e){var t=i();return this.addTo(e,t),t}function _(e){var t=i();return this.subTo(e,t),t}function M(e){var t=i();return this.multiplyTo(e,t),t}function N(e){var t=i();return this.divRemTo(e,t,null),t}function B(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function x(e){var t=i();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(n.ZERO)>0&&this.m.subTo(t,t),t}function O(e){var t=i();return e.copyTo(t),this.reduce(t),t}function V(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var n=32767&e[t],i=n*this.mpl+((n*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(n=t+this.m.t,e[n]+=this.m.am(0,i,e,t,0,this.m.t);e[n]>=e.DV;)e[n]-=e.DV,e[++n]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function K(e,t){e.squareTo(t),this.reduce(t)}function q(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function j(e,t,n){var s,o=e.bitLength(),r=h(1),a=new B(t);if(o<=0)return r;s=o<18?1:o<48?3:o<144?4:o<768?5:6;var u=new Array,c=3,l=s-1,f=(1<<s)-1;if(u[1]=a.convert(this),s>1){var d=i();for(a.sqrTo(u[1],d);c<=f;)u[c]=i(),a.mulTo(d,u[c-2],u[c]),c+=2}var p,g,S=e.t-1,v=!0,C=i();for(o=m(e[S])-1;S>=0;){for(o>=l?p=e[S]>>o-l&f:(p=(e[S]&(1<<o+1)-1)<<l-o,S>0&&(p|=e[S-1]>>this.DB+o-l)),c=s;0==(1&p);)p>>=1,--c;if((o-=c)<0&&(o+=this.DB,--S),v)u[p].copyTo(r),v=!1;else{for(;c>1;)a.sqrTo(r,C),a.sqrTo(C,r),c-=2;c>0?a.sqrTo(r,C):(g=r,r=C,C=g),a.mulTo(C,u[p],r)}for(;S>=0&&0==(e[S]&1<<o);)a.sqrTo(r,C),g=r,r=C,C=g,--o<0&&(o=this.DB-1,--S)}var y=a.revert(r);return n(null,y),y}t.__esModule=!0,t.default=n;var H,L=0xdeadbeefcafe,J=15715070==(16777215&L),W="undefined"!=typeof navigator;W&&J&&"Microsoft Internet Explorer"==navigator.appName?(n.prototype.am=o,H=30):W&&J&&"Netscape"!=navigator.appName?(n.prototype.am=s,H=26):(n.prototype.am=r,H=28),n.prototype.DB=H,n.prototype.DM=(1<<H)-1,n.prototype.DV=1<<H;var G=52;n.prototype.FV=Math.pow(2,G),n.prototype.F1=G-H,n.prototype.F2=2*H-G;var Z,Y,z="0123456789abcdefghijklmnopqrstuvwxyz",Q=new Array;for(Z="0".charCodeAt(0),Y=0;Y<=9;++Y)Q[Z++]=Y;for(Z="a".charCodeAt(0),Y=10;Y<36;++Y)Q[Z++]=Y;for(Z="A".charCodeAt(0),Y=10;Y<36;++Y)Q[Z++]=Y;B.prototype.convert=x,B.prototype.revert=O,B.prototype.reduce=V,B.prototype.mulTo=q,B.prototype.sqrTo=K,n.prototype.copyTo=c,n.prototype.fromInt=l,n.prototype.fromString=f,n.prototype.clamp=d,n.prototype.dlShiftTo=y,n.prototype.drShiftTo=U,n.prototype.lShiftTo=A,n.prototype.rShiftTo=w,n.prototype.subTo=T,n.prototype.multiplyTo=D,n.prototype.squareTo=I,n.prototype.divRemTo=E,n.prototype.invDigit=R,n.prototype.addTo=P,n.prototype.toString=p,n.prototype.negate=g,n.prototype.abs=S,n.prototype.compareTo=v,n.prototype.bitLength=C,n.prototype.mod=k,n.prototype.equals=F,n.prototype.add=b,n.prototype.subtract=_,n.prototype.multiply=M,n.prototype.divide=N,n.prototype.modPow=j,n.ZERO=h(0),n.ONE=h(1)},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var a=n(6),u=i(a),c=function(e){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=n.AccessToken;return s(this,t),o(this,e.call(this,i||""))}return r(t,e),t}(u.default);t.default=c},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var a=n(6),u=i(a),c=function(e){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=n.IdToken;return s(this,t),o(this,e.call(this,i||""))}return r(t,e),t}(u.default);t.default=c},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var s=n(1),o=function(){function e(t){i(this,e),this.jwtToken=t||"",this.payload=this.decodePayload()}return e.prototype.getJwtToken=function(){return this.jwtToken},e.prototype.getExpiration=function(){return this.payload.exp},e.prototype.getIssuedAt=function(){return this.payload.iat},e.prototype.decodePayload=function(){var e=this.jwtToken.split(".")[1];try{return JSON.parse(s.util.base64.decode(e).toString("utf8"))}catch(e){return{}}},e}();t.default=o},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;/*! | ||
* Copyright 2016 Amazon.com, | ||
@@ -34,3 +34,3 @@ * Inc. or its affiliates. All Rights Reserved. | ||
*/ | ||
var i=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=t.RefreshToken;n(this,e),this.token=i||""}return e.prototype.getToken=function(){return this.token},e}();t.default=i},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var o=n(1),r=n(3),a=i(r),u=n(2),c=i(u),l=n(4),h=i(l),f=n(5),d=i(f),p=n(7),g=i(p),v=n(10),m=i(v),S=n(11),y=i(S),C=n(9),w=i(C),A=n(12),U=i(A),T=function(){function e(t){if(s(this,e),null==t||null==t.Username||null==t.Pool)throw new Error("Username and pool information are required.");this.username=t.Username||"",this.pool=t.Pool,this.Session=null,this.client=t.Pool.client,this.signInUserSession=null,this.authenticationFlowType="USER_SRP_AUTH",this.storage=t.Storage||(new U.default).getStorage()}return e.prototype.setSignInUserSession=function(e){this.clearCachedTokens(),this.signInUserSession=e,this.cacheTokens()},e.prototype.getSignInUserSession=function(){return this.signInUserSession},e.prototype.getUsername=function(){return this.username},e.prototype.getAuthenticationFlowType=function(){return this.authenticationFlowType},e.prototype.setAuthenticationFlowType=function(e){this.authenticationFlowType=e},e.prototype.initiateAuth=function(e,t){var n=this,i=e.getAuthParameters();i.USERNAME=this.username,this.client.makeUnauthenticatedRequest("initiateAuth",{AuthFlow:"CUSTOM_AUTH",ClientId:this.pool.getClientId(),AuthParameters:i,ClientMetadata:e.getValidationData()},function(e,i){if(e)return t.onFailure(e);var s=i.ChallengeName,o=i.ChallengeParameters;return"CUSTOM_CHALLENGE"===s?(n.Session=i.Session,t.customChallenge(o)):(n.signInUserSession=n.getCognitoUserSession(i.AuthenticationResult),n.cacheTokens(),t.onSuccess(n.signInUserSession))})},e.prototype.authenticateUser=function(e,t){var n=this,i=new c.default(this.pool.getUserPoolId().split("_")[1]),s=new y.default,r=void 0,u=void 0,l={};null!=this.deviceKey&&(l.DEVICE_KEY=this.deviceKey),l.USERNAME=this.username,i.getLargeAValue(function(c,h){c&&t.onFailure(c),l.SRP_A=h.toString(16),"CUSTOM_AUTH"===n.authenticationFlowType&&(l.CHALLENGE_NAME="SRP_A"),n.client.makeUnauthenticatedRequest("initiateAuth",{AuthFlow:n.authenticationFlowType,ClientId:n.pool.getClientId(),AuthParameters:l,ClientMetadata:e.getValidationData()},function(c,l){if(c)return t.onFailure(c);var h=l.ChallengeParameters;n.username=h.USER_ID_FOR_SRP,r=new a.default(h.SRP_B,16),u=new a.default(h.SALT,16),n.getCachedDeviceKeyAndPassword(),i.getPasswordAuthenticationKey(n.username,e.getPassword(),r,u,function(e,r){e&&t.onFailure(e);var a=s.getNowString(),u=o.util.crypto.hmac(r,o.util.buffer.concat([new o.util.Buffer(n.pool.getUserPoolId().split("_")[1],"utf8"),new o.util.Buffer(n.username,"utf8"),new o.util.Buffer(h.SECRET_BLOCK,"base64"),new o.util.Buffer(a,"utf8")]),"base64","sha256"),c={};c.USERNAME=n.username,c.PASSWORD_CLAIM_SECRET_BLOCK=h.SECRET_BLOCK,c.TIMESTAMP=a,c.PASSWORD_CLAIM_SIGNATURE=u,null!=n.deviceKey&&(c.DEVICE_KEY=n.deviceKey);var f=function e(t,i){return n.client.makeUnauthenticatedRequest("respondToAuthChallenge",t,function(s,o){return s&&"ResourceNotFoundException"===s.code&&s.message.toLowerCase().indexOf("device")!==-1?(c.DEVICE_KEY=null,n.deviceKey=null,n.randomPassword=null,n.deviceGroupKey=null,n.clearCachedDeviceKeyAndPassword(),e(t,i)):i(s,o)})};f({ChallengeName:"PASSWORD_VERIFIER",ClientId:n.pool.getClientId(),ChallengeResponses:c,Session:l.Session},function(e,s){if(e)return t.onFailure(e);var o=s.ChallengeName;if("NEW_PASSWORD_REQUIRED"===o){n.Session=s.Session;var r=null,a=null,u=[],c=i.getNewPasswordRequiredChallengeUserAttributePrefix();if(s.ChallengeParameters&&(r=JSON.parse(s.ChallengeParameters.userAttributes),a=JSON.parse(s.ChallengeParameters.requiredAttributes)),a)for(var l=0;l<a.length;l++)u[l]=a[l].substr(c.length);return t.newPasswordRequired(r,u)}return n.authenticateUserInternal(s,i,t)})})})})},e.prototype.authenticateUserInternal=function(e,t,n){var i=this,s=e.ChallengeName,r=e.ChallengeParameters;if("SMS_MFA"===s)return this.Session=e.Session,n.mfaRequired(s,r);if("CUSTOM_CHALLENGE"===s)return this.Session=e.Session,n.customChallenge(r);if("DEVICE_SRP_AUTH"===s)return void this.getDeviceResponse(n);this.signInUserSession=this.getCognitoUserSession(e.AuthenticationResult),this.cacheTokens();var a=e.AuthenticationResult.NewDeviceMetadata;return null==a?n.onSuccess(this.signInUserSession):void t.generateHashDevice(e.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,e.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(s){if(s)return n.onFailure(s);var r={Salt:new o.util.Buffer(t.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:new o.util.Buffer(t.getVerifierDevices(),"hex").toString("base64")};i.verifierDevices=r.PasswordVerifier,i.deviceGroupKey=a.DeviceGroupKey,i.randomPassword=t.getRandomPassword(),i.client.makeUnauthenticatedRequest("confirmDevice",{DeviceKey:a.DeviceKey,AccessToken:i.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:r,DeviceName:navigator.userAgent},function(t,s){return t?n.onFailure(t):(i.deviceKey=e.AuthenticationResult.NewDeviceMetadata.DeviceKey,i.cacheDeviceKeyAndPassword(),s.UserConfirmationNecessary===!0?n.onSuccess(i.signInUserSession,s.UserConfirmationNecessary):n.onSuccess(i.signInUserSession))})})},e.prototype.completeNewPasswordChallenge=function(e,t,n){var i=this;if(!e)return n.onFailure(new Error("New password is required."));var s=new c.default(this.pool.getUserPoolId().split("_")[1]),o=s.getNewPasswordRequiredChallengeUserAttributePrefix(),r={};t&&Object.keys(t).forEach(function(e){r[o+e]=t[e]}),r.NEW_PASSWORD=e,r.USERNAME=this.username,this.client.makeUnauthenticatedRequest("respondToAuthChallenge",{ChallengeName:"NEW_PASSWORD_REQUIRED",ClientId:this.pool.getClientId(),ChallengeResponses:r,Session:this.Session},function(e,t){return e?n.onFailure(e):i.authenticateUserInternal(t,s,n)})},e.prototype.getDeviceResponse=function(e){var t=this,n=new c.default(this.deviceGroupKey),i=new y.default,s={};s.USERNAME=this.username,s.DEVICE_KEY=this.deviceKey,n.getLargeAValue(function(r,u){r&&e.onFailure(r),s.SRP_A=u.toString(16),t.client.makeUnauthenticatedRequest("respondToAuthChallenge",{ChallengeName:"DEVICE_SRP_AUTH",ClientId:t.pool.getClientId(),ChallengeResponses:s},function(s,r){if(s)return e.onFailure(s);var u=r.ChallengeParameters,c=new a.default(u.SRP_B,16),l=new a.default(u.SALT,16);n.getPasswordAuthenticationKey(t.deviceKey,t.randomPassword,c,l,function(n,s){if(n)return e.onFailure(n);var a=i.getNowString(),c=o.util.crypto.hmac(s,o.util.buffer.concat([new o.util.Buffer(t.deviceGroupKey,"utf8"),new o.util.Buffer(t.deviceKey,"utf8"),new o.util.Buffer(u.SECRET_BLOCK,"base64"),new o.util.Buffer(a,"utf8")]),"base64","sha256"),l={};l.USERNAME=t.username,l.PASSWORD_CLAIM_SECRET_BLOCK=u.SECRET_BLOCK,l.TIMESTAMP=a,l.PASSWORD_CLAIM_SIGNATURE=c,l.DEVICE_KEY=t.deviceKey,t.client.makeUnauthenticatedRequest("respondToAuthChallenge",{ChallengeName:"DEVICE_PASSWORD_VERIFIER",ClientId:t.pool.getClientId(),ChallengeResponses:l,Session:r.Session},function(n,i){return n?e.onFailure(n):(t.signInUserSession=t.getCognitoUserSession(i.AuthenticationResult),t.cacheTokens(),e.onSuccess(t.signInUserSession))})})})})},e.prototype.confirmRegistration=function(e,t,n){this.client.makeUnauthenticatedRequest("confirmSignUp",{ClientId:this.pool.getClientId(),ConfirmationCode:e,Username:this.username,ForceAliasCreation:t},function(e){return e?n(e,null):n(null,"SUCCESS")})},e.prototype.sendCustomChallengeAnswer=function(e,t){var n=this,i={};i.USERNAME=this.username,i.ANSWER=e,this.client.makeUnauthenticatedRequest("respondToAuthChallenge",{ChallengeName:"CUSTOM_CHALLENGE",ChallengeResponses:i,ClientId:this.pool.getClientId(),Session:this.Session},function(e,i){if(e)return t.onFailure(e);var s=i.ChallengeName;return"CUSTOM_CHALLENGE"===s?(n.Session=i.Session,t.customChallenge(i.ChallengeParameters)):(n.signInUserSession=n.getCognitoUserSession(i.AuthenticationResult),n.cacheTokens(),t.onSuccess(n.signInUserSession))})},e.prototype.sendMFACode=function(e,t){var n=this,i={};i.USERNAME=this.username,i.SMS_MFA_CODE=e,null!=this.deviceKey&&(i.DEVICE_KEY=this.deviceKey),this.client.makeUnauthenticatedRequest("respondToAuthChallenge",{ChallengeName:"SMS_MFA",ChallengeResponses:i,ClientId:this.pool.getClientId(),Session:this.Session},function(e,i){if(e)return t.onFailure(e);var s=i.ChallengeName;if("DEVICE_SRP_AUTH"===s)return void n.getDeviceResponse(t);if(n.signInUserSession=n.getCognitoUserSession(i.AuthenticationResult),n.cacheTokens(),null==i.AuthenticationResult.NewDeviceMetadata)return t.onSuccess(n.signInUserSession);var r=new c.default(n.pool.getUserPoolId().split("_")[1]);r.generateHashDevice(i.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,i.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(e){if(e)return t.onFailure(e);var s={Salt:new o.util.Buffer(r.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:new o.util.Buffer(r.getVerifierDevices(),"hex").toString("base64")};n.verifierDevices=s.PasswordVerifier,n.deviceGroupKey=i.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,n.randomPassword=r.getRandomPassword(),n.client.makeUnauthenticatedRequest("confirmDevice",{DeviceKey:i.AuthenticationResult.NewDeviceMetadata.DeviceKey,AccessToken:n.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:s,DeviceName:navigator.userAgent},function(e,s){return e?t.onFailure(e):(n.deviceKey=i.AuthenticationResult.NewDeviceMetadata.DeviceKey,n.cacheDeviceKeyAndPassword(),s.UserConfirmationNecessary===!0?t.onSuccess(n.signInUserSession,s.UserConfirmationNecessary):t.onSuccess(n.signInUserSession))})})})},e.prototype.changePassword=function(e,t,n){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("changePassword",{PreviousPassword:e,ProposedPassword:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(e){return e?n(e,null):n(null,"SUCCESS")}):n(new Error("User is not authenticated"),null)},e.prototype.enableMFA=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e(new Error("User is not authenticated"),null);var t=[],n={DeliveryMedium:"SMS",AttributeName:"phone_number"};t.push(n),this.client.makeUnauthenticatedRequest("setUserSettings",{MFAOptions:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(t){return t?e(t,null):e(null,"SUCCESS")})},e.prototype.disableMFA=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e(new Error("User is not authenticated"),null);var t=[];this.client.makeUnauthenticatedRequest("setUserSettings",{MFAOptions:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(t){return t?e(t,null):e(null,"SUCCESS")})},e.prototype.deleteUser=function(e){var t=this;return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("deleteUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(n){return n?e(n,null):(t.clearCachedTokens(),e(null,"SUCCESS"))}):e(new Error("User is not authenticated"),null)},e.prototype.updateAttributes=function(e,t){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("updateUserAttributes",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserAttributes:e},function(e){return e?t(e,null):t(null,"SUCCESS")}):t(new Error("User is not authenticated"),null)},e.prototype.getUserAttributes=function(e){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("getUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(t,n){if(t)return e(t,null);for(var i=[],s=0;s<n.UserAttributes.length;s++){var o={Name:n.UserAttributes[s].Name,Value:n.UserAttributes[s].Value},r=new w.default(o);i.push(r)}return e(null,i)}):e(new Error("User is not authenticated"),null)},e.prototype.getMFAOptions=function(e){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("getUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(t,n){return t?e(t,null):e(null,n.MFAOptions)}):e(new Error("User is not authenticated"),null)},e.prototype.deleteAttributes=function(e,t){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("deleteUserAttributes",{UserAttributeNames:e,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(e){return e?t(e,null):t(null,"SUCCESS")}):t(new Error("User is not authenticated"),null)},e.prototype.resendConfirmationCode=function(e){this.client.makeUnauthenticatedRequest("resendConfirmationCode",{ClientId:this.pool.getClientId(),Username:this.username},function(t,n){return t?e(t,null):e(null,n)})},e.prototype.getSession=function(e){if(null==this.username)return e(new Error("Username is null. Cannot retrieve a new session"),null);if(null!=this.signInUserSession&&this.signInUserSession.isValid())return e(null,this.signInUserSession);var t="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,n=t+".idToken",i=t+".accessToken",s=t+".refreshToken",o=t+".clockDrift";if(this.storage.getItem(n)){var r=new d.default({IdToken:this.storage.getItem(n)}),a=new h.default({AccessToken:this.storage.getItem(i)}),u=new g.default({RefreshToken:this.storage.getItem(s)}),c=parseInt(this.storage.getItem(o),0)||0,l={IdToken:r,AccessToken:a,RefreshToken:u,ClockDrift:c},f=new m.default(l);if(f.isValid())return this.signInUserSession=f,e(null,this.signInUserSession);if(null==u.getToken())return e(new Error("Cannot retrieve a new session. Please authenticate."),null);this.refreshSession(u,e)}else e(new Error("Local storage is missing an ID Token, Please authenticate"),null)},e.prototype.refreshSession=function(e,t){var n=this,i={};i.REFRESH_TOKEN=e.getToken();var s="CognitoIdentityServiceProvider."+this.pool.getClientId(),o=s+".LastAuthUser";if(this.storage.getItem(o)){this.username=this.storage.getItem(o);var r=s+"."+this.username+".deviceKey";this.deviceKey=this.storage.getItem(r),i.DEVICE_KEY=this.deviceKey}this.client.makeUnauthenticatedRequest("initiateAuth",{ClientId:this.pool.getClientId(),AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:i},function(i,s){if(i)return"NotAuthorizedException"===i.code&&n.clearCachedTokens(),t(i,null);if(s){var o=s.AuthenticationResult;return Object.prototype.hasOwnProperty.call(o,"RefreshToken")||(o.RefreshToken=e.getToken()),n.signInUserSession=n.getCognitoUserSession(o),n.cacheTokens(),t(null,n.signInUserSession)}})},e.prototype.cacheTokens=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId(),t=e+"."+this.username+".idToken",n=e+"."+this.username+".accessToken",i=e+"."+this.username+".refreshToken",s=e+"."+this.username+".clockDrift",o=e+".LastAuthUser";this.storage.setItem(t,this.signInUserSession.getIdToken().getJwtToken()),this.storage.setItem(n,this.signInUserSession.getAccessToken().getJwtToken()),this.storage.setItem(i,this.signInUserSession.getRefreshToken().getToken()),this.storage.setItem(s,""+this.signInUserSession.getClockDrift()),this.storage.setItem(o,this.username)},e.prototype.cacheDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",i=e+".deviceGroupKey";this.storage.setItem(t,this.deviceKey),this.storage.setItem(n,this.randomPassword),this.storage.setItem(i,this.deviceGroupKey)},e.prototype.getCachedDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",i=e+".deviceGroupKey";this.storage.getItem(t)&&(this.deviceKey=this.storage.getItem(t),this.randomPassword=this.storage.getItem(n),this.deviceGroupKey=this.storage.getItem(i))},e.prototype.clearCachedDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",i=e+".deviceGroupKey";this.storage.removeItem(t),this.storage.removeItem(n),this.storage.removeItem(i)},e.prototype.clearCachedTokens=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId(),t=e+"."+this.username+".idToken",n=e+"."+this.username+".accessToken",i=e+"."+this.username+".refreshToken",s=e+".LastAuthUser";this.storage.removeItem(t),this.storage.removeItem(n),this.storage.removeItem(i),this.storage.removeItem(s)},e.prototype.getCognitoUserSession=function(e){var t=new d.default(e),n=new h.default(e),i=new g.default(e),s={IdToken:t,AccessToken:n,RefreshToken:i};return new m.default(s)},e.prototype.forgotPassword=function(e){this.client.makeUnauthenticatedRequest("forgotPassword",{ClientId:this.pool.getClientId(),Username:this.username},function(t,n){return t?e.onFailure(t):"function"==typeof e.inputVerificationCode?e.inputVerificationCode(n):e.onSuccess(n)})},e.prototype.confirmPassword=function(e,t,n){this.client.makeUnauthenticatedRequest("confirmForgotPassword",{ClientId:this.pool.getClientId(),Username:this.username,ConfirmationCode:e,Password:t},function(e){return e?n.onFailure(e):n.onSuccess()})},e.prototype.getAttributeVerificationCode=function(e,t){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("getUserAttributeVerificationCode",{AttributeName:e,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(e,n){return e?t.onFailure(e):"function"==typeof t.inputVerificationCode?t.inputVerificationCode(n):t.onSuccess()}):t.onFailure(new Error("User is not authenticated"))},e.prototype.verifyAttribute=function(e,t,n){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("verifyUserAttribute",{AttributeName:e,Code:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(e){return e?n.onFailure(e):n.onSuccess("SUCCESS")}):n.onFailure(new Error("User is not authenticated"))},e.prototype.getDevice=function(e){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("getDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey},function(t,n){return t?e.onFailure(t):e.onSuccess(n)}):e.onFailure(new Error("User is not authenticated"))},e.prototype.forgetSpecificDevice=function(e,t){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("forgetDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:e},function(e){return e?t.onFailure(e):t.onSuccess("SUCCESS")}):t.onFailure(new Error("User is not authenticated"))},e.prototype.forgetDevice=function(e){var t=this;this.forgetSpecificDevice(this.deviceKey,{onFailure:e.onFailure,onSuccess:function(n){return t.deviceKey=null,t.deviceGroupKey=null,t.randomPassword=null,t.clearCachedDeviceKeyAndPassword(),e.onSuccess(n)}})},e.prototype.setDeviceStatusRemembered=function(e){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("updateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"remembered"},function(t){return t?e.onFailure(t):e.onSuccess("SUCCESS")}):e.onFailure(new Error("User is not authenticated"))},e.prototype.setDeviceStatusNotRemembered=function(e){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("updateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"not_remembered"},function(t){return t?e.onFailure(t):e.onSuccess("SUCCESS")}):e.onFailure(new Error("User is not authenticated"))},e.prototype.listDevices=function(e,t,n){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("listDevices",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),Limit:e,PaginationToken:t},function(e,t){return e?n.onFailure(e):n.onSuccess(t)}):n.onFailure(new Error("User is not authenticated"))},e.prototype.globalSignOut=function(e){var t=this;return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("globalSignOut",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(n){return n?e.onFailure(n):(t.clearCachedTokens(),e.onSuccess("SUCCESS"))}):e.onFailure(new Error("User is not authenticated"))},e.prototype.signOut=function(){this.signInUserSession=null,this.clearCachedTokens()},e}();t.default=T},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;/*! | ||
var i=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=t.RefreshToken;n(this,e),this.token=i||""}return e.prototype.getToken=function(){return this.token},e}();t.default=i},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var o=n(1),r=n(3),a=i(r),u=n(2),c=i(u),l=n(4),h=i(l),f=n(5),d=i(f),p=n(7),g=i(p),S=n(10),v=i(S),m=n(11),C=i(m),y=n(9),U=i(y),A=n(12),w=i(A),T=function(){function e(t){if(s(this,e),null==t||null==t.Username||null==t.Pool)throw new Error("Username and pool information are required.");this.username=t.Username||"",this.pool=t.Pool,this.Session=null,this.client=t.Pool.client,this.signInUserSession=null,this.authenticationFlowType="USER_SRP_AUTH",this.storage=t.Storage||(new w.default).getStorage()}return e.prototype.setSignInUserSession=function(e){this.clearCachedTokens(),this.signInUserSession=e,this.cacheTokens()},e.prototype.getSignInUserSession=function(){return this.signInUserSession},e.prototype.getUsername=function(){return this.username},e.prototype.getAuthenticationFlowType=function(){return this.authenticationFlowType},e.prototype.setAuthenticationFlowType=function(e){this.authenticationFlowType=e},e.prototype.initiateAuth=function(e,t){var n=this,i=e.getAuthParameters();i.USERNAME=this.username,this.client.makeUnauthenticatedRequest("initiateAuth",{AuthFlow:"CUSTOM_AUTH",ClientId:this.pool.getClientId(),AuthParameters:i,ClientMetadata:e.getValidationData(),UserContextData:this.getUserContextData()},function(e,i){if(e)return t.onFailure(e);var s=i.ChallengeName,o=i.ChallengeParameters;return"CUSTOM_CHALLENGE"===s?(n.Session=i.Session,t.customChallenge(o)):(n.signInUserSession=n.getCognitoUserSession(i.AuthenticationResult),n.cacheTokens(),t.onSuccess(n.signInUserSession))})},e.prototype.authenticateUser=function(e,t){var n=this,i=new c.default(this.pool.getUserPoolId().split("_")[1]),s=new C.default,r=void 0,u=void 0,l={};null!=this.deviceKey&&(l.DEVICE_KEY=this.deviceKey),l.USERNAME=this.username,i.getLargeAValue(function(c,h){c&&t.onFailure(c),l.SRP_A=h.toString(16),"CUSTOM_AUTH"===n.authenticationFlowType&&(l.CHALLENGE_NAME="SRP_A"),n.client.makeUnauthenticatedRequest("initiateAuth",{AuthFlow:n.authenticationFlowType,ClientId:n.pool.getClientId(),AuthParameters:l,ClientMetadata:e.getValidationData(),UserContextData:n.getUserContextData()},function(c,l){if(c)return t.onFailure(c);var h=l.ChallengeParameters;n.username=h.USER_ID_FOR_SRP,r=new a.default(h.SRP_B,16),u=new a.default(h.SALT,16),n.getCachedDeviceKeyAndPassword(),i.getPasswordAuthenticationKey(n.username,e.getPassword(),r,u,function(e,r){e&&t.onFailure(e);var a=s.getNowString(),u=o.util.crypto.hmac(r,o.util.buffer.concat([new o.util.Buffer(n.pool.getUserPoolId().split("_")[1],"utf8"),new o.util.Buffer(n.username,"utf8"),new o.util.Buffer(h.SECRET_BLOCK,"base64"),new o.util.Buffer(a,"utf8")]),"base64","sha256"),c={};c.USERNAME=n.username,c.PASSWORD_CLAIM_SECRET_BLOCK=h.SECRET_BLOCK,c.TIMESTAMP=a,c.PASSWORD_CLAIM_SIGNATURE=u,null!=n.deviceKey&&(c.DEVICE_KEY=n.deviceKey);var f=function e(t,i){return n.client.makeUnauthenticatedRequest("respondToAuthChallenge",t,function(s,o){return s&&"ResourceNotFoundException"===s.code&&s.message.toLowerCase().indexOf("device")!==-1?(c.DEVICE_KEY=null,n.deviceKey=null,n.randomPassword=null,n.deviceGroupKey=null,n.clearCachedDeviceKeyAndPassword(),e(t,i)):i(s,o)})};f({ChallengeName:"PASSWORD_VERIFIER",ClientId:n.pool.getClientId(),ChallengeResponses:c,Session:l.Session,UserContextData:n.getUserContextData()},function(e,s){if(e)return t.onFailure(e);var o=s.ChallengeName;if("NEW_PASSWORD_REQUIRED"===o){n.Session=s.Session;var r=null,a=null,u=[],c=i.getNewPasswordRequiredChallengeUserAttributePrefix();if(s.ChallengeParameters&&(r=JSON.parse(s.ChallengeParameters.userAttributes),a=JSON.parse(s.ChallengeParameters.requiredAttributes)),a)for(var l=0;l<a.length;l++)u[l]=a[l].substr(c.length);return t.newPasswordRequired(r,u)}return n.authenticateUserInternal(s,i,t)})})})})},e.prototype.authenticateUserInternal=function(e,t,n){var i=this,s=e.ChallengeName,r=e.ChallengeParameters;if("SMS_MFA"===s)return this.Session=e.Session,n.mfaRequired(s,r);if("SELECT_MFA_TYPE"===s)return this.Session=e.Session,n.selectMFAType(s,r);if("MFA_SETUP"===s)return this.Session=e.Session,n.mfaSetup(s,r);if("SOFTWARE_TOKEN_MFA"===s)return this.Session=e.Session,n.totpRequired(s,r);if("CUSTOM_CHALLENGE"===s)return this.Session=e.Session,n.customChallenge(r);if("DEVICE_SRP_AUTH"===s)return void this.getDeviceResponse(n);this.signInUserSession=this.getCognitoUserSession(e.AuthenticationResult),this.cacheTokens();var a=e.AuthenticationResult.NewDeviceMetadata;return null==a?n.onSuccess(this.signInUserSession):void t.generateHashDevice(e.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,e.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(s){if(s)return n.onFailure(s);var r={Salt:new o.util.Buffer(t.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:new o.util.Buffer(t.getVerifierDevices(),"hex").toString("base64")};i.verifierDevices=r.PasswordVerifier,i.deviceGroupKey=a.DeviceGroupKey,i.randomPassword=t.getRandomPassword(),i.client.makeUnauthenticatedRequest("confirmDevice",{DeviceKey:a.DeviceKey,AccessToken:i.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:r,DeviceName:navigator.userAgent},function(t,s){return t?n.onFailure(t):(i.deviceKey=e.AuthenticationResult.NewDeviceMetadata.DeviceKey,i.cacheDeviceKeyAndPassword(),s.UserConfirmationNecessary===!0?n.onSuccess(i.signInUserSession,s.UserConfirmationNecessary):n.onSuccess(i.signInUserSession))})})},e.prototype.completeNewPasswordChallenge=function(e,t,n){var i=this;if(!e)return n.onFailure(new Error("New password is required."));var s=new c.default(this.pool.getUserPoolId().split("_")[1]),o=s.getNewPasswordRequiredChallengeUserAttributePrefix(),r={};t&&Object.keys(t).forEach(function(e){r[o+e]=t[e]}),r.NEW_PASSWORD=e,r.USERNAME=this.username,this.client.makeUnauthenticatedRequest("respondToAuthChallenge",{ChallengeName:"NEW_PASSWORD_REQUIRED",ClientId:this.pool.getClientId(),ChallengeResponses:r,Session:this.Session,UserContextData:this.getUserContextData()},function(e,t){return e?n.onFailure(e):i.authenticateUserInternal(t,s,n)})},e.prototype.getDeviceResponse=function(e){var t=this,n=new c.default(this.deviceGroupKey),i=new C.default,s={};s.USERNAME=this.username,s.DEVICE_KEY=this.deviceKey,n.getLargeAValue(function(r,u){r&&e.onFailure(r),s.SRP_A=u.toString(16),t.client.makeUnauthenticatedRequest("respondToAuthChallenge",{ChallengeName:"DEVICE_SRP_AUTH",ClientId:t.pool.getClientId(),ChallengeResponses:s,UserContextData:t.getUserContextData()},function(s,r){if(s)return e.onFailure(s);var u=r.ChallengeParameters,c=new a.default(u.SRP_B,16),l=new a.default(u.SALT,16);n.getPasswordAuthenticationKey(t.deviceKey,t.randomPassword,c,l,function(n,s){if(n)return e.onFailure(n);var a=i.getNowString(),c=o.util.crypto.hmac(s,o.util.buffer.concat([new o.util.Buffer(t.deviceGroupKey,"utf8"),new o.util.Buffer(t.deviceKey,"utf8"),new o.util.Buffer(u.SECRET_BLOCK,"base64"),new o.util.Buffer(a,"utf8")]),"base64","sha256"),l={};l.USERNAME=t.username,l.PASSWORD_CLAIM_SECRET_BLOCK=u.SECRET_BLOCK,l.TIMESTAMP=a,l.PASSWORD_CLAIM_SIGNATURE=c,l.DEVICE_KEY=t.deviceKey,t.client.makeUnauthenticatedRequest("respondToAuthChallenge",{ChallengeName:"DEVICE_PASSWORD_VERIFIER",ClientId:t.pool.getClientId(),ChallengeResponses:l,Session:r.Session,UserContextData:t.getUserContextData()},function(n,i){return n?e.onFailure(n):(t.signInUserSession=t.getCognitoUserSession(i.AuthenticationResult),t.cacheTokens(),e.onSuccess(t.signInUserSession))})})})})},e.prototype.confirmRegistration=function(e,t,n){this.client.makeUnauthenticatedRequest("confirmSignUp",{ClientId:this.pool.getClientId(),ConfirmationCode:e,Username:this.username,ForceAliasCreation:t,UserContextData:this.getUserContextData()},function(e){return e?n(e,null):n(null,"SUCCESS")})},e.prototype.sendCustomChallengeAnswer=function(e,t){var n=this,i={};i.USERNAME=this.username,i.ANSWER=e,this.client.makeUnauthenticatedRequest("respondToAuthChallenge",{ChallengeName:"CUSTOM_CHALLENGE",ChallengeResponses:i,ClientId:this.pool.getClientId(),Session:this.Session,UserContextData:this.getUserContextData()},function(e,i){if(e)return t.onFailure(e);var s=i.ChallengeName;return"CUSTOM_CHALLENGE"===s?(n.Session=i.Session,t.customChallenge(i.ChallengeParameters)):(n.signInUserSession=n.getCognitoUserSession(i.AuthenticationResult),n.cacheTokens(),t.onSuccess(n.signInUserSession))})},e.prototype.sendMFACode=function(e,t,n){var i=this,s={};s.USERNAME=this.username,s.SMS_MFA_CODE=e;var r=n||"SMS_MFA";"SOFTWARE_TOKEN_MFA"===r&&(s.SOFTWARE_TOKEN_MFA_CODE=e),null!=this.deviceKey&&(s.DEVICE_KEY=this.deviceKey),this.client.makeUnauthenticatedRequest("respondToAuthChallenge",{ChallengeName:r,ChallengeResponses:s,ClientId:this.pool.getClientId(),Session:this.Session,UserContextData:this.getUserContextData()},function(e,n){if(e)return t.onFailure(e);var s=n.ChallengeName;if("DEVICE_SRP_AUTH"===s)return void i.getDeviceResponse(t);if(i.signInUserSession=i.getCognitoUserSession(n.AuthenticationResult),i.cacheTokens(),null==n.AuthenticationResult.NewDeviceMetadata)return t.onSuccess(i.signInUserSession);var r=new c.default(i.pool.getUserPoolId().split("_")[1]);r.generateHashDevice(n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,n.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(e){if(e)return t.onFailure(e);var s={Salt:new o.util.Buffer(r.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:new o.util.Buffer(r.getVerifierDevices(),"hex").toString("base64")};i.verifierDevices=s.PasswordVerifier,i.deviceGroupKey=n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,i.randomPassword=r.getRandomPassword(),i.client.makeUnauthenticatedRequest("confirmDevice",{DeviceKey:n.AuthenticationResult.NewDeviceMetadata.DeviceKey,AccessToken:i.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:s,DeviceName:navigator.userAgent},function(e,s){return e?t.onFailure(e):(i.deviceKey=n.AuthenticationResult.NewDeviceMetadata.DeviceKey,i.cacheDeviceKeyAndPassword(),s.UserConfirmationNecessary===!0?t.onSuccess(i.signInUserSession,s.UserConfirmationNecessary):t.onSuccess(i.signInUserSession))})})})},e.prototype.changePassword=function(e,t,n){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("changePassword",{PreviousPassword:e,ProposedPassword:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(e){return e?n(e,null):n(null,"SUCCESS")}):n(new Error("User is not authenticated"),null)},e.prototype.enableMFA=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e(new Error("User is not authenticated"),null);var t=[],n={DeliveryMedium:"SMS",AttributeName:"phone_number"};t.push(n),this.client.makeUnauthenticatedRequest("setUserSettings",{MFAOptions:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(t){return t?e(t,null):e(null,"SUCCESS")})},e.prototype.setUserMfaPreference=function(e,t,n){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("setUserMFAPreference",{SMSMfaSettings:e,SoftwareTokenMfaSettings:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(e){return e?n(e,null):n(null,"SUCCESS")}):n(new Error("User is not authenticated"),null)},e.prototype.disableMFA=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e(new Error("User is not authenticated"),null);var t=[];this.client.makeUnauthenticatedRequest("setUserSettings",{MFAOptions:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(t){return t?e(t,null):e(null,"SUCCESS")})},e.prototype.deleteUser=function(e){var t=this;return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("deleteUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(n){return n?e(n,null):(t.clearCachedTokens(),e(null,"SUCCESS"))}):e(new Error("User is not authenticated"),null)},e.prototype.updateAttributes=function(e,t){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("updateUserAttributes",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserAttributes:e},function(e){return e?t(e,null):t(null,"SUCCESS")}):t(new Error("User is not authenticated"),null)},e.prototype.getUserAttributes=function(e){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("getUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(t,n){if(t)return e(t,null);for(var i=[],s=0;s<n.UserAttributes.length;s++){var o={Name:n.UserAttributes[s].Name,Value:n.UserAttributes[s].Value},r=new U.default(o);i.push(r)}return e(null,i)}):e(new Error("User is not authenticated"),null)},e.prototype.getMFAOptions=function(e){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("getUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(t,n){return t?e(t,null):e(null,n.MFAOptions)}):e(new Error("User is not authenticated"),null)},e.prototype.deleteAttributes=function(e,t){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("deleteUserAttributes",{UserAttributeNames:e,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(e){return e?t(e,null):t(null,"SUCCESS")}):t(new Error("User is not authenticated"),null)},e.prototype.resendConfirmationCode=function(e){this.client.makeUnauthenticatedRequest("resendConfirmationCode",{ClientId:this.pool.getClientId(),Username:this.username,UserContextData:this.getUserContextData()},function(t,n){return t?e(t,null):e(null,n)})},e.prototype.getSession=function(e){if(null==this.username)return e(new Error("Username is null. Cannot retrieve a new session"),null);if(null!=this.signInUserSession&&this.signInUserSession.isValid())return e(null,this.signInUserSession);var t="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,n=t+".idToken",i=t+".accessToken",s=t+".refreshToken",o=t+".clockDrift";if(this.storage.getItem(n)){var r=new d.default({IdToken:this.storage.getItem(n)}),a=new h.default({AccessToken:this.storage.getItem(i)}),u=new g.default({RefreshToken:this.storage.getItem(s)}),c=parseInt(this.storage.getItem(o),0)||0,l={IdToken:r,AccessToken:a,RefreshToken:u,ClockDrift:c},f=new v.default(l);if(f.isValid())return this.signInUserSession=f,e(null,this.signInUserSession);if(null==u.getToken())return e(new Error("Cannot retrieve a new session. Please authenticate."),null);this.refreshSession(u,e)}else e(new Error("Local storage is missing an ID Token, Please authenticate"),null)},e.prototype.refreshSession=function(e,t){var n=this,i={};i.REFRESH_TOKEN=e.getToken();var s="CognitoIdentityServiceProvider."+this.pool.getClientId(),o=s+".LastAuthUser";if(this.storage.getItem(o)){this.username=this.storage.getItem(o);var r=s+"."+this.username+".deviceKey";this.deviceKey=this.storage.getItem(r),i.DEVICE_KEY=this.deviceKey}this.client.makeUnauthenticatedRequest("initiateAuth",{ClientId:this.pool.getClientId(),AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:i,UserContextData:this.getUserContextData()},function(i,s){if(i)return"NotAuthorizedException"===i.code&&n.clearCachedTokens(),t(i,null);if(s){var o=s.AuthenticationResult;return Object.prototype.hasOwnProperty.call(o,"RefreshToken")||(o.RefreshToken=e.getToken()),n.signInUserSession=n.getCognitoUserSession(o),n.cacheTokens(),t(null,n.signInUserSession)}})},e.prototype.cacheTokens=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId(),t=e+"."+this.username+".idToken",n=e+"."+this.username+".accessToken",i=e+"."+this.username+".refreshToken",s=e+"."+this.username+".clockDrift",o=e+".LastAuthUser";this.storage.setItem(t,this.signInUserSession.getIdToken().getJwtToken()),this.storage.setItem(n,this.signInUserSession.getAccessToken().getJwtToken()),this.storage.setItem(i,this.signInUserSession.getRefreshToken().getToken()),this.storage.setItem(s,""+this.signInUserSession.getClockDrift()),this.storage.setItem(o,this.username)},e.prototype.cacheDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",i=e+".deviceGroupKey";this.storage.setItem(t,this.deviceKey),this.storage.setItem(n,this.randomPassword),this.storage.setItem(i,this.deviceGroupKey)},e.prototype.getCachedDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",i=e+".deviceGroupKey";this.storage.getItem(t)&&(this.deviceKey=this.storage.getItem(t),this.randomPassword=this.storage.getItem(n),this.deviceGroupKey=this.storage.getItem(i))},e.prototype.clearCachedDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",i=e+".deviceGroupKey";this.storage.removeItem(t),this.storage.removeItem(n),this.storage.removeItem(i)},e.prototype.clearCachedTokens=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId(),t=e+"."+this.username+".idToken",n=e+"."+this.username+".accessToken",i=e+"."+this.username+".refreshToken",s=e+".LastAuthUser";this.storage.removeItem(t),this.storage.removeItem(n),this.storage.removeItem(i),this.storage.removeItem(s)},e.prototype.getCognitoUserSession=function(e){var t=new d.default(e),n=new h.default(e),i=new g.default(e),s={IdToken:t,AccessToken:n,RefreshToken:i};return new v.default(s)},e.prototype.forgotPassword=function(e){this.client.makeUnauthenticatedRequest("forgotPassword",{ClientId:this.pool.getClientId(),Username:this.username,UserContextData:this.getUserContextData()},function(t,n){return t?e.onFailure(t):"function"==typeof e.inputVerificationCode?e.inputVerificationCode(n):e.onSuccess(n)})},e.prototype.confirmPassword=function(e,t,n){this.client.makeUnauthenticatedRequest("confirmForgotPassword",{ClientId:this.pool.getClientId(),Username:this.username,ConfirmationCode:e,Password:t,UserContextData:this.getUserContextData()},function(e){return e?n.onFailure(e):n.onSuccess()})},e.prototype.getAttributeVerificationCode=function(e,t){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("getUserAttributeVerificationCode",{AttributeName:e,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(e,n){return e?t.onFailure(e):"function"==typeof t.inputVerificationCode?t.inputVerificationCode(n):t.onSuccess()}):t.onFailure(new Error("User is not authenticated"))},e.prototype.verifyAttribute=function(e,t,n){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("verifyUserAttribute",{AttributeName:e,Code:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(e){return e?n.onFailure(e):n.onSuccess("SUCCESS")}):n.onFailure(new Error("User is not authenticated"))},e.prototype.getDevice=function(e){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("getDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey},function(t,n){return t?e.onFailure(t):e.onSuccess(n)}):e.onFailure(new Error("User is not authenticated"))},e.prototype.forgetSpecificDevice=function(e,t){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("forgetDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:e},function(e){return e?t.onFailure(e):t.onSuccess("SUCCESS")}):t.onFailure(new Error("User is not authenticated"))},e.prototype.forgetDevice=function(e){var t=this;this.forgetSpecificDevice(this.deviceKey,{onFailure:e.onFailure,onSuccess:function(n){return t.deviceKey=null,t.deviceGroupKey=null,t.randomPassword=null,t.clearCachedDeviceKeyAndPassword(),e.onSuccess(n)}})},e.prototype.setDeviceStatusRemembered=function(e){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("updateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"remembered"},function(t){return t?e.onFailure(t):e.onSuccess("SUCCESS")}):e.onFailure(new Error("User is not authenticated"))},e.prototype.setDeviceStatusNotRemembered=function(e){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("updateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"not_remembered"},function(t){return t?e.onFailure(t):e.onSuccess("SUCCESS")}):e.onFailure(new Error("User is not authenticated"))},e.prototype.listDevices=function(e,t,n){return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("listDevices",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),Limit:e,PaginationToken:t},function(e,t){return e?n.onFailure(e):n.onSuccess(t)}):n.onFailure(new Error("User is not authenticated"))},e.prototype.globalSignOut=function(e){var t=this;return null!=this.signInUserSession&&this.signInUserSession.isValid()?void this.client.makeUnauthenticatedRequest("globalSignOut",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(n){return n?e.onFailure(n):(t.clearCachedTokens(),e.onSuccess("SUCCESS"))}):e.onFailure(new Error("User is not authenticated"))},e.prototype.signOut=function(){this.signInUserSession=null,this.clearCachedTokens()},e.prototype.sendMFASelectionAnswer=function(e,t){var n=this,i={};i.USERNAME=this.username,i.ANSWER=e,this.client.makeUnauthenticatedRequest("respondToAuthChallenge",{ChallengeName:"SELECT_MFA_TYPE",ChallengeResponses:i,ClientId:this.pool.getClientId(),Session:this.Session,UserContextData:this.getUserContextData()},function(i,s){return i?t.onFailure(i):(n.Session=s.Session,"SMS_MFA"===e?t.mfaRequired(s.challengeName,s.challengeParameters):"SOFTWARE_TOKEN_MFA"===e?t.totpRequired(s.challengeName,s.challengeParameters):void 0)})},e.prototype.getUserContextData=function(){var e=this.pool;return e.getUserContextData(this.username)},e.prototype.associateSoftwareToken=function(e){var t=this;null!=this.signInUserSession&&this.signInUserSession.isValid()?this.client.makeUnauthenticatedRequest("associateSoftwareToken",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(t,n){return t?e.onFailure(t):e.associateSecretCode(n.SecretCode)}):this.client.makeUnauthenticatedRequest("associateSoftwareToken",{Session:this.Session},function(n,i){return n?e.onFailure(n):(t.Session=i.Session,e.associateSecretCode(i.SecretCode))})},e.prototype.verifySoftwareToken=function(e,t,n){var i=this;null!=this.signInUserSession&&this.signInUserSession.isValid()?this.client.makeUnauthenticatedRequest("verifySoftwareToken",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserCode:e,FriendlyDeviceName:t},function(e,t){if(e)return n.onFailure(e);i.Session=t.Session;var s={};s.USERNAME=i.username,i.client.makeUnauthenticatedRequest("respondToAuthChallenge",{ChallengeName:"MFA_SETUP",ClientId:i.pool.getClientId(),ChallengeResponses:s,Session:i.Session,UserContextData:i.getUserContextData()},function(e,t){return e?n.onFailure(e):(i.signInUserSession=i.getCognitoUserSession(t.AuthenticationResult),i.cacheTokens(),n.onSuccess(i.signInUserSession))})}):this.client.makeUnauthenticatedRequest("verifySoftwareToken",{Session:this.Session,UserCode:e,FriendlyDeviceName:t},function(e,t){if(e)return n.onFailure(e);i.Session=t.Session;var s={};s.USERNAME=i.username,i.client.makeUnauthenticatedRequest("respondToAuthChallenge",{ChallengeName:"MFA_SETUP",ClientId:i.pool.getClientId(),ChallengeResponses:s,Session:i.Session,UserContextData:i.getUserContextData()},function(e,t){return e?n.onFailure(e):(i.signInUserSession=i.getCognitoUserSession(t.AuthenticationResult),i.cacheTokens(),n.onSuccess(i.signInUserSession))})})},e}();t.default=T},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;/*! | ||
* Copyright 2016 Amazon.com, | ||
@@ -115,3 +115,3 @@ * Inc. or its affiliates. All Rights Reserved. | ||
*/ | ||
var i=function(){function e(t){n(this,e);var i=t||{},s=i.ValidationData,o=i.Username,r=i.Password,a=i.AuthParameters;this.validationData=s||[],this.authParameters=a||[],this.username=o,this.password=r}return e.prototype.getUsername=function(){return this.username},e.prototype.getPassword=function(){return this.password},e.prototype.getValidationData=function(){return this.validationData},e.prototype.getAuthParameters=function(){return this.authParameters},e}();t.default=i},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var o=n(13),r=i(o),a=n(8),u=i(a),c=n(12),l=i(c),h=function(){function e(t){s(this,e);var n=t||{},i=n.UserPoolId,o=n.ClientId,a=n.endpoint;if(!i||!o)throw new Error("Both UserPoolId and ClientId are required.");if(!/^[\w-]+_.+$/.test(i))throw new Error("Invalid UserPoolId format.");var u=i.split("_")[0];this.userPoolId=i,this.clientId=o,this.client=new r.default({apiVersion:"2016-04-19",region:u,endpoint:a}),this.storage=t.Storage||(new l.default).getStorage()}return e.prototype.getUserPoolId=function(){return this.userPoolId},e.prototype.getClientId=function(){return this.clientId},e.prototype.signUp=function(e,t,n,i,s){var o=this;this.client.makeUnauthenticatedRequest("signUp",{ClientId:this.clientId,Username:e,Password:t,UserAttributes:n,ValidationData:i},function(t,n){if(t)return s(t,null);var i={Username:e,Pool:o,Storage:o.storage},r={user:new u.default(i),userConfirmed:n.UserConfirmed,userSub:n.UserSub};return s(null,r)})},e.prototype.getCurrentUser=function(){var e="CognitoIdentityServiceProvider."+this.clientId+".LastAuthUser",t=this.storage.getItem(e);if(t){var n={Username:t,Pool:this,Storage:this.storage};return new u.default(n)}return null},e}();t.default=h},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var o=n(18),r=i(o),a=function(){function e(t){s(this,e),this.domain=t.domain,t.path?this.path=t.path:this.path="/",t.expire?this.expires=t.expires:this.expires=365,t.hasOwnProperty("secure")?this.secure=t.secure:this.secure=!0}return e.prototype.setItem=function(e,t){return r.set(e,t,{path:this.path,expires:this.expires,domain:this.domain}),r.get(e)},e.prototype.getItem=function(e){return r.get(e)},e.prototype.removeItem=function(e){return r.remove(e,{path:this.path,domain:this.domain,secure:this.secure})},e.prototype.clear=function(){var e,t=r.get();for(e=0;e<t.length;++e)r.remove(t[e]);return{}},e}();t.default=a},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var s=n(14);Object.defineProperty(t,"AuthenticationDetails",{enumerable:!0,get:function(){return i(s).default}});var o=n(2);Object.defineProperty(t,"AuthenticationHelper",{enumerable:!0,get:function(){return i(o).default}});var r=n(4);Object.defineProperty(t,"CognitoAccessToken",{enumerable:!0,get:function(){return i(r).default}});var a=n(5);Object.defineProperty(t,"CognitoIdToken",{enumerable:!0,get:function(){return i(a).default}});var u=n(7);Object.defineProperty(t,"CognitoRefreshToken",{enumerable:!0,get:function(){return i(u).default}});var c=n(8);Object.defineProperty(t,"CognitoUser",{enumerable:!0,get:function(){return i(c).default}});var l=n(9);Object.defineProperty(t,"CognitoUserAttribute",{enumerable:!0,get:function(){return i(l).default}});var h=n(15);Object.defineProperty(t,"CognitoUserPool",{enumerable:!0,get:function(){return i(h).default}});var f=n(10);Object.defineProperty(t,"CognitoUserSession",{enumerable:!0,get:function(){return i(f).default}});var d=n(16);Object.defineProperty(t,"CookieStorage",{enumerable:!0,get:function(){return i(d).default}});var p=n(11);Object.defineProperty(t,"DateHelper",{enumerable:!0,get:function(){return i(p).default}}),"undefined"!=typeof window&&!window.crypto&&window.msCrypto&&(window.crypto=window.msCrypto)},function(e,t,n){var i,s;!function(o){var r=!1;if(i=o,s="function"==typeof i?i.call(t,n,t,e):i,!(void 0!==s&&(e.exports=s)),r=!0,e.exports=o(),r=!0,!r){var a=window.Cookies,u=window.Cookies=o();u.noConflict=function(){return window.Cookies=a,u}}}(function(){function e(){for(var e=0,t={};e<arguments.length;e++){var n=arguments[e];for(var i in n)t[i]=n[i]}return t}function t(n){function i(t,s,o){var r;if("undefined"!=typeof document){if(arguments.length>1){if(o=e({path:"/"},i.defaults,o),"number"==typeof o.expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*o.expires),o.expires=a}o.expires=o.expires?o.expires.toUTCString():"";try{r=JSON.stringify(s),/^[\{\[]/.test(r)&&(s=r)}catch(e){}s=n.write?n.write(s,t):encodeURIComponent(String(s)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)),t=t.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),t=t.replace(/[\(\)]/g,escape);var u="";for(var c in o)o[c]&&(u+="; "+c,o[c]!==!0&&(u+="="+o[c]));return document.cookie=t+"="+s+u}t||(r={});for(var l=document.cookie?document.cookie.split("; "):[],h=/(%[0-9A-Z]{2})+/g,f=0;f<l.length;f++){var d=l[f].split("="),p=d.slice(1).join("=");this.json||'"'!==p.charAt(0)||(p=p.slice(1,-1));try{var g=d[0].replace(h,decodeURIComponent);if(p=n.read?n.read(p,g):n(p,g)||p.replace(h,decodeURIComponent),this.json)try{p=JSON.parse(p)}catch(e){}if(t===g){r=p;break}t||(r[g]=p)}catch(e){}}return r}}return i.set=i,i.get=function(e){return i.call(i,e)},i.getJSON=function(){return i.apply({json:!0},[].slice.call(arguments))},i.defaults={},i.remove=function(t,n){i(t,"",e(n,{expires:-1}))},i.withConverter=t,i}return t(function(){})})}])}); | ||
var i=function(){function e(t){n(this,e);var i=t||{},s=i.ValidationData,o=i.Username,r=i.Password,a=i.AuthParameters;this.validationData=s||[],this.authParameters=a||[],this.username=o,this.password=r}return e.prototype.getUsername=function(){return this.username},e.prototype.getPassword=function(){return this.password},e.prototype.getValidationData=function(){return this.validationData},e.prototype.getAuthParameters=function(){return this.authParameters},e}();t.default=i},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var o=n(13),r=i(o),a=n(8),u=i(a),c=n(12),l=i(c),h=function(){function e(t){s(this,e);var n=t||{},i=n.UserPoolId,o=n.ClientId,a=n.endpoint,u=n.AdvancedSecurityDataCollectionFlag;if(!i||!o)throw new Error("Both UserPoolId and ClientId are required.");if(!/^[\w-]+_.+$/.test(i))throw new Error("Invalid UserPoolId format.");var c=i.split("_")[0];this.userPoolId=i,this.clientId=o,this.client=new r.default({apiVersion:"2016-04-19",region:c,endpoint:a}),this.advancedSecurityDataCollectionFlag=!0,u&&(this.advancedSecurityDataCollectionFlag=u),this.storage=t.Storage||(new l.default).getStorage()}return e.prototype.getUserPoolId=function(){return this.userPoolId},e.prototype.getClientId=function(){return this.clientId},e.prototype.signUp=function(e,t,n,i,s){var o=this;this.client.makeUnauthenticatedRequest("signUp",{ClientId:this.clientId,Username:e,Password:t,UserAttributes:n,ValidationData:i,UserContextData:this.getUserContextData(e)},function(t,n){if(t)return s(t,null);var i={Username:e,Pool:o,Storage:o.storage},r={user:new u.default(i),userConfirmed:n.UserConfirmed,userSub:n.UserSub};return s(null,r)})},e.prototype.getCurrentUser=function(){var e="CognitoIdentityServiceProvider."+this.clientId+".LastAuthUser",t=this.storage.getItem(e);if(t){var n={Username:t,Pool:this,Storage:this.storage};return new u.default(n)}return null},e.prototype.getUserContextData=function(e){if("undefined"==typeof AmazonCognitoAdvancedSecurityData)return{};var t=AmazonCognitoAdvancedSecurityData;if(this.advancedSecurityDataCollectionFlag){var n=t.getData(e,this.userPoolId,this.clientId);if(n){var i={EncodedData:n};return i}}return{}},e}();t.default=h},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var o=n(18),r=i(o),a=function(){function e(t){s(this,e),this.domain=t.domain,t.path?this.path=t.path:this.path="/",Object.prototype.hasOwnProperty.call(t,"expires")?this.expires=t.expires:this.expires=365,Object.prototype.hasOwnProperty.call(t,"secure")?this.secure=t.secure:this.secure=!0}return e.prototype.setItem=function(e,t){return r.set(e,t,{path:this.path,expires:this.expires,domain:this.domain}),r.get(e)},e.prototype.getItem=function(e){return r.get(e)},e.prototype.removeItem=function(e){return r.remove(e,{path:this.path,domain:this.domain,secure:this.secure})},e.prototype.clear=function(){var e=r.get(),t=void 0;for(t=0;t<e.length;++t)r.remove(e[t]);return{}},e}();t.default=a},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var s=n(14);Object.defineProperty(t,"AuthenticationDetails",{enumerable:!0,get:function(){return i(s).default}});var o=n(2);Object.defineProperty(t,"AuthenticationHelper",{enumerable:!0,get:function(){return i(o).default}});var r=n(4);Object.defineProperty(t,"CognitoAccessToken",{enumerable:!0,get:function(){return i(r).default}});var a=n(5);Object.defineProperty(t,"CognitoIdToken",{enumerable:!0,get:function(){return i(a).default}});var u=n(7);Object.defineProperty(t,"CognitoRefreshToken",{enumerable:!0,get:function(){return i(u).default}});var c=n(8);Object.defineProperty(t,"CognitoUser",{enumerable:!0,get:function(){return i(c).default}});var l=n(9);Object.defineProperty(t,"CognitoUserAttribute",{enumerable:!0,get:function(){return i(l).default}});var h=n(15);Object.defineProperty(t,"CognitoUserPool",{enumerable:!0,get:function(){return i(h).default}});var f=n(10);Object.defineProperty(t,"CognitoUserSession",{enumerable:!0,get:function(){return i(f).default}});var d=n(16);Object.defineProperty(t,"CookieStorage",{enumerable:!0,get:function(){return i(d).default}});var p=n(11);Object.defineProperty(t,"DateHelper",{enumerable:!0,get:function(){return i(p).default}}),"undefined"!=typeof window&&!window.crypto&&window.msCrypto&&(window.crypto=window.msCrypto)},function(e,t,n){var i,s;!function(o){var r=!1;if(i=o,s="function"==typeof i?i.call(t,n,t,e):i,!(void 0!==s&&(e.exports=s)),r=!0,e.exports=o(),r=!0,!r){var a=window.Cookies,u=window.Cookies=o();u.noConflict=function(){return window.Cookies=a,u}}}(function(){function e(){for(var e=0,t={};e<arguments.length;e++){var n=arguments[e];for(var i in n)t[i]=n[i]}return t}function t(n){function i(t,s,o){var r;if("undefined"!=typeof document){if(arguments.length>1){if(o=e({path:"/"},i.defaults,o),"number"==typeof o.expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*o.expires),o.expires=a}o.expires=o.expires?o.expires.toUTCString():"";try{r=JSON.stringify(s),/^[\{\[]/.test(r)&&(s=r)}catch(e){}s=n.write?n.write(s,t):encodeURIComponent(String(s)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)),t=t.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),t=t.replace(/[\(\)]/g,escape);var u="";for(var c in o)o[c]&&(u+="; "+c,o[c]!==!0&&(u+="="+o[c]));return document.cookie=t+"="+s+u}t||(r={});for(var l=document.cookie?document.cookie.split("; "):[],h=/(%[0-9A-Z]{2})+/g,f=0;f<l.length;f++){var d=l[f].split("="),p=d.slice(1).join("=");this.json||'"'!==p.charAt(0)||(p=p.slice(1,-1));try{var g=d[0].replace(h,decodeURIComponent);if(p=n.read?n.read(p,g):n(p,g)||p.replace(h,decodeURIComponent),this.json)try{p=JSON.parse(p)}catch(e){}if(t===g){r=p;break}t||(r[g]=p)}catch(e){}}return r}}return i.set=i,i.get=function(e){return i.call(i,e)},i.getJSON=function(){return i.apply({json:!0},[].slice.call(arguments))},i.defaults={},i.remove=function(t,n){i(t,"",e(n,{expires:-1}))},i.withConverter=t,i}return t(function(){})})}])}); | ||
//# sourceMappingURL=amazon-cognito-identity.min.js.map |
@@ -173,3 +173,4 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
AuthParameters: authParameters, | ||
ClientMetadata: authDetails.getValidationData() | ||
ClientMetadata: authDetails.getValidationData(), | ||
UserContextData: this.getUserContextData() | ||
}, function (err, data) { | ||
@@ -240,3 +241,4 @@ if (err) { | ||
AuthParameters: authParameters, | ||
ClientMetadata: authDetails.getValidationData() | ||
ClientMetadata: authDetails.getValidationData(), | ||
UserContextData: _this2.getUserContextData() | ||
}, function (err, data) { | ||
@@ -293,3 +295,4 @@ if (err) { | ||
ChallengeResponses: challengeResponses, | ||
Session: data.Session | ||
Session: data.Session, | ||
UserContextData: _this2.getUserContextData() | ||
}, function (errAuthenticate, dataAuthenticate) { | ||
@@ -352,2 +355,17 @@ if (errAuthenticate) { | ||
if (challengeName === 'SELECT_MFA_TYPE') { | ||
this.Session = dataAuthenticate.Session; | ||
return callback.selectMFAType(challengeName, challengeParameters); | ||
} | ||
if (challengeName === 'MFA_SETUP') { | ||
this.Session = dataAuthenticate.Session; | ||
return callback.mfaSetup(challengeName, challengeParameters); | ||
} | ||
if (challengeName === 'SOFTWARE_TOKEN_MFA') { | ||
this.Session = dataAuthenticate.Session; | ||
return callback.totpRequired(challengeName, challengeParameters); | ||
} | ||
if (challengeName === 'CUSTOM_CHALLENGE') { | ||
@@ -445,3 +463,4 @@ this.Session = dataAuthenticate.Session; | ||
ChallengeResponses: finalUserAttributes, | ||
Session: this.Session | ||
Session: this.Session, | ||
UserContextData: this.getUserContextData() | ||
}, function (errAuthenticate, dataAuthenticate) { | ||
@@ -489,3 +508,4 @@ if (errAuthenticate) { | ||
ClientId: _this5.pool.getClientId(), | ||
ChallengeResponses: authParameters | ||
ChallengeResponses: authParameters, | ||
UserContextData: _this5.getUserContextData() | ||
}, function (err, data) { | ||
@@ -523,3 +543,4 @@ if (err) { | ||
ChallengeResponses: challengeResponses, | ||
Session: data.Session | ||
Session: data.Session, | ||
UserContextData: _this5.getUserContextData() | ||
}, function (errAuthenticate, dataAuthenticate) { | ||
@@ -558,3 +579,4 @@ if (errAuthenticate) { | ||
Username: this.username, | ||
ForceAliasCreation: forceAliasCreation | ||
ForceAliasCreation: forceAliasCreation, | ||
UserContextData: this.getUserContextData() | ||
}, function (err) { | ||
@@ -591,3 +613,4 @@ if (err) { | ||
ClientId: this.pool.getClientId(), | ||
Session: this.Session | ||
Session: this.Session, | ||
UserContextData: this.getUserContextData() | ||
}, function (err, data) { | ||
@@ -615,2 +638,3 @@ if (err) { | ||
* @param {object} callback Result callback map. | ||
* @param {string} mfaType The mfa we are replying to. | ||
* @param {onFailure} callback.onFailure Called on any error. | ||
@@ -622,3 +646,3 @@ * @param {authSuccess} callback.onSuccess Called on success with the new session. | ||
CognitoUser.prototype.sendMFACode = function sendMFACode(confirmationCode, callback) { | ||
CognitoUser.prototype.sendMFACode = function sendMFACode(confirmationCode, callback, mfaType) { | ||
var _this7 = this; | ||
@@ -629,2 +653,6 @@ | ||
challengeResponses.SMS_MFA_CODE = confirmationCode; | ||
var mfaTypeSelection = mfaType || 'SMS_MFA'; | ||
if (mfaTypeSelection === 'SOFTWARE_TOKEN_MFA') { | ||
challengeResponses.SOFTWARE_TOKEN_MFA_CODE = confirmationCode; | ||
} | ||
@@ -636,6 +664,7 @@ if (this.deviceKey != null) { | ||
this.client.makeUnauthenticatedRequest('respondToAuthChallenge', { | ||
ChallengeName: 'SMS_MFA', | ||
ChallengeName: mfaTypeSelection, | ||
ChallengeResponses: challengeResponses, | ||
ClientId: this.pool.getClientId(), | ||
Session: this.Session | ||
Session: this.Session, | ||
UserContextData: this.getUserContextData() | ||
}, function (err, dataAuthenticate) { | ||
@@ -757,2 +786,29 @@ if (err) { | ||
/** | ||
* This is used by an authenticated user to enable MFA for himself | ||
* @param {string[]} smsMfaSettings the sms mfa settings | ||
* @param {string[]} softwareTokenMfaSettings the software token mfa settings | ||
* @param {nodeCallback<string>} callback Called on success or error. | ||
* @returns {void} | ||
*/ | ||
CognitoUser.prototype.setUserMfaPreference = function setUserMfaPreference(smsMfaSettings, softwareTokenMfaSettings, callback) { | ||
if (this.signInUserSession == null || !this.signInUserSession.isValid()) { | ||
return callback(new Error('User is not authenticated'), null); | ||
} | ||
this.client.makeUnauthenticatedRequest('setUserMFAPreference', { | ||
SMSMfaSettings: smsMfaSettings, | ||
SoftwareTokenMfaSettings: softwareTokenMfaSettings, | ||
AccessToken: this.signInUserSession.getAccessToken().getJwtToken() | ||
}, function (err) { | ||
if (err) { | ||
return callback(err, null); | ||
} | ||
return callback(null, 'SUCCESS'); | ||
}); | ||
return undefined; | ||
}; | ||
/** | ||
* This is used by an authenticated user to disable MFA for himself | ||
@@ -931,3 +987,4 @@ * @param {nodeCallback<string>} callback Called on success or error. | ||
ClientId: this.pool.getClientId(), | ||
Username: this.username | ||
Username: this.username, | ||
UserContextData: this.getUserContextData() | ||
}, function (err, result) { | ||
@@ -1027,3 +1084,4 @@ if (err) { | ||
AuthFlow: 'REFRESH_TOKEN_AUTH', | ||
AuthParameters: authParameters | ||
AuthParameters: authParameters, | ||
UserContextData: this.getUserContextData() | ||
}, function (err, authResult) { | ||
@@ -1178,3 +1236,4 @@ if (err) { | ||
ClientId: this.pool.getClientId(), | ||
Username: this.username | ||
Username: this.username, | ||
UserContextData: this.getUserContextData() | ||
}, function (err, data) { | ||
@@ -1207,3 +1266,4 @@ if (err) { | ||
ConfirmationCode: confirmationCode, | ||
Password: newPassword | ||
Password: newPassword, | ||
UserContextData: this.getUserContextData() | ||
}, function (err) { | ||
@@ -1476,2 +1536,154 @@ if (err) { | ||
/** | ||
* This is used by a user trying to select a given MFA | ||
* @param {string} answerChallenge the mfa the user wants | ||
* @param {nodeCallback<string>} callback Called on success or error. | ||
* @returns {void} | ||
*/ | ||
CognitoUser.prototype.sendMFASelectionAnswer = function sendMFASelectionAnswer(answerChallenge, callback) { | ||
var _this12 = this; | ||
var challengeResponses = {}; | ||
challengeResponses.USERNAME = this.username; | ||
challengeResponses.ANSWER = answerChallenge; | ||
this.client.makeUnauthenticatedRequest('respondToAuthChallenge', { | ||
ChallengeName: 'SELECT_MFA_TYPE', | ||
ChallengeResponses: challengeResponses, | ||
ClientId: this.pool.getClientId(), | ||
Session: this.Session, | ||
UserContextData: this.getUserContextData() | ||
}, function (err, data) { | ||
if (err) { | ||
return callback.onFailure(err); | ||
} | ||
_this12.Session = data.Session; | ||
if (answerChallenge === 'SMS_MFA') { | ||
return callback.mfaRequired(data.challengeName, data.challengeParameters); | ||
} | ||
if (answerChallenge === 'SOFTWARE_TOKEN_MFA') { | ||
return callback.totpRequired(data.challengeName, data.challengeParameters); | ||
} | ||
return undefined; | ||
}); | ||
}; | ||
/** | ||
* This returns the user context data for advanced security feature. | ||
* @returns {void} | ||
*/ | ||
CognitoUser.prototype.getUserContextData = function getUserContextData() { | ||
var pool = this.pool; | ||
return pool.getUserContextData(this.username); | ||
}; | ||
/** | ||
* This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA | ||
* @param {nodeCallback<string>} callback Called on success or error. | ||
* @returns {void} | ||
*/ | ||
CognitoUser.prototype.associateSoftwareToken = function associateSoftwareToken(callback) { | ||
var _this13 = this; | ||
if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { | ||
this.client.makeUnauthenticatedRequest('associateSoftwareToken', { | ||
Session: this.Session | ||
}, function (err, data) { | ||
if (err) { | ||
return callback.onFailure(err); | ||
} | ||
_this13.Session = data.Session; | ||
return callback.associateSecretCode(data.SecretCode); | ||
}); | ||
} else { | ||
this.client.makeUnauthenticatedRequest('associateSoftwareToken', { | ||
AccessToken: this.signInUserSession.getAccessToken().getJwtToken() | ||
}, function (err, data) { | ||
if (err) { | ||
return callback.onFailure(err); | ||
} | ||
return callback.associateSecretCode(data.SecretCode); | ||
}); | ||
} | ||
}; | ||
/** | ||
* This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA | ||
* @param {string} totpCode The MFA code entered by the user. | ||
* @param {string} friendlyDeviceName The device name we are assigning to the device. | ||
* @param {nodeCallback<string>} callback Called on success or error. | ||
* @returns {void} | ||
*/ | ||
CognitoUser.prototype.verifySoftwareToken = function verifySoftwareToken(totpCode, friendlyDeviceName, callback) { | ||
var _this14 = this; | ||
if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { | ||
this.client.makeUnauthenticatedRequest('verifySoftwareToken', { | ||
Session: this.Session, | ||
UserCode: totpCode, | ||
FriendlyDeviceName: friendlyDeviceName | ||
}, function (err, data) { | ||
if (err) { | ||
return callback.onFailure(err); | ||
} | ||
_this14.Session = data.Session; | ||
var challengeResponses = {}; | ||
challengeResponses.USERNAME = _this14.username; | ||
_this14.client.makeUnauthenticatedRequest('respondToAuthChallenge', { | ||
ChallengeName: 'MFA_SETUP', | ||
ClientId: _this14.pool.getClientId(), | ||
ChallengeResponses: challengeResponses, | ||
Session: _this14.Session, | ||
UserContextData: _this14.getUserContextData() | ||
}, function (errRespond, dataRespond) { | ||
if (errRespond) { | ||
return callback.onFailure(errRespond); | ||
} | ||
_this14.signInUserSession = _this14.getCognitoUserSession(dataRespond.AuthenticationResult); | ||
_this14.cacheTokens(); | ||
return callback.onSuccess(_this14.signInUserSession); | ||
}); | ||
return undefined; | ||
}); | ||
} else { | ||
this.client.makeUnauthenticatedRequest('verifySoftwareToken', { | ||
AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), | ||
UserCode: totpCode, | ||
FriendlyDeviceName: friendlyDeviceName | ||
}, function (err, data) { | ||
if (err) { | ||
return callback.onFailure(err); | ||
} | ||
_this14.Session = data.Session; | ||
var challengeResponses = {}; | ||
challengeResponses.USERNAME = _this14.username; | ||
_this14.client.makeUnauthenticatedRequest('respondToAuthChallenge', { | ||
ChallengeName: 'MFA_SETUP', | ||
ClientId: _this14.pool.getClientId(), | ||
ChallengeResponses: challengeResponses, | ||
Session: _this14.Session, | ||
UserContextData: _this14.getUserContextData() | ||
}, function (errRespond, dataRespond) { | ||
if (errRespond) { | ||
return callback.onFailure(errRespond); | ||
} | ||
_this14.signInUserSession = _this14.getCognitoUserSession(dataRespond.AuthenticationResult); | ||
_this14.cacheTokens(); | ||
return callback.onSuccess(_this14.signInUserSession); | ||
}); | ||
return undefined; | ||
}); | ||
} | ||
}; | ||
return CognitoUser; | ||
@@ -1478,0 +1690,0 @@ }(); |
@@ -34,2 +34,6 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
* @param {object} data.Storage Optional storage object. | ||
* @param {boolean} data.AdvancedSecurityDataCollectionFlag Optional: | ||
* boolean flag indicating if the data collection is enabled | ||
* to support cognito advanced security features. By default, this | ||
* flag is set to true. | ||
*/ | ||
@@ -42,3 +46,4 @@ function CognitoUserPool(data) { | ||
ClientId = _ref.ClientId, | ||
endpoint = _ref.endpoint; | ||
endpoint = _ref.endpoint, | ||
AdvancedSecurityDataCollectionFlag = _ref.AdvancedSecurityDataCollectionFlag; | ||
@@ -62,2 +67,10 @@ if (!UserPoolId || !ClientId) { | ||
/** | ||
* By default, AdvancedSecurityDataCollectionFlag is set to true, | ||
* if no input value is provided. | ||
*/ | ||
this.advancedSecurityDataCollectionFlag = true; | ||
if (AdvancedSecurityDataCollectionFlag) { | ||
this.advancedSecurityDataCollectionFlag = AdvancedSecurityDataCollectionFlag; | ||
} | ||
this.storage = data.Storage || new StorageHelper().getStorage(); | ||
@@ -108,3 +121,4 @@ } | ||
UserAttributes: userAttributes, | ||
ValidationData: validationData | ||
ValidationData: validationData, | ||
UserContextData: this.getUserContextData(username) | ||
}, function (err, data) { | ||
@@ -155,2 +169,32 @@ if (err) { | ||
/** | ||
* This method returns the encoded data string used for cognito advanced security feature. | ||
* This would be generated only when developer has included the JS used for collecting the | ||
* data on their client. Please refer to documentation to know more about using AdvancedSecurity | ||
* features | ||
* @param {string} username the username for the context data | ||
* @returns {string} the user context data | ||
**/ | ||
CognitoUserPool.prototype.getUserContextData = function getUserContextData(username) { | ||
if (typeof AmazonCognitoAdvancedSecurityData === 'undefined') { | ||
return {}; | ||
} | ||
/* eslint-disable */ | ||
var amazonCognitoAdvancedSecurityDataConst = AmazonCognitoAdvancedSecurityData; | ||
/* eslint-enable */ | ||
if (this.advancedSecurityDataCollectionFlag) { | ||
var advancedSecurityData = amazonCognitoAdvancedSecurityDataConst.getData(username, this.userPoolId, this.clientId); | ||
if (advancedSecurityData) { | ||
var userContextData = { | ||
EncodedData: advancedSecurityData | ||
}; | ||
return userContextData; | ||
} | ||
} | ||
return {}; | ||
}; | ||
return CognitoUserPool; | ||
@@ -157,0 +201,0 @@ }(); |
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
import * as Cookies from "js-cookie"; | ||
import * as Cookies from 'js-cookie'; | ||
@@ -26,3 +26,3 @@ /** @class */ | ||
} | ||
if (data.expire) { | ||
if (Object.prototype.hasOwnProperty.call(data, 'expires')) { | ||
this.expires = data.expires; | ||
@@ -32,3 +32,3 @@ } else { | ||
} | ||
if (data.hasOwnProperty('secure')) { | ||
if (Object.prototype.hasOwnProperty.call(data, 'secure')) { | ||
this.secure = data.secure; | ||
@@ -49,3 +49,7 @@ } else { | ||
CookieStorage.prototype.setItem = function setItem(key, value) { | ||
Cookies.set(key, value, { path: this.path, expires: this.expires, domain: this.domain }); | ||
Cookies.set(key, value, { | ||
path: this.path, | ||
expires: this.expires, | ||
domain: this.domain | ||
}); | ||
return Cookies.get(key); | ||
@@ -74,3 +78,7 @@ }; | ||
CookieStorage.prototype.removeItem = function removeItem(key) { | ||
return Cookies.remove(key, { path: this.path, domain: this.domain, secure: this.secure }); | ||
return Cookies.remove(key, { | ||
path: this.path, | ||
domain: this.domain, | ||
secure: this.secure | ||
}); | ||
}; | ||
@@ -86,3 +94,3 @@ | ||
var cookies = Cookies.get(); | ||
var index; | ||
var index = void 0; | ||
for (index = 0; index < cookies.length; ++index) { | ||
@@ -89,0 +97,0 @@ Cookies.remove(cookies[index]); |
@@ -202,3 +202,4 @@ 'use strict'; | ||
AuthParameters: authParameters, | ||
ClientMetadata: authDetails.getValidationData() | ||
ClientMetadata: authDetails.getValidationData(), | ||
UserContextData: this.getUserContextData() | ||
}, function (err, data) { | ||
@@ -269,3 +270,4 @@ if (err) { | ||
AuthParameters: authParameters, | ||
ClientMetadata: authDetails.getValidationData() | ||
ClientMetadata: authDetails.getValidationData(), | ||
UserContextData: _this2.getUserContextData() | ||
}, function (err, data) { | ||
@@ -322,3 +324,4 @@ if (err) { | ||
ChallengeResponses: challengeResponses, | ||
Session: data.Session | ||
Session: data.Session, | ||
UserContextData: _this2.getUserContextData() | ||
}, function (errAuthenticate, dataAuthenticate) { | ||
@@ -381,2 +384,17 @@ if (errAuthenticate) { | ||
if (challengeName === 'SELECT_MFA_TYPE') { | ||
this.Session = dataAuthenticate.Session; | ||
return callback.selectMFAType(challengeName, challengeParameters); | ||
} | ||
if (challengeName === 'MFA_SETUP') { | ||
this.Session = dataAuthenticate.Session; | ||
return callback.mfaSetup(challengeName, challengeParameters); | ||
} | ||
if (challengeName === 'SOFTWARE_TOKEN_MFA') { | ||
this.Session = dataAuthenticate.Session; | ||
return callback.totpRequired(challengeName, challengeParameters); | ||
} | ||
if (challengeName === 'CUSTOM_CHALLENGE') { | ||
@@ -474,3 +492,4 @@ this.Session = dataAuthenticate.Session; | ||
ChallengeResponses: finalUserAttributes, | ||
Session: this.Session | ||
Session: this.Session, | ||
UserContextData: this.getUserContextData() | ||
}, function (errAuthenticate, dataAuthenticate) { | ||
@@ -518,3 +537,4 @@ if (errAuthenticate) { | ||
ClientId: _this5.pool.getClientId(), | ||
ChallengeResponses: authParameters | ||
ChallengeResponses: authParameters, | ||
UserContextData: _this5.getUserContextData() | ||
}, function (err, data) { | ||
@@ -552,3 +572,4 @@ if (err) { | ||
ChallengeResponses: challengeResponses, | ||
Session: data.Session | ||
Session: data.Session, | ||
UserContextData: _this5.getUserContextData() | ||
}, function (errAuthenticate, dataAuthenticate) { | ||
@@ -587,3 +608,4 @@ if (errAuthenticate) { | ||
Username: this.username, | ||
ForceAliasCreation: forceAliasCreation | ||
ForceAliasCreation: forceAliasCreation, | ||
UserContextData: this.getUserContextData() | ||
}, function (err) { | ||
@@ -620,3 +642,4 @@ if (err) { | ||
ClientId: this.pool.getClientId(), | ||
Session: this.Session | ||
Session: this.Session, | ||
UserContextData: this.getUserContextData() | ||
}, function (err, data) { | ||
@@ -644,2 +667,3 @@ if (err) { | ||
* @param {object} callback Result callback map. | ||
* @param {string} mfaType The mfa we are replying to. | ||
* @param {onFailure} callback.onFailure Called on any error. | ||
@@ -651,3 +675,3 @@ * @param {authSuccess} callback.onSuccess Called on success with the new session. | ||
CognitoUser.prototype.sendMFACode = function sendMFACode(confirmationCode, callback) { | ||
CognitoUser.prototype.sendMFACode = function sendMFACode(confirmationCode, callback, mfaType) { | ||
var _this7 = this; | ||
@@ -658,2 +682,6 @@ | ||
challengeResponses.SMS_MFA_CODE = confirmationCode; | ||
var mfaTypeSelection = mfaType || 'SMS_MFA'; | ||
if (mfaTypeSelection === 'SOFTWARE_TOKEN_MFA') { | ||
challengeResponses.SOFTWARE_TOKEN_MFA_CODE = confirmationCode; | ||
} | ||
@@ -665,6 +693,7 @@ if (this.deviceKey != null) { | ||
this.client.makeUnauthenticatedRequest('respondToAuthChallenge', { | ||
ChallengeName: 'SMS_MFA', | ||
ChallengeName: mfaTypeSelection, | ||
ChallengeResponses: challengeResponses, | ||
ClientId: this.pool.getClientId(), | ||
Session: this.Session | ||
Session: this.Session, | ||
UserContextData: this.getUserContextData() | ||
}, function (err, dataAuthenticate) { | ||
@@ -786,2 +815,29 @@ if (err) { | ||
/** | ||
* This is used by an authenticated user to enable MFA for himself | ||
* @param {string[]} smsMfaSettings the sms mfa settings | ||
* @param {string[]} softwareTokenMfaSettings the software token mfa settings | ||
* @param {nodeCallback<string>} callback Called on success or error. | ||
* @returns {void} | ||
*/ | ||
CognitoUser.prototype.setUserMfaPreference = function setUserMfaPreference(smsMfaSettings, softwareTokenMfaSettings, callback) { | ||
if (this.signInUserSession == null || !this.signInUserSession.isValid()) { | ||
return callback(new Error('User is not authenticated'), null); | ||
} | ||
this.client.makeUnauthenticatedRequest('setUserMFAPreference', { | ||
SMSMfaSettings: smsMfaSettings, | ||
SoftwareTokenMfaSettings: softwareTokenMfaSettings, | ||
AccessToken: this.signInUserSession.getAccessToken().getJwtToken() | ||
}, function (err) { | ||
if (err) { | ||
return callback(err, null); | ||
} | ||
return callback(null, 'SUCCESS'); | ||
}); | ||
return undefined; | ||
}; | ||
/** | ||
* This is used by an authenticated user to disable MFA for himself | ||
@@ -960,3 +1016,4 @@ * @param {nodeCallback<string>} callback Called on success or error. | ||
ClientId: this.pool.getClientId(), | ||
Username: this.username | ||
Username: this.username, | ||
UserContextData: this.getUserContextData() | ||
}, function (err, result) { | ||
@@ -1056,3 +1113,4 @@ if (err) { | ||
AuthFlow: 'REFRESH_TOKEN_AUTH', | ||
AuthParameters: authParameters | ||
AuthParameters: authParameters, | ||
UserContextData: this.getUserContextData() | ||
}, function (err, authResult) { | ||
@@ -1207,3 +1265,4 @@ if (err) { | ||
ClientId: this.pool.getClientId(), | ||
Username: this.username | ||
Username: this.username, | ||
UserContextData: this.getUserContextData() | ||
}, function (err, data) { | ||
@@ -1236,3 +1295,4 @@ if (err) { | ||
ConfirmationCode: confirmationCode, | ||
Password: newPassword | ||
Password: newPassword, | ||
UserContextData: this.getUserContextData() | ||
}, function (err) { | ||
@@ -1505,2 +1565,154 @@ if (err) { | ||
/** | ||
* This is used by a user trying to select a given MFA | ||
* @param {string} answerChallenge the mfa the user wants | ||
* @param {nodeCallback<string>} callback Called on success or error. | ||
* @returns {void} | ||
*/ | ||
CognitoUser.prototype.sendMFASelectionAnswer = function sendMFASelectionAnswer(answerChallenge, callback) { | ||
var _this12 = this; | ||
var challengeResponses = {}; | ||
challengeResponses.USERNAME = this.username; | ||
challengeResponses.ANSWER = answerChallenge; | ||
this.client.makeUnauthenticatedRequest('respondToAuthChallenge', { | ||
ChallengeName: 'SELECT_MFA_TYPE', | ||
ChallengeResponses: challengeResponses, | ||
ClientId: this.pool.getClientId(), | ||
Session: this.Session, | ||
UserContextData: this.getUserContextData() | ||
}, function (err, data) { | ||
if (err) { | ||
return callback.onFailure(err); | ||
} | ||
_this12.Session = data.Session; | ||
if (answerChallenge === 'SMS_MFA') { | ||
return callback.mfaRequired(data.challengeName, data.challengeParameters); | ||
} | ||
if (answerChallenge === 'SOFTWARE_TOKEN_MFA') { | ||
return callback.totpRequired(data.challengeName, data.challengeParameters); | ||
} | ||
return undefined; | ||
}); | ||
}; | ||
/** | ||
* This returns the user context data for advanced security feature. | ||
* @returns {void} | ||
*/ | ||
CognitoUser.prototype.getUserContextData = function getUserContextData() { | ||
var pool = this.pool; | ||
return pool.getUserContextData(this.username); | ||
}; | ||
/** | ||
* This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA | ||
* @param {nodeCallback<string>} callback Called on success or error. | ||
* @returns {void} | ||
*/ | ||
CognitoUser.prototype.associateSoftwareToken = function associateSoftwareToken(callback) { | ||
var _this13 = this; | ||
if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { | ||
this.client.makeUnauthenticatedRequest('associateSoftwareToken', { | ||
Session: this.Session | ||
}, function (err, data) { | ||
if (err) { | ||
return callback.onFailure(err); | ||
} | ||
_this13.Session = data.Session; | ||
return callback.associateSecretCode(data.SecretCode); | ||
}); | ||
} else { | ||
this.client.makeUnauthenticatedRequest('associateSoftwareToken', { | ||
AccessToken: this.signInUserSession.getAccessToken().getJwtToken() | ||
}, function (err, data) { | ||
if (err) { | ||
return callback.onFailure(err); | ||
} | ||
return callback.associateSecretCode(data.SecretCode); | ||
}); | ||
} | ||
}; | ||
/** | ||
* This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA | ||
* @param {string} totpCode The MFA code entered by the user. | ||
* @param {string} friendlyDeviceName The device name we are assigning to the device. | ||
* @param {nodeCallback<string>} callback Called on success or error. | ||
* @returns {void} | ||
*/ | ||
CognitoUser.prototype.verifySoftwareToken = function verifySoftwareToken(totpCode, friendlyDeviceName, callback) { | ||
var _this14 = this; | ||
if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { | ||
this.client.makeUnauthenticatedRequest('verifySoftwareToken', { | ||
Session: this.Session, | ||
UserCode: totpCode, | ||
FriendlyDeviceName: friendlyDeviceName | ||
}, function (err, data) { | ||
if (err) { | ||
return callback.onFailure(err); | ||
} | ||
_this14.Session = data.Session; | ||
var challengeResponses = {}; | ||
challengeResponses.USERNAME = _this14.username; | ||
_this14.client.makeUnauthenticatedRequest('respondToAuthChallenge', { | ||
ChallengeName: 'MFA_SETUP', | ||
ClientId: _this14.pool.getClientId(), | ||
ChallengeResponses: challengeResponses, | ||
Session: _this14.Session, | ||
UserContextData: _this14.getUserContextData() | ||
}, function (errRespond, dataRespond) { | ||
if (errRespond) { | ||
return callback.onFailure(errRespond); | ||
} | ||
_this14.signInUserSession = _this14.getCognitoUserSession(dataRespond.AuthenticationResult); | ||
_this14.cacheTokens(); | ||
return callback.onSuccess(_this14.signInUserSession); | ||
}); | ||
return undefined; | ||
}); | ||
} else { | ||
this.client.makeUnauthenticatedRequest('verifySoftwareToken', { | ||
AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), | ||
UserCode: totpCode, | ||
FriendlyDeviceName: friendlyDeviceName | ||
}, function (err, data) { | ||
if (err) { | ||
return callback.onFailure(err); | ||
} | ||
_this14.Session = data.Session; | ||
var challengeResponses = {}; | ||
challengeResponses.USERNAME = _this14.username; | ||
_this14.client.makeUnauthenticatedRequest('respondToAuthChallenge', { | ||
ChallengeName: 'MFA_SETUP', | ||
ClientId: _this14.pool.getClientId(), | ||
ChallengeResponses: challengeResponses, | ||
Session: _this14.Session, | ||
UserContextData: _this14.getUserContextData() | ||
}, function (errRespond, dataRespond) { | ||
if (errRespond) { | ||
return callback.onFailure(errRespond); | ||
} | ||
_this14.signInUserSession = _this14.getCognitoUserSession(dataRespond.AuthenticationResult); | ||
_this14.cacheTokens(); | ||
return callback.onSuccess(_this14.signInUserSession); | ||
}); | ||
return undefined; | ||
}); | ||
} | ||
}; | ||
return CognitoUser; | ||
@@ -1507,0 +1719,0 @@ }(); |
@@ -44,2 +44,6 @@ 'use strict'; | ||
* @param {object} data.Storage Optional storage object. | ||
* @param {boolean} data.AdvancedSecurityDataCollectionFlag Optional: | ||
* boolean flag indicating if the data collection is enabled | ||
* to support cognito advanced security features. By default, this | ||
* flag is set to true. | ||
*/ | ||
@@ -52,3 +56,4 @@ function CognitoUserPool(data) { | ||
ClientId = _ref.ClientId, | ||
endpoint = _ref.endpoint; | ||
endpoint = _ref.endpoint, | ||
AdvancedSecurityDataCollectionFlag = _ref.AdvancedSecurityDataCollectionFlag; | ||
@@ -72,2 +77,10 @@ if (!UserPoolId || !ClientId) { | ||
/** | ||
* By default, AdvancedSecurityDataCollectionFlag is set to true, | ||
* if no input value is provided. | ||
*/ | ||
this.advancedSecurityDataCollectionFlag = true; | ||
if (AdvancedSecurityDataCollectionFlag) { | ||
this.advancedSecurityDataCollectionFlag = AdvancedSecurityDataCollectionFlag; | ||
} | ||
this.storage = data.Storage || new _StorageHelper2.default().getStorage(); | ||
@@ -118,3 +131,4 @@ } | ||
UserAttributes: userAttributes, | ||
ValidationData: validationData | ||
ValidationData: validationData, | ||
UserContextData: this.getUserContextData(username) | ||
}, function (err, data) { | ||
@@ -165,2 +179,32 @@ if (err) { | ||
/** | ||
* This method returns the encoded data string used for cognito advanced security feature. | ||
* This would be generated only when developer has included the JS used for collecting the | ||
* data on their client. Please refer to documentation to know more about using AdvancedSecurity | ||
* features | ||
* @param {string} username the username for the context data | ||
* @returns {string} the user context data | ||
**/ | ||
CognitoUserPool.prototype.getUserContextData = function getUserContextData(username) { | ||
if (typeof AmazonCognitoAdvancedSecurityData === 'undefined') { | ||
return {}; | ||
} | ||
/* eslint-disable */ | ||
var amazonCognitoAdvancedSecurityDataConst = AmazonCognitoAdvancedSecurityData; | ||
/* eslint-enable */ | ||
if (this.advancedSecurityDataCollectionFlag) { | ||
var advancedSecurityData = amazonCognitoAdvancedSecurityDataConst.getData(username, this.userPoolId, this.clientId); | ||
if (advancedSecurityData) { | ||
var userContextData = { | ||
EncodedData: advancedSecurityData | ||
}; | ||
return userContextData; | ||
} | ||
} | ||
return {}; | ||
}; | ||
return CognitoUserPool; | ||
@@ -167,0 +211,0 @@ }(); |
@@ -33,3 +33,3 @@ 'use strict'; | ||
} | ||
if (data.expire) { | ||
if (Object.prototype.hasOwnProperty.call(data, 'expires')) { | ||
this.expires = data.expires; | ||
@@ -39,3 +39,3 @@ } else { | ||
} | ||
if (data.hasOwnProperty('secure')) { | ||
if (Object.prototype.hasOwnProperty.call(data, 'secure')) { | ||
this.secure = data.secure; | ||
@@ -56,3 +56,7 @@ } else { | ||
CookieStorage.prototype.setItem = function setItem(key, value) { | ||
Cookies.set(key, value, { path: this.path, expires: this.expires, domain: this.domain }); | ||
Cookies.set(key, value, { | ||
path: this.path, | ||
expires: this.expires, | ||
domain: this.domain | ||
}); | ||
return Cookies.get(key); | ||
@@ -81,3 +85,7 @@ }; | ||
CookieStorage.prototype.removeItem = function removeItem(key) { | ||
return Cookies.remove(key, { path: this.path, domain: this.domain, secure: this.secure }); | ||
return Cookies.remove(key, { | ||
path: this.path, | ||
domain: this.domain, | ||
secure: this.secure | ||
}); | ||
}; | ||
@@ -93,3 +101,3 @@ | ||
var cookies = Cookies.get(); | ||
var index; | ||
var index = void 0; | ||
for (index = 0; index < cookies.length; ++index) { | ||
@@ -96,0 +104,0 @@ Cookies.remove(cookies[index]); |
{ | ||
"name": "amazon-cognito-identity-js", | ||
"description": "Amazon Cognito Identity Provider JavaScript SDK", | ||
"version": "1.26.0", | ||
"version": "1.27.0", | ||
"author": { | ||
@@ -6,0 +6,0 @@ "name": "Amazon Web Services", |
101
README.md
@@ -313,6 +313,13 @@ # Amazon Cognito Identity SDK for JavaScript | ||
}); | ||
// Instantiate aws sdk service objects now that the credentials have been updated. | ||
// example: var s3 = new AWS.S3(); | ||
//refreshes credentials using AWS.CognitoIdentity.getCredentialsForIdentity() | ||
AWS.config.credentials.refresh((error) => { | ||
if (error) { | ||
console.error(error); | ||
} else { | ||
// Instantiate aws sdk service objects now that the credentials have been updated. | ||
// example: var s3 = new AWS.S3(); | ||
console.log('Successfully logged!'); | ||
} | ||
}); | ||
}, | ||
@@ -701,2 +708,5 @@ | ||
```javascript | ||
``` | ||
To use the CookieStorage you have to pass it in the constructor map of CognitoUserPool and CognitoUser (when constructed directly): | ||
@@ -725,2 +735,81 @@ | ||
**Use case 27.** Selecting the MFA method and authenticating using TOTP. | ||
var authenticationData = { | ||
Username : 'username', | ||
Password : 'password', | ||
}; | ||
var authenticationDetails = new AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData); | ||
var poolData = { | ||
UserPoolId : '...', // Your user pool id here | ||
ClientId : '...' // Your client id here | ||
}; | ||
var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData); | ||
var userData = { | ||
Username : 'username', | ||
Pool : userPool | ||
}; | ||
var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData); | ||
cognitoUser.authenticateUser(authenticationDetails, { | ||
onSuccess: function (result) { | ||
console.log('access token + ' + result.getAccessToken().getJwtToken()); | ||
}, | ||
onFailure: function(err) { | ||
alert(err); | ||
}, | ||
mfaSetup: function(challengeName, challengeParameters) { | ||
cognitoUser.associateSoftwareToken(this); | ||
}, | ||
associateSecretCode : function(secretCode) { | ||
var challengeAnswer = prompt('Please input the TOTP code.' ,''); | ||
cognitoUser.verifySoftwareToken(challengeAnswer, 'My TOTP device', this); | ||
}, | ||
selectMFAType : function(challengeName, challengeParameters) { | ||
var mfaType = prompt('Please select the MFA method.', ''); | ||
cognitoUser.sendMFASelectionAnswer(mfaType, this); | ||
}, | ||
totpRequired : function(secretCode) { | ||
var challengeAnswer = prompt('Please input the TOTP code.' ,''); | ||
cognitoUser.sendMFACode(challengeAnswer, this, 'SOFTWARE_TOKEN_MFA'); | ||
}, | ||
mfaRequired: function(codeDeliveryDetails) { | ||
var verificationCode = prompt('Please input verification code' ,''); | ||
cognitoUser.sendMFACode(verificationCode, this); | ||
} | ||
}); | ||
**Use case 28.** Enabling and setting SMS MFA as the preferred MFA method for the user. | ||
smsMfaSettings = { | ||
PreferredMfa : true, | ||
Enabled : true | ||
}; | ||
cognitoUser.setUserMfaPreference(smsMfaSettings, null, function(err, result) { | ||
if (err) { | ||
alert(err); | ||
} | ||
console.log('call result ' + result) | ||
}); | ||
**Use case 29.** Enabling and setting TOTP MFA as the preferred MFA method for the user. | ||
totpMfaSettings = { | ||
PreferredMfa : true, | ||
Enabled : true | ||
}; | ||
cognitoUser.setUserMfaPreference(null, totpMfaSettings, function(err, result) { | ||
if (err) { | ||
alert(err); | ||
} | ||
console.log('call result ' + result) | ||
}); | ||
## Network Configuration | ||
@@ -739,2 +828,6 @@ The Amazon Cognito Identity JavaScript SDK will make requests to the following endpoints | ||
**v1.27.0:** | ||
* What has changed | ||
* Added support for TOTP and new MFA settings APIs. | ||
**v1.26.0:** | ||
@@ -741,0 +834,0 @@ * What has changed |
@@ -157,2 +157,3 @@ /*! | ||
ClientMetadata: authDetails.getValidationData(), | ||
UserContextData: this.getUserContextData(), | ||
}, (err, data) => { | ||
@@ -221,2 +222,3 @@ if (err) { | ||
ClientMetadata: authDetails.getValidationData(), | ||
UserContextData: this.getUserContextData(), | ||
}, (err, data) => { | ||
@@ -285,2 +287,3 @@ if (err) { | ||
Session: data.Session, | ||
UserContextData: this.getUserContextData(), | ||
}, (errAuthenticate, dataAuthenticate) => { | ||
@@ -348,2 +351,17 @@ if (errAuthenticate) { | ||
if (challengeName === 'SELECT_MFA_TYPE') { | ||
this.Session = dataAuthenticate.Session; | ||
return callback.selectMFAType(challengeName, challengeParameters); | ||
} | ||
if (challengeName === 'MFA_SETUP') { | ||
this.Session = dataAuthenticate.Session; | ||
return callback.mfaSetup(challengeName, challengeParameters); | ||
} | ||
if (challengeName === 'SOFTWARE_TOKEN_MFA') { | ||
this.Session = dataAuthenticate.Session; | ||
return callback.totpRequired(challengeName, challengeParameters); | ||
} | ||
if (challengeName === 'CUSTOM_CHALLENGE') { | ||
@@ -448,2 +466,3 @@ this.Session = dataAuthenticate.Session; | ||
Session: this.Session, | ||
UserContextData: this.getUserContextData(), | ||
}, (errAuthenticate, dataAuthenticate) => { | ||
@@ -489,2 +508,3 @@ if (errAuthenticate) { | ||
ChallengeResponses: authParameters, | ||
UserContextData: this.getUserContextData(), | ||
}, (err, data) => { | ||
@@ -533,2 +553,3 @@ if (err) { | ||
Session: data.Session, | ||
UserContextData: this.getUserContextData(), | ||
}, (errAuthenticate, dataAuthenticate) => { | ||
@@ -568,2 +589,3 @@ if (errAuthenticate) { | ||
ForceAliasCreation: forceAliasCreation, | ||
UserContextData: this.getUserContextData(), | ||
}, err => { | ||
@@ -597,2 +619,3 @@ if (err) { | ||
Session: this.Session, | ||
UserContextData: this.getUserContextData(), | ||
}, (err, data) => { | ||
@@ -620,2 +643,3 @@ if (err) { | ||
* @param {object} callback Result callback map. | ||
* @param {string} mfaType The mfa we are replying to. | ||
* @param {onFailure} callback.onFailure Called on any error. | ||
@@ -625,6 +649,10 @@ * @param {authSuccess} callback.onSuccess Called on success with the new session. | ||
*/ | ||
sendMFACode(confirmationCode, callback) { | ||
sendMFACode(confirmationCode, callback, mfaType) { | ||
const challengeResponses = {}; | ||
challengeResponses.USERNAME = this.username; | ||
challengeResponses.SMS_MFA_CODE = confirmationCode; | ||
const mfaTypeSelection = mfaType || 'SMS_MFA'; | ||
if (mfaTypeSelection === 'SOFTWARE_TOKEN_MFA') { | ||
challengeResponses.SOFTWARE_TOKEN_MFA_CODE = confirmationCode; | ||
} | ||
@@ -636,6 +664,7 @@ if (this.deviceKey != null) { | ||
this.client.makeUnauthenticatedRequest('respondToAuthChallenge', { | ||
ChallengeName: 'SMS_MFA', | ||
ChallengeName: mfaTypeSelection, | ||
ChallengeResponses: challengeResponses, | ||
ClientId: this.pool.getClientId(), | ||
Session: this.Session, | ||
UserContextData: this.getUserContextData(), | ||
}, (err, dataAuthenticate) => { | ||
@@ -764,2 +793,27 @@ if (err) { | ||
/** | ||
* This is used by an authenticated user to enable MFA for himself | ||
* @param {string[]} smsMfaSettings the sms mfa settings | ||
* @param {string[]} softwareTokenMfaSettings the software token mfa settings | ||
* @param {nodeCallback<string>} callback Called on success or error. | ||
* @returns {void} | ||
*/ | ||
setUserMfaPreference(smsMfaSettings, softwareTokenMfaSettings, callback) { | ||
if (this.signInUserSession == null || !this.signInUserSession.isValid()) { | ||
return callback(new Error('User is not authenticated'), null); | ||
} | ||
this.client.makeUnauthenticatedRequest('setUserMFAPreference', { | ||
SMSMfaSettings: smsMfaSettings, | ||
SoftwareTokenMfaSettings: softwareTokenMfaSettings, | ||
AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), | ||
}, err => { | ||
if (err) { | ||
return callback(err, null); | ||
} | ||
return callback(null, 'SUCCESS'); | ||
}); | ||
return undefined; | ||
} | ||
/** | ||
* This is used by an authenticated user to disable MFA for himself | ||
@@ -924,2 +978,3 @@ * @param {nodeCallback<string>} callback Called on success or error. | ||
Username: this.username, | ||
UserContextData: this.getUserContextData(), | ||
}, (err, result) => { | ||
@@ -1015,2 +1070,3 @@ if (err) { | ||
AuthParameters: authParameters, | ||
UserContextData: this.getUserContextData(), | ||
}, (err, authResult) => { | ||
@@ -1152,2 +1208,3 @@ if (err) { | ||
Username: this.username, | ||
UserContextData: this.getUserContextData(), | ||
}, (err, data) => { | ||
@@ -1179,2 +1236,3 @@ if (err) { | ||
Password: newPassword, | ||
UserContextData: this.getUserContextData(), | ||
}, err => { | ||
@@ -1422,2 +1480,140 @@ if (err) { | ||
} | ||
/** | ||
* This is used by a user trying to select a given MFA | ||
* @param {string} answerChallenge the mfa the user wants | ||
* @param {nodeCallback<string>} callback Called on success or error. | ||
* @returns {void} | ||
*/ | ||
sendMFASelectionAnswer(answerChallenge, callback) { | ||
const challengeResponses = {}; | ||
challengeResponses.USERNAME = this.username; | ||
challengeResponses.ANSWER = answerChallenge; | ||
this.client.makeUnauthenticatedRequest('respondToAuthChallenge', { | ||
ChallengeName: 'SELECT_MFA_TYPE', | ||
ChallengeResponses: challengeResponses, | ||
ClientId: this.pool.getClientId(), | ||
Session: this.Session, | ||
UserContextData: this.getUserContextData(), | ||
}, (err, data) => { | ||
if (err) { | ||
return callback.onFailure(err); | ||
} | ||
this.Session = data.Session; | ||
if (answerChallenge === 'SMS_MFA') { | ||
return callback.mfaRequired(data.challengeName, data.challengeParameters); | ||
} | ||
if (answerChallenge === 'SOFTWARE_TOKEN_MFA') { | ||
return callback.totpRequired(data.challengeName, data.challengeParameters); | ||
} | ||
return undefined; | ||
}); | ||
} | ||
/** | ||
* This returns the user context data for advanced security feature. | ||
* @returns {void} | ||
*/ | ||
getUserContextData() { | ||
const pool = this.pool; | ||
return pool.getUserContextData(this.username); | ||
} | ||
/** | ||
* This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA | ||
* @param {nodeCallback<string>} callback Called on success or error. | ||
* @returns {void} | ||
*/ | ||
associateSoftwareToken(callback) { | ||
if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { | ||
this.client.makeUnauthenticatedRequest('associateSoftwareToken', { | ||
Session: this.Session, | ||
}, (err, data) => { | ||
if (err) { | ||
return callback.onFailure(err); | ||
} | ||
this.Session = data.Session; | ||
return callback.associateSecretCode(data.SecretCode); | ||
}); | ||
} else { | ||
this.client.makeUnauthenticatedRequest('associateSoftwareToken', { | ||
AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), | ||
}, (err, data) => { | ||
if (err) { | ||
return callback.onFailure(err); | ||
} | ||
return callback.associateSecretCode(data.SecretCode); | ||
}); | ||
} | ||
} | ||
/** | ||
* This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA | ||
* @param {string} totpCode The MFA code entered by the user. | ||
* @param {string} friendlyDeviceName The device name we are assigning to the device. | ||
* @param {nodeCallback<string>} callback Called on success or error. | ||
* @returns {void} | ||
*/ | ||
verifySoftwareToken(totpCode, friendlyDeviceName, callback) { | ||
if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { | ||
this.client.makeUnauthenticatedRequest('verifySoftwareToken', { | ||
Session: this.Session, | ||
UserCode: totpCode, | ||
FriendlyDeviceName: friendlyDeviceName, | ||
}, (err, data) => { | ||
if (err) { | ||
return callback.onFailure(err); | ||
} | ||
this.Session = data.Session; | ||
const challengeResponses = {}; | ||
challengeResponses.USERNAME = this.username; | ||
this.client.makeUnauthenticatedRequest('respondToAuthChallenge', { | ||
ChallengeName: 'MFA_SETUP', | ||
ClientId: this.pool.getClientId(), | ||
ChallengeResponses: challengeResponses, | ||
Session: this.Session, | ||
UserContextData: this.getUserContextData(), | ||
}, (errRespond, dataRespond) => { | ||
if (errRespond) { | ||
return callback.onFailure(errRespond); | ||
} | ||
this.signInUserSession = this.getCognitoUserSession(dataRespond.AuthenticationResult); | ||
this.cacheTokens(); | ||
return callback.onSuccess(this.signInUserSession); | ||
}); | ||
return undefined; | ||
}); | ||
} else { | ||
this.client.makeUnauthenticatedRequest('verifySoftwareToken', { | ||
AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), | ||
UserCode: totpCode, | ||
FriendlyDeviceName: friendlyDeviceName, | ||
}, (err, data) => { | ||
if (err) { | ||
return callback.onFailure(err); | ||
} | ||
this.Session = data.Session; | ||
const challengeResponses = {}; | ||
challengeResponses.USERNAME = this.username; | ||
this.client.makeUnauthenticatedRequest('respondToAuthChallenge', { | ||
ChallengeName: 'MFA_SETUP', | ||
ClientId: this.pool.getClientId(), | ||
ChallengeResponses: challengeResponses, | ||
Session: this.Session, | ||
UserContextData: this.getUserContextData(), | ||
}, (errRespond, dataRespond) => { | ||
if (errRespond) { | ||
return callback.onFailure(errRespond); | ||
} | ||
this.signInUserSession = this.getCognitoUserSession(dataRespond.AuthenticationResult); | ||
this.cacheTokens(); | ||
return callback.onSuccess(this.signInUserSession); | ||
}); | ||
return undefined; | ||
}); | ||
} | ||
} | ||
} |
@@ -31,5 +31,9 @@ /*! | ||
* @param {object} data.Storage Optional storage object. | ||
* @param {boolean} data.AdvancedSecurityDataCollectionFlag Optional: | ||
* boolean flag indicating if the data collection is enabled | ||
* to support cognito advanced security features. By default, this | ||
* flag is set to true. | ||
*/ | ||
constructor(data) { | ||
const { UserPoolId, ClientId, endpoint } = data || {}; | ||
const { UserPoolId, ClientId, endpoint, AdvancedSecurityDataCollectionFlag } = data || {}; | ||
if (!UserPoolId || !ClientId) { | ||
@@ -52,2 +56,10 @@ throw new Error('Both UserPoolId and ClientId are required.'); | ||
/** | ||
* By default, AdvancedSecurityDataCollectionFlag is set to true, | ||
* if no input value is provided. | ||
*/ | ||
this.advancedSecurityDataCollectionFlag = true; | ||
if (AdvancedSecurityDataCollectionFlag) { | ||
this.advancedSecurityDataCollectionFlag = AdvancedSecurityDataCollectionFlag; | ||
} | ||
this.storage = data.Storage || new StorageHelper().getStorage(); | ||
@@ -91,2 +103,3 @@ } | ||
ValidationData: validationData, | ||
UserContextData: this.getUserContextData(username), | ||
}, (err, data) => { | ||
@@ -135,2 +148,31 @@ if (err) { | ||
} | ||
/** | ||
* This method returns the encoded data string used for cognito advanced security feature. | ||
* This would be generated only when developer has included the JS used for collecting the | ||
* data on their client. Please refer to documentation to know more about using AdvancedSecurity | ||
* features | ||
* @param {string} username the username for the context data | ||
* @returns {string} the user context data | ||
**/ | ||
getUserContextData(username) { | ||
if (typeof AmazonCognitoAdvancedSecurityData === 'undefined') { | ||
return {}; | ||
} | ||
/* eslint-disable */ | ||
const amazonCognitoAdvancedSecurityDataConst = AmazonCognitoAdvancedSecurityData; | ||
/* eslint-enable */ | ||
if (this.advancedSecurityDataCollectionFlag) { | ||
const advancedSecurityData = amazonCognitoAdvancedSecurityDataConst.getData(username, | ||
this.userPoolId, this.clientId); | ||
if (advancedSecurityData) { | ||
const userContextData = { | ||
EncodedData: advancedSecurityData, | ||
}; | ||
return userContextData; | ||
} | ||
} | ||
return {}; | ||
} | ||
} |
import * as Cookies from "js-cookie"; | ||
import * as Cookies from 'js-cookie'; | ||
@@ -22,3 +22,3 @@ /** @class */ | ||
} | ||
if (data.expire){ | ||
if (Object.prototype.hasOwnProperty.call(data, 'expires')) { | ||
this.expires = data.expires; | ||
@@ -28,3 +28,3 @@ } else { | ||
} | ||
if (data.hasOwnProperty('secure')){ | ||
if (Object.prototype.hasOwnProperty.call(data, 'secure')) { | ||
this.secure = data.secure; | ||
@@ -43,3 +43,8 @@ } else { | ||
setItem(key, value) { | ||
Cookies.set(key, value, {path: this.path, expires: this.expires, domain: this.domain}); | ||
Cookies.set(key, value, { | ||
path: this.path, | ||
expires: this.expires, | ||
domain: this.domain, | ||
} | ||
); | ||
return Cookies.get(key); | ||
@@ -55,3 +60,3 @@ } | ||
getItem(key) { | ||
return Cookies.get(key) | ||
return Cookies.get(key); | ||
} | ||
@@ -65,3 +70,8 @@ | ||
removeItem(key) { | ||
return Cookies.remove(key, { path: this.path, domain: this.domain, secure: this.secure}); | ||
return Cookies.remove(key, { | ||
path: this.path, | ||
domain: this.domain, | ||
secure: this.secure, | ||
} | ||
); | ||
} | ||
@@ -74,4 +84,4 @@ | ||
clear() { | ||
var cookies = Cookies.get(); | ||
var index; | ||
const cookies = Cookies.get(); | ||
let index; | ||
for (index = 0; index < cookies.length; ++index) { | ||
@@ -78,0 +88,0 @@ Cookies.remove(cookies[index]); |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
3135408
45597
933
24