New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@analytics/aws-pinpoint

Package Overview
Dependencies
Maintainers
1
Versions
50
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@analytics/aws-pinpoint - npm Package Compare versions

Comparing version 0.1.0 to 0.2.0

11

CHANGELOG.md

@@ -6,2 +6,13 @@ # Change Log

# [0.2.0](https://github.com/DavidWells/analytics/compare/@analytics/aws-pinpoint@0.1.0...@analytics/aws-pinpoint@0.2.0) (2021-01-28)
### Features
* add custom session / pageview keys ([87ebe25](https://github.com/DavidWells/analytics/commit/87ebe25))
# 0.1.0 (2021-01-26)

@@ -8,0 +19,0 @@

2

dist/@analytics/aws-pinpoint.min.js

@@ -1,1 +0,1 @@

var analyticsAWSPinpoint=function(){"use strict";function e(e,t,n,r,s,i,o){try{var a=e[i](o),c=a.value}catch(e){return void n(e)}a.done?t(c):Promise.resolve(c).then(r,s)}function t(t){return function(){var n=this,r=arguments;return new Promise(function(s,i){var o=t.apply(n,r);function a(t){e(o,s,i,a,c,"next",t)}function c(t){e(o,s,i,a,c,"throw",t)}a(void 0)})}}function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?r(s,!0).forEach(function(t){n(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):r(s).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}var i=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===o}(e)}(e)};var o="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function a(e,t){return!1!==t.clone&&t.isMergeableObject(e)?p((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function c(e,t,n){return e.concat(t).map(function(e){return a(e,n)})}function u(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return e.propertyIsEnumerable(t)}):[]}(e))}function d(e,t){try{return t in e}catch(e){return!1}}function l(e,t,n){var r={};return n.isMergeableObject(e)&&u(e).forEach(function(t){r[t]=a(e[t],n)}),u(t).forEach(function(s){(function(e,t){return d(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,s)||(d(e,s)&&n.isMergeableObject(t[s])?r[s]=function(e,t){if(!t.customMerge)return p;var n=t.customMerge(e);return"function"==typeof n?n:p}(s,n)(e[s],t[s],n):r[s]=a(t[s],n))}),r}function p(e,t,n){(n=n||{}).arrayMerge=n.arrayMerge||c,n.isMergeableObject=n.isMergeableObject||i,n.cloneUnlessOtherwiseSpecified=a;var r=Array.isArray(t);return r===Array.isArray(e)?r?n.arrayMerge(e,t,n):l(e,t,n):a(t,n)}p.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(e,n){return p(e,n,t)},{})};var h=p;function f(e,t,n,r,s,i){if("undefined"!=typeof window)return arguments.length>1?document.cookie=e+"="+encodeURIComponent(t)+(n?"; expires="+new Date(+new Date+1e3*n).toUTCString()+(r?"; path="+r:"")+(s?"; domain="+s:"")+(i?"; secure":""):""):decodeURIComponent((("; "+document.cookie).split("; "+e+"=")[1]||"").split(";")[0])}function g(e){return(g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}"object"===("undefined"==typeof self?"undefined":g(self))&&self.self===self&&self||"object"===("undefined"==typeof global?"undefined":g(global))&&global.global===global&&global,function(){try{f("_c_","1");var e=-1!==document.cookie.indexOf("_c_");f("_c_","",-1)}catch(e){return!1}}();function m(){for(var e="",t=0,n=4294967295*Math.random()|0;t++<36;){var r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"[t-1],s=15&n;e+="-"==r||"4"==r?r:("x"==r?s:3&s|8).toString(16),n=t%8==0?4294967295*Math.random()|0:n>>4}return e}const y=new TextEncoder,b={appstream2:"appstream",cloudhsmv2:"cloudhsm",email:"ses",marketplace:"aws-marketplace",mobile:"AWSMobileHubService",pinpoint:"mobiletargeting",queue:"sqs","git-codecommit":"codecommit","mturk-requester-sandbox":"mturk-requester","personalize-runtime":"personalize"},v=["authorization","content-type","content-length","user-agent","presigned-expires","expect","x-amzn-trace-id","range","connection"];class S{constructor({accessKeyId:e,secretAccessKey:t,sessionToken:n,service:r,region:s,cache:i,retries:o,initRetryMs:a}){if(null==e)throw new TypeError("accessKeyId is a required option");if(null==t)throw new TypeError("secretAccessKey is a required option");this.accessKeyId=e,this.secretAccessKey=t,this.sessionToken=n,this.service=r,this.region=s,this.cache=i||new Map,this.retries=null!=o?o:10,this.initRetryMs=a||50}async sign(e,t){if(e instanceof Request){const{method:n,url:r,headers:s,body:i}=e;null==(t=Object.assign({method:n,url:r,headers:s},t)).body&&s.has("Content-Type")&&(t.body=null!=i&&s.has("X-Amz-Content-Sha256")?i:await e.clone().arrayBuffer()),e=r}const n=new w(Object.assign({url:e},t,this,t&&t.aws)),r=Object.assign({},t,await n.sign());return delete r.aws,new Request(r.url.toString(),r)}async fetch(e,t){for(let n=0;n<=this.retries;n++){const r=fetch(await this.sign(e,t));if(n===this.retries)return r;const s=await r;if(s.status<500&&429!==s.status)return s;await new Promise(e=>setTimeout(e,Math.random()*this.initRetryMs*Math.pow(2,n)))}throw new Error("An unknown error occurred, ensure retries is not negative")}}class w{constructor({method:e,url:t,headers:n,body:r,accessKeyId:s,secretAccessKey:i,sessionToken:o,service:a,region:c,cache:u,datetime:d,signQuery:l,appendSessionToken:p,allHeaders:h,singleEncode:f}){if(null==t)throw new TypeError("url is a required option");if(null==s)throw new TypeError("accessKeyId is a required option");if(null==i)throw new TypeError("secretAccessKey is a required option");let g,m;this.method=e||(r?"POST":"GET"),this.url=new URL(t),this.headers=new Headers(n||{}),this.body=r,this.accessKeyId=s,this.secretAccessKey=i,this.sessionToken=o,a&&c||([g,m]=function(e,t){const{hostname:n,pathname:r}=e,s=n.replace("dualstack.","").match(/([^.]+)\.(?:([^.]*)\.)?amazonaws\.com(?:\.cn)?$/);let[i,o]=(s||["",""]).slice(1,3);if("us-gov"===o)o="us-gov-west-1";else if("s3"===o||"s3-accelerate"===o)o="us-east-1",i="s3";else if("iot"===i)i=n.startsWith("iot.")?"execute-api":n.startsWith("data.jobs.iot.")?"iot-jobs-data":"/mqtt"===r?"iotdevicegateway":"iotdata";else if("autoscaling"===i){const e=(t.get("X-Amz-Target")||"").split(".")[0];"AnyScaleFrontendService"===e?i="application-autoscaling":"AnyScaleScalingPlannerFrontendService"===e&&(i="autoscaling-plans")}else null==o&&i.startsWith("s3-")?(o=i.slice(3).replace(/^fips-|^external-1/,""),i="s3"):i.endsWith("-fips")?i=i.slice(0,-5):o&&/-\d$/.test(i)&&!/-\d$/.test(o)&&([i,o]=[o,i]);return[b[i]||i,o]}(this.url,this.headers)),this.service=a||g||"",this.region=c||m||"us-east-1",this.cache=u||new Map,this.datetime=d||(new Date).toISOString().replace(/[:-]|\.\d{3}/g,""),this.signQuery=l,this.appendSessionToken=p||"iotdevicegateway"===this.service,this.headers.delete("Host");const y=this.signQuery?this.url.searchParams:this.headers;if("s3"!==this.service||this.headers.has("X-Amz-Content-Sha256")||this.headers.set("X-Amz-Content-Sha256","UNSIGNED-PAYLOAD"),y.set("X-Amz-Date",this.datetime),this.sessionToken&&!this.appendSessionToken&&y.set("X-Amz-Security-Token",this.sessionToken),this.signableHeaders=["host",...this.headers.keys()].filter(e=>h||!v.includes(e)).sort(),this.signedHeaders=this.signableHeaders.join(";"),this.canonicalHeaders=this.signableHeaders.map(e=>e+":"+("host"===e?this.url.host:(this.headers.get(e)||"").replace(/\s+/g," "))).join("\n"),this.credentialString=[this.datetime.slice(0,8),this.region,this.service,"aws4_request"].join("/"),this.signQuery&&("s3"!==this.service||y.has("X-Amz-Expires")||y.set("X-Amz-Expires","86400"),y.set("X-Amz-Algorithm","AWS4-HMAC-SHA256"),y.set("X-Amz-Credential",this.accessKeyId+"/"+this.credentialString),y.set("X-Amz-SignedHeaders",this.signedHeaders)),"s3"===this.service)try{this.encodedPath=decodeURIComponent(this.url.pathname.replace(/\+/g," "))}catch(e){this.encodedPath=this.url.pathname}else this.encodedPath=this.url.pathname.replace(/\/+/g,"/");f||(this.encodedPath=encodeURIComponent(this.encodedPath).replace(/%2F/g,"/")),this.encodedPath=O(this.encodedPath);const S=new Set;this.encodedSearch=[...this.url.searchParams].filter(([e])=>{if(!e)return!1;if("s3"===this.service){if(S.has(e))return!1;S.add(e)}return!0}).map(e=>e.map(e=>O(encodeURIComponent(e)))).sort(([e,t],[n,r])=>e<n?-1:e>n?1:t<r?-1:t>r?1:0).map(e=>e.join("=")).join("&")}async sign(){return this.signQuery?(this.url.searchParams.set("X-Amz-Signature",await this.signature()),this.sessionToken&&this.appendSessionToken&&this.url.searchParams.set("X-Amz-Security-Token",this.sessionToken)):this.headers.set("Authorization",await this.authHeader()),{method:this.method,url:this.url,headers:this.headers,body:this.body}}async authHeader(){return["AWS4-HMAC-SHA256 Credential="+this.accessKeyId+"/"+this.credentialString,"SignedHeaders="+this.signedHeaders,"Signature="+await this.signature()].join(", ")}async signature(){const e=this.datetime.slice(0,8),t=[this.secretAccessKey,e,this.region,this.service].join();let n=this.cache.get(t);if(!n){const r=await A("AWS4"+this.secretAccessKey,e),s=await A(r,this.region),i=await A(s,this.service);n=await A(i,"aws4_request"),this.cache.set(t,n)}return E(await A(n,await this.stringToSign()))}async stringToSign(){return["AWS4-HMAC-SHA256",this.datetime,this.credentialString,E(await x(await this.canonicalString()))].join("\n")}async canonicalString(){return[this.method.toUpperCase(),this.encodedPath,this.encodedSearch,this.canonicalHeaders+"\n",this.signedHeaders,await this.hexBodyHash()].join("\n")}async hexBodyHash(){let e=this.headers.get("X-Amz-Content-Sha256");if(null==e){if(this.body&&"string"!=typeof this.body&&!("byteLength"in this.body))throw new Error("body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header");e=E(await x(this.body||""))}return e}}async function A(e,t){const n=await crypto.subtle.importKey("raw","string"==typeof e?y.encode(e):e,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]);return crypto.subtle.sign("HMAC",n,y.encode(t))}async function x(e){return crypto.subtle.digest("SHA-256","string"==typeof e?y.encode(e):e)}function E(e){return Array.prototype.map.call(new Uint8Array(e),e=>("0"+e.toString(16)).slice(-2)).join("")}function O(e){return e.replace(/[!'()*]/g,e=>"%"+e.charCodeAt(0).toString(16).toUpperCase())}var k={SESSION_START:"_session.start",SESSION_STOP:"_session.stop",SESSION_PAUSE:"_session.pause",SESSION_RESUME:"_session.resume",AUTH_SIGN_IN:"_userauth.sign_in",AUTH_SIGN_UP:"_userauth.sign_up",AUTH_FAIL:"_userauth.auth_fail",ECOM_PURCHASE:"_monetization.purchase",PAGE_VIEW:"pageView"},I=["PUSH","GCM","APNS","APNS_SANDBOX","APNS_VOIP","APNS_VOIP_SANDBOX","ADM","SMS","VOICE","EMAIL","BAIDU","CUSTOM"].reduce(function(e,t){return e[t]=t,e},{});"undefined"!=typeof navigator&&navigator&&navigator.sendBeacon;var P="__session_id",T="__endpoint",M=[429,500],j=[202],C=400,_=function(){if("undefined"==typeof window)return{};if(!window.navigator)return{};var e,t,n,r,s,i=window.navigator,o=i.platform,a=i.product,c=i.vendor,u=function(e){var t=/.+(Opera[\s[A-Z]*|OPR[\sA-Z]*)\/([0-9\.]+).*/i.exec(e);if(t)return{type:t[1],version:t[2]};var n=/.+(Trident|Edge)\/([0-9\.]+).*/i.exec(e);if(n)return{type:n[1],version:n[2]};var r=/.+(Chrome|Firefox|FxiOS)\/([0-9\.]+).*/i.exec(e);if(r)return{type:r[1],version:r[2]};var s=/.+(Safari)\/([0-9\.]+).*/i.exec(e);if(s)return{type:s[1],version:s[2]};var i=/.+(AppleWebKit)\/([0-9\.]+).*/i.exec(e);if(i)return{type:i[1],version:i[2]};var o=/.*([A-Z]+)\/([0-9\.]+).*/i.exec(e);return o?{type:o[1],version:o[2]}:{type:"",version:""}}(i.userAgent);return{platform:o,make:a||c,model:u.type,version:u.version,appVersion:[u.type,u.version].join("/"),language:(t=window.navigator,n=t.language,r=t.browserLanguage,s=t.languages,(n||r||(s||["en_US"])[0]).toLowerCase().replace("-","_")),timezone:(e=/\(([A-Za-z\s].*)\)/.exec((new Date).toString()),e&&e[1]||"")}}(),R=[];function H(){return{}}var D=/.+\@.+\..+/;function U(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=s({getContext:e.getContext||H,enrichEventAttributes:e.enrichEventAttributes||H,enrichEventMetrics:e.enrichEventMetrics||H,credentials:e.credentials||{},getEndpointId:e.getEndpointId},e),i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.pinpointRegion,i=(e.pinpointEndpoint,e.pinpointAppId),o=e.credentials,a=e.getCredentials,c=e.getEndpointId,u=e.debug;return function(){var d=t(regeneratorRuntime.mark(function t(){var d,l,p,h,f,g,y,b,v,w,A,x,E=arguments;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(d=E.length>0&&void 0!==E[0]?E[0]:{},R.length||Object.keys(d).length){t.next=4;break}return u&&console.log("No events, return early"),t.abrupt("return");case 4:if(l=o,Object.keys(l).length||!a){t.next=15;break}return t.prev=6,t.next=9,a();case 9:l=t.sent,t.next=15;break;case 12:throw t.prev=12,t.t0=t.catch(6),new Error(t.t0);case 15:return p=new S({accessKeyId:l.accessKeyId,secretAccessKey:l.secretAccessKey,sessionToken:l.sessionToken}),h=d,t.next=19,c();case 19:if(f=t.sent,u&&console.log("resolved endpointId",f),f){t.next=24;break}return console.error("No User ID found. Call Auth()"),t.abrupt("return");case 24:if(!Object.entries(d).length){t.next=31;break}return g=e.getContext(),t.next=28,X(d,g);case 28:h=t.sent,t.next=32;break;case 31:h=z()||{};case 32:return u&&console.log("endpointData",h),y=h.ChannelType,h.Address&&(O=h.Address,D.test(O))&&(y=I.EMAIL),!y&&h.Address&&(y="android"===_.platform?y||I.GCM:y||I.APNS),u&&console.log("CHANNEL_TYPE",y),b=R.reduce(function(e,t){return s({},t,{},e)},{}),(v=h).RequestId=m(),v.ChannelType=y,v.Address&&(v.OptOut=h.OptOut||"NONE"),w={BatchItem:n({},f,{Endpoint:v,Events:b})},t.prev=43,A="https://pinpoint.".concat(r,".amazonaws.com/v1/apps"),t.next=47,p.fetch("".concat(A,"/").concat(i,"/events"),{body:JSON.stringify(w)}).then(function(e){return e.json()});case 47:(x=t.sent)&&x.Results&&Object.keys(x.Results).map(function(e){return x.Results[e]}).forEach(function(e){var t=e.EndpointItemResponse,n=e.EventsItemResponse;Object.keys(t).length&&(u&&console.log("EndpointItemResponse",t),j.includes(t.StatusCode)||M.includes(t.StatusCode)||V(t,v));var r=Object.keys(n);r.length&&(u&&console.log("EventsResponse",n),r.forEach(function(e){}))}),t.next=54;break;case 51:t.prev=51,t.t1=t.catch(43),console.log("callPinPoint err",t.t1);case 54:return R=[],t.abrupt("return",h);case 56:case"end":return t.stop()}var O},t,null,[[6,12],[43,51]])}));return function(){return d.apply(this,arguments)}}()}(r),o=function(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=r.sentDataToPinpoint,o=r.appPackageName,a=r.appTitle,c=r.appVersionCode,u=r.debug;return function(){var d=t(regeneratorRuntime.mark(function t(d){var l,p,h,f,g,y,b,v,S,w,A,x,E,O,I,P,T,M,j,C,_,H,D=arguments;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(l=D.length>1&&void 0!==D[1]?D[1]:{},p=D.length>2&&void 0!==D[2]?D[2]:{},h=!(D.length>3&&void 0!==D[3])||D[3],"boolean"==typeof l&&(h=l,l={}),"boolean"==typeof p&&(h=p,p={}),f=r.getContext(),g=f.pageSession,y=f.subSessionId,b=f.subSessionStart,v=f.elapsed,!Object.entries(p).length){t.next=11;break}return t.next=10,X(p,f);case 10:p=t.sent;case 11:return S=new Date,w=l.attributes||{},A={date:S.toISOString(),session:N(),pageSession:g,hash:window.location.hash,path:window.location.pathname,referrer:document.referrer,search:window.location.search,title:document.title,host:window.location.hostname,url:window.location.origin+window.location.pathname},t.next=16,r.enrichEventAttributes();case 16:return x=t.sent,E=s({},A,{},x,{},w),O=v+(S.getTime()-b),I=l.metrics||{},P={sessionTime:O,hour:S.getHours(),day:S.getDay()+1,month:S.getMonth()+1,year:S.getFullYear()},t.next=23,r.enrichEventMetrics();case 23:return T=t.sent,M=s({},P,{},T,{},I),t.next=27,Q(E);case 27:return t.t0=t.sent,t.next=30,Z(M);case 30:t.t1=t.sent,j={attributes:t.t0,metrics:t.t1},C=m(),_=(new Date).toISOString(),u&&(console.log("".concat(C,":").concat(d)),console.log("eventAttributes",j.attributes),console.log("eventMetrics",j.metrics)),H=n({},C,{EventType:d,Timestamp:_,AppPackageName:o,AppTitle:a,AppVersionCode:c,Attributes:j.attributes,Metrics:j.metrics,Session:{Id:y,StartTimestamp:new Date(b).toISOString()}}),d===k.SESSION_STOP&&(H[C].Session.Duration=Date.now()-b,H[C].Session.StopTimestamp=_),R.push(H),t.next=40;break;case 40:if(h){t.next=42;break}return t.abrupt("return",i());case 42:e&&clearTimeout(e),e=setTimeout(i,5e3);case 44:case"end":return t.stop()}},t)}));return function(e){return d.apply(this,arguments)}}()}(s({sentDataToPinpoint:i},r));X({},r.getContext());var a=function(e){if("undefined"==typeof window)return H;var t=function(e){return function(){console.log("Fire stop session"),e("_session.stop",!1)}}(e);return window.addEventListener("beforeunload",t),function(){return window.removeEventListener("beforeunload",t)}}(o);return{updateEndpoint:i,recordEvent:o,disable:function(){a()}}}function N(){if(void 0===window.sessionStorage)return null;var e=window.sessionStorage.getItem(P);if(e)return e;var t=m();return window.sessionStorage.setItem(P,t),t}function z(){try{return JSON.parse(localStorage.getItem(T))||{}}catch(e){return{}}}function K(e){localStorage.setItem(T,JSON.stringify(e))}function V(e,t){var n=e.StatusCode,r=e.Message;if(n===C){if(r.startsWith("Missing ChannelType"))throw new Error("Missing ChannelType");if(r.startsWith("Exceeded maximum endpoint per user count"))throw new Error("Exceeded maximum endpoint per user count")}}function X(){return L.apply(this,arguments)}function L(){return(L=t(regeneratorRuntime.mark(function e(){var t,n,r,i,o,a,c,u=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=u.length>0&&void 0!==u[0]?u[0]:{},n=u.length>1&&void 0!==u[1]?u[1]:{},r=z(),i=n.pageSession,o={},a={AppVersion:_.appVersion,Make:_.make,Model:_.model,ModelVersion:_.version,Platform:_.platform,Locale:_.language},c={Attributes:{},Demographic:s({AppVersion:_.appVersion||""},a,{},o.demographic),Location:{},Metrics:{}},_.device&&_.device.vendor&&(c.Attributes.DeviceMake=[_.device.vendor]),_.device&&_.device.model&&(c.Attributes.DeviceModel=[_.device.model]),_.device&&_.device.type&&(c.Attributes.DeviceType=[_.device.type]),_.engine&&_.engine.name&&(c.Demographic.Make=_.engine.name),_.browser&&_.browser.name&&(c.Demographic.Model=_.browser.name),_.browser&&_.browser.version&&(c.Demographic.ModelVersion=_.browser.version),_.os&&_.os.name&&(c.Demographic.Platform=_.os.name),_.os&&_.os.version&&(c.Demographic.PlatformVersion=_.os.version),!(t=h.all([c,r,t],{arrayMerge:q})).User||!t.User.UserAttributes){e.next=20;break}return e.next=19,Q(t.User.UserAttributes,!0);case 19:t.User.UserAttributes=e.sent;case 20:return e.next=22,Q(t.Attributes,!0);case 22:return t.Attributes=e.sent,e.next=25,Z(t.Metrics);case 25:return t.Metrics=e.sent,t.Attributes.lastSession?(t.Attributes.lastSession[0]!==N()&&(t.Attributes.lastSession=[N()],t.Metrics.sessions+=1),t.Attributes.lastPageSession[0]!==i&&(t.Attributes.lastPageSession=[i],t.Metrics.pageViews+=1)):(t.Attributes.lastSession=[N()],t.Attributes.lastPageSession=[i],t.Metrics.sessions=1,t.Metrics.pageViews=1),K(t),e.abrupt("return",t);case 29:case"end":return e.stop()}},e)}))).apply(this,arguments)}function q(e,t){return t}function W(e,t){return B.apply(this,arguments)}function B(){return(B=t(regeneratorRuntime.mark(function e(t,n){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("function"!=typeof t){e.next=4;break}return e.next=3,t();case 3:t=e.sent;case 4:return e.abrupt("return",n(t));case 5:case"end":return e.stop()}},e)}))).apply(this,arguments)}function F(e){return Array.isArray(e)?e.map(function(e){return e.toString()}):e.toString()}function G(e){return parseFloat(Number(Array.isArray(e)?e[0]:e))}function Q(e){return $.apply(this,arguments)}function $(){return($=t(regeneratorRuntime.mark(function e(t){var n,r,s,i,o=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n=o.length>1&&void 0!==o[1]&&o[1],r={},e.t0=regeneratorRuntime.keys(t);case 3:if((e.t1=e.t0()).done){e.next=17;break}if(s=e.t1.value,i=Array.isArray(t[s])?t[s]:[t[s]],!n){e.next=12;break}return e.next=9,W(i,F);case 9:r[s]=e.sent,e.next=15;break;case 12:return e.next=14,W(i[0],F);case 14:r[s]=e.sent;case 15:e.next=3;break;case 17:return e.abrupt("return",r);case 18:case"end":return e.stop()}},e)}))).apply(this,arguments)}function Z(e){return J.apply(this,arguments)}function J(){return(J=t(regeneratorRuntime.mark(function e(t){var n,r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n={},e.t0=regeneratorRuntime.keys(t);case 2:if((e.t1=e.t0()).done){e.next=9;break}return r=e.t1.value,e.next=6,W(t[r],G);case 6:n[r]=e.sent,e.next=2;break;case 9:return e.abrupt("return",n);case 10:case"end":return e.stop()}},e)}))).apply(this,arguments)}function Y(e){if("undefined"==typeof window)return!1;var t="hidden"in document?"hidden":["webkit","moz","ms","o"].reduce(function(e,t){return!e&&"".concat(t,"Hidden")in document?"".concat(t,"Hidden"):e},null);if(!t)return!1;var n="".concat(t.replace(/[H|h]idden/,""),"visibilitychange"),r=function(){return document[t]?e(!0):e(!1)};return document.addEventListener(n,r),function(){return document.removeEventListener(n,r)}}var ee={disableAnonymousTraffic:!1,pinpointRegion:"us-east-1"};return function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=m(),i=0,o=m(),a=Date.now();return{name:"aws-pinpoint",config:s({},ee,{},n),bootstrap:function(e){var t=e.config,n=e.instance;t.disableAnonymousTraffic&&!n.user("userId")&&n.once("identifyStart",function(e){e.plugins["aws-pinpoint"].loaded()||n.loadPlugin("aws-pinpoint")})},initialize:function(n){var c=n.config,u=n.instance,d=c.disableAnonymousTraffic,l=u.getState(),p=(l.user||{}).userId,h=l.context||{},f=h.app,g=h.version;if(!p&&d)return!1;var y=U(s({},c,{appTitle:c.appTitle||f,appPackageName:c.appPackageName||f,appVersionCode:c.appVersionCode||g,getEndpointId:function(){return u.user("anonymousId")},getContext:function(){return{elapsed:i,pageSession:r,subSessionId:o,subSessionStart:a}},enrichEventAttributes:function(){return{}},enrichEventMetrics:function(){return{}}}));e=y.recordEvent,t=y.updateEndpoint,e("_session.start"),Y(function(t){t?(i+=Date.now()-a,e(k.SESSION_STOP,!1)):(o=m(),a=Date.now(),e(k.SESSION_START))})},page:function(t){t.payload,t.config,e?e(k.PAGE_VIEW,!1):console.log("Pinpoint not loaded")},reset:function(e){e.instance,storage.removeItem(T)},track:function(t){var n=t.payload,r=t.config;if(t.instance,e){if(!r.disableAnonymousTraffic||n.userId){var s,i=(s=n.properties,Object.keys(s).reduce(function(e,t){var n=s[t];return"number"==typeof n&&(e.metrics[t]=n),"string"==typeof n&&(e.attributes[t]=n),e},{attributes:{},metrics:{}}));e(n.event,i)}}else console.log("Pinpoint not loaded")},identify:function(e){var n=e.payload,r=n.userId,i=n.traits;if(t){var o={};r&&(o.UserId=r),i&&Object.keys(i).length&&(o.UserAttributes=i),t(s({},i.email?{Address:i.email,ChannelType:I.EMAIL}:{},{},Object.keys(o).length?{User:o}:{}))}else console.log("Pinpoint not loaded")},loaded:function(){return!!e}}}}();
var analyticsAWSPinpoint=function(){"use strict";function e(e,t,n,r,s,i,o){try{var a=e[i](o),c=a.value}catch(e){return void n(e)}a.done?t(c):Promise.resolve(c).then(r,s)}function t(t){return function(){var n=this,r=arguments;return new Promise(function(s,i){var o=t.apply(n,r);function a(t){e(o,s,i,a,c,"next",t)}function c(t){e(o,s,i,a,c,"throw",t)}a(void 0)})}}function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?r(s,!0).forEach(function(t){n(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):r(s).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}var i=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===o}(e)}(e)};var o="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function a(e,t){return!1!==t.clone&&t.isMergeableObject(e)?p((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function c(e,t,n){return e.concat(t).map(function(e){return a(e,n)})}function u(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return e.propertyIsEnumerable(t)}):[]}(e))}function d(e,t){try{return t in e}catch(e){return!1}}function l(e,t,n){var r={};return n.isMergeableObject(e)&&u(e).forEach(function(t){r[t]=a(e[t],n)}),u(t).forEach(function(s){(function(e,t){return d(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,s)||(d(e,s)&&n.isMergeableObject(t[s])?r[s]=function(e,t){if(!t.customMerge)return p;var n=t.customMerge(e);return"function"==typeof n?n:p}(s,n)(e[s],t[s],n):r[s]=a(t[s],n))}),r}function p(e,t,n){(n=n||{}).arrayMerge=n.arrayMerge||c,n.isMergeableObject=n.isMergeableObject||i,n.cloneUnlessOtherwiseSpecified=a;var r=Array.isArray(t);return r===Array.isArray(e)?r?n.arrayMerge(e,t,n):l(e,t,n):a(t,n)}p.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(e,n){return p(e,n,t)},{})};var h=p;function f(e,t,n,r,s,i){if("undefined"!=typeof window)return arguments.length>1?document.cookie=e+"="+encodeURIComponent(t)+(n?"; expires="+new Date(+new Date+1e3*n).toUTCString()+(r?"; path="+r:"")+(s?"; domain="+s:"")+(i?"; secure":""):""):decodeURIComponent((("; "+document.cookie).split("; "+e+"=")[1]||"").split(";")[0])}function g(e){return(g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}"object"===("undefined"==typeof self?"undefined":g(self))&&self.self===self&&self||"object"===("undefined"==typeof global?"undefined":g(global))&&global.global===global&&global,function(){try{f("_c_","1");var e=-1!==document.cookie.indexOf("_c_");f("_c_","",-1)}catch(e){return!1}}();function m(){for(var e="",t=0,n=4294967295*Math.random()|0;t++<36;){var r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"[t-1],s=15&n;e+="-"==r||"4"==r?r:("x"==r?s:3&s|8).toString(16),n=t%8==0?4294967295*Math.random()|0:n>>4}return e}const y=new TextEncoder,b={appstream2:"appstream",cloudhsmv2:"cloudhsm",email:"ses",marketplace:"aws-marketplace",mobile:"AWSMobileHubService",pinpoint:"mobiletargeting",queue:"sqs","git-codecommit":"codecommit","mturk-requester-sandbox":"mturk-requester","personalize-runtime":"personalize"},v=["authorization","content-type","content-length","user-agent","presigned-expires","expect","x-amzn-trace-id","range","connection"];class w{constructor({accessKeyId:e,secretAccessKey:t,sessionToken:n,service:r,region:s,cache:i,retries:o,initRetryMs:a}){if(null==e)throw new TypeError("accessKeyId is a required option");if(null==t)throw new TypeError("secretAccessKey is a required option");this.accessKeyId=e,this.secretAccessKey=t,this.sessionToken=n,this.service=r,this.region=s,this.cache=i||new Map,this.retries=null!=o?o:10,this.initRetryMs=a||50}async sign(e,t){if(e instanceof Request){const{method:n,url:r,headers:s,body:i}=e;null==(t=Object.assign({method:n,url:r,headers:s},t)).body&&s.has("Content-Type")&&(t.body=null!=i&&s.has("X-Amz-Content-Sha256")?i:await e.clone().arrayBuffer()),e=r}const n=new S(Object.assign({url:e},t,this,t&&t.aws)),r=Object.assign({},t,await n.sign());return delete r.aws,new Request(r.url.toString(),r)}async fetch(e,t){for(let n=0;n<=this.retries;n++){const r=fetch(await this.sign(e,t));if(n===this.retries)return r;const s=await r;if(s.status<500&&429!==s.status)return s;await new Promise(e=>setTimeout(e,Math.random()*this.initRetryMs*Math.pow(2,n)))}throw new Error("An unknown error occurred, ensure retries is not negative")}}class S{constructor({method:e,url:t,headers:n,body:r,accessKeyId:s,secretAccessKey:i,sessionToken:o,service:a,region:c,cache:u,datetime:d,signQuery:l,appendSessionToken:p,allHeaders:h,singleEncode:f}){if(null==t)throw new TypeError("url is a required option");if(null==s)throw new TypeError("accessKeyId is a required option");if(null==i)throw new TypeError("secretAccessKey is a required option");let g,m;this.method=e||(r?"POST":"GET"),this.url=new URL(t),this.headers=new Headers(n||{}),this.body=r,this.accessKeyId=s,this.secretAccessKey=i,this.sessionToken=o,a&&c||([g,m]=function(e,t){const{hostname:n,pathname:r}=e,s=n.replace("dualstack.","").match(/([^.]+)\.(?:([^.]*)\.)?amazonaws\.com(?:\.cn)?$/);let[i,o]=(s||["",""]).slice(1,3);if("us-gov"===o)o="us-gov-west-1";else if("s3"===o||"s3-accelerate"===o)o="us-east-1",i="s3";else if("iot"===i)i=n.startsWith("iot.")?"execute-api":n.startsWith("data.jobs.iot.")?"iot-jobs-data":"/mqtt"===r?"iotdevicegateway":"iotdata";else if("autoscaling"===i){const e=(t.get("X-Amz-Target")||"").split(".")[0];"AnyScaleFrontendService"===e?i="application-autoscaling":"AnyScaleScalingPlannerFrontendService"===e&&(i="autoscaling-plans")}else null==o&&i.startsWith("s3-")?(o=i.slice(3).replace(/^fips-|^external-1/,""),i="s3"):i.endsWith("-fips")?i=i.slice(0,-5):o&&/-\d$/.test(i)&&!/-\d$/.test(o)&&([i,o]=[o,i]);return[b[i]||i,o]}(this.url,this.headers)),this.service=a||g||"",this.region=c||m||"us-east-1",this.cache=u||new Map,this.datetime=d||(new Date).toISOString().replace(/[:-]|\.\d{3}/g,""),this.signQuery=l,this.appendSessionToken=p||"iotdevicegateway"===this.service,this.headers.delete("Host");const y=this.signQuery?this.url.searchParams:this.headers;if("s3"!==this.service||this.headers.has("X-Amz-Content-Sha256")||this.headers.set("X-Amz-Content-Sha256","UNSIGNED-PAYLOAD"),y.set("X-Amz-Date",this.datetime),this.sessionToken&&!this.appendSessionToken&&y.set("X-Amz-Security-Token",this.sessionToken),this.signableHeaders=["host",...this.headers.keys()].filter(e=>h||!v.includes(e)).sort(),this.signedHeaders=this.signableHeaders.join(";"),this.canonicalHeaders=this.signableHeaders.map(e=>e+":"+("host"===e?this.url.host:(this.headers.get(e)||"").replace(/\s+/g," "))).join("\n"),this.credentialString=[this.datetime.slice(0,8),this.region,this.service,"aws4_request"].join("/"),this.signQuery&&("s3"!==this.service||y.has("X-Amz-Expires")||y.set("X-Amz-Expires","86400"),y.set("X-Amz-Algorithm","AWS4-HMAC-SHA256"),y.set("X-Amz-Credential",this.accessKeyId+"/"+this.credentialString),y.set("X-Amz-SignedHeaders",this.signedHeaders)),"s3"===this.service)try{this.encodedPath=decodeURIComponent(this.url.pathname.replace(/\+/g," "))}catch(e){this.encodedPath=this.url.pathname}else this.encodedPath=this.url.pathname.replace(/\/+/g,"/");f||(this.encodedPath=encodeURIComponent(this.encodedPath).replace(/%2F/g,"/")),this.encodedPath=O(this.encodedPath);const w=new Set;this.encodedSearch=[...this.url.searchParams].filter(([e])=>{if(!e)return!1;if("s3"===this.service){if(w.has(e))return!1;w.add(e)}return!0}).map(e=>e.map(e=>O(encodeURIComponent(e)))).sort(([e,t],[n,r])=>e<n?-1:e>n?1:t<r?-1:t>r?1:0).map(e=>e.join("=")).join("&")}async sign(){return this.signQuery?(this.url.searchParams.set("X-Amz-Signature",await this.signature()),this.sessionToken&&this.appendSessionToken&&this.url.searchParams.set("X-Amz-Security-Token",this.sessionToken)):this.headers.set("Authorization",await this.authHeader()),{method:this.method,url:this.url,headers:this.headers,body:this.body}}async authHeader(){return["AWS4-HMAC-SHA256 Credential="+this.accessKeyId+"/"+this.credentialString,"SignedHeaders="+this.signedHeaders,"Signature="+await this.signature()].join(", ")}async signature(){const e=this.datetime.slice(0,8),t=[this.secretAccessKey,e,this.region,this.service].join();let n=this.cache.get(t);if(!n){const r=await A("AWS4"+this.secretAccessKey,e),s=await A(r,this.region),i=await A(s,this.service);n=await A(i,"aws4_request"),this.cache.set(t,n)}return E(await A(n,await this.stringToSign()))}async stringToSign(){return["AWS4-HMAC-SHA256",this.datetime,this.credentialString,E(await x(await this.canonicalString()))].join("\n")}async canonicalString(){return[this.method.toUpperCase(),this.encodedPath,this.encodedSearch,this.canonicalHeaders+"\n",this.signedHeaders,await this.hexBodyHash()].join("\n")}async hexBodyHash(){let e=this.headers.get("X-Amz-Content-Sha256");if(null==e){if(this.body&&"string"!=typeof this.body&&!("byteLength"in this.body))throw new Error("body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header");e=E(await x(this.body||""))}return e}}async function A(e,t){const n=await crypto.subtle.importKey("raw","string"==typeof e?y.encode(e):e,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]);return crypto.subtle.sign("HMAC",n,y.encode(t))}async function x(e){return crypto.subtle.digest("SHA-256","string"==typeof e?y.encode(e):e)}function E(e){return Array.prototype.map.call(new Uint8Array(e),e=>("0"+e.toString(16)).slice(-2)).join("")}function O(e){return e.replace(/[!'()*]/g,e=>"%"+e.charCodeAt(0).toString(16).toUpperCase())}var k={SESSION_START:"_session.start",SESSION_STOP:"_session.stop",SESSION_PAUSE:"_session.pause",SESSION_RESUME:"_session.resume",AUTH_SIGN_IN:"_userauth.sign_in",AUTH_SIGN_UP:"_userauth.sign_up",AUTH_FAIL:"_userauth.auth_fail",ECOM_PURCHASE:"_monetization.purchase",PAGE_VIEW:"pageView"},I=["PUSH","GCM","APNS","APNS_SANDBOX","APNS_VOIP","APNS_VOIP_SANDBOX","ADM","SMS","VOICE","EMAIL","BAIDU","CUSTOM"].reduce(function(e,t){return e[t]=t,e},{});"undefined"!=typeof navigator&&navigator&&navigator.sendBeacon;var T="__session_id",P="__endpoint",M=[429,500],j=[202],C=400,_=function(){if("undefined"==typeof window)return{};if(!window.navigator)return{};var e,t,n,r,s,i=window.navigator,o=i.platform,a=i.product,c=i.vendor,u=function(e){var t=/.+(Opera[\s[A-Z]*|OPR[\sA-Z]*)\/([0-9\.]+).*/i.exec(e);if(t)return{type:t[1],version:t[2]};var n=/.+(Trident|Edge)\/([0-9\.]+).*/i.exec(e);if(n)return{type:n[1],version:n[2]};var r=/.+(Chrome|Firefox|FxiOS)\/([0-9\.]+).*/i.exec(e);if(r)return{type:r[1],version:r[2]};var s=/.+(Safari)\/([0-9\.]+).*/i.exec(e);if(s)return{type:s[1],version:s[2]};var i=/.+(AppleWebKit)\/([0-9\.]+).*/i.exec(e);if(i)return{type:i[1],version:i[2]};var o=/.*([A-Z]+)\/([0-9\.]+).*/i.exec(e);return o?{type:o[1],version:o[2]}:{type:"",version:""}}(i.userAgent);return{platform:o,make:a||c,model:u.type,version:u.version,appVersion:[u.type,u.version].join("/"),language:(t=window.navigator,n=t.language,r=t.browserLanguage,s=t.languages,(n||r||(s||["en_US"])[0]).toLowerCase().replace("-","_")),timezone:(e=/\(([A-Za-z\s].*)\)/.exec((new Date).toString()),e&&e[1]||"")}}(),R=[];function H(){return{}}var D=/.+\@.+\..+/;function U(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=s({getContext:e.getContext||H,enrichEventAttributes:e.enrichEventAttributes||H,enrichEventMetrics:e.enrichEventMetrics||H,credentials:e.credentials||{},getEndpointId:e.getEndpointId},e),i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.getEndpointId,i=e.debug;return function(){var o=t(regeneratorRuntime.mark(function t(){var o,a,c,u,d,l,p,h,f=arguments;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(o=f.length>0&&void 0!==f[0]?f[0]:{},R.length||Object.keys(o).length){t.next=4;break}return i&&console.log("No events, return early"),t.abrupt("return");case 4:return a=o,t.next=7,r();case 7:if(c=t.sent,i&&console.log("resolved endpointId",c),c){t.next=12;break}return console.error("No User ID found. Call Auth()"),t.abrupt("return");case 12:if(!Object.entries(o).length){t.next=19;break}return u=e.getContext(),t.next=16,q(o,u);case 16:a=t.sent,t.next=20;break;case 19:a=K()||{};case 20:return i&&console.log("endpointData",a),d=a.ChannelType,a.Address&&(g=a.Address,D.test(g))&&(d=I.EMAIL),!d&&a.Address&&(d="android"===_.platform?d||I.GCM:d||I.APNS),i&&console.log("CHANNEL_TYPE",d),l=R.reduce(function(e,t){return s({},t,{},e)},{}),(p=a).RequestId=m(),p.ChannelType=d,p.Address&&(p.OptOut=a.OptOut||"NONE"),h={BatchItem:n({},c,{Endpoint:p,Events:l})},t.prev=31,t.next=34,V(h,e);case 34:t.sent,t.next=40;break;case 37:t.prev=37,t.t0=t.catch(31),console.log("callPinPoint err",t.t0);case 40:return R=[],t.abrupt("return",a);case 42:case"end":return t.stop()}var g},t,null,[[31,37]])}));return function(){return o.apply(this,arguments)}}()}(r),o=function(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=r.sentDataToPinpoint,o=r.appPackageName,a=r.appTitle,c=r.appVersionCode,u=r.debug;return function(){var d=t(regeneratorRuntime.mark(function t(d){var l,p,h,f,g,y,b,v,w,S,A,x,E,O,I,T,P,M,j,C,_,H,D=arguments;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(l=D.length>1&&void 0!==D[1]?D[1]:{},p=D.length>2&&void 0!==D[2]?D[2]:{},h=!(D.length>3&&void 0!==D[3])||D[3],"boolean"==typeof l&&(h=l,l={}),"boolean"==typeof p&&(h=p,p={}),f=r.getContext(),g=f.pageSession,y=f.subSessionId,b=f.subSessionStart,v=f.elapsed,!Object.entries(p).length){t.next=11;break}return t.next=10,q(p,f);case 10:p=t.sent;case 11:return w=new Date,S=l.attributes||{},A={date:w.toISOString(),session:N(),pageSession:g,hash:window.location.hash,path:window.location.pathname,referrer:document.referrer,search:window.location.search,title:document.title,host:window.location.hostname,url:window.location.origin+window.location.pathname},t.next=16,r.enrichEventAttributes();case 16:return x=t.sent,E=s({},A,{},x,{},S),O=v+(w.getTime()-b),I=l.metrics||{},T={sessionTime:O,hour:w.getHours(),day:w.getDay()+1,month:w.getMonth()+1,year:w.getFullYear()},t.next=23,r.enrichEventMetrics();case 23:return P=t.sent,M=s({},T,{},P,{},I),t.next=27,Z(E);case 27:return t.t0=t.sent,t.next=30,Y(M);case 30:t.t1=t.sent,j={attributes:t.t0,metrics:t.t1},C=m(),_=(new Date).toISOString(),u&&(console.log("".concat(C,":").concat(d)),console.log("eventAttributes",j.attributes),console.log("eventMetrics",j.metrics)),H=n({},C,{EventType:d,Timestamp:_,AppPackageName:o,AppTitle:a,AppVersionCode:c,Attributes:j.attributes,Metrics:j.metrics,Session:{Id:y,StartTimestamp:new Date(b).toISOString()}}),d===k.SESSION_STOP&&(H[C].Session.Duration=Date.now()-b,H[C].Session.StopTimestamp=_),R.push(H),t.next=40;break;case 40:if(h){t.next=42;break}return t.abrupt("return",i());case 42:e&&clearTimeout(e),e=setTimeout(i,5e3);case 44:case"end":return t.stop()}},t)}));return function(e){return d.apply(this,arguments)}}()}(s({sentDataToPinpoint:i},r));q({},r.getContext());var a=function(e){if("undefined"==typeof window)return H;var t=function(e){return function(){console.log("Fire stop session"),e("_session.stop",!1)}}(e);return window.addEventListener("beforeunload",t),function(){return window.removeEventListener("beforeunload",t)}}(o);return{updateEndpoint:i,recordEvent:o,disable:function(){a()}}}function N(){if(void 0===window.sessionStorage)return null;var e=window.sessionStorage.getItem(T);if(e)return e;var t=m();return window.sessionStorage.setItem(T,t),t}function K(){try{return JSON.parse(localStorage.getItem(P))||{}}catch(e){return{}}}function z(e){localStorage.setItem(P,JSON.stringify(e))}function V(e,t){return X.apply(this,arguments)}function X(){return(X=t(regeneratorRuntime.mark(function e(t,n){var r,s,i,o,a,c,u,d,l,p,h,f,g,m;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.pinpointRegion,n.pinpointEndpoint,s=n.pinpointAppId,i=n.lambdaArn,o=n.lambdaRegion,a=n.credentials,c=n.getCredentials,u=n.debug,d=a,Object.keys(d).length||!c){e.next=12;break}return e.prev=3,e.next=6,c();case 6:d=e.sent,e.next=12;break;case 9:throw e.prev=9,e.t0=e.catch(3),new Error(e.t0);case 12:return l=new w({accessKeyId:d.accessKeyId||d.AccessKeyId,secretAccessKey:d.secretAccessKey||d.SecretKey,sessionToken:d.sessionToken||d.SessionToken}),p=r||o,h="https://lambda.".concat(o||r,".amazonaws.com/2015-03-31/functions/").concat(i,"/invocations"),f="https://pinpoint.".concat(p,".amazonaws.com/v1/apps/").concat(s,"/events"),g=i?h:f,e.next=20,l.fetch(g,{body:JSON.stringify(t)}).then(function(e){return e.json()});case 20:return(m=e.sent)&&m.Results&&Object.keys(m.Results).map(function(e){return m.Results[e]}).forEach(function(e){var t=e.EndpointItemResponse||{},n=e.EventsItemResponse||{};Object.keys(t).length&&(u&&console.log("EndpointItemResponse",t),j.includes(t.StatusCode)||M.includes(t.StatusCode)||L(t,Endpoint));var r=Object.keys(n);r.length&&(u&&console.log("EventsResponse",n),r.forEach(function(e){}))}),e.abrupt("return",m);case 23:case"end":return e.stop()}},e,null,[[3,9]])}))).apply(this,arguments)}function L(e,t){var n=e.StatusCode,r=e.Message;if(n===C){if(r.startsWith("Missing ChannelType"))throw new Error("Missing ChannelType");if(r.startsWith("Exceeded maximum endpoint per user count"))throw new Error("Exceeded maximum endpoint per user count")}}function q(){return W.apply(this,arguments)}function W(){return(W=t(regeneratorRuntime.mark(function e(){var t,n,r,i,o,a,c,u,d,l=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=l.length>0&&void 0!==l[0]?l[0]:{},n=l.length>1&&void 0!==l[1]?l[1]:{},r=K(),i=n.pageSession,o={},a={AppVersion:_.appVersion,Make:_.make,Model:_.model,ModelVersion:_.version,Platform:_.platform,Locale:_.language},c={Attributes:{},Demographic:s({AppVersion:_.appVersion||""},a,{},o.demographic),Location:{},Metrics:{}},_.device&&_.device.vendor&&(c.Attributes.DeviceMake=[_.device.vendor]),_.device&&_.device.model&&(c.Attributes.DeviceModel=[_.device.model]),_.device&&_.device.type&&(c.Attributes.DeviceType=[_.device.type]),_.engine&&_.engine.name&&(c.Demographic.Make=_.engine.name),_.browser&&_.browser.name&&(c.Demographic.Model=_.browser.name),_.browser&&_.browser.version&&(c.Demographic.ModelVersion=_.browser.version),_.os&&_.os.name&&(c.Demographic.Platform=_.os.name),_.os&&_.os.version&&(c.Demographic.PlatformVersion=_.os.version),!(t=h.all([c,r,t],{arrayMerge:B})).User||!t.User.UserAttributes){e.next=20;break}return e.next=19,Z(t.User.UserAttributes,!0);case 19:t.User.UserAttributes=e.sent;case 20:return e.next=22,Z(t.Attributes,!0);case 22:return t.Attributes=e.sent,e.next=25,Y(t.Metrics);case 25:return t.Metrics=e.sent,u="sessions",n.sessionKey&&(u=n.sessionKey()),d="pageViews",n.pageViewKey&&(d=n.pageViewKey()),t.Attributes.lastSession?(t.Attributes.lastSession[0]!==N()&&(t.Attributes.lastSession=[N()],t.Metrics[u]+=1),t.Attributes.lastPageSession[0]!==i&&(t.Attributes.lastPageSession=[i],t.Metrics[d]+=1)):(t.Attributes.lastSession=[N()],t.Attributes.lastPageSession=[i],t.Metrics[u]=1,t.Metrics[d]=1),z(t),e.abrupt("return",t);case 33:case"end":return e.stop()}},e)}))).apply(this,arguments)}function B(e,t){return t}function F(e,t){return G.apply(this,arguments)}function G(){return(G=t(regeneratorRuntime.mark(function e(t,n){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("function"!=typeof t){e.next=4;break}return e.next=3,t();case 3:t=e.sent;case 4:return e.abrupt("return",n(t));case 5:case"end":return e.stop()}},e)}))).apply(this,arguments)}function Q(e){return Array.isArray(e)?e.map(function(e){return e.toString()}):e.toString()}function $(e){return parseFloat(Number(Array.isArray(e)?e[0]:e))}function Z(e){return J.apply(this,arguments)}function J(){return(J=t(regeneratorRuntime.mark(function e(t){var n,r,s,i,o=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n=o.length>1&&void 0!==o[1]&&o[1],r={},e.t0=regeneratorRuntime.keys(t);case 3:if((e.t1=e.t0()).done){e.next=17;break}if(s=e.t1.value,i=Array.isArray(t[s])?t[s]:[t[s]],!n){e.next=12;break}return e.next=9,F(i,Q);case 9:r[s]=e.sent,e.next=15;break;case 12:return e.next=14,F(i[0],Q);case 14:r[s]=e.sent;case 15:e.next=3;break;case 17:return e.abrupt("return",r);case 18:case"end":return e.stop()}},e)}))).apply(this,arguments)}function Y(e){return ee.apply(this,arguments)}function ee(){return(ee=t(regeneratorRuntime.mark(function e(t){var n,r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n={},e.t0=regeneratorRuntime.keys(t);case 2:if((e.t1=e.t0()).done){e.next=9;break}return r=e.t1.value,e.next=6,F(t[r],$);case 6:n[r]=e.sent,e.next=2;break;case 9:return e.abrupt("return",n);case 10:case"end":return e.stop()}},e)}))).apply(this,arguments)}function te(e){if("undefined"==typeof window)return!1;var t="hidden"in document?"hidden":["webkit","moz","ms","o"].reduce(function(e,t){return!e&&"".concat(t,"Hidden")in document?"".concat(t,"Hidden"):e},null);if(!t)return!1;var n="".concat(t.replace(/[H|h]idden/,""),"visibilitychange"),r=function(){return document[t]?e(!0):e(!1)};return document.addEventListener(n,r),function(){return document.removeEventListener(n,r)}}var ne={disableAnonymousTraffic:!1,pinpointRegion:"us-east-1"};return function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=m(),i=0,o=m(),a=Date.now();return{name:"aws-pinpoint",config:s({},ne,{},n),bootstrap:function(e){var t=e.config,n=e.instance;t.disableAnonymousTraffic&&!n.user("userId")&&n.once("identifyStart",function(e){e.plugins["aws-pinpoint"].loaded()||n.loadPlugin("aws-pinpoint")})},initialize:function(n){var c=n.config,u=n.instance,d=c.disableAnonymousTraffic,l=u.getState(),p=(l.user||{}).userId,h=l.context||{},f=h.app,g=h.version;if(!p&&d)return!1;var y=U(s({},c,{appTitle:c.appTitle||f,appPackageName:c.appPackageName||f,appVersionCode:c.appVersionCode||g,getEndpointId:function(){return u.user("anonymousId")},getContext:function(){return{elapsed:i,pageSession:r,subSessionId:o,subSessionStart:a,sessionKey:c.sessionKey,pageViewKey:c.pageViewKey}},enrichEventAttributes:function(){return{}},enrichEventMetrics:function(){return{}}}));e=y.recordEvent,t=y.updateEndpoint,e("_session.start"),te(function(t){t?(i+=Date.now()-a,e(k.SESSION_STOP,!1)):(o=m(),a=Date.now(),e(k.SESSION_START))})},page:function(t){t.payload,t.config,e?e(k.PAGE_VIEW,!1):console.log("Pinpoint not loaded")},reset:function(e){e.instance,storage.removeItem(P)},track:function(t){var n=t.payload,r=t.config;if(t.instance,e){if(!r.disableAnonymousTraffic||n.userId){var s,i=(s=n.properties,Object.keys(s).reduce(function(e,t){var n=s[t];return"number"==typeof n&&(e.metrics[t]=n),"string"==typeof n&&(e.attributes[t]=n),e},{attributes:{},metrics:{}}));e(n.event,i)}}else console.log("Pinpoint not loaded")},identify:function(e){var n=e.payload,r=n.userId,i=n.traits;if(t){var o={};r&&(o.UserId=r),i&&Object.keys(i).length&&(o.UserAttributes=i),t(s({},i.email?{Address:i.email,ChannelType:I.EMAIL}:{},{},Object.keys(o).length?{User:o}:{}))}else console.log("Pinpoint not loaded")},loaded:function(){return!!e}}}}();

@@ -547,8 +547,3 @@ 'use strict';

var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var pinpointRegion = config.pinpointRegion,
pinpointEndpoint = config.pinpointEndpoint,
pinpointAppId = config.pinpointAppId,
credentials = config.credentials,
getCredentials = config.getCredentials,
getEndpointId = config.getEndpointId,
var getEndpointId = config.getEndpointId,
debug = config.debug;

@@ -562,4 +557,2 @@ return (

var endpoint,
creds,
aws,
endpointData,

@@ -571,6 +564,4 @@ endpointId,

Endpoint,
EventsRequest,
PINPOINT_BASE,
eventsRequest,
data,
responses,
_args2 = arguments;

@@ -592,41 +583,9 @@ return regeneratorRuntime.wrap(function _callee2$(_context2) {

case 4:
creds = credentials;
/* Use custom creds function */
if (!(!Object.keys(creds).length && getCredentials)) {
_context2.next = 15;
break;
}
_context2.prev = 6;
_context2.next = 9;
return getCredentials();
case 9:
creds = _context2.sent;
_context2.next = 15;
break;
case 12:
_context2.prev = 12;
_context2.t0 = _context2["catch"](6);
throw new Error(_context2.t0);
case 15:
/*
console.log('credentials in plugin', creds)
console.log('credentials.identityId', creds.identityId)
/**/
aws = new aws4fetch.AwsClient({
accessKeyId: creds.accessKeyId,
secretAccessKey: creds.secretAccessKey,
sessionToken: creds.sessionToken
}); // console.log('aws', aws)
// console.log('aws', aws)
endpointData = endpoint; // Events are associated with an endpoint.
_context2.next = 19;
_context2.next = 7;
return getEndpointId();
case 19:
case 7:
endpointId = _context2.sent;

@@ -639,3 +598,3 @@

if (endpointId) {
_context2.next = 24;
_context2.next = 12;
break;

@@ -647,5 +606,5 @@ }

case 24:
case 12:
if (!Object.entries(endpoint).length) {
_context2.next = 31;
_context2.next = 19;
break;

@@ -655,14 +614,14 @@ }

contextInfo = config.getContext();
_context2.next = 28;
_context2.next = 16;
return mergeEndpointData(endpoint, contextInfo);
case 28:
case 16:
endpointData = _context2.sent;
_context2.next = 32;
_context2.next = 20;
break;
case 31:
case 19:
endpointData = getEndpoint() || {};
case 32:
case 20:
if (debug) {

@@ -714,3 +673,3 @@ console.log('endpointData', endpointData);

EventsRequest = {
eventsRequest = {
BatchItem: _defineProperty({}, endpointId, {

@@ -721,62 +680,17 @@ Endpoint: Endpoint,

};
_context2.prev = 43;
_context2.prev = 31;
_context2.next = 34;
return callAWS(eventsRequest, config);
/*
console.log('Call pinpoint', EventsRequest)
console.log('EVENTS', Object.keys(Events).reduce((acc, e) => {
acc = acc.concat(Events[e].EventType)
return acc
}, []))
console.log('Metrics', Endpoint.Metrics)
/**/
// @TODO wire up pinpointEndpoint if provided
PINPOINT_BASE = "https://pinpoint.".concat(pinpointRegion, ".amazonaws.com/v1/apps");
_context2.next = 47;
return aws.fetch("".concat(PINPOINT_BASE, "/").concat(pinpointAppId, "/events"), {
body: JSON.stringify(EventsRequest)
}).then(function (d) {
return d.json();
});
case 47:
case 34:
data = _context2.sent;
// console.log('pinpoint response', data)
if (data && data.Results) {
// Process api responses
responses = Object.keys(data.Results).map(function (eventId) {
return data.Results[eventId];
});
responses.forEach(function (resp) {
var EndpointItemResponse = resp.EndpointItemResponse,
EventsItemResponse = resp.EventsItemResponse;
if (Object.keys(EndpointItemResponse).length) {
if (debug) console.log('EndpointItemResponse', EndpointItemResponse);
if (ACCEPTED_CODES.includes(EndpointItemResponse.StatusCode)) ; else if (RETRYABLE_CODES.includes(EndpointItemResponse.StatusCode)) ; else {
// Try to handle error
handleEndpointUpdateBadRequest(EndpointItemResponse, Endpoint);
}
}
var events = Object.keys(EventsItemResponse);
if (events.length) {
if (debug) console.log('EventsResponse', EventsItemResponse);
events.forEach(function (eventId) {// console.log(`[req "${Endpoint.RequestId}"] Event id ${eventId}`, EventsItemResponse[eventId])
});
}
});
}
_context2.next = 54;
_context2.next = 40;
break;
case 51:
_context2.prev = 51;
_context2.t1 = _context2["catch"](43);
console.log('callPinPoint err', _context2.t1);
case 37:
_context2.prev = 37;
_context2.t0 = _context2["catch"](31);
console.log('callPinPoint err', _context2.t0);
case 54:
case 40:
// console.log('Before', EVENTS_QUEUE)

@@ -789,3 +703,3 @@

case 56:
case 42:
case "end":

@@ -795,3 +709,3 @@ return _context2.stop();

}
}, _callee2, null, [[6, 12], [43, 51]]);
}, _callee2, null, [[31, 37]]);
}));

@@ -808,2 +722,105 @@

function callAWS(_x2, _x3) {
return _callAWS.apply(this, arguments);
}
function _callAWS() {
_callAWS = _asyncToGenerator(
/*#__PURE__*/
regeneratorRuntime.mark(function _callee3(eventsRequest, config) {
var pinpointRegion, pinpointEndpoint, pinpointAppId, lambdaArn, lambdaRegion, credentials, getCredentials, debug, creds, aws, lambda_region, pinpoint_region, LAMBDA_FN, PINPOINT_URL, endpointUrl, data, responses;
return regeneratorRuntime.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
pinpointRegion = config.pinpointRegion, pinpointEndpoint = config.pinpointEndpoint, pinpointAppId = config.pinpointAppId, lambdaArn = config.lambdaArn, lambdaRegion = config.lambdaRegion, credentials = config.credentials, getCredentials = config.getCredentials, debug = config.debug;
creds = credentials;
/* Use custom creds function */
if (!(!Object.keys(creds).length && getCredentials)) {
_context3.next = 12;
break;
}
_context3.prev = 3;
_context3.next = 6;
return getCredentials();
case 6:
creds = _context3.sent;
_context3.next = 12;
break;
case 9:
_context3.prev = 9;
_context3.t0 = _context3["catch"](3);
throw new Error(_context3.t0);
case 12:
/*
console.log('credentials in plugin', creds)
console.log('credentials.identityId', creds.identityId)
/**/
aws = new aws4fetch.AwsClient({
// Support amplify and raw client auth params
accessKeyId: creds.accessKeyId || creds.AccessKeyId,
secretAccessKey: creds.secretAccessKey || creds.SecretKey,
sessionToken: creds.sessionToken || creds.SessionToken
});
lambda_region = lambdaRegion || pinpointRegion;
pinpoint_region = pinpointRegion || lambdaRegion;
LAMBDA_FN = "https://lambda.".concat(lambda_region, ".amazonaws.com/2015-03-31/functions/").concat(lambdaArn, "/invocations");
PINPOINT_URL = "https://pinpoint.".concat(pinpoint_region, ".amazonaws.com/v1/apps/").concat(pinpointAppId, "/events");
endpointUrl = lambdaArn ? LAMBDA_FN : PINPOINT_URL;
_context3.next = 20;
return aws.fetch(endpointUrl, {
body: JSON.stringify(eventsRequest)
}).then(function (d) {
return d.json();
});
case 20:
data = _context3.sent;
// console.log('pinpoint response', data)
if (data && data.Results) {
// Process api responses
responses = Object.keys(data.Results).map(function (eventId) {
return data.Results[eventId];
});
responses.forEach(function (resp) {
var EndpointItemResponse = resp.EndpointItemResponse || {};
var EventsItemResponse = resp.EventsItemResponse || {};
if (Object.keys(EndpointItemResponse).length) {
if (debug) console.log('EndpointItemResponse', EndpointItemResponse);
if (ACCEPTED_CODES.includes(EndpointItemResponse.StatusCode)) ; else if (RETRYABLE_CODES.includes(EndpointItemResponse.StatusCode)) ; else {
// Try to handle error
handleEndpointUpdateBadRequest(EndpointItemResponse, Endpoint);
}
}
var events = Object.keys(EventsItemResponse);
if (events.length) {
if (debug) console.log('EventsResponse', EventsItemResponse);
events.forEach(function (eventId) {// console.log(`[req "${Endpoint.RequestId}"] Event id ${eventId}`, EventsItemResponse[eventId])
});
}
});
}
return _context3.abrupt("return", data);
case 23:
case "end":
return _context3.stop();
}
}
}, _callee3, null, [[3, 9]]);
}));
return _callAWS.apply(this, arguments);
}
function handleEndpointUpdateBadRequest(error, endpoint) {

@@ -880,3 +897,3 @@ var StatusCode = error.StatusCode,

/*#__PURE__*/
regeneratorRuntime.mark(function _callee3() {
regeneratorRuntime.mark(function _callee4() {
var endpoint,

@@ -889,9 +906,11 @@ context,

EndpointData,
_args3 = arguments;
return regeneratorRuntime.wrap(function _callee3$(_context3) {
sessionKey,
pageKey,
_args4 = arguments;
return regeneratorRuntime.wrap(function _callee4$(_context4) {
while (1) {
switch (_context3.prev = _context3.next) {
switch (_context4.prev = _context4.next) {
case 0:
endpoint = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {};
context = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {};
endpoint = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : {};
context = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : {};
persistedEndpoint = getEndpoint();

@@ -967,31 +986,42 @@ pageSession = context.pageSession;

if (!(endpoint.User && endpoint.User.UserAttributes)) {
_context3.next = 20;
_context4.next = 20;
break;
}
_context3.next = 19;
_context4.next = 19;
return prepareAttributes(endpoint.User.UserAttributes, true);
case 19:
endpoint.User.UserAttributes = _context3.sent;
endpoint.User.UserAttributes = _context4.sent;
case 20:
_context3.next = 22;
_context4.next = 22;
return prepareAttributes(endpoint.Attributes, true);
case 22:
endpoint.Attributes = _context3.sent;
_context3.next = 25;
endpoint.Attributes = _context4.sent;
_context4.next = 25;
return prepareMetrics(endpoint.Metrics);
case 25:
endpoint.Metrics = _context3.sent;
endpoint.Metrics = _context4.sent;
// console.log('endpoint.Metrics', endpoint.Metrics)
sessionKey = 'sessions';
// console.log('endpoint.Metrics', endpoint.Metrics)
// Add session and page view counts to endpoint.
if (context.sessionKey) {
sessionKey = context.sessionKey();
}
pageKey = 'pageViews';
if (context.pageViewKey) {
pageKey = context.pageViewKey();
} // Add session and page view counts to endpoint.
if (!endpoint.Attributes.lastSession) {
endpoint.Attributes.lastSession = [getSessionID()];
endpoint.Attributes.lastPageSession = [pageSession];
endpoint.Metrics.sessions = 1.0;
endpoint.Metrics.pageViews = 1.0;
endpoint.Metrics[sessionKey] = 1.0;
endpoint.Metrics[pageKey] = 1.0;
} else {

@@ -1001,3 +1031,3 @@ // Increment sessions.

endpoint.Attributes.lastSession = [getSessionID()];
endpoint.Metrics.sessions += 1.0;
endpoint.Metrics[sessionKey] += 1.0;
} // Increment pageViews.

@@ -1008,3 +1038,3 @@

endpoint.Attributes.lastPageSession = [pageSession];
endpoint.Metrics.pageViews += 1.0;
endpoint.Metrics[pageKey] += 1.0;
}

@@ -1015,10 +1045,10 @@ } // Store the endpoint data.

setEndpoint(endpoint);
return _context3.abrupt("return", endpoint);
return _context4.abrupt("return", endpoint);
case 29:
case 33:
case "end":
return _context3.stop();
return _context4.stop();
}
}
}, _callee3);
}, _callee4);
}));

@@ -1039,3 +1069,3 @@ return _mergeEndpointData.apply(this, arguments);

function prepareData(_x2, _x3) {
function prepareData(_x4, _x5) {
return _prepareData.apply(this, arguments);

@@ -1053,27 +1083,27 @@ }

/*#__PURE__*/
regeneratorRuntime.mark(function _callee4(value, sanitizeCallback) {
return regeneratorRuntime.wrap(function _callee4$(_context4) {
regeneratorRuntime.mark(function _callee5(value, sanitizeCallback) {
return regeneratorRuntime.wrap(function _callee5$(_context5) {
while (1) {
switch (_context4.prev = _context4.next) {
switch (_context5.prev = _context5.next) {
case 0:
if (!(typeof value === 'function')) {
_context4.next = 4;
_context5.next = 4;
break;
}
_context4.next = 3;
_context5.next = 3;
return value();
case 3:
value = _context4.sent;
value = _context5.sent;
case 4:
return _context4.abrupt("return", sanitizeCallback(value));
return _context5.abrupt("return", sanitizeCallback(value));
case 5:
case "end":
return _context4.stop();
return _context5.stop();
}
}
}, _callee4);
}, _callee5);
}));

@@ -1106,3 +1136,3 @@ return _prepareData.apply(this, arguments);

function prepareAttributes(_x4) {
function prepareAttributes(_x6) {
return _prepareAttributes.apply(this, arguments);

@@ -1119,3 +1149,3 @@ }

/*#__PURE__*/
regeneratorRuntime.mark(function _callee5(attributes) {
regeneratorRuntime.mark(function _callee6(attributes) {
var asArray,

@@ -1125,53 +1155,53 @@ sanitized,

value,
_args5 = arguments;
return regeneratorRuntime.wrap(function _callee5$(_context5) {
_args6 = arguments;
return regeneratorRuntime.wrap(function _callee6$(_context6) {
while (1) {
switch (_context5.prev = _context5.next) {
switch (_context6.prev = _context6.next) {
case 0:
asArray = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : false;
asArray = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : false;
sanitized = {};
_context5.t0 = regeneratorRuntime.keys(attributes);
_context6.t0 = regeneratorRuntime.keys(attributes);
case 3:
if ((_context5.t1 = _context5.t0()).done) {
_context5.next = 17;
if ((_context6.t1 = _context6.t0()).done) {
_context6.next = 17;
break;
}
name = _context5.t1.value;
name = _context6.t1.value;
value = Array.isArray(attributes[name]) ? attributes[name] : [attributes[name]];
if (!asArray) {
_context5.next = 12;
_context6.next = 12;
break;
}
_context5.next = 9;
_context6.next = 9;
return prepareData(value, sanitizeAttribute);
case 9:
sanitized[name] = _context5.sent;
_context5.next = 15;
sanitized[name] = _context6.sent;
_context6.next = 15;
break;
case 12:
_context5.next = 14;
_context6.next = 14;
return prepareData(value[0], sanitizeAttribute);
case 14:
sanitized[name] = _context5.sent;
sanitized[name] = _context6.sent;
case 15:
_context5.next = 3;
_context6.next = 3;
break;
case 17:
return _context5.abrupt("return", sanitized);
return _context6.abrupt("return", sanitized);
case 18:
case "end":
return _context5.stop();
return _context6.stop();
}
}
}, _callee5);
}, _callee6);
}));

@@ -1181,3 +1211,3 @@ return _prepareAttributes.apply(this, arguments);

function prepareMetrics(_x5) {
function prepareMetrics(_x7) {
return _prepareMetrics.apply(this, arguments);

@@ -1230,35 +1260,35 @@ }

/*#__PURE__*/
regeneratorRuntime.mark(function _callee6(metrics) {
regeneratorRuntime.mark(function _callee7(metrics) {
var sanitized, name;
return regeneratorRuntime.wrap(function _callee6$(_context6) {
return regeneratorRuntime.wrap(function _callee7$(_context7) {
while (1) {
switch (_context6.prev = _context6.next) {
switch (_context7.prev = _context7.next) {
case 0:
sanitized = {};
_context6.t0 = regeneratorRuntime.keys(metrics);
_context7.t0 = regeneratorRuntime.keys(metrics);
case 2:
if ((_context6.t1 = _context6.t0()).done) {
_context6.next = 9;
if ((_context7.t1 = _context7.t0()).done) {
_context7.next = 9;
break;
}
name = _context6.t1.value;
_context6.next = 6;
name = _context7.t1.value;
_context7.next = 6;
return prepareData(metrics[name], sanitizeMetric);
case 6:
sanitized[name] = _context6.sent;
_context6.next = 2;
sanitized[name] = _context7.sent;
_context7.next = 2;
break;
case 9:
return _context6.abrupt("return", sanitized);
return _context7.abrupt("return", sanitized);
case 10:
case "end":
return _context6.stop();
return _context7.stop();
}
}
}, _callee6);
}, _callee7);
}));

@@ -1361,3 +1391,5 @@ return _prepareMetrics.apply(this, arguments);

subSessionId: subSessionId,
subSessionStart: subSessionStart // scrollDepth: scrollDepthNow,
subSessionStart: subSessionStart,
sessionKey: config.sessionKey,
pageViewKey: config.pageViewKey // scrollDepth: scrollDepthNow,
// scrollDepthMax

@@ -1364,0 +1396,0 @@

@@ -543,8 +543,3 @@ import deepmerge from 'deepmerge';

var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var pinpointRegion = config.pinpointRegion,
pinpointEndpoint = config.pinpointEndpoint,
pinpointAppId = config.pinpointAppId,
credentials = config.credentials,
getCredentials = config.getCredentials,
getEndpointId = config.getEndpointId,
var getEndpointId = config.getEndpointId,
debug = config.debug;

@@ -558,4 +553,2 @@ return (

var endpoint,
creds,
aws,
endpointData,

@@ -567,6 +560,4 @@ endpointId,

Endpoint,
EventsRequest,
PINPOINT_BASE,
eventsRequest,
data,
responses,
_args2 = arguments;

@@ -588,41 +579,9 @@ return regeneratorRuntime.wrap(function _callee2$(_context2) {

case 4:
creds = credentials;
/* Use custom creds function */
if (!(!Object.keys(creds).length && getCredentials)) {
_context2.next = 15;
break;
}
_context2.prev = 6;
_context2.next = 9;
return getCredentials();
case 9:
creds = _context2.sent;
_context2.next = 15;
break;
case 12:
_context2.prev = 12;
_context2.t0 = _context2["catch"](6);
throw new Error(_context2.t0);
case 15:
/*
console.log('credentials in plugin', creds)
console.log('credentials.identityId', creds.identityId)
/**/
aws = new AwsClient({
accessKeyId: creds.accessKeyId,
secretAccessKey: creds.secretAccessKey,
sessionToken: creds.sessionToken
}); // console.log('aws', aws)
// console.log('aws', aws)
endpointData = endpoint; // Events are associated with an endpoint.
_context2.next = 19;
_context2.next = 7;
return getEndpointId();
case 19:
case 7:
endpointId = _context2.sent;

@@ -635,3 +594,3 @@

if (endpointId) {
_context2.next = 24;
_context2.next = 12;
break;

@@ -643,5 +602,5 @@ }

case 24:
case 12:
if (!Object.entries(endpoint).length) {
_context2.next = 31;
_context2.next = 19;
break;

@@ -651,14 +610,14 @@ }

contextInfo = config.getContext();
_context2.next = 28;
_context2.next = 16;
return mergeEndpointData(endpoint, contextInfo);
case 28:
case 16:
endpointData = _context2.sent;
_context2.next = 32;
_context2.next = 20;
break;
case 31:
case 19:
endpointData = getEndpoint() || {};
case 32:
case 20:
if (debug) {

@@ -710,3 +669,3 @@ console.log('endpointData', endpointData);

EventsRequest = {
eventsRequest = {
BatchItem: _defineProperty({}, endpointId, {

@@ -717,62 +676,17 @@ Endpoint: Endpoint,

};
_context2.prev = 43;
_context2.prev = 31;
_context2.next = 34;
return callAWS(eventsRequest, config);
/*
console.log('Call pinpoint', EventsRequest)
console.log('EVENTS', Object.keys(Events).reduce((acc, e) => {
acc = acc.concat(Events[e].EventType)
return acc
}, []))
console.log('Metrics', Endpoint.Metrics)
/**/
// @TODO wire up pinpointEndpoint if provided
PINPOINT_BASE = "https://pinpoint.".concat(pinpointRegion, ".amazonaws.com/v1/apps");
_context2.next = 47;
return aws.fetch("".concat(PINPOINT_BASE, "/").concat(pinpointAppId, "/events"), {
body: JSON.stringify(EventsRequest)
}).then(function (d) {
return d.json();
});
case 47:
case 34:
data = _context2.sent;
// console.log('pinpoint response', data)
if (data && data.Results) {
// Process api responses
responses = Object.keys(data.Results).map(function (eventId) {
return data.Results[eventId];
});
responses.forEach(function (resp) {
var EndpointItemResponse = resp.EndpointItemResponse,
EventsItemResponse = resp.EventsItemResponse;
if (Object.keys(EndpointItemResponse).length) {
if (debug) console.log('EndpointItemResponse', EndpointItemResponse);
if (ACCEPTED_CODES.includes(EndpointItemResponse.StatusCode)) ; else if (RETRYABLE_CODES.includes(EndpointItemResponse.StatusCode)) ; else {
// Try to handle error
handleEndpointUpdateBadRequest(EndpointItemResponse, Endpoint);
}
}
var events = Object.keys(EventsItemResponse);
if (events.length) {
if (debug) console.log('EventsResponse', EventsItemResponse);
events.forEach(function (eventId) {// console.log(`[req "${Endpoint.RequestId}"] Event id ${eventId}`, EventsItemResponse[eventId])
});
}
});
}
_context2.next = 54;
_context2.next = 40;
break;
case 51:
_context2.prev = 51;
_context2.t1 = _context2["catch"](43);
console.log('callPinPoint err', _context2.t1);
case 37:
_context2.prev = 37;
_context2.t0 = _context2["catch"](31);
console.log('callPinPoint err', _context2.t0);
case 54:
case 40:
// console.log('Before', EVENTS_QUEUE)

@@ -785,3 +699,3 @@

case 56:
case 42:
case "end":

@@ -791,3 +705,3 @@ return _context2.stop();

}
}, _callee2, null, [[6, 12], [43, 51]]);
}, _callee2, null, [[31, 37]]);
}));

@@ -804,2 +718,105 @@

function callAWS(_x2, _x3) {
return _callAWS.apply(this, arguments);
}
function _callAWS() {
_callAWS = _asyncToGenerator(
/*#__PURE__*/
regeneratorRuntime.mark(function _callee3(eventsRequest, config) {
var pinpointRegion, pinpointEndpoint, pinpointAppId, lambdaArn, lambdaRegion, credentials, getCredentials, debug, creds, aws, lambda_region, pinpoint_region, LAMBDA_FN, PINPOINT_URL, endpointUrl, data, responses;
return regeneratorRuntime.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
pinpointRegion = config.pinpointRegion, pinpointEndpoint = config.pinpointEndpoint, pinpointAppId = config.pinpointAppId, lambdaArn = config.lambdaArn, lambdaRegion = config.lambdaRegion, credentials = config.credentials, getCredentials = config.getCredentials, debug = config.debug;
creds = credentials;
/* Use custom creds function */
if (!(!Object.keys(creds).length && getCredentials)) {
_context3.next = 12;
break;
}
_context3.prev = 3;
_context3.next = 6;
return getCredentials();
case 6:
creds = _context3.sent;
_context3.next = 12;
break;
case 9:
_context3.prev = 9;
_context3.t0 = _context3["catch"](3);
throw new Error(_context3.t0);
case 12:
/*
console.log('credentials in plugin', creds)
console.log('credentials.identityId', creds.identityId)
/**/
aws = new AwsClient({
// Support amplify and raw client auth params
accessKeyId: creds.accessKeyId || creds.AccessKeyId,
secretAccessKey: creds.secretAccessKey || creds.SecretKey,
sessionToken: creds.sessionToken || creds.SessionToken
});
lambda_region = lambdaRegion || pinpointRegion;
pinpoint_region = pinpointRegion || lambdaRegion;
LAMBDA_FN = "https://lambda.".concat(lambda_region, ".amazonaws.com/2015-03-31/functions/").concat(lambdaArn, "/invocations");
PINPOINT_URL = "https://pinpoint.".concat(pinpoint_region, ".amazonaws.com/v1/apps/").concat(pinpointAppId, "/events");
endpointUrl = lambdaArn ? LAMBDA_FN : PINPOINT_URL;
_context3.next = 20;
return aws.fetch(endpointUrl, {
body: JSON.stringify(eventsRequest)
}).then(function (d) {
return d.json();
});
case 20:
data = _context3.sent;
// console.log('pinpoint response', data)
if (data && data.Results) {
// Process api responses
responses = Object.keys(data.Results).map(function (eventId) {
return data.Results[eventId];
});
responses.forEach(function (resp) {
var EndpointItemResponse = resp.EndpointItemResponse || {};
var EventsItemResponse = resp.EventsItemResponse || {};
if (Object.keys(EndpointItemResponse).length) {
if (debug) console.log('EndpointItemResponse', EndpointItemResponse);
if (ACCEPTED_CODES.includes(EndpointItemResponse.StatusCode)) ; else if (RETRYABLE_CODES.includes(EndpointItemResponse.StatusCode)) ; else {
// Try to handle error
handleEndpointUpdateBadRequest(EndpointItemResponse, Endpoint);
}
}
var events = Object.keys(EventsItemResponse);
if (events.length) {
if (debug) console.log('EventsResponse', EventsItemResponse);
events.forEach(function (eventId) {// console.log(`[req "${Endpoint.RequestId}"] Event id ${eventId}`, EventsItemResponse[eventId])
});
}
});
}
return _context3.abrupt("return", data);
case 23:
case "end":
return _context3.stop();
}
}
}, _callee3, null, [[3, 9]]);
}));
return _callAWS.apply(this, arguments);
}
function handleEndpointUpdateBadRequest(error, endpoint) {

@@ -876,3 +893,3 @@ var StatusCode = error.StatusCode,

/*#__PURE__*/
regeneratorRuntime.mark(function _callee3() {
regeneratorRuntime.mark(function _callee4() {
var endpoint,

@@ -885,9 +902,11 @@ context,

EndpointData,
_args3 = arguments;
return regeneratorRuntime.wrap(function _callee3$(_context3) {
sessionKey,
pageKey,
_args4 = arguments;
return regeneratorRuntime.wrap(function _callee4$(_context4) {
while (1) {
switch (_context3.prev = _context3.next) {
switch (_context4.prev = _context4.next) {
case 0:
endpoint = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {};
context = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {};
endpoint = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : {};
context = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : {};
persistedEndpoint = getEndpoint();

@@ -963,31 +982,42 @@ pageSession = context.pageSession;

if (!(endpoint.User && endpoint.User.UserAttributes)) {
_context3.next = 20;
_context4.next = 20;
break;
}
_context3.next = 19;
_context4.next = 19;
return prepareAttributes(endpoint.User.UserAttributes, true);
case 19:
endpoint.User.UserAttributes = _context3.sent;
endpoint.User.UserAttributes = _context4.sent;
case 20:
_context3.next = 22;
_context4.next = 22;
return prepareAttributes(endpoint.Attributes, true);
case 22:
endpoint.Attributes = _context3.sent;
_context3.next = 25;
endpoint.Attributes = _context4.sent;
_context4.next = 25;
return prepareMetrics(endpoint.Metrics);
case 25:
endpoint.Metrics = _context3.sent;
endpoint.Metrics = _context4.sent;
// console.log('endpoint.Metrics', endpoint.Metrics)
sessionKey = 'sessions';
// console.log('endpoint.Metrics', endpoint.Metrics)
// Add session and page view counts to endpoint.
if (context.sessionKey) {
sessionKey = context.sessionKey();
}
pageKey = 'pageViews';
if (context.pageViewKey) {
pageKey = context.pageViewKey();
} // Add session and page view counts to endpoint.
if (!endpoint.Attributes.lastSession) {
endpoint.Attributes.lastSession = [getSessionID()];
endpoint.Attributes.lastPageSession = [pageSession];
endpoint.Metrics.sessions = 1.0;
endpoint.Metrics.pageViews = 1.0;
endpoint.Metrics[sessionKey] = 1.0;
endpoint.Metrics[pageKey] = 1.0;
} else {

@@ -997,3 +1027,3 @@ // Increment sessions.

endpoint.Attributes.lastSession = [getSessionID()];
endpoint.Metrics.sessions += 1.0;
endpoint.Metrics[sessionKey] += 1.0;
} // Increment pageViews.

@@ -1004,3 +1034,3 @@

endpoint.Attributes.lastPageSession = [pageSession];
endpoint.Metrics.pageViews += 1.0;
endpoint.Metrics[pageKey] += 1.0;
}

@@ -1011,10 +1041,10 @@ } // Store the endpoint data.

setEndpoint(endpoint);
return _context3.abrupt("return", endpoint);
return _context4.abrupt("return", endpoint);
case 29:
case 33:
case "end":
return _context3.stop();
return _context4.stop();
}
}
}, _callee3);
}, _callee4);
}));

@@ -1035,3 +1065,3 @@ return _mergeEndpointData.apply(this, arguments);

function prepareData(_x2, _x3) {
function prepareData(_x4, _x5) {
return _prepareData.apply(this, arguments);

@@ -1049,27 +1079,27 @@ }

/*#__PURE__*/
regeneratorRuntime.mark(function _callee4(value, sanitizeCallback) {
return regeneratorRuntime.wrap(function _callee4$(_context4) {
regeneratorRuntime.mark(function _callee5(value, sanitizeCallback) {
return regeneratorRuntime.wrap(function _callee5$(_context5) {
while (1) {
switch (_context4.prev = _context4.next) {
switch (_context5.prev = _context5.next) {
case 0:
if (!(typeof value === 'function')) {
_context4.next = 4;
_context5.next = 4;
break;
}
_context4.next = 3;
_context5.next = 3;
return value();
case 3:
value = _context4.sent;
value = _context5.sent;
case 4:
return _context4.abrupt("return", sanitizeCallback(value));
return _context5.abrupt("return", sanitizeCallback(value));
case 5:
case "end":
return _context4.stop();
return _context5.stop();
}
}
}, _callee4);
}, _callee5);
}));

@@ -1102,3 +1132,3 @@ return _prepareData.apply(this, arguments);

function prepareAttributes(_x4) {
function prepareAttributes(_x6) {
return _prepareAttributes.apply(this, arguments);

@@ -1115,3 +1145,3 @@ }

/*#__PURE__*/
regeneratorRuntime.mark(function _callee5(attributes) {
regeneratorRuntime.mark(function _callee6(attributes) {
var asArray,

@@ -1121,53 +1151,53 @@ sanitized,

value,
_args5 = arguments;
return regeneratorRuntime.wrap(function _callee5$(_context5) {
_args6 = arguments;
return regeneratorRuntime.wrap(function _callee6$(_context6) {
while (1) {
switch (_context5.prev = _context5.next) {
switch (_context6.prev = _context6.next) {
case 0:
asArray = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : false;
asArray = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : false;
sanitized = {};
_context5.t0 = regeneratorRuntime.keys(attributes);
_context6.t0 = regeneratorRuntime.keys(attributes);
case 3:
if ((_context5.t1 = _context5.t0()).done) {
_context5.next = 17;
if ((_context6.t1 = _context6.t0()).done) {
_context6.next = 17;
break;
}
name = _context5.t1.value;
name = _context6.t1.value;
value = Array.isArray(attributes[name]) ? attributes[name] : [attributes[name]];
if (!asArray) {
_context5.next = 12;
_context6.next = 12;
break;
}
_context5.next = 9;
_context6.next = 9;
return prepareData(value, sanitizeAttribute);
case 9:
sanitized[name] = _context5.sent;
_context5.next = 15;
sanitized[name] = _context6.sent;
_context6.next = 15;
break;
case 12:
_context5.next = 14;
_context6.next = 14;
return prepareData(value[0], sanitizeAttribute);
case 14:
sanitized[name] = _context5.sent;
sanitized[name] = _context6.sent;
case 15:
_context5.next = 3;
_context6.next = 3;
break;
case 17:
return _context5.abrupt("return", sanitized);
return _context6.abrupt("return", sanitized);
case 18:
case "end":
return _context5.stop();
return _context6.stop();
}
}
}, _callee5);
}, _callee6);
}));

@@ -1177,3 +1207,3 @@ return _prepareAttributes.apply(this, arguments);

function prepareMetrics(_x5) {
function prepareMetrics(_x7) {
return _prepareMetrics.apply(this, arguments);

@@ -1226,35 +1256,35 @@ }

/*#__PURE__*/
regeneratorRuntime.mark(function _callee6(metrics) {
regeneratorRuntime.mark(function _callee7(metrics) {
var sanitized, name;
return regeneratorRuntime.wrap(function _callee6$(_context6) {
return regeneratorRuntime.wrap(function _callee7$(_context7) {
while (1) {
switch (_context6.prev = _context6.next) {
switch (_context7.prev = _context7.next) {
case 0:
sanitized = {};
_context6.t0 = regeneratorRuntime.keys(metrics);
_context7.t0 = regeneratorRuntime.keys(metrics);
case 2:
if ((_context6.t1 = _context6.t0()).done) {
_context6.next = 9;
if ((_context7.t1 = _context7.t0()).done) {
_context7.next = 9;
break;
}
name = _context6.t1.value;
_context6.next = 6;
name = _context7.t1.value;
_context7.next = 6;
return prepareData(metrics[name], sanitizeMetric);
case 6:
sanitized[name] = _context6.sent;
_context6.next = 2;
sanitized[name] = _context7.sent;
_context7.next = 2;
break;
case 9:
return _context6.abrupt("return", sanitized);
return _context7.abrupt("return", sanitized);
case 10:
case "end":
return _context6.stop();
return _context7.stop();
}
}
}, _callee6);
}, _callee7);
}));

@@ -1357,3 +1387,5 @@ return _prepareMetrics.apply(this, arguments);

subSessionId: subSessionId,
subSessionStart: subSessionStart // scrollDepth: scrollDepthNow,
subSessionStart: subSessionStart,
sessionKey: config.sessionKey,
pageViewKey: config.pageViewKey // scrollDepth: scrollDepthNow,
// scrollDepthMax

@@ -1360,0 +1392,0 @@

{
"name": "@analytics/aws-pinpoint",
"version": "0.1.0",
"version": "0.2.0",
"description": "AWS Pinpoint integration for 'analytics' module",

@@ -59,3 +59,3 @@ "projectMeta": {

},
"gitHead": "0295f5139bb0c73d85bfcb0f9d10e5739c51bcb4"
"gitHead": "c813970f88292449694aba5272e6c6beca909886"
}

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc