@dcl/landing-site 0.5.1-24685869120.commit-1de5712 → 0.5.1-24686484792.commit-e56f2bf
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/{AnimatedBackground--tmRk4pB.js → AnimatedBackground-BbbuCmrW.js} +2 -2
- package/assets/{AnimatedBackground--tmRk4pB.js.map → AnimatedBackground-BbbuCmrW.js.map} +1 -1
- package/assets/{AnimatedSection-4VTaj_2R.js → AnimatedSection-CcAt5h6R.js} +1 -1
- package/assets/{AnimatedSection-4VTaj_2R.js.map → AnimatedSection-CcAt5h6R.js.map} +1 -1
- package/assets/{ArrowBackIosNew-BmStpKu0.js → ArrowBackIosNew-lqzUFZQL.js} +1 -1
- package/assets/{ArrowBackIosNew-BmStpKu0.js.map → ArrowBackIosNew-lqzUFZQL.js.map} +1 -1
- package/assets/{AuthorPage-DsEGDjQw.js → AuthorPage-4inFQH2X.js} +1 -1
- package/assets/{AuthorPage-DsEGDjQw.js.map → AuthorPage-4inFQH2X.js.map} +1 -1
- package/assets/{Badges-DFm-dJP0.js → Badges-DPcq_7dC.js} +1 -1
- package/assets/{Badges-DFm-dJP0.js.map → Badges-DPcq_7dC.js.map} +1 -1
- package/assets/{BlogLayout-CxiSrxYR.js → BlogLayout-Bl9FID_L.js} +1 -1
- package/assets/{BlogLayout-CxiSrxYR.js.map → BlogLayout-Bl9FID_L.js.map} +1 -1
- package/assets/{BlogPage-BrmWjpqW.js → BlogPage-4c8ZFzdw.js} +1 -1
- package/assets/{BlogPage-BrmWjpqW.js.map → BlogPage-4c8ZFzdw.js.map} +1 -1
- package/assets/{CTAButton-DiWefRTF.js → CTAButton-D8_9d6Wu.js} +1 -1
- package/assets/{CTAButton-DiWefRTF.js.map → CTAButton-D8_9d6Wu.js.map} +1 -1
- package/assets/{CardContent-BGQcwSBj.js → CardContent-BQ0iSa2p.js} +1 -1
- package/assets/{CardContent-BGQcwSBj.js.map → CardContent-BQ0iSa2p.js.map} +1 -1
- package/assets/{CardMedia-RFT7-c29.js → CardMedia-B6PneSTk.js} +1 -1
- package/assets/{CardMedia-RFT7-c29.js.map → CardMedia-B6PneSTk.js.map} +1 -1
- package/assets/{Carousel-pw-zJClB.js → Carousel-DJd7E-wq.js} +1 -1
- package/assets/{Carousel-pw-zJClB.js.map → Carousel-DJd7E-wq.js.map} +1 -1
- package/assets/{CategoryPage-ZdXQJP2n.js → CategoryPage-DNQI3nXz.js} +1 -1
- package/assets/{CategoryPage-ZdXQJP2n.js.map → CategoryPage-DNQI3nXz.js.map} +1 -1
- package/assets/{CircleAndArrow-DjRydx_v.js → CircleAndArrow-DIeWRbH9.js} +1 -1
- package/assets/{CircleAndArrow-DjRydx_v.js.map → CircleAndArrow-DIeWRbH9.js.map} +1 -1
- package/assets/{CircularProgress-CpGrVwOe.js → CircularProgress-AsNM1BvH.js} +1 -1
- package/assets/{CircularProgress-CpGrVwOe.js.map → CircularProgress-AsNM1BvH.js.map} +1 -1
- package/assets/{ContentCopy-Biu7mI_B.js → ContentCopy-CDhBZqHF.js} +1 -1
- package/assets/{ContentCopy-Biu7mI_B.js.map → ContentCopy-CDhBZqHF.js.map} +1 -1
- package/assets/{CreateEventPage-CSyGxQEM.js → CreateEventPage-NcQUT47j.js} +1 -1
- package/assets/{CreateEventPage-CSyGxQEM.js.map → CreateEventPage-NcQUT47j.js.map} +1 -1
- package/assets/{CreatorHubDownload-C0lTqfvy.js → CreatorHubDownload-y9x_B8ll.js} +1 -1
- package/assets/{CreatorHubDownload-C0lTqfvy.js.map → CreatorHubDownload-y9x_B8ll.js.map} +1 -1
- package/assets/{CreatorHubDownloadSuccess-OmyWSLJA.js → CreatorHubDownloadSuccess-BP7MSbSp.js} +1 -1
- package/assets/{CreatorHubDownloadSuccess-OmyWSLJA.js.map → CreatorHubDownloadSuccess-BP7MSbSp.js.map} +1 -1
- package/assets/{DappsShell-DNMjP5_u.js → DappsShell-HNAsXcn5.js} +1 -1
- package/assets/{DappsShell-DNMjP5_u.js.map → DappsShell-HNAsXcn5.js.map} +1 -1
- package/assets/{DownloadSuccessLayout-OfN-COoN.js → DownloadSuccessLayout-COBp7A1N.js} +1 -1
- package/assets/{DownloadSuccessLayout-OfN-COoN.js.map → DownloadSuccessLayout-COBp7A1N.js.map} +1 -1
- package/assets/{Grow-vvw5xHGO.js → Grow-eKASrvPe.js} +1 -1
- package/assets/{Grow-vvw5xHGO.js.map → Grow-eKASrvPe.js.map} +1 -1
- package/assets/HomePage-CZwkfB5G.js +3 -0
- package/assets/HomePage-CZwkfB5G.js.map +1 -0
- package/assets/{InviteFaqs-VtXtD9Y7.js → InviteFaqs-BkOvxqyN.js} +1 -1
- package/assets/{InviteFaqs-VtXtD9Y7.js.map → InviteFaqs-BkOvxqyN.js.map} +1 -1
- package/assets/{InvitePage-B2ILV0JT.js → InvitePage-D5lELZNP.js} +2 -2
- package/assets/{InvitePage-B2ILV0JT.js.map → InvitePage-D5lELZNP.js.map} +1 -1
- package/assets/{JumpInIcon-DQLZFf5_.js → JumpInIcon-bPOWl5ae.js} +1 -1
- package/assets/{JumpInIcon-DQLZFf5_.js.map → JumpInIcon-bPOWl5ae.js.map} +1 -1
- package/assets/{LegalPageLayout-BPmxsGkt.js → LegalPageLayout-DeH35WpT.js} +1 -1
- package/assets/{LegalPageLayout-BPmxsGkt.js.map → LegalPageLayout-DeH35WpT.js.map} +1 -1
- package/assets/{Link-CRy-ui2j.js → Link-C3GGl2C6.js} +1 -1
- package/assets/{Link-CRy-ui2j.js.map → Link-C3GGl2C6.js.map} +1 -1
- package/assets/{MenuItem--w_lFNXz.js → MenuItem-B0piwgTa.js} +1 -1
- package/assets/{MenuItem--w_lFNXz.js.map → MenuItem-B0piwgTa.js.map} +1 -1
- package/assets/{Paper-DkTuC9MF.js → Paper-BfSYUoim.js} +1 -1
- package/assets/{Paper-DkTuC9MF.js.map → Paper-BfSYUoim.js.map} +1 -1
- package/assets/{PostCard-CoBBQR_z.js → PostCard-Zsk0_WYz.js} +1 -1
- package/assets/{PostCard-CoBBQR_z.js.map → PostCard-Zsk0_WYz.js.map} +1 -1
- package/assets/{PostPage-DTs37H2-.js → PostPage-FBb63V37.js} +1 -1
- package/assets/{PostPage-DTs37H2-.js.map → PostPage-FBb63V37.js.map} +1 -1
- package/assets/{PostPage.styled-DLL8lMAH.js → PostPage.styled-B7Xofl3c.js} +3 -3
- package/assets/{PostPage.styled-DLL8lMAH.js.map → PostPage.styled-B7Xofl3c.js.map} +1 -1
- package/assets/{PreviewPage-CM24MWpu.js → PreviewPage-Dla6vQZW.js} +1 -1
- package/assets/{PreviewPage-CM24MWpu.js.map → PreviewPage-Dla6vQZW.js.map} +1 -1
- package/assets/{SEO-B1CZcHhQ.js → SEO-CGGKu_zm.js} +1 -1
- package/assets/{SEO-B1CZcHhQ.js.map → SEO-CGGKu_zm.js.map} +1 -1
- package/assets/{SearchPage-Bc-IQg_Z.js → SearchPage-ByMcz1c8.js} +1 -1
- package/assets/{SearchPage-Bc-IQg_Z.js.map → SearchPage-ByMcz1c8.js.map} +1 -1
- package/assets/{SignInRedirect-CytWMFc_.js → SignInRedirect-BNwfxyGB.js} +1 -1
- package/assets/{SignInRedirect-CytWMFc_.js.map → SignInRedirect-BNwfxyGB.js.map} +1 -1
- package/assets/{SignInRedirect-CHd5tZSP.js → SignInRedirect-Bxl1dwag.js} +1 -1
- package/assets/{SignInRedirect-CHd5tZSP.js.map → SignInRedirect-Bxl1dwag.js.map} +1 -1
- package/assets/{Skeleton-Bp_3tZG7.js → Skeleton-BP1Os8gY.js} +1 -1
- package/assets/{Skeleton-Bp_3tZG7.js.map → Skeleton-BP1Os8gY.js.map} +1 -1
- package/assets/{TwitterEmbed-qGRZ9Jyy.js → TwitterEmbed-BbSYYog-.js} +1 -1
- package/assets/{TwitterEmbed-qGRZ9Jyy.js.map → TwitterEmbed-BbSYYog-.js.map} +1 -1
- package/assets/{Video-DnCE7TZC.js → Video--A0fBGqz.js} +1 -1
- package/assets/{Video-DnCE7TZC.js.map → Video--A0fBGqz.js.map} +1 -1
- package/assets/WearablePreview-KunRQByO.js +4 -0
- package/assets/{WearablePreview-DLAIz58Z.js.map → WearablePreview-KunRQByO.js.map} +1 -1
- package/assets/{auto-track-DyJFTD4H.js → auto-track-DJw7KsLA.js} +1 -1
- package/assets/{auto-track-DyJFTD4H.js.map → auto-track-DJw7KsLA.js.map} +1 -1
- package/assets/{ccip-Dh2ZOi0c.js → ccip-EHA4QwVS.js} +1 -1
- package/assets/{ccip-Dh2ZOi0c.js.map → ccip-EHA4QwVS.js.map} +1 -1
- package/assets/{createSvgIcon-DPMfLii4.js → createSvgIcon-CnAtXIjx.js} +1 -1
- package/assets/{createSvgIcon-DPMfLii4.js.map → createSvgIcon-CnAtXIjx.js.map} +1 -1
- package/assets/{download-30qm_WAk.js → download-Csh0UAX4.js} +2 -2
- package/assets/{download-30qm_WAk.js.map → download-Csh0UAX4.js.map} +1 -1
- package/assets/{downloadWithIdentity-BtEnlEpV.js → downloadWithIdentity-imzC-1Iy.js} +1 -1
- package/assets/{downloadWithIdentity-BtEnlEpV.js.map → downloadWithIdentity-imzC-1Iy.js.map} +1 -1
- package/assets/{events.client-Cm_vJXoK.js → events.client-BypQp_hx.js} +1 -1
- package/assets/{events.client-Cm_vJXoK.js.map → events.client-BypQp_hx.js.map} +1 -1
- package/assets/{index-DphyojdM.js → index-0VgKmd34.js} +1 -1
- package/assets/{index-DphyojdM.js.map → index-0VgKmd34.js.map} +1 -1
- package/assets/{index-CnliSg2U.js → index-B-PLjKpI.js} +1 -1
- package/assets/{index-CnliSg2U.js.map → index-B-PLjKpI.js.map} +1 -1
- package/assets/{index-3Yl6UR--.js → index-BKY10VNY.js} +1 -1
- package/assets/{index-3Yl6UR--.js.map → index-BKY10VNY.js.map} +1 -1
- package/assets/{index-CcVwIken.js → index-BO6ciUn8.js} +1 -1
- package/assets/{index-CcVwIken.js.map → index-BO6ciUn8.js.map} +1 -1
- package/assets/{index-C1q8L88E.js → index-BVu5N7d0.js} +1 -1
- package/assets/{index-C1q8L88E.js.map → index-BVu5N7d0.js.map} +1 -1
- package/assets/{index-BxZNYwr3.js → index-BaEE4ZXP.js} +1 -1
- package/assets/{index-BxZNYwr3.js.map → index-BaEE4ZXP.js.map} +1 -1
- package/assets/{index-C7VbadJ8.js → index-Bd63106P.js} +1 -1
- package/assets/{index-C7VbadJ8.js.map → index-Bd63106P.js.map} +1 -1
- package/assets/{index-SmcmwtEm.js → index-Bfn0rTR9.js} +1 -1
- package/assets/{index-SmcmwtEm.js.map → index-Bfn0rTR9.js.map} +1 -1
- package/assets/{index-BMggQVV_.js → index-Bq7PojkE.js} +1 -1
- package/assets/{index-BMggQVV_.js.map → index-Bq7PojkE.js.map} +1 -1
- package/assets/{index-BgUWva8u.js → index-BtL1Whr6.js} +1 -1
- package/assets/{index-BgUWva8u.js.map → index-BtL1Whr6.js.map} +1 -1
- package/assets/{index-XqSXzv-4.js → index-BzmWmDt2.js} +1 -1
- package/assets/{index-XqSXzv-4.js.map → index-BzmWmDt2.js.map} +1 -1
- package/assets/{index-Dgp9VKxh.js → index-C1apFG92.js} +1 -1
- package/assets/{index-Dgp9VKxh.js.map → index-C1apFG92.js.map} +1 -1
- package/assets/{index-CAq1HW41.js → index-CC8b5SLA.js} +1 -1
- package/assets/{index-CAq1HW41.js.map → index-CC8b5SLA.js.map} +1 -1
- package/assets/{index-D6BepkG_.js → index-CJ9b6HdV.js} +1 -1
- package/assets/{index-D6BepkG_.js.map → index-CJ9b6HdV.js.map} +1 -1
- package/assets/{index--KeAUoz4.js → index-CXMTgMUj.js} +1 -1
- package/assets/{index--KeAUoz4.js.map → index-CXMTgMUj.js.map} +1 -1
- package/assets/{index-C62RHb__.js → index-CfKiEnnb.js} +1 -1
- package/assets/{index-C62RHb__.js.map → index-CfKiEnnb.js.map} +1 -1
- package/assets/{index-vUzwsML4.js → index-CqU_IKja.js} +1 -1
- package/assets/{index-vUzwsML4.js.map → index-CqU_IKja.js.map} +1 -1
- package/assets/{index-DchvHHlK.js → index-CsY_wahP.js} +1 -1
- package/assets/{index-DchvHHlK.js.map → index-CsY_wahP.js.map} +1 -1
- package/assets/{index-B6K794Rf.js → index-DIU7xr_7.js} +1 -1
- package/assets/{index-B6K794Rf.js.map → index-DIU7xr_7.js.map} +1 -1
- package/assets/{index-BY3JByxP.js → index-DJdpP3iF.js} +1 -1
- package/assets/{index-BY3JByxP.js.map → index-DJdpP3iF.js.map} +1 -1
- package/assets/{index-D0nE3AYE.js → index-DUmIu2EK.js} +37 -37
- package/assets/index-DUmIu2EK.js.map +1 -0
- package/assets/{index-C8cR2Ojr.js → index-DV8UooZK.js} +1 -1
- package/assets/{index-C8cR2Ojr.js.map → index-DV8UooZK.js.map} +1 -1
- package/assets/{index-DLkc1FLr.js → index-DW87VeBc.js} +1 -1
- package/assets/{index-DLkc1FLr.js.map → index-DW87VeBc.js.map} +1 -1
- package/assets/{index-BrT6YuSM.js → index-DwKCx_Fj.js} +4 -4
- package/assets/{index-BrT6YuSM.js.map → index-DwKCx_Fj.js.map} +1 -1
- package/assets/{index-C_4lnhwn.js → index-Dx9lzInm.js} +1 -1
- package/assets/{index-C_4lnhwn.js.map → index-Dx9lzInm.js.map} +1 -1
- package/assets/{index-DsMEKak1.js → index-FcfsIuei.js} +1 -1
- package/assets/{index-DsMEKak1.js.map → index-FcfsIuei.js.map} +1 -1
- package/assets/{index-tdgsZ4Yr.js → index-Hs2OtJ7_.js} +1 -1
- package/assets/{index-tdgsZ4Yr.js.map → index-Hs2OtJ7_.js.map} +1 -1
- package/assets/{index-CALzixlI.js → index-KkMZZ6nz.js} +1 -1
- package/assets/{index-CALzixlI.js.map → index-KkMZZ6nz.js.map} +1 -1
- package/assets/{index-CTcKnQdc.js → index-XwRFjo-F.js} +3 -3
- package/assets/{index-CTcKnQdc.js.map → index-XwRFjo-F.js.map} +1 -1
- package/assets/{index-Fbn9W4zr.js → index-fmnLygLZ.js} +1 -1
- package/assets/{index-Fbn9W4zr.js.map → index-fmnLygLZ.js.map} +1 -1
- package/assets/{index-DklThyvZ.js → index-iTL2dY0l.js} +1 -1
- package/assets/{index-DklThyvZ.js.map → index-iTL2dY0l.js.map} +1 -1
- package/assets/{index-cnaXlDby.js → index-pguZ7Pr7.js} +2 -2
- package/assets/{index-cnaXlDby.js.map → index-pguZ7Pr7.js.map} +1 -1
- package/assets/{profile.client-DJkJAVO7.js → profile.client-BtZZbgxj.js} +1 -1
- package/assets/{profile.client-DJkJAVO7.js.map → profile.client-BtZZbgxj.js.map} +1 -1
- package/assets/{shared.styled-CdKr8-z1.js → shared.styled-D8qloAmp.js} +1 -1
- package/assets/{shared.styled-CdKr8-z1.js.map → shared.styled-D8qloAmp.js.map} +1 -1
- package/assets/{store-B-SZNpsH.js → store-OyTPwmKI.js} +1 -1
- package/assets/{store-B-SZNpsH.js.map → store-OyTPwmKI.js.map} +1 -1
- package/assets/{url-B6S3bwqB.js → url-BHzlJYXC.js} +1 -1
- package/assets/{url-B6S3bwqB.js.map → url-BHzlJYXC.js.map} +1 -1
- package/assets/{useAuthIdentity-BlDTBxRE.js → useAuthIdentity-D2zQ3q5X.js} +1 -1
- package/assets/{useAuthIdentity-BlDTBxRE.js.map → useAuthIdentity-D2zQ3q5X.js.map} +1 -1
- package/assets/{useCreatorHubDownload-TIbrehIm.js → useCreatorHubDownload-Dp_zMaiv.js} +1 -1
- package/assets/{useCreatorHubDownload-TIbrehIm.js.map → useCreatorHubDownload-Dp_zMaiv.js.map} +1 -1
- package/assets/{useInfiniteBlogPosts-DKtXiohd.js → useInfiniteBlogPosts-B9Mv_Fup.js} +1 -1
- package/assets/{useInfiniteBlogPosts-DKtXiohd.js.map → useInfiniteBlogPosts-B9Mv_Fup.js.map} +1 -1
- package/assets/{useSlot-B74_4mYS.js → useSlot-DM_UQPu8.js} +1 -1
- package/assets/{useSlot-B74_4mYS.js.map → useSlot-DM_UQPu8.js.map} +1 -1
- package/assets/{utils-B-HvTNW5.js → utils-CJGePSnj.js} +1 -1
- package/assets/{utils-B-HvTNW5.js.map → utils-CJGePSnj.js.map} +1 -1
- package/index.html +15 -15
- package/package.json +3 -3
- package/assets/HomePage-9QTR-dt7.js +0 -3
- package/assets/HomePage-9QTR-dt7.js.map +0 -1
- package/assets/WearablePreview-DLAIz58Z.js +0 -4
- package/assets/index-D0nE3AYE.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":"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","names":["dset","obj","keys","val","i","l","t","x","k","pickBy","fn","acc","key","ValidationError","_super","__extends","field","message","_this","isString","isNumber","isFunction","exists","isPlainObject","stringError","objError","nilError","assertEventExists","event","assertEventType","assertTrackEventName","assertTrackEventProperties","assertTraits","assertMessageId","validateEvent","InternalEventFactorySettings","settings","_a","_b","CoreEventFactory","properties","options","integrationOptions","__assign","category","page","screen","userId","traits","integrationsOptions","groupId","to","from","base","eventOverrideKeys","providedOptionsKeys","context","eventOverrides","integrationBooleans","integrationNames","name","_","value","allIntegrations","_c","overrides","rest","__rest","evt","pTimeout","promise","timeout","resolve","reject","timeoutId","sleep","timeoutInMs","invokeCallback","ctx","callback","delay","cb","err","createDeferred","settled","_resolve","_reject","args","_i","Emitter","on","fns","without","callbacks","backoff","params","random","minTimeout","factor","attempt","maxTimeout","ON_REMOVE_FROM_FUTURE","PriorityQueue","maxAttempts","queue","seen","items","accepted","operation","attempts","b","item","f","IDX","HEX","BUFFER","v4","num","out","CoreLogger","level","extras","time","formatted","logs","log","line","logEntry","compactMetricType","type","enums","CoreStats","metric","by","tags","m","NullStats","ContextCancelation","CoreContext","id","stats","logger","uuid","other","error","path","integrationName","groupBy","collection","grouper","results","suggestedKey","__spreadArray","isThenable","createTaskGroup","taskCompletionPromise","resolvePromise","count","op","returnValue","res","tryAsync","__awaiter","err_1","__generator","plugin","start","hook","newCtx","done","ensure","newContext","CoreEventQueue","priorityQueue","instance","handleLoadError","p","e_1","willDeliver","onDeliver","flushed","delivered","err_2","retriable","err_3","denyList","available","alternativeNameMatch","before","enrichment","_d","destination","_e","after","before_1","beforeWare","temp","enrichment_1","enrichmentWare","destinations","afterCalls","_f","getDelay","startTimeInEpochMS","timeoutInMS","elapsedTime","dispatch","emitter","startTime","dispatched","resolveArguments","eventName","data","opts","resolvePageArguments","resolvedProperties","resolvedOptions","resolvedCategory","resolvedName","strings","resolvedCallback","objects","resolveUserArguments","user","values","orderStack","args_1","arg","current","resolveAliasArguments","aliasTo","aliasFrom","isBrowser","isServer","isOnline","isOffline","unfetch","n","r","s","u","a","e","getGlobal","global","fetch","version","SEGMENT_API_HOST","createRemoteMetric","versionType","formattedTags","v","logError","RemoteMetrics","flushing_1","run_1","remoteMetric","payload","headers","url","remoteMetrics","Stats","Context","BufferedPageContextDiscriminant","createBufferedPageContext","canonicalUrl","search","title","referrer","BUFFERED_PAGE_CONTEXT_KEYS","isBufferedPageContext","bufferedPageCtx","createCanonicalURL","searchParams","removeHash","href","hashIdx","parseCanonicalPath","createPageContext","param","pathname","newPath","newUrl","getDefaultBufferedPageContext","c","getDefaultPageContext","pick","object","addPageContext","pageCtx","evtCtx","pageContextFromEventProps","EventFactory","ev","isDestinationPluginWithAddMiddleware","loc","persisted","persistItems","existing","all","merged","stored","persistSeen","memory","remove","now","mutex","onUnlock","lockTimeout","lockKey","expired","lock","rawLock","allowed","PersistedPriorityQueue","itemsKey","seenKey","saved","lastSeen","items_1","EventQueue","nameOrQueue","bindAll","proto","desc","assign","target","source","defaultConverter","init","converter","defaultAttributes","set","attributes","stringifiedAttributes","attributeName","get","cookies","jar","parts","foundKey","api","levels","host","last","parseUrl","tld","parsedUrl","lvls","cname","domain","cookie","ONE_YEAR","CookieStorage","LocalStorage","state","MemoryStorage","StoreType","isArrayOfStoreType","isStoreTypeWithSettings","_logStoreKeyError","store","action","UniversalStorage","stores","coercedValue","initializeStorages","storages","applyCookieOptions","storeTypes","cookieOptions","defaults","User","prevId","changingIdentity","retId","retLeg","legacyUser","autoBind","anon","currentId","cookieOpts","filterStores","groupDefaults","Group","_id","_globalAnalyticsKey","getGlobalAnalytics","setGlobalAnalyticsKey","setGlobalAnalytics","analytics","flushSyncAnalyticsCalls","buffer","callAnalyticsMethod","flushAddSourceMiddleware","flushRegister","flushOn","this","flushSetAnonymousID","flushAnalyticsCallsInNewTask","popPageContext","hasBufferedPageContextAsLastArg","lastArg","PreInitMethodCall","method","PreInitMethodCallBuffer","calls","methodName","call","eventsExpectingPageContext","result","AnalyticsBuffered","loader","ajs","module","multiple","find","replace","del","normalize","defaultNormalize","finished","loop","normalizedKey","child","__importDefault","mod","address","obj_case_1","require$$0","trait","props","default_1","clone_1","clone","isEnabled","disabled","integration","matcher","lib","iso","numericKeys","arr","offset","millis","string","strict","milliseconds","seconds","isodate","require$$1","require$$2","objProto","toStr","isDate","toMs","traverse","input","traverseObject","traverseArray","index","facade","address_1","is_enabled_1","new_date_1","require$$3","require$$4","isodate_traverse_1","require$$5","Facade","fields","transform","multi","one","ret","integrations","allEnabled","enabled","active","aliases","alias","library","device","inherits_browserModule","ctor","superCtor","TempCtor","inherits_1","facade_1","Alias","dictionary","isEmail_1","isEmail","group","is_email_1","g","created","email","identify","trim","str","Identify","firstName","lastName","space","date","age","track","identify_1","Track","subtotal","total","products","revenue","orderCompletedRegExp","currency","json","track_1","Page","page_1","Screen","_delete","Delete","exports","alias_1","group_1","screen_1","require$$6","delete_1","require$$7","toFacade","fcd","onPageChange","unloaded","RateLimitError","retryTimeout","createHeaders","headerSettings","MAX_PAYLOAD_SIZE","MAX_KEEPALIVE_SIZE","kilobytes","size","approachingTrackingAPILimit","passedKeepaliveLimit","chunks","batch","apiHost","config","pageUnloaded","limit","rateLimitTimeout","sendBatch","writeKey","updatedBatch","newEvent","retryTimeoutStringSecs","retryTimeoutMS","flush","batch_1","segmentEvent","scheduleFlush","schedule","reqs","_url","body","bufferOverflow","standard","failed","bundled","unbundled","settingsUnbundled","configIds","bundledConfigIds","pWhile","condition","actionResult","flushQueue","xt","failedQueue","success","flushing","isFlushing","newBuffer","onAlias","isSegmentPlugin","segmentio","inflightEvents","protocol","remote","deliveryStrategy","client","send","deprecationWarning","_analytics","createDefaultQueue","retryQueue","disablePersistance","AnalyticsInstanceSettings","emptyCDNSettings","_stub","Analytics","storageSetting","_traits","groupTraits","autotrack","__vitePreload","plugins","registrations","deregistrations","pl","toggle","sourceMiddlewarePlugin","index$1","middlewares","query","queryString","legacyPluginFactory","msg","_settings","_options","nested","an","NullAnalytics","getProcessEnv","process","define_process_env_default","analyticsScriptRegex","getCDNUrlFromScriptTag","cdn","scripts","src","_globalCDN","getGlobalCDNUrl","setGlobalCDNUrl","globalAnalytics","getCDN","globalCdnUrl","cdnFromScriptTag","getNextIntegrationsURL","mergedOptions","cdnSettings","optionOverrides","integrationSettings","gracefulDecodeURIComponent","encodedURIComponent","clientHints","hints","userAgentData","getCookieOptions","ads","queryIds","parts_1","part","utm","utmParam","ampId","referrerId","storage","ad","objectToQueryString","searchParams_1","EnvironmentEnrichmentPlugin","_ctx","locale","amp","envEnrichment","findScript","loadScript","found","status_1","script","firstExistingScript","unloadScript","applyDestinationMiddleware","middleware","applyMiddleware","nextCalled","returnedEvent","modifiedEvent","middleware_1","md","apply","recordIntegrationMetric","didError","ActionDestination","transformedContext","error_1","loadP","error_2","validate","pluginLike","required","isPluginDisabled","userIntegrations","remotePlugin","creationNameEnabled","currentNameEnabled","loadPluginFactory","obfuscate","defaultCdn","urlSplit","name_1","obfuscatedURL","remoteLoader","mergedIntegrations","routingMiddleware","pluginSources","allPlugins","routingRules","pluginPromises","pluginFactory","intg","routing_1","error_4","pluginName","rule","wrapper","env","inspectorHost","attachInspector","loadCDNSettings","baseUrl","errorResponseMessage","hasLegacyDestinations","hasTsubMiddleware","flushPreBuffer","flushFinalBuffer","flushQueryString","getQueryString","hash","term","registerPlugins","pluginLikes","legacyIntegrationSources","preInitBuffer","pluginsFromSettings","tsubMiddleware","legacyDestinations","schemaFilter","mergedSettings","remotePlugins","basePlugins","shouldIgnoreSegmentio","_g","_h","_j","remoteMiddlewares","promises","mdw","loadAnalytics","cdnURL","_k","classicIntegrations","segmentLoadOptions","_l","AnalyticsBrowser","loadStart","resolveLoadStart","AnalyticsNode"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],"sources":["../../node_modules/dset/dist/index.mjs","../../node_modules/@segment/analytics-core/dist/esm/utils/pick.js","../../node_modules/@segment/analytics-core/dist/esm/validation/errors.js","../../node_modules/@segment/analytics-core/dist/esm/validation/helpers.js","../../node_modules/@segment/analytics-core/dist/esm/validation/assertions.js","../../node_modules/@segment/analytics-core/dist/esm/events/index.js","../../node_modules/@segment/analytics-core/dist/esm/callback/index.js","../../node_modules/@segment/analytics-generic-utils/dist/esm/create-deferred/create-deferred.js","../../node_modules/@segment/analytics-generic-utils/dist/esm/emitter/emitter.js","../../node_modules/@segment/analytics-core/dist/esm/priority-queue/backoff.js","../../node_modules/@segment/analytics-core/dist/esm/priority-queue/index.js","../../node_modules/@lukeed/uuid/dist/index.mjs","../../node_modules/@segment/analytics-core/dist/esm/logger/index.js","../../node_modules/@segment/analytics-core/dist/esm/stats/index.js","../../node_modules/@segment/analytics-core/dist/esm/context/index.js","../../node_modules/@segment/analytics-core/dist/esm/utils/group-by.js","../../node_modules/@segment/analytics-core/dist/esm/utils/is-thenable.js","../../node_modules/@segment/analytics-core/dist/esm/task/task-group.js","../../node_modules/@segment/analytics-core/dist/esm/queue/delivery.js","../../node_modules/@segment/analytics-core/dist/esm/queue/event-queue.js","../../node_modules/@segment/analytics-core/dist/esm/analytics/dispatch.js","../../node_modules/@segment/analytics-next/dist/pkg/core/arguments-resolver/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/environment/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/connection/index.js","../../node_modules/unfetch/dist/unfetch.module.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/get-global.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/fetch.js","../../node_modules/@segment/analytics-next/dist/pkg/generated/version.js","../../node_modules/@segment/analytics-next/dist/pkg/core/constants/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/stats/remote-metrics.js","../../node_modules/@segment/analytics-next/dist/pkg/core/stats/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/context/index.js","../../node_modules/@segment/analytics-page-tools/dist/esm/index.mjs","../../node_modules/@segment/analytics-next/dist/pkg/lib/pick.js","../../node_modules/@segment/analytics-next/dist/pkg/core/page/add-page-context.js","../../node_modules/@segment/analytics-next/dist/pkg/core/events/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/plugin/index.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/priority-queue/persisted.js","../../node_modules/@segment/analytics-next/dist/pkg/core/queue/event-queue.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/bind-all.js","../../node_modules/js-cookie/dist/js.cookie.mjs","../../node_modules/@segment/analytics-next/dist/pkg/core/user/tld.js","../../node_modules/@segment/analytics-next/dist/pkg/core/storage/cookieStorage.js","../../node_modules/@segment/analytics-next/dist/pkg/core/storage/localStorage.js","../../node_modules/@segment/analytics-next/dist/pkg/core/storage/memoryStorage.js","../../node_modules/@segment/analytics-next/dist/pkg/core/storage/types.js","../../node_modules/@segment/analytics-next/dist/pkg/core/storage/settings.js","../../node_modules/@segment/analytics-next/dist/pkg/core/storage/universalStorage.js","../../node_modules/@segment/analytics-next/dist/pkg/core/storage/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/user/index.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/global-analytics-helper.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/is-thenable.js","../../node_modules/@segment/analytics-next/dist/pkg/core/buffer/index.js","../../node_modules/obj-case/index.js","../../node_modules/@segment/facade/dist/address.js","../../node_modules/@segment/facade/dist/clone.js","../../node_modules/@segment/facade/dist/is-enabled.js","../../node_modules/@segment/isodate/lib/index.js","../../node_modules/new-date/lib/milliseconds.js","../../node_modules/new-date/lib/seconds.js","../../node_modules/new-date/lib/index.js","../../node_modules/@segment/isodate-traverse/lib/index.js","../../node_modules/@segment/facade/dist/facade.js","../../node_modules/inherits/inherits_browser.js","../../node_modules/@segment/facade/dist/alias.js","../../node_modules/@segment/facade/dist/is-email.js","../../node_modules/@segment/facade/dist/group.js","../../node_modules/@segment/facade/dist/identify.js","../../node_modules/@segment/facade/dist/track.js","../../node_modules/@segment/facade/dist/page.js","../../node_modules/@segment/facade/dist/screen.js","../../node_modules/@segment/facade/dist/delete.js","../../node_modules/@segment/facade/dist/index.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/to-facade.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/on-page-change.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/ratelimit-error.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/shared-dispatcher.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/batched-dispatcher.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/fetch-dispatcher.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/normalize.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/p-while.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/schedule-flush.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/analytics/index.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/get-process-env.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/parse-cdn.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/merged-options.js","../../node_modules/@segment/analytics-next/dist/pkg/core/query-string/gracefulDecodeURIComponent.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/client-hints/index.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/env-enrichment/index.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/load-script.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/middleware/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/stats/metric-helpers.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/remote-loader/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/inspector/index.js","../../node_modules/@segment/analytics-next/dist/pkg/browser/index.js","../../node_modules/@segment/analytics-next/dist/pkg/node/node.browser.js"],"sourcesContent":["export function dset(obj, keys, val) {\n\tkeys.split && (keys=keys.split('.'));\n\tvar i=0, l=keys.length, t=obj, x, k;\n\twhile (i < l) {\n\t\tk = ''+keys[i++];\n\t\tif (k === '__proto__' || k === 'constructor' || k === 'prototype') break;\n\t\tt = t[k] = (i === l) ? val : (typeof(x=t[k])===typeof(keys)) ? x : (keys[i]*0 !== 0 || !!~(''+keys[i]).indexOf('.')) ? {} : [];\n\t}\n}\n","export var pickBy = function (obj, fn) {\n return Object.keys(obj)\n .filter(function (k) { return fn(k, obj[k]); })\n .reduce(function (acc, key) { return ((acc[key] = obj[key]), acc); }, {});\n};\n//# sourceMappingURL=pick.js.map","import { __extends } from \"tslib\";\nvar ValidationError = /** @class */ (function (_super) {\n __extends(ValidationError, _super);\n function ValidationError(field, message) {\n var _this = _super.call(this, \"\".concat(field, \" \").concat(message)) || this;\n _this.field = field;\n return _this;\n }\n return ValidationError;\n}(Error));\nexport { ValidationError };\n//# sourceMappingURL=errors.js.map","export function isString(obj) {\n return typeof obj === 'string';\n}\nexport function isNumber(obj) {\n return typeof obj === 'number';\n}\nexport function isFunction(obj) {\n return typeof obj === 'function';\n}\nexport function exists(val) {\n return val !== undefined && val !== null;\n}\nexport function isPlainObject(obj) {\n return (Object.prototype.toString.call(obj).slice(8, -1).toLowerCase() === 'object');\n}\n//# sourceMappingURL=helpers.js.map","import { ValidationError } from './errors';\nimport { isString, isPlainObject, exists } from './helpers';\nvar stringError = 'is not a string';\nvar objError = 'is not an object';\nvar nilError = 'is nil';\n// user identity check could hypothetically could be used in the browser event factory, but not 100% sure -- so this is node only for now\nexport function assertUserIdentity(event) {\n var USER_FIELD_NAME = '.userId/anonymousId/previousId/groupId';\n var getAnyUserId = function (event) { var _a, _b, _c; return (_c = (_b = (_a = event.userId) !== null && _a !== void 0 ? _a : event.anonymousId) !== null && _b !== void 0 ? _b : event.groupId) !== null && _c !== void 0 ? _c : event.previousId; };\n var id = getAnyUserId(event);\n if (!exists(id)) {\n throw new ValidationError(USER_FIELD_NAME, nilError);\n }\n else if (!isString(id)) {\n throw new ValidationError(USER_FIELD_NAME, stringError);\n }\n}\nexport function assertEventExists(event) {\n if (!exists(event)) {\n throw new ValidationError('Event', nilError);\n }\n if (typeof event !== 'object') {\n throw new ValidationError('Event', objError);\n }\n}\nexport function assertEventType(event) {\n if (!isString(event.type)) {\n throw new ValidationError('.type', stringError);\n }\n}\nexport function assertTrackEventName(event) {\n if (!isString(event.event)) {\n throw new ValidationError('.event', stringError);\n }\n}\nexport function assertTrackEventProperties(event) {\n if (!isPlainObject(event.properties)) {\n throw new ValidationError('.properties', objError);\n }\n}\nexport function assertTraits(event) {\n if (!isPlainObject(event.traits)) {\n throw new ValidationError('.traits', objError);\n }\n}\nexport function assertMessageId(event) {\n if (!isString(event.messageId)) {\n throw new ValidationError('.messageId', stringError);\n }\n}\nexport function validateEvent(event) {\n assertEventExists(event);\n assertEventType(event);\n assertMessageId(event);\n if (event.type === 'track') {\n assertTrackEventName(event);\n assertTrackEventProperties(event);\n }\n if (['group', 'identify'].includes(event.type)) {\n assertTraits(event);\n }\n}\n//# sourceMappingURL=assertions.js.map","import { __assign, __rest } from \"tslib\";\nexport * from './interfaces';\nimport { dset } from 'dset';\nimport { pickBy } from '../utils/pick';\nimport { validateEvent } from '../validation/assertions';\n/**\n * Internal settings object that is used internally by the factory\n */\nvar InternalEventFactorySettings = /** @class */ (function () {\n function InternalEventFactorySettings(settings) {\n var _a, _b;\n this.settings = settings;\n this.createMessageId = settings.createMessageId;\n this.onEventMethodCall = (_a = settings.onEventMethodCall) !== null && _a !== void 0 ? _a : (function () { });\n this.onFinishedEvent = (_b = settings.onFinishedEvent) !== null && _b !== void 0 ? _b : (function () { });\n }\n return InternalEventFactorySettings;\n}());\nvar CoreEventFactory = /** @class */ (function () {\n function CoreEventFactory(settings) {\n this.settings = new InternalEventFactorySettings(settings);\n }\n CoreEventFactory.prototype.track = function (event, properties, options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'track', options: options });\n return this.normalize(__assign(__assign({}, this.baseEvent()), { event: event, type: 'track', properties: properties !== null && properties !== void 0 ? properties : {}, options: __assign({}, options), integrations: __assign({}, integrationOptions) }));\n };\n CoreEventFactory.prototype.page = function (category, page, properties, options, integrationOptions) {\n var _a;\n this.settings.onEventMethodCall({ type: 'page', options: options });\n var event = {\n type: 'page',\n properties: __assign({}, properties),\n options: __assign({}, options),\n integrations: __assign({}, integrationOptions),\n };\n if (category !== null) {\n event.category = category;\n event.properties = (_a = event.properties) !== null && _a !== void 0 ? _a : {};\n event.properties.category = category;\n }\n if (page !== null) {\n event.name = page;\n }\n return this.normalize(__assign(__assign({}, this.baseEvent()), event));\n };\n CoreEventFactory.prototype.screen = function (category, screen, properties, options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'screen', options: options });\n var event = {\n type: 'screen',\n properties: __assign({}, properties),\n options: __assign({}, options),\n integrations: __assign({}, integrationOptions),\n };\n if (category !== null) {\n event.category = category;\n }\n if (screen !== null) {\n event.name = screen;\n }\n return this.normalize(__assign(__assign({}, this.baseEvent()), event));\n };\n CoreEventFactory.prototype.identify = function (userId, traits, options, integrationsOptions) {\n this.settings.onEventMethodCall({ type: 'identify', options: options });\n return this.normalize(__assign(__assign({}, this.baseEvent()), { type: 'identify', userId: userId, traits: traits !== null && traits !== void 0 ? traits : {}, options: __assign({}, options), integrations: integrationsOptions }));\n };\n CoreEventFactory.prototype.group = function (groupId, traits, options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'group', options: options });\n return this.normalize(__assign(__assign({}, this.baseEvent()), { type: 'group', traits: traits !== null && traits !== void 0 ? traits : {}, options: __assign({}, options), integrations: __assign({}, integrationOptions), //\n groupId: groupId }));\n };\n CoreEventFactory.prototype.alias = function (to, from, // TODO: can we make this undefined?\n options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'alias', options: options });\n var base = {\n userId: to,\n type: 'alias',\n options: __assign({}, options),\n integrations: __assign({}, integrationOptions),\n };\n if (from !== null) {\n base.previousId = from;\n }\n if (to === undefined) {\n return this.normalize(__assign(__assign({}, base), this.baseEvent()));\n }\n return this.normalize(__assign(__assign({}, this.baseEvent()), base));\n };\n CoreEventFactory.prototype.baseEvent = function () {\n return {\n integrations: {},\n options: {},\n };\n };\n /**\n * Builds the context part of an event based on \"foreign\" keys that\n * are provided in the `Options` parameter for an Event\n */\n CoreEventFactory.prototype.context = function (options) {\n var _a;\n /**\n * If the event options are known keys from this list, we move them to the top level of the event.\n * Any other options are moved to context.\n */\n var eventOverrideKeys = [\n 'userId',\n 'anonymousId',\n 'timestamp',\n 'messageId',\n ];\n delete options['integrations'];\n var providedOptionsKeys = Object.keys(options);\n var context = (_a = options.context) !== null && _a !== void 0 ? _a : {};\n var eventOverrides = {};\n providedOptionsKeys.forEach(function (key) {\n if (key === 'context') {\n return;\n }\n if (eventOverrideKeys.includes(key)) {\n dset(eventOverrides, key, options[key]);\n }\n else {\n dset(context, key, options[key]);\n }\n });\n return [context, eventOverrides];\n };\n CoreEventFactory.prototype.normalize = function (event) {\n var _a, _b;\n var integrationBooleans = Object.keys((_a = event.integrations) !== null && _a !== void 0 ? _a : {}).reduce(function (integrationNames, name) {\n var _a;\n var _b;\n return __assign(__assign({}, integrationNames), (_a = {}, _a[name] = Boolean((_b = event.integrations) === null || _b === void 0 ? void 0 : _b[name]), _a));\n }, {});\n // filter out any undefined options\n event.options = pickBy(event.options || {}, function (_, value) {\n return value !== undefined;\n });\n // This is pretty trippy, but here's what's going on:\n // - a) We don't pass initial integration options as part of the event, only if they're true or false\n // - b) We do accept per integration overrides (like integrations.Amplitude.sessionId) at the event level\n // Hence the need to convert base integration options to booleans, but maintain per event integration overrides\n var allIntegrations = __assign(__assign({}, integrationBooleans), (_b = event.options) === null || _b === void 0 ? void 0 : _b.integrations);\n var _c = event.options\n ? this.context(event.options)\n : [], context = _c[0], overrides = _c[1];\n var options = event.options, rest = __rest(event, [\"options\"]);\n var evt = __assign(__assign(__assign(__assign({ timestamp: new Date() }, rest), { context: context, integrations: allIntegrations }), overrides), { messageId: options.messageId || this.settings.createMessageId() });\n this.settings.onFinishedEvent(evt);\n validateEvent(evt);\n return evt;\n };\n return CoreEventFactory;\n}());\nexport { CoreEventFactory };\n//# sourceMappingURL=index.js.map","export function pTimeout(promise, timeout) {\n return new Promise(function (resolve, reject) {\n var timeoutId = setTimeout(function () {\n reject(Error('Promise timed out'));\n }, timeout);\n promise\n .then(function (val) {\n clearTimeout(timeoutId);\n return resolve(val);\n })\n .catch(reject);\n });\n}\nexport function sleep(timeoutInMs) {\n return new Promise(function (resolve) { return setTimeout(resolve, timeoutInMs); });\n}\n/**\n * @param ctx\n * @param callback - the function to invoke\n * @param delay - aka \"timeout\". The amount of time in ms to wait before invoking the callback.\n */\nexport function invokeCallback(ctx, callback, delay) {\n var cb = function () {\n try {\n return Promise.resolve(callback(ctx));\n }\n catch (err) {\n return Promise.reject(err);\n }\n };\n return (sleep(delay)\n // pTimeout ensures that the callback can't cause the context to hang\n .then(function () { return pTimeout(cb(), 1000); })\n .catch(function (err) {\n ctx === null || ctx === void 0 ? void 0 : ctx.log('warn', 'Callback Error', { error: err });\n ctx === null || ctx === void 0 ? void 0 : ctx.stats.increment('callback_error');\n })\n .then(function () { return ctx; }));\n}\n//# sourceMappingURL=index.js.map","/**\n * Return a promise that can be externally resolved\n */\nexport var createDeferred = function () {\n var resolve;\n var reject;\n var settled = false;\n var promise = new Promise(function (_resolve, _reject) {\n resolve = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n settled = true;\n _resolve.apply(void 0, args);\n };\n reject = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n settled = true;\n _reject.apply(void 0, args);\n };\n });\n return {\n resolve: resolve,\n reject: reject,\n promise: promise,\n isSettled: function () { return settled; },\n };\n};\n//# sourceMappingURL=create-deferred.js.map","/**\n * Event Emitter that takes the expected contract as a generic\n * @example\n * ```ts\n * type Contract = {\n * delivery_success: [DeliverySuccessResponse, Metrics],\n * delivery_failure: [DeliveryError]\n * }\n * new Emitter<Contract>()\n * .on('delivery_success', (res, metrics) => ...)\n * .on('delivery_failure', (err) => ...)\n * ```\n */\nvar Emitter = /** @class */ (function () {\n function Emitter(options) {\n var _a;\n this.callbacks = {};\n this.warned = false;\n this.maxListeners = (_a = options === null || options === void 0 ? void 0 : options.maxListeners) !== null && _a !== void 0 ? _a : 10;\n }\n Emitter.prototype.warnIfPossibleMemoryLeak = function (event) {\n if (this.warned) {\n return;\n }\n if (this.maxListeners &&\n this.callbacks[event].length > this.maxListeners) {\n console.warn(\"Event Emitter: Possible memory leak detected; \".concat(String(event), \" has exceeded \").concat(this.maxListeners, \" listeners.\"));\n this.warned = true;\n }\n };\n Emitter.prototype.on = function (event, callback) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [callback];\n }\n else {\n this.callbacks[event].push(callback);\n this.warnIfPossibleMemoryLeak(event);\n }\n return this;\n };\n Emitter.prototype.once = function (event, callback) {\n var _this = this;\n var on = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this.off(event, on);\n callback.apply(_this, args);\n };\n this.on(event, on);\n return this;\n };\n Emitter.prototype.off = function (event, callback) {\n var _a;\n var fns = (_a = this.callbacks[event]) !== null && _a !== void 0 ? _a : [];\n var without = fns.filter(function (fn) { return fn !== callback; });\n this.callbacks[event] = without;\n return this;\n };\n Emitter.prototype.emit = function (event) {\n var _this = this;\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var callbacks = (_a = this.callbacks[event]) !== null && _a !== void 0 ? _a : [];\n callbacks.forEach(function (callback) {\n callback.apply(_this, args);\n });\n return this;\n };\n return Emitter;\n}());\nexport { Emitter };\n//# sourceMappingURL=emitter.js.map","export function backoff(params) {\n var random = Math.random() + 1;\n var _a = params.minTimeout, minTimeout = _a === void 0 ? 500 : _a, _b = params.factor, factor = _b === void 0 ? 2 : _b, attempt = params.attempt, _c = params.maxTimeout, maxTimeout = _c === void 0 ? Infinity : _c;\n return Math.min(random * minTimeout * Math.pow(factor, attempt), maxTimeout);\n}\n//# sourceMappingURL=backoff.js.map","import { __extends } from \"tslib\";\nimport { Emitter } from '@segment/analytics-generic-utils';\nimport { backoff } from './backoff';\n/**\n * @internal\n */\nexport var ON_REMOVE_FROM_FUTURE = 'onRemoveFromFuture';\nvar PriorityQueue = /** @class */ (function (_super) {\n __extends(PriorityQueue, _super);\n function PriorityQueue(maxAttempts, queue, seen) {\n var _this = _super.call(this) || this;\n _this.future = [];\n _this.maxAttempts = maxAttempts;\n _this.queue = queue;\n _this.seen = seen !== null && seen !== void 0 ? seen : {};\n return _this;\n }\n PriorityQueue.prototype.push = function () {\n var _this = this;\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var accepted = items.map(function (operation) {\n var attempts = _this.updateAttempts(operation);\n if (attempts > _this.maxAttempts || _this.includes(operation)) {\n return false;\n }\n _this.queue.push(operation);\n return true;\n });\n this.queue = this.queue.sort(function (a, b) { return _this.getAttempts(a) - _this.getAttempts(b); });\n return accepted;\n };\n PriorityQueue.prototype.pushWithBackoff = function (item, minTimeout) {\n var _this = this;\n if (minTimeout === void 0) { minTimeout = 0; }\n // One immediate retry unless we have a minimum timeout (e.g. for rate limiting)\n if (minTimeout == 0 && this.getAttempts(item) === 0) {\n return this.push(item)[0];\n }\n var attempt = this.updateAttempts(item);\n if (attempt > this.maxAttempts || this.includes(item)) {\n return false;\n }\n var timeout = backoff({ attempt: attempt - 1 });\n if (minTimeout > 0 && timeout < minTimeout) {\n timeout = minTimeout;\n }\n setTimeout(function () {\n _this.queue.push(item);\n // remove from future list\n _this.future = _this.future.filter(function (f) { return f.id !== item.id; });\n // Lets listeners know that a 'future' message is now available in the queue\n _this.emit(ON_REMOVE_FROM_FUTURE);\n }, timeout);\n this.future.push(item);\n return true;\n };\n PriorityQueue.prototype.getAttempts = function (item) {\n var _a;\n return (_a = this.seen[item.id]) !== null && _a !== void 0 ? _a : 0;\n };\n PriorityQueue.prototype.updateAttempts = function (item) {\n this.seen[item.id] = this.getAttempts(item) + 1;\n return this.getAttempts(item);\n };\n PriorityQueue.prototype.includes = function (item) {\n return (this.queue.includes(item) ||\n this.future.includes(item) ||\n Boolean(this.queue.find(function (i) { return i.id === item.id; })) ||\n Boolean(this.future.find(function (i) { return i.id === item.id; })));\n };\n PriorityQueue.prototype.pop = function () {\n return this.queue.shift();\n };\n Object.defineProperty(PriorityQueue.prototype, \"length\", {\n get: function () {\n return this.queue.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PriorityQueue.prototype, \"todo\", {\n get: function () {\n return this.queue.length + this.future.length;\n },\n enumerable: false,\n configurable: true\n });\n return PriorityQueue;\n}(Emitter));\nexport { PriorityQueue };\n//# sourceMappingURL=index.js.map","var IDX=256, HEX=[], BUFFER;\nwhile (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);\n\nexport function v4() {\n\tvar i=0, num, out='';\n\n\tif (!BUFFER || ((IDX + 16) > 256)) {\n\t\tBUFFER = Array(i=256);\n\t\twhile (i--) BUFFER[i] = 256 * Math.random() | 0;\n\t\ti = IDX = 0;\n\t}\n\n\tfor (; i < 16; i++) {\n\t\tnum = BUFFER[IDX + i];\n\t\tif (i==6) out += HEX[num & 15 | 64];\n\t\telse if (i==8) out += HEX[num & 63 | 128];\n\t\telse out += HEX[num];\n\n\t\tif (i & 1 && i > 1 && i < 11) out += '-';\n\t}\n\n\tIDX++;\n\treturn out;\n}\n","import { __assign } from \"tslib\";\nvar CoreLogger = /** @class */ (function () {\n function CoreLogger() {\n this._logs = [];\n }\n CoreLogger.prototype.log = function (level, message, extras) {\n var time = new Date();\n this._logs.push({\n level: level,\n message: message,\n time: time,\n extras: extras,\n });\n };\n Object.defineProperty(CoreLogger.prototype, \"logs\", {\n get: function () {\n return this._logs;\n },\n enumerable: false,\n configurable: true\n });\n CoreLogger.prototype.flush = function () {\n if (this.logs.length > 1) {\n var formatted = this._logs.reduce(function (logs, log) {\n var _a;\n var _b, _c;\n var line = __assign(__assign({}, log), { json: JSON.stringify(log.extras, null, ' '), extras: log.extras });\n delete line['time'];\n var key = (_c = (_b = log.time) === null || _b === void 0 ? void 0 : _b.toISOString()) !== null && _c !== void 0 ? _c : '';\n if (logs[key]) {\n key = \"\".concat(key, \"-\").concat(Math.random());\n }\n return __assign(__assign({}, logs), (_a = {}, _a[key] = line, _a));\n }, {});\n // ie doesn't like console.table\n if (console.table) {\n console.table(formatted);\n }\n else {\n console.log(formatted);\n }\n }\n else {\n this.logs.forEach(function (logEntry) {\n var level = logEntry.level, message = logEntry.message, extras = logEntry.extras;\n if (level === 'info' || level === 'debug') {\n console.log(message, extras !== null && extras !== void 0 ? extras : '');\n }\n else {\n console[level](message, extras !== null && extras !== void 0 ? extras : '');\n }\n });\n }\n this._logs = [];\n };\n return CoreLogger;\n}());\nexport { CoreLogger };\n//# sourceMappingURL=index.js.map","import { __assign, __extends } from \"tslib\";\nvar compactMetricType = function (type) {\n var enums = {\n gauge: 'g',\n counter: 'c',\n };\n return enums[type];\n};\nvar CoreStats = /** @class */ (function () {\n function CoreStats() {\n this.metrics = [];\n }\n CoreStats.prototype.increment = function (metric, by, tags) {\n if (by === void 0) { by = 1; }\n this.metrics.push({\n metric: metric,\n value: by,\n tags: tags !== null && tags !== void 0 ? tags : [],\n type: 'counter',\n timestamp: Date.now(),\n });\n };\n CoreStats.prototype.gauge = function (metric, value, tags) {\n this.metrics.push({\n metric: metric,\n value: value,\n tags: tags !== null && tags !== void 0 ? tags : [],\n type: 'gauge',\n timestamp: Date.now(),\n });\n };\n CoreStats.prototype.flush = function () {\n var formatted = this.metrics.map(function (m) { return (__assign(__assign({}, m), { tags: m.tags.join(',') })); });\n // ie doesn't like console.table\n if (console.table) {\n console.table(formatted);\n }\n else {\n console.log(formatted);\n }\n this.metrics = [];\n };\n /**\n * compact keys for smaller payload\n */\n CoreStats.prototype.serialize = function () {\n return this.metrics.map(function (m) {\n return {\n m: m.metric,\n v: m.value,\n t: m.tags,\n k: compactMetricType(m.type),\n e: m.timestamp,\n };\n });\n };\n return CoreStats;\n}());\nexport { CoreStats };\nvar NullStats = /** @class */ (function (_super) {\n __extends(NullStats, _super);\n function NullStats() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NullStats.prototype.gauge = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.increment = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.flush = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.serialize = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n return [];\n };\n return NullStats;\n}(CoreStats));\nexport { NullStats };\n//# sourceMappingURL=index.js.map","import { v4 as uuid } from '@lukeed/uuid';\nimport { dset } from 'dset';\nimport { CoreLogger } from '../logger';\nimport { NullStats } from '../stats';\nvar ContextCancelation = /** @class */ (function () {\n function ContextCancelation(options) {\n var _a, _b, _c;\n this.retry = (_a = options.retry) !== null && _a !== void 0 ? _a : true;\n this.type = (_b = options.type) !== null && _b !== void 0 ? _b : 'plugin Error';\n this.reason = (_c = options.reason) !== null && _c !== void 0 ? _c : '';\n }\n return ContextCancelation;\n}());\nexport { ContextCancelation };\nvar CoreContext = /** @class */ (function () {\n function CoreContext(event, id, stats, logger) {\n if (id === void 0) { id = uuid(); }\n if (stats === void 0) { stats = new NullStats(); }\n if (logger === void 0) { logger = new CoreLogger(); }\n this.attempts = 0;\n this.event = event;\n this._id = id;\n this.logger = logger;\n this.stats = stats;\n }\n CoreContext.system = function () {\n // This should be overridden by the subclass to return an instance of the subclass.\n };\n CoreContext.prototype.isSame = function (other) {\n return other.id === this.id;\n };\n CoreContext.prototype.cancel = function (error) {\n if (error) {\n throw error;\n }\n throw new ContextCancelation({ reason: 'Context Cancel' });\n };\n CoreContext.prototype.log = function (level, message, extras) {\n this.logger.log(level, message, extras);\n };\n Object.defineProperty(CoreContext.prototype, \"id\", {\n get: function () {\n return this._id;\n },\n enumerable: false,\n configurable: true\n });\n CoreContext.prototype.updateEvent = function (path, val) {\n var _a;\n // Don't allow integrations that are set to false to be overwritten with integration settings.\n if (path.split('.')[0] === 'integrations') {\n var integrationName = path.split('.')[1];\n if (((_a = this.event.integrations) === null || _a === void 0 ? void 0 : _a[integrationName]) === false) {\n return this.event;\n }\n }\n dset(this.event, path, val);\n return this.event;\n };\n CoreContext.prototype.failedDelivery = function () {\n return this._failedDelivery;\n };\n CoreContext.prototype.setFailedDelivery = function (options) {\n this._failedDelivery = options;\n };\n CoreContext.prototype.logs = function () {\n return this.logger.logs;\n };\n CoreContext.prototype.flush = function () {\n this.logger.flush();\n this.stats.flush();\n };\n CoreContext.prototype.toJSON = function () {\n return {\n id: this._id,\n event: this.event,\n logs: this.logger.logs,\n metrics: this.stats.metrics,\n };\n };\n return CoreContext;\n}());\nexport { CoreContext };\n//# sourceMappingURL=index.js.map","import { __spreadArray } from \"tslib\";\nexport function groupBy(collection, grouper) {\n var results = {};\n collection.forEach(function (item) {\n var _a;\n var key = undefined;\n if (typeof grouper === 'string') {\n var suggestedKey = item[grouper];\n key =\n typeof suggestedKey !== 'string'\n ? JSON.stringify(suggestedKey)\n : suggestedKey;\n }\n else if (grouper instanceof Function) {\n key = grouper(item);\n }\n if (key === undefined) {\n return;\n }\n results[key] = __spreadArray(__spreadArray([], ((_a = results[key]) !== null && _a !== void 0 ? _a : []), true), [item], false);\n });\n return results;\n}\n//# sourceMappingURL=group-by.js.map","/**\n * Check if thenable\n * (instanceof Promise doesn't respect realms)\n */\nexport var isThenable = function (value) {\n return typeof value === 'object' &&\n value !== null &&\n 'then' in value &&\n typeof value.then === 'function';\n};\n//# sourceMappingURL=is-thenable.js.map","import { isThenable } from '../utils/is-thenable';\nexport var createTaskGroup = function () {\n var taskCompletionPromise;\n var resolvePromise;\n var count = 0;\n return {\n done: function () { return taskCompletionPromise; },\n run: function (op) {\n var returnValue = op();\n if (isThenable(returnValue)) {\n if (++count === 1) {\n taskCompletionPromise = new Promise(function (res) { return (resolvePromise = res); });\n }\n returnValue.finally(function () { return --count === 0 && resolvePromise(); });\n }\n return returnValue;\n },\n };\n};\n//# sourceMappingURL=task-group.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { CoreContext, ContextCancelation } from '../context';\nfunction tryAsync(fn) {\n return __awaiter(this, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, fn()];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n err_1 = _a.sent();\n return [2 /*return*/, Promise.reject(err_1)];\n case 3: return [2 /*return*/];\n }\n });\n });\n}\nexport function attempt(ctx, plugin) {\n ctx.log('debug', 'plugin', { plugin: plugin.name });\n var start = new Date().getTime();\n var hook = plugin[ctx.event.type];\n if (hook === undefined) {\n return Promise.resolve(ctx);\n }\n var newCtx = tryAsync(function () { return hook.apply(plugin, [ctx]); })\n .then(function (ctx) {\n var done = new Date().getTime() - start;\n ctx.stats.gauge('plugin_time', done, [\"plugin:\".concat(plugin.name)]);\n return ctx;\n })\n .catch(function (err) {\n if (err instanceof ContextCancelation &&\n err.type === 'middleware_cancellation') {\n throw err;\n }\n if (err instanceof ContextCancelation) {\n ctx.log('warn', err.type, {\n plugin: plugin.name,\n error: err,\n });\n return err;\n }\n ctx.log('error', 'plugin Error', {\n plugin: plugin.name,\n error: err,\n });\n ctx.stats.increment('plugin_error', 1, [\"plugin:\".concat(plugin.name)]);\n return err;\n });\n return newCtx;\n}\nexport function ensure(ctx, plugin) {\n return attempt(ctx, plugin).then(function (newContext) {\n if (newContext instanceof CoreContext) {\n return newContext;\n }\n ctx.log('debug', 'Context canceled');\n ctx.stats.increment('context_canceled');\n ctx.cancel(newContext);\n });\n}\n//# sourceMappingURL=delivery.js.map","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { groupBy } from '../utils/group-by';\nimport { ON_REMOVE_FROM_FUTURE } from '../priority-queue';\nimport { CoreContext, ContextCancelation } from '../context';\nimport { Emitter } from '@segment/analytics-generic-utils';\nimport { createTaskGroup } from '../task/task-group';\nimport { attempt, ensure } from './delivery';\nvar CoreEventQueue = /** @class */ (function (_super) {\n __extends(CoreEventQueue, _super);\n function CoreEventQueue(priorityQueue) {\n var _this = _super.call(this) || this;\n /**\n * All event deliveries get suspended until all the tasks in this task group are complete.\n * For example: a middleware that augments the event object should be loaded safely as a\n * critical task, this way, event queue will wait for it to be ready before sending events.\n *\n * This applies to all the events already in the queue, and the upcoming ones\n */\n _this.criticalTasks = createTaskGroup();\n _this.plugins = [];\n _this.failedInitializations = [];\n _this.flushing = false;\n _this.queue = priorityQueue;\n _this.queue.on(ON_REMOVE_FROM_FUTURE, function () {\n _this.scheduleFlush(0);\n });\n return _this;\n }\n CoreEventQueue.prototype.register = function (ctx, plugin, instance) {\n return __awaiter(this, void 0, void 0, function () {\n var handleLoadError, err_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.plugins.push(plugin);\n handleLoadError = function (err) {\n _this.failedInitializations.push(plugin.name);\n _this.emit('initialization_failure', plugin);\n console.warn(plugin.name, err);\n ctx.log('warn', 'Failed to load destination', {\n plugin: plugin.name,\n error: err,\n });\n // Filter out the failed plugin by excluding it from the list\n _this.plugins = _this.plugins.filter(function (p) { return p !== plugin; });\n };\n if (!(plugin.type === 'destination' && plugin.name !== 'Segment.io')) return [3 /*break*/, 1];\n plugin.load(ctx, instance).catch(handleLoadError);\n return [3 /*break*/, 4];\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, plugin.load(ctx, instance)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n handleLoadError(err_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CoreEventQueue.prototype.deregister = function (ctx, plugin, instance) {\n return __awaiter(this, void 0, void 0, function () {\n var e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n if (!plugin.unload) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.resolve(plugin.unload(ctx, instance))];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this.plugins = this.plugins.filter(function (p) { return p.name !== plugin.name; });\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n ctx.log('warn', 'Failed to unload destination', {\n plugin: plugin.name,\n error: e_1,\n });\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CoreEventQueue.prototype.dispatch = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var willDeliver;\n return __generator(this, function (_a) {\n ctx.log('debug', 'Dispatching');\n ctx.stats.increment('message_dispatched');\n this.queue.push(ctx);\n willDeliver = this.subscribeToDelivery(ctx);\n this.scheduleFlush(0);\n return [2 /*return*/, willDeliver];\n });\n });\n };\n CoreEventQueue.prototype.subscribeToDelivery = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve) {\n var onDeliver = function (flushed, delivered) {\n if (flushed.isSame(ctx)) {\n _this.off('flush', onDeliver);\n if (delivered) {\n resolve(flushed);\n }\n else {\n resolve(flushed);\n }\n }\n };\n _this.on('flush', onDeliver);\n })];\n });\n });\n };\n CoreEventQueue.prototype.dispatchSingle = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n ctx.log('debug', 'Dispatching');\n ctx.stats.increment('message_dispatched');\n this.queue.updateAttempts(ctx);\n ctx.attempts = 1;\n return [2 /*return*/, this.deliver(ctx).catch(function (err) {\n var accepted = _this.enqueuRetry(err, ctx);\n if (!accepted) {\n ctx.setFailedDelivery({ reason: err });\n return ctx;\n }\n return _this.subscribeToDelivery(ctx);\n })];\n });\n });\n };\n CoreEventQueue.prototype.isEmpty = function () {\n return this.queue.length === 0;\n };\n CoreEventQueue.prototype.scheduleFlush = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = 500; }\n if (this.flushing) {\n return;\n }\n this.flushing = true;\n setTimeout(function () {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _this.flush().then(function () {\n setTimeout(function () {\n _this.flushing = false;\n if (_this.queue.length) {\n _this.scheduleFlush(0);\n }\n }, 0);\n });\n }, timeout);\n };\n CoreEventQueue.prototype.deliver = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var start, done, err_2, error;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.criticalTasks.done()];\n case 1:\n _a.sent();\n start = Date.now();\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, this.flushOne(ctx)];\n case 3:\n ctx = _a.sent();\n done = Date.now() - start;\n this.emit('delivery_success', ctx);\n ctx.stats.gauge('delivered', done);\n ctx.log('debug', 'Delivered', ctx.event);\n return [2 /*return*/, ctx];\n case 4:\n err_2 = _a.sent();\n error = err_2;\n ctx.log('error', 'Failed to deliver', error);\n this.emit('delivery_failure', ctx, error);\n ctx.stats.increment('delivery_failed');\n throw err_2;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n CoreEventQueue.prototype.enqueuRetry = function (err, ctx) {\n var retriable = !(err instanceof ContextCancelation) || err.retry;\n if (!retriable) {\n return false;\n }\n return this.queue.pushWithBackoff(ctx);\n };\n CoreEventQueue.prototype.flush = function () {\n return __awaiter(this, void 0, void 0, function () {\n var ctx, err_3, accepted;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.queue.length === 0) {\n return [2 /*return*/, []];\n }\n ctx = this.queue.pop();\n if (!ctx) {\n return [2 /*return*/, []];\n }\n ctx.attempts = this.queue.getAttempts(ctx);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.deliver(ctx)];\n case 2:\n ctx = _a.sent();\n this.emit('flush', ctx, true);\n return [3 /*break*/, 4];\n case 3:\n err_3 = _a.sent();\n accepted = this.enqueuRetry(err_3, ctx);\n if (!accepted) {\n ctx.setFailedDelivery({ reason: err_3 });\n this.emit('flush', ctx, false);\n }\n return [2 /*return*/, []];\n case 4: return [2 /*return*/, [ctx]];\n }\n });\n });\n };\n CoreEventQueue.prototype.isReady = function () {\n // return this.plugins.every((p) => p.isLoaded())\n // should we wait for every plugin to load?\n return true;\n };\n CoreEventQueue.prototype.availableExtensions = function (denyList) {\n var available = this.plugins.filter(function (p) {\n var _a, _b, _c;\n // Only filter out destination plugins or the Segment.io plugin\n if (p.type !== 'destination' && p.name !== 'Segment.io') {\n return true;\n }\n var alternativeNameMatch = undefined;\n (_a = p.alternativeNames) === null || _a === void 0 ? void 0 : _a.forEach(function (name) {\n if (denyList[name] !== undefined) {\n alternativeNameMatch = denyList[name];\n }\n });\n // Explicit integration option takes precedence, `All: false` does not apply to Segment.io\n return ((_c = (_b = denyList[p.name]) !== null && _b !== void 0 ? _b : alternativeNameMatch) !== null && _c !== void 0 ? _c : (p.name === 'Segment.io' ? true : denyList.All) !== false);\n });\n var _a = groupBy(available, 'type'), _b = _a.before, before = _b === void 0 ? [] : _b, _c = _a.enrichment, enrichment = _c === void 0 ? [] : _c, _d = _a.destination, destination = _d === void 0 ? [] : _d, _e = _a.after, after = _e === void 0 ? [] : _e;\n return {\n before: before,\n enrichment: enrichment,\n destinations: destination,\n after: after,\n };\n };\n CoreEventQueue.prototype.flushOne = function (ctx) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function () {\n var _c, before, enrichment, _i, before_1, beforeWare, temp, _d, enrichment_1, enrichmentWare, temp, _e, destinations, after, afterCalls;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n if (!this.isReady()) {\n throw new Error('Not ready');\n }\n if (ctx.attempts > 1) {\n this.emit('delivery_retry', ctx);\n }\n _c = this.availableExtensions((_a = ctx.event.integrations) !== null && _a !== void 0 ? _a : {}), before = _c.before, enrichment = _c.enrichment;\n _i = 0, before_1 = before;\n _f.label = 1;\n case 1:\n if (!(_i < before_1.length)) return [3 /*break*/, 4];\n beforeWare = before_1[_i];\n return [4 /*yield*/, ensure(ctx, beforeWare)];\n case 2:\n temp = _f.sent();\n if (temp instanceof CoreContext) {\n ctx = temp;\n }\n this.emit('message_enriched', ctx, beforeWare);\n _f.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4:\n _d = 0, enrichment_1 = enrichment;\n _f.label = 5;\n case 5:\n if (!(_d < enrichment_1.length)) return [3 /*break*/, 8];\n enrichmentWare = enrichment_1[_d];\n return [4 /*yield*/, attempt(ctx, enrichmentWare)];\n case 6:\n temp = _f.sent();\n if (temp instanceof CoreContext) {\n ctx = temp;\n }\n this.emit('message_enriched', ctx, enrichmentWare);\n _f.label = 7;\n case 7:\n _d++;\n return [3 /*break*/, 5];\n case 8:\n _e = this.availableExtensions((_b = ctx.event.integrations) !== null && _b !== void 0 ? _b : {}), destinations = _e.destinations, after = _e.after;\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n setTimeout(function () {\n var attempts = destinations.map(function (destination) {\n return attempt(ctx, destination);\n });\n Promise.all(attempts).then(resolve).catch(reject);\n }, 0);\n })];\n case 9:\n _f.sent();\n ctx.stats.increment('message_delivered');\n this.emit('message_delivered', ctx);\n afterCalls = after.map(function (after) { return attempt(ctx, after); });\n return [4 /*yield*/, Promise.all(afterCalls)];\n case 10:\n _f.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n return CoreEventQueue;\n}(Emitter));\nexport { CoreEventQueue };\n//# sourceMappingURL=event-queue.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { invokeCallback } from '../callback';\n/* The amount of time in ms to wait before invoking the callback. */\nexport var getDelay = function (startTimeInEpochMS, timeoutInMS) {\n var elapsedTime = Date.now() - startTimeInEpochMS;\n // increasing the timeout increases the delay by almost the same amount -- this is weird legacy behavior.\n return Math.max((timeoutInMS !== null && timeoutInMS !== void 0 ? timeoutInMS : 300) - elapsedTime, 0);\n};\n/**\n * Push an event into the dispatch queue and invoke any callbacks.\n *\n * @param event - Segment event to enqueue.\n * @param queue - Queue to dispatch against.\n * @param emitter - This is typically an instance of \"Analytics\" -- used for metrics / progress information.\n * @param options\n */\nexport function dispatch(ctx, queue, emitter, options) {\n return __awaiter(this, void 0, void 0, function () {\n var startTime, dispatched;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n emitter.emit('dispatch_start', ctx);\n startTime = Date.now();\n if (!queue.isEmpty()) return [3 /*break*/, 2];\n return [4 /*yield*/, queue.dispatchSingle(ctx)];\n case 1:\n dispatched = _a.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, queue.dispatch(ctx)];\n case 3:\n dispatched = _a.sent();\n _a.label = 4;\n case 4:\n if (!(options === null || options === void 0 ? void 0 : options.callback)) return [3 /*break*/, 6];\n return [4 /*yield*/, invokeCallback(dispatched, options.callback, getDelay(startTime, options.timeout))];\n case 5:\n dispatched = _a.sent();\n _a.label = 6;\n case 6:\n if (options === null || options === void 0 ? void 0 : options.debug) {\n dispatched.flush();\n }\n return [2 /*return*/, dispatched];\n }\n });\n });\n}\n//# sourceMappingURL=dispatch.js.map","import { isFunction, isPlainObject, isString, isNumber, } from '@segment/analytics-core';\n/**\n * Helper for the track method\n */\nexport function resolveArguments(eventName, properties, options, callback) {\n var _a;\n var args = [eventName, properties, options, callback];\n var name = isPlainObject(eventName) ? eventName.event : eventName;\n if (!name || !isString(name)) {\n throw new Error('Event missing');\n }\n var data = isPlainObject(eventName)\n ? (_a = eventName.properties) !== null && _a !== void 0 ? _a : {}\n : isPlainObject(properties)\n ? properties\n : {};\n var opts = {};\n if (!isFunction(options)) {\n opts = options !== null && options !== void 0 ? options : {};\n }\n if (isPlainObject(eventName) && !isFunction(properties)) {\n opts = properties !== null && properties !== void 0 ? properties : {};\n }\n var cb = args.find(isFunction);\n return [name, data, opts, cb];\n}\n/**\n * Helper for page, screen methods\n */\nexport function resolvePageArguments(category, name, properties, options, callback) {\n var resolvedProperties;\n var resolvedOptions;\n var resolvedCategory = null;\n var resolvedName = null;\n var args = [category, name, properties, options, callback];\n // The legacy logic is basically:\n // - If there is a string, it's the name\n // - If there are two strings, it's category and name\n var strings = args.filter(isString);\n if (strings.length === 1) {\n if (isString(args[1])) {\n resolvedName = args[1];\n resolvedCategory = null;\n }\n else {\n resolvedName = strings[0];\n resolvedCategory = null;\n }\n }\n else if (strings.length === 2) {\n if (typeof args[0] === 'string') {\n resolvedCategory = args[0];\n }\n if (typeof args[1] === 'string') {\n resolvedName = args[1];\n }\n }\n // handle: analytics.page('category', 'name', properties, options, callback)\n var resolvedCallback = args.find(isFunction);\n // handle:\n // - analytics.page('name')\n // - analytics.page('category', 'name')\n // - analytics.page(properties)\n // - analytics.page(properties, options)\n // - analytics.page('name', properties)\n // - analytics.page('name', properties, options)\n // - analytics.page('category', 'name', properties, options)\n // - analytics.page('category', 'name', properties, options, callback)\n // - analytics.page('category', 'name', callback)\n // - analytics.page(callback), etc\n // The legacy logic is basically:\n // - If there is a plain object, it's the properties\n // - If there are two plain objects, it's properties and options\n var objects = args.filter(isPlainObject);\n if (objects.length === 1) {\n if (isPlainObject(args[2])) {\n resolvedOptions = {};\n resolvedProperties = args[2];\n }\n else if (isPlainObject(args[3])) {\n resolvedProperties = {};\n resolvedOptions = args[3];\n }\n else {\n resolvedProperties = objects[0];\n resolvedOptions = {};\n }\n }\n else if (objects.length === 2) {\n resolvedProperties = objects[0];\n resolvedOptions = objects[1];\n }\n return [\n resolvedCategory,\n resolvedName,\n (resolvedProperties !== null && resolvedProperties !== void 0 ? resolvedProperties : (resolvedProperties = {})),\n (resolvedOptions !== null && resolvedOptions !== void 0 ? resolvedOptions : (resolvedOptions = {})),\n resolvedCallback,\n ];\n}\n/**\n * Helper for group, identify methods\n */\nexport var resolveUserArguments = function (user) {\n return function () {\n var _a, _b, _c;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var values = {};\n // It's a stack so it's reversed so that we go through each of the expected arguments\n var orderStack = [\n 'callback',\n 'options',\n 'traits',\n 'id',\n ];\n // Read each argument and eval the possible values here\n for (var _d = 0, args_1 = args; _d < args_1.length; _d++) {\n var arg = args_1[_d];\n var current = orderStack.pop();\n if (current === 'id') {\n if (isString(arg) || isNumber(arg)) {\n values.id = arg.toString();\n continue;\n }\n if (arg === null || arg === undefined) {\n continue;\n }\n // First argument should always be the id, if it is not a valid value we can skip it\n current = orderStack.pop();\n }\n // Traits and Options\n if ((current === 'traits' || current === 'options') &&\n (arg === null || arg === undefined || isPlainObject(arg))) {\n values[current] = arg;\n }\n // Callback\n if (isFunction(arg)) {\n values.callback = arg;\n break; // This is always the last argument\n }\n }\n return [\n (_a = values.id) !== null && _a !== void 0 ? _a : user.id(),\n ((_b = values.traits) !== null && _b !== void 0 ? _b : {}),\n (_c = values.options) !== null && _c !== void 0 ? _c : {},\n values.callback,\n ];\n };\n};\n/**\n * Helper for alias method\n */\nexport function resolveAliasArguments(to, from, options, callback) {\n if (isNumber(to))\n to = to.toString(); // Legacy behaviour - allow integers for alias calls\n if (isNumber(from))\n from = from.toString();\n var args = [to, from, options, callback];\n var _a = args.filter(isString), _b = _a[0], aliasTo = _b === void 0 ? to : _b, _c = _a[1], aliasFrom = _c === void 0 ? null : _c;\n var _d = args.filter(isPlainObject)[0], opts = _d === void 0 ? {} : _d;\n var resolvedCallback = args.find(isFunction);\n return [aliasTo, aliasFrom, opts, resolvedCallback];\n}\n//# sourceMappingURL=index.js.map","export function isBrowser() {\n return typeof window !== 'undefined';\n}\nexport function isServer() {\n return !isBrowser();\n}\n//# sourceMappingURL=index.js.map","import { isBrowser } from '../environment';\nexport function isOnline() {\n if (isBrowser()) {\n return window.navigator.onLine;\n }\n return true;\n}\nexport function isOffline() {\n return !isOnline();\n}\n//# sourceMappingURL=index.js.map","export default function(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||\"get\",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(a())},s.onerror=r,s.withCredentials=\"include\"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null)})}\n//# sourceMappingURL=unfetch.module.js.map\n","// This an imperfect polyfill for globalThis\nexport var getGlobal = function () {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n return null;\n};\n//# sourceMappingURL=get-global.js.map","import unfetch from 'unfetch';\nimport { getGlobal } from './get-global';\n/**\n * Wrapper around native `fetch` containing `unfetch` fallback.\n */\nexport var fetch = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var global = getGlobal();\n return ((global && global.fetch) || unfetch).apply(void 0, args);\n};\n//# sourceMappingURL=fetch.js.map","// This file is generated.\nexport var version = '1.83.0';\n//# sourceMappingURL=version.js.map","export var SEGMENT_API_HOST = 'api.segment.io/v1';\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { fetch } from '../../lib/fetch';\nimport { version } from '../../generated/version';\nimport { getVersionType } from '../../lib/version-type';\nimport { SEGMENT_API_HOST } from '../constants';\nvar createRemoteMetric = function (metric, tags, versionType) {\n var formattedTags = tags.reduce(function (acc, t) {\n var _a = t.split(':'), k = _a[0], v = _a[1];\n acc[k] = v;\n return acc;\n }, {});\n return {\n type: 'Counter',\n metric: metric,\n value: 1,\n tags: __assign(__assign({}, formattedTags), { library: 'analytics.js', library_version: versionType === 'web' ? \"next-\".concat(version) : \"npm:next-\".concat(version) }),\n };\n};\nfunction logError(err) {\n console.error('Error sending segment performance metrics', err);\n}\nvar RemoteMetrics = /** @class */ (function () {\n function RemoteMetrics(options) {\n var _this = this;\n var _a, _b, _c, _d, _e;\n this.host = (_a = options === null || options === void 0 ? void 0 : options.host) !== null && _a !== void 0 ? _a : SEGMENT_API_HOST;\n this.sampleRate = (_b = options === null || options === void 0 ? void 0 : options.sampleRate) !== null && _b !== void 0 ? _b : 1;\n this.flushTimer = (_c = options === null || options === void 0 ? void 0 : options.flushTimer) !== null && _c !== void 0 ? _c : 30 * 1000; /* 30s */\n this.maxQueueSize = (_d = options === null || options === void 0 ? void 0 : options.maxQueueSize) !== null && _d !== void 0 ? _d : 20;\n this.protocol = (_e = options === null || options === void 0 ? void 0 : options.protocol) !== null && _e !== void 0 ? _e : 'https';\n this.queue = [];\n if (this.sampleRate > 0) {\n var flushing_1 = false;\n var run_1 = function () {\n if (flushing_1) {\n return;\n }\n flushing_1 = true;\n _this.flush().catch(logError);\n flushing_1 = false;\n setTimeout(run_1, _this.flushTimer);\n };\n run_1();\n }\n }\n RemoteMetrics.prototype.increment = function (metric, tags) {\n // All metrics are part of an allow list in Tracking API\n if (!metric.includes('analytics_js.')) {\n return;\n }\n // /m doesn't like empty tags\n if (tags.length === 0) {\n return;\n }\n if (Math.random() > this.sampleRate) {\n return;\n }\n if (this.queue.length >= this.maxQueueSize) {\n return;\n }\n var remoteMetric = createRemoteMetric(metric, tags, getVersionType());\n this.queue.push(remoteMetric);\n if (metric.includes('error')) {\n this.flush().catch(logError);\n }\n };\n RemoteMetrics.prototype.flush = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.queue.length <= 0) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, this.send().catch(function (error) {\n logError(error);\n _this.sampleRate = 0;\n })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n RemoteMetrics.prototype.send = function () {\n return __awaiter(this, void 0, void 0, function () {\n var payload, headers, url;\n return __generator(this, function (_a) {\n payload = { series: this.queue };\n this.queue = [];\n headers = { 'Content-Type': 'text/plain' };\n url = \"\".concat(this.protocol, \"://\").concat(this.host, \"/m\");\n return [2 /*return*/, fetch(url, {\n headers: headers,\n body: JSON.stringify(payload),\n method: 'POST',\n })];\n });\n });\n };\n return RemoteMetrics;\n}());\nexport { RemoteMetrics };\n//# sourceMappingURL=remote-metrics.js.map","import { __extends } from \"tslib\";\nimport { CoreStats } from '@segment/analytics-core';\nimport { RemoteMetrics } from './remote-metrics';\nvar remoteMetrics;\nvar Stats = /** @class */ (function (_super) {\n __extends(Stats, _super);\n function Stats() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Stats.initRemoteMetrics = function (options) {\n remoteMetrics = new RemoteMetrics(options);\n };\n Stats.prototype.increment = function (metric, by, tags) {\n _super.prototype.increment.call(this, metric, by, tags);\n remoteMetrics === null || remoteMetrics === void 0 ? void 0 : remoteMetrics.increment(metric, tags !== null && tags !== void 0 ? tags : []);\n };\n return Stats;\n}(CoreStats));\nexport { Stats };\n//# sourceMappingURL=index.js.map","import { __extends } from \"tslib\";\nimport { CoreContext, ContextCancelation, } from '@segment/analytics-core';\nimport { Stats } from '../stats';\nvar Context = /** @class */ (function (_super) {\n __extends(Context, _super);\n function Context(event, id) {\n return _super.call(this, event, id, new Stats()) || this;\n }\n Context.system = function () {\n return new this({ type: 'track', event: 'system' });\n };\n return Context;\n}(CoreContext));\nexport { Context };\nexport { ContextCancelation };\n//# sourceMappingURL=index.js.map","// src/page-context.ts\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase() === \"object\";\n}\nvar BufferedPageContextDiscriminant = \"bpc\";\nvar createBufferedPageContext = function(url, canonicalUrl, search, path, title, referrer) {\n return {\n __t: BufferedPageContextDiscriminant,\n c: canonicalUrl,\n p: path,\n u: url,\n s: search,\n t: title,\n r: referrer\n };\n};\nvar BUFFERED_PAGE_CONTEXT_KEYS = Object.keys(createBufferedPageContext(\"\", \"\", \"\", \"\", \"\", \"\"));\nfunction isBufferedPageContext(bufferedPageCtx) {\n if (!isPlainObject(bufferedPageCtx)) return false;\n if (bufferedPageCtx.__t !== BufferedPageContextDiscriminant) return false;\n for(var k in bufferedPageCtx){\n if (!BUFFERED_PAGE_CONTEXT_KEYS.includes(k)) {\n return false;\n }\n }\n return true;\n}\nvar createCanonicalURL = function(canonicalUrl, searchParams) {\n return canonicalUrl.indexOf(\"?\") > -1 ? canonicalUrl : canonicalUrl + searchParams;\n};\nvar removeHash = function(href) {\n var hashIdx = href.indexOf(\"#\");\n return hashIdx === -1 ? href : href.slice(0, hashIdx);\n};\nvar parseCanonicalPath = function(canonicalUrl) {\n try {\n return new URL(canonicalUrl).pathname;\n } catch (_e) {\n return canonicalUrl[0] === \"/\" ? canonicalUrl : \"/\" + canonicalUrl;\n }\n};\nvar createPageContext = function(param) {\n var canonicalUrl = param.c, pathname = param.p, search = param.s, url = param.u, referrer = param.r, title = param.t;\n var newPath = canonicalUrl ? parseCanonicalPath(canonicalUrl) : pathname;\n var newUrl = canonicalUrl ? createCanonicalURL(canonicalUrl, search) : removeHash(url);\n return {\n path: newPath,\n referrer: referrer,\n search: search,\n title: title,\n url: newUrl\n };\n};\nvar getDefaultBufferedPageContext = function() {\n var c = document.querySelector(\"link[rel='canonical']\");\n return createBufferedPageContext(location.href, c && c.getAttribute(\"href\") || void 0, location.search, location.pathname, document.title, document.referrer);\n};\nvar getDefaultPageContext = function() {\n return createPageContext(getDefaultBufferedPageContext());\n};\nexport { BufferedPageContextDiscriminant, createBufferedPageContext, createPageContext, getDefaultBufferedPageContext, getDefaultPageContext, isBufferedPageContext };\n","import { __spreadArray } from \"tslib\";\n/**\n * @example\n * pick({ 'a': 1, 'b': '2', 'c': 3 }, ['a', 'c'])\n * => { 'a': 1, 'c': 3 }\n */\nexport function pick(object, keys) {\n return Object.assign.apply(Object, __spreadArray([{}], keys.map(function (key) {\n var _a;\n if (object && Object.prototype.hasOwnProperty.call(object, key)) {\n return _a = {}, _a[key] = object[key], _a;\n }\n }), false));\n}\n//# sourceMappingURL=pick.js.map","import { __assign } from \"tslib\";\nimport { pick } from '../../lib/pick';\nimport { getDefaultPageContext } from '@segment/analytics-page-tools';\n/**\n * Augments a segment event with information about the current page.\n * Page information like URL changes frequently, so this is meant to be captured as close to the event call as possible.\n * Things like `userAgent` do not change, so they can be added later in the flow.\n * We prefer not to add this information to this function, as it increases the main bundle size.\n */\nexport var addPageContext = function (event, pageCtx) {\n if (pageCtx === void 0) { pageCtx = getDefaultPageContext(); }\n var evtCtx = event.context; // Context should be set earlier in the flow\n var pageContextFromEventProps;\n if (event.type === 'page') {\n pageContextFromEventProps =\n event.properties && pick(event.properties, Object.keys(pageCtx));\n event.properties = __assign(__assign(__assign({}, pageCtx), event.properties), (event.name ? { name: event.name } : {}));\n }\n evtCtx.page = __assign(__assign(__assign({}, pageCtx), pageContextFromEventProps), evtCtx.page);\n};\n//# sourceMappingURL=add-page-context.js.map","import { __extends } from \"tslib\";\nimport { v4 as uuid } from '@lukeed/uuid';\nimport { addPageContext } from '../page';\nimport { CoreEventFactory } from '@segment/analytics-core';\nexport * from './interfaces';\nvar EventFactory = /** @class */ (function (_super) {\n __extends(EventFactory, _super);\n function EventFactory(user) {\n var _this = _super.call(this, {\n createMessageId: function () { return \"ajs-next-\".concat(Date.now(), \"-\").concat(uuid()); },\n onEventMethodCall: function (_a) {\n var options = _a.options;\n _this.maybeUpdateAnonId(options);\n },\n onFinishedEvent: function (event) {\n _this.addIdentity(event);\n return event;\n },\n }) || this;\n _this.user = user;\n return _this;\n }\n /**\n * Updates the anonymousId *globally* if it's provided in the options.\n * This should generally be done in the identify method, but some customers rely on this.\n */\n EventFactory.prototype.maybeUpdateAnonId = function (options) {\n (options === null || options === void 0 ? void 0 : options.anonymousId) && this.user.anonymousId(options.anonymousId);\n };\n /**\n * add user id / anonymous id to the event\n */\n EventFactory.prototype.addIdentity = function (event) {\n if (this.user.id()) {\n event.userId = this.user.id();\n }\n if (this.user.anonymousId()) {\n event.anonymousId = this.user.anonymousId();\n }\n };\n EventFactory.prototype.track = function (event, properties, options, integrationsOptions, pageCtx) {\n var ev = _super.prototype.track.call(this, event, properties, options, integrationsOptions);\n addPageContext(ev, pageCtx);\n return ev;\n };\n EventFactory.prototype.page = function (category, page, properties, options, integrationsOptions, pageCtx) {\n var ev = _super.prototype.page.call(this, category, page, properties, options, integrationsOptions);\n addPageContext(ev, pageCtx);\n return ev;\n };\n EventFactory.prototype.screen = function (category, screen, properties, options, integrationsOptions, pageCtx) {\n var ev = _super.prototype.screen.call(this, category, screen, properties, options, integrationsOptions);\n addPageContext(ev, pageCtx);\n return ev;\n };\n EventFactory.prototype.identify = function (userId, traits, options, integrationsOptions, pageCtx) {\n var ev = _super.prototype.identify.call(this, userId, traits, options, integrationsOptions);\n addPageContext(ev, pageCtx);\n return ev;\n };\n EventFactory.prototype.group = function (groupId, traits, options, integrationsOptions, pageCtx) {\n var ev = _super.prototype.group.call(this, groupId, traits, options, integrationsOptions);\n addPageContext(ev, pageCtx);\n return ev;\n };\n EventFactory.prototype.alias = function (to, from, options, integrationsOptions, pageCtx) {\n var ev = _super.prototype.alias.call(this, to, from, options, integrationsOptions);\n addPageContext(ev, pageCtx);\n return ev;\n };\n return EventFactory;\n}(CoreEventFactory));\nexport { EventFactory };\n//# sourceMappingURL=index.js.map","export var isDestinationPluginWithAddMiddleware = function (plugin) {\n // FYI: segment's plugin does not currently have an 'addMiddleware' method\n return 'addMiddleware' in plugin && plugin.type === 'destination';\n};\n//# sourceMappingURL=index.js.map","import { __assign, __extends, __spreadArray } from \"tslib\";\nimport { PriorityQueue } from '.';\nimport { Context } from '../../core/context';\nimport { isBrowser } from '../../core/environment';\nvar loc = {\n getItem: function () { },\n setItem: function () { },\n removeItem: function () { },\n};\ntry {\n loc = isBrowser() && window.localStorage ? window.localStorage : loc;\n}\ncatch (err) {\n console.warn('Unable to access localStorage', err);\n}\nfunction persisted(key) {\n var items = loc.getItem(key);\n return (items ? JSON.parse(items) : []).map(function (p) { return new Context(p.event, p.id); });\n}\nfunction persistItems(key, items) {\n var existing = persisted(key);\n var all = __spreadArray(__spreadArray([], items, true), existing, true);\n var merged = all.reduce(function (acc, item) {\n var _a;\n return __assign(__assign({}, acc), (_a = {}, _a[item.id] = item, _a));\n }, {});\n loc.setItem(key, JSON.stringify(Object.values(merged)));\n}\nfunction seen(key) {\n var stored = loc.getItem(key);\n return stored ? JSON.parse(stored) : {};\n}\nfunction persistSeen(key, memory) {\n var stored = seen(key);\n loc.setItem(key, JSON.stringify(__assign(__assign({}, stored), memory)));\n}\nfunction remove(key) {\n loc.removeItem(key);\n}\nvar now = function () { return new Date().getTime(); };\nfunction mutex(key, onUnlock, attempt) {\n if (attempt === void 0) { attempt = 0; }\n var lockTimeout = 50;\n var lockKey = \"persisted-queue:v1:\".concat(key, \":lock\");\n var expired = function (lock) { return new Date().getTime() > lock; };\n var rawLock = loc.getItem(lockKey);\n var lock = rawLock ? JSON.parse(rawLock) : null;\n var allowed = lock === null || expired(lock);\n if (allowed) {\n loc.setItem(lockKey, JSON.stringify(now() + lockTimeout));\n onUnlock();\n loc.removeItem(lockKey);\n return;\n }\n if (!allowed && attempt < 3) {\n setTimeout(function () {\n mutex(key, onUnlock, attempt + 1);\n }, lockTimeout);\n }\n else {\n console.error('Unable to retrieve lock');\n }\n}\nvar PersistedPriorityQueue = /** @class */ (function (_super) {\n __extends(PersistedPriorityQueue, _super);\n function PersistedPriorityQueue(maxAttempts, key) {\n var _this = _super.call(this, maxAttempts, []) || this;\n var itemsKey = \"persisted-queue:v1:\".concat(key, \":items\");\n var seenKey = \"persisted-queue:v1:\".concat(key, \":seen\");\n var saved = [];\n var lastSeen = {};\n mutex(key, function () {\n try {\n saved = persisted(itemsKey);\n lastSeen = seen(seenKey);\n remove(itemsKey);\n remove(seenKey);\n _this.queue = __spreadArray(__spreadArray([], saved, true), _this.queue, true);\n _this.seen = __assign(__assign({}, lastSeen), _this.seen);\n }\n catch (err) {\n console.error(err);\n }\n });\n window.addEventListener('pagehide', function () {\n // we deliberately want to use the less powerful 'pagehide' API to only persist on events where the analytics instance gets destroyed, and not on tab away.\n if (_this.todo > 0) {\n var items_1 = __spreadArray(__spreadArray([], _this.queue, true), _this.future, true);\n try {\n mutex(key, function () {\n persistItems(itemsKey, items_1);\n persistSeen(seenKey, _this.seen);\n });\n }\n catch (err) {\n console.error(err);\n }\n }\n });\n return _this;\n }\n return PersistedPriorityQueue;\n}(PriorityQueue));\nexport { PersistedPriorityQueue };\n//# sourceMappingURL=persisted.js.map","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted';\nimport { CoreEventQueue } from '@segment/analytics-core';\nimport { isOffline } from '../connection';\nvar EventQueue = /** @class */ (function (_super) {\n __extends(EventQueue, _super);\n function EventQueue(nameOrQueue) {\n return _super.call(this, typeof nameOrQueue === 'string'\n ? new PersistedPriorityQueue(4, nameOrQueue)\n : nameOrQueue) || this;\n }\n EventQueue.prototype.flush = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (isOffline())\n return [2 /*return*/, []];\n return [2 /*return*/, _super.prototype.flush.call(this)];\n });\n });\n };\n return EventQueue;\n}(CoreEventQueue));\nexport { EventQueue };\n//# sourceMappingURL=event-queue.js.map","export default function bindAll(obj) {\n var proto = obj.constructor.prototype;\n for (var _i = 0, _a = Object.getOwnPropertyNames(proto); _i < _a.length; _i++) {\n var key = _a[_i];\n if (key !== 'constructor') {\n var desc = Object.getOwnPropertyDescriptor(obj.constructor.prototype, key);\n if (!!desc && typeof desc.value === 'function') {\n obj[key] = obj[key].bind(obj);\n }\n }\n }\n return obj;\n}\n//# sourceMappingURL=bind-all.js.map","/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n","import cookie from 'js-cookie';\n/**\n * Levels returns all levels of the given url.\n *\n * @param {string} url\n * @return {Array}\n * @api public\n */\nfunction levels(url) {\n var host = url.hostname;\n var parts = host.split('.');\n var last = parts[parts.length - 1];\n var levels = [];\n // Ip address.\n if (parts.length === 4 && parseInt(last, 10) > 0) {\n return levels;\n }\n // Localhost.\n if (parts.length <= 1) {\n return levels;\n }\n // Create levels.\n for (var i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n return levels;\n}\nfunction parseUrl(url) {\n try {\n return new URL(url);\n }\n catch (_a) {\n return;\n }\n}\nexport function tld(url) {\n var parsedUrl = parseUrl(url);\n if (!parsedUrl)\n return;\n var lvls = levels(parsedUrl);\n // Lookup the real top level one.\n for (var i = 0; i < lvls.length; ++i) {\n var cname = '__tld__';\n var domain = lvls[i];\n var opts = { domain: '.' + domain };\n try {\n // cookie access throw an error if the library is ran inside a sandboxed environment (e.g. sandboxed iframe)\n cookie.set(cname, '1', opts);\n if (cookie.get(cname)) {\n cookie.remove(cname, opts);\n return domain;\n }\n }\n catch (_) {\n return;\n }\n }\n}\n//# sourceMappingURL=tld.js.map","import { __assign } from \"tslib\";\nimport jar from 'js-cookie';\nimport { tld } from '../user/tld';\nvar ONE_YEAR = 365;\n/**\n * Data storage using browser cookies\n */\nvar CookieStorage = /** @class */ (function () {\n function CookieStorage(options) {\n if (options === void 0) { options = CookieStorage.defaults; }\n this.options = __assign(__assign({}, CookieStorage.defaults), options);\n }\n Object.defineProperty(CookieStorage, \"defaults\", {\n get: function () {\n return {\n maxage: ONE_YEAR,\n domain: tld(window.location.href),\n path: '/',\n sameSite: 'Lax',\n };\n },\n enumerable: false,\n configurable: true\n });\n CookieStorage.prototype.opts = function () {\n return {\n sameSite: this.options.sameSite,\n expires: this.options.maxage,\n domain: this.options.domain,\n path: this.options.path,\n secure: this.options.secure,\n };\n };\n CookieStorage.prototype.get = function (key) {\n var _a;\n try {\n var value = jar.get(key);\n if (value === undefined || value === null) {\n return null;\n }\n try {\n return (_a = JSON.parse(value)) !== null && _a !== void 0 ? _a : null;\n }\n catch (e) {\n return (value !== null && value !== void 0 ? value : null);\n }\n }\n catch (e) {\n return null;\n }\n };\n CookieStorage.prototype.set = function (key, value) {\n if (typeof value === 'string') {\n jar.set(key, value, this.opts());\n }\n else if (value === null) {\n jar.remove(key, this.opts());\n }\n else {\n jar.set(key, JSON.stringify(value), this.opts());\n }\n };\n CookieStorage.prototype.remove = function (key) {\n return jar.remove(key, this.opts());\n };\n return CookieStorage;\n}());\nexport { CookieStorage };\n//# sourceMappingURL=cookieStorage.js.map","/**\n * Data storage using browser's localStorage\n */\nvar LocalStorage = /** @class */ (function () {\n function LocalStorage() {\n }\n LocalStorage.prototype.localStorageWarning = function (key, state) {\n console.warn(\"Unable to access \".concat(key, \", localStorage may be \").concat(state));\n };\n LocalStorage.prototype.get = function (key) {\n var _a;\n try {\n var val = localStorage.getItem(key);\n if (val === null) {\n return null;\n }\n try {\n return (_a = JSON.parse(val)) !== null && _a !== void 0 ? _a : null;\n }\n catch (e) {\n return (val !== null && val !== void 0 ? val : null);\n }\n }\n catch (err) {\n this.localStorageWarning(key, 'unavailable');\n return null;\n }\n };\n LocalStorage.prototype.set = function (key, value) {\n try {\n localStorage.setItem(key, JSON.stringify(value));\n }\n catch (_a) {\n this.localStorageWarning(key, 'full');\n }\n };\n LocalStorage.prototype.remove = function (key) {\n try {\n return localStorage.removeItem(key);\n }\n catch (err) {\n this.localStorageWarning(key, 'unavailable');\n }\n };\n return LocalStorage;\n}());\nexport { LocalStorage };\n//# sourceMappingURL=localStorage.js.map","/**\n * Data Storage using in memory object\n */\nvar MemoryStorage = /** @class */ (function () {\n function MemoryStorage() {\n this.cache = {};\n }\n MemoryStorage.prototype.get = function (key) {\n var _a;\n return ((_a = this.cache[key]) !== null && _a !== void 0 ? _a : null);\n };\n MemoryStorage.prototype.set = function (key, value) {\n this.cache[key] = value;\n };\n MemoryStorage.prototype.remove = function (key) {\n delete this.cache[key];\n };\n return MemoryStorage;\n}());\nexport { MemoryStorage };\n//# sourceMappingURL=memoryStorage.js.map","export var StoreType = {\n Cookie: 'cookie',\n LocalStorage: 'localStorage',\n Memory: 'memory',\n};\n//# sourceMappingURL=types.js.map","import { StoreType } from './types';\nexport function isArrayOfStoreType(s) {\n return (s &&\n s.stores &&\n Array.isArray(s.stores) &&\n s.stores.every(function (e) { return Object.values(StoreType).includes(e); }));\n}\nexport function isStoreTypeWithSettings(s) {\n return typeof s === 'object' && s.name !== undefined;\n}\n//# sourceMappingURL=settings.js.map","// not adding to private method because those method names do not get minified atm, and does not use 'this'\nvar _logStoreKeyError = function (store, action, key, err) {\n console.warn(\"\".concat(store.constructor.name, \": Can't \").concat(action, \" key \\\"\").concat(key, \"\\\" | Err: \").concat(err));\n};\n/**\n * Uses multiple storages in a priority list to get/set values in the order they are specified.\n */\nvar UniversalStorage = /** @class */ (function () {\n function UniversalStorage(stores) {\n this.stores = stores;\n }\n UniversalStorage.prototype.get = function (key) {\n var val = null;\n for (var _i = 0, _a = this.stores; _i < _a.length; _i++) {\n var store = _a[_i];\n try {\n val = store.get(key);\n if (val !== undefined && val !== null) {\n return val;\n }\n }\n catch (e) {\n _logStoreKeyError(store, 'get', key, e);\n }\n }\n return null;\n };\n UniversalStorage.prototype.set = function (key, value) {\n this.stores.forEach(function (store) {\n try {\n store.set(key, value);\n }\n catch (e) {\n _logStoreKeyError(store, 'set', key, e);\n }\n });\n };\n UniversalStorage.prototype.clear = function (key) {\n this.stores.forEach(function (store) {\n try {\n store.remove(key);\n }\n catch (e) {\n _logStoreKeyError(store, 'remove', key, e);\n }\n });\n };\n /*\n This is to support few scenarios where:\n - value exist in one of the stores ( as a result of other stores being cleared from browser ) and we want to resync them\n - read values in AJS 1.0 format ( for customers after 1.0 --> 2.0 migration ) and then re-write them in AJS 2.0 format\n */\n UniversalStorage.prototype.getAndSync = function (key) {\n var val = this.get(key);\n // legacy behavior, getAndSync can change the type of a value from number to string (AJS 1.0 stores numerical values as a number)\n var coercedValue = (typeof val === 'number' ? val.toString() : val);\n this.set(key, coercedValue);\n return coercedValue;\n };\n return UniversalStorage;\n}());\nexport { UniversalStorage };\n//# sourceMappingURL=universalStorage.js.map","import { CookieStorage } from './cookieStorage';\nimport { LocalStorage } from './localStorage';\nimport { MemoryStorage } from './memoryStorage';\nimport { isStoreTypeWithSettings } from './settings';\nimport { StoreType } from './types';\nexport * from './types';\nexport * from './localStorage';\nexport * from './cookieStorage';\nexport * from './memoryStorage';\nexport * from './universalStorage';\nexport * from './settings';\n/**\n * Creates multiple storage systems from an array of StoreType and options\n * @param args StoreType and options\n * @returns Storage array\n */\nexport function initializeStorages(args) {\n var storages = args.map(function (s) {\n var type;\n var settings;\n if (isStoreTypeWithSettings(s)) {\n type = s.name;\n settings = s.settings;\n }\n else {\n type = s;\n }\n switch (type) {\n case StoreType.Cookie:\n return new CookieStorage(settings);\n case StoreType.LocalStorage:\n return new LocalStorage();\n case StoreType.Memory:\n return new MemoryStorage();\n default:\n throw new Error(\"Unknown Store Type: \".concat(s));\n }\n });\n return storages;\n}\n/**\n * Injects the CookieOptions into a the arguments for initializeStorage\n * @param storeTypes list of storeType\n * @param cookieOptions cookie Options\n * @returns arguments for initializeStorage\n */\nexport function applyCookieOptions(storeTypes, cookieOptions) {\n return storeTypes.map(function (s) {\n if (cookieOptions && s === StoreType.Cookie) {\n return {\n name: s,\n settings: cookieOptions,\n };\n }\n return s;\n });\n}\n//# sourceMappingURL=index.js.map","import { __assign, __extends } from \"tslib\";\nimport { v4 as uuid } from '@lukeed/uuid';\nimport autoBind from '../../lib/bind-all';\nimport { UniversalStorage, MemoryStorage, StoreType, applyCookieOptions, initializeStorages, isArrayOfStoreType, } from '../storage';\nvar defaults = {\n persist: true,\n cookie: {\n key: 'ajs_user_id',\n oldKey: 'ajs_user',\n },\n localStorage: {\n key: 'ajs_user_traits',\n },\n};\nvar User = /** @class */ (function () {\n function User(options, cookieOptions) {\n if (options === void 0) { options = defaults; }\n var _this = this;\n var _a, _b, _c, _d;\n this.options = {};\n this.id = function (id) {\n if (_this.options.disable) {\n return null;\n }\n var prevId = _this.identityStore.getAndSync(_this.idKey);\n if (id !== undefined) {\n _this.identityStore.set(_this.idKey, id);\n var changingIdentity = id !== prevId && prevId !== null && id !== null;\n if (changingIdentity) {\n _this.anonymousId(null);\n }\n }\n var retId = _this.identityStore.getAndSync(_this.idKey);\n if (retId)\n return retId;\n var retLeg = _this.legacyUserStore.get(defaults.cookie.oldKey);\n return retLeg ? (typeof retLeg === 'object' ? retLeg.id : retLeg) : null;\n };\n this.anonymousId = function (id) {\n var _a, _b;\n if (_this.options.disable) {\n return null;\n }\n if (id === undefined) {\n var val = (_a = _this.identityStore.getAndSync(_this.anonKey)) !== null && _a !== void 0 ? _a : (_b = _this.legacySIO()) === null || _b === void 0 ? void 0 : _b[0];\n if (val) {\n return val;\n }\n }\n if (id === null) {\n _this.identityStore.set(_this.anonKey, null);\n return _this.identityStore.getAndSync(_this.anonKey);\n }\n _this.identityStore.set(_this.anonKey, id !== null && id !== void 0 ? id : uuid());\n return _this.identityStore.getAndSync(_this.anonKey);\n };\n this.traits = function (traits) {\n var _a;\n if (_this.options.disable) {\n return;\n }\n if (traits === null) {\n traits = {};\n }\n if (traits) {\n _this.traitsStore.set(_this.traitsKey, traits !== null && traits !== void 0 ? traits : {});\n }\n return (_a = _this.traitsStore.get(_this.traitsKey)) !== null && _a !== void 0 ? _a : {};\n };\n this.options = __assign(__assign({}, defaults), options);\n this.cookieOptions = cookieOptions;\n this.idKey = (_b = (_a = options.cookie) === null || _a === void 0 ? void 0 : _a.key) !== null && _b !== void 0 ? _b : defaults.cookie.key;\n this.traitsKey = (_d = (_c = options.localStorage) === null || _c === void 0 ? void 0 : _c.key) !== null && _d !== void 0 ? _d : defaults.localStorage.key;\n this.anonKey = 'ajs_anonymous_id';\n this.identityStore = this.createStorage(this.options, cookieOptions);\n // using only cookies for legacy user store\n this.legacyUserStore = this.createStorage(this.options, cookieOptions, function (s) { return s === StoreType.Cookie; });\n // using only localStorage / memory for traits store\n this.traitsStore = this.createStorage(this.options, cookieOptions, function (s) { return s !== StoreType.Cookie; });\n var legacyUser = this.legacyUserStore.get(defaults.cookie.oldKey);\n if (legacyUser && typeof legacyUser === 'object') {\n legacyUser.id && this.id(legacyUser.id);\n legacyUser.traits && this.traits(legacyUser.traits);\n }\n autoBind(this);\n }\n User.prototype.legacySIO = function () {\n var val = this.legacyUserStore.get('_sio');\n if (!val) {\n return null;\n }\n var _a = val.split('----'), anon = _a[0], user = _a[1];\n return [anon, user];\n };\n User.prototype.identify = function (id, traits) {\n if (this.options.disable) {\n return;\n }\n traits = traits !== null && traits !== void 0 ? traits : {};\n var currentId = this.id();\n if (currentId === null || currentId === id) {\n traits = __assign(__assign({}, this.traits()), traits);\n }\n if (id) {\n this.id(id);\n }\n this.traits(traits);\n };\n User.prototype.logout = function () {\n this.anonymousId(null);\n this.id(null);\n this.traits({});\n };\n User.prototype.reset = function () {\n this.logout();\n this.identityStore.clear(this.idKey);\n this.identityStore.clear(this.anonKey);\n this.traitsStore.clear(this.traitsKey);\n };\n User.prototype.load = function () {\n return new User(this.options, this.cookieOptions);\n };\n User.prototype.save = function () {\n return true;\n };\n /**\n * Creates the right storage system applying all the user options, cookie options and particular filters\n * @param options UserOptions\n * @param cookieOpts CookieOptions\n * @param filterStores filter function to apply to any StoreTypes (skipped if options specify using a custom storage)\n * @returns a Storage object\n */\n User.prototype.createStorage = function (options, cookieOpts, filterStores) {\n var stores = [\n StoreType.LocalStorage,\n StoreType.Cookie,\n StoreType.Memory,\n ];\n // If disabled we won't have any storage functionality\n if (options.disable) {\n return new UniversalStorage([]);\n }\n // If persistance is disabled we will always fallback to Memory Storage\n if (!options.persist) {\n return new UniversalStorage([new MemoryStorage()]);\n }\n if (options.storage !== undefined && options.storage !== null) {\n if (isArrayOfStoreType(options.storage)) {\n // If the user only specified order of stores we will still apply filters and transformations e.g. not using localStorage if localStorageFallbackDisabled\n stores = options.storage.stores;\n }\n }\n // Disable LocalStorage\n if (options.localStorageFallbackDisabled) {\n stores = stores.filter(function (s) { return s !== StoreType.LocalStorage; });\n }\n // Apply Additional filters\n if (filterStores) {\n stores = stores.filter(filterStores);\n }\n return new UniversalStorage(initializeStorages(applyCookieOptions(stores, cookieOpts)));\n };\n User.defaults = defaults;\n return User;\n}());\nexport { User };\nvar groupDefaults = {\n persist: true,\n cookie: {\n key: 'ajs_group_id',\n },\n localStorage: {\n key: 'ajs_group_properties',\n },\n};\nvar Group = /** @class */ (function (_super) {\n __extends(Group, _super);\n function Group(options, cookie) {\n if (options === void 0) { options = groupDefaults; }\n var _this = _super.call(this, __assign(__assign({}, groupDefaults), options), cookie) || this;\n _this.anonymousId = function (_id) {\n return undefined;\n };\n autoBind(_this);\n return _this;\n }\n return Group;\n}(User));\nexport { Group };\n//# sourceMappingURL=index.js.map","/**\n * Stores the global window analytics key\n */\nvar _globalAnalyticsKey = 'analytics';\n/**\n * Gets the global analytics/buffer\n * @param key name of the window property where the buffer is stored (default: analytics)\n * @returns AnalyticsSnippet\n */\nexport function getGlobalAnalytics() {\n return window[_globalAnalyticsKey];\n}\n/**\n * Replaces the global window key for the analytics/buffer object\n * @param key key name\n */\nexport function setGlobalAnalyticsKey(key) {\n _globalAnalyticsKey = key;\n}\n/**\n * Sets the global analytics object\n * @param analytics analytics snippet\n */\nexport function setGlobalAnalytics(analytics) {\n ;\n window[_globalAnalyticsKey] = analytics;\n}\n//# sourceMappingURL=global-analytics-helper.js.map","/**\n * Check if thenable\n * (instanceof Promise doesn't respect realms)\n */\nexport var isThenable = function (value) {\n return typeof value === 'object' &&\n value !== null &&\n 'then' in value &&\n typeof value.then === 'function';\n};\n//# sourceMappingURL=is-thenable.js.map","import { __awaiter, __generator, __spreadArray } from \"tslib\";\nimport { isThenable } from '../../lib/is-thenable';\nimport { version } from '../../generated/version';\nimport { getGlobalAnalytics } from '../../lib/global-analytics-helper';\nimport { isBufferedPageContext, getDefaultBufferedPageContext, createPageContext, } from '../page';\nimport { getVersionType } from '../../lib/version-type';\nvar flushSyncAnalyticsCalls = function (name, analytics, buffer) {\n buffer.getAndRemove(name).forEach(function (c) {\n // While the underlying methods are synchronous, the callAnalyticsMethod returns a promise,\n // which normalizes success and error states between async and non-async methods, with no perf penalty.\n callAnalyticsMethod(analytics, c).catch(console.error);\n });\n};\nexport var flushAddSourceMiddleware = function (analytics, buffer) { return __awaiter(void 0, void 0, void 0, function () {\n var _i, _a, c;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _i = 0, _a = buffer.getAndRemove('addSourceMiddleware');\n _b.label = 1;\n case 1:\n if (!(_i < _a.length)) return [3 /*break*/, 4];\n c = _a[_i];\n return [4 /*yield*/, callAnalyticsMethod(analytics, c).catch(console.error)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4: return [2 /*return*/];\n }\n });\n}); };\n/**\n * Flush register plugin\n */\nexport var flushRegister = function (analytics, buffer) { return __awaiter(void 0, void 0, void 0, function () {\n var _i, _a, c;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _i = 0, _a = buffer.getAndRemove('register');\n _b.label = 1;\n case 1:\n if (!(_i < _a.length)) return [3 /*break*/, 4];\n c = _a[_i];\n return [4 /*yield*/, callAnalyticsMethod(analytics, c).catch(console.error)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4: return [2 /*return*/];\n }\n });\n}); };\nexport var flushOn = flushSyncAnalyticsCalls.bind(this, 'on');\nexport var flushSetAnonymousID = flushSyncAnalyticsCalls.bind(this, 'setAnonymousId');\nexport var flushAnalyticsCallsInNewTask = function (analytics, buffer) {\n ;\n Object.keys(buffer.calls).forEach(function (m) {\n buffer.getAndRemove(m).forEach(function (c) {\n // No one remembers why this event loop optimization is/was neccessary. Lost to history.\n setTimeout(function () {\n callAnalyticsMethod(analytics, c).catch(console.error);\n }, 0);\n });\n });\n};\nexport var popPageContext = function (args) {\n if (hasBufferedPageContextAsLastArg(args)) {\n var ctx = args.pop();\n return createPageContext(ctx);\n }\n};\nexport var hasBufferedPageContextAsLastArg = function (args) {\n var lastArg = args[args.length - 1];\n return isBufferedPageContext(lastArg);\n};\n/**\n * Represents a buffered method call that occurred before initialization.\n */\nvar PreInitMethodCall = /** @class */ (function () {\n function PreInitMethodCall(method, args, resolve, reject) {\n if (resolve === void 0) { resolve = function () { }; }\n if (reject === void 0) { reject = console.error; }\n this.method = method;\n this.resolve = resolve;\n this.reject = reject;\n this.called = false;\n this.args = args;\n }\n return PreInitMethodCall;\n}());\nexport { PreInitMethodCall };\n/**\n * Represents any and all the buffered method calls that occurred before initialization.\n */\nvar PreInitMethodCallBuffer = /** @class */ (function () {\n function PreInitMethodCallBuffer() {\n var calls = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n calls[_i] = arguments[_i];\n }\n this._callMap = {};\n this.add.apply(this, calls);\n }\n Object.defineProperty(PreInitMethodCallBuffer.prototype, \"calls\", {\n /**\n * Pull any buffered method calls from the window object, and use them to hydrate the instance buffer.\n */\n get: function () {\n this._pushSnippetWindowBuffer();\n return this._callMap;\n },\n set: function (calls) {\n this._callMap = calls;\n },\n enumerable: false,\n configurable: true\n });\n PreInitMethodCallBuffer.prototype.get = function (methodName) {\n var _a;\n return ((_a = this.calls[methodName]) !== null && _a !== void 0 ? _a : []);\n };\n /**\n * Get all buffered method calls for a given method name, and clear them from the buffer.\n */\n PreInitMethodCallBuffer.prototype.getAndRemove = function (methodName) {\n var calls = this.get(methodName);\n this.calls[methodName] = [];\n return calls;\n };\n PreInitMethodCallBuffer.prototype.add = function () {\n var _this = this;\n var calls = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n calls[_i] = arguments[_i];\n }\n calls.forEach(function (call) {\n var eventsExpectingPageContext = [\n 'track',\n 'screen',\n 'alias',\n 'group',\n 'page',\n 'identify',\n ];\n if (eventsExpectingPageContext.includes(call.method) &&\n !hasBufferedPageContextAsLastArg(call.args)) {\n call.args = __spreadArray(__spreadArray([], call.args, true), [getDefaultBufferedPageContext()], false);\n }\n if (_this.calls[call.method]) {\n _this.calls[call.method].push(call);\n }\n else {\n _this.calls[call.method] = [call];\n }\n });\n };\n PreInitMethodCallBuffer.prototype.clear = function () {\n // clear calls in the global snippet buffered array.\n this._pushSnippetWindowBuffer();\n // clear calls in this instance\n this.calls = {};\n };\n PreInitMethodCallBuffer.prototype.toArray = function () {\n var _a;\n return (_a = []).concat.apply(_a, Object.values(this.calls));\n };\n /**\n * Fetch the buffered method calls from the window object,\n * normalize them, and use them to hydrate the buffer.\n * This removes existing buffered calls from the window object.\n */\n PreInitMethodCallBuffer.prototype._pushSnippetWindowBuffer = function () {\n // if this is the npm version, we don't want to read from the window object.\n // This avoids namespace conflicts if there is a seperate analytics library on the page.\n if (getVersionType() === 'npm') {\n return undefined;\n }\n var wa = getGlobalAnalytics();\n if (!Array.isArray(wa))\n return undefined;\n var buffered = wa.splice(0, wa.length);\n var calls = buffered.map(function (_a) {\n var methodName = _a[0], args = _a.slice(1);\n return new PreInitMethodCall(methodName, args);\n });\n this.add.apply(this, calls);\n };\n return PreInitMethodCallBuffer;\n}());\nexport { PreInitMethodCallBuffer };\n/**\n * Call method and mark as \"called\"\n * This function should never throw an error\n */\nexport function callAnalyticsMethod(analytics, call) {\n return __awaiter(this, void 0, void 0, function () {\n var result, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n if (call.called) {\n return [2 /*return*/, undefined];\n }\n call.called = true;\n result = analytics[call.method].apply(analytics, call.args);\n if (!isThenable(result)) return [3 /*break*/, 2];\n // do not defer for non-async methods\n return [4 /*yield*/, result];\n case 1:\n // do not defer for non-async methods\n _a.sent();\n _a.label = 2;\n case 2:\n call.resolve(result);\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n call.reject(err_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n}\nvar AnalyticsBuffered = /** @class */ (function () {\n function AnalyticsBuffered(loader) {\n var _this = this;\n this.trackSubmit = this._createMethod('trackSubmit');\n this.trackClick = this._createMethod('trackClick');\n this.trackLink = this._createMethod('trackLink');\n this.pageView = this._createMethod('pageview');\n this.identify = this._createMethod('identify');\n this.reset = this._createMethod('reset');\n this.group = this._createMethod('group');\n this.track = this._createMethod('track');\n this.ready = this._createMethod('ready');\n this.alias = this._createMethod('alias');\n this.debug = this._createChainableMethod('debug');\n this.page = this._createMethod('page');\n this.once = this._createChainableMethod('once');\n this.off = this._createChainableMethod('off');\n this.on = this._createChainableMethod('on');\n this.addSourceMiddleware = this._createMethod('addSourceMiddleware');\n this.setAnonymousId = this._createMethod('setAnonymousId');\n this.addDestinationMiddleware = this._createMethod('addDestinationMiddleware');\n this.screen = this._createMethod('screen');\n this.register = this._createMethod('register');\n this.deregister = this._createMethod('deregister');\n this.user = this._createMethod('user');\n this.VERSION = version;\n this._preInitBuffer = new PreInitMethodCallBuffer();\n this._promise = loader(this._preInitBuffer);\n this._promise\n .then(function (_a) {\n var ajs = _a[0], ctx = _a[1];\n _this.instance = ajs;\n _this.ctx = ctx;\n })\n .catch(function () {\n // intentionally do nothing...\n // this result of this promise will be caught by the 'catch' block on this class.\n });\n }\n AnalyticsBuffered.prototype.then = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).then.apply(_a, args);\n };\n AnalyticsBuffered.prototype.catch = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).catch.apply(_a, args);\n };\n AnalyticsBuffered.prototype.finally = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).finally.apply(_a, args);\n };\n AnalyticsBuffered.prototype._createMethod = function (methodName) {\n var _this = this;\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this.instance) {\n var result = (_a = _this.instance)[methodName].apply(_a, args);\n return Promise.resolve(result);\n }\n return new Promise(function (resolve, reject) {\n _this._preInitBuffer.add(new PreInitMethodCall(methodName, args, resolve, reject));\n });\n };\n };\n /**\n * These are for methods that where determining when the method gets \"flushed\" is not important.\n * These methods will resolve when analytics is fully initialized, and return type (other than Analytics)will not be available.\n */\n AnalyticsBuffered.prototype._createChainableMethod = function (methodName) {\n var _this = this;\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this.instance) {\n void (_a = _this.instance)[methodName].apply(_a, args);\n return _this;\n }\n else {\n _this._preInitBuffer.add(new PreInitMethodCall(methodName, args));\n }\n return _this;\n };\n };\n return AnalyticsBuffered;\n}());\nexport { AnalyticsBuffered };\n//# sourceMappingURL=index.js.map","\nvar identity = function(_){ return _; };\n\n\n/**\n * Module exports, export\n */\n\nmodule.exports = multiple(find);\nmodule.exports.find = module.exports;\n\n\n/**\n * Export the replacement function, return the modified object\n */\n\nmodule.exports.replace = function (obj, key, val, options) {\n multiple(replace).call(this, obj, key, val, options);\n return obj;\n};\n\n\n/**\n * Export the delete function, return the modified object\n */\n\nmodule.exports.del = function (obj, key, options) {\n multiple(del).call(this, obj, key, null, options);\n return obj;\n};\n\n\n/**\n * Compose applying the function to a nested key\n */\n\nfunction multiple (fn) {\n return function (obj, path, val, options) {\n var normalize = options && isFunction(options.normalizer) ? options.normalizer : defaultNormalize;\n path = normalize(path);\n\n var key;\n var finished = false;\n\n while (!finished) loop();\n\n function loop() {\n for (key in obj) {\n var normalizedKey = normalize(key);\n if (0 === path.indexOf(normalizedKey)) {\n var temp = path.substr(normalizedKey.length);\n if (temp.charAt(0) === '.' || temp.length === 0) {\n path = temp.substr(1);\n var child = obj[key];\n\n // we're at the end and there is nothing.\n if (null == child) {\n finished = true;\n return;\n }\n\n // we're at the end and there is something.\n if (!path.length) {\n finished = true;\n return;\n }\n\n // step into child\n obj = child;\n\n // but we're done here\n return;\n }\n }\n }\n\n key = undefined;\n // if we found no matching properties\n // on the current object, there's no match.\n finished = true;\n }\n\n if (!key) return;\n if (null == obj) return obj;\n\n // the `obj` and `key` is one above the leaf object and key, so\n // start object: { a: { 'b.c': 10 } }\n // end object: { 'b.c': 10 }\n // end key: 'b.c'\n // this way, you can do `obj[key]` and get `10`.\n return fn(obj, key, val);\n };\n}\n\n\n/**\n * Find an object by its key\n *\n * find({ first_name : 'Calvin' }, 'firstName')\n */\n\nfunction find (obj, key) {\n if (obj.hasOwnProperty(key)) return obj[key];\n}\n\n\n/**\n * Delete a value for a given key\n *\n * del({ a : 'b', x : 'y' }, 'X' }) -> { a : 'b' }\n */\n\nfunction del (obj, key) {\n if (obj.hasOwnProperty(key)) delete obj[key];\n return obj;\n}\n\n\n/**\n * Replace an objects existing value with a new one\n *\n * replace({ a : 'b' }, 'a', 'c') -> { a : 'c' }\n */\n\nfunction replace (obj, key, val) {\n if (obj.hasOwnProperty(key)) obj[key] = val;\n return obj;\n}\n\n/**\n * Normalize a `dot.separated.path`.\n *\n * A.HELL(!*&#(!)O_WOR LD.bar => ahelloworldbar\n *\n * @param {String} path\n * @return {String}\n */\n\nfunction defaultNormalize(path) {\n return path.replace(/[^a-zA-Z0-9\\.]+/g, '').toLowerCase();\n}\n\n/**\n * Check if a value is a function.\n *\n * @param {*} val\n * @return {boolean} Returns `true` if `val` is a function, otherwise `false`.\n */\n\nfunction isFunction(val) {\n return typeof val === 'function';\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nfunction trait(a, b) {\n return function () {\n var traits = this.traits();\n var props = this.properties ? this.properties() : {};\n return (obj_case_1.default(traits, \"address.\" + a) ||\n obj_case_1.default(traits, a) ||\n (b ? obj_case_1.default(traits, \"address.\" + b) : null) ||\n (b ? obj_case_1.default(traits, b) : null) ||\n obj_case_1.default(props, \"address.\" + a) ||\n obj_case_1.default(props, a) ||\n (b ? obj_case_1.default(props, \"address.\" + b) : null) ||\n (b ? obj_case_1.default(props, b) : null));\n };\n}\nfunction default_1(proto) {\n proto.zip = trait(\"postalCode\", \"zip\");\n proto.country = trait(\"country\");\n proto.street = trait(\"street\");\n proto.state = trait(\"state\");\n proto.city = trait(\"city\");\n proto.region = trait(\"region\");\n}\nexports.default = default_1;\n//# sourceMappingURL=address.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.clone = void 0;\nfunction clone(properties) {\n if (typeof properties !== 'object')\n return properties;\n if (Object.prototype.toString.call(properties) === '[object Object]') {\n var temp = {};\n for (var key in properties) {\n if (Object.prototype.hasOwnProperty.call(properties, key)) {\n temp[key] = clone(properties[key]);\n }\n }\n return temp;\n }\n else if (Array.isArray(properties)) {\n return properties.map(clone);\n }\n else {\n return properties;\n }\n}\nexports.clone = clone;\n//# sourceMappingURL=clone.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar disabled = {\n Salesforce: true,\n};\nfunction default_1(integration) {\n return !disabled[integration];\n}\nexports.default = default_1;\n//# sourceMappingURL=is-enabled.js.map","'use strict';\n\n/**\n * Matcher, slightly modified from:\n *\n * https://github.com/csnover/js-iso8601/blob/lax/iso8601.js\n */\n\nvar matcher = /^(\\d{4})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:([ T])(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\n\n/**\n * Convert an ISO date string to a date. Fallback to native `Date.parse`.\n *\n * https://github.com/csnover/js-iso8601/blob/lax/iso8601.js\n *\n * @param {String} iso\n * @return {Date}\n */\n\nexports.parse = function(iso) {\n var numericKeys = [1, 5, 6, 7, 11, 12];\n var arr = matcher.exec(iso);\n var offset = 0;\n\n // fallback to native parsing\n if (!arr) {\n return new Date(iso);\n }\n\n /* eslint-disable no-cond-assign */\n // remove undefined values\n for (var i = 0, val; val = numericKeys[i]; i++) {\n arr[val] = parseInt(arr[val], 10) || 0;\n }\n /* eslint-enable no-cond-assign */\n\n // allow undefined days and months\n arr[2] = parseInt(arr[2], 10) || 1;\n arr[3] = parseInt(arr[3], 10) || 1;\n\n // month is 0-11\n arr[2]--;\n\n // allow abitrary sub-second precision\n arr[8] = arr[8] ? (arr[8] + '00').substring(0, 3) : 0;\n\n // apply timezone if one exists\n if (arr[4] === ' ') {\n offset = new Date().getTimezoneOffset();\n } else if (arr[9] !== 'Z' && arr[10]) {\n offset = arr[11] * 60 + arr[12];\n if (arr[10] === '+') {\n offset = 0 - offset;\n }\n }\n\n var millis = Date.UTC(arr[1], arr[2], arr[3], arr[5], arr[6] + offset, arr[7], arr[8]);\n return new Date(millis);\n};\n\n\n/**\n * Checks whether a `string` is an ISO date string. `strict` mode requires that\n * the date string at least have a year, month and date.\n *\n * @param {String} string\n * @param {Boolean} strict\n * @return {Boolean}\n */\n\nexports.is = function(string, strict) {\n if (typeof string !== 'string') {\n return false;\n }\n if (strict && (/^\\d{4}-\\d{2}-\\d{2}/).test(string) === false) {\n return false;\n }\n return matcher.test(string);\n};\n","\"use strict\";\n\n/**\n * Matcher.\n */\n\nvar matcher = /\\d{13}/;\n\n/**\n * Check whether a string is a millisecond date string.\n *\n * @param {string} string\n * @return {boolean}\n */\nexports.is = function (string) {\n return matcher.test(string);\n};\n\n/**\n * Convert a millisecond string to a date.\n *\n * @param {string} millis\n * @return {Date}\n */\nexports.parse = function (millis) {\n millis = parseInt(millis, 10);\n return new Date(millis);\n};\n","\"use strict\";\n\n/**\n * Matcher.\n */\n\nvar matcher = /\\d{10}/;\n\n/**\n * Check whether a string is a second date string.\n *\n * @param {string} string\n * @return {Boolean}\n */\nexports.is = function (string) {\n return matcher.test(string);\n};\n\n/**\n * Convert a second string to a date.\n *\n * @param {string} seconds\n * @return {Date}\n */\nexports.parse = function (seconds) {\n var millis = parseInt(seconds, 10) * 1000;\n return new Date(millis);\n};\n","\"use strict\";\n\nvar isodate = require(\"@segment/isodate\");\nvar milliseconds = require(\"./milliseconds\");\nvar seconds = require(\"./seconds\");\n\nvar objProto = Object.prototype;\nvar toStr = objProto.toString;\n\nfunction isDate(value) {\n return toStr.call(value) === \"[object Date]\";\n}\n\nfunction isNumber(value) {\n return toStr.call(value) === \"[object Number]\";\n}\n\n/**\n * Returns a new Javascript Date object, allowing a variety of extra input types\n * over the native Date constructor.\n *\n * @param {Date|string|number} val\n */\nmodule.exports = function newDate(val) {\n if (isDate(val)) return val;\n if (isNumber(val)) return new Date(toMs(val));\n\n // date strings\n if (isodate.is(val)) {\n return isodate.parse(val);\n }\n if (milliseconds.is(val)) {\n return milliseconds.parse(val);\n }\n if (seconds.is(val)) {\n return seconds.parse(val);\n }\n\n // fallback to Date.parse\n return new Date(val);\n};\n\n/**\n * If the number passed val is seconds from the epoch, turn it into milliseconds.\n * Milliseconds would be greater than 31557600000 (December 31, 1970).\n *\n * @param {number} num\n */\nfunction toMs(num) {\n if (num < 31557600000) return num * 1000;\n return num;\n}\n","'use strict';\n\nvar isodate = require('@segment/isodate');\n\n/**\n * Expose `traverse`.\n */\nmodule.exports = traverse;\n\n/**\n * Recursively traverse an object or array, and convert\n * all ISO date strings parse into Date objects.\n *\n * @param {Object} input - object, array, or string to convert\n * @param {Boolean} strict - only convert strings with year, month, and date\n * @return {Object}\n */\nfunction traverse(input, strict) {\n if (strict === undefined) strict = true;\n if (input && typeof input === 'object') {\n return traverseObject(input, strict);\n } else if (Array.isArray(input)) {\n return traverseArray(input, strict);\n } else if (isodate.is(input, strict)) {\n return isodate.parse(input);\n }\n return input;\n}\n\n/**\n * Object traverser helper function.\n *\n * @param {Object} obj - object to traverse\n * @param {Boolean} strict - only convert strings with year, month, and date\n * @return {Object}\n */\nfunction traverseObject(obj, strict) {\n Object.keys(obj).forEach(function(key) {\n obj[key] = traverse(obj[key], strict);\n });\n return obj;\n}\n\n/**\n * Array traverser helper function\n *\n * @param {Array} arr - array to traverse\n * @param {Boolean} strict - only convert strings with year, month, and date\n * @return {Array}\n */\nfunction traverseArray(arr, strict) {\n arr.forEach(function(value, index) {\n arr[index] = traverse(value, strict);\n });\n return arr;\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Facade = void 0;\nvar address_1 = __importDefault(require(\"./address\"));\nvar clone_1 = require(\"./clone\");\nvar is_enabled_1 = __importDefault(require(\"./is-enabled\"));\nvar new_date_1 = __importDefault(require(\"new-date\"));\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nvar isodate_traverse_1 = __importDefault(require(\"@segment/isodate-traverse\"));\nfunction Facade(obj, opts) {\n opts = opts || {};\n this.raw = clone_1.clone(obj);\n if (!(\"clone\" in opts))\n opts.clone = true;\n if (opts.clone)\n obj = clone_1.clone(obj);\n if (!(\"traverse\" in opts))\n opts.traverse = true;\n if (!(\"timestamp\" in obj))\n obj.timestamp = new Date();\n else\n obj.timestamp = new_date_1.default(obj.timestamp);\n if (opts.traverse)\n isodate_traverse_1.default(obj);\n this.opts = opts;\n this.obj = obj;\n}\nexports.Facade = Facade;\nvar f = Facade.prototype;\nf.proxy = function (field) {\n var fields = field.split(\".\");\n field = fields.shift();\n var obj = this[field] || this.obj[field];\n if (!obj)\n return obj;\n if (typeof obj === \"function\")\n obj = obj.call(this) || {};\n if (fields.length === 0)\n return this.opts.clone ? transform(obj) : obj;\n obj = obj_case_1.default(obj, fields.join(\".\"));\n return this.opts.clone ? transform(obj) : obj;\n};\nf.field = function (field) {\n var obj = this.obj[field];\n return this.opts.clone ? transform(obj) : obj;\n};\nFacade.proxy = function (field) {\n return function () {\n return this.proxy(field);\n };\n};\nFacade.field = function (field) {\n return function () {\n return this.field(field);\n };\n};\nFacade.multi = function (path) {\n return function () {\n var multi = this.proxy(path + \"s\");\n if (Array.isArray(multi))\n return multi;\n var one = this.proxy(path);\n if (one)\n one = [this.opts.clone ? clone_1.clone(one) : one];\n return one || [];\n };\n};\nFacade.one = function (path) {\n return function () {\n var one = this.proxy(path);\n if (one)\n return one;\n var multi = this.proxy(path + \"s\");\n if (Array.isArray(multi))\n return multi[0];\n };\n};\nf.json = function () {\n var ret = this.opts.clone ? clone_1.clone(this.obj) : this.obj;\n if (this.type)\n ret.type = this.type();\n return ret;\n};\nf.rawEvent = function () {\n return this.raw;\n};\nf.options = function (integration) {\n var obj = this.obj.options || this.obj.context || {};\n var options = this.opts.clone ? clone_1.clone(obj) : obj;\n if (!integration)\n return options;\n if (!this.enabled(integration))\n return;\n var integrations = this.integrations();\n var value = integrations[integration] || obj_case_1.default(integrations, integration);\n if (typeof value !== \"object\")\n value = obj_case_1.default(this.options(), integration);\n return typeof value === \"object\" ? value : {};\n};\nf.context = f.options;\nf.enabled = function (integration) {\n var allEnabled = this.proxy(\"options.providers.all\");\n if (typeof allEnabled !== \"boolean\")\n allEnabled = this.proxy(\"options.all\");\n if (typeof allEnabled !== \"boolean\")\n allEnabled = this.proxy(\"integrations.all\");\n if (typeof allEnabled !== \"boolean\")\n allEnabled = true;\n var enabled = allEnabled && is_enabled_1.default(integration);\n var options = this.integrations();\n if (options.providers && options.providers.hasOwnProperty(integration)) {\n enabled = options.providers[integration];\n }\n if (options.hasOwnProperty(integration)) {\n var settings = options[integration];\n if (typeof settings === \"boolean\") {\n enabled = settings;\n }\n else {\n enabled = true;\n }\n }\n return !!enabled;\n};\nf.integrations = function () {\n return (this.obj.integrations || this.proxy(\"options.providers\") || this.options());\n};\nf.active = function () {\n var active = this.proxy(\"options.active\");\n if (active === null || active === undefined)\n active = true;\n return active;\n};\nf.anonymousId = function () {\n return this.field(\"anonymousId\") || this.field(\"sessionId\");\n};\nf.sessionId = f.anonymousId;\nf.groupId = Facade.proxy(\"options.groupId\");\nf.traits = function (aliases) {\n var ret = this.proxy(\"options.traits\") || {};\n var id = this.userId();\n aliases = aliases || {};\n if (id)\n ret.id = id;\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null\n ? this.proxy(\"options.traits.\" + alias)\n : this[alias]();\n if (value == null)\n continue;\n ret[aliases[alias]] = value;\n delete ret[alias];\n }\n }\n return ret;\n};\nf.library = function () {\n var library = this.proxy(\"options.library\");\n if (!library)\n return { name: \"unknown\", version: null };\n if (typeof library === \"string\")\n return { name: library, version: null };\n return library;\n};\nf.device = function () {\n var device = this.proxy(\"context.device\");\n if (typeof device !== \"object\" || device === null) {\n device = {};\n }\n var library = this.library().name;\n if (device.type)\n return device;\n if (library.indexOf(\"ios\") > -1)\n device.type = \"ios\";\n if (library.indexOf(\"android\") > -1)\n device.type = \"android\";\n return device;\n};\nf.userAgent = Facade.proxy(\"context.userAgent\");\nf.timezone = Facade.proxy(\"context.timezone\");\nf.timestamp = Facade.field(\"timestamp\");\nf.channel = Facade.field(\"channel\");\nf.ip = Facade.proxy(\"context.ip\");\nf.userId = Facade.field(\"userId\");\naddress_1.default(f);\nfunction transform(obj) {\n return clone_1.clone(obj);\n}\n//# sourceMappingURL=facade.js.map","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Alias = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nfunction Alias(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Alias = Alias;\ninherits_1.default(Alias, facade_1.Facade);\nAlias.prototype.action = function () {\n return \"alias\";\n};\nAlias.prototype.type = Alias.prototype.action;\nAlias.prototype.previousId = function () {\n return this.field(\"previousId\") || this.field(\"from\");\n};\nAlias.prototype.from = Alias.prototype.previousId;\nAlias.prototype.userId = function () {\n return this.field(\"userId\") || this.field(\"to\");\n};\nAlias.prototype.to = Alias.prototype.userId;\n//# sourceMappingURL=alias.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar matcher = /.+\\@.+\\..+/;\nfunction isEmail(string) {\n return matcher.test(string);\n}\nexports.default = isEmail;\n//# sourceMappingURL=is-email.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Group = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nvar new_date_1 = __importDefault(require(\"new-date\"));\nvar facade_1 = require(\"./facade\");\nfunction Group(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Group = Group;\ninherits_1.default(Group, facade_1.Facade);\nvar g = Group.prototype;\ng.action = function () {\n return \"group\";\n};\ng.type = g.action;\ng.groupId = facade_1.Facade.field(\"groupId\");\ng.created = function () {\n var created = this.proxy(\"traits.createdAt\") ||\n this.proxy(\"traits.created\") ||\n this.proxy(\"properties.createdAt\") ||\n this.proxy(\"properties.created\");\n if (created)\n return new_date_1.default(created);\n};\ng.email = function () {\n var email = this.proxy(\"traits.email\");\n if (email)\n return email;\n var groupId = this.groupId();\n if (is_email_1.default(groupId))\n return groupId;\n};\ng.traits = function (aliases) {\n var ret = this.properties();\n var id = this.groupId();\n aliases = aliases || {};\n if (id)\n ret.id = id;\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null\n ? this.proxy(\"traits.\" + alias)\n : this[alias]();\n if (value == null)\n continue;\n ret[aliases[alias]] = value;\n delete ret[alias];\n }\n }\n return ret;\n};\ng.name = facade_1.Facade.proxy(\"traits.name\");\ng.industry = facade_1.Facade.proxy(\"traits.industry\");\ng.employees = facade_1.Facade.proxy(\"traits.employees\");\ng.properties = function () {\n return this.field(\"traits\") || this.field(\"properties\") || {};\n};\n//# sourceMappingURL=group.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Identify = void 0;\nvar facade_1 = require(\"./facade\");\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nvar new_date_1 = __importDefault(require(\"new-date\"));\nvar trim = function (str) { return str.trim(); };\nfunction Identify(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Identify = Identify;\ninherits_1.default(Identify, facade_1.Facade);\nvar i = Identify.prototype;\ni.action = function () {\n return \"identify\";\n};\ni.type = i.action;\ni.traits = function (aliases) {\n var ret = this.field(\"traits\") || {};\n var id = this.userId();\n aliases = aliases || {};\n if (id)\n ret.id = id;\n for (var alias in aliases) {\n var value = this[alias] == null ? this.proxy(\"traits.\" + alias) : this[alias]();\n if (value == null)\n continue;\n ret[aliases[alias]] = value;\n if (alias !== aliases[alias])\n delete ret[alias];\n }\n return ret;\n};\ni.email = function () {\n var email = this.proxy(\"traits.email\");\n if (email)\n return email;\n var userId = this.userId();\n if (is_email_1.default(userId))\n return userId;\n};\ni.created = function () {\n var created = this.proxy(\"traits.created\") || this.proxy(\"traits.createdAt\");\n if (created)\n return new_date_1.default(created);\n};\ni.companyCreated = function () {\n var created = this.proxy(\"traits.company.created\") ||\n this.proxy(\"traits.company.createdAt\");\n if (created) {\n return new_date_1.default(created);\n }\n};\ni.companyName = function () {\n return this.proxy(\"traits.company.name\");\n};\ni.name = function () {\n var name = this.proxy(\"traits.name\");\n if (typeof name === \"string\") {\n return trim(name);\n }\n var firstName = this.firstName();\n var lastName = this.lastName();\n if (firstName && lastName) {\n return trim(firstName + \" \" + lastName);\n }\n};\ni.firstName = function () {\n var firstName = this.proxy(\"traits.firstName\");\n if (typeof firstName === \"string\") {\n return trim(firstName);\n }\n var name = this.proxy(\"traits.name\");\n if (typeof name === \"string\") {\n return trim(name).split(\" \")[0];\n }\n};\ni.lastName = function () {\n var lastName = this.proxy(\"traits.lastName\");\n if (typeof lastName === \"string\") {\n return trim(lastName);\n }\n var name = this.proxy(\"traits.name\");\n if (typeof name !== \"string\") {\n return;\n }\n var space = trim(name).indexOf(\" \");\n if (space === -1) {\n return;\n }\n return trim(name.substr(space + 1));\n};\ni.uid = function () {\n return this.userId() || this.username() || this.email();\n};\ni.description = function () {\n return this.proxy(\"traits.description\") || this.proxy(\"traits.background\");\n};\ni.age = function () {\n var date = this.birthday();\n var age = obj_case_1.default(this.traits(), \"age\");\n if (age != null)\n return age;\n if (!(date instanceof Date))\n return;\n var now = new Date();\n return now.getFullYear() - date.getFullYear();\n};\ni.avatar = function () {\n var traits = this.traits();\n return (obj_case_1.default(traits, \"avatar\") || obj_case_1.default(traits, \"photoUrl\") || obj_case_1.default(traits, \"avatarUrl\"));\n};\ni.position = function () {\n var traits = this.traits();\n return obj_case_1.default(traits, \"position\") || obj_case_1.default(traits, \"jobTitle\");\n};\ni.username = facade_1.Facade.proxy(\"traits.username\");\ni.website = facade_1.Facade.one(\"traits.website\");\ni.websites = facade_1.Facade.multi(\"traits.website\");\ni.phone = facade_1.Facade.one(\"traits.phone\");\ni.phones = facade_1.Facade.multi(\"traits.phone\");\ni.address = facade_1.Facade.proxy(\"traits.address\");\ni.gender = facade_1.Facade.proxy(\"traits.gender\");\ni.birthday = facade_1.Facade.proxy(\"traits.birthday\");\n//# sourceMappingURL=identify.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Track = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nvar identify_1 = require(\"./identify\");\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nfunction Track(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Track = Track;\ninherits_1.default(Track, facade_1.Facade);\nvar t = Track.prototype;\nt.action = function () {\n return \"track\";\n};\nt.type = t.action;\nt.event = facade_1.Facade.field(\"event\");\nt.value = facade_1.Facade.proxy(\"properties.value\");\nt.category = facade_1.Facade.proxy(\"properties.category\");\nt.id = facade_1.Facade.proxy(\"properties.id\");\nt.productId = function () {\n return (this.proxy(\"properties.product_id\") || this.proxy(\"properties.productId\"));\n};\nt.promotionId = function () {\n return (this.proxy(\"properties.promotion_id\") ||\n this.proxy(\"properties.promotionId\"));\n};\nt.cartId = function () {\n return this.proxy(\"properties.cart_id\") || this.proxy(\"properties.cartId\");\n};\nt.checkoutId = function () {\n return (this.proxy(\"properties.checkout_id\") || this.proxy(\"properties.checkoutId\"));\n};\nt.paymentId = function () {\n return (this.proxy(\"properties.payment_id\") || this.proxy(\"properties.paymentId\"));\n};\nt.couponId = function () {\n return (this.proxy(\"properties.coupon_id\") || this.proxy(\"properties.couponId\"));\n};\nt.wishlistId = function () {\n return (this.proxy(\"properties.wishlist_id\") || this.proxy(\"properties.wishlistId\"));\n};\nt.reviewId = function () {\n return (this.proxy(\"properties.review_id\") || this.proxy(\"properties.reviewId\"));\n};\nt.orderId = function () {\n return (this.proxy(\"properties.id\") ||\n this.proxy(\"properties.order_id\") ||\n this.proxy(\"properties.orderId\"));\n};\nt.sku = facade_1.Facade.proxy(\"properties.sku\");\nt.tax = facade_1.Facade.proxy(\"properties.tax\");\nt.name = facade_1.Facade.proxy(\"properties.name\");\nt.price = facade_1.Facade.proxy(\"properties.price\");\nt.total = facade_1.Facade.proxy(\"properties.total\");\nt.repeat = facade_1.Facade.proxy(\"properties.repeat\");\nt.coupon = facade_1.Facade.proxy(\"properties.coupon\");\nt.shipping = facade_1.Facade.proxy(\"properties.shipping\");\nt.discount = facade_1.Facade.proxy(\"properties.discount\");\nt.shippingMethod = function () {\n return (this.proxy(\"properties.shipping_method\") ||\n this.proxy(\"properties.shippingMethod\"));\n};\nt.paymentMethod = function () {\n return (this.proxy(\"properties.payment_method\") ||\n this.proxy(\"properties.paymentMethod\"));\n};\nt.description = facade_1.Facade.proxy(\"properties.description\");\nt.plan = facade_1.Facade.proxy(\"properties.plan\");\nt.subtotal = function () {\n var subtotal = obj_case_1.default(this.properties(), \"subtotal\");\n var total = this.total() || this.revenue();\n if (subtotal)\n return subtotal;\n if (!total)\n return 0;\n if (this.total()) {\n var n = this.tax();\n if (n)\n total -= n;\n n = this.shipping();\n if (n)\n total -= n;\n n = this.discount();\n if (n)\n total += n;\n }\n return total;\n};\nt.products = function () {\n var props = this.properties();\n var products = obj_case_1.default(props, \"products\");\n if (Array.isArray(products)) {\n return products.filter(function (item) { return item !== null; });\n }\n return [];\n};\nt.quantity = function () {\n var props = this.obj.properties || {};\n return props.quantity || 1;\n};\nt.currency = function () {\n var props = this.obj.properties || {};\n return props.currency || \"USD\";\n};\nt.referrer = function () {\n return (this.proxy(\"context.referrer.url\") ||\n this.proxy(\"context.page.referrer\") ||\n this.proxy(\"properties.referrer\"));\n};\nt.query = facade_1.Facade.proxy(\"options.query\");\nt.properties = function (aliases) {\n var ret = this.field(\"properties\") || {};\n aliases = aliases || {};\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null\n ? this.proxy(\"properties.\" + alias)\n : this[alias]();\n if (value == null)\n continue;\n ret[aliases[alias]] = value;\n delete ret[alias];\n }\n }\n return ret;\n};\nt.username = function () {\n return (this.proxy(\"traits.username\") ||\n this.proxy(\"properties.username\") ||\n this.userId() ||\n this.sessionId());\n};\nt.email = function () {\n var email = this.proxy(\"traits.email\") ||\n this.proxy(\"properties.email\") ||\n this.proxy(\"options.traits.email\");\n if (email)\n return email;\n var userId = this.userId();\n if (is_email_1.default(userId))\n return userId;\n};\nt.revenue = function () {\n var revenue = this.proxy(\"properties.revenue\");\n var event = this.event();\n var orderCompletedRegExp = /^[ _]?completed[ _]?order[ _]?|^[ _]?order[ _]?completed[ _]?$/i;\n if (!revenue && event && event.match(orderCompletedRegExp)) {\n revenue = this.proxy(\"properties.total\");\n }\n return currency(revenue);\n};\nt.cents = function () {\n var revenue = this.revenue();\n return typeof revenue !== \"number\" ? this.value() || 0 : revenue * 100;\n};\nt.identify = function () {\n var json = this.json();\n json.traits = this.traits();\n return new identify_1.Identify(json, this.opts);\n};\nfunction currency(val) {\n if (!val)\n return;\n if (typeof val === \"number\") {\n return val;\n }\n if (typeof val !== \"string\") {\n return;\n }\n val = val.replace(/\\$/g, \"\");\n val = parseFloat(val);\n if (!isNaN(val)) {\n return val;\n }\n}\n//# sourceMappingURL=track.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Page = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nvar track_1 = require(\"./track\");\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nfunction Page(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Page = Page;\ninherits_1.default(Page, facade_1.Facade);\nvar p = Page.prototype;\np.action = function () {\n return \"page\";\n};\np.type = p.action;\np.category = facade_1.Facade.field(\"category\");\np.name = facade_1.Facade.field(\"name\");\np.title = facade_1.Facade.proxy(\"properties.title\");\np.path = facade_1.Facade.proxy(\"properties.path\");\np.url = facade_1.Facade.proxy(\"properties.url\");\np.referrer = function () {\n return (this.proxy(\"context.referrer.url\") ||\n this.proxy(\"context.page.referrer\") ||\n this.proxy(\"properties.referrer\"));\n};\np.properties = function (aliases) {\n var props = this.field(\"properties\") || {};\n var category = this.category();\n var name = this.name();\n aliases = aliases || {};\n if (category)\n props.category = category;\n if (name)\n props.name = name;\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null\n ? this.proxy(\"properties.\" + alias)\n : this[alias]();\n if (value == null)\n continue;\n props[aliases[alias]] = value;\n if (alias !== aliases[alias])\n delete props[alias];\n }\n }\n return props;\n};\np.email = function () {\n var email = this.proxy(\"context.traits.email\") || this.proxy(\"properties.email\");\n if (email)\n return email;\n var userId = this.userId();\n if (is_email_1.default(userId))\n return userId;\n};\np.fullName = function () {\n var category = this.category();\n var name = this.name();\n return name && category ? category + \" \" + name : name;\n};\np.event = function (name) {\n return name ? \"Viewed \" + name + \" Page\" : \"Loaded a Page\";\n};\np.track = function (name) {\n var json = this.json();\n json.event = this.event(name);\n json.timestamp = this.timestamp();\n json.properties = this.properties();\n return new track_1.Track(json, this.opts);\n};\n//# sourceMappingURL=page.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Screen = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar page_1 = require(\"./page\");\nvar track_1 = require(\"./track\");\nfunction Screen(dictionary, opts) {\n page_1.Page.call(this, dictionary, opts);\n}\nexports.Screen = Screen;\ninherits_1.default(Screen, page_1.Page);\nScreen.prototype.action = function () {\n return \"screen\";\n};\nScreen.prototype.type = Screen.prototype.action;\nScreen.prototype.event = function (name) {\n return name ? \"Viewed \" + name + \" Screen\" : \"Loaded a Screen\";\n};\nScreen.prototype.track = function (name) {\n var json = this.json();\n json.event = this.event(name);\n json.timestamp = this.timestamp();\n json.properties = this.properties();\n return new track_1.Track(json, this.opts);\n};\n//# sourceMappingURL=screen.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Delete = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nfunction Delete(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Delete = Delete;\ninherits_1.default(Delete, facade_1.Facade);\nDelete.prototype.type = function () {\n return \"delete\";\n};\n//# sourceMappingURL=delete.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Delete = exports.Screen = exports.Page = exports.Track = exports.Identify = exports.Group = exports.Alias = exports.Facade = void 0;\nvar facade_1 = require(\"./facade\");\nObject.defineProperty(exports, \"Facade\", { enumerable: true, get: function () { return facade_1.Facade; } });\nvar alias_1 = require(\"./alias\");\nObject.defineProperty(exports, \"Alias\", { enumerable: true, get: function () { return alias_1.Alias; } });\nvar group_1 = require(\"./group\");\nObject.defineProperty(exports, \"Group\", { enumerable: true, get: function () { return group_1.Group; } });\nvar identify_1 = require(\"./identify\");\nObject.defineProperty(exports, \"Identify\", { enumerable: true, get: function () { return identify_1.Identify; } });\nvar track_1 = require(\"./track\");\nObject.defineProperty(exports, \"Track\", { enumerable: true, get: function () { return track_1.Track; } });\nvar page_1 = require(\"./page\");\nObject.defineProperty(exports, \"Page\", { enumerable: true, get: function () { return page_1.Page; } });\nvar screen_1 = require(\"./screen\");\nObject.defineProperty(exports, \"Screen\", { enumerable: true, get: function () { return screen_1.Screen; } });\nvar delete_1 = require(\"./delete\");\nObject.defineProperty(exports, \"Delete\", { enumerable: true, get: function () { return delete_1.Delete; } });\nexports.default = __assign(__assign({}, facade_1.Facade), { Alias: alias_1.Alias,\n Group: group_1.Group,\n Identify: identify_1.Identify,\n Track: track_1.Track,\n Page: page_1.Page,\n Screen: screen_1.Screen,\n Delete: delete_1.Delete });\n//# sourceMappingURL=index.js.map","import { Alias, Facade, Group, Identify, Page, Screen, Track, } from '@segment/facade';\nexport function toFacade(evt, options) {\n var fcd = new Facade(evt, options);\n if (evt.type === 'track') {\n fcd = new Track(evt, options);\n }\n if (evt.type === 'identify') {\n fcd = new Identify(evt, options);\n }\n if (evt.type === 'page') {\n fcd = new Page(evt, options);\n }\n if (evt.type === 'alias') {\n fcd = new Alias(evt, options);\n }\n if (evt.type === 'group') {\n fcd = new Group(evt, options);\n }\n if (evt.type === 'screen') {\n fcd = new Screen(evt, options);\n }\n Object.defineProperty(fcd, 'obj', {\n value: evt,\n writable: true,\n });\n return fcd;\n}\n//# sourceMappingURL=to-facade.js.map","/**\n * Register event listener on document that fires when:\n * * tab change or tab close (in mobile or desktop)\n * * click back / forward button\n * * click any link or perform any other navigation action\n * * soft refresh / hard refresh\n *\n * adapted from https://stackoverflow.com/questions/3239834/window-onbeforeunload-not-working-on-the-ipad/52864508#52864508,\n */\nexport var onPageChange = function (cb) {\n var unloaded = false; // prevents double firing if both are supported\n window.addEventListener('pagehide', function () {\n if (unloaded)\n return;\n unloaded = true;\n cb(unloaded);\n });\n // using document instead of window because of bug affecting browsers before safari 14 (detail in footnotes https://caniuse.com/?search=visibilitychange)\n document.addEventListener('visibilitychange', function () {\n if (document.visibilityState == 'hidden') {\n if (unloaded)\n return;\n unloaded = true;\n }\n else {\n unloaded = false;\n }\n cb(unloaded);\n });\n};\n//# sourceMappingURL=on-page-change.js.map","import { __extends } from \"tslib\";\nvar RateLimitError = /** @class */ (function (_super) {\n __extends(RateLimitError, _super);\n function RateLimitError(message, retryTimeout) {\n var _this = _super.call(this, message) || this;\n _this.retryTimeout = retryTimeout;\n _this.name = 'RateLimitError';\n return _this;\n }\n return RateLimitError;\n}(Error));\nexport { RateLimitError };\n//# sourceMappingURL=ratelimit-error.js.map","import { __assign } from \"tslib\";\nexport var createHeaders = function (headerSettings) {\n return __assign({ 'Content-Type': 'text/plain' }, (typeof headerSettings === 'function'\n ? headerSettings()\n : headerSettings));\n};\n//# sourceMappingURL=shared-dispatcher.js.map","import { __assign, __awaiter, __generator, __rest } from \"tslib\";\nimport { fetch } from '../../lib/fetch';\nimport { onPageChange } from '../../lib/on-page-change';\nimport { RateLimitError } from './ratelimit-error';\nimport { Context } from '../../core/context';\nimport { createHeaders } from './shared-dispatcher';\nvar MAX_PAYLOAD_SIZE = 500;\nvar MAX_KEEPALIVE_SIZE = 64;\nfunction kilobytes(buffer) {\n var size = encodeURI(JSON.stringify(buffer)).split(/%..|./).length - 1;\n return size / 1024;\n}\n/**\n * Checks if the payload is over or close to\n * the maximum payload size allowed by tracking\n * API.\n */\nfunction approachingTrackingAPILimit(buffer) {\n return kilobytes(buffer) >= MAX_PAYLOAD_SIZE - 50;\n}\n/**\n * Checks if payload is over or approaching the limit for keepalive\n * requests. If keepalive is enabled we want to avoid\n * going over this to prevent data loss.\n */\nfunction passedKeepaliveLimit(buffer) {\n return kilobytes(buffer) >= MAX_KEEPALIVE_SIZE - 10;\n}\nfunction chunks(batch) {\n var result = [];\n var index = 0;\n batch.forEach(function (item) {\n var size = kilobytes(result[index]);\n if (size >= 64) {\n index++;\n }\n if (result[index]) {\n result[index].push(item);\n }\n else {\n result[index] = [item];\n }\n });\n return result;\n}\nexport default function batch(apiHost, config) {\n var _a, _b;\n var buffer = [];\n var pageUnloaded = false;\n var limit = (_a = config === null || config === void 0 ? void 0 : config.size) !== null && _a !== void 0 ? _a : 10;\n var timeout = (_b = config === null || config === void 0 ? void 0 : config.timeout) !== null && _b !== void 0 ? _b : 5000;\n var rateLimitTimeout = 0;\n function sendBatch(batch) {\n var _a;\n if (batch.length === 0) {\n return;\n }\n var writeKey = (_a = batch[0]) === null || _a === void 0 ? void 0 : _a.writeKey;\n // Remove sentAt from every event as batching only needs a single timestamp\n var updatedBatch = batch.map(function (event) {\n var _a = event, sentAt = _a.sentAt, newEvent = __rest(_a, [\"sentAt\"]);\n return newEvent;\n });\n return fetch(\"https://\".concat(apiHost, \"/b\"), {\n credentials: config === null || config === void 0 ? void 0 : config.credentials,\n keepalive: (config === null || config === void 0 ? void 0 : config.keepalive) || pageUnloaded,\n headers: createHeaders(config === null || config === void 0 ? void 0 : config.headers),\n method: 'post',\n body: JSON.stringify({\n writeKey: writeKey,\n batch: updatedBatch,\n sentAt: new Date().toISOString(),\n }),\n // @ts-ignore - not in the ts lib yet\n priority: config === null || config === void 0 ? void 0 : config.priority,\n }).then(function (res) {\n var _a;\n if (res.status >= 500) {\n throw new Error(\"Bad response from server: \".concat(res.status));\n }\n if (res.status === 429) {\n var retryTimeoutStringSecs = (_a = res.headers) === null || _a === void 0 ? void 0 : _a.get('x-ratelimit-reset');\n var retryTimeoutMS = typeof retryTimeoutStringSecs == 'string'\n ? parseInt(retryTimeoutStringSecs) * 1000\n : timeout;\n throw new RateLimitError(\"Rate limit exceeded: \".concat(res.status), retryTimeoutMS);\n }\n });\n }\n function flush(attempt) {\n var _a;\n if (attempt === void 0) { attempt = 1; }\n return __awaiter(this, void 0, void 0, function () {\n var batch_1;\n return __generator(this, function (_b) {\n if (buffer.length) {\n batch_1 = buffer;\n buffer = [];\n return [2 /*return*/, (_a = sendBatch(batch_1)) === null || _a === void 0 ? void 0 : _a.catch(function (error) {\n var _a;\n var ctx = Context.system();\n ctx.log('error', 'Error sending batch', error);\n if (attempt <= ((_a = config === null || config === void 0 ? void 0 : config.maxRetries) !== null && _a !== void 0 ? _a : 10)) {\n if (error.name === 'RateLimitError') {\n rateLimitTimeout = error.retryTimeout;\n }\n buffer.push.apply(buffer, batch_1);\n buffer.map(function (event) {\n if ('_metadata' in event) {\n var segmentEvent = event;\n segmentEvent._metadata = __assign(__assign({}, segmentEvent._metadata), { retryCount: attempt });\n }\n });\n scheduleFlush(attempt + 1);\n }\n })];\n }\n return [2 /*return*/];\n });\n });\n }\n var schedule;\n function scheduleFlush(attempt) {\n if (attempt === void 0) { attempt = 1; }\n if (schedule) {\n return;\n }\n schedule = setTimeout(function () {\n schedule = undefined;\n flush(attempt).catch(console.error);\n }, rateLimitTimeout ? rateLimitTimeout : timeout);\n rateLimitTimeout = 0;\n }\n onPageChange(function (unloaded) {\n pageUnloaded = unloaded;\n if (pageUnloaded && buffer.length) {\n var reqs = chunks(buffer).map(sendBatch);\n Promise.all(reqs).catch(console.error);\n }\n });\n function dispatch(_url, body) {\n return __awaiter(this, void 0, void 0, function () {\n var bufferOverflow;\n return __generator(this, function (_a) {\n buffer.push(body);\n bufferOverflow = buffer.length >= limit ||\n approachingTrackingAPILimit(buffer) ||\n ((config === null || config === void 0 ? void 0 : config.keepalive) && passedKeepaliveLimit(buffer));\n return [2 /*return*/, bufferOverflow || pageUnloaded ? flush() : scheduleFlush()];\n });\n });\n }\n return {\n dispatch: dispatch,\n };\n}\n//# sourceMappingURL=batched-dispatcher.js.map","import { fetch } from '../../lib/fetch';\nimport { RateLimitError } from './ratelimit-error';\nimport { createHeaders } from './shared-dispatcher';\nexport default function (config) {\n function dispatch(url, body) {\n return fetch(url, {\n credentials: config === null || config === void 0 ? void 0 : config.credentials,\n keepalive: config === null || config === void 0 ? void 0 : config.keepalive,\n headers: createHeaders(config === null || config === void 0 ? void 0 : config.headers),\n method: 'post',\n body: JSON.stringify(body),\n // @ts-ignore - not in the ts lib yet\n priority: config === null || config === void 0 ? void 0 : config.priority,\n }).then(function (res) {\n var _a;\n if (res.status >= 500) {\n throw new Error(\"Bad response from server: \".concat(res.status));\n }\n if (res.status === 429) {\n var retryTimeoutStringSecs = (_a = res.headers) === null || _a === void 0 ? void 0 : _a.get('x-ratelimit-reset');\n var retryTimeoutMS = retryTimeoutStringSecs\n ? parseInt(retryTimeoutStringSecs) * 1000\n : 5000;\n throw new RateLimitError(\"Rate limit exceeded: \".concat(res.status), retryTimeoutMS);\n }\n });\n }\n return {\n dispatch: dispatch,\n };\n}\n//# sourceMappingURL=fetch-dispatcher.js.map","import { __assign } from \"tslib\";\nexport function normalize(analytics, json, settings, integrations, ctx) {\n var _a;\n var user = analytics.user();\n delete json.options;\n json.writeKey = settings === null || settings === void 0 ? void 0 : settings.apiKey;\n json.userId = json.userId || user.id();\n json.anonymousId = json.anonymousId || user.anonymousId();\n json.sentAt = new Date();\n var failed = analytics.queue.failedInitializations || [];\n if (failed.length > 0) {\n json._metadata = { failedInitializations: failed };\n }\n if (ctx != null) {\n if (ctx.attempts > 1) {\n json._metadata = __assign(__assign({}, json._metadata), { retryCount: ctx.attempts });\n }\n ctx.attempts++;\n }\n var bundled = [];\n var unbundled = [];\n for (var key in integrations) {\n var integration = integrations[key];\n if (key === 'Segment.io') {\n bundled.push(key);\n }\n if (integration.bundlingStatus === 'bundled') {\n bundled.push(key);\n }\n if (integration.bundlingStatus === 'unbundled') {\n unbundled.push(key);\n }\n }\n // This will make sure that the disabled cloud mode destinations will be\n // included in the unbundled list.\n for (var _i = 0, _b = (settings === null || settings === void 0 ? void 0 : settings.unbundledIntegrations) || []; _i < _b.length; _i++) {\n var settingsUnbundled = _b[_i];\n if (!unbundled.includes(settingsUnbundled)) {\n unbundled.push(settingsUnbundled);\n }\n }\n var configIds = (_a = settings === null || settings === void 0 ? void 0 : settings.maybeBundledConfigIds) !== null && _a !== void 0 ? _a : {};\n var bundledConfigIds = [];\n bundled.sort().forEach(function (name) {\n var _a;\n ;\n ((_a = configIds[name]) !== null && _a !== void 0 ? _a : []).forEach(function (id) {\n bundledConfigIds.push(id);\n });\n });\n if ((settings === null || settings === void 0 ? void 0 : settings.addBundledMetadata) !== false) {\n json._metadata = __assign(__assign({}, json._metadata), { bundled: bundled.sort(), unbundled: unbundled.sort(), bundledIds: bundledConfigIds });\n }\n return json;\n}\n//# sourceMappingURL=normalize.js.map","import { __awaiter, __generator } from \"tslib\";\nexport var pWhile = function (condition, action) { return __awaiter(void 0, void 0, void 0, function () {\n var loop;\n return __generator(this, function (_a) {\n loop = function (actionResult) { return __awaiter(void 0, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!condition(actionResult)) return [3 /*break*/, 2];\n _a = loop;\n return [4 /*yield*/, action()];\n case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent()])];\n case 2: return [2 /*return*/];\n }\n });\n }); };\n return [2 /*return*/, loop(undefined)];\n });\n}); };\n//# sourceMappingURL=p-while.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { isOffline } from '../../core/connection';\nimport { Context } from '../../core/context';\nimport { attempt } from '@segment/analytics-core';\nimport { pWhile } from '../../lib/p-while';\nfunction flushQueue(xt, queue) {\n return __awaiter(this, void 0, void 0, function () {\n var failedQueue;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n failedQueue = [];\n if (isOffline()) {\n return [2 /*return*/, queue];\n }\n return [4 /*yield*/, pWhile(function () { return queue.length > 0 && !isOffline(); }, function () { return __awaiter(_this, void 0, void 0, function () {\n var ctx, result, success;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ctx = queue.pop();\n if (!ctx) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, attempt(ctx, xt)];\n case 1:\n result = _a.sent();\n success = result instanceof Context;\n if (!success) {\n failedQueue.push(ctx);\n }\n return [2 /*return*/];\n }\n });\n }); })\n // re-add failed tasks\n ];\n case 1:\n _a.sent();\n // re-add failed tasks\n failedQueue.map(function (failed) { return queue.pushWithBackoff(failed); });\n return [2 /*return*/, queue];\n }\n });\n });\n}\nexport function scheduleFlush(flushing, buffer, xt, scheduleFlush) {\n var _this = this;\n if (flushing) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {\n var isFlushing, newBuffer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n isFlushing = true;\n return [4 /*yield*/, flushQueue(xt, buffer)];\n case 1:\n newBuffer = _a.sent();\n isFlushing = false;\n if (buffer.todo > 0) {\n scheduleFlush(isFlushing, newBuffer, xt, scheduleFlush);\n }\n return [2 /*return*/];\n }\n });\n }); }, Math.random() * 5000);\n}\n//# sourceMappingURL=schedule-flush.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { isOffline } from '../../core/connection';\nimport { PriorityQueue } from '../../lib/priority-queue';\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted';\nimport { toFacade } from '../../lib/to-facade';\nimport batch from './batched-dispatcher';\nimport standard from './fetch-dispatcher';\nimport { normalize } from './normalize';\nimport { scheduleFlush } from './schedule-flush';\nimport { SEGMENT_API_HOST } from '../../core/constants';\nfunction onAlias(analytics, json) {\n var _a, _b, _c, _d;\n var user = analytics.user();\n json.previousId =\n (_c = (_b = (_a = json.previousId) !== null && _a !== void 0 ? _a : json.from) !== null && _b !== void 0 ? _b : user.id()) !== null && _c !== void 0 ? _c : user.anonymousId();\n json.userId = (_d = json.userId) !== null && _d !== void 0 ? _d : json.to;\n delete json.from;\n delete json.to;\n return json;\n}\nexport var isSegmentPlugin = function (plugin) {\n return plugin.name === 'Segment.io';\n};\nexport function segmentio(analytics, settings, integrations) {\n var _a, _b, _c;\n // Attach `pagehide` before buffer is created so that inflight events are added\n // to the buffer before the buffer persists events in its own `pagehide` handler.\n window.addEventListener('pagehide', function () {\n buffer.push.apply(buffer, Array.from(inflightEvents));\n inflightEvents.clear();\n });\n var writeKey = (_a = settings === null || settings === void 0 ? void 0 : settings.apiKey) !== null && _a !== void 0 ? _a : '';\n var buffer = analytics.options.disableClientPersistence\n ? new PriorityQueue(analytics.queue.queue.maxAttempts, [])\n : new PersistedPriorityQueue(analytics.queue.queue.maxAttempts, \"\".concat(writeKey, \":dest-Segment.io\"));\n var inflightEvents = new Set();\n var flushing = false;\n var apiHost = (_b = settings === null || settings === void 0 ? void 0 : settings.apiHost) !== null && _b !== void 0 ? _b : SEGMENT_API_HOST;\n var protocol = (_c = settings === null || settings === void 0 ? void 0 : settings.protocol) !== null && _c !== void 0 ? _c : 'https';\n var remote = \"\".concat(protocol, \"://\").concat(apiHost);\n var deliveryStrategy = settings === null || settings === void 0 ? void 0 : settings.deliveryStrategy;\n var client = deliveryStrategy &&\n 'strategy' in deliveryStrategy &&\n deliveryStrategy.strategy === 'batching'\n ? batch(apiHost, deliveryStrategy.config)\n : standard(deliveryStrategy === null || deliveryStrategy === void 0 ? void 0 : deliveryStrategy.config);\n function send(ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var path, json;\n return __generator(this, function (_a) {\n if (isOffline()) {\n buffer.push(ctx);\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n scheduleFlush(flushing, buffer, segmentio, scheduleFlush);\n return [2 /*return*/, ctx];\n }\n inflightEvents.add(ctx);\n path = ctx.event.type.charAt(0);\n json = toFacade(ctx.event).json();\n if (ctx.event.type === 'track') {\n delete json.traits;\n }\n if (ctx.event.type === 'alias') {\n json = onAlias(analytics, json);\n }\n if (buffer.getAttempts(ctx) >= buffer.maxAttempts) {\n inflightEvents.delete(ctx);\n return [2 /*return*/, ctx];\n }\n return [2 /*return*/, client\n .dispatch(\"\".concat(remote, \"/\").concat(path), normalize(analytics, json, settings, integrations, ctx))\n .then(function () { return ctx; })\n .catch(function (error) {\n ctx.log('error', 'Error sending event', error);\n if (error.name === 'RateLimitError') {\n var timeout = error.retryTimeout;\n buffer.pushWithBackoff(ctx, timeout);\n }\n else {\n buffer.pushWithBackoff(ctx);\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n scheduleFlush(flushing, buffer, segmentio, scheduleFlush);\n return ctx;\n })\n .finally(function () {\n inflightEvents.delete(ctx);\n })];\n });\n });\n }\n var segmentio = {\n metadata: {\n writeKey: writeKey,\n apiHost: apiHost,\n protocol: protocol,\n },\n name: 'Segment.io',\n type: 'destination',\n version: '0.1.0',\n isLoaded: function () { return true; },\n load: function () { return Promise.resolve(); },\n track: send,\n identify: send,\n page: send,\n alias: send,\n group: send,\n screen: send,\n };\n // Buffer may already have items if they were previously stored in localStorage.\n // Start flushing them immediately.\n if (buffer.todo) {\n scheduleFlush(flushing, buffer, segmentio, scheduleFlush);\n }\n return segmentio;\n}\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __extends, __generator, __spreadArray } from \"tslib\";\nimport { resolveAliasArguments, resolveArguments, resolvePageArguments, resolveUserArguments, } from '../arguments-resolver';\nimport { isOffline } from '../connection';\nimport { Context } from '../context';\nimport { dispatch } from '@segment/analytics-core';\nimport { Emitter } from '@segment/analytics-generic-utils';\nimport { EventFactory, } from '../events';\nimport { isDestinationPluginWithAddMiddleware } from '../plugin';\nimport { EventQueue } from '../queue/event-queue';\nimport { Group, User } from '../user';\nimport autoBind from '../../lib/bind-all';\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted';\nimport { version } from '../../generated/version';\nimport { PriorityQueue } from '../../lib/priority-queue';\nimport { getGlobal } from '../../lib/get-global';\nimport { MemoryStorage, UniversalStorage, StoreType, applyCookieOptions, initializeStorages, isArrayOfStoreType, } from '../storage';\nimport { setGlobalAnalytics } from '../../lib/global-analytics-helper';\nimport { popPageContext } from '../buffer';\nimport { isSegmentPlugin, } from '../../plugins/segmentio';\nvar deprecationWarning = 'This is being deprecated and will be not be available in future releases of Analytics JS';\n// reference any pre-existing \"analytics\" object so a user can restore the reference\nvar global = getGlobal();\nvar _analytics = global === null || global === void 0 ? void 0 : global.analytics;\nfunction createDefaultQueue(name, retryQueue, disablePersistance) {\n if (retryQueue === void 0) { retryQueue = false; }\n if (disablePersistance === void 0) { disablePersistance = false; }\n var maxAttempts = retryQueue ? 10 : 1;\n var priorityQueue = disablePersistance\n ? new PriorityQueue(maxAttempts, [])\n : new PersistedPriorityQueue(maxAttempts, name);\n return new EventQueue(priorityQueue);\n}\n/**\n * The public settings that are set on the analytics instance\n */\nvar AnalyticsInstanceSettings = /** @class */ (function () {\n function AnalyticsInstanceSettings(settings, queue) {\n var _a;\n /**\n * Auto-track specific timeout setting for legacy purposes.\n */\n this.timeout = 300;\n this._getSegmentPluginMetadata = function () { var _a; return (_a = queue.plugins.find(isSegmentPlugin)) === null || _a === void 0 ? void 0 : _a.metadata; };\n this.writeKey = settings.writeKey;\n // this is basically just to satisfy typescript / so we don't need to change the function sig of every test.\n // when loadAnalytics is called, cdnSettings will always be available.\n var emptyCDNSettings = {\n integrations: {\n 'Segment.io': {\n apiKey: '',\n },\n },\n };\n this.cdnSettings = (_a = settings.cdnSettings) !== null && _a !== void 0 ? _a : emptyCDNSettings;\n this.cdnURL = settings.cdnURL;\n }\n Object.defineProperty(AnalyticsInstanceSettings.prototype, \"apiHost\", {\n get: function () {\n var _a, _b;\n return (_b = (_a = this._getSegmentPluginMetadata) === null || _a === void 0 ? void 0 : _a.call(this)) === null || _b === void 0 ? void 0 : _b.apiHost;\n },\n enumerable: false,\n configurable: true\n });\n return AnalyticsInstanceSettings;\n}());\nexport { AnalyticsInstanceSettings };\n/* analytics-classic stubs */\nfunction _stub() {\n console.warn(deprecationWarning);\n}\nvar Analytics = /** @class */ (function (_super) {\n __extends(Analytics, _super);\n function Analytics(settings, options, queue, user, group) {\n var _this = this;\n var _a, _b;\n _this = _super.call(this) || this;\n _this._debug = false;\n _this.initialized = false;\n _this.user = function () {\n return _this._user;\n };\n _this.init = _this.initialize.bind(_this);\n _this.log = _stub;\n _this.addIntegrationMiddleware = _stub;\n _this.listeners = _stub;\n _this.addEventListener = _stub;\n _this.removeAllListeners = _stub;\n _this.removeListener = _stub;\n _this.removeEventListener = _stub;\n _this.hasListeners = _stub;\n _this.add = _stub;\n _this.addIntegration = _stub;\n var cookieOptions = options === null || options === void 0 ? void 0 : options.cookie;\n var disablePersistance = (_a = options === null || options === void 0 ? void 0 : options.disableClientPersistence) !== null && _a !== void 0 ? _a : false;\n _this.queue =\n queue !== null && queue !== void 0 ? queue : createDefaultQueue(\"\".concat(settings.writeKey, \":event-queue\"), options === null || options === void 0 ? void 0 : options.retryQueue, disablePersistance);\n _this.settings = new AnalyticsInstanceSettings(settings, _this.queue);\n var storageSetting = options === null || options === void 0 ? void 0 : options.storage;\n _this._universalStorage = _this.createStore(disablePersistance, storageSetting, cookieOptions);\n _this._user =\n user !== null && user !== void 0 ? user : new User(__assign({ persist: !disablePersistance, storage: options === null || options === void 0 ? void 0 : options.storage }, options === null || options === void 0 ? void 0 : options.user), cookieOptions).load();\n _this._group =\n group !== null && group !== void 0 ? group : new Group(__assign({ persist: !disablePersistance, storage: options === null || options === void 0 ? void 0 : options.storage }, options === null || options === void 0 ? void 0 : options.group), cookieOptions).load();\n _this.eventFactory = new EventFactory(_this._user);\n _this.integrations = (_b = options === null || options === void 0 ? void 0 : options.integrations) !== null && _b !== void 0 ? _b : {};\n _this.options = options !== null && options !== void 0 ? options : {};\n autoBind(_this);\n return _this;\n }\n /**\n * Creates the storage system based on the settings received\n * @returns Storage\n */\n Analytics.prototype.createStore = function (disablePersistance, storageSetting, cookieOptions) {\n // DisablePersistance option overrides all, no storage will be used outside of memory even if specified\n if (disablePersistance) {\n return new UniversalStorage([new MemoryStorage()]);\n }\n else {\n if (storageSetting) {\n if (isArrayOfStoreType(storageSetting)) {\n // We will create the store with the priority for customer settings\n return new UniversalStorage(initializeStorages(applyCookieOptions(storageSetting.stores, cookieOptions)));\n }\n }\n }\n // We default to our multi storage with priority\n return new UniversalStorage(initializeStorages([\n StoreType.LocalStorage,\n {\n name: StoreType.Cookie,\n settings: cookieOptions,\n },\n StoreType.Memory,\n ]));\n };\n Object.defineProperty(Analytics.prototype, \"storage\", {\n get: function () {\n return this._universalStorage;\n },\n enumerable: false,\n configurable: true\n });\n Analytics.prototype.track = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var pageCtx, _a, name, data, opts, cb, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n pageCtx = popPageContext(args);\n _a = resolveArguments.apply(void 0, args), name = _a[0], data = _a[1], opts = _a[2], cb = _a[3];\n segmentEvent = this.eventFactory.track(name, data, opts, this.integrations, pageCtx);\n return [2 /*return*/, this._dispatch(segmentEvent, cb).then(function (ctx) {\n _this.emit('track', name, ctx.event.properties, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.page = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var pageCtx, _a, category, page, properties, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n pageCtx = popPageContext(args);\n _a = resolvePageArguments.apply(void 0, args), category = _a[0], page = _a[1], properties = _a[2], options = _a[3], callback = _a[4];\n segmentEvent = this.eventFactory.page(category, page, properties, options, this.integrations, pageCtx);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('page', category, page, ctx.event.properties, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.identify = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var pageCtx, _a, id, _traits, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n pageCtx = popPageContext(args);\n _a = resolveUserArguments(this._user).apply(void 0, args), id = _a[0], _traits = _a[1], options = _a[2], callback = _a[3];\n this._user.identify(id, _traits);\n segmentEvent = this.eventFactory.identify(this._user.id(), this._user.traits(), options, this.integrations, pageCtx);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('identify', ctx.event.userId, ctx.event.traits, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.group = function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var pageCtx = popPageContext(args);\n if (args.length === 0) {\n return this._group;\n }\n var _a = resolveUserArguments(this._group).apply(void 0, args), id = _a[0], _traits = _a[1], options = _a[2], callback = _a[3];\n this._group.identify(id, _traits);\n var groupId = this._group.id();\n var groupTraits = this._group.traits();\n var segmentEvent = this.eventFactory.group(groupId, groupTraits, options, this.integrations, pageCtx);\n return this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('group', ctx.event.groupId, ctx.event.traits, ctx.event.options);\n return ctx;\n });\n };\n Analytics.prototype.alias = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var pageCtx, _a, to, from, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n pageCtx = popPageContext(args);\n _a = resolveAliasArguments.apply(void 0, args), to = _a[0], from = _a[1], options = _a[2], callback = _a[3];\n segmentEvent = this.eventFactory.alias(to, from, options, this.integrations, pageCtx);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('alias', to, from, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.screen = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var pageCtx, _a, category, page, properties, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n pageCtx = popPageContext(args);\n _a = resolvePageArguments.apply(void 0, args), category = _a[0], page = _a[1], properties = _a[2], options = _a[3], callback = _a[4];\n segmentEvent = this.eventFactory.screen(category, page, properties, options, this.integrations, pageCtx);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('screen', category, page, ctx.event.properties, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.trackClick = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.link).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.trackLink = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.link).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.trackSubmit = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.form).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.trackForm = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.form).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.register = function () {\n var plugins = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n plugins[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var ctx, registrations;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ctx = Context.system();\n registrations = plugins.map(function (xt) {\n return _this.queue.register(ctx, xt, _this);\n });\n return [4 /*yield*/, Promise.all(registrations)];\n case 1:\n _a.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n Analytics.prototype.deregister = function () {\n var plugins = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n plugins[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var ctx, deregistrations;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ctx = Context.system();\n deregistrations = plugins.map(function (pl) {\n var plugin = _this.queue.plugins.find(function (p) { return p.name === pl; });\n if (plugin) {\n return _this.queue.deregister(ctx, plugin, _this);\n }\n else {\n ctx.log('warn', \"plugin \".concat(pl, \" not found\"));\n }\n });\n return [4 /*yield*/, Promise.all(deregistrations)];\n case 1:\n _a.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n Analytics.prototype.debug = function (toggle) {\n // Make sure legacy ajs debug gets turned off if it was enabled before upgrading.\n if (toggle === false && localStorage.getItem('debug')) {\n localStorage.removeItem('debug');\n }\n this._debug = toggle;\n return this;\n };\n Analytics.prototype.reset = function () {\n this._user.reset();\n this._group.reset();\n this.emit('reset');\n };\n Analytics.prototype.timeout = function (timeout) {\n this.settings.timeout = timeout;\n };\n Analytics.prototype._dispatch = function (event, callback) {\n return __awaiter(this, void 0, void 0, function () {\n var ctx;\n return __generator(this, function (_a) {\n ctx = new Context(event);\n ctx.stats.increment('analytics_js.invoke', 1, [event.type]);\n if (isOffline() && !this.options.retryQueue) {\n return [2 /*return*/, ctx];\n }\n return [2 /*return*/, dispatch(ctx, this.queue, this, {\n callback: callback,\n debug: this._debug,\n timeout: this.settings.timeout,\n })];\n });\n });\n };\n Analytics.prototype.addSourceMiddleware = function (fn) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.queue.criticalTasks.run(function () { return __awaiter(_this, void 0, void 0, function () {\n var sourceMiddlewarePlugin, integrations, plugin;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"analytics-middleware\" */ '../../plugins/middleware')];\n case 1:\n sourceMiddlewarePlugin = (_a.sent()).sourceMiddlewarePlugin;\n integrations = {};\n this.queue.plugins.forEach(function (plugin) {\n if (plugin.type === 'destination') {\n return (integrations[plugin.name] = true);\n }\n });\n plugin = sourceMiddlewarePlugin(fn, integrations);\n return [4 /*yield*/, this.register(plugin)];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); })];\n case 1:\n _a.sent();\n return [2 /*return*/, this];\n }\n });\n });\n };\n /* TODO: This does not have to return a promise? */\n Analytics.prototype.addDestinationMiddleware = function (integrationName) {\n var middlewares = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n middlewares[_i - 1] = arguments[_i];\n }\n this.queue.plugins\n .filter(isDestinationPluginWithAddMiddleware)\n .forEach(function (p) {\n if (integrationName === '*' ||\n p.name.toLowerCase() === integrationName.toLowerCase()) {\n p.addMiddleware.apply(p, middlewares);\n }\n });\n return Promise.resolve(this);\n };\n Analytics.prototype.setAnonymousId = function (id) {\n return this._user.anonymousId(id);\n };\n Analytics.prototype.queryString = function (query) {\n return __awaiter(this, void 0, void 0, function () {\n var queryString;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.options.useQueryString === false) {\n return [2 /*return*/, []];\n }\n return [4 /*yield*/, import(\n /* webpackChunkName: \"queryString\" */ '../query-string')];\n case 1:\n queryString = (_a.sent()).queryString;\n return [2 /*return*/, queryString(this, query)];\n }\n });\n });\n };\n /**\n * @deprecated This function does not register a destination plugin.\n *\n * Instantiates a legacy Analytics.js destination.\n *\n * This function does not register the destination as an Analytics.JS plugin,\n * all the it does it to invoke the factory function back.\n */\n Analytics.prototype.use = function (legacyPluginFactory) {\n legacyPluginFactory(this);\n return this;\n };\n Analytics.prototype.ready = function (callback) {\n if (callback === void 0) { callback = function (res) { return res; }; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, Promise.all(this.queue.plugins.map(function (i) { return (i.ready ? i.ready() : Promise.resolve()); })).then(function (res) {\n callback(res);\n return res;\n })];\n });\n });\n };\n // analytics-classic api\n Analytics.prototype.noConflict = function () {\n console.warn(deprecationWarning);\n setGlobalAnalytics(_analytics !== null && _analytics !== void 0 ? _analytics : this);\n return this;\n };\n Analytics.prototype.normalize = function (msg) {\n console.warn(deprecationWarning);\n return this.eventFactory['normalize'](msg);\n };\n Object.defineProperty(Analytics.prototype, \"failedInitializations\", {\n get: function () {\n console.warn(deprecationWarning);\n return this.queue.failedInitializations;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Analytics.prototype, \"VERSION\", {\n get: function () {\n return version;\n },\n enumerable: false,\n configurable: true\n });\n /* @deprecated - noop */\n Analytics.prototype.initialize = function (_settings, _options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n console.warn(deprecationWarning);\n return [2 /*return*/, Promise.resolve(this)];\n });\n });\n };\n Analytics.prototype.pageview = function (url) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n console.warn(deprecationWarning);\n return [4 /*yield*/, this.page({ path: url })];\n case 1:\n _a.sent();\n return [2 /*return*/, this];\n }\n });\n });\n };\n Object.defineProperty(Analytics.prototype, \"plugins\", {\n get: function () {\n var _a;\n console.warn(deprecationWarning);\n // @ts-expect-error\n return (_a = this._plugins) !== null && _a !== void 0 ? _a : {};\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Analytics.prototype, \"Integrations\", {\n get: function () {\n console.warn(deprecationWarning);\n var integrations = this.queue.plugins\n .filter(function (plugin) { return plugin.type === 'destination'; })\n .reduce(function (acc, plugin) {\n var name = \"\".concat(plugin.name\n .toLowerCase()\n .replace('.', '')\n .split(' ')\n .join('-'), \"Integration\");\n // @ts-expect-error\n var integration = window[name];\n if (!integration) {\n return acc;\n }\n var nested = integration.Integration; // hack - Google Analytics function resides in the \"Integration\" field\n if (nested) {\n acc[plugin.name] = nested;\n return acc;\n }\n acc[plugin.name] = integration;\n return acc;\n }, {});\n return integrations;\n },\n enumerable: false,\n configurable: true\n });\n // snippet function\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Analytics.prototype.push = function (args) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var an = this;\n var method = args.shift();\n if (method) {\n if (!an[method])\n return;\n }\n an[method].apply(this, args);\n };\n return Analytics;\n}(Emitter));\nexport { Analytics };\n/**\n * @returns a no-op analytics instance that does not create cookies or localstorage, or send any events to segment.\n */\nvar NullAnalytics = /** @class */ (function (_super) {\n __extends(NullAnalytics, _super);\n function NullAnalytics() {\n var _this = _super.call(this, { writeKey: '' }, { disableClientPersistence: true }) || this;\n _this.initialized = true;\n return _this;\n }\n return NullAnalytics;\n}(Analytics));\nexport { NullAnalytics };\n//# sourceMappingURL=index.js.map","/**\n * Returns `process.env` if it is available in the environment.\n * Always returns an object make it similarly easy to use as `process.env`.\n */\nexport function getProcessEnv() {\n if (typeof process === 'undefined' || !process.env) {\n return {};\n }\n return process.env;\n}\n//# sourceMappingURL=get-process-env.js.map","import { getGlobalAnalytics } from './global-analytics-helper';\nimport { embeddedWriteKey } from './embedded-write-key';\nvar analyticsScriptRegex = /(https:\\/\\/.*)\\/analytics\\.js\\/v1\\/(?:.*?)\\/(?:platform|analytics.*)?/;\nvar getCDNUrlFromScriptTag = function () {\n var cdn;\n var scripts = Array.prototype.slice.call(document.querySelectorAll('script'));\n scripts.forEach(function (s) {\n var _a;\n var src = (_a = s.getAttribute('src')) !== null && _a !== void 0 ? _a : '';\n var result = analyticsScriptRegex.exec(src);\n if (result && result[1]) {\n cdn = result[1];\n }\n });\n return cdn;\n};\nvar _globalCDN; // set globalCDN as in-memory singleton\nvar getGlobalCDNUrl = function () {\n var _a;\n var result = _globalCDN !== null && _globalCDN !== void 0 ? _globalCDN : (_a = getGlobalAnalytics()) === null || _a === void 0 ? void 0 : _a._cdn;\n return result;\n};\nexport var setGlobalCDNUrl = function (cdn) {\n var globalAnalytics = getGlobalAnalytics();\n if (globalAnalytics) {\n globalAnalytics._cdn = cdn;\n }\n _globalCDN = cdn;\n};\nexport var getCDN = function () {\n var globalCdnUrl = getGlobalCDNUrl();\n if (globalCdnUrl)\n return globalCdnUrl;\n var cdnFromScriptTag = getCDNUrlFromScriptTag();\n if (cdnFromScriptTag) {\n return cdnFromScriptTag;\n }\n else {\n // it's possible that the CDN is not found in the page because:\n // - the script is loaded through a proxy\n // - the script is removed after execution\n // in this case, we fall back to the default Segment CDN\n return \"https://cdn.segment.com\";\n }\n};\nexport var getNextIntegrationsURL = function () {\n var cdn = getCDN();\n return \"\".concat(cdn, \"/next-integrations\");\n};\n/**\n * Replaces the CDN URL in the script tag with the one from Analytics.js 1.0\n *\n * @returns the path to Analytics JS 1.0\n **/\nexport function getLegacyAJSPath() {\n var _a, _b, _c;\n var writeKey = (_a = embeddedWriteKey()) !== null && _a !== void 0 ? _a : (_b = getGlobalAnalytics()) === null || _b === void 0 ? void 0 : _b._writeKey;\n var scripts = Array.prototype.slice.call(document.querySelectorAll('script'));\n var path = undefined;\n for (var _i = 0, scripts_1 = scripts; _i < scripts_1.length; _i++) {\n var s = scripts_1[_i];\n var src = (_c = s.getAttribute('src')) !== null && _c !== void 0 ? _c : '';\n var result = analyticsScriptRegex.exec(src);\n if (result && result[1]) {\n path = src;\n break;\n }\n }\n if (path) {\n return path.replace('analytics.min.js', 'analytics.classic.js');\n }\n return \"https://cdn.segment.com/analytics.js/v1/\".concat(writeKey, \"/analytics.classic.js\");\n}\n//# sourceMappingURL=parse-cdn.js.map","import { __assign } from \"tslib\";\n/**\n * Merge legacy settings and initialized Integration option overrides.\n *\n * This will merge any options that were passed from initialization into\n * overrides for settings that are returned by the Segment CDN.\n *\n * i.e. this allows for passing options directly into destinations from\n * the Analytics constructor.\n */\nexport function mergedOptions(cdnSettings, options) {\n var _a;\n var optionOverrides = Object.entries((_a = options.integrations) !== null && _a !== void 0 ? _a : {}).reduce(function (overrides, _a) {\n var _b, _c;\n var integration = _a[0], options = _a[1];\n if (typeof options === 'object') {\n return __assign(__assign({}, overrides), (_b = {}, _b[integration] = options, _b));\n }\n return __assign(__assign({}, overrides), (_c = {}, _c[integration] = {}, _c));\n }, {});\n return Object.entries(cdnSettings.integrations).reduce(function (integrationSettings, _a) {\n var _b;\n var integration = _a[0], settings = _a[1];\n return __assign(__assign({}, integrationSettings), (_b = {}, _b[integration] = __assign(__assign({}, settings), optionOverrides[integration]), _b));\n }, {});\n}\n//# sourceMappingURL=merged-options.js.map","/**\n * Tries to gets the unencoded version of an encoded component of a\n * Uniform Resource Identifier (URI). If input string is malformed,\n * returns it back as-is.\n *\n * Note: All occurences of the `+` character become ` ` (spaces).\n **/\nexport function gracefulDecodeURIComponent(encodedURIComponent) {\n try {\n return decodeURIComponent(encodedURIComponent.replace(/\\+/g, ' '));\n }\n catch (_a) {\n return encodedURIComponent;\n }\n}\n//# sourceMappingURL=gracefulDecodeURIComponent.js.map","import { __awaiter, __generator } from \"tslib\";\nexport function clientHints(hints) {\n return __awaiter(this, void 0, void 0, function () {\n var userAgentData;\n return __generator(this, function (_a) {\n userAgentData = navigator.userAgentData;\n if (!userAgentData)\n return [2 /*return*/, undefined];\n if (!hints)\n return [2 /*return*/, userAgentData.toJSON()];\n return [2 /*return*/, userAgentData\n .getHighEntropyValues(hints)\n .catch(function () { return userAgentData.toJSON(); })];\n });\n });\n}\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport jar from 'js-cookie';\nimport { version } from '../../generated/version';\nimport { getVersionType } from '../../lib/version-type';\nimport { tld } from '../../core/user/tld';\nimport { gracefulDecodeURIComponent } from '../../core/query-string/gracefulDecodeURIComponent';\nimport { CookieStorage, UniversalStorage } from '../../core/storage';\nimport { clientHints } from '../../lib/client-hints';\nvar cookieOptions;\nfunction getCookieOptions() {\n if (cookieOptions) {\n return cookieOptions;\n }\n var domain = tld(window.location.href);\n cookieOptions = {\n expires: 31536000000,\n secure: false,\n path: '/',\n };\n if (domain) {\n cookieOptions.domain = domain;\n }\n return cookieOptions;\n}\nfunction ads(query) {\n var queryIds = {\n btid: 'dataxu',\n urid: 'millennial-media',\n };\n if (query.startsWith('?')) {\n query = query.substring(1);\n }\n query = query.replace(/\\?/g, '&');\n var parts = query.split('&');\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n var _a = part.split('='), k = _a[0], v = _a[1];\n if (queryIds[k]) {\n return {\n id: v,\n type: queryIds[k],\n };\n }\n }\n}\nexport function utm(query) {\n if (query.startsWith('?')) {\n query = query.substring(1);\n }\n query = query.replace(/\\?/g, '&');\n return query.split('&').reduce(function (acc, str) {\n var _a = str.split('='), k = _a[0], _b = _a[1], v = _b === void 0 ? '' : _b;\n if (k.includes('utm_') && k.length > 4) {\n var utmParam = k.slice(4);\n if (utmParam === 'campaign') {\n utmParam = 'name';\n }\n acc[utmParam] = gracefulDecodeURIComponent(v);\n }\n return acc;\n }, {});\n}\nexport function ampId() {\n var ampId = jar.get('_ga');\n if (ampId && ampId.startsWith('amp')) {\n return ampId;\n }\n}\nfunction referrerId(query, ctx, disablePersistance) {\n var _a;\n var storage = new UniversalStorage(disablePersistance ? [] : [new CookieStorage(getCookieOptions())]);\n var stored = storage.get('s:context.referrer');\n var ad = (_a = ads(query)) !== null && _a !== void 0 ? _a : stored;\n if (!ad) {\n return;\n }\n if (ctx) {\n ctx.referrer = __assign(__assign({}, ctx.referrer), ad);\n }\n storage.set('s:context.referrer', ad);\n}\n/**\n *\n * @param obj e.g. { foo: 'b', bar: 'd', baz: ['123', '456']}\n * @returns e.g. 'foo=b&bar=d&baz=123&baz=456'\n */\nvar objectToQueryString = function (obj) {\n try {\n var searchParams_1 = new URLSearchParams();\n Object.entries(obj).forEach(function (_a) {\n var k = _a[0], v = _a[1];\n if (Array.isArray(v)) {\n v.forEach(function (value) { return searchParams_1.append(k, value); });\n }\n else {\n searchParams_1.append(k, v);\n }\n });\n return searchParams_1.toString();\n }\n catch (_a) {\n return '';\n }\n};\nvar EnvironmentEnrichmentPlugin = /** @class */ (function () {\n function EnvironmentEnrichmentPlugin() {\n var _this = this;\n this.name = 'Page Enrichment';\n this.type = 'before';\n this.version = '0.1.0';\n this.isLoaded = function () { return true; };\n this.load = function (_ctx, instance) { return __awaiter(_this, void 0, void 0, function () {\n var _a, _1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.instance = instance;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n _a = this;\n return [4 /*yield*/, clientHints(this.instance.options.highEntropyValuesClientHints)];\n case 2:\n _a.userAgentData = _b.sent();\n return [3 /*break*/, 4];\n case 3:\n _1 = _b.sent();\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/, Promise.resolve()];\n }\n });\n }); };\n this.enrich = function (ctx) {\n var _a, _b;\n // Note: Types are off - context should never be undefined here, since it is set as part of event creation.\n var evtCtx = ctx.event.context;\n var search = evtCtx.page.search || '';\n var query = typeof search === 'object' ? objectToQueryString(search) : search;\n evtCtx.userAgent = navigator.userAgent;\n evtCtx.userAgentData = _this.userAgentData;\n // @ts-ignore\n var locale = navigator.userLanguage || navigator.language;\n if (typeof evtCtx.locale === 'undefined' && typeof locale !== 'undefined') {\n evtCtx.locale = locale;\n }\n (_a = evtCtx.library) !== null && _a !== void 0 ? _a : (evtCtx.library = {\n name: 'analytics.js',\n version: \"\".concat(getVersionType() === 'web' ? 'next' : 'npm:next', \"-\").concat(version),\n });\n if (query && !evtCtx.campaign) {\n evtCtx.campaign = utm(query);\n }\n var amp = ampId();\n if (amp) {\n evtCtx.amp = { id: amp };\n }\n referrerId(query, evtCtx, (_b = _this.instance.options.disableClientPersistence) !== null && _b !== void 0 ? _b : false);\n try {\n evtCtx.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n catch (_) {\n // If browser doesn't have support leave timezone undefined\n }\n return ctx;\n };\n this.track = this.enrich;\n this.identify = this.enrich;\n this.page = this.enrich;\n this.group = this.enrich;\n this.alias = this.enrich;\n this.screen = this.enrich;\n }\n return EnvironmentEnrichmentPlugin;\n}());\nexport var envEnrichment = new EnvironmentEnrichmentPlugin();\n//# sourceMappingURL=index.js.map","function findScript(src) {\n var scripts = Array.prototype.slice.call(window.document.querySelectorAll('script'));\n return scripts.find(function (s) { return s.src === src; });\n}\n/**\n * Load a script from a URL and append it to the document.\n */\nexport function loadScript(src, attributes) {\n var found = findScript(src);\n if (found !== undefined) {\n var status_1 = found === null || found === void 0 ? void 0 : found.getAttribute('status');\n if (status_1 === 'loaded') {\n return Promise.resolve(found);\n }\n if (status_1 === 'loading') {\n return new Promise(function (resolve, reject) {\n found.addEventListener('load', function () { return resolve(found); });\n found.addEventListener('error', function (err) { return reject(err); });\n });\n }\n }\n return new Promise(function (resolve, reject) {\n var _a;\n var script = window.document.createElement('script');\n script.type = 'text/javascript';\n script.src = src;\n script.async = true;\n script.setAttribute('status', 'loading');\n for (var _i = 0, _b = Object.entries(attributes !== null && attributes !== void 0 ? attributes : {}); _i < _b.length; _i++) {\n var _c = _b[_i], k = _c[0], v = _c[1];\n script.setAttribute(k, v);\n }\n script.onload = function () {\n script.onerror = script.onload = null;\n script.setAttribute('status', 'loaded');\n resolve(script);\n };\n script.onerror = function () {\n script.onerror = script.onload = null;\n script.setAttribute('status', 'error');\n reject(new Error(\"Failed to load \".concat(src)));\n };\n var firstExistingScript = window.document.querySelector('script');\n if (!firstExistingScript) {\n window.document.head.appendChild(script);\n }\n else {\n (_a = firstExistingScript.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(script, firstExistingScript);\n }\n });\n}\nexport function unloadScript(src) {\n var found = findScript(src);\n if (found !== undefined) {\n found.remove();\n }\n return Promise.resolve();\n}\n//# sourceMappingURL=load-script.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { ContextCancelation } from '../../core/context';\nimport { toFacade } from '../../lib/to-facade';\nexport function applyDestinationMiddleware(destination, evt, middleware) {\n return __awaiter(this, void 0, void 0, function () {\n function applyMiddleware(event, fn) {\n return __awaiter(this, void 0, void 0, function () {\n var nextCalled, returnedEvent;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n nextCalled = false;\n returnedEvent = null;\n return [4 /*yield*/, fn({\n payload: toFacade(event, {\n clone: true,\n traverse: false,\n }),\n integration: destination,\n next: function (evt) {\n nextCalled = true;\n if (evt === null) {\n returnedEvent = null;\n }\n if (evt) {\n returnedEvent = evt.obj;\n }\n },\n })];\n case 1:\n _b.sent();\n if (!nextCalled && returnedEvent !== null) {\n returnedEvent = returnedEvent;\n returnedEvent.integrations = __assign(__assign({}, event.integrations), (_a = {}, _a[destination] = false, _a));\n }\n return [2 /*return*/, returnedEvent];\n }\n });\n });\n }\n var modifiedEvent, _i, middleware_1, md, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n modifiedEvent = toFacade(evt, {\n clone: true,\n traverse: false,\n }).rawEvent();\n _i = 0, middleware_1 = middleware;\n _a.label = 1;\n case 1:\n if (!(_i < middleware_1.length)) return [3 /*break*/, 4];\n md = middleware_1[_i];\n return [4 /*yield*/, applyMiddleware(modifiedEvent, md)];\n case 2:\n result = _a.sent();\n if (result === null) {\n return [2 /*return*/, null];\n }\n modifiedEvent = result;\n _a.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4: return [2 /*return*/, modifiedEvent];\n }\n });\n });\n}\nexport function sourceMiddlewarePlugin(fn, integrations) {\n function apply(ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var nextCalled;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n nextCalled = false;\n return [4 /*yield*/, fn({\n payload: toFacade(ctx.event, {\n clone: true,\n traverse: false,\n }),\n integrations: integrations !== null && integrations !== void 0 ? integrations : {},\n next: function (evt) {\n nextCalled = true;\n if (evt) {\n ctx.event = evt.obj;\n }\n },\n })];\n case 1:\n _a.sent();\n if (!nextCalled) {\n throw new ContextCancelation({\n retry: false,\n type: 'middleware_cancellation',\n reason: 'Middleware `next` function skipped',\n });\n }\n return [2 /*return*/, ctx];\n }\n });\n });\n }\n return {\n name: \"Source Middleware \".concat(fn.name),\n type: 'before',\n version: '0.1.0',\n isLoaded: function () { return true; },\n load: function (ctx) { return Promise.resolve(ctx); },\n track: apply,\n page: apply,\n screen: apply,\n identify: apply,\n alias: apply,\n group: apply,\n };\n}\n//# sourceMappingURL=index.js.map","export function recordIntegrationMetric(ctx, _a) {\n var methodName = _a.methodName, integrationName = _a.integrationName, type = _a.type, _b = _a.didError, didError = _b === void 0 ? false : _b;\n ctx.stats.increment(\"analytics_js.integration.invoke\".concat(didError ? '.error' : ''), 1, [\n \"method:\".concat(methodName),\n \"integration_name:\".concat(integrationName),\n \"type:\".concat(type),\n ]);\n}\n//# sourceMappingURL=metric-helpers.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { loadScript } from '../../lib/load-script';\nimport { getCDN } from '../../lib/parse-cdn';\nimport { applyDestinationMiddleware, } from '../middleware';\nimport { Context, ContextCancelation } from '../../core/context';\nimport { recordIntegrationMetric } from '../../core/stats/metric-helpers';\nimport { createDeferred } from '@segment/analytics-generic-utils';\nvar ActionDestination = /** @class */ (function () {\n function ActionDestination(name, action) {\n this.version = '1.0.0';\n this.alternativeNames = [];\n this.loadPromise = createDeferred();\n this.middleware = [];\n this.alias = this._createMethod('alias');\n this.group = this._createMethod('group');\n this.identify = this._createMethod('identify');\n this.page = this._createMethod('page');\n this.screen = this._createMethod('screen');\n this.track = this._createMethod('track');\n this.action = action;\n this.name = name;\n this.type = action.type;\n this.alternativeNames.push(action.name);\n }\n ActionDestination.prototype.addMiddleware = function () {\n var _a;\n var fn = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fn[_i] = arguments[_i];\n }\n /** Make sure we only apply destination filters to actions of the \"destination\" type to avoid causing issues for hybrid destinations */\n if (this.type === 'destination') {\n (_a = this.middleware).push.apply(_a, fn);\n }\n };\n ActionDestination.prototype.transform = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var modifiedEvent;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, applyDestinationMiddleware(this.name, ctx.event, this.middleware)];\n case 1:\n modifiedEvent = _a.sent();\n if (modifiedEvent === null) {\n ctx.cancel(new ContextCancelation({\n retry: false,\n reason: 'dropped by destination middleware',\n }));\n }\n return [2 /*return*/, new Context(modifiedEvent)];\n }\n });\n });\n };\n ActionDestination.prototype._createMethod = function (methodName) {\n var _this = this;\n return function (ctx) { return __awaiter(_this, void 0, void 0, function () {\n var transformedContext, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.action[methodName])\n return [2 /*return*/, ctx];\n transformedContext = ctx;\n if (!(this.type === 'destination')) return [3 /*break*/, 2];\n return [4 /*yield*/, this.transform(ctx)];\n case 1:\n transformedContext = _a.sent();\n _a.label = 2;\n case 2:\n _a.trys.push([2, 5, , 6]);\n return [4 /*yield*/, this.ready()];\n case 3:\n if (!(_a.sent())) {\n throw new Error('Something prevented the destination from getting ready');\n }\n recordIntegrationMetric(ctx, {\n integrationName: this.action.name,\n methodName: methodName,\n type: 'action',\n });\n return [4 /*yield*/, this.action[methodName](transformedContext)];\n case 4:\n _a.sent();\n return [3 /*break*/, 6];\n case 5:\n error_1 = _a.sent();\n recordIntegrationMetric(ctx, {\n integrationName: this.action.name,\n methodName: methodName,\n type: 'action',\n didError: true,\n });\n throw error_1;\n case 6: return [2 /*return*/, ctx];\n }\n });\n }); };\n };\n /* --- PASSTHROUGH METHODS --- */\n ActionDestination.prototype.isLoaded = function () {\n return this.action.isLoaded();\n };\n ActionDestination.prototype.ready = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.loadPromise.promise];\n case 1:\n _b.sent();\n return [2 /*return*/, true];\n case 2:\n _a = _b.sent();\n return [2 /*return*/, false];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n ActionDestination.prototype.load = function (ctx, analytics) {\n return __awaiter(this, void 0, void 0, function () {\n var loadP, _a, _b, error_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (this.loadPromise.isSettled()) {\n return [2 /*return*/, this.loadPromise.promise];\n }\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 4]);\n recordIntegrationMetric(ctx, {\n integrationName: this.action.name,\n methodName: 'load',\n type: 'action',\n });\n loadP = this.action.load(ctx, analytics);\n _b = (_a = this.loadPromise).resolve;\n return [4 /*yield*/, loadP];\n case 2:\n _b.apply(_a, [_c.sent()]);\n return [2 /*return*/, loadP];\n case 3:\n error_2 = _c.sent();\n recordIntegrationMetric(ctx, {\n integrationName: this.action.name,\n methodName: 'load',\n type: 'action',\n didError: true,\n });\n this.loadPromise.reject(error_2);\n throw error_2;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n ActionDestination.prototype.unload = function (ctx, analytics) {\n var _a, _b;\n return (_b = (_a = this.action).unload) === null || _b === void 0 ? void 0 : _b.call(_a, ctx, analytics);\n };\n return ActionDestination;\n}());\nexport { ActionDestination };\nfunction validate(pluginLike) {\n if (!Array.isArray(pluginLike)) {\n throw new Error('Not a valid list of plugins');\n }\n var required = ['load', 'isLoaded', 'name', 'version', 'type'];\n pluginLike.forEach(function (plugin) {\n required.forEach(function (method) {\n var _a;\n if (plugin[method] === undefined) {\n throw new Error(\"Plugin: \".concat((_a = plugin.name) !== null && _a !== void 0 ? _a : 'unknown', \" missing required function \").concat(method));\n }\n });\n });\n return true;\n}\nfunction isPluginDisabled(userIntegrations, remotePlugin) {\n var creationNameEnabled = userIntegrations[remotePlugin.creationName];\n var currentNameEnabled = userIntegrations[remotePlugin.name];\n // Check that the plugin isn't explicitly enabled when All: false\n if (userIntegrations.All === false &&\n !creationNameEnabled &&\n !currentNameEnabled) {\n return true;\n }\n // Check that the plugin isn't explicitly disabled\n if (creationNameEnabled === false || currentNameEnabled === false) {\n return true;\n }\n return false;\n}\nfunction loadPluginFactory(remotePlugin, obfuscate) {\n return __awaiter(this, void 0, void 0, function () {\n var defaultCdn, cdn, urlSplit, name_1, obfuscatedURL, error_3, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 9, , 10]);\n defaultCdn = new RegExp('https://cdn.segment.(com|build)');\n cdn = getCDN();\n if (!obfuscate) return [3 /*break*/, 6];\n urlSplit = remotePlugin.url.split('/');\n name_1 = urlSplit[urlSplit.length - 2];\n obfuscatedURL = remotePlugin.url.replace(name_1, btoa(name_1).replace(/=/g, ''));\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 5]);\n return [4 /*yield*/, loadScript(obfuscatedURL.replace(defaultCdn, cdn))];\n case 2:\n _a.sent();\n return [3 /*break*/, 5];\n case 3:\n error_3 = _a.sent();\n // Due to syncing concerns it is possible that the obfuscated action destination (or requested version) might not exist.\n // We should use the unobfuscated version as a fallback.\n return [4 /*yield*/, loadScript(remotePlugin.url.replace(defaultCdn, cdn))];\n case 4:\n // Due to syncing concerns it is possible that the obfuscated action destination (or requested version) might not exist.\n // We should use the unobfuscated version as a fallback.\n _a.sent();\n return [3 /*break*/, 5];\n case 5: return [3 /*break*/, 8];\n case 6: return [4 /*yield*/, loadScript(remotePlugin.url.replace(defaultCdn, cdn))];\n case 7:\n _a.sent();\n _a.label = 8;\n case 8:\n // @ts-expect-error\n if (typeof window[remotePlugin.libraryName] === 'function') {\n // @ts-expect-error\n return [2 /*return*/, window[remotePlugin.libraryName]];\n }\n return [3 /*break*/, 10];\n case 9:\n err_1 = _a.sent();\n console.error('Failed to create PluginFactory', remotePlugin);\n throw err_1;\n case 10: return [2 /*return*/];\n }\n });\n });\n}\nexport function remoteLoader(settings, integrations, mergedIntegrations, options, routingMiddleware, pluginSources) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n var allPlugins, routingRules, pluginPromises;\n var _this = this;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n allPlugins = [];\n routingRules = (_b = (_a = settings.middlewareSettings) === null || _a === void 0 ? void 0 : _a.routingRules) !== null && _b !== void 0 ? _b : [];\n pluginPromises = ((_c = settings.remotePlugins) !== null && _c !== void 0 ? _c : []).map(function (remotePlugin) { return __awaiter(_this, void 0, void 0, function () {\n var pluginFactory, _a, intg, plugin, plugins, routing_1, error_4;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (isPluginDisabled(integrations, remotePlugin))\n return [2 /*return*/];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 6, , 7]);\n _a = (pluginSources === null || pluginSources === void 0 ? void 0 : pluginSources.find(function (_a) {\n var pluginName = _a.pluginName;\n return pluginName === remotePlugin.name;\n }));\n if (_a) return [3 /*break*/, 3];\n return [4 /*yield*/, loadPluginFactory(remotePlugin, options === null || options === void 0 ? void 0 : options.obfuscate)];\n case 2:\n _a = (_b.sent());\n _b.label = 3;\n case 3:\n pluginFactory = _a;\n if (!pluginFactory) return [3 /*break*/, 5];\n intg = mergedIntegrations[remotePlugin.name];\n return [4 /*yield*/, pluginFactory(__assign(__assign({}, remotePlugin.settings), intg))];\n case 4:\n plugin = _b.sent();\n plugins = Array.isArray(plugin) ? plugin : [plugin];\n validate(plugins);\n routing_1 = routingRules.filter(function (rule) { return rule.destinationName === remotePlugin.creationName; });\n plugins.forEach(function (plugin) {\n var wrapper = new ActionDestination(remotePlugin.creationName, plugin);\n if (routing_1.length && routingMiddleware) {\n wrapper.addMiddleware(routingMiddleware);\n }\n allPlugins.push(wrapper);\n });\n _b.label = 5;\n case 5: return [3 /*break*/, 7];\n case 6:\n error_4 = _b.sent();\n console.warn('Failed to load Remote Plugin', error_4);\n recordIntegrationMetric(Context.system(), {\n integrationName: remotePlugin.name,\n methodName: 'load',\n type: 'action',\n didError: true,\n });\n return [3 /*break*/, 7];\n case 7: return [2 /*return*/];\n }\n });\n }); });\n return [4 /*yield*/, Promise.all(pluginPromises)];\n case 1:\n _d.sent();\n return [2 /*return*/, allPlugins.filter(Boolean)];\n }\n });\n });\n}\n//# sourceMappingURL=index.js.map","var _a;\nvar _b;\nimport { getGlobal } from '../../lib/get-global';\nvar env = getGlobal();\n// The code below assumes the inspector extension will use Object.assign\n// to add the inspect interface on to this object reference (unless the\n// extension code ran first and has already set up the variable)\nvar inspectorHost = ((_a = (_b = env)['__SEGMENT_INSPECTOR__']) !== null && _a !== void 0 ? _a : (_b['__SEGMENT_INSPECTOR__'] = {}));\nexport var attachInspector = function (analytics) { var _a; return (_a = inspectorHost.attach) === null || _a === void 0 ? void 0 : _a.call(inspectorHost, analytics); };\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __extends, __generator, __spreadArray } from \"tslib\";\nimport { getProcessEnv } from '../lib/get-process-env';\nimport { getCDN, setGlobalCDNUrl } from '../lib/parse-cdn';\nimport { Analytics, NullAnalytics } from '../core/analytics';\nimport { Context } from '../core/context';\nimport { mergedOptions } from '../lib/merged-options';\nimport { createDeferred } from '@segment/analytics-generic-utils';\nimport { envEnrichment } from '../plugins/env-enrichment';\nimport { remoteLoader } from '../plugins/remote-loader';\nimport { segmentio } from '../plugins/segmentio';\nimport { AnalyticsBuffered, flushAnalyticsCallsInNewTask, flushAddSourceMiddleware, flushSetAnonymousID, flushOn, PreInitMethodCall, flushRegister, } from '../core/buffer';\nimport { attachInspector } from '../core/inspector';\nimport { Stats } from '../core/stats';\nimport { setGlobalAnalyticsKey } from '../lib/global-analytics-helper';\nimport { fetch } from '../lib/fetch';\nexport function loadCDNSettings(writeKey, baseUrl) {\n return fetch(\"\".concat(baseUrl, \"/v1/projects/\").concat(writeKey, \"/settings\"))\n .then(function (res) {\n if (!res.ok) {\n return res.text().then(function (errorResponseMessage) {\n throw new Error(errorResponseMessage);\n });\n }\n return res.json();\n })\n .catch(function (err) {\n console.error(err.message);\n throw err;\n });\n}\nfunction hasLegacyDestinations(settings) {\n return (getProcessEnv().NODE_ENV !== 'test' &&\n // just one integration means segmentio\n Object.keys(settings.integrations).length > 1);\n}\nfunction hasTsubMiddleware(settings) {\n var _a, _b, _c;\n return (getProcessEnv().NODE_ENV !== 'test' &&\n ((_c = (_b = (_a = settings.middlewareSettings) === null || _a === void 0 ? void 0 : _a.routingRules) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0);\n}\n/**\n * With AJS classic, we allow users to call setAnonymousId before the library initialization.\n * This is important because some of the destinations will use the anonymousId during the initialization,\n * and if we set anonId afterwards, that wouldn’t impact the destination.\n *\n * Also Ensures events can be registered before library initialization.\n * This is important so users can register to 'initialize' and any events that may fire early during setup.\n */\nfunction flushPreBuffer(analytics, buffer) {\n flushSetAnonymousID(analytics, buffer);\n flushOn(analytics, buffer);\n}\n/**\n * Finish flushing buffer and cleanup.\n */\nfunction flushFinalBuffer(analytics, queryString, buffer) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, flushQueryString(analytics, queryString)];\n case 1:\n _a.sent();\n flushAnalyticsCallsInNewTask(analytics, buffer);\n return [2 /*return*/];\n }\n });\n });\n}\nvar getQueryString = function () {\n var _a, _b;\n var hash = (_a = window.location.hash) !== null && _a !== void 0 ? _a : '';\n var search = (_b = window.location.search) !== null && _b !== void 0 ? _b : '';\n var term = search.length ? search : hash.replace(/(?=#).*(?=\\?)/, '');\n return term;\n};\nvar flushQueryString = function (analytics, queryString) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!queryString.includes('ajs_')) return [3 /*break*/, 2];\n return [4 /*yield*/, analytics.queryString(queryString).catch(console.error)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n}); };\nfunction registerPlugins(writeKey, cdnSettings, analytics, options, pluginLikes, legacyIntegrationSources, preInitBuffer) {\n var _a, _b, _c;\n if (pluginLikes === void 0) { pluginLikes = []; }\n return __awaiter(this, void 0, void 0, function () {\n var pluginsFromSettings, pluginSources, tsubMiddleware, _d, legacyDestinations, _e, schemaFilter, _f, mergedSettings, remotePlugins, basePlugins, shouldIgnoreSegmentio, _g, _h, ctx;\n var _this = this;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n flushPreBuffer(analytics, preInitBuffer);\n pluginsFromSettings = pluginLikes === null || pluginLikes === void 0 ? void 0 : pluginLikes.filter(function (pluginLike) { return typeof pluginLike === 'object'; });\n pluginSources = pluginLikes === null || pluginLikes === void 0 ? void 0 : pluginLikes.filter(function (pluginLike) {\n return typeof pluginLike === 'function' &&\n typeof pluginLike.pluginName === 'string';\n });\n if (!hasTsubMiddleware(cdnSettings)) return [3 /*break*/, 2];\n return [4 /*yield*/, import(\n /* webpackChunkName: \"tsub-middleware\" */ '../plugins/routing-middleware').then(function (mod) {\n return mod.tsubMiddleware(cdnSettings.middlewareSettings.routingRules);\n })];\n case 1:\n _d = _j.sent();\n return [3 /*break*/, 3];\n case 2:\n _d = undefined;\n _j.label = 3;\n case 3:\n tsubMiddleware = _d;\n if (!(hasLegacyDestinations(cdnSettings) || legacyIntegrationSources.length > 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, import(\n /* webpackChunkName: \"ajs-destination\" */ '../plugins/ajs-destination').then(function (mod) {\n return mod.ajsDestinations(writeKey, cdnSettings, analytics.integrations, options, tsubMiddleware, legacyIntegrationSources);\n })];\n case 4:\n _e = _j.sent();\n return [3 /*break*/, 6];\n case 5:\n _e = [];\n _j.label = 6;\n case 6:\n legacyDestinations = _e;\n if (!cdnSettings.legacyVideoPluginsEnabled) return [3 /*break*/, 8];\n return [4 /*yield*/, import(\n /* webpackChunkName: \"legacyVideos\" */ '../plugins/legacy-video-plugins').then(function (mod) {\n return mod.loadLegacyVideoPlugins(analytics);\n })];\n case 7:\n _j.sent();\n _j.label = 8;\n case 8:\n if (!((_a = options.plan) === null || _a === void 0 ? void 0 : _a.track)) return [3 /*break*/, 10];\n return [4 /*yield*/, import(\n /* webpackChunkName: \"schemaFilter\" */ '../plugins/schema-filter').then(function (mod) {\n var _a;\n return mod.schemaFilter((_a = options.plan) === null || _a === void 0 ? void 0 : _a.track, cdnSettings);\n })];\n case 9:\n _f = _j.sent();\n return [3 /*break*/, 11];\n case 10:\n _f = undefined;\n _j.label = 11;\n case 11:\n schemaFilter = _f;\n mergedSettings = mergedOptions(cdnSettings, options);\n return [4 /*yield*/, remoteLoader(cdnSettings, analytics.integrations, mergedSettings, options, tsubMiddleware, pluginSources).catch(function (err) {\n console.error('Failed to load remote plugins', err);\n return [];\n })];\n case 12:\n remotePlugins = _j.sent();\n basePlugins = __spreadArray(__spreadArray([envEnrichment], legacyDestinations, true), remotePlugins, true);\n if (schemaFilter) {\n basePlugins.push(schemaFilter);\n }\n shouldIgnoreSegmentio = (((_b = options.integrations) === null || _b === void 0 ? void 0 : _b.All) === false &&\n !options.integrations['Segment.io']) ||\n (options.integrations && options.integrations['Segment.io'] === false);\n if (!!shouldIgnoreSegmentio) return [3 /*break*/, 14];\n _h = (_g = basePlugins).push;\n return [4 /*yield*/, segmentio(analytics, mergedSettings['Segment.io'], cdnSettings.integrations)];\n case 13:\n _h.apply(_g, [_j.sent()]);\n _j.label = 14;\n case 14: return [4 /*yield*/, analytics.register.apply(analytics, __spreadArray(__spreadArray([], basePlugins, false), pluginsFromSettings, false))];\n case 15:\n ctx = _j.sent();\n // register user-defined plugins registered via analytics.register()\n return [4 /*yield*/, flushRegister(analytics, preInitBuffer)];\n case 16:\n // register user-defined plugins registered via analytics.register()\n _j.sent();\n if (!Object.entries((_c = cdnSettings.enabledMiddleware) !== null && _c !== void 0 ? _c : {}).some(function (_a) {\n var enabled = _a[1];\n return enabled;\n })) return [3 /*break*/, 18];\n return [4 /*yield*/, import(\n /* webpackChunkName: \"remoteMiddleware\" */ '../plugins/remote-middleware').then(function (_a) {\n var remoteMiddlewares = _a.remoteMiddlewares;\n return __awaiter(_this, void 0, void 0, function () {\n var middleware, promises;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, remoteMiddlewares(ctx, cdnSettings, options.obfuscate)];\n case 1:\n middleware = _b.sent();\n promises = middleware.map(function (mdw) {\n return analytics.addSourceMiddleware(mdw);\n });\n return [2 /*return*/, Promise.all(promises)];\n }\n });\n });\n })];\n case 17:\n _j.sent();\n _j.label = 18;\n case 18: \n // register any user-defined plugins added via analytics.addSourceMiddleware()\n return [4 /*yield*/, flushAddSourceMiddleware(analytics, preInitBuffer)];\n case 19:\n // register any user-defined plugins added via analytics.addSourceMiddleware()\n _j.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n}\nfunction loadAnalytics(settings, options, preInitBuffer) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var queryString, cdnURL, cdnSettings, _k, disabled, retryQueue, analytics, plugins, classicIntegrations, segmentLoadOptions, ctx;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n // return no-op analytics instance if disabled\n if (options.disable === true) {\n return [2 /*return*/, [new NullAnalytics(), Context.system()]];\n }\n if (options.globalAnalyticsKey)\n setGlobalAnalyticsKey(options.globalAnalyticsKey);\n // this is an ugly side-effect, but it's for the benefits of the plugins that get their cdn via getCDN()\n if (settings.cdnURL)\n setGlobalCDNUrl(settings.cdnURL);\n if (options.initialPageview) {\n // capture the page context early, so it's always up-to-date\n preInitBuffer.add(new PreInitMethodCall('page', []));\n }\n queryString = getQueryString();\n cdnURL = (_a = settings.cdnURL) !== null && _a !== void 0 ? _a : getCDN();\n if (!((_b = settings.cdnSettings) !== null && _b !== void 0)) return [3 /*break*/, 1];\n _k = _b;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, loadCDNSettings(settings.writeKey, cdnURL)];\n case 2:\n _k = (_l.sent());\n _l.label = 3;\n case 3:\n cdnSettings = _k;\n if (options.updateCDNSettings) {\n cdnSettings = options.updateCDNSettings(cdnSettings);\n }\n if (!(typeof options.disable === 'function')) return [3 /*break*/, 5];\n return [4 /*yield*/, options.disable(cdnSettings)];\n case 4:\n disabled = _l.sent();\n if (disabled) {\n return [2 /*return*/, [new NullAnalytics(), Context.system()]];\n }\n _l.label = 5;\n case 5:\n retryQueue = (_d = (_c = cdnSettings.integrations['Segment.io']) === null || _c === void 0 ? void 0 : _c.retryQueue) !== null && _d !== void 0 ? _d : true;\n options = __assign({ retryQueue: retryQueue }, options);\n analytics = new Analytics(__assign(__assign({}, settings), { cdnSettings: cdnSettings, cdnURL: cdnURL }), options);\n attachInspector(analytics);\n plugins = (_e = settings.plugins) !== null && _e !== void 0 ? _e : [];\n classicIntegrations = (_f = settings.classicIntegrations) !== null && _f !== void 0 ? _f : [];\n segmentLoadOptions = (_g = options.integrations) === null || _g === void 0 ? void 0 : _g['Segment.io'];\n Stats.initRemoteMetrics(__assign(__assign({}, cdnSettings.metrics), { host: (_h = segmentLoadOptions === null || segmentLoadOptions === void 0 ? void 0 : segmentLoadOptions.apiHost) !== null && _h !== void 0 ? _h : (_j = cdnSettings.metrics) === null || _j === void 0 ? void 0 : _j.host, protocol: segmentLoadOptions === null || segmentLoadOptions === void 0 ? void 0 : segmentLoadOptions.protocol }));\n return [4 /*yield*/, registerPlugins(settings.writeKey, cdnSettings, analytics, options, plugins, classicIntegrations, preInitBuffer)];\n case 6:\n ctx = _l.sent();\n analytics.initialized = true;\n analytics.emit('initialize', settings, options);\n return [4 /*yield*/, flushFinalBuffer(analytics, queryString, preInitBuffer)];\n case 7:\n _l.sent();\n return [2 /*return*/, [analytics, ctx]];\n }\n });\n });\n}\n/**\n * The public browser interface for Segment Analytics\n *\n * @example\n * ```ts\n * export const analytics = new AnalyticsBrowser()\n * analytics.load({ writeKey: 'foo' })\n * ```\n * @link https://github.com/segmentio/analytics-next/#readme\n */\nvar AnalyticsBrowser = /** @class */ (function (_super) {\n __extends(AnalyticsBrowser, _super);\n function AnalyticsBrowser() {\n var _this = this;\n var _a = createDeferred(), loadStart = _a.promise, resolveLoadStart = _a.resolve;\n _this = _super.call(this, function (buffer) {\n return loadStart.then(function (_a) {\n var settings = _a[0], options = _a[1];\n return loadAnalytics(settings, options, buffer);\n });\n }) || this;\n _this._resolveLoadStart = function (settings, options) {\n return resolveLoadStart([settings, options]);\n };\n return _this;\n }\n /**\n * Fully initialize an analytics instance, including:\n *\n * * Fetching settings from the segment CDN (by default).\n * * Fetching all remote destinations configured by the user (if applicable).\n * * Flushing buffered analytics events.\n * * Loading all middleware.\n *\n * Note:️ This method should only be called *once* in your application.\n *\n * @example\n * ```ts\n * export const analytics = new AnalyticsBrowser()\n * analytics.load({ writeKey: 'foo' })\n * ```\n */\n AnalyticsBrowser.prototype.load = function (settings, options) {\n if (options === void 0) { options = {}; }\n this._resolveLoadStart(settings, options);\n return this;\n };\n /**\n * Instantiates an object exposing Analytics methods.\n *\n * @example\n * ```ts\n * const ajs = AnalyticsBrowser.load({ writeKey: '<YOUR_WRITE_KEY>' })\n *\n * ajs.track(\"foo\")\n * ...\n * ```\n */\n AnalyticsBrowser.load = function (settings, options) {\n if (options === void 0) { options = {}; }\n return new AnalyticsBrowser().load(settings, options);\n };\n AnalyticsBrowser.standalone = function (writeKey, options) {\n return AnalyticsBrowser.load({ writeKey: writeKey }, options).then(function (res) { return res[0]; });\n };\n return AnalyticsBrowser;\n}(AnalyticsBuffered));\nexport { AnalyticsBrowser };\n//# sourceMappingURL=index.js.map","var AnalyticsNode = /** @class */ (function () {\n function AnalyticsNode() {\n }\n AnalyticsNode.load = function () {\n return Promise.reject(new Error('AnalyticsNode is not available in browsers.'));\n };\n return AnalyticsNode;\n}());\nexport { AnalyticsNode };\n//# sourceMappingURL=node.browser.js.map"],"file":"assets/index-cnaXlDby.js"}
|
|
1
|
+
{"version":3,"mappings":"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","names":["dset","obj","keys","val","i","l","t","x","k","pickBy","fn","acc","key","ValidationError","_super","__extends","field","message","_this","isString","isNumber","isFunction","exists","isPlainObject","stringError","objError","nilError","assertEventExists","event","assertEventType","assertTrackEventName","assertTrackEventProperties","assertTraits","assertMessageId","validateEvent","InternalEventFactorySettings","settings","_a","_b","CoreEventFactory","properties","options","integrationOptions","__assign","category","page","screen","userId","traits","integrationsOptions","groupId","to","from","base","eventOverrideKeys","providedOptionsKeys","context","eventOverrides","integrationBooleans","integrationNames","name","_","value","allIntegrations","_c","overrides","rest","__rest","evt","pTimeout","promise","timeout","resolve","reject","timeoutId","sleep","timeoutInMs","invokeCallback","ctx","callback","delay","cb","err","createDeferred","settled","_resolve","_reject","args","_i","Emitter","on","fns","without","callbacks","backoff","params","random","minTimeout","factor","attempt","maxTimeout","ON_REMOVE_FROM_FUTURE","PriorityQueue","maxAttempts","queue","seen","items","accepted","operation","attempts","b","item","f","IDX","HEX","BUFFER","v4","num","out","CoreLogger","level","extras","time","formatted","logs","log","line","logEntry","compactMetricType","type","enums","CoreStats","metric","by","tags","m","NullStats","ContextCancelation","CoreContext","id","stats","logger","uuid","other","error","path","integrationName","groupBy","collection","grouper","results","suggestedKey","__spreadArray","isThenable","createTaskGroup","taskCompletionPromise","resolvePromise","count","op","returnValue","res","tryAsync","__awaiter","err_1","__generator","plugin","start","hook","newCtx","done","ensure","newContext","CoreEventQueue","priorityQueue","instance","handleLoadError","p","e_1","willDeliver","onDeliver","flushed","delivered","err_2","retriable","err_3","denyList","available","alternativeNameMatch","before","enrichment","_d","destination","_e","after","before_1","beforeWare","temp","enrichment_1","enrichmentWare","destinations","afterCalls","_f","getDelay","startTimeInEpochMS","timeoutInMS","elapsedTime","dispatch","emitter","startTime","dispatched","resolveArguments","eventName","data","opts","resolvePageArguments","resolvedProperties","resolvedOptions","resolvedCategory","resolvedName","strings","resolvedCallback","objects","resolveUserArguments","user","values","orderStack","args_1","arg","current","resolveAliasArguments","aliasTo","aliasFrom","isBrowser","isServer","isOnline","isOffline","unfetch","n","r","s","u","a","e","getGlobal","global","fetch","version","SEGMENT_API_HOST","createRemoteMetric","versionType","formattedTags","v","logError","RemoteMetrics","flushing_1","run_1","remoteMetric","payload","headers","url","remoteMetrics","Stats","Context","BufferedPageContextDiscriminant","createBufferedPageContext","canonicalUrl","search","title","referrer","BUFFERED_PAGE_CONTEXT_KEYS","isBufferedPageContext","bufferedPageCtx","createCanonicalURL","searchParams","removeHash","href","hashIdx","parseCanonicalPath","createPageContext","param","pathname","newPath","newUrl","getDefaultBufferedPageContext","c","getDefaultPageContext","pick","object","addPageContext","pageCtx","evtCtx","pageContextFromEventProps","EventFactory","ev","isDestinationPluginWithAddMiddleware","loc","persisted","persistItems","existing","all","merged","stored","persistSeen","memory","remove","now","mutex","onUnlock","lockTimeout","lockKey","expired","lock","rawLock","allowed","PersistedPriorityQueue","itemsKey","seenKey","saved","lastSeen","items_1","EventQueue","nameOrQueue","bindAll","proto","desc","assign","target","source","defaultConverter","init","converter","defaultAttributes","set","attributes","stringifiedAttributes","attributeName","get","cookies","jar","parts","foundKey","api","levels","host","last","parseUrl","tld","parsedUrl","lvls","cname","domain","cookie","ONE_YEAR","CookieStorage","LocalStorage","state","MemoryStorage","StoreType","isArrayOfStoreType","isStoreTypeWithSettings","_logStoreKeyError","store","action","UniversalStorage","stores","coercedValue","initializeStorages","storages","applyCookieOptions","storeTypes","cookieOptions","defaults","User","prevId","changingIdentity","retId","retLeg","legacyUser","autoBind","anon","currentId","cookieOpts","filterStores","groupDefaults","Group","_id","_globalAnalyticsKey","getGlobalAnalytics","setGlobalAnalyticsKey","setGlobalAnalytics","analytics","flushSyncAnalyticsCalls","buffer","callAnalyticsMethod","flushAddSourceMiddleware","flushRegister","flushOn","this","flushSetAnonymousID","flushAnalyticsCallsInNewTask","popPageContext","hasBufferedPageContextAsLastArg","lastArg","PreInitMethodCall","method","PreInitMethodCallBuffer","calls","methodName","call","eventsExpectingPageContext","result","AnalyticsBuffered","loader","ajs","module","multiple","find","replace","del","normalize","defaultNormalize","finished","loop","normalizedKey","child","__importDefault","mod","address","obj_case_1","require$$0","trait","props","default_1","clone_1","clone","isEnabled","disabled","integration","matcher","lib","iso","numericKeys","arr","offset","millis","string","strict","milliseconds","seconds","isodate","require$$1","require$$2","objProto","toStr","isDate","toMs","traverse","input","traverseObject","traverseArray","index","facade","address_1","is_enabled_1","new_date_1","require$$3","require$$4","isodate_traverse_1","require$$5","Facade","fields","transform","multi","one","ret","integrations","allEnabled","enabled","active","aliases","alias","library","device","inherits_browserModule","ctor","superCtor","TempCtor","inherits_1","facade_1","Alias","dictionary","isEmail_1","isEmail","group","is_email_1","g","created","email","identify","trim","str","Identify","firstName","lastName","space","date","age","track","identify_1","Track","subtotal","total","products","revenue","orderCompletedRegExp","currency","json","track_1","Page","page_1","Screen","_delete","Delete","exports","alias_1","group_1","screen_1","require$$6","delete_1","require$$7","toFacade","fcd","onPageChange","unloaded","RateLimitError","retryTimeout","createHeaders","headerSettings","MAX_PAYLOAD_SIZE","MAX_KEEPALIVE_SIZE","kilobytes","size","approachingTrackingAPILimit","passedKeepaliveLimit","chunks","batch","apiHost","config","pageUnloaded","limit","rateLimitTimeout","sendBatch","writeKey","updatedBatch","newEvent","retryTimeoutStringSecs","retryTimeoutMS","flush","batch_1","segmentEvent","scheduleFlush","schedule","reqs","_url","body","bufferOverflow","standard","failed","bundled","unbundled","settingsUnbundled","configIds","bundledConfigIds","pWhile","condition","actionResult","flushQueue","xt","failedQueue","success","flushing","isFlushing","newBuffer","onAlias","isSegmentPlugin","segmentio","inflightEvents","protocol","remote","deliveryStrategy","client","send","deprecationWarning","_analytics","createDefaultQueue","retryQueue","disablePersistance","AnalyticsInstanceSettings","emptyCDNSettings","_stub","Analytics","storageSetting","_traits","groupTraits","autotrack","__vitePreload","plugins","registrations","deregistrations","pl","toggle","sourceMiddlewarePlugin","index$1","middlewares","query","queryString","legacyPluginFactory","msg","_settings","_options","nested","an","NullAnalytics","getProcessEnv","process","define_process_env_default","analyticsScriptRegex","getCDNUrlFromScriptTag","cdn","scripts","src","_globalCDN","getGlobalCDNUrl","setGlobalCDNUrl","globalAnalytics","getCDN","globalCdnUrl","cdnFromScriptTag","getNextIntegrationsURL","mergedOptions","cdnSettings","optionOverrides","integrationSettings","gracefulDecodeURIComponent","encodedURIComponent","clientHints","hints","userAgentData","getCookieOptions","ads","queryIds","parts_1","part","utm","utmParam","ampId","referrerId","storage","ad","objectToQueryString","searchParams_1","EnvironmentEnrichmentPlugin","_ctx","locale","amp","envEnrichment","findScript","loadScript","found","status_1","script","firstExistingScript","unloadScript","applyDestinationMiddleware","middleware","applyMiddleware","nextCalled","returnedEvent","modifiedEvent","middleware_1","md","apply","recordIntegrationMetric","didError","ActionDestination","transformedContext","error_1","loadP","error_2","validate","pluginLike","required","isPluginDisabled","userIntegrations","remotePlugin","creationNameEnabled","currentNameEnabled","loadPluginFactory","obfuscate","defaultCdn","urlSplit","name_1","obfuscatedURL","remoteLoader","mergedIntegrations","routingMiddleware","pluginSources","allPlugins","routingRules","pluginPromises","pluginFactory","intg","routing_1","error_4","pluginName","rule","wrapper","env","inspectorHost","attachInspector","loadCDNSettings","baseUrl","errorResponseMessage","hasLegacyDestinations","hasTsubMiddleware","flushPreBuffer","flushFinalBuffer","flushQueryString","getQueryString","hash","term","registerPlugins","pluginLikes","legacyIntegrationSources","preInitBuffer","pluginsFromSettings","tsubMiddleware","legacyDestinations","schemaFilter","mergedSettings","remotePlugins","basePlugins","shouldIgnoreSegmentio","_g","_h","_j","remoteMiddlewares","promises","mdw","loadAnalytics","cdnURL","_k","classicIntegrations","segmentLoadOptions","_l","AnalyticsBrowser","loadStart","resolveLoadStart","AnalyticsNode"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],"sources":["../../node_modules/dset/dist/index.mjs","../../node_modules/@segment/analytics-core/dist/esm/utils/pick.js","../../node_modules/@segment/analytics-core/dist/esm/validation/errors.js","../../node_modules/@segment/analytics-core/dist/esm/validation/helpers.js","../../node_modules/@segment/analytics-core/dist/esm/validation/assertions.js","../../node_modules/@segment/analytics-core/dist/esm/events/index.js","../../node_modules/@segment/analytics-core/dist/esm/callback/index.js","../../node_modules/@segment/analytics-generic-utils/dist/esm/create-deferred/create-deferred.js","../../node_modules/@segment/analytics-generic-utils/dist/esm/emitter/emitter.js","../../node_modules/@segment/analytics-core/dist/esm/priority-queue/backoff.js","../../node_modules/@segment/analytics-core/dist/esm/priority-queue/index.js","../../node_modules/@lukeed/uuid/dist/index.mjs","../../node_modules/@segment/analytics-core/dist/esm/logger/index.js","../../node_modules/@segment/analytics-core/dist/esm/stats/index.js","../../node_modules/@segment/analytics-core/dist/esm/context/index.js","../../node_modules/@segment/analytics-core/dist/esm/utils/group-by.js","../../node_modules/@segment/analytics-core/dist/esm/utils/is-thenable.js","../../node_modules/@segment/analytics-core/dist/esm/task/task-group.js","../../node_modules/@segment/analytics-core/dist/esm/queue/delivery.js","../../node_modules/@segment/analytics-core/dist/esm/queue/event-queue.js","../../node_modules/@segment/analytics-core/dist/esm/analytics/dispatch.js","../../node_modules/@segment/analytics-next/dist/pkg/core/arguments-resolver/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/environment/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/connection/index.js","../../node_modules/unfetch/dist/unfetch.module.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/get-global.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/fetch.js","../../node_modules/@segment/analytics-next/dist/pkg/generated/version.js","../../node_modules/@segment/analytics-next/dist/pkg/core/constants/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/stats/remote-metrics.js","../../node_modules/@segment/analytics-next/dist/pkg/core/stats/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/context/index.js","../../node_modules/@segment/analytics-page-tools/dist/esm/index.mjs","../../node_modules/@segment/analytics-next/dist/pkg/lib/pick.js","../../node_modules/@segment/analytics-next/dist/pkg/core/page/add-page-context.js","../../node_modules/@segment/analytics-next/dist/pkg/core/events/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/plugin/index.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/priority-queue/persisted.js","../../node_modules/@segment/analytics-next/dist/pkg/core/queue/event-queue.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/bind-all.js","../../node_modules/js-cookie/dist/js.cookie.mjs","../../node_modules/@segment/analytics-next/dist/pkg/core/user/tld.js","../../node_modules/@segment/analytics-next/dist/pkg/core/storage/cookieStorage.js","../../node_modules/@segment/analytics-next/dist/pkg/core/storage/localStorage.js","../../node_modules/@segment/analytics-next/dist/pkg/core/storage/memoryStorage.js","../../node_modules/@segment/analytics-next/dist/pkg/core/storage/types.js","../../node_modules/@segment/analytics-next/dist/pkg/core/storage/settings.js","../../node_modules/@segment/analytics-next/dist/pkg/core/storage/universalStorage.js","../../node_modules/@segment/analytics-next/dist/pkg/core/storage/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/user/index.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/global-analytics-helper.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/is-thenable.js","../../node_modules/@segment/analytics-next/dist/pkg/core/buffer/index.js","../../node_modules/obj-case/index.js","../../node_modules/@segment/facade/dist/address.js","../../node_modules/@segment/facade/dist/clone.js","../../node_modules/@segment/facade/dist/is-enabled.js","../../node_modules/@segment/isodate/lib/index.js","../../node_modules/new-date/lib/milliseconds.js","../../node_modules/new-date/lib/seconds.js","../../node_modules/new-date/lib/index.js","../../node_modules/@segment/isodate-traverse/lib/index.js","../../node_modules/@segment/facade/dist/facade.js","../../node_modules/inherits/inherits_browser.js","../../node_modules/@segment/facade/dist/alias.js","../../node_modules/@segment/facade/dist/is-email.js","../../node_modules/@segment/facade/dist/group.js","../../node_modules/@segment/facade/dist/identify.js","../../node_modules/@segment/facade/dist/track.js","../../node_modules/@segment/facade/dist/page.js","../../node_modules/@segment/facade/dist/screen.js","../../node_modules/@segment/facade/dist/delete.js","../../node_modules/@segment/facade/dist/index.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/to-facade.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/on-page-change.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/ratelimit-error.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/shared-dispatcher.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/batched-dispatcher.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/fetch-dispatcher.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/normalize.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/p-while.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/schedule-flush.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/analytics/index.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/get-process-env.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/parse-cdn.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/merged-options.js","../../node_modules/@segment/analytics-next/dist/pkg/core/query-string/gracefulDecodeURIComponent.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/client-hints/index.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/env-enrichment/index.js","../../node_modules/@segment/analytics-next/dist/pkg/lib/load-script.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/middleware/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/stats/metric-helpers.js","../../node_modules/@segment/analytics-next/dist/pkg/plugins/remote-loader/index.js","../../node_modules/@segment/analytics-next/dist/pkg/core/inspector/index.js","../../node_modules/@segment/analytics-next/dist/pkg/browser/index.js","../../node_modules/@segment/analytics-next/dist/pkg/node/node.browser.js"],"sourcesContent":["export function dset(obj, keys, val) {\n\tkeys.split && (keys=keys.split('.'));\n\tvar i=0, l=keys.length, t=obj, x, k;\n\twhile (i < l) {\n\t\tk = ''+keys[i++];\n\t\tif (k === '__proto__' || k === 'constructor' || k === 'prototype') break;\n\t\tt = t[k] = (i === l) ? val : (typeof(x=t[k])===typeof(keys)) ? x : (keys[i]*0 !== 0 || !!~(''+keys[i]).indexOf('.')) ? {} : [];\n\t}\n}\n","export var pickBy = function (obj, fn) {\n return Object.keys(obj)\n .filter(function (k) { return fn(k, obj[k]); })\n .reduce(function (acc, key) { return ((acc[key] = obj[key]), acc); }, {});\n};\n//# sourceMappingURL=pick.js.map","import { __extends } from \"tslib\";\nvar ValidationError = /** @class */ (function (_super) {\n __extends(ValidationError, _super);\n function ValidationError(field, message) {\n var _this = _super.call(this, \"\".concat(field, \" \").concat(message)) || this;\n _this.field = field;\n return _this;\n }\n return ValidationError;\n}(Error));\nexport { ValidationError };\n//# sourceMappingURL=errors.js.map","export function isString(obj) {\n return typeof obj === 'string';\n}\nexport function isNumber(obj) {\n return typeof obj === 'number';\n}\nexport function isFunction(obj) {\n return typeof obj === 'function';\n}\nexport function exists(val) {\n return val !== undefined && val !== null;\n}\nexport function isPlainObject(obj) {\n return (Object.prototype.toString.call(obj).slice(8, -1).toLowerCase() === 'object');\n}\n//# sourceMappingURL=helpers.js.map","import { ValidationError } from './errors';\nimport { isString, isPlainObject, exists } from './helpers';\nvar stringError = 'is not a string';\nvar objError = 'is not an object';\nvar nilError = 'is nil';\n// user identity check could hypothetically could be used in the browser event factory, but not 100% sure -- so this is node only for now\nexport function assertUserIdentity(event) {\n var USER_FIELD_NAME = '.userId/anonymousId/previousId/groupId';\n var getAnyUserId = function (event) { var _a, _b, _c; return (_c = (_b = (_a = event.userId) !== null && _a !== void 0 ? _a : event.anonymousId) !== null && _b !== void 0 ? _b : event.groupId) !== null && _c !== void 0 ? _c : event.previousId; };\n var id = getAnyUserId(event);\n if (!exists(id)) {\n throw new ValidationError(USER_FIELD_NAME, nilError);\n }\n else if (!isString(id)) {\n throw new ValidationError(USER_FIELD_NAME, stringError);\n }\n}\nexport function assertEventExists(event) {\n if (!exists(event)) {\n throw new ValidationError('Event', nilError);\n }\n if (typeof event !== 'object') {\n throw new ValidationError('Event', objError);\n }\n}\nexport function assertEventType(event) {\n if (!isString(event.type)) {\n throw new ValidationError('.type', stringError);\n }\n}\nexport function assertTrackEventName(event) {\n if (!isString(event.event)) {\n throw new ValidationError('.event', stringError);\n }\n}\nexport function assertTrackEventProperties(event) {\n if (!isPlainObject(event.properties)) {\n throw new ValidationError('.properties', objError);\n }\n}\nexport function assertTraits(event) {\n if (!isPlainObject(event.traits)) {\n throw new ValidationError('.traits', objError);\n }\n}\nexport function assertMessageId(event) {\n if (!isString(event.messageId)) {\n throw new ValidationError('.messageId', stringError);\n }\n}\nexport function validateEvent(event) {\n assertEventExists(event);\n assertEventType(event);\n assertMessageId(event);\n if (event.type === 'track') {\n assertTrackEventName(event);\n assertTrackEventProperties(event);\n }\n if (['group', 'identify'].includes(event.type)) {\n assertTraits(event);\n }\n}\n//# sourceMappingURL=assertions.js.map","import { __assign, __rest } from \"tslib\";\nexport * from './interfaces';\nimport { dset } from 'dset';\nimport { pickBy } from '../utils/pick';\nimport { validateEvent } from '../validation/assertions';\n/**\n * Internal settings object that is used internally by the factory\n */\nvar InternalEventFactorySettings = /** @class */ (function () {\n function InternalEventFactorySettings(settings) {\n var _a, _b;\n this.settings = settings;\n this.createMessageId = settings.createMessageId;\n this.onEventMethodCall = (_a = settings.onEventMethodCall) !== null && _a !== void 0 ? _a : (function () { });\n this.onFinishedEvent = (_b = settings.onFinishedEvent) !== null && _b !== void 0 ? _b : (function () { });\n }\n return InternalEventFactorySettings;\n}());\nvar CoreEventFactory = /** @class */ (function () {\n function CoreEventFactory(settings) {\n this.settings = new InternalEventFactorySettings(settings);\n }\n CoreEventFactory.prototype.track = function (event, properties, options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'track', options: options });\n return this.normalize(__assign(__assign({}, this.baseEvent()), { event: event, type: 'track', properties: properties !== null && properties !== void 0 ? properties : {}, options: __assign({}, options), integrations: __assign({}, integrationOptions) }));\n };\n CoreEventFactory.prototype.page = function (category, page, properties, options, integrationOptions) {\n var _a;\n this.settings.onEventMethodCall({ type: 'page', options: options });\n var event = {\n type: 'page',\n properties: __assign({}, properties),\n options: __assign({}, options),\n integrations: __assign({}, integrationOptions),\n };\n if (category !== null) {\n event.category = category;\n event.properties = (_a = event.properties) !== null && _a !== void 0 ? _a : {};\n event.properties.category = category;\n }\n if (page !== null) {\n event.name = page;\n }\n return this.normalize(__assign(__assign({}, this.baseEvent()), event));\n };\n CoreEventFactory.prototype.screen = function (category, screen, properties, options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'screen', options: options });\n var event = {\n type: 'screen',\n properties: __assign({}, properties),\n options: __assign({}, options),\n integrations: __assign({}, integrationOptions),\n };\n if (category !== null) {\n event.category = category;\n }\n if (screen !== null) {\n event.name = screen;\n }\n return this.normalize(__assign(__assign({}, this.baseEvent()), event));\n };\n CoreEventFactory.prototype.identify = function (userId, traits, options, integrationsOptions) {\n this.settings.onEventMethodCall({ type: 'identify', options: options });\n return this.normalize(__assign(__assign({}, this.baseEvent()), { type: 'identify', userId: userId, traits: traits !== null && traits !== void 0 ? traits : {}, options: __assign({}, options), integrations: integrationsOptions }));\n };\n CoreEventFactory.prototype.group = function (groupId, traits, options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'group', options: options });\n return this.normalize(__assign(__assign({}, this.baseEvent()), { type: 'group', traits: traits !== null && traits !== void 0 ? traits : {}, options: __assign({}, options), integrations: __assign({}, integrationOptions), //\n groupId: groupId }));\n };\n CoreEventFactory.prototype.alias = function (to, from, // TODO: can we make this undefined?\n options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'alias', options: options });\n var base = {\n userId: to,\n type: 'alias',\n options: __assign({}, options),\n integrations: __assign({}, integrationOptions),\n };\n if (from !== null) {\n base.previousId = from;\n }\n if (to === undefined) {\n return this.normalize(__assign(__assign({}, base), this.baseEvent()));\n }\n return this.normalize(__assign(__assign({}, this.baseEvent()), base));\n };\n CoreEventFactory.prototype.baseEvent = function () {\n return {\n integrations: {},\n options: {},\n };\n };\n /**\n * Builds the context part of an event based on \"foreign\" keys that\n * are provided in the `Options` parameter for an Event\n */\n CoreEventFactory.prototype.context = function (options) {\n var _a;\n /**\n * If the event options are known keys from this list, we move them to the top level of the event.\n * Any other options are moved to context.\n */\n var eventOverrideKeys = [\n 'userId',\n 'anonymousId',\n 'timestamp',\n 'messageId',\n ];\n delete options['integrations'];\n var providedOptionsKeys = Object.keys(options);\n var context = (_a = options.context) !== null && _a !== void 0 ? _a : {};\n var eventOverrides = {};\n providedOptionsKeys.forEach(function (key) {\n if (key === 'context') {\n return;\n }\n if (eventOverrideKeys.includes(key)) {\n dset(eventOverrides, key, options[key]);\n }\n else {\n dset(context, key, options[key]);\n }\n });\n return [context, eventOverrides];\n };\n CoreEventFactory.prototype.normalize = function (event) {\n var _a, _b;\n var integrationBooleans = Object.keys((_a = event.integrations) !== null && _a !== void 0 ? _a : {}).reduce(function (integrationNames, name) {\n var _a;\n var _b;\n return __assign(__assign({}, integrationNames), (_a = {}, _a[name] = Boolean((_b = event.integrations) === null || _b === void 0 ? void 0 : _b[name]), _a));\n }, {});\n // filter out any undefined options\n event.options = pickBy(event.options || {}, function (_, value) {\n return value !== undefined;\n });\n // This is pretty trippy, but here's what's going on:\n // - a) We don't pass initial integration options as part of the event, only if they're true or false\n // - b) We do accept per integration overrides (like integrations.Amplitude.sessionId) at the event level\n // Hence the need to convert base integration options to booleans, but maintain per event integration overrides\n var allIntegrations = __assign(__assign({}, integrationBooleans), (_b = event.options) === null || _b === void 0 ? void 0 : _b.integrations);\n var _c = event.options\n ? this.context(event.options)\n : [], context = _c[0], overrides = _c[1];\n var options = event.options, rest = __rest(event, [\"options\"]);\n var evt = __assign(__assign(__assign(__assign({ timestamp: new Date() }, rest), { context: context, integrations: allIntegrations }), overrides), { messageId: options.messageId || this.settings.createMessageId() });\n this.settings.onFinishedEvent(evt);\n validateEvent(evt);\n return evt;\n };\n return CoreEventFactory;\n}());\nexport { CoreEventFactory };\n//# sourceMappingURL=index.js.map","export function pTimeout(promise, timeout) {\n return new Promise(function (resolve, reject) {\n var timeoutId = setTimeout(function () {\n reject(Error('Promise timed out'));\n }, timeout);\n promise\n .then(function (val) {\n clearTimeout(timeoutId);\n return resolve(val);\n })\n .catch(reject);\n });\n}\nexport function sleep(timeoutInMs) {\n return new Promise(function (resolve) { return setTimeout(resolve, timeoutInMs); });\n}\n/**\n * @param ctx\n * @param callback - the function to invoke\n * @param delay - aka \"timeout\". The amount of time in ms to wait before invoking the callback.\n */\nexport function invokeCallback(ctx, callback, delay) {\n var cb = function () {\n try {\n return Promise.resolve(callback(ctx));\n }\n catch (err) {\n return Promise.reject(err);\n }\n };\n return (sleep(delay)\n // pTimeout ensures that the callback can't cause the context to hang\n .then(function () { return pTimeout(cb(), 1000); })\n .catch(function (err) {\n ctx === null || ctx === void 0 ? void 0 : ctx.log('warn', 'Callback Error', { error: err });\n ctx === null || ctx === void 0 ? void 0 : ctx.stats.increment('callback_error');\n })\n .then(function () { return ctx; }));\n}\n//# sourceMappingURL=index.js.map","/**\n * Return a promise that can be externally resolved\n */\nexport var createDeferred = function () {\n var resolve;\n var reject;\n var settled = false;\n var promise = new Promise(function (_resolve, _reject) {\n resolve = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n settled = true;\n _resolve.apply(void 0, args);\n };\n reject = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n settled = true;\n _reject.apply(void 0, args);\n };\n });\n return {\n resolve: resolve,\n reject: reject,\n promise: promise,\n isSettled: function () { return settled; },\n };\n};\n//# sourceMappingURL=create-deferred.js.map","/**\n * Event Emitter that takes the expected contract as a generic\n * @example\n * ```ts\n * type Contract = {\n * delivery_success: [DeliverySuccessResponse, Metrics],\n * delivery_failure: [DeliveryError]\n * }\n * new Emitter<Contract>()\n * .on('delivery_success', (res, metrics) => ...)\n * .on('delivery_failure', (err) => ...)\n * ```\n */\nvar Emitter = /** @class */ (function () {\n function Emitter(options) {\n var _a;\n this.callbacks = {};\n this.warned = false;\n this.maxListeners = (_a = options === null || options === void 0 ? void 0 : options.maxListeners) !== null && _a !== void 0 ? _a : 10;\n }\n Emitter.prototype.warnIfPossibleMemoryLeak = function (event) {\n if (this.warned) {\n return;\n }\n if (this.maxListeners &&\n this.callbacks[event].length > this.maxListeners) {\n console.warn(\"Event Emitter: Possible memory leak detected; \".concat(String(event), \" has exceeded \").concat(this.maxListeners, \" listeners.\"));\n this.warned = true;\n }\n };\n Emitter.prototype.on = function (event, callback) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [callback];\n }\n else {\n this.callbacks[event].push(callback);\n this.warnIfPossibleMemoryLeak(event);\n }\n return this;\n };\n Emitter.prototype.once = function (event, callback) {\n var _this = this;\n var on = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this.off(event, on);\n callback.apply(_this, args);\n };\n this.on(event, on);\n return this;\n };\n Emitter.prototype.off = function (event, callback) {\n var _a;\n var fns = (_a = this.callbacks[event]) !== null && _a !== void 0 ? _a : [];\n var without = fns.filter(function (fn) { return fn !== callback; });\n this.callbacks[event] = without;\n return this;\n };\n Emitter.prototype.emit = function (event) {\n var _this = this;\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var callbacks = (_a = this.callbacks[event]) !== null && _a !== void 0 ? _a : [];\n callbacks.forEach(function (callback) {\n callback.apply(_this, args);\n });\n return this;\n };\n return Emitter;\n}());\nexport { Emitter };\n//# sourceMappingURL=emitter.js.map","export function backoff(params) {\n var random = Math.random() + 1;\n var _a = params.minTimeout, minTimeout = _a === void 0 ? 500 : _a, _b = params.factor, factor = _b === void 0 ? 2 : _b, attempt = params.attempt, _c = params.maxTimeout, maxTimeout = _c === void 0 ? Infinity : _c;\n return Math.min(random * minTimeout * Math.pow(factor, attempt), maxTimeout);\n}\n//# sourceMappingURL=backoff.js.map","import { __extends } from \"tslib\";\nimport { Emitter } from '@segment/analytics-generic-utils';\nimport { backoff } from './backoff';\n/**\n * @internal\n */\nexport var ON_REMOVE_FROM_FUTURE = 'onRemoveFromFuture';\nvar PriorityQueue = /** @class */ (function (_super) {\n __extends(PriorityQueue, _super);\n function PriorityQueue(maxAttempts, queue, seen) {\n var _this = _super.call(this) || this;\n _this.future = [];\n _this.maxAttempts = maxAttempts;\n _this.queue = queue;\n _this.seen = seen !== null && seen !== void 0 ? seen : {};\n return _this;\n }\n PriorityQueue.prototype.push = function () {\n var _this = this;\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var accepted = items.map(function (operation) {\n var attempts = _this.updateAttempts(operation);\n if (attempts > _this.maxAttempts || _this.includes(operation)) {\n return false;\n }\n _this.queue.push(operation);\n return true;\n });\n this.queue = this.queue.sort(function (a, b) { return _this.getAttempts(a) - _this.getAttempts(b); });\n return accepted;\n };\n PriorityQueue.prototype.pushWithBackoff = function (item, minTimeout) {\n var _this = this;\n if (minTimeout === void 0) { minTimeout = 0; }\n // One immediate retry unless we have a minimum timeout (e.g. for rate limiting)\n if (minTimeout == 0 && this.getAttempts(item) === 0) {\n return this.push(item)[0];\n }\n var attempt = this.updateAttempts(item);\n if (attempt > this.maxAttempts || this.includes(item)) {\n return false;\n }\n var timeout = backoff({ attempt: attempt - 1 });\n if (minTimeout > 0 && timeout < minTimeout) {\n timeout = minTimeout;\n }\n setTimeout(function () {\n _this.queue.push(item);\n // remove from future list\n _this.future = _this.future.filter(function (f) { return f.id !== item.id; });\n // Lets listeners know that a 'future' message is now available in the queue\n _this.emit(ON_REMOVE_FROM_FUTURE);\n }, timeout);\n this.future.push(item);\n return true;\n };\n PriorityQueue.prototype.getAttempts = function (item) {\n var _a;\n return (_a = this.seen[item.id]) !== null && _a !== void 0 ? _a : 0;\n };\n PriorityQueue.prototype.updateAttempts = function (item) {\n this.seen[item.id] = this.getAttempts(item) + 1;\n return this.getAttempts(item);\n };\n PriorityQueue.prototype.includes = function (item) {\n return (this.queue.includes(item) ||\n this.future.includes(item) ||\n Boolean(this.queue.find(function (i) { return i.id === item.id; })) ||\n Boolean(this.future.find(function (i) { return i.id === item.id; })));\n };\n PriorityQueue.prototype.pop = function () {\n return this.queue.shift();\n };\n Object.defineProperty(PriorityQueue.prototype, \"length\", {\n get: function () {\n return this.queue.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PriorityQueue.prototype, \"todo\", {\n get: function () {\n return this.queue.length + this.future.length;\n },\n enumerable: false,\n configurable: true\n });\n return PriorityQueue;\n}(Emitter));\nexport { PriorityQueue };\n//# sourceMappingURL=index.js.map","var IDX=256, HEX=[], BUFFER;\nwhile (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);\n\nexport function v4() {\n\tvar i=0, num, out='';\n\n\tif (!BUFFER || ((IDX + 16) > 256)) {\n\t\tBUFFER = Array(i=256);\n\t\twhile (i--) BUFFER[i] = 256 * Math.random() | 0;\n\t\ti = IDX = 0;\n\t}\n\n\tfor (; i < 16; i++) {\n\t\tnum = BUFFER[IDX + i];\n\t\tif (i==6) out += HEX[num & 15 | 64];\n\t\telse if (i==8) out += HEX[num & 63 | 128];\n\t\telse out += HEX[num];\n\n\t\tif (i & 1 && i > 1 && i < 11) out += '-';\n\t}\n\n\tIDX++;\n\treturn out;\n}\n","import { __assign } from \"tslib\";\nvar CoreLogger = /** @class */ (function () {\n function CoreLogger() {\n this._logs = [];\n }\n CoreLogger.prototype.log = function (level, message, extras) {\n var time = new Date();\n this._logs.push({\n level: level,\n message: message,\n time: time,\n extras: extras,\n });\n };\n Object.defineProperty(CoreLogger.prototype, \"logs\", {\n get: function () {\n return this._logs;\n },\n enumerable: false,\n configurable: true\n });\n CoreLogger.prototype.flush = function () {\n if (this.logs.length > 1) {\n var formatted = this._logs.reduce(function (logs, log) {\n var _a;\n var _b, _c;\n var line = __assign(__assign({}, log), { json: JSON.stringify(log.extras, null, ' '), extras: log.extras });\n delete line['time'];\n var key = (_c = (_b = log.time) === null || _b === void 0 ? void 0 : _b.toISOString()) !== null && _c !== void 0 ? _c : '';\n if (logs[key]) {\n key = \"\".concat(key, \"-\").concat(Math.random());\n }\n return __assign(__assign({}, logs), (_a = {}, _a[key] = line, _a));\n }, {});\n // ie doesn't like console.table\n if (console.table) {\n console.table(formatted);\n }\n else {\n console.log(formatted);\n }\n }\n else {\n this.logs.forEach(function (logEntry) {\n var level = logEntry.level, message = logEntry.message, extras = logEntry.extras;\n if (level === 'info' || level === 'debug') {\n console.log(message, extras !== null && extras !== void 0 ? extras : '');\n }\n else {\n console[level](message, extras !== null && extras !== void 0 ? extras : '');\n }\n });\n }\n this._logs = [];\n };\n return CoreLogger;\n}());\nexport { CoreLogger };\n//# sourceMappingURL=index.js.map","import { __assign, __extends } from \"tslib\";\nvar compactMetricType = function (type) {\n var enums = {\n gauge: 'g',\n counter: 'c',\n };\n return enums[type];\n};\nvar CoreStats = /** @class */ (function () {\n function CoreStats() {\n this.metrics = [];\n }\n CoreStats.prototype.increment = function (metric, by, tags) {\n if (by === void 0) { by = 1; }\n this.metrics.push({\n metric: metric,\n value: by,\n tags: tags !== null && tags !== void 0 ? tags : [],\n type: 'counter',\n timestamp: Date.now(),\n });\n };\n CoreStats.prototype.gauge = function (metric, value, tags) {\n this.metrics.push({\n metric: metric,\n value: value,\n tags: tags !== null && tags !== void 0 ? tags : [],\n type: 'gauge',\n timestamp: Date.now(),\n });\n };\n CoreStats.prototype.flush = function () {\n var formatted = this.metrics.map(function (m) { return (__assign(__assign({}, m), { tags: m.tags.join(',') })); });\n // ie doesn't like console.table\n if (console.table) {\n console.table(formatted);\n }\n else {\n console.log(formatted);\n }\n this.metrics = [];\n };\n /**\n * compact keys for smaller payload\n */\n CoreStats.prototype.serialize = function () {\n return this.metrics.map(function (m) {\n return {\n m: m.metric,\n v: m.value,\n t: m.tags,\n k: compactMetricType(m.type),\n e: m.timestamp,\n };\n });\n };\n return CoreStats;\n}());\nexport { CoreStats };\nvar NullStats = /** @class */ (function (_super) {\n __extends(NullStats, _super);\n function NullStats() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NullStats.prototype.gauge = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.increment = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.flush = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.serialize = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n return [];\n };\n return NullStats;\n}(CoreStats));\nexport { NullStats };\n//# sourceMappingURL=index.js.map","import { v4 as uuid } from '@lukeed/uuid';\nimport { dset } from 'dset';\nimport { CoreLogger } from '../logger';\nimport { NullStats } from '../stats';\nvar ContextCancelation = /** @class */ (function () {\n function ContextCancelation(options) {\n var _a, _b, _c;\n this.retry = (_a = options.retry) !== null && _a !== void 0 ? _a : true;\n this.type = (_b = options.type) !== null && _b !== void 0 ? _b : 'plugin Error';\n this.reason = (_c = options.reason) !== null && _c !== void 0 ? _c : '';\n }\n return ContextCancelation;\n}());\nexport { ContextCancelation };\nvar CoreContext = /** @class */ (function () {\n function CoreContext(event, id, stats, logger) {\n if (id === void 0) { id = uuid(); }\n if (stats === void 0) { stats = new NullStats(); }\n if (logger === void 0) { logger = new CoreLogger(); }\n this.attempts = 0;\n this.event = event;\n this._id = id;\n this.logger = logger;\n this.stats = stats;\n }\n CoreContext.system = function () {\n // This should be overridden by the subclass to return an instance of the subclass.\n };\n CoreContext.prototype.isSame = function (other) {\n return other.id === this.id;\n };\n CoreContext.prototype.cancel = function (error) {\n if (error) {\n throw error;\n }\n throw new ContextCancelation({ reason: 'Context Cancel' });\n };\n CoreContext.prototype.log = function (level, message, extras) {\n this.logger.log(level, message, extras);\n };\n Object.defineProperty(CoreContext.prototype, \"id\", {\n get: function () {\n return this._id;\n },\n enumerable: false,\n configurable: true\n });\n CoreContext.prototype.updateEvent = function (path, val) {\n var _a;\n // Don't allow integrations that are set to false to be overwritten with integration settings.\n if (path.split('.')[0] === 'integrations') {\n var integrationName = path.split('.')[1];\n if (((_a = this.event.integrations) === null || _a === void 0 ? void 0 : _a[integrationName]) === false) {\n return this.event;\n }\n }\n dset(this.event, path, val);\n return this.event;\n };\n CoreContext.prototype.failedDelivery = function () {\n return this._failedDelivery;\n };\n CoreContext.prototype.setFailedDelivery = function (options) {\n this._failedDelivery = options;\n };\n CoreContext.prototype.logs = function () {\n return this.logger.logs;\n };\n CoreContext.prototype.flush = function () {\n this.logger.flush();\n this.stats.flush();\n };\n CoreContext.prototype.toJSON = function () {\n return {\n id: this._id,\n event: this.event,\n logs: this.logger.logs,\n metrics: this.stats.metrics,\n };\n };\n return CoreContext;\n}());\nexport { CoreContext };\n//# sourceMappingURL=index.js.map","import { __spreadArray } from \"tslib\";\nexport function groupBy(collection, grouper) {\n var results = {};\n collection.forEach(function (item) {\n var _a;\n var key = undefined;\n if (typeof grouper === 'string') {\n var suggestedKey = item[grouper];\n key =\n typeof suggestedKey !== 'string'\n ? JSON.stringify(suggestedKey)\n : suggestedKey;\n }\n else if (grouper instanceof Function) {\n key = grouper(item);\n }\n if (key === undefined) {\n return;\n }\n results[key] = __spreadArray(__spreadArray([], ((_a = results[key]) !== null && _a !== void 0 ? _a : []), true), [item], false);\n });\n return results;\n}\n//# sourceMappingURL=group-by.js.map","/**\n * Check if thenable\n * (instanceof Promise doesn't respect realms)\n */\nexport var isThenable = function (value) {\n return typeof value === 'object' &&\n value !== null &&\n 'then' in value &&\n typeof value.then === 'function';\n};\n//# sourceMappingURL=is-thenable.js.map","import { isThenable } from '../utils/is-thenable';\nexport var createTaskGroup = function () {\n var taskCompletionPromise;\n var resolvePromise;\n var count = 0;\n return {\n done: function () { return taskCompletionPromise; },\n run: function (op) {\n var returnValue = op();\n if (isThenable(returnValue)) {\n if (++count === 1) {\n taskCompletionPromise = new Promise(function (res) { return (resolvePromise = res); });\n }\n returnValue.finally(function () { return --count === 0 && resolvePromise(); });\n }\n return returnValue;\n },\n };\n};\n//# sourceMappingURL=task-group.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { CoreContext, ContextCancelation } from '../context';\nfunction tryAsync(fn) {\n return __awaiter(this, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, fn()];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n err_1 = _a.sent();\n return [2 /*return*/, Promise.reject(err_1)];\n case 3: return [2 /*return*/];\n }\n });\n });\n}\nexport function attempt(ctx, plugin) {\n ctx.log('debug', 'plugin', { plugin: plugin.name });\n var start = new Date().getTime();\n var hook = plugin[ctx.event.type];\n if (hook === undefined) {\n return Promise.resolve(ctx);\n }\n var newCtx = tryAsync(function () { return hook.apply(plugin, [ctx]); })\n .then(function (ctx) {\n var done = new Date().getTime() - start;\n ctx.stats.gauge('plugin_time', done, [\"plugin:\".concat(plugin.name)]);\n return ctx;\n })\n .catch(function (err) {\n if (err instanceof ContextCancelation &&\n err.type === 'middleware_cancellation') {\n throw err;\n }\n if (err instanceof ContextCancelation) {\n ctx.log('warn', err.type, {\n plugin: plugin.name,\n error: err,\n });\n return err;\n }\n ctx.log('error', 'plugin Error', {\n plugin: plugin.name,\n error: err,\n });\n ctx.stats.increment('plugin_error', 1, [\"plugin:\".concat(plugin.name)]);\n return err;\n });\n return newCtx;\n}\nexport function ensure(ctx, plugin) {\n return attempt(ctx, plugin).then(function (newContext) {\n if (newContext instanceof CoreContext) {\n return newContext;\n }\n ctx.log('debug', 'Context canceled');\n ctx.stats.increment('context_canceled');\n ctx.cancel(newContext);\n });\n}\n//# sourceMappingURL=delivery.js.map","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { groupBy } from '../utils/group-by';\nimport { ON_REMOVE_FROM_FUTURE } from '../priority-queue';\nimport { CoreContext, ContextCancelation } from '../context';\nimport { Emitter } from '@segment/analytics-generic-utils';\nimport { createTaskGroup } from '../task/task-group';\nimport { attempt, ensure } from './delivery';\nvar CoreEventQueue = /** @class */ (function (_super) {\n __extends(CoreEventQueue, _super);\n function CoreEventQueue(priorityQueue) {\n var _this = _super.call(this) || this;\n /**\n * All event deliveries get suspended until all the tasks in this task group are complete.\n * For example: a middleware that augments the event object should be loaded safely as a\n * critical task, this way, event queue will wait for it to be ready before sending events.\n *\n * This applies to all the events already in the queue, and the upcoming ones\n */\n _this.criticalTasks = createTaskGroup();\n _this.plugins = [];\n _this.failedInitializations = [];\n _this.flushing = false;\n _this.queue = priorityQueue;\n _this.queue.on(ON_REMOVE_FROM_FUTURE, function () {\n _this.scheduleFlush(0);\n });\n return _this;\n }\n CoreEventQueue.prototype.register = function (ctx, plugin, instance) {\n return __awaiter(this, void 0, void 0, function () {\n var handleLoadError, err_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.plugins.push(plugin);\n handleLoadError = function (err) {\n _this.failedInitializations.push(plugin.name);\n _this.emit('initialization_failure', plugin);\n console.warn(plugin.name, err);\n ctx.log('warn', 'Failed to load destination', {\n plugin: plugin.name,\n error: err,\n });\n // Filter out the failed plugin by excluding it from the list\n _this.plugins = _this.plugins.filter(function (p) { return p !== plugin; });\n };\n if (!(plugin.type === 'destination' && plugin.name !== 'Segment.io')) return [3 /*break*/, 1];\n plugin.load(ctx, instance).catch(handleLoadError);\n return [3 /*break*/, 4];\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, plugin.load(ctx, instance)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n handleLoadError(err_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CoreEventQueue.prototype.deregister = function (ctx, plugin, instance) {\n return __awaiter(this, void 0, void 0, function () {\n var e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n if (!plugin.unload) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.resolve(plugin.unload(ctx, instance))];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this.plugins = this.plugins.filter(function (p) { return p.name !== plugin.name; });\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n ctx.log('warn', 'Failed to unload destination', {\n plugin: plugin.name,\n error: e_1,\n });\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CoreEventQueue.prototype.dispatch = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var willDeliver;\n return __generator(this, function (_a) {\n ctx.log('debug', 'Dispatching');\n ctx.stats.increment('message_dispatched');\n this.queue.push(ctx);\n willDeliver = this.subscribeToDelivery(ctx);\n this.scheduleFlush(0);\n return [2 /*return*/, willDeliver];\n });\n });\n };\n CoreEventQueue.prototype.subscribeToDelivery = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve) {\n var onDeliver = function (flushed, delivered) {\n if (flushed.isSame(ctx)) {\n _this.off('flush', onDeliver);\n if (delivered) {\n resolve(flushed);\n }\n else {\n resolve(flushed);\n }\n }\n };\n _this.on('flush', onDeliver);\n })];\n });\n });\n };\n CoreEventQueue.prototype.dispatchSingle = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n ctx.log('debug', 'Dispatching');\n ctx.stats.increment('message_dispatched');\n this.queue.updateAttempts(ctx);\n ctx.attempts = 1;\n return [2 /*return*/, this.deliver(ctx).catch(function (err) {\n var accepted = _this.enqueuRetry(err, ctx);\n if (!accepted) {\n ctx.setFailedDelivery({ reason: err });\n return ctx;\n }\n return _this.subscribeToDelivery(ctx);\n })];\n });\n });\n };\n CoreEventQueue.prototype.isEmpty = function () {\n return this.queue.length === 0;\n };\n CoreEventQueue.prototype.scheduleFlush = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = 500; }\n if (this.flushing) {\n return;\n }\n this.flushing = true;\n setTimeout(function () {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _this.flush().then(function () {\n setTimeout(function () {\n _this.flushing = false;\n if (_this.queue.length) {\n _this.scheduleFlush(0);\n }\n }, 0);\n });\n }, timeout);\n };\n CoreEventQueue.prototype.deliver = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var start, done, err_2, error;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.criticalTasks.done()];\n case 1:\n _a.sent();\n start = Date.now();\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, this.flushOne(ctx)];\n case 3:\n ctx = _a.sent();\n done = Date.now() - start;\n this.emit('delivery_success', ctx);\n ctx.stats.gauge('delivered', done);\n ctx.log('debug', 'Delivered', ctx.event);\n return [2 /*return*/, ctx];\n case 4:\n err_2 = _a.sent();\n error = err_2;\n ctx.log('error', 'Failed to deliver', error);\n this.emit('delivery_failure', ctx, error);\n ctx.stats.increment('delivery_failed');\n throw err_2;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n CoreEventQueue.prototype.enqueuRetry = function (err, ctx) {\n var retriable = !(err instanceof ContextCancelation) || err.retry;\n if (!retriable) {\n return false;\n }\n return this.queue.pushWithBackoff(ctx);\n };\n CoreEventQueue.prototype.flush = function () {\n return __awaiter(this, void 0, void 0, function () {\n var ctx, err_3, accepted;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.queue.length === 0) {\n return [2 /*return*/, []];\n }\n ctx = this.queue.pop();\n if (!ctx) {\n return [2 /*return*/, []];\n }\n ctx.attempts = this.queue.getAttempts(ctx);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.deliver(ctx)];\n case 2:\n ctx = _a.sent();\n this.emit('flush', ctx, true);\n return [3 /*break*/, 4];\n case 3:\n err_3 = _a.sent();\n accepted = this.enqueuRetry(err_3, ctx);\n if (!accepted) {\n ctx.setFailedDelivery({ reason: err_3 });\n this.emit('flush', ctx, false);\n }\n return [2 /*return*/, []];\n case 4: return [2 /*return*/, [ctx]];\n }\n });\n });\n };\n CoreEventQueue.prototype.isReady = function () {\n // return this.plugins.every((p) => p.isLoaded())\n // should we wait for every plugin to load?\n return true;\n };\n CoreEventQueue.prototype.availableExtensions = function (denyList) {\n var available = this.plugins.filter(function (p) {\n var _a, _b, _c;\n // Only filter out destination plugins or the Segment.io plugin\n if (p.type !== 'destination' && p.name !== 'Segment.io') {\n return true;\n }\n var alternativeNameMatch = undefined;\n (_a = p.alternativeNames) === null || _a === void 0 ? void 0 : _a.forEach(function (name) {\n if (denyList[name] !== undefined) {\n alternativeNameMatch = denyList[name];\n }\n });\n // Explicit integration option takes precedence, `All: false` does not apply to Segment.io\n return ((_c = (_b = denyList[p.name]) !== null && _b !== void 0 ? _b : alternativeNameMatch) !== null && _c !== void 0 ? _c : (p.name === 'Segment.io' ? true : denyList.All) !== false);\n });\n var _a = groupBy(available, 'type'), _b = _a.before, before = _b === void 0 ? [] : _b, _c = _a.enrichment, enrichment = _c === void 0 ? [] : _c, _d = _a.destination, destination = _d === void 0 ? [] : _d, _e = _a.after, after = _e === void 0 ? [] : _e;\n return {\n before: before,\n enrichment: enrichment,\n destinations: destination,\n after: after,\n };\n };\n CoreEventQueue.prototype.flushOne = function (ctx) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function () {\n var _c, before, enrichment, _i, before_1, beforeWare, temp, _d, enrichment_1, enrichmentWare, temp, _e, destinations, after, afterCalls;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n if (!this.isReady()) {\n throw new Error('Not ready');\n }\n if (ctx.attempts > 1) {\n this.emit('delivery_retry', ctx);\n }\n _c = this.availableExtensions((_a = ctx.event.integrations) !== null && _a !== void 0 ? _a : {}), before = _c.before, enrichment = _c.enrichment;\n _i = 0, before_1 = before;\n _f.label = 1;\n case 1:\n if (!(_i < before_1.length)) return [3 /*break*/, 4];\n beforeWare = before_1[_i];\n return [4 /*yield*/, ensure(ctx, beforeWare)];\n case 2:\n temp = _f.sent();\n if (temp instanceof CoreContext) {\n ctx = temp;\n }\n this.emit('message_enriched', ctx, beforeWare);\n _f.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4:\n _d = 0, enrichment_1 = enrichment;\n _f.label = 5;\n case 5:\n if (!(_d < enrichment_1.length)) return [3 /*break*/, 8];\n enrichmentWare = enrichment_1[_d];\n return [4 /*yield*/, attempt(ctx, enrichmentWare)];\n case 6:\n temp = _f.sent();\n if (temp instanceof CoreContext) {\n ctx = temp;\n }\n this.emit('message_enriched', ctx, enrichmentWare);\n _f.label = 7;\n case 7:\n _d++;\n return [3 /*break*/, 5];\n case 8:\n _e = this.availableExtensions((_b = ctx.event.integrations) !== null && _b !== void 0 ? _b : {}), destinations = _e.destinations, after = _e.after;\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n setTimeout(function () {\n var attempts = destinations.map(function (destination) {\n return attempt(ctx, destination);\n });\n Promise.all(attempts).then(resolve).catch(reject);\n }, 0);\n })];\n case 9:\n _f.sent();\n ctx.stats.increment('message_delivered');\n this.emit('message_delivered', ctx);\n afterCalls = after.map(function (after) { return attempt(ctx, after); });\n return [4 /*yield*/, Promise.all(afterCalls)];\n case 10:\n _f.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n return CoreEventQueue;\n}(Emitter));\nexport { CoreEventQueue };\n//# sourceMappingURL=event-queue.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { invokeCallback } from '../callback';\n/* The amount of time in ms to wait before invoking the callback. */\nexport var getDelay = function (startTimeInEpochMS, timeoutInMS) {\n var elapsedTime = Date.now() - startTimeInEpochMS;\n // increasing the timeout increases the delay by almost the same amount -- this is weird legacy behavior.\n return Math.max((timeoutInMS !== null && timeoutInMS !== void 0 ? timeoutInMS : 300) - elapsedTime, 0);\n};\n/**\n * Push an event into the dispatch queue and invoke any callbacks.\n *\n * @param event - Segment event to enqueue.\n * @param queue - Queue to dispatch against.\n * @param emitter - This is typically an instance of \"Analytics\" -- used for metrics / progress information.\n * @param options\n */\nexport function dispatch(ctx, queue, emitter, options) {\n return __awaiter(this, void 0, void 0, function () {\n var startTime, dispatched;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n emitter.emit('dispatch_start', ctx);\n startTime = Date.now();\n if (!queue.isEmpty()) return [3 /*break*/, 2];\n return [4 /*yield*/, queue.dispatchSingle(ctx)];\n case 1:\n dispatched = _a.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, queue.dispatch(ctx)];\n case 3:\n dispatched = _a.sent();\n _a.label = 4;\n case 4:\n if (!(options === null || options === void 0 ? void 0 : options.callback)) return [3 /*break*/, 6];\n return [4 /*yield*/, invokeCallback(dispatched, options.callback, getDelay(startTime, options.timeout))];\n case 5:\n dispatched = _a.sent();\n _a.label = 6;\n case 6:\n if (options === null || options === void 0 ? void 0 : options.debug) {\n dispatched.flush();\n }\n return [2 /*return*/, dispatched];\n }\n });\n });\n}\n//# sourceMappingURL=dispatch.js.map","import { isFunction, isPlainObject, isString, isNumber, } from '@segment/analytics-core';\n/**\n * Helper for the track method\n */\nexport function resolveArguments(eventName, properties, options, callback) {\n var _a;\n var args = [eventName, properties, options, callback];\n var name = isPlainObject(eventName) ? eventName.event : eventName;\n if (!name || !isString(name)) {\n throw new Error('Event missing');\n }\n var data = isPlainObject(eventName)\n ? (_a = eventName.properties) !== null && _a !== void 0 ? _a : {}\n : isPlainObject(properties)\n ? properties\n : {};\n var opts = {};\n if (!isFunction(options)) {\n opts = options !== null && options !== void 0 ? options : {};\n }\n if (isPlainObject(eventName) && !isFunction(properties)) {\n opts = properties !== null && properties !== void 0 ? properties : {};\n }\n var cb = args.find(isFunction);\n return [name, data, opts, cb];\n}\n/**\n * Helper for page, screen methods\n */\nexport function resolvePageArguments(category, name, properties, options, callback) {\n var resolvedProperties;\n var resolvedOptions;\n var resolvedCategory = null;\n var resolvedName = null;\n var args = [category, name, properties, options, callback];\n // The legacy logic is basically:\n // - If there is a string, it's the name\n // - If there are two strings, it's category and name\n var strings = args.filter(isString);\n if (strings.length === 1) {\n if (isString(args[1])) {\n resolvedName = args[1];\n resolvedCategory = null;\n }\n else {\n resolvedName = strings[0];\n resolvedCategory = null;\n }\n }\n else if (strings.length === 2) {\n if (typeof args[0] === 'string') {\n resolvedCategory = args[0];\n }\n if (typeof args[1] === 'string') {\n resolvedName = args[1];\n }\n }\n // handle: analytics.page('category', 'name', properties, options, callback)\n var resolvedCallback = args.find(isFunction);\n // handle:\n // - analytics.page('name')\n // - analytics.page('category', 'name')\n // - analytics.page(properties)\n // - analytics.page(properties, options)\n // - analytics.page('name', properties)\n // - analytics.page('name', properties, options)\n // - analytics.page('category', 'name', properties, options)\n // - analytics.page('category', 'name', properties, options, callback)\n // - analytics.page('category', 'name', callback)\n // - analytics.page(callback), etc\n // The legacy logic is basically:\n // - If there is a plain object, it's the properties\n // - If there are two plain objects, it's properties and options\n var objects = args.filter(isPlainObject);\n if (objects.length === 1) {\n if (isPlainObject(args[2])) {\n resolvedOptions = {};\n resolvedProperties = args[2];\n }\n else if (isPlainObject(args[3])) {\n resolvedProperties = {};\n resolvedOptions = args[3];\n }\n else {\n resolvedProperties = objects[0];\n resolvedOptions = {};\n }\n }\n else if (objects.length === 2) {\n resolvedProperties = objects[0];\n resolvedOptions = objects[1];\n }\n return [\n resolvedCategory,\n resolvedName,\n (resolvedProperties !== null && resolvedProperties !== void 0 ? resolvedProperties : (resolvedProperties = {})),\n (resolvedOptions !== null && resolvedOptions !== void 0 ? resolvedOptions : (resolvedOptions = {})),\n resolvedCallback,\n ];\n}\n/**\n * Helper for group, identify methods\n */\nexport var resolveUserArguments = function (user) {\n return function () {\n var _a, _b, _c;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var values = {};\n // It's a stack so it's reversed so that we go through each of the expected arguments\n var orderStack = [\n 'callback',\n 'options',\n 'traits',\n 'id',\n ];\n // Read each argument and eval the possible values here\n for (var _d = 0, args_1 = args; _d < args_1.length; _d++) {\n var arg = args_1[_d];\n var current = orderStack.pop();\n if (current === 'id') {\n if (isString(arg) || isNumber(arg)) {\n values.id = arg.toString();\n continue;\n }\n if (arg === null || arg === undefined) {\n continue;\n }\n // First argument should always be the id, if it is not a valid value we can skip it\n current = orderStack.pop();\n }\n // Traits and Options\n if ((current === 'traits' || current === 'options') &&\n (arg === null || arg === undefined || isPlainObject(arg))) {\n values[current] = arg;\n }\n // Callback\n if (isFunction(arg)) {\n values.callback = arg;\n break; // This is always the last argument\n }\n }\n return [\n (_a = values.id) !== null && _a !== void 0 ? _a : user.id(),\n ((_b = values.traits) !== null && _b !== void 0 ? _b : {}),\n (_c = values.options) !== null && _c !== void 0 ? _c : {},\n values.callback,\n ];\n };\n};\n/**\n * Helper for alias method\n */\nexport function resolveAliasArguments(to, from, options, callback) {\n if (isNumber(to))\n to = to.toString(); // Legacy behaviour - allow integers for alias calls\n if (isNumber(from))\n from = from.toString();\n var args = [to, from, options, callback];\n var _a = args.filter(isString), _b = _a[0], aliasTo = _b === void 0 ? to : _b, _c = _a[1], aliasFrom = _c === void 0 ? null : _c;\n var _d = args.filter(isPlainObject)[0], opts = _d === void 0 ? {} : _d;\n var resolvedCallback = args.find(isFunction);\n return [aliasTo, aliasFrom, opts, resolvedCallback];\n}\n//# sourceMappingURL=index.js.map","export function isBrowser() {\n return typeof window !== 'undefined';\n}\nexport function isServer() {\n return !isBrowser();\n}\n//# sourceMappingURL=index.js.map","import { isBrowser } from '../environment';\nexport function isOnline() {\n if (isBrowser()) {\n return window.navigator.onLine;\n }\n return true;\n}\nexport function isOffline() {\n return !isOnline();\n}\n//# sourceMappingURL=index.js.map","export default function(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||\"get\",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(a())},s.onerror=r,s.withCredentials=\"include\"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null)})}\n//# sourceMappingURL=unfetch.module.js.map\n","// This an imperfect polyfill for globalThis\nexport var getGlobal = function () {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n return null;\n};\n//# sourceMappingURL=get-global.js.map","import unfetch from 'unfetch';\nimport { getGlobal } from './get-global';\n/**\n * Wrapper around native `fetch` containing `unfetch` fallback.\n */\nexport var fetch = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var global = getGlobal();\n return ((global && global.fetch) || unfetch).apply(void 0, args);\n};\n//# sourceMappingURL=fetch.js.map","// This file is generated.\nexport var version = '1.83.0';\n//# sourceMappingURL=version.js.map","export var SEGMENT_API_HOST = 'api.segment.io/v1';\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { fetch } from '../../lib/fetch';\nimport { version } from '../../generated/version';\nimport { getVersionType } from '../../lib/version-type';\nimport { SEGMENT_API_HOST } from '../constants';\nvar createRemoteMetric = function (metric, tags, versionType) {\n var formattedTags = tags.reduce(function (acc, t) {\n var _a = t.split(':'), k = _a[0], v = _a[1];\n acc[k] = v;\n return acc;\n }, {});\n return {\n type: 'Counter',\n metric: metric,\n value: 1,\n tags: __assign(__assign({}, formattedTags), { library: 'analytics.js', library_version: versionType === 'web' ? \"next-\".concat(version) : \"npm:next-\".concat(version) }),\n };\n};\nfunction logError(err) {\n console.error('Error sending segment performance metrics', err);\n}\nvar RemoteMetrics = /** @class */ (function () {\n function RemoteMetrics(options) {\n var _this = this;\n var _a, _b, _c, _d, _e;\n this.host = (_a = options === null || options === void 0 ? void 0 : options.host) !== null && _a !== void 0 ? _a : SEGMENT_API_HOST;\n this.sampleRate = (_b = options === null || options === void 0 ? void 0 : options.sampleRate) !== null && _b !== void 0 ? _b : 1;\n this.flushTimer = (_c = options === null || options === void 0 ? void 0 : options.flushTimer) !== null && _c !== void 0 ? _c : 30 * 1000; /* 30s */\n this.maxQueueSize = (_d = options === null || options === void 0 ? void 0 : options.maxQueueSize) !== null && _d !== void 0 ? _d : 20;\n this.protocol = (_e = options === null || options === void 0 ? void 0 : options.protocol) !== null && _e !== void 0 ? _e : 'https';\n this.queue = [];\n if (this.sampleRate > 0) {\n var flushing_1 = false;\n var run_1 = function () {\n if (flushing_1) {\n return;\n }\n flushing_1 = true;\n _this.flush().catch(logError);\n flushing_1 = false;\n setTimeout(run_1, _this.flushTimer);\n };\n run_1();\n }\n }\n RemoteMetrics.prototype.increment = function (metric, tags) {\n // All metrics are part of an allow list in Tracking API\n if (!metric.includes('analytics_js.')) {\n return;\n }\n // /m doesn't like empty tags\n if (tags.length === 0) {\n return;\n }\n if (Math.random() > this.sampleRate) {\n return;\n }\n if (this.queue.length >= this.maxQueueSize) {\n return;\n }\n var remoteMetric = createRemoteMetric(metric, tags, getVersionType());\n this.queue.push(remoteMetric);\n if (metric.includes('error')) {\n this.flush().catch(logError);\n }\n };\n RemoteMetrics.prototype.flush = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.queue.length <= 0) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, this.send().catch(function (error) {\n logError(error);\n _this.sampleRate = 0;\n })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n RemoteMetrics.prototype.send = function () {\n return __awaiter(this, void 0, void 0, function () {\n var payload, headers, url;\n return __generator(this, function (_a) {\n payload = { series: this.queue };\n this.queue = [];\n headers = { 'Content-Type': 'text/plain' };\n url = \"\".concat(this.protocol, \"://\").concat(this.host, \"/m\");\n return [2 /*return*/, fetch(url, {\n headers: headers,\n body: JSON.stringify(payload),\n method: 'POST',\n })];\n });\n });\n };\n return RemoteMetrics;\n}());\nexport { RemoteMetrics };\n//# sourceMappingURL=remote-metrics.js.map","import { __extends } from \"tslib\";\nimport { CoreStats } from '@segment/analytics-core';\nimport { RemoteMetrics } from './remote-metrics';\nvar remoteMetrics;\nvar Stats = /** @class */ (function (_super) {\n __extends(Stats, _super);\n function Stats() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Stats.initRemoteMetrics = function (options) {\n remoteMetrics = new RemoteMetrics(options);\n };\n Stats.prototype.increment = function (metric, by, tags) {\n _super.prototype.increment.call(this, metric, by, tags);\n remoteMetrics === null || remoteMetrics === void 0 ? void 0 : remoteMetrics.increment(metric, tags !== null && tags !== void 0 ? tags : []);\n };\n return Stats;\n}(CoreStats));\nexport { Stats };\n//# sourceMappingURL=index.js.map","import { __extends } from \"tslib\";\nimport { CoreContext, ContextCancelation, } from '@segment/analytics-core';\nimport { Stats } from '../stats';\nvar Context = /** @class */ (function (_super) {\n __extends(Context, _super);\n function Context(event, id) {\n return _super.call(this, event, id, new Stats()) || this;\n }\n Context.system = function () {\n return new this({ type: 'track', event: 'system' });\n };\n return Context;\n}(CoreContext));\nexport { Context };\nexport { ContextCancelation };\n//# sourceMappingURL=index.js.map","// src/page-context.ts\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase() === \"object\";\n}\nvar BufferedPageContextDiscriminant = \"bpc\";\nvar createBufferedPageContext = function(url, canonicalUrl, search, path, title, referrer) {\n return {\n __t: BufferedPageContextDiscriminant,\n c: canonicalUrl,\n p: path,\n u: url,\n s: search,\n t: title,\n r: referrer\n };\n};\nvar BUFFERED_PAGE_CONTEXT_KEYS = Object.keys(createBufferedPageContext(\"\", \"\", \"\", \"\", \"\", \"\"));\nfunction isBufferedPageContext(bufferedPageCtx) {\n if (!isPlainObject(bufferedPageCtx)) return false;\n if (bufferedPageCtx.__t !== BufferedPageContextDiscriminant) return false;\n for(var k in bufferedPageCtx){\n if (!BUFFERED_PAGE_CONTEXT_KEYS.includes(k)) {\n return false;\n }\n }\n return true;\n}\nvar createCanonicalURL = function(canonicalUrl, searchParams) {\n return canonicalUrl.indexOf(\"?\") > -1 ? canonicalUrl : canonicalUrl + searchParams;\n};\nvar removeHash = function(href) {\n var hashIdx = href.indexOf(\"#\");\n return hashIdx === -1 ? href : href.slice(0, hashIdx);\n};\nvar parseCanonicalPath = function(canonicalUrl) {\n try {\n return new URL(canonicalUrl).pathname;\n } catch (_e) {\n return canonicalUrl[0] === \"/\" ? canonicalUrl : \"/\" + canonicalUrl;\n }\n};\nvar createPageContext = function(param) {\n var canonicalUrl = param.c, pathname = param.p, search = param.s, url = param.u, referrer = param.r, title = param.t;\n var newPath = canonicalUrl ? parseCanonicalPath(canonicalUrl) : pathname;\n var newUrl = canonicalUrl ? createCanonicalURL(canonicalUrl, search) : removeHash(url);\n return {\n path: newPath,\n referrer: referrer,\n search: search,\n title: title,\n url: newUrl\n };\n};\nvar getDefaultBufferedPageContext = function() {\n var c = document.querySelector(\"link[rel='canonical']\");\n return createBufferedPageContext(location.href, c && c.getAttribute(\"href\") || void 0, location.search, location.pathname, document.title, document.referrer);\n};\nvar getDefaultPageContext = function() {\n return createPageContext(getDefaultBufferedPageContext());\n};\nexport { BufferedPageContextDiscriminant, createBufferedPageContext, createPageContext, getDefaultBufferedPageContext, getDefaultPageContext, isBufferedPageContext };\n","import { __spreadArray } from \"tslib\";\n/**\n * @example\n * pick({ 'a': 1, 'b': '2', 'c': 3 }, ['a', 'c'])\n * => { 'a': 1, 'c': 3 }\n */\nexport function pick(object, keys) {\n return Object.assign.apply(Object, __spreadArray([{}], keys.map(function (key) {\n var _a;\n if (object && Object.prototype.hasOwnProperty.call(object, key)) {\n return _a = {}, _a[key] = object[key], _a;\n }\n }), false));\n}\n//# sourceMappingURL=pick.js.map","import { __assign } from \"tslib\";\nimport { pick } from '../../lib/pick';\nimport { getDefaultPageContext } from '@segment/analytics-page-tools';\n/**\n * Augments a segment event with information about the current page.\n * Page information like URL changes frequently, so this is meant to be captured as close to the event call as possible.\n * Things like `userAgent` do not change, so they can be added later in the flow.\n * We prefer not to add this information to this function, as it increases the main bundle size.\n */\nexport var addPageContext = function (event, pageCtx) {\n if (pageCtx === void 0) { pageCtx = getDefaultPageContext(); }\n var evtCtx = event.context; // Context should be set earlier in the flow\n var pageContextFromEventProps;\n if (event.type === 'page') {\n pageContextFromEventProps =\n event.properties && pick(event.properties, Object.keys(pageCtx));\n event.properties = __assign(__assign(__assign({}, pageCtx), event.properties), (event.name ? { name: event.name } : {}));\n }\n evtCtx.page = __assign(__assign(__assign({}, pageCtx), pageContextFromEventProps), evtCtx.page);\n};\n//# sourceMappingURL=add-page-context.js.map","import { __extends } from \"tslib\";\nimport { v4 as uuid } from '@lukeed/uuid';\nimport { addPageContext } from '../page';\nimport { CoreEventFactory } from '@segment/analytics-core';\nexport * from './interfaces';\nvar EventFactory = /** @class */ (function (_super) {\n __extends(EventFactory, _super);\n function EventFactory(user) {\n var _this = _super.call(this, {\n createMessageId: function () { return \"ajs-next-\".concat(Date.now(), \"-\").concat(uuid()); },\n onEventMethodCall: function (_a) {\n var options = _a.options;\n _this.maybeUpdateAnonId(options);\n },\n onFinishedEvent: function (event) {\n _this.addIdentity(event);\n return event;\n },\n }) || this;\n _this.user = user;\n return _this;\n }\n /**\n * Updates the anonymousId *globally* if it's provided in the options.\n * This should generally be done in the identify method, but some customers rely on this.\n */\n EventFactory.prototype.maybeUpdateAnonId = function (options) {\n (options === null || options === void 0 ? void 0 : options.anonymousId) && this.user.anonymousId(options.anonymousId);\n };\n /**\n * add user id / anonymous id to the event\n */\n EventFactory.prototype.addIdentity = function (event) {\n if (this.user.id()) {\n event.userId = this.user.id();\n }\n if (this.user.anonymousId()) {\n event.anonymousId = this.user.anonymousId();\n }\n };\n EventFactory.prototype.track = function (event, properties, options, integrationsOptions, pageCtx) {\n var ev = _super.prototype.track.call(this, event, properties, options, integrationsOptions);\n addPageContext(ev, pageCtx);\n return ev;\n };\n EventFactory.prototype.page = function (category, page, properties, options, integrationsOptions, pageCtx) {\n var ev = _super.prototype.page.call(this, category, page, properties, options, integrationsOptions);\n addPageContext(ev, pageCtx);\n return ev;\n };\n EventFactory.prototype.screen = function (category, screen, properties, options, integrationsOptions, pageCtx) {\n var ev = _super.prototype.screen.call(this, category, screen, properties, options, integrationsOptions);\n addPageContext(ev, pageCtx);\n return ev;\n };\n EventFactory.prototype.identify = function (userId, traits, options, integrationsOptions, pageCtx) {\n var ev = _super.prototype.identify.call(this, userId, traits, options, integrationsOptions);\n addPageContext(ev, pageCtx);\n return ev;\n };\n EventFactory.prototype.group = function (groupId, traits, options, integrationsOptions, pageCtx) {\n var ev = _super.prototype.group.call(this, groupId, traits, options, integrationsOptions);\n addPageContext(ev, pageCtx);\n return ev;\n };\n EventFactory.prototype.alias = function (to, from, options, integrationsOptions, pageCtx) {\n var ev = _super.prototype.alias.call(this, to, from, options, integrationsOptions);\n addPageContext(ev, pageCtx);\n return ev;\n };\n return EventFactory;\n}(CoreEventFactory));\nexport { EventFactory };\n//# sourceMappingURL=index.js.map","export var isDestinationPluginWithAddMiddleware = function (plugin) {\n // FYI: segment's plugin does not currently have an 'addMiddleware' method\n return 'addMiddleware' in plugin && plugin.type === 'destination';\n};\n//# sourceMappingURL=index.js.map","import { __assign, __extends, __spreadArray } from \"tslib\";\nimport { PriorityQueue } from '.';\nimport { Context } from '../../core/context';\nimport { isBrowser } from '../../core/environment';\nvar loc = {\n getItem: function () { },\n setItem: function () { },\n removeItem: function () { },\n};\ntry {\n loc = isBrowser() && window.localStorage ? window.localStorage : loc;\n}\ncatch (err) {\n console.warn('Unable to access localStorage', err);\n}\nfunction persisted(key) {\n var items = loc.getItem(key);\n return (items ? JSON.parse(items) : []).map(function (p) { return new Context(p.event, p.id); });\n}\nfunction persistItems(key, items) {\n var existing = persisted(key);\n var all = __spreadArray(__spreadArray([], items, true), existing, true);\n var merged = all.reduce(function (acc, item) {\n var _a;\n return __assign(__assign({}, acc), (_a = {}, _a[item.id] = item, _a));\n }, {});\n loc.setItem(key, JSON.stringify(Object.values(merged)));\n}\nfunction seen(key) {\n var stored = loc.getItem(key);\n return stored ? JSON.parse(stored) : {};\n}\nfunction persistSeen(key, memory) {\n var stored = seen(key);\n loc.setItem(key, JSON.stringify(__assign(__assign({}, stored), memory)));\n}\nfunction remove(key) {\n loc.removeItem(key);\n}\nvar now = function () { return new Date().getTime(); };\nfunction mutex(key, onUnlock, attempt) {\n if (attempt === void 0) { attempt = 0; }\n var lockTimeout = 50;\n var lockKey = \"persisted-queue:v1:\".concat(key, \":lock\");\n var expired = function (lock) { return new Date().getTime() > lock; };\n var rawLock = loc.getItem(lockKey);\n var lock = rawLock ? JSON.parse(rawLock) : null;\n var allowed = lock === null || expired(lock);\n if (allowed) {\n loc.setItem(lockKey, JSON.stringify(now() + lockTimeout));\n onUnlock();\n loc.removeItem(lockKey);\n return;\n }\n if (!allowed && attempt < 3) {\n setTimeout(function () {\n mutex(key, onUnlock, attempt + 1);\n }, lockTimeout);\n }\n else {\n console.error('Unable to retrieve lock');\n }\n}\nvar PersistedPriorityQueue = /** @class */ (function (_super) {\n __extends(PersistedPriorityQueue, _super);\n function PersistedPriorityQueue(maxAttempts, key) {\n var _this = _super.call(this, maxAttempts, []) || this;\n var itemsKey = \"persisted-queue:v1:\".concat(key, \":items\");\n var seenKey = \"persisted-queue:v1:\".concat(key, \":seen\");\n var saved = [];\n var lastSeen = {};\n mutex(key, function () {\n try {\n saved = persisted(itemsKey);\n lastSeen = seen(seenKey);\n remove(itemsKey);\n remove(seenKey);\n _this.queue = __spreadArray(__spreadArray([], saved, true), _this.queue, true);\n _this.seen = __assign(__assign({}, lastSeen), _this.seen);\n }\n catch (err) {\n console.error(err);\n }\n });\n window.addEventListener('pagehide', function () {\n // we deliberately want to use the less powerful 'pagehide' API to only persist on events where the analytics instance gets destroyed, and not on tab away.\n if (_this.todo > 0) {\n var items_1 = __spreadArray(__spreadArray([], _this.queue, true), _this.future, true);\n try {\n mutex(key, function () {\n persistItems(itemsKey, items_1);\n persistSeen(seenKey, _this.seen);\n });\n }\n catch (err) {\n console.error(err);\n }\n }\n });\n return _this;\n }\n return PersistedPriorityQueue;\n}(PriorityQueue));\nexport { PersistedPriorityQueue };\n//# sourceMappingURL=persisted.js.map","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted';\nimport { CoreEventQueue } from '@segment/analytics-core';\nimport { isOffline } from '../connection';\nvar EventQueue = /** @class */ (function (_super) {\n __extends(EventQueue, _super);\n function EventQueue(nameOrQueue) {\n return _super.call(this, typeof nameOrQueue === 'string'\n ? new PersistedPriorityQueue(4, nameOrQueue)\n : nameOrQueue) || this;\n }\n EventQueue.prototype.flush = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (isOffline())\n return [2 /*return*/, []];\n return [2 /*return*/, _super.prototype.flush.call(this)];\n });\n });\n };\n return EventQueue;\n}(CoreEventQueue));\nexport { EventQueue };\n//# sourceMappingURL=event-queue.js.map","export default function bindAll(obj) {\n var proto = obj.constructor.prototype;\n for (var _i = 0, _a = Object.getOwnPropertyNames(proto); _i < _a.length; _i++) {\n var key = _a[_i];\n if (key !== 'constructor') {\n var desc = Object.getOwnPropertyDescriptor(obj.constructor.prototype, key);\n if (!!desc && typeof desc.value === 'function') {\n obj[key] = obj[key].bind(obj);\n }\n }\n }\n return obj;\n}\n//# sourceMappingURL=bind-all.js.map","/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n","import cookie from 'js-cookie';\n/**\n * Levels returns all levels of the given url.\n *\n * @param {string} url\n * @return {Array}\n * @api public\n */\nfunction levels(url) {\n var host = url.hostname;\n var parts = host.split('.');\n var last = parts[parts.length - 1];\n var levels = [];\n // Ip address.\n if (parts.length === 4 && parseInt(last, 10) > 0) {\n return levels;\n }\n // Localhost.\n if (parts.length <= 1) {\n return levels;\n }\n // Create levels.\n for (var i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n return levels;\n}\nfunction parseUrl(url) {\n try {\n return new URL(url);\n }\n catch (_a) {\n return;\n }\n}\nexport function tld(url) {\n var parsedUrl = parseUrl(url);\n if (!parsedUrl)\n return;\n var lvls = levels(parsedUrl);\n // Lookup the real top level one.\n for (var i = 0; i < lvls.length; ++i) {\n var cname = '__tld__';\n var domain = lvls[i];\n var opts = { domain: '.' + domain };\n try {\n // cookie access throw an error if the library is ran inside a sandboxed environment (e.g. sandboxed iframe)\n cookie.set(cname, '1', opts);\n if (cookie.get(cname)) {\n cookie.remove(cname, opts);\n return domain;\n }\n }\n catch (_) {\n return;\n }\n }\n}\n//# sourceMappingURL=tld.js.map","import { __assign } from \"tslib\";\nimport jar from 'js-cookie';\nimport { tld } from '../user/tld';\nvar ONE_YEAR = 365;\n/**\n * Data storage using browser cookies\n */\nvar CookieStorage = /** @class */ (function () {\n function CookieStorage(options) {\n if (options === void 0) { options = CookieStorage.defaults; }\n this.options = __assign(__assign({}, CookieStorage.defaults), options);\n }\n Object.defineProperty(CookieStorage, \"defaults\", {\n get: function () {\n return {\n maxage: ONE_YEAR,\n domain: tld(window.location.href),\n path: '/',\n sameSite: 'Lax',\n };\n },\n enumerable: false,\n configurable: true\n });\n CookieStorage.prototype.opts = function () {\n return {\n sameSite: this.options.sameSite,\n expires: this.options.maxage,\n domain: this.options.domain,\n path: this.options.path,\n secure: this.options.secure,\n };\n };\n CookieStorage.prototype.get = function (key) {\n var _a;\n try {\n var value = jar.get(key);\n if (value === undefined || value === null) {\n return null;\n }\n try {\n return (_a = JSON.parse(value)) !== null && _a !== void 0 ? _a : null;\n }\n catch (e) {\n return (value !== null && value !== void 0 ? value : null);\n }\n }\n catch (e) {\n return null;\n }\n };\n CookieStorage.prototype.set = function (key, value) {\n if (typeof value === 'string') {\n jar.set(key, value, this.opts());\n }\n else if (value === null) {\n jar.remove(key, this.opts());\n }\n else {\n jar.set(key, JSON.stringify(value), this.opts());\n }\n };\n CookieStorage.prototype.remove = function (key) {\n return jar.remove(key, this.opts());\n };\n return CookieStorage;\n}());\nexport { CookieStorage };\n//# sourceMappingURL=cookieStorage.js.map","/**\n * Data storage using browser's localStorage\n */\nvar LocalStorage = /** @class */ (function () {\n function LocalStorage() {\n }\n LocalStorage.prototype.localStorageWarning = function (key, state) {\n console.warn(\"Unable to access \".concat(key, \", localStorage may be \").concat(state));\n };\n LocalStorage.prototype.get = function (key) {\n var _a;\n try {\n var val = localStorage.getItem(key);\n if (val === null) {\n return null;\n }\n try {\n return (_a = JSON.parse(val)) !== null && _a !== void 0 ? _a : null;\n }\n catch (e) {\n return (val !== null && val !== void 0 ? val : null);\n }\n }\n catch (err) {\n this.localStorageWarning(key, 'unavailable');\n return null;\n }\n };\n LocalStorage.prototype.set = function (key, value) {\n try {\n localStorage.setItem(key, JSON.stringify(value));\n }\n catch (_a) {\n this.localStorageWarning(key, 'full');\n }\n };\n LocalStorage.prototype.remove = function (key) {\n try {\n return localStorage.removeItem(key);\n }\n catch (err) {\n this.localStorageWarning(key, 'unavailable');\n }\n };\n return LocalStorage;\n}());\nexport { LocalStorage };\n//# sourceMappingURL=localStorage.js.map","/**\n * Data Storage using in memory object\n */\nvar MemoryStorage = /** @class */ (function () {\n function MemoryStorage() {\n this.cache = {};\n }\n MemoryStorage.prototype.get = function (key) {\n var _a;\n return ((_a = this.cache[key]) !== null && _a !== void 0 ? _a : null);\n };\n MemoryStorage.prototype.set = function (key, value) {\n this.cache[key] = value;\n };\n MemoryStorage.prototype.remove = function (key) {\n delete this.cache[key];\n };\n return MemoryStorage;\n}());\nexport { MemoryStorage };\n//# sourceMappingURL=memoryStorage.js.map","export var StoreType = {\n Cookie: 'cookie',\n LocalStorage: 'localStorage',\n Memory: 'memory',\n};\n//# sourceMappingURL=types.js.map","import { StoreType } from './types';\nexport function isArrayOfStoreType(s) {\n return (s &&\n s.stores &&\n Array.isArray(s.stores) &&\n s.stores.every(function (e) { return Object.values(StoreType).includes(e); }));\n}\nexport function isStoreTypeWithSettings(s) {\n return typeof s === 'object' && s.name !== undefined;\n}\n//# sourceMappingURL=settings.js.map","// not adding to private method because those method names do not get minified atm, and does not use 'this'\nvar _logStoreKeyError = function (store, action, key, err) {\n console.warn(\"\".concat(store.constructor.name, \": Can't \").concat(action, \" key \\\"\").concat(key, \"\\\" | Err: \").concat(err));\n};\n/**\n * Uses multiple storages in a priority list to get/set values in the order they are specified.\n */\nvar UniversalStorage = /** @class */ (function () {\n function UniversalStorage(stores) {\n this.stores = stores;\n }\n UniversalStorage.prototype.get = function (key) {\n var val = null;\n for (var _i = 0, _a = this.stores; _i < _a.length; _i++) {\n var store = _a[_i];\n try {\n val = store.get(key);\n if (val !== undefined && val !== null) {\n return val;\n }\n }\n catch (e) {\n _logStoreKeyError(store, 'get', key, e);\n }\n }\n return null;\n };\n UniversalStorage.prototype.set = function (key, value) {\n this.stores.forEach(function (store) {\n try {\n store.set(key, value);\n }\n catch (e) {\n _logStoreKeyError(store, 'set', key, e);\n }\n });\n };\n UniversalStorage.prototype.clear = function (key) {\n this.stores.forEach(function (store) {\n try {\n store.remove(key);\n }\n catch (e) {\n _logStoreKeyError(store, 'remove', key, e);\n }\n });\n };\n /*\n This is to support few scenarios where:\n - value exist in one of the stores ( as a result of other stores being cleared from browser ) and we want to resync them\n - read values in AJS 1.0 format ( for customers after 1.0 --> 2.0 migration ) and then re-write them in AJS 2.0 format\n */\n UniversalStorage.prototype.getAndSync = function (key) {\n var val = this.get(key);\n // legacy behavior, getAndSync can change the type of a value from number to string (AJS 1.0 stores numerical values as a number)\n var coercedValue = (typeof val === 'number' ? val.toString() : val);\n this.set(key, coercedValue);\n return coercedValue;\n };\n return UniversalStorage;\n}());\nexport { UniversalStorage };\n//# sourceMappingURL=universalStorage.js.map","import { CookieStorage } from './cookieStorage';\nimport { LocalStorage } from './localStorage';\nimport { MemoryStorage } from './memoryStorage';\nimport { isStoreTypeWithSettings } from './settings';\nimport { StoreType } from './types';\nexport * from './types';\nexport * from './localStorage';\nexport * from './cookieStorage';\nexport * from './memoryStorage';\nexport * from './universalStorage';\nexport * from './settings';\n/**\n * Creates multiple storage systems from an array of StoreType and options\n * @param args StoreType and options\n * @returns Storage array\n */\nexport function initializeStorages(args) {\n var storages = args.map(function (s) {\n var type;\n var settings;\n if (isStoreTypeWithSettings(s)) {\n type = s.name;\n settings = s.settings;\n }\n else {\n type = s;\n }\n switch (type) {\n case StoreType.Cookie:\n return new CookieStorage(settings);\n case StoreType.LocalStorage:\n return new LocalStorage();\n case StoreType.Memory:\n return new MemoryStorage();\n default:\n throw new Error(\"Unknown Store Type: \".concat(s));\n }\n });\n return storages;\n}\n/**\n * Injects the CookieOptions into a the arguments for initializeStorage\n * @param storeTypes list of storeType\n * @param cookieOptions cookie Options\n * @returns arguments for initializeStorage\n */\nexport function applyCookieOptions(storeTypes, cookieOptions) {\n return storeTypes.map(function (s) {\n if (cookieOptions && s === StoreType.Cookie) {\n return {\n name: s,\n settings: cookieOptions,\n };\n }\n return s;\n });\n}\n//# sourceMappingURL=index.js.map","import { __assign, __extends } from \"tslib\";\nimport { v4 as uuid } from '@lukeed/uuid';\nimport autoBind from '../../lib/bind-all';\nimport { UniversalStorage, MemoryStorage, StoreType, applyCookieOptions, initializeStorages, isArrayOfStoreType, } from '../storage';\nvar defaults = {\n persist: true,\n cookie: {\n key: 'ajs_user_id',\n oldKey: 'ajs_user',\n },\n localStorage: {\n key: 'ajs_user_traits',\n },\n};\nvar User = /** @class */ (function () {\n function User(options, cookieOptions) {\n if (options === void 0) { options = defaults; }\n var _this = this;\n var _a, _b, _c, _d;\n this.options = {};\n this.id = function (id) {\n if (_this.options.disable) {\n return null;\n }\n var prevId = _this.identityStore.getAndSync(_this.idKey);\n if (id !== undefined) {\n _this.identityStore.set(_this.idKey, id);\n var changingIdentity = id !== prevId && prevId !== null && id !== null;\n if (changingIdentity) {\n _this.anonymousId(null);\n }\n }\n var retId = _this.identityStore.getAndSync(_this.idKey);\n if (retId)\n return retId;\n var retLeg = _this.legacyUserStore.get(defaults.cookie.oldKey);\n return retLeg ? (typeof retLeg === 'object' ? retLeg.id : retLeg) : null;\n };\n this.anonymousId = function (id) {\n var _a, _b;\n if (_this.options.disable) {\n return null;\n }\n if (id === undefined) {\n var val = (_a = _this.identityStore.getAndSync(_this.anonKey)) !== null && _a !== void 0 ? _a : (_b = _this.legacySIO()) === null || _b === void 0 ? void 0 : _b[0];\n if (val) {\n return val;\n }\n }\n if (id === null) {\n _this.identityStore.set(_this.anonKey, null);\n return _this.identityStore.getAndSync(_this.anonKey);\n }\n _this.identityStore.set(_this.anonKey, id !== null && id !== void 0 ? id : uuid());\n return _this.identityStore.getAndSync(_this.anonKey);\n };\n this.traits = function (traits) {\n var _a;\n if (_this.options.disable) {\n return;\n }\n if (traits === null) {\n traits = {};\n }\n if (traits) {\n _this.traitsStore.set(_this.traitsKey, traits !== null && traits !== void 0 ? traits : {});\n }\n return (_a = _this.traitsStore.get(_this.traitsKey)) !== null && _a !== void 0 ? _a : {};\n };\n this.options = __assign(__assign({}, defaults), options);\n this.cookieOptions = cookieOptions;\n this.idKey = (_b = (_a = options.cookie) === null || _a === void 0 ? void 0 : _a.key) !== null && _b !== void 0 ? _b : defaults.cookie.key;\n this.traitsKey = (_d = (_c = options.localStorage) === null || _c === void 0 ? void 0 : _c.key) !== null && _d !== void 0 ? _d : defaults.localStorage.key;\n this.anonKey = 'ajs_anonymous_id';\n this.identityStore = this.createStorage(this.options, cookieOptions);\n // using only cookies for legacy user store\n this.legacyUserStore = this.createStorage(this.options, cookieOptions, function (s) { return s === StoreType.Cookie; });\n // using only localStorage / memory for traits store\n this.traitsStore = this.createStorage(this.options, cookieOptions, function (s) { return s !== StoreType.Cookie; });\n var legacyUser = this.legacyUserStore.get(defaults.cookie.oldKey);\n if (legacyUser && typeof legacyUser === 'object') {\n legacyUser.id && this.id(legacyUser.id);\n legacyUser.traits && this.traits(legacyUser.traits);\n }\n autoBind(this);\n }\n User.prototype.legacySIO = function () {\n var val = this.legacyUserStore.get('_sio');\n if (!val) {\n return null;\n }\n var _a = val.split('----'), anon = _a[0], user = _a[1];\n return [anon, user];\n };\n User.prototype.identify = function (id, traits) {\n if (this.options.disable) {\n return;\n }\n traits = traits !== null && traits !== void 0 ? traits : {};\n var currentId = this.id();\n if (currentId === null || currentId === id) {\n traits = __assign(__assign({}, this.traits()), traits);\n }\n if (id) {\n this.id(id);\n }\n this.traits(traits);\n };\n User.prototype.logout = function () {\n this.anonymousId(null);\n this.id(null);\n this.traits({});\n };\n User.prototype.reset = function () {\n this.logout();\n this.identityStore.clear(this.idKey);\n this.identityStore.clear(this.anonKey);\n this.traitsStore.clear(this.traitsKey);\n };\n User.prototype.load = function () {\n return new User(this.options, this.cookieOptions);\n };\n User.prototype.save = function () {\n return true;\n };\n /**\n * Creates the right storage system applying all the user options, cookie options and particular filters\n * @param options UserOptions\n * @param cookieOpts CookieOptions\n * @param filterStores filter function to apply to any StoreTypes (skipped if options specify using a custom storage)\n * @returns a Storage object\n */\n User.prototype.createStorage = function (options, cookieOpts, filterStores) {\n var stores = [\n StoreType.LocalStorage,\n StoreType.Cookie,\n StoreType.Memory,\n ];\n // If disabled we won't have any storage functionality\n if (options.disable) {\n return new UniversalStorage([]);\n }\n // If persistance is disabled we will always fallback to Memory Storage\n if (!options.persist) {\n return new UniversalStorage([new MemoryStorage()]);\n }\n if (options.storage !== undefined && options.storage !== null) {\n if (isArrayOfStoreType(options.storage)) {\n // If the user only specified order of stores we will still apply filters and transformations e.g. not using localStorage if localStorageFallbackDisabled\n stores = options.storage.stores;\n }\n }\n // Disable LocalStorage\n if (options.localStorageFallbackDisabled) {\n stores = stores.filter(function (s) { return s !== StoreType.LocalStorage; });\n }\n // Apply Additional filters\n if (filterStores) {\n stores = stores.filter(filterStores);\n }\n return new UniversalStorage(initializeStorages(applyCookieOptions(stores, cookieOpts)));\n };\n User.defaults = defaults;\n return User;\n}());\nexport { User };\nvar groupDefaults = {\n persist: true,\n cookie: {\n key: 'ajs_group_id',\n },\n localStorage: {\n key: 'ajs_group_properties',\n },\n};\nvar Group = /** @class */ (function (_super) {\n __extends(Group, _super);\n function Group(options, cookie) {\n if (options === void 0) { options = groupDefaults; }\n var _this = _super.call(this, __assign(__assign({}, groupDefaults), options), cookie) || this;\n _this.anonymousId = function (_id) {\n return undefined;\n };\n autoBind(_this);\n return _this;\n }\n return Group;\n}(User));\nexport { Group };\n//# sourceMappingURL=index.js.map","/**\n * Stores the global window analytics key\n */\nvar _globalAnalyticsKey = 'analytics';\n/**\n * Gets the global analytics/buffer\n * @param key name of the window property where the buffer is stored (default: analytics)\n * @returns AnalyticsSnippet\n */\nexport function getGlobalAnalytics() {\n return window[_globalAnalyticsKey];\n}\n/**\n * Replaces the global window key for the analytics/buffer object\n * @param key key name\n */\nexport function setGlobalAnalyticsKey(key) {\n _globalAnalyticsKey = key;\n}\n/**\n * Sets the global analytics object\n * @param analytics analytics snippet\n */\nexport function setGlobalAnalytics(analytics) {\n ;\n window[_globalAnalyticsKey] = analytics;\n}\n//# sourceMappingURL=global-analytics-helper.js.map","/**\n * Check if thenable\n * (instanceof Promise doesn't respect realms)\n */\nexport var isThenable = function (value) {\n return typeof value === 'object' &&\n value !== null &&\n 'then' in value &&\n typeof value.then === 'function';\n};\n//# sourceMappingURL=is-thenable.js.map","import { __awaiter, __generator, __spreadArray } from \"tslib\";\nimport { isThenable } from '../../lib/is-thenable';\nimport { version } from '../../generated/version';\nimport { getGlobalAnalytics } from '../../lib/global-analytics-helper';\nimport { isBufferedPageContext, getDefaultBufferedPageContext, createPageContext, } from '../page';\nimport { getVersionType } from '../../lib/version-type';\nvar flushSyncAnalyticsCalls = function (name, analytics, buffer) {\n buffer.getAndRemove(name).forEach(function (c) {\n // While the underlying methods are synchronous, the callAnalyticsMethod returns a promise,\n // which normalizes success and error states between async and non-async methods, with no perf penalty.\n callAnalyticsMethod(analytics, c).catch(console.error);\n });\n};\nexport var flushAddSourceMiddleware = function (analytics, buffer) { return __awaiter(void 0, void 0, void 0, function () {\n var _i, _a, c;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _i = 0, _a = buffer.getAndRemove('addSourceMiddleware');\n _b.label = 1;\n case 1:\n if (!(_i < _a.length)) return [3 /*break*/, 4];\n c = _a[_i];\n return [4 /*yield*/, callAnalyticsMethod(analytics, c).catch(console.error)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4: return [2 /*return*/];\n }\n });\n}); };\n/**\n * Flush register plugin\n */\nexport var flushRegister = function (analytics, buffer) { return __awaiter(void 0, void 0, void 0, function () {\n var _i, _a, c;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _i = 0, _a = buffer.getAndRemove('register');\n _b.label = 1;\n case 1:\n if (!(_i < _a.length)) return [3 /*break*/, 4];\n c = _a[_i];\n return [4 /*yield*/, callAnalyticsMethod(analytics, c).catch(console.error)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4: return [2 /*return*/];\n }\n });\n}); };\nexport var flushOn = flushSyncAnalyticsCalls.bind(this, 'on');\nexport var flushSetAnonymousID = flushSyncAnalyticsCalls.bind(this, 'setAnonymousId');\nexport var flushAnalyticsCallsInNewTask = function (analytics, buffer) {\n ;\n Object.keys(buffer.calls).forEach(function (m) {\n buffer.getAndRemove(m).forEach(function (c) {\n // No one remembers why this event loop optimization is/was neccessary. Lost to history.\n setTimeout(function () {\n callAnalyticsMethod(analytics, c).catch(console.error);\n }, 0);\n });\n });\n};\nexport var popPageContext = function (args) {\n if (hasBufferedPageContextAsLastArg(args)) {\n var ctx = args.pop();\n return createPageContext(ctx);\n }\n};\nexport var hasBufferedPageContextAsLastArg = function (args) {\n var lastArg = args[args.length - 1];\n return isBufferedPageContext(lastArg);\n};\n/**\n * Represents a buffered method call that occurred before initialization.\n */\nvar PreInitMethodCall = /** @class */ (function () {\n function PreInitMethodCall(method, args, resolve, reject) {\n if (resolve === void 0) { resolve = function () { }; }\n if (reject === void 0) { reject = console.error; }\n this.method = method;\n this.resolve = resolve;\n this.reject = reject;\n this.called = false;\n this.args = args;\n }\n return PreInitMethodCall;\n}());\nexport { PreInitMethodCall };\n/**\n * Represents any and all the buffered method calls that occurred before initialization.\n */\nvar PreInitMethodCallBuffer = /** @class */ (function () {\n function PreInitMethodCallBuffer() {\n var calls = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n calls[_i] = arguments[_i];\n }\n this._callMap = {};\n this.add.apply(this, calls);\n }\n Object.defineProperty(PreInitMethodCallBuffer.prototype, \"calls\", {\n /**\n * Pull any buffered method calls from the window object, and use them to hydrate the instance buffer.\n */\n get: function () {\n this._pushSnippetWindowBuffer();\n return this._callMap;\n },\n set: function (calls) {\n this._callMap = calls;\n },\n enumerable: false,\n configurable: true\n });\n PreInitMethodCallBuffer.prototype.get = function (methodName) {\n var _a;\n return ((_a = this.calls[methodName]) !== null && _a !== void 0 ? _a : []);\n };\n /**\n * Get all buffered method calls for a given method name, and clear them from the buffer.\n */\n PreInitMethodCallBuffer.prototype.getAndRemove = function (methodName) {\n var calls = this.get(methodName);\n this.calls[methodName] = [];\n return calls;\n };\n PreInitMethodCallBuffer.prototype.add = function () {\n var _this = this;\n var calls = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n calls[_i] = arguments[_i];\n }\n calls.forEach(function (call) {\n var eventsExpectingPageContext = [\n 'track',\n 'screen',\n 'alias',\n 'group',\n 'page',\n 'identify',\n ];\n if (eventsExpectingPageContext.includes(call.method) &&\n !hasBufferedPageContextAsLastArg(call.args)) {\n call.args = __spreadArray(__spreadArray([], call.args, true), [getDefaultBufferedPageContext()], false);\n }\n if (_this.calls[call.method]) {\n _this.calls[call.method].push(call);\n }\n else {\n _this.calls[call.method] = [call];\n }\n });\n };\n PreInitMethodCallBuffer.prototype.clear = function () {\n // clear calls in the global snippet buffered array.\n this._pushSnippetWindowBuffer();\n // clear calls in this instance\n this.calls = {};\n };\n PreInitMethodCallBuffer.prototype.toArray = function () {\n var _a;\n return (_a = []).concat.apply(_a, Object.values(this.calls));\n };\n /**\n * Fetch the buffered method calls from the window object,\n * normalize them, and use them to hydrate the buffer.\n * This removes existing buffered calls from the window object.\n */\n PreInitMethodCallBuffer.prototype._pushSnippetWindowBuffer = function () {\n // if this is the npm version, we don't want to read from the window object.\n // This avoids namespace conflicts if there is a seperate analytics library on the page.\n if (getVersionType() === 'npm') {\n return undefined;\n }\n var wa = getGlobalAnalytics();\n if (!Array.isArray(wa))\n return undefined;\n var buffered = wa.splice(0, wa.length);\n var calls = buffered.map(function (_a) {\n var methodName = _a[0], args = _a.slice(1);\n return new PreInitMethodCall(methodName, args);\n });\n this.add.apply(this, calls);\n };\n return PreInitMethodCallBuffer;\n}());\nexport { PreInitMethodCallBuffer };\n/**\n * Call method and mark as \"called\"\n * This function should never throw an error\n */\nexport function callAnalyticsMethod(analytics, call) {\n return __awaiter(this, void 0, void 0, function () {\n var result, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n if (call.called) {\n return [2 /*return*/, undefined];\n }\n call.called = true;\n result = analytics[call.method].apply(analytics, call.args);\n if (!isThenable(result)) return [3 /*break*/, 2];\n // do not defer for non-async methods\n return [4 /*yield*/, result];\n case 1:\n // do not defer for non-async methods\n _a.sent();\n _a.label = 2;\n case 2:\n call.resolve(result);\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n call.reject(err_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n}\nvar AnalyticsBuffered = /** @class */ (function () {\n function AnalyticsBuffered(loader) {\n var _this = this;\n this.trackSubmit = this._createMethod('trackSubmit');\n this.trackClick = this._createMethod('trackClick');\n this.trackLink = this._createMethod('trackLink');\n this.pageView = this._createMethod('pageview');\n this.identify = this._createMethod('identify');\n this.reset = this._createMethod('reset');\n this.group = this._createMethod('group');\n this.track = this._createMethod('track');\n this.ready = this._createMethod('ready');\n this.alias = this._createMethod('alias');\n this.debug = this._createChainableMethod('debug');\n this.page = this._createMethod('page');\n this.once = this._createChainableMethod('once');\n this.off = this._createChainableMethod('off');\n this.on = this._createChainableMethod('on');\n this.addSourceMiddleware = this._createMethod('addSourceMiddleware');\n this.setAnonymousId = this._createMethod('setAnonymousId');\n this.addDestinationMiddleware = this._createMethod('addDestinationMiddleware');\n this.screen = this._createMethod('screen');\n this.register = this._createMethod('register');\n this.deregister = this._createMethod('deregister');\n this.user = this._createMethod('user');\n this.VERSION = version;\n this._preInitBuffer = new PreInitMethodCallBuffer();\n this._promise = loader(this._preInitBuffer);\n this._promise\n .then(function (_a) {\n var ajs = _a[0], ctx = _a[1];\n _this.instance = ajs;\n _this.ctx = ctx;\n })\n .catch(function () {\n // intentionally do nothing...\n // this result of this promise will be caught by the 'catch' block on this class.\n });\n }\n AnalyticsBuffered.prototype.then = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).then.apply(_a, args);\n };\n AnalyticsBuffered.prototype.catch = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).catch.apply(_a, args);\n };\n AnalyticsBuffered.prototype.finally = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).finally.apply(_a, args);\n };\n AnalyticsBuffered.prototype._createMethod = function (methodName) {\n var _this = this;\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this.instance) {\n var result = (_a = _this.instance)[methodName].apply(_a, args);\n return Promise.resolve(result);\n }\n return new Promise(function (resolve, reject) {\n _this._preInitBuffer.add(new PreInitMethodCall(methodName, args, resolve, reject));\n });\n };\n };\n /**\n * These are for methods that where determining when the method gets \"flushed\" is not important.\n * These methods will resolve when analytics is fully initialized, and return type (other than Analytics)will not be available.\n */\n AnalyticsBuffered.prototype._createChainableMethod = function (methodName) {\n var _this = this;\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this.instance) {\n void (_a = _this.instance)[methodName].apply(_a, args);\n return _this;\n }\n else {\n _this._preInitBuffer.add(new PreInitMethodCall(methodName, args));\n }\n return _this;\n };\n };\n return AnalyticsBuffered;\n}());\nexport { AnalyticsBuffered };\n//# sourceMappingURL=index.js.map","\nvar identity = function(_){ return _; };\n\n\n/**\n * Module exports, export\n */\n\nmodule.exports = multiple(find);\nmodule.exports.find = module.exports;\n\n\n/**\n * Export the replacement function, return the modified object\n */\n\nmodule.exports.replace = function (obj, key, val, options) {\n multiple(replace).call(this, obj, key, val, options);\n return obj;\n};\n\n\n/**\n * Export the delete function, return the modified object\n */\n\nmodule.exports.del = function (obj, key, options) {\n multiple(del).call(this, obj, key, null, options);\n return obj;\n};\n\n\n/**\n * Compose applying the function to a nested key\n */\n\nfunction multiple (fn) {\n return function (obj, path, val, options) {\n var normalize = options && isFunction(options.normalizer) ? options.normalizer : defaultNormalize;\n path = normalize(path);\n\n var key;\n var finished = false;\n\n while (!finished) loop();\n\n function loop() {\n for (key in obj) {\n var normalizedKey = normalize(key);\n if (0 === path.indexOf(normalizedKey)) {\n var temp = path.substr(normalizedKey.length);\n if (temp.charAt(0) === '.' || temp.length === 0) {\n path = temp.substr(1);\n var child = obj[key];\n\n // we're at the end and there is nothing.\n if (null == child) {\n finished = true;\n return;\n }\n\n // we're at the end and there is something.\n if (!path.length) {\n finished = true;\n return;\n }\n\n // step into child\n obj = child;\n\n // but we're done here\n return;\n }\n }\n }\n\n key = undefined;\n // if we found no matching properties\n // on the current object, there's no match.\n finished = true;\n }\n\n if (!key) return;\n if (null == obj) return obj;\n\n // the `obj` and `key` is one above the leaf object and key, so\n // start object: { a: { 'b.c': 10 } }\n // end object: { 'b.c': 10 }\n // end key: 'b.c'\n // this way, you can do `obj[key]` and get `10`.\n return fn(obj, key, val);\n };\n}\n\n\n/**\n * Find an object by its key\n *\n * find({ first_name : 'Calvin' }, 'firstName')\n */\n\nfunction find (obj, key) {\n if (obj.hasOwnProperty(key)) return obj[key];\n}\n\n\n/**\n * Delete a value for a given key\n *\n * del({ a : 'b', x : 'y' }, 'X' }) -> { a : 'b' }\n */\n\nfunction del (obj, key) {\n if (obj.hasOwnProperty(key)) delete obj[key];\n return obj;\n}\n\n\n/**\n * Replace an objects existing value with a new one\n *\n * replace({ a : 'b' }, 'a', 'c') -> { a : 'c' }\n */\n\nfunction replace (obj, key, val) {\n if (obj.hasOwnProperty(key)) obj[key] = val;\n return obj;\n}\n\n/**\n * Normalize a `dot.separated.path`.\n *\n * A.HELL(!*&#(!)O_WOR LD.bar => ahelloworldbar\n *\n * @param {String} path\n * @return {String}\n */\n\nfunction defaultNormalize(path) {\n return path.replace(/[^a-zA-Z0-9\\.]+/g, '').toLowerCase();\n}\n\n/**\n * Check if a value is a function.\n *\n * @param {*} val\n * @return {boolean} Returns `true` if `val` is a function, otherwise `false`.\n */\n\nfunction isFunction(val) {\n return typeof val === 'function';\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nfunction trait(a, b) {\n return function () {\n var traits = this.traits();\n var props = this.properties ? this.properties() : {};\n return (obj_case_1.default(traits, \"address.\" + a) ||\n obj_case_1.default(traits, a) ||\n (b ? obj_case_1.default(traits, \"address.\" + b) : null) ||\n (b ? obj_case_1.default(traits, b) : null) ||\n obj_case_1.default(props, \"address.\" + a) ||\n obj_case_1.default(props, a) ||\n (b ? obj_case_1.default(props, \"address.\" + b) : null) ||\n (b ? obj_case_1.default(props, b) : null));\n };\n}\nfunction default_1(proto) {\n proto.zip = trait(\"postalCode\", \"zip\");\n proto.country = trait(\"country\");\n proto.street = trait(\"street\");\n proto.state = trait(\"state\");\n proto.city = trait(\"city\");\n proto.region = trait(\"region\");\n}\nexports.default = default_1;\n//# sourceMappingURL=address.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.clone = void 0;\nfunction clone(properties) {\n if (typeof properties !== 'object')\n return properties;\n if (Object.prototype.toString.call(properties) === '[object Object]') {\n var temp = {};\n for (var key in properties) {\n if (Object.prototype.hasOwnProperty.call(properties, key)) {\n temp[key] = clone(properties[key]);\n }\n }\n return temp;\n }\n else if (Array.isArray(properties)) {\n return properties.map(clone);\n }\n else {\n return properties;\n }\n}\nexports.clone = clone;\n//# sourceMappingURL=clone.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar disabled = {\n Salesforce: true,\n};\nfunction default_1(integration) {\n return !disabled[integration];\n}\nexports.default = default_1;\n//# sourceMappingURL=is-enabled.js.map","'use strict';\n\n/**\n * Matcher, slightly modified from:\n *\n * https://github.com/csnover/js-iso8601/blob/lax/iso8601.js\n */\n\nvar matcher = /^(\\d{4})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:([ T])(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\n\n/**\n * Convert an ISO date string to a date. Fallback to native `Date.parse`.\n *\n * https://github.com/csnover/js-iso8601/blob/lax/iso8601.js\n *\n * @param {String} iso\n * @return {Date}\n */\n\nexports.parse = function(iso) {\n var numericKeys = [1, 5, 6, 7, 11, 12];\n var arr = matcher.exec(iso);\n var offset = 0;\n\n // fallback to native parsing\n if (!arr) {\n return new Date(iso);\n }\n\n /* eslint-disable no-cond-assign */\n // remove undefined values\n for (var i = 0, val; val = numericKeys[i]; i++) {\n arr[val] = parseInt(arr[val], 10) || 0;\n }\n /* eslint-enable no-cond-assign */\n\n // allow undefined days and months\n arr[2] = parseInt(arr[2], 10) || 1;\n arr[3] = parseInt(arr[3], 10) || 1;\n\n // month is 0-11\n arr[2]--;\n\n // allow abitrary sub-second precision\n arr[8] = arr[8] ? (arr[8] + '00').substring(0, 3) : 0;\n\n // apply timezone if one exists\n if (arr[4] === ' ') {\n offset = new Date().getTimezoneOffset();\n } else if (arr[9] !== 'Z' && arr[10]) {\n offset = arr[11] * 60 + arr[12];\n if (arr[10] === '+') {\n offset = 0 - offset;\n }\n }\n\n var millis = Date.UTC(arr[1], arr[2], arr[3], arr[5], arr[6] + offset, arr[7], arr[8]);\n return new Date(millis);\n};\n\n\n/**\n * Checks whether a `string` is an ISO date string. `strict` mode requires that\n * the date string at least have a year, month and date.\n *\n * @param {String} string\n * @param {Boolean} strict\n * @return {Boolean}\n */\n\nexports.is = function(string, strict) {\n if (typeof string !== 'string') {\n return false;\n }\n if (strict && (/^\\d{4}-\\d{2}-\\d{2}/).test(string) === false) {\n return false;\n }\n return matcher.test(string);\n};\n","\"use strict\";\n\n/**\n * Matcher.\n */\n\nvar matcher = /\\d{13}/;\n\n/**\n * Check whether a string is a millisecond date string.\n *\n * @param {string} string\n * @return {boolean}\n */\nexports.is = function (string) {\n return matcher.test(string);\n};\n\n/**\n * Convert a millisecond string to a date.\n *\n * @param {string} millis\n * @return {Date}\n */\nexports.parse = function (millis) {\n millis = parseInt(millis, 10);\n return new Date(millis);\n};\n","\"use strict\";\n\n/**\n * Matcher.\n */\n\nvar matcher = /\\d{10}/;\n\n/**\n * Check whether a string is a second date string.\n *\n * @param {string} string\n * @return {Boolean}\n */\nexports.is = function (string) {\n return matcher.test(string);\n};\n\n/**\n * Convert a second string to a date.\n *\n * @param {string} seconds\n * @return {Date}\n */\nexports.parse = function (seconds) {\n var millis = parseInt(seconds, 10) * 1000;\n return new Date(millis);\n};\n","\"use strict\";\n\nvar isodate = require(\"@segment/isodate\");\nvar milliseconds = require(\"./milliseconds\");\nvar seconds = require(\"./seconds\");\n\nvar objProto = Object.prototype;\nvar toStr = objProto.toString;\n\nfunction isDate(value) {\n return toStr.call(value) === \"[object Date]\";\n}\n\nfunction isNumber(value) {\n return toStr.call(value) === \"[object Number]\";\n}\n\n/**\n * Returns a new Javascript Date object, allowing a variety of extra input types\n * over the native Date constructor.\n *\n * @param {Date|string|number} val\n */\nmodule.exports = function newDate(val) {\n if (isDate(val)) return val;\n if (isNumber(val)) return new Date(toMs(val));\n\n // date strings\n if (isodate.is(val)) {\n return isodate.parse(val);\n }\n if (milliseconds.is(val)) {\n return milliseconds.parse(val);\n }\n if (seconds.is(val)) {\n return seconds.parse(val);\n }\n\n // fallback to Date.parse\n return new Date(val);\n};\n\n/**\n * If the number passed val is seconds from the epoch, turn it into milliseconds.\n * Milliseconds would be greater than 31557600000 (December 31, 1970).\n *\n * @param {number} num\n */\nfunction toMs(num) {\n if (num < 31557600000) return num * 1000;\n return num;\n}\n","'use strict';\n\nvar isodate = require('@segment/isodate');\n\n/**\n * Expose `traverse`.\n */\nmodule.exports = traverse;\n\n/**\n * Recursively traverse an object or array, and convert\n * all ISO date strings parse into Date objects.\n *\n * @param {Object} input - object, array, or string to convert\n * @param {Boolean} strict - only convert strings with year, month, and date\n * @return {Object}\n */\nfunction traverse(input, strict) {\n if (strict === undefined) strict = true;\n if (input && typeof input === 'object') {\n return traverseObject(input, strict);\n } else if (Array.isArray(input)) {\n return traverseArray(input, strict);\n } else if (isodate.is(input, strict)) {\n return isodate.parse(input);\n }\n return input;\n}\n\n/**\n * Object traverser helper function.\n *\n * @param {Object} obj - object to traverse\n * @param {Boolean} strict - only convert strings with year, month, and date\n * @return {Object}\n */\nfunction traverseObject(obj, strict) {\n Object.keys(obj).forEach(function(key) {\n obj[key] = traverse(obj[key], strict);\n });\n return obj;\n}\n\n/**\n * Array traverser helper function\n *\n * @param {Array} arr - array to traverse\n * @param {Boolean} strict - only convert strings with year, month, and date\n * @return {Array}\n */\nfunction traverseArray(arr, strict) {\n arr.forEach(function(value, index) {\n arr[index] = traverse(value, strict);\n });\n return arr;\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Facade = void 0;\nvar address_1 = __importDefault(require(\"./address\"));\nvar clone_1 = require(\"./clone\");\nvar is_enabled_1 = __importDefault(require(\"./is-enabled\"));\nvar new_date_1 = __importDefault(require(\"new-date\"));\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nvar isodate_traverse_1 = __importDefault(require(\"@segment/isodate-traverse\"));\nfunction Facade(obj, opts) {\n opts = opts || {};\n this.raw = clone_1.clone(obj);\n if (!(\"clone\" in opts))\n opts.clone = true;\n if (opts.clone)\n obj = clone_1.clone(obj);\n if (!(\"traverse\" in opts))\n opts.traverse = true;\n if (!(\"timestamp\" in obj))\n obj.timestamp = new Date();\n else\n obj.timestamp = new_date_1.default(obj.timestamp);\n if (opts.traverse)\n isodate_traverse_1.default(obj);\n this.opts = opts;\n this.obj = obj;\n}\nexports.Facade = Facade;\nvar f = Facade.prototype;\nf.proxy = function (field) {\n var fields = field.split(\".\");\n field = fields.shift();\n var obj = this[field] || this.obj[field];\n if (!obj)\n return obj;\n if (typeof obj === \"function\")\n obj = obj.call(this) || {};\n if (fields.length === 0)\n return this.opts.clone ? transform(obj) : obj;\n obj = obj_case_1.default(obj, fields.join(\".\"));\n return this.opts.clone ? transform(obj) : obj;\n};\nf.field = function (field) {\n var obj = this.obj[field];\n return this.opts.clone ? transform(obj) : obj;\n};\nFacade.proxy = function (field) {\n return function () {\n return this.proxy(field);\n };\n};\nFacade.field = function (field) {\n return function () {\n return this.field(field);\n };\n};\nFacade.multi = function (path) {\n return function () {\n var multi = this.proxy(path + \"s\");\n if (Array.isArray(multi))\n return multi;\n var one = this.proxy(path);\n if (one)\n one = [this.opts.clone ? clone_1.clone(one) : one];\n return one || [];\n };\n};\nFacade.one = function (path) {\n return function () {\n var one = this.proxy(path);\n if (one)\n return one;\n var multi = this.proxy(path + \"s\");\n if (Array.isArray(multi))\n return multi[0];\n };\n};\nf.json = function () {\n var ret = this.opts.clone ? clone_1.clone(this.obj) : this.obj;\n if (this.type)\n ret.type = this.type();\n return ret;\n};\nf.rawEvent = function () {\n return this.raw;\n};\nf.options = function (integration) {\n var obj = this.obj.options || this.obj.context || {};\n var options = this.opts.clone ? clone_1.clone(obj) : obj;\n if (!integration)\n return options;\n if (!this.enabled(integration))\n return;\n var integrations = this.integrations();\n var value = integrations[integration] || obj_case_1.default(integrations, integration);\n if (typeof value !== \"object\")\n value = obj_case_1.default(this.options(), integration);\n return typeof value === \"object\" ? value : {};\n};\nf.context = f.options;\nf.enabled = function (integration) {\n var allEnabled = this.proxy(\"options.providers.all\");\n if (typeof allEnabled !== \"boolean\")\n allEnabled = this.proxy(\"options.all\");\n if (typeof allEnabled !== \"boolean\")\n allEnabled = this.proxy(\"integrations.all\");\n if (typeof allEnabled !== \"boolean\")\n allEnabled = true;\n var enabled = allEnabled && is_enabled_1.default(integration);\n var options = this.integrations();\n if (options.providers && options.providers.hasOwnProperty(integration)) {\n enabled = options.providers[integration];\n }\n if (options.hasOwnProperty(integration)) {\n var settings = options[integration];\n if (typeof settings === \"boolean\") {\n enabled = settings;\n }\n else {\n enabled = true;\n }\n }\n return !!enabled;\n};\nf.integrations = function () {\n return (this.obj.integrations || this.proxy(\"options.providers\") || this.options());\n};\nf.active = function () {\n var active = this.proxy(\"options.active\");\n if (active === null || active === undefined)\n active = true;\n return active;\n};\nf.anonymousId = function () {\n return this.field(\"anonymousId\") || this.field(\"sessionId\");\n};\nf.sessionId = f.anonymousId;\nf.groupId = Facade.proxy(\"options.groupId\");\nf.traits = function (aliases) {\n var ret = this.proxy(\"options.traits\") || {};\n var id = this.userId();\n aliases = aliases || {};\n if (id)\n ret.id = id;\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null\n ? this.proxy(\"options.traits.\" + alias)\n : this[alias]();\n if (value == null)\n continue;\n ret[aliases[alias]] = value;\n delete ret[alias];\n }\n }\n return ret;\n};\nf.library = function () {\n var library = this.proxy(\"options.library\");\n if (!library)\n return { name: \"unknown\", version: null };\n if (typeof library === \"string\")\n return { name: library, version: null };\n return library;\n};\nf.device = function () {\n var device = this.proxy(\"context.device\");\n if (typeof device !== \"object\" || device === null) {\n device = {};\n }\n var library = this.library().name;\n if (device.type)\n return device;\n if (library.indexOf(\"ios\") > -1)\n device.type = \"ios\";\n if (library.indexOf(\"android\") > -1)\n device.type = \"android\";\n return device;\n};\nf.userAgent = Facade.proxy(\"context.userAgent\");\nf.timezone = Facade.proxy(\"context.timezone\");\nf.timestamp = Facade.field(\"timestamp\");\nf.channel = Facade.field(\"channel\");\nf.ip = Facade.proxy(\"context.ip\");\nf.userId = Facade.field(\"userId\");\naddress_1.default(f);\nfunction transform(obj) {\n return clone_1.clone(obj);\n}\n//# sourceMappingURL=facade.js.map","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Alias = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nfunction Alias(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Alias = Alias;\ninherits_1.default(Alias, facade_1.Facade);\nAlias.prototype.action = function () {\n return \"alias\";\n};\nAlias.prototype.type = Alias.prototype.action;\nAlias.prototype.previousId = function () {\n return this.field(\"previousId\") || this.field(\"from\");\n};\nAlias.prototype.from = Alias.prototype.previousId;\nAlias.prototype.userId = function () {\n return this.field(\"userId\") || this.field(\"to\");\n};\nAlias.prototype.to = Alias.prototype.userId;\n//# sourceMappingURL=alias.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar matcher = /.+\\@.+\\..+/;\nfunction isEmail(string) {\n return matcher.test(string);\n}\nexports.default = isEmail;\n//# sourceMappingURL=is-email.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Group = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nvar new_date_1 = __importDefault(require(\"new-date\"));\nvar facade_1 = require(\"./facade\");\nfunction Group(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Group = Group;\ninherits_1.default(Group, facade_1.Facade);\nvar g = Group.prototype;\ng.action = function () {\n return \"group\";\n};\ng.type = g.action;\ng.groupId = facade_1.Facade.field(\"groupId\");\ng.created = function () {\n var created = this.proxy(\"traits.createdAt\") ||\n this.proxy(\"traits.created\") ||\n this.proxy(\"properties.createdAt\") ||\n this.proxy(\"properties.created\");\n if (created)\n return new_date_1.default(created);\n};\ng.email = function () {\n var email = this.proxy(\"traits.email\");\n if (email)\n return email;\n var groupId = this.groupId();\n if (is_email_1.default(groupId))\n return groupId;\n};\ng.traits = function (aliases) {\n var ret = this.properties();\n var id = this.groupId();\n aliases = aliases || {};\n if (id)\n ret.id = id;\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null\n ? this.proxy(\"traits.\" + alias)\n : this[alias]();\n if (value == null)\n continue;\n ret[aliases[alias]] = value;\n delete ret[alias];\n }\n }\n return ret;\n};\ng.name = facade_1.Facade.proxy(\"traits.name\");\ng.industry = facade_1.Facade.proxy(\"traits.industry\");\ng.employees = facade_1.Facade.proxy(\"traits.employees\");\ng.properties = function () {\n return this.field(\"traits\") || this.field(\"properties\") || {};\n};\n//# sourceMappingURL=group.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Identify = void 0;\nvar facade_1 = require(\"./facade\");\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nvar new_date_1 = __importDefault(require(\"new-date\"));\nvar trim = function (str) { return str.trim(); };\nfunction Identify(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Identify = Identify;\ninherits_1.default(Identify, facade_1.Facade);\nvar i = Identify.prototype;\ni.action = function () {\n return \"identify\";\n};\ni.type = i.action;\ni.traits = function (aliases) {\n var ret = this.field(\"traits\") || {};\n var id = this.userId();\n aliases = aliases || {};\n if (id)\n ret.id = id;\n for (var alias in aliases) {\n var value = this[alias] == null ? this.proxy(\"traits.\" + alias) : this[alias]();\n if (value == null)\n continue;\n ret[aliases[alias]] = value;\n if (alias !== aliases[alias])\n delete ret[alias];\n }\n return ret;\n};\ni.email = function () {\n var email = this.proxy(\"traits.email\");\n if (email)\n return email;\n var userId = this.userId();\n if (is_email_1.default(userId))\n return userId;\n};\ni.created = function () {\n var created = this.proxy(\"traits.created\") || this.proxy(\"traits.createdAt\");\n if (created)\n return new_date_1.default(created);\n};\ni.companyCreated = function () {\n var created = this.proxy(\"traits.company.created\") ||\n this.proxy(\"traits.company.createdAt\");\n if (created) {\n return new_date_1.default(created);\n }\n};\ni.companyName = function () {\n return this.proxy(\"traits.company.name\");\n};\ni.name = function () {\n var name = this.proxy(\"traits.name\");\n if (typeof name === \"string\") {\n return trim(name);\n }\n var firstName = this.firstName();\n var lastName = this.lastName();\n if (firstName && lastName) {\n return trim(firstName + \" \" + lastName);\n }\n};\ni.firstName = function () {\n var firstName = this.proxy(\"traits.firstName\");\n if (typeof firstName === \"string\") {\n return trim(firstName);\n }\n var name = this.proxy(\"traits.name\");\n if (typeof name === \"string\") {\n return trim(name).split(\" \")[0];\n }\n};\ni.lastName = function () {\n var lastName = this.proxy(\"traits.lastName\");\n if (typeof lastName === \"string\") {\n return trim(lastName);\n }\n var name = this.proxy(\"traits.name\");\n if (typeof name !== \"string\") {\n return;\n }\n var space = trim(name).indexOf(\" \");\n if (space === -1) {\n return;\n }\n return trim(name.substr(space + 1));\n};\ni.uid = function () {\n return this.userId() || this.username() || this.email();\n};\ni.description = function () {\n return this.proxy(\"traits.description\") || this.proxy(\"traits.background\");\n};\ni.age = function () {\n var date = this.birthday();\n var age = obj_case_1.default(this.traits(), \"age\");\n if (age != null)\n return age;\n if (!(date instanceof Date))\n return;\n var now = new Date();\n return now.getFullYear() - date.getFullYear();\n};\ni.avatar = function () {\n var traits = this.traits();\n return (obj_case_1.default(traits, \"avatar\") || obj_case_1.default(traits, \"photoUrl\") || obj_case_1.default(traits, \"avatarUrl\"));\n};\ni.position = function () {\n var traits = this.traits();\n return obj_case_1.default(traits, \"position\") || obj_case_1.default(traits, \"jobTitle\");\n};\ni.username = facade_1.Facade.proxy(\"traits.username\");\ni.website = facade_1.Facade.one(\"traits.website\");\ni.websites = facade_1.Facade.multi(\"traits.website\");\ni.phone = facade_1.Facade.one(\"traits.phone\");\ni.phones = facade_1.Facade.multi(\"traits.phone\");\ni.address = facade_1.Facade.proxy(\"traits.address\");\ni.gender = facade_1.Facade.proxy(\"traits.gender\");\ni.birthday = facade_1.Facade.proxy(\"traits.birthday\");\n//# sourceMappingURL=identify.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Track = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nvar identify_1 = require(\"./identify\");\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nfunction Track(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Track = Track;\ninherits_1.default(Track, facade_1.Facade);\nvar t = Track.prototype;\nt.action = function () {\n return \"track\";\n};\nt.type = t.action;\nt.event = facade_1.Facade.field(\"event\");\nt.value = facade_1.Facade.proxy(\"properties.value\");\nt.category = facade_1.Facade.proxy(\"properties.category\");\nt.id = facade_1.Facade.proxy(\"properties.id\");\nt.productId = function () {\n return (this.proxy(\"properties.product_id\") || this.proxy(\"properties.productId\"));\n};\nt.promotionId = function () {\n return (this.proxy(\"properties.promotion_id\") ||\n this.proxy(\"properties.promotionId\"));\n};\nt.cartId = function () {\n return this.proxy(\"properties.cart_id\") || this.proxy(\"properties.cartId\");\n};\nt.checkoutId = function () {\n return (this.proxy(\"properties.checkout_id\") || this.proxy(\"properties.checkoutId\"));\n};\nt.paymentId = function () {\n return (this.proxy(\"properties.payment_id\") || this.proxy(\"properties.paymentId\"));\n};\nt.couponId = function () {\n return (this.proxy(\"properties.coupon_id\") || this.proxy(\"properties.couponId\"));\n};\nt.wishlistId = function () {\n return (this.proxy(\"properties.wishlist_id\") || this.proxy(\"properties.wishlistId\"));\n};\nt.reviewId = function () {\n return (this.proxy(\"properties.review_id\") || this.proxy(\"properties.reviewId\"));\n};\nt.orderId = function () {\n return (this.proxy(\"properties.id\") ||\n this.proxy(\"properties.order_id\") ||\n this.proxy(\"properties.orderId\"));\n};\nt.sku = facade_1.Facade.proxy(\"properties.sku\");\nt.tax = facade_1.Facade.proxy(\"properties.tax\");\nt.name = facade_1.Facade.proxy(\"properties.name\");\nt.price = facade_1.Facade.proxy(\"properties.price\");\nt.total = facade_1.Facade.proxy(\"properties.total\");\nt.repeat = facade_1.Facade.proxy(\"properties.repeat\");\nt.coupon = facade_1.Facade.proxy(\"properties.coupon\");\nt.shipping = facade_1.Facade.proxy(\"properties.shipping\");\nt.discount = facade_1.Facade.proxy(\"properties.discount\");\nt.shippingMethod = function () {\n return (this.proxy(\"properties.shipping_method\") ||\n this.proxy(\"properties.shippingMethod\"));\n};\nt.paymentMethod = function () {\n return (this.proxy(\"properties.payment_method\") ||\n this.proxy(\"properties.paymentMethod\"));\n};\nt.description = facade_1.Facade.proxy(\"properties.description\");\nt.plan = facade_1.Facade.proxy(\"properties.plan\");\nt.subtotal = function () {\n var subtotal = obj_case_1.default(this.properties(), \"subtotal\");\n var total = this.total() || this.revenue();\n if (subtotal)\n return subtotal;\n if (!total)\n return 0;\n if (this.total()) {\n var n = this.tax();\n if (n)\n total -= n;\n n = this.shipping();\n if (n)\n total -= n;\n n = this.discount();\n if (n)\n total += n;\n }\n return total;\n};\nt.products = function () {\n var props = this.properties();\n var products = obj_case_1.default(props, \"products\");\n if (Array.isArray(products)) {\n return products.filter(function (item) { return item !== null; });\n }\n return [];\n};\nt.quantity = function () {\n var props = this.obj.properties || {};\n return props.quantity || 1;\n};\nt.currency = function () {\n var props = this.obj.properties || {};\n return props.currency || \"USD\";\n};\nt.referrer = function () {\n return (this.proxy(\"context.referrer.url\") ||\n this.proxy(\"context.page.referrer\") ||\n this.proxy(\"properties.referrer\"));\n};\nt.query = facade_1.Facade.proxy(\"options.query\");\nt.properties = function (aliases) {\n var ret = this.field(\"properties\") || {};\n aliases = aliases || {};\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null\n ? this.proxy(\"properties.\" + alias)\n : this[alias]();\n if (value == null)\n continue;\n ret[aliases[alias]] = value;\n delete ret[alias];\n }\n }\n return ret;\n};\nt.username = function () {\n return (this.proxy(\"traits.username\") ||\n this.proxy(\"properties.username\") ||\n this.userId() ||\n this.sessionId());\n};\nt.email = function () {\n var email = this.proxy(\"traits.email\") ||\n this.proxy(\"properties.email\") ||\n this.proxy(\"options.traits.email\");\n if (email)\n return email;\n var userId = this.userId();\n if (is_email_1.default(userId))\n return userId;\n};\nt.revenue = function () {\n var revenue = this.proxy(\"properties.revenue\");\n var event = this.event();\n var orderCompletedRegExp = /^[ _]?completed[ _]?order[ _]?|^[ _]?order[ _]?completed[ _]?$/i;\n if (!revenue && event && event.match(orderCompletedRegExp)) {\n revenue = this.proxy(\"properties.total\");\n }\n return currency(revenue);\n};\nt.cents = function () {\n var revenue = this.revenue();\n return typeof revenue !== \"number\" ? this.value() || 0 : revenue * 100;\n};\nt.identify = function () {\n var json = this.json();\n json.traits = this.traits();\n return new identify_1.Identify(json, this.opts);\n};\nfunction currency(val) {\n if (!val)\n return;\n if (typeof val === \"number\") {\n return val;\n }\n if (typeof val !== \"string\") {\n return;\n }\n val = val.replace(/\\$/g, \"\");\n val = parseFloat(val);\n if (!isNaN(val)) {\n return val;\n }\n}\n//# sourceMappingURL=track.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Page = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nvar track_1 = require(\"./track\");\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nfunction Page(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Page = Page;\ninherits_1.default(Page, facade_1.Facade);\nvar p = Page.prototype;\np.action = function () {\n return \"page\";\n};\np.type = p.action;\np.category = facade_1.Facade.field(\"category\");\np.name = facade_1.Facade.field(\"name\");\np.title = facade_1.Facade.proxy(\"properties.title\");\np.path = facade_1.Facade.proxy(\"properties.path\");\np.url = facade_1.Facade.proxy(\"properties.url\");\np.referrer = function () {\n return (this.proxy(\"context.referrer.url\") ||\n this.proxy(\"context.page.referrer\") ||\n this.proxy(\"properties.referrer\"));\n};\np.properties = function (aliases) {\n var props = this.field(\"properties\") || {};\n var category = this.category();\n var name = this.name();\n aliases = aliases || {};\n if (category)\n props.category = category;\n if (name)\n props.name = name;\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null\n ? this.proxy(\"properties.\" + alias)\n : this[alias]();\n if (value == null)\n continue;\n props[aliases[alias]] = value;\n if (alias !== aliases[alias])\n delete props[alias];\n }\n }\n return props;\n};\np.email = function () {\n var email = this.proxy(\"context.traits.email\") || this.proxy(\"properties.email\");\n if (email)\n return email;\n var userId = this.userId();\n if (is_email_1.default(userId))\n return userId;\n};\np.fullName = function () {\n var category = this.category();\n var name = this.name();\n return name && category ? category + \" \" + name : name;\n};\np.event = function (name) {\n return name ? \"Viewed \" + name + \" Page\" : \"Loaded a Page\";\n};\np.track = function (name) {\n var json = this.json();\n json.event = this.event(name);\n json.timestamp = this.timestamp();\n json.properties = this.properties();\n return new track_1.Track(json, this.opts);\n};\n//# sourceMappingURL=page.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Screen = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar page_1 = require(\"./page\");\nvar track_1 = require(\"./track\");\nfunction Screen(dictionary, opts) {\n page_1.Page.call(this, dictionary, opts);\n}\nexports.Screen = Screen;\ninherits_1.default(Screen, page_1.Page);\nScreen.prototype.action = function () {\n return \"screen\";\n};\nScreen.prototype.type = Screen.prototype.action;\nScreen.prototype.event = function (name) {\n return name ? \"Viewed \" + name + \" Screen\" : \"Loaded a Screen\";\n};\nScreen.prototype.track = function (name) {\n var json = this.json();\n json.event = this.event(name);\n json.timestamp = this.timestamp();\n json.properties = this.properties();\n return new track_1.Track(json, this.opts);\n};\n//# sourceMappingURL=screen.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Delete = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nfunction Delete(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Delete = Delete;\ninherits_1.default(Delete, facade_1.Facade);\nDelete.prototype.type = function () {\n return \"delete\";\n};\n//# sourceMappingURL=delete.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Delete = exports.Screen = exports.Page = exports.Track = exports.Identify = exports.Group = exports.Alias = exports.Facade = void 0;\nvar facade_1 = require(\"./facade\");\nObject.defineProperty(exports, \"Facade\", { enumerable: true, get: function () { return facade_1.Facade; } });\nvar alias_1 = require(\"./alias\");\nObject.defineProperty(exports, \"Alias\", { enumerable: true, get: function () { return alias_1.Alias; } });\nvar group_1 = require(\"./group\");\nObject.defineProperty(exports, \"Group\", { enumerable: true, get: function () { return group_1.Group; } });\nvar identify_1 = require(\"./identify\");\nObject.defineProperty(exports, \"Identify\", { enumerable: true, get: function () { return identify_1.Identify; } });\nvar track_1 = require(\"./track\");\nObject.defineProperty(exports, \"Track\", { enumerable: true, get: function () { return track_1.Track; } });\nvar page_1 = require(\"./page\");\nObject.defineProperty(exports, \"Page\", { enumerable: true, get: function () { return page_1.Page; } });\nvar screen_1 = require(\"./screen\");\nObject.defineProperty(exports, \"Screen\", { enumerable: true, get: function () { return screen_1.Screen; } });\nvar delete_1 = require(\"./delete\");\nObject.defineProperty(exports, \"Delete\", { enumerable: true, get: function () { return delete_1.Delete; } });\nexports.default = __assign(__assign({}, facade_1.Facade), { Alias: alias_1.Alias,\n Group: group_1.Group,\n Identify: identify_1.Identify,\n Track: track_1.Track,\n Page: page_1.Page,\n Screen: screen_1.Screen,\n Delete: delete_1.Delete });\n//# sourceMappingURL=index.js.map","import { Alias, Facade, Group, Identify, Page, Screen, Track, } from '@segment/facade';\nexport function toFacade(evt, options) {\n var fcd = new Facade(evt, options);\n if (evt.type === 'track') {\n fcd = new Track(evt, options);\n }\n if (evt.type === 'identify') {\n fcd = new Identify(evt, options);\n }\n if (evt.type === 'page') {\n fcd = new Page(evt, options);\n }\n if (evt.type === 'alias') {\n fcd = new Alias(evt, options);\n }\n if (evt.type === 'group') {\n fcd = new Group(evt, options);\n }\n if (evt.type === 'screen') {\n fcd = new Screen(evt, options);\n }\n Object.defineProperty(fcd, 'obj', {\n value: evt,\n writable: true,\n });\n return fcd;\n}\n//# sourceMappingURL=to-facade.js.map","/**\n * Register event listener on document that fires when:\n * * tab change or tab close (in mobile or desktop)\n * * click back / forward button\n * * click any link or perform any other navigation action\n * * soft refresh / hard refresh\n *\n * adapted from https://stackoverflow.com/questions/3239834/window-onbeforeunload-not-working-on-the-ipad/52864508#52864508,\n */\nexport var onPageChange = function (cb) {\n var unloaded = false; // prevents double firing if both are supported\n window.addEventListener('pagehide', function () {\n if (unloaded)\n return;\n unloaded = true;\n cb(unloaded);\n });\n // using document instead of window because of bug affecting browsers before safari 14 (detail in footnotes https://caniuse.com/?search=visibilitychange)\n document.addEventListener('visibilitychange', function () {\n if (document.visibilityState == 'hidden') {\n if (unloaded)\n return;\n unloaded = true;\n }\n else {\n unloaded = false;\n }\n cb(unloaded);\n });\n};\n//# sourceMappingURL=on-page-change.js.map","import { __extends } from \"tslib\";\nvar RateLimitError = /** @class */ (function (_super) {\n __extends(RateLimitError, _super);\n function RateLimitError(message, retryTimeout) {\n var _this = _super.call(this, message) || this;\n _this.retryTimeout = retryTimeout;\n _this.name = 'RateLimitError';\n return _this;\n }\n return RateLimitError;\n}(Error));\nexport { RateLimitError };\n//# sourceMappingURL=ratelimit-error.js.map","import { __assign } from \"tslib\";\nexport var createHeaders = function (headerSettings) {\n return __assign({ 'Content-Type': 'text/plain' }, (typeof headerSettings === 'function'\n ? headerSettings()\n : headerSettings));\n};\n//# sourceMappingURL=shared-dispatcher.js.map","import { __assign, __awaiter, __generator, __rest } from \"tslib\";\nimport { fetch } from '../../lib/fetch';\nimport { onPageChange } from '../../lib/on-page-change';\nimport { RateLimitError } from './ratelimit-error';\nimport { Context } from '../../core/context';\nimport { createHeaders } from './shared-dispatcher';\nvar MAX_PAYLOAD_SIZE = 500;\nvar MAX_KEEPALIVE_SIZE = 64;\nfunction kilobytes(buffer) {\n var size = encodeURI(JSON.stringify(buffer)).split(/%..|./).length - 1;\n return size / 1024;\n}\n/**\n * Checks if the payload is over or close to\n * the maximum payload size allowed by tracking\n * API.\n */\nfunction approachingTrackingAPILimit(buffer) {\n return kilobytes(buffer) >= MAX_PAYLOAD_SIZE - 50;\n}\n/**\n * Checks if payload is over or approaching the limit for keepalive\n * requests. If keepalive is enabled we want to avoid\n * going over this to prevent data loss.\n */\nfunction passedKeepaliveLimit(buffer) {\n return kilobytes(buffer) >= MAX_KEEPALIVE_SIZE - 10;\n}\nfunction chunks(batch) {\n var result = [];\n var index = 0;\n batch.forEach(function (item) {\n var size = kilobytes(result[index]);\n if (size >= 64) {\n index++;\n }\n if (result[index]) {\n result[index].push(item);\n }\n else {\n result[index] = [item];\n }\n });\n return result;\n}\nexport default function batch(apiHost, config) {\n var _a, _b;\n var buffer = [];\n var pageUnloaded = false;\n var limit = (_a = config === null || config === void 0 ? void 0 : config.size) !== null && _a !== void 0 ? _a : 10;\n var timeout = (_b = config === null || config === void 0 ? void 0 : config.timeout) !== null && _b !== void 0 ? _b : 5000;\n var rateLimitTimeout = 0;\n function sendBatch(batch) {\n var _a;\n if (batch.length === 0) {\n return;\n }\n var writeKey = (_a = batch[0]) === null || _a === void 0 ? void 0 : _a.writeKey;\n // Remove sentAt from every event as batching only needs a single timestamp\n var updatedBatch = batch.map(function (event) {\n var _a = event, sentAt = _a.sentAt, newEvent = __rest(_a, [\"sentAt\"]);\n return newEvent;\n });\n return fetch(\"https://\".concat(apiHost, \"/b\"), {\n credentials: config === null || config === void 0 ? void 0 : config.credentials,\n keepalive: (config === null || config === void 0 ? void 0 : config.keepalive) || pageUnloaded,\n headers: createHeaders(config === null || config === void 0 ? void 0 : config.headers),\n method: 'post',\n body: JSON.stringify({\n writeKey: writeKey,\n batch: updatedBatch,\n sentAt: new Date().toISOString(),\n }),\n // @ts-ignore - not in the ts lib yet\n priority: config === null || config === void 0 ? void 0 : config.priority,\n }).then(function (res) {\n var _a;\n if (res.status >= 500) {\n throw new Error(\"Bad response from server: \".concat(res.status));\n }\n if (res.status === 429) {\n var retryTimeoutStringSecs = (_a = res.headers) === null || _a === void 0 ? void 0 : _a.get('x-ratelimit-reset');\n var retryTimeoutMS = typeof retryTimeoutStringSecs == 'string'\n ? parseInt(retryTimeoutStringSecs) * 1000\n : timeout;\n throw new RateLimitError(\"Rate limit exceeded: \".concat(res.status), retryTimeoutMS);\n }\n });\n }\n function flush(attempt) {\n var _a;\n if (attempt === void 0) { attempt = 1; }\n return __awaiter(this, void 0, void 0, function () {\n var batch_1;\n return __generator(this, function (_b) {\n if (buffer.length) {\n batch_1 = buffer;\n buffer = [];\n return [2 /*return*/, (_a = sendBatch(batch_1)) === null || _a === void 0 ? void 0 : _a.catch(function (error) {\n var _a;\n var ctx = Context.system();\n ctx.log('error', 'Error sending batch', error);\n if (attempt <= ((_a = config === null || config === void 0 ? void 0 : config.maxRetries) !== null && _a !== void 0 ? _a : 10)) {\n if (error.name === 'RateLimitError') {\n rateLimitTimeout = error.retryTimeout;\n }\n buffer.push.apply(buffer, batch_1);\n buffer.map(function (event) {\n if ('_metadata' in event) {\n var segmentEvent = event;\n segmentEvent._metadata = __assign(__assign({}, segmentEvent._metadata), { retryCount: attempt });\n }\n });\n scheduleFlush(attempt + 1);\n }\n })];\n }\n return [2 /*return*/];\n });\n });\n }\n var schedule;\n function scheduleFlush(attempt) {\n if (attempt === void 0) { attempt = 1; }\n if (schedule) {\n return;\n }\n schedule = setTimeout(function () {\n schedule = undefined;\n flush(attempt).catch(console.error);\n }, rateLimitTimeout ? rateLimitTimeout : timeout);\n rateLimitTimeout = 0;\n }\n onPageChange(function (unloaded) {\n pageUnloaded = unloaded;\n if (pageUnloaded && buffer.length) {\n var reqs = chunks(buffer).map(sendBatch);\n Promise.all(reqs).catch(console.error);\n }\n });\n function dispatch(_url, body) {\n return __awaiter(this, void 0, void 0, function () {\n var bufferOverflow;\n return __generator(this, function (_a) {\n buffer.push(body);\n bufferOverflow = buffer.length >= limit ||\n approachingTrackingAPILimit(buffer) ||\n ((config === null || config === void 0 ? void 0 : config.keepalive) && passedKeepaliveLimit(buffer));\n return [2 /*return*/, bufferOverflow || pageUnloaded ? flush() : scheduleFlush()];\n });\n });\n }\n return {\n dispatch: dispatch,\n };\n}\n//# sourceMappingURL=batched-dispatcher.js.map","import { fetch } from '../../lib/fetch';\nimport { RateLimitError } from './ratelimit-error';\nimport { createHeaders } from './shared-dispatcher';\nexport default function (config) {\n function dispatch(url, body) {\n return fetch(url, {\n credentials: config === null || config === void 0 ? void 0 : config.credentials,\n keepalive: config === null || config === void 0 ? void 0 : config.keepalive,\n headers: createHeaders(config === null || config === void 0 ? void 0 : config.headers),\n method: 'post',\n body: JSON.stringify(body),\n // @ts-ignore - not in the ts lib yet\n priority: config === null || config === void 0 ? void 0 : config.priority,\n }).then(function (res) {\n var _a;\n if (res.status >= 500) {\n throw new Error(\"Bad response from server: \".concat(res.status));\n }\n if (res.status === 429) {\n var retryTimeoutStringSecs = (_a = res.headers) === null || _a === void 0 ? void 0 : _a.get('x-ratelimit-reset');\n var retryTimeoutMS = retryTimeoutStringSecs\n ? parseInt(retryTimeoutStringSecs) * 1000\n : 5000;\n throw new RateLimitError(\"Rate limit exceeded: \".concat(res.status), retryTimeoutMS);\n }\n });\n }\n return {\n dispatch: dispatch,\n };\n}\n//# sourceMappingURL=fetch-dispatcher.js.map","import { __assign } from \"tslib\";\nexport function normalize(analytics, json, settings, integrations, ctx) {\n var _a;\n var user = analytics.user();\n delete json.options;\n json.writeKey = settings === null || settings === void 0 ? void 0 : settings.apiKey;\n json.userId = json.userId || user.id();\n json.anonymousId = json.anonymousId || user.anonymousId();\n json.sentAt = new Date();\n var failed = analytics.queue.failedInitializations || [];\n if (failed.length > 0) {\n json._metadata = { failedInitializations: failed };\n }\n if (ctx != null) {\n if (ctx.attempts > 1) {\n json._metadata = __assign(__assign({}, json._metadata), { retryCount: ctx.attempts });\n }\n ctx.attempts++;\n }\n var bundled = [];\n var unbundled = [];\n for (var key in integrations) {\n var integration = integrations[key];\n if (key === 'Segment.io') {\n bundled.push(key);\n }\n if (integration.bundlingStatus === 'bundled') {\n bundled.push(key);\n }\n if (integration.bundlingStatus === 'unbundled') {\n unbundled.push(key);\n }\n }\n // This will make sure that the disabled cloud mode destinations will be\n // included in the unbundled list.\n for (var _i = 0, _b = (settings === null || settings === void 0 ? void 0 : settings.unbundledIntegrations) || []; _i < _b.length; _i++) {\n var settingsUnbundled = _b[_i];\n if (!unbundled.includes(settingsUnbundled)) {\n unbundled.push(settingsUnbundled);\n }\n }\n var configIds = (_a = settings === null || settings === void 0 ? void 0 : settings.maybeBundledConfigIds) !== null && _a !== void 0 ? _a : {};\n var bundledConfigIds = [];\n bundled.sort().forEach(function (name) {\n var _a;\n ;\n ((_a = configIds[name]) !== null && _a !== void 0 ? _a : []).forEach(function (id) {\n bundledConfigIds.push(id);\n });\n });\n if ((settings === null || settings === void 0 ? void 0 : settings.addBundledMetadata) !== false) {\n json._metadata = __assign(__assign({}, json._metadata), { bundled: bundled.sort(), unbundled: unbundled.sort(), bundledIds: bundledConfigIds });\n }\n return json;\n}\n//# sourceMappingURL=normalize.js.map","import { __awaiter, __generator } from \"tslib\";\nexport var pWhile = function (condition, action) { return __awaiter(void 0, void 0, void 0, function () {\n var loop;\n return __generator(this, function (_a) {\n loop = function (actionResult) { return __awaiter(void 0, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!condition(actionResult)) return [3 /*break*/, 2];\n _a = loop;\n return [4 /*yield*/, action()];\n case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent()])];\n case 2: return [2 /*return*/];\n }\n });\n }); };\n return [2 /*return*/, loop(undefined)];\n });\n}); };\n//# sourceMappingURL=p-while.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { isOffline } from '../../core/connection';\nimport { Context } from '../../core/context';\nimport { attempt } from '@segment/analytics-core';\nimport { pWhile } from '../../lib/p-while';\nfunction flushQueue(xt, queue) {\n return __awaiter(this, void 0, void 0, function () {\n var failedQueue;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n failedQueue = [];\n if (isOffline()) {\n return [2 /*return*/, queue];\n }\n return [4 /*yield*/, pWhile(function () { return queue.length > 0 && !isOffline(); }, function () { return __awaiter(_this, void 0, void 0, function () {\n var ctx, result, success;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ctx = queue.pop();\n if (!ctx) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, attempt(ctx, xt)];\n case 1:\n result = _a.sent();\n success = result instanceof Context;\n if (!success) {\n failedQueue.push(ctx);\n }\n return [2 /*return*/];\n }\n });\n }); })\n // re-add failed tasks\n ];\n case 1:\n _a.sent();\n // re-add failed tasks\n failedQueue.map(function (failed) { return queue.pushWithBackoff(failed); });\n return [2 /*return*/, queue];\n }\n });\n });\n}\nexport function scheduleFlush(flushing, buffer, xt, scheduleFlush) {\n var _this = this;\n if (flushing) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {\n var isFlushing, newBuffer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n isFlushing = true;\n return [4 /*yield*/, flushQueue(xt, buffer)];\n case 1:\n newBuffer = _a.sent();\n isFlushing = false;\n if (buffer.todo > 0) {\n scheduleFlush(isFlushing, newBuffer, xt, scheduleFlush);\n }\n return [2 /*return*/];\n }\n });\n }); }, Math.random() * 5000);\n}\n//# sourceMappingURL=schedule-flush.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { isOffline } from '../../core/connection';\nimport { PriorityQueue } from '../../lib/priority-queue';\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted';\nimport { toFacade } from '../../lib/to-facade';\nimport batch from './batched-dispatcher';\nimport standard from './fetch-dispatcher';\nimport { normalize } from './normalize';\nimport { scheduleFlush } from './schedule-flush';\nimport { SEGMENT_API_HOST } from '../../core/constants';\nfunction onAlias(analytics, json) {\n var _a, _b, _c, _d;\n var user = analytics.user();\n json.previousId =\n (_c = (_b = (_a = json.previousId) !== null && _a !== void 0 ? _a : json.from) !== null && _b !== void 0 ? _b : user.id()) !== null && _c !== void 0 ? _c : user.anonymousId();\n json.userId = (_d = json.userId) !== null && _d !== void 0 ? _d : json.to;\n delete json.from;\n delete json.to;\n return json;\n}\nexport var isSegmentPlugin = function (plugin) {\n return plugin.name === 'Segment.io';\n};\nexport function segmentio(analytics, settings, integrations) {\n var _a, _b, _c;\n // Attach `pagehide` before buffer is created so that inflight events are added\n // to the buffer before the buffer persists events in its own `pagehide` handler.\n window.addEventListener('pagehide', function () {\n buffer.push.apply(buffer, Array.from(inflightEvents));\n inflightEvents.clear();\n });\n var writeKey = (_a = settings === null || settings === void 0 ? void 0 : settings.apiKey) !== null && _a !== void 0 ? _a : '';\n var buffer = analytics.options.disableClientPersistence\n ? new PriorityQueue(analytics.queue.queue.maxAttempts, [])\n : new PersistedPriorityQueue(analytics.queue.queue.maxAttempts, \"\".concat(writeKey, \":dest-Segment.io\"));\n var inflightEvents = new Set();\n var flushing = false;\n var apiHost = (_b = settings === null || settings === void 0 ? void 0 : settings.apiHost) !== null && _b !== void 0 ? _b : SEGMENT_API_HOST;\n var protocol = (_c = settings === null || settings === void 0 ? void 0 : settings.protocol) !== null && _c !== void 0 ? _c : 'https';\n var remote = \"\".concat(protocol, \"://\").concat(apiHost);\n var deliveryStrategy = settings === null || settings === void 0 ? void 0 : settings.deliveryStrategy;\n var client = deliveryStrategy &&\n 'strategy' in deliveryStrategy &&\n deliveryStrategy.strategy === 'batching'\n ? batch(apiHost, deliveryStrategy.config)\n : standard(deliveryStrategy === null || deliveryStrategy === void 0 ? void 0 : deliveryStrategy.config);\n function send(ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var path, json;\n return __generator(this, function (_a) {\n if (isOffline()) {\n buffer.push(ctx);\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n scheduleFlush(flushing, buffer, segmentio, scheduleFlush);\n return [2 /*return*/, ctx];\n }\n inflightEvents.add(ctx);\n path = ctx.event.type.charAt(0);\n json = toFacade(ctx.event).json();\n if (ctx.event.type === 'track') {\n delete json.traits;\n }\n if (ctx.event.type === 'alias') {\n json = onAlias(analytics, json);\n }\n if (buffer.getAttempts(ctx) >= buffer.maxAttempts) {\n inflightEvents.delete(ctx);\n return [2 /*return*/, ctx];\n }\n return [2 /*return*/, client\n .dispatch(\"\".concat(remote, \"/\").concat(path), normalize(analytics, json, settings, integrations, ctx))\n .then(function () { return ctx; })\n .catch(function (error) {\n ctx.log('error', 'Error sending event', error);\n if (error.name === 'RateLimitError') {\n var timeout = error.retryTimeout;\n buffer.pushWithBackoff(ctx, timeout);\n }\n else {\n buffer.pushWithBackoff(ctx);\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n scheduleFlush(flushing, buffer, segmentio, scheduleFlush);\n return ctx;\n })\n .finally(function () {\n inflightEvents.delete(ctx);\n })];\n });\n });\n }\n var segmentio = {\n metadata: {\n writeKey: writeKey,\n apiHost: apiHost,\n protocol: protocol,\n },\n name: 'Segment.io',\n type: 'destination',\n version: '0.1.0',\n isLoaded: function () { return true; },\n load: function () { return Promise.resolve(); },\n track: send,\n identify: send,\n page: send,\n alias: send,\n group: send,\n screen: send,\n };\n // Buffer may already have items if they were previously stored in localStorage.\n // Start flushing them immediately.\n if (buffer.todo) {\n scheduleFlush(flushing, buffer, segmentio, scheduleFlush);\n }\n return segmentio;\n}\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __extends, __generator, __spreadArray } from \"tslib\";\nimport { resolveAliasArguments, resolveArguments, resolvePageArguments, resolveUserArguments, } from '../arguments-resolver';\nimport { isOffline } from '../connection';\nimport { Context } from '../context';\nimport { dispatch } from '@segment/analytics-core';\nimport { Emitter } from '@segment/analytics-generic-utils';\nimport { EventFactory, } from '../events';\nimport { isDestinationPluginWithAddMiddleware } from '../plugin';\nimport { EventQueue } from '../queue/event-queue';\nimport { Group, User } from '../user';\nimport autoBind from '../../lib/bind-all';\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted';\nimport { version } from '../../generated/version';\nimport { PriorityQueue } from '../../lib/priority-queue';\nimport { getGlobal } from '../../lib/get-global';\nimport { MemoryStorage, UniversalStorage, StoreType, applyCookieOptions, initializeStorages, isArrayOfStoreType, } from '../storage';\nimport { setGlobalAnalytics } from '../../lib/global-analytics-helper';\nimport { popPageContext } from '../buffer';\nimport { isSegmentPlugin, } from '../../plugins/segmentio';\nvar deprecationWarning = 'This is being deprecated and will be not be available in future releases of Analytics JS';\n// reference any pre-existing \"analytics\" object so a user can restore the reference\nvar global = getGlobal();\nvar _analytics = global === null || global === void 0 ? void 0 : global.analytics;\nfunction createDefaultQueue(name, retryQueue, disablePersistance) {\n if (retryQueue === void 0) { retryQueue = false; }\n if (disablePersistance === void 0) { disablePersistance = false; }\n var maxAttempts = retryQueue ? 10 : 1;\n var priorityQueue = disablePersistance\n ? new PriorityQueue(maxAttempts, [])\n : new PersistedPriorityQueue(maxAttempts, name);\n return new EventQueue(priorityQueue);\n}\n/**\n * The public settings that are set on the analytics instance\n */\nvar AnalyticsInstanceSettings = /** @class */ (function () {\n function AnalyticsInstanceSettings(settings, queue) {\n var _a;\n /**\n * Auto-track specific timeout setting for legacy purposes.\n */\n this.timeout = 300;\n this._getSegmentPluginMetadata = function () { var _a; return (_a = queue.plugins.find(isSegmentPlugin)) === null || _a === void 0 ? void 0 : _a.metadata; };\n this.writeKey = settings.writeKey;\n // this is basically just to satisfy typescript / so we don't need to change the function sig of every test.\n // when loadAnalytics is called, cdnSettings will always be available.\n var emptyCDNSettings = {\n integrations: {\n 'Segment.io': {\n apiKey: '',\n },\n },\n };\n this.cdnSettings = (_a = settings.cdnSettings) !== null && _a !== void 0 ? _a : emptyCDNSettings;\n this.cdnURL = settings.cdnURL;\n }\n Object.defineProperty(AnalyticsInstanceSettings.prototype, \"apiHost\", {\n get: function () {\n var _a, _b;\n return (_b = (_a = this._getSegmentPluginMetadata) === null || _a === void 0 ? void 0 : _a.call(this)) === null || _b === void 0 ? void 0 : _b.apiHost;\n },\n enumerable: false,\n configurable: true\n });\n return AnalyticsInstanceSettings;\n}());\nexport { AnalyticsInstanceSettings };\n/* analytics-classic stubs */\nfunction _stub() {\n console.warn(deprecationWarning);\n}\nvar Analytics = /** @class */ (function (_super) {\n __extends(Analytics, _super);\n function Analytics(settings, options, queue, user, group) {\n var _this = this;\n var _a, _b;\n _this = _super.call(this) || this;\n _this._debug = false;\n _this.initialized = false;\n _this.user = function () {\n return _this._user;\n };\n _this.init = _this.initialize.bind(_this);\n _this.log = _stub;\n _this.addIntegrationMiddleware = _stub;\n _this.listeners = _stub;\n _this.addEventListener = _stub;\n _this.removeAllListeners = _stub;\n _this.removeListener = _stub;\n _this.removeEventListener = _stub;\n _this.hasListeners = _stub;\n _this.add = _stub;\n _this.addIntegration = _stub;\n var cookieOptions = options === null || options === void 0 ? void 0 : options.cookie;\n var disablePersistance = (_a = options === null || options === void 0 ? void 0 : options.disableClientPersistence) !== null && _a !== void 0 ? _a : false;\n _this.queue =\n queue !== null && queue !== void 0 ? queue : createDefaultQueue(\"\".concat(settings.writeKey, \":event-queue\"), options === null || options === void 0 ? void 0 : options.retryQueue, disablePersistance);\n _this.settings = new AnalyticsInstanceSettings(settings, _this.queue);\n var storageSetting = options === null || options === void 0 ? void 0 : options.storage;\n _this._universalStorage = _this.createStore(disablePersistance, storageSetting, cookieOptions);\n _this._user =\n user !== null && user !== void 0 ? user : new User(__assign({ persist: !disablePersistance, storage: options === null || options === void 0 ? void 0 : options.storage }, options === null || options === void 0 ? void 0 : options.user), cookieOptions).load();\n _this._group =\n group !== null && group !== void 0 ? group : new Group(__assign({ persist: !disablePersistance, storage: options === null || options === void 0 ? void 0 : options.storage }, options === null || options === void 0 ? void 0 : options.group), cookieOptions).load();\n _this.eventFactory = new EventFactory(_this._user);\n _this.integrations = (_b = options === null || options === void 0 ? void 0 : options.integrations) !== null && _b !== void 0 ? _b : {};\n _this.options = options !== null && options !== void 0 ? options : {};\n autoBind(_this);\n return _this;\n }\n /**\n * Creates the storage system based on the settings received\n * @returns Storage\n */\n Analytics.prototype.createStore = function (disablePersistance, storageSetting, cookieOptions) {\n // DisablePersistance option overrides all, no storage will be used outside of memory even if specified\n if (disablePersistance) {\n return new UniversalStorage([new MemoryStorage()]);\n }\n else {\n if (storageSetting) {\n if (isArrayOfStoreType(storageSetting)) {\n // We will create the store with the priority for customer settings\n return new UniversalStorage(initializeStorages(applyCookieOptions(storageSetting.stores, cookieOptions)));\n }\n }\n }\n // We default to our multi storage with priority\n return new UniversalStorage(initializeStorages([\n StoreType.LocalStorage,\n {\n name: StoreType.Cookie,\n settings: cookieOptions,\n },\n StoreType.Memory,\n ]));\n };\n Object.defineProperty(Analytics.prototype, \"storage\", {\n get: function () {\n return this._universalStorage;\n },\n enumerable: false,\n configurable: true\n });\n Analytics.prototype.track = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var pageCtx, _a, name, data, opts, cb, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n pageCtx = popPageContext(args);\n _a = resolveArguments.apply(void 0, args), name = _a[0], data = _a[1], opts = _a[2], cb = _a[3];\n segmentEvent = this.eventFactory.track(name, data, opts, this.integrations, pageCtx);\n return [2 /*return*/, this._dispatch(segmentEvent, cb).then(function (ctx) {\n _this.emit('track', name, ctx.event.properties, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.page = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var pageCtx, _a, category, page, properties, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n pageCtx = popPageContext(args);\n _a = resolvePageArguments.apply(void 0, args), category = _a[0], page = _a[1], properties = _a[2], options = _a[3], callback = _a[4];\n segmentEvent = this.eventFactory.page(category, page, properties, options, this.integrations, pageCtx);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('page', category, page, ctx.event.properties, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.identify = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var pageCtx, _a, id, _traits, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n pageCtx = popPageContext(args);\n _a = resolveUserArguments(this._user).apply(void 0, args), id = _a[0], _traits = _a[1], options = _a[2], callback = _a[3];\n this._user.identify(id, _traits);\n segmentEvent = this.eventFactory.identify(this._user.id(), this._user.traits(), options, this.integrations, pageCtx);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('identify', ctx.event.userId, ctx.event.traits, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.group = function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var pageCtx = popPageContext(args);\n if (args.length === 0) {\n return this._group;\n }\n var _a = resolveUserArguments(this._group).apply(void 0, args), id = _a[0], _traits = _a[1], options = _a[2], callback = _a[3];\n this._group.identify(id, _traits);\n var groupId = this._group.id();\n var groupTraits = this._group.traits();\n var segmentEvent = this.eventFactory.group(groupId, groupTraits, options, this.integrations, pageCtx);\n return this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('group', ctx.event.groupId, ctx.event.traits, ctx.event.options);\n return ctx;\n });\n };\n Analytics.prototype.alias = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var pageCtx, _a, to, from, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n pageCtx = popPageContext(args);\n _a = resolveAliasArguments.apply(void 0, args), to = _a[0], from = _a[1], options = _a[2], callback = _a[3];\n segmentEvent = this.eventFactory.alias(to, from, options, this.integrations, pageCtx);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('alias', to, from, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.screen = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var pageCtx, _a, category, page, properties, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n pageCtx = popPageContext(args);\n _a = resolvePageArguments.apply(void 0, args), category = _a[0], page = _a[1], properties = _a[2], options = _a[3], callback = _a[4];\n segmentEvent = this.eventFactory.screen(category, page, properties, options, this.integrations, pageCtx);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('screen', category, page, ctx.event.properties, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.trackClick = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.link).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.trackLink = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.link).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.trackSubmit = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.form).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.trackForm = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.form).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.register = function () {\n var plugins = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n plugins[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var ctx, registrations;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ctx = Context.system();\n registrations = plugins.map(function (xt) {\n return _this.queue.register(ctx, xt, _this);\n });\n return [4 /*yield*/, Promise.all(registrations)];\n case 1:\n _a.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n Analytics.prototype.deregister = function () {\n var plugins = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n plugins[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var ctx, deregistrations;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ctx = Context.system();\n deregistrations = plugins.map(function (pl) {\n var plugin = _this.queue.plugins.find(function (p) { return p.name === pl; });\n if (plugin) {\n return _this.queue.deregister(ctx, plugin, _this);\n }\n else {\n ctx.log('warn', \"plugin \".concat(pl, \" not found\"));\n }\n });\n return [4 /*yield*/, Promise.all(deregistrations)];\n case 1:\n _a.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n Analytics.prototype.debug = function (toggle) {\n // Make sure legacy ajs debug gets turned off if it was enabled before upgrading.\n if (toggle === false && localStorage.getItem('debug')) {\n localStorage.removeItem('debug');\n }\n this._debug = toggle;\n return this;\n };\n Analytics.prototype.reset = function () {\n this._user.reset();\n this._group.reset();\n this.emit('reset');\n };\n Analytics.prototype.timeout = function (timeout) {\n this.settings.timeout = timeout;\n };\n Analytics.prototype._dispatch = function (event, callback) {\n return __awaiter(this, void 0, void 0, function () {\n var ctx;\n return __generator(this, function (_a) {\n ctx = new Context(event);\n ctx.stats.increment('analytics_js.invoke', 1, [event.type]);\n if (isOffline() && !this.options.retryQueue) {\n return [2 /*return*/, ctx];\n }\n return [2 /*return*/, dispatch(ctx, this.queue, this, {\n callback: callback,\n debug: this._debug,\n timeout: this.settings.timeout,\n })];\n });\n });\n };\n Analytics.prototype.addSourceMiddleware = function (fn) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.queue.criticalTasks.run(function () { return __awaiter(_this, void 0, void 0, function () {\n var sourceMiddlewarePlugin, integrations, plugin;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"analytics-middleware\" */ '../../plugins/middleware')];\n case 1:\n sourceMiddlewarePlugin = (_a.sent()).sourceMiddlewarePlugin;\n integrations = {};\n this.queue.plugins.forEach(function (plugin) {\n if (plugin.type === 'destination') {\n return (integrations[plugin.name] = true);\n }\n });\n plugin = sourceMiddlewarePlugin(fn, integrations);\n return [4 /*yield*/, this.register(plugin)];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); })];\n case 1:\n _a.sent();\n return [2 /*return*/, this];\n }\n });\n });\n };\n /* TODO: This does not have to return a promise? */\n Analytics.prototype.addDestinationMiddleware = function (integrationName) {\n var middlewares = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n middlewares[_i - 1] = arguments[_i];\n }\n this.queue.plugins\n .filter(isDestinationPluginWithAddMiddleware)\n .forEach(function (p) {\n if (integrationName === '*' ||\n p.name.toLowerCase() === integrationName.toLowerCase()) {\n p.addMiddleware.apply(p, middlewares);\n }\n });\n return Promise.resolve(this);\n };\n Analytics.prototype.setAnonymousId = function (id) {\n return this._user.anonymousId(id);\n };\n Analytics.prototype.queryString = function (query) {\n return __awaiter(this, void 0, void 0, function () {\n var queryString;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.options.useQueryString === false) {\n return [2 /*return*/, []];\n }\n return [4 /*yield*/, import(\n /* webpackChunkName: \"queryString\" */ '../query-string')];\n case 1:\n queryString = (_a.sent()).queryString;\n return [2 /*return*/, queryString(this, query)];\n }\n });\n });\n };\n /**\n * @deprecated This function does not register a destination plugin.\n *\n * Instantiates a legacy Analytics.js destination.\n *\n * This function does not register the destination as an Analytics.JS plugin,\n * all the it does it to invoke the factory function back.\n */\n Analytics.prototype.use = function (legacyPluginFactory) {\n legacyPluginFactory(this);\n return this;\n };\n Analytics.prototype.ready = function (callback) {\n if (callback === void 0) { callback = function (res) { return res; }; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, Promise.all(this.queue.plugins.map(function (i) { return (i.ready ? i.ready() : Promise.resolve()); })).then(function (res) {\n callback(res);\n return res;\n })];\n });\n });\n };\n // analytics-classic api\n Analytics.prototype.noConflict = function () {\n console.warn(deprecationWarning);\n setGlobalAnalytics(_analytics !== null && _analytics !== void 0 ? _analytics : this);\n return this;\n };\n Analytics.prototype.normalize = function (msg) {\n console.warn(deprecationWarning);\n return this.eventFactory['normalize'](msg);\n };\n Object.defineProperty(Analytics.prototype, \"failedInitializations\", {\n get: function () {\n console.warn(deprecationWarning);\n return this.queue.failedInitializations;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Analytics.prototype, \"VERSION\", {\n get: function () {\n return version;\n },\n enumerable: false,\n configurable: true\n });\n /* @deprecated - noop */\n Analytics.prototype.initialize = function (_settings, _options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n console.warn(deprecationWarning);\n return [2 /*return*/, Promise.resolve(this)];\n });\n });\n };\n Analytics.prototype.pageview = function (url) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n console.warn(deprecationWarning);\n return [4 /*yield*/, this.page({ path: url })];\n case 1:\n _a.sent();\n return [2 /*return*/, this];\n }\n });\n });\n };\n Object.defineProperty(Analytics.prototype, \"plugins\", {\n get: function () {\n var _a;\n console.warn(deprecationWarning);\n // @ts-expect-error\n return (_a = this._plugins) !== null && _a !== void 0 ? _a : {};\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Analytics.prototype, \"Integrations\", {\n get: function () {\n console.warn(deprecationWarning);\n var integrations = this.queue.plugins\n .filter(function (plugin) { return plugin.type === 'destination'; })\n .reduce(function (acc, plugin) {\n var name = \"\".concat(plugin.name\n .toLowerCase()\n .replace('.', '')\n .split(' ')\n .join('-'), \"Integration\");\n // @ts-expect-error\n var integration = window[name];\n if (!integration) {\n return acc;\n }\n var nested = integration.Integration; // hack - Google Analytics function resides in the \"Integration\" field\n if (nested) {\n acc[plugin.name] = nested;\n return acc;\n }\n acc[plugin.name] = integration;\n return acc;\n }, {});\n return integrations;\n },\n enumerable: false,\n configurable: true\n });\n // snippet function\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Analytics.prototype.push = function (args) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var an = this;\n var method = args.shift();\n if (method) {\n if (!an[method])\n return;\n }\n an[method].apply(this, args);\n };\n return Analytics;\n}(Emitter));\nexport { Analytics };\n/**\n * @returns a no-op analytics instance that does not create cookies or localstorage, or send any events to segment.\n */\nvar NullAnalytics = /** @class */ (function (_super) {\n __extends(NullAnalytics, _super);\n function NullAnalytics() {\n var _this = _super.call(this, { writeKey: '' }, { disableClientPersistence: true }) || this;\n _this.initialized = true;\n return _this;\n }\n return NullAnalytics;\n}(Analytics));\nexport { NullAnalytics };\n//# sourceMappingURL=index.js.map","/**\n * Returns `process.env` if it is available in the environment.\n * Always returns an object make it similarly easy to use as `process.env`.\n */\nexport function getProcessEnv() {\n if (typeof process === 'undefined' || !process.env) {\n return {};\n }\n return process.env;\n}\n//# sourceMappingURL=get-process-env.js.map","import { getGlobalAnalytics } from './global-analytics-helper';\nimport { embeddedWriteKey } from './embedded-write-key';\nvar analyticsScriptRegex = /(https:\\/\\/.*)\\/analytics\\.js\\/v1\\/(?:.*?)\\/(?:platform|analytics.*)?/;\nvar getCDNUrlFromScriptTag = function () {\n var cdn;\n var scripts = Array.prototype.slice.call(document.querySelectorAll('script'));\n scripts.forEach(function (s) {\n var _a;\n var src = (_a = s.getAttribute('src')) !== null && _a !== void 0 ? _a : '';\n var result = analyticsScriptRegex.exec(src);\n if (result && result[1]) {\n cdn = result[1];\n }\n });\n return cdn;\n};\nvar _globalCDN; // set globalCDN as in-memory singleton\nvar getGlobalCDNUrl = function () {\n var _a;\n var result = _globalCDN !== null && _globalCDN !== void 0 ? _globalCDN : (_a = getGlobalAnalytics()) === null || _a === void 0 ? void 0 : _a._cdn;\n return result;\n};\nexport var setGlobalCDNUrl = function (cdn) {\n var globalAnalytics = getGlobalAnalytics();\n if (globalAnalytics) {\n globalAnalytics._cdn = cdn;\n }\n _globalCDN = cdn;\n};\nexport var getCDN = function () {\n var globalCdnUrl = getGlobalCDNUrl();\n if (globalCdnUrl)\n return globalCdnUrl;\n var cdnFromScriptTag = getCDNUrlFromScriptTag();\n if (cdnFromScriptTag) {\n return cdnFromScriptTag;\n }\n else {\n // it's possible that the CDN is not found in the page because:\n // - the script is loaded through a proxy\n // - the script is removed after execution\n // in this case, we fall back to the default Segment CDN\n return \"https://cdn.segment.com\";\n }\n};\nexport var getNextIntegrationsURL = function () {\n var cdn = getCDN();\n return \"\".concat(cdn, \"/next-integrations\");\n};\n/**\n * Replaces the CDN URL in the script tag with the one from Analytics.js 1.0\n *\n * @returns the path to Analytics JS 1.0\n **/\nexport function getLegacyAJSPath() {\n var _a, _b, _c;\n var writeKey = (_a = embeddedWriteKey()) !== null && _a !== void 0 ? _a : (_b = getGlobalAnalytics()) === null || _b === void 0 ? void 0 : _b._writeKey;\n var scripts = Array.prototype.slice.call(document.querySelectorAll('script'));\n var path = undefined;\n for (var _i = 0, scripts_1 = scripts; _i < scripts_1.length; _i++) {\n var s = scripts_1[_i];\n var src = (_c = s.getAttribute('src')) !== null && _c !== void 0 ? _c : '';\n var result = analyticsScriptRegex.exec(src);\n if (result && result[1]) {\n path = src;\n break;\n }\n }\n if (path) {\n return path.replace('analytics.min.js', 'analytics.classic.js');\n }\n return \"https://cdn.segment.com/analytics.js/v1/\".concat(writeKey, \"/analytics.classic.js\");\n}\n//# sourceMappingURL=parse-cdn.js.map","import { __assign } from \"tslib\";\n/**\n * Merge legacy settings and initialized Integration option overrides.\n *\n * This will merge any options that were passed from initialization into\n * overrides for settings that are returned by the Segment CDN.\n *\n * i.e. this allows for passing options directly into destinations from\n * the Analytics constructor.\n */\nexport function mergedOptions(cdnSettings, options) {\n var _a;\n var optionOverrides = Object.entries((_a = options.integrations) !== null && _a !== void 0 ? _a : {}).reduce(function (overrides, _a) {\n var _b, _c;\n var integration = _a[0], options = _a[1];\n if (typeof options === 'object') {\n return __assign(__assign({}, overrides), (_b = {}, _b[integration] = options, _b));\n }\n return __assign(__assign({}, overrides), (_c = {}, _c[integration] = {}, _c));\n }, {});\n return Object.entries(cdnSettings.integrations).reduce(function (integrationSettings, _a) {\n var _b;\n var integration = _a[0], settings = _a[1];\n return __assign(__assign({}, integrationSettings), (_b = {}, _b[integration] = __assign(__assign({}, settings), optionOverrides[integration]), _b));\n }, {});\n}\n//# sourceMappingURL=merged-options.js.map","/**\n * Tries to gets the unencoded version of an encoded component of a\n * Uniform Resource Identifier (URI). If input string is malformed,\n * returns it back as-is.\n *\n * Note: All occurences of the `+` character become ` ` (spaces).\n **/\nexport function gracefulDecodeURIComponent(encodedURIComponent) {\n try {\n return decodeURIComponent(encodedURIComponent.replace(/\\+/g, ' '));\n }\n catch (_a) {\n return encodedURIComponent;\n }\n}\n//# sourceMappingURL=gracefulDecodeURIComponent.js.map","import { __awaiter, __generator } from \"tslib\";\nexport function clientHints(hints) {\n return __awaiter(this, void 0, void 0, function () {\n var userAgentData;\n return __generator(this, function (_a) {\n userAgentData = navigator.userAgentData;\n if (!userAgentData)\n return [2 /*return*/, undefined];\n if (!hints)\n return [2 /*return*/, userAgentData.toJSON()];\n return [2 /*return*/, userAgentData\n .getHighEntropyValues(hints)\n .catch(function () { return userAgentData.toJSON(); })];\n });\n });\n}\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport jar from 'js-cookie';\nimport { version } from '../../generated/version';\nimport { getVersionType } from '../../lib/version-type';\nimport { tld } from '../../core/user/tld';\nimport { gracefulDecodeURIComponent } from '../../core/query-string/gracefulDecodeURIComponent';\nimport { CookieStorage, UniversalStorage } from '../../core/storage';\nimport { clientHints } from '../../lib/client-hints';\nvar cookieOptions;\nfunction getCookieOptions() {\n if (cookieOptions) {\n return cookieOptions;\n }\n var domain = tld(window.location.href);\n cookieOptions = {\n expires: 31536000000,\n secure: false,\n path: '/',\n };\n if (domain) {\n cookieOptions.domain = domain;\n }\n return cookieOptions;\n}\nfunction ads(query) {\n var queryIds = {\n btid: 'dataxu',\n urid: 'millennial-media',\n };\n if (query.startsWith('?')) {\n query = query.substring(1);\n }\n query = query.replace(/\\?/g, '&');\n var parts = query.split('&');\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n var _a = part.split('='), k = _a[0], v = _a[1];\n if (queryIds[k]) {\n return {\n id: v,\n type: queryIds[k],\n };\n }\n }\n}\nexport function utm(query) {\n if (query.startsWith('?')) {\n query = query.substring(1);\n }\n query = query.replace(/\\?/g, '&');\n return query.split('&').reduce(function (acc, str) {\n var _a = str.split('='), k = _a[0], _b = _a[1], v = _b === void 0 ? '' : _b;\n if (k.includes('utm_') && k.length > 4) {\n var utmParam = k.slice(4);\n if (utmParam === 'campaign') {\n utmParam = 'name';\n }\n acc[utmParam] = gracefulDecodeURIComponent(v);\n }\n return acc;\n }, {});\n}\nexport function ampId() {\n var ampId = jar.get('_ga');\n if (ampId && ampId.startsWith('amp')) {\n return ampId;\n }\n}\nfunction referrerId(query, ctx, disablePersistance) {\n var _a;\n var storage = new UniversalStorage(disablePersistance ? [] : [new CookieStorage(getCookieOptions())]);\n var stored = storage.get('s:context.referrer');\n var ad = (_a = ads(query)) !== null && _a !== void 0 ? _a : stored;\n if (!ad) {\n return;\n }\n if (ctx) {\n ctx.referrer = __assign(__assign({}, ctx.referrer), ad);\n }\n storage.set('s:context.referrer', ad);\n}\n/**\n *\n * @param obj e.g. { foo: 'b', bar: 'd', baz: ['123', '456']}\n * @returns e.g. 'foo=b&bar=d&baz=123&baz=456'\n */\nvar objectToQueryString = function (obj) {\n try {\n var searchParams_1 = new URLSearchParams();\n Object.entries(obj).forEach(function (_a) {\n var k = _a[0], v = _a[1];\n if (Array.isArray(v)) {\n v.forEach(function (value) { return searchParams_1.append(k, value); });\n }\n else {\n searchParams_1.append(k, v);\n }\n });\n return searchParams_1.toString();\n }\n catch (_a) {\n return '';\n }\n};\nvar EnvironmentEnrichmentPlugin = /** @class */ (function () {\n function EnvironmentEnrichmentPlugin() {\n var _this = this;\n this.name = 'Page Enrichment';\n this.type = 'before';\n this.version = '0.1.0';\n this.isLoaded = function () { return true; };\n this.load = function (_ctx, instance) { return __awaiter(_this, void 0, void 0, function () {\n var _a, _1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.instance = instance;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n _a = this;\n return [4 /*yield*/, clientHints(this.instance.options.highEntropyValuesClientHints)];\n case 2:\n _a.userAgentData = _b.sent();\n return [3 /*break*/, 4];\n case 3:\n _1 = _b.sent();\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/, Promise.resolve()];\n }\n });\n }); };\n this.enrich = function (ctx) {\n var _a, _b;\n // Note: Types are off - context should never be undefined here, since it is set as part of event creation.\n var evtCtx = ctx.event.context;\n var search = evtCtx.page.search || '';\n var query = typeof search === 'object' ? objectToQueryString(search) : search;\n evtCtx.userAgent = navigator.userAgent;\n evtCtx.userAgentData = _this.userAgentData;\n // @ts-ignore\n var locale = navigator.userLanguage || navigator.language;\n if (typeof evtCtx.locale === 'undefined' && typeof locale !== 'undefined') {\n evtCtx.locale = locale;\n }\n (_a = evtCtx.library) !== null && _a !== void 0 ? _a : (evtCtx.library = {\n name: 'analytics.js',\n version: \"\".concat(getVersionType() === 'web' ? 'next' : 'npm:next', \"-\").concat(version),\n });\n if (query && !evtCtx.campaign) {\n evtCtx.campaign = utm(query);\n }\n var amp = ampId();\n if (amp) {\n evtCtx.amp = { id: amp };\n }\n referrerId(query, evtCtx, (_b = _this.instance.options.disableClientPersistence) !== null && _b !== void 0 ? _b : false);\n try {\n evtCtx.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n catch (_) {\n // If browser doesn't have support leave timezone undefined\n }\n return ctx;\n };\n this.track = this.enrich;\n this.identify = this.enrich;\n this.page = this.enrich;\n this.group = this.enrich;\n this.alias = this.enrich;\n this.screen = this.enrich;\n }\n return EnvironmentEnrichmentPlugin;\n}());\nexport var envEnrichment = new EnvironmentEnrichmentPlugin();\n//# sourceMappingURL=index.js.map","function findScript(src) {\n var scripts = Array.prototype.slice.call(window.document.querySelectorAll('script'));\n return scripts.find(function (s) { return s.src === src; });\n}\n/**\n * Load a script from a URL and append it to the document.\n */\nexport function loadScript(src, attributes) {\n var found = findScript(src);\n if (found !== undefined) {\n var status_1 = found === null || found === void 0 ? void 0 : found.getAttribute('status');\n if (status_1 === 'loaded') {\n return Promise.resolve(found);\n }\n if (status_1 === 'loading') {\n return new Promise(function (resolve, reject) {\n found.addEventListener('load', function () { return resolve(found); });\n found.addEventListener('error', function (err) { return reject(err); });\n });\n }\n }\n return new Promise(function (resolve, reject) {\n var _a;\n var script = window.document.createElement('script');\n script.type = 'text/javascript';\n script.src = src;\n script.async = true;\n script.setAttribute('status', 'loading');\n for (var _i = 0, _b = Object.entries(attributes !== null && attributes !== void 0 ? attributes : {}); _i < _b.length; _i++) {\n var _c = _b[_i], k = _c[0], v = _c[1];\n script.setAttribute(k, v);\n }\n script.onload = function () {\n script.onerror = script.onload = null;\n script.setAttribute('status', 'loaded');\n resolve(script);\n };\n script.onerror = function () {\n script.onerror = script.onload = null;\n script.setAttribute('status', 'error');\n reject(new Error(\"Failed to load \".concat(src)));\n };\n var firstExistingScript = window.document.querySelector('script');\n if (!firstExistingScript) {\n window.document.head.appendChild(script);\n }\n else {\n (_a = firstExistingScript.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(script, firstExistingScript);\n }\n });\n}\nexport function unloadScript(src) {\n var found = findScript(src);\n if (found !== undefined) {\n found.remove();\n }\n return Promise.resolve();\n}\n//# sourceMappingURL=load-script.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { ContextCancelation } from '../../core/context';\nimport { toFacade } from '../../lib/to-facade';\nexport function applyDestinationMiddleware(destination, evt, middleware) {\n return __awaiter(this, void 0, void 0, function () {\n function applyMiddleware(event, fn) {\n return __awaiter(this, void 0, void 0, function () {\n var nextCalled, returnedEvent;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n nextCalled = false;\n returnedEvent = null;\n return [4 /*yield*/, fn({\n payload: toFacade(event, {\n clone: true,\n traverse: false,\n }),\n integration: destination,\n next: function (evt) {\n nextCalled = true;\n if (evt === null) {\n returnedEvent = null;\n }\n if (evt) {\n returnedEvent = evt.obj;\n }\n },\n })];\n case 1:\n _b.sent();\n if (!nextCalled && returnedEvent !== null) {\n returnedEvent = returnedEvent;\n returnedEvent.integrations = __assign(__assign({}, event.integrations), (_a = {}, _a[destination] = false, _a));\n }\n return [2 /*return*/, returnedEvent];\n }\n });\n });\n }\n var modifiedEvent, _i, middleware_1, md, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n modifiedEvent = toFacade(evt, {\n clone: true,\n traverse: false,\n }).rawEvent();\n _i = 0, middleware_1 = middleware;\n _a.label = 1;\n case 1:\n if (!(_i < middleware_1.length)) return [3 /*break*/, 4];\n md = middleware_1[_i];\n return [4 /*yield*/, applyMiddleware(modifiedEvent, md)];\n case 2:\n result = _a.sent();\n if (result === null) {\n return [2 /*return*/, null];\n }\n modifiedEvent = result;\n _a.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4: return [2 /*return*/, modifiedEvent];\n }\n });\n });\n}\nexport function sourceMiddlewarePlugin(fn, integrations) {\n function apply(ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var nextCalled;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n nextCalled = false;\n return [4 /*yield*/, fn({\n payload: toFacade(ctx.event, {\n clone: true,\n traverse: false,\n }),\n integrations: integrations !== null && integrations !== void 0 ? integrations : {},\n next: function (evt) {\n nextCalled = true;\n if (evt) {\n ctx.event = evt.obj;\n }\n },\n })];\n case 1:\n _a.sent();\n if (!nextCalled) {\n throw new ContextCancelation({\n retry: false,\n type: 'middleware_cancellation',\n reason: 'Middleware `next` function skipped',\n });\n }\n return [2 /*return*/, ctx];\n }\n });\n });\n }\n return {\n name: \"Source Middleware \".concat(fn.name),\n type: 'before',\n version: '0.1.0',\n isLoaded: function () { return true; },\n load: function (ctx) { return Promise.resolve(ctx); },\n track: apply,\n page: apply,\n screen: apply,\n identify: apply,\n alias: apply,\n group: apply,\n };\n}\n//# sourceMappingURL=index.js.map","export function recordIntegrationMetric(ctx, _a) {\n var methodName = _a.methodName, integrationName = _a.integrationName, type = _a.type, _b = _a.didError, didError = _b === void 0 ? false : _b;\n ctx.stats.increment(\"analytics_js.integration.invoke\".concat(didError ? '.error' : ''), 1, [\n \"method:\".concat(methodName),\n \"integration_name:\".concat(integrationName),\n \"type:\".concat(type),\n ]);\n}\n//# sourceMappingURL=metric-helpers.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { loadScript } from '../../lib/load-script';\nimport { getCDN } from '../../lib/parse-cdn';\nimport { applyDestinationMiddleware, } from '../middleware';\nimport { Context, ContextCancelation } from '../../core/context';\nimport { recordIntegrationMetric } from '../../core/stats/metric-helpers';\nimport { createDeferred } from '@segment/analytics-generic-utils';\nvar ActionDestination = /** @class */ (function () {\n function ActionDestination(name, action) {\n this.version = '1.0.0';\n this.alternativeNames = [];\n this.loadPromise = createDeferred();\n this.middleware = [];\n this.alias = this._createMethod('alias');\n this.group = this._createMethod('group');\n this.identify = this._createMethod('identify');\n this.page = this._createMethod('page');\n this.screen = this._createMethod('screen');\n this.track = this._createMethod('track');\n this.action = action;\n this.name = name;\n this.type = action.type;\n this.alternativeNames.push(action.name);\n }\n ActionDestination.prototype.addMiddleware = function () {\n var _a;\n var fn = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fn[_i] = arguments[_i];\n }\n /** Make sure we only apply destination filters to actions of the \"destination\" type to avoid causing issues for hybrid destinations */\n if (this.type === 'destination') {\n (_a = this.middleware).push.apply(_a, fn);\n }\n };\n ActionDestination.prototype.transform = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var modifiedEvent;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, applyDestinationMiddleware(this.name, ctx.event, this.middleware)];\n case 1:\n modifiedEvent = _a.sent();\n if (modifiedEvent === null) {\n ctx.cancel(new ContextCancelation({\n retry: false,\n reason: 'dropped by destination middleware',\n }));\n }\n return [2 /*return*/, new Context(modifiedEvent)];\n }\n });\n });\n };\n ActionDestination.prototype._createMethod = function (methodName) {\n var _this = this;\n return function (ctx) { return __awaiter(_this, void 0, void 0, function () {\n var transformedContext, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.action[methodName])\n return [2 /*return*/, ctx];\n transformedContext = ctx;\n if (!(this.type === 'destination')) return [3 /*break*/, 2];\n return [4 /*yield*/, this.transform(ctx)];\n case 1:\n transformedContext = _a.sent();\n _a.label = 2;\n case 2:\n _a.trys.push([2, 5, , 6]);\n return [4 /*yield*/, this.ready()];\n case 3:\n if (!(_a.sent())) {\n throw new Error('Something prevented the destination from getting ready');\n }\n recordIntegrationMetric(ctx, {\n integrationName: this.action.name,\n methodName: methodName,\n type: 'action',\n });\n return [4 /*yield*/, this.action[methodName](transformedContext)];\n case 4:\n _a.sent();\n return [3 /*break*/, 6];\n case 5:\n error_1 = _a.sent();\n recordIntegrationMetric(ctx, {\n integrationName: this.action.name,\n methodName: methodName,\n type: 'action',\n didError: true,\n });\n throw error_1;\n case 6: return [2 /*return*/, ctx];\n }\n });\n }); };\n };\n /* --- PASSTHROUGH METHODS --- */\n ActionDestination.prototype.isLoaded = function () {\n return this.action.isLoaded();\n };\n ActionDestination.prototype.ready = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.loadPromise.promise];\n case 1:\n _b.sent();\n return [2 /*return*/, true];\n case 2:\n _a = _b.sent();\n return [2 /*return*/, false];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n ActionDestination.prototype.load = function (ctx, analytics) {\n return __awaiter(this, void 0, void 0, function () {\n var loadP, _a, _b, error_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (this.loadPromise.isSettled()) {\n return [2 /*return*/, this.loadPromise.promise];\n }\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 4]);\n recordIntegrationMetric(ctx, {\n integrationName: this.action.name,\n methodName: 'load',\n type: 'action',\n });\n loadP = this.action.load(ctx, analytics);\n _b = (_a = this.loadPromise).resolve;\n return [4 /*yield*/, loadP];\n case 2:\n _b.apply(_a, [_c.sent()]);\n return [2 /*return*/, loadP];\n case 3:\n error_2 = _c.sent();\n recordIntegrationMetric(ctx, {\n integrationName: this.action.name,\n methodName: 'load',\n type: 'action',\n didError: true,\n });\n this.loadPromise.reject(error_2);\n throw error_2;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n ActionDestination.prototype.unload = function (ctx, analytics) {\n var _a, _b;\n return (_b = (_a = this.action).unload) === null || _b === void 0 ? void 0 : _b.call(_a, ctx, analytics);\n };\n return ActionDestination;\n}());\nexport { ActionDestination };\nfunction validate(pluginLike) {\n if (!Array.isArray(pluginLike)) {\n throw new Error('Not a valid list of plugins');\n }\n var required = ['load', 'isLoaded', 'name', 'version', 'type'];\n pluginLike.forEach(function (plugin) {\n required.forEach(function (method) {\n var _a;\n if (plugin[method] === undefined) {\n throw new Error(\"Plugin: \".concat((_a = plugin.name) !== null && _a !== void 0 ? _a : 'unknown', \" missing required function \").concat(method));\n }\n });\n });\n return true;\n}\nfunction isPluginDisabled(userIntegrations, remotePlugin) {\n var creationNameEnabled = userIntegrations[remotePlugin.creationName];\n var currentNameEnabled = userIntegrations[remotePlugin.name];\n // Check that the plugin isn't explicitly enabled when All: false\n if (userIntegrations.All === false &&\n !creationNameEnabled &&\n !currentNameEnabled) {\n return true;\n }\n // Check that the plugin isn't explicitly disabled\n if (creationNameEnabled === false || currentNameEnabled === false) {\n return true;\n }\n return false;\n}\nfunction loadPluginFactory(remotePlugin, obfuscate) {\n return __awaiter(this, void 0, void 0, function () {\n var defaultCdn, cdn, urlSplit, name_1, obfuscatedURL, error_3, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 9, , 10]);\n defaultCdn = new RegExp('https://cdn.segment.(com|build)');\n cdn = getCDN();\n if (!obfuscate) return [3 /*break*/, 6];\n urlSplit = remotePlugin.url.split('/');\n name_1 = urlSplit[urlSplit.length - 2];\n obfuscatedURL = remotePlugin.url.replace(name_1, btoa(name_1).replace(/=/g, ''));\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 5]);\n return [4 /*yield*/, loadScript(obfuscatedURL.replace(defaultCdn, cdn))];\n case 2:\n _a.sent();\n return [3 /*break*/, 5];\n case 3:\n error_3 = _a.sent();\n // Due to syncing concerns it is possible that the obfuscated action destination (or requested version) might not exist.\n // We should use the unobfuscated version as a fallback.\n return [4 /*yield*/, loadScript(remotePlugin.url.replace(defaultCdn, cdn))];\n case 4:\n // Due to syncing concerns it is possible that the obfuscated action destination (or requested version) might not exist.\n // We should use the unobfuscated version as a fallback.\n _a.sent();\n return [3 /*break*/, 5];\n case 5: return [3 /*break*/, 8];\n case 6: return [4 /*yield*/, loadScript(remotePlugin.url.replace(defaultCdn, cdn))];\n case 7:\n _a.sent();\n _a.label = 8;\n case 8:\n // @ts-expect-error\n if (typeof window[remotePlugin.libraryName] === 'function') {\n // @ts-expect-error\n return [2 /*return*/, window[remotePlugin.libraryName]];\n }\n return [3 /*break*/, 10];\n case 9:\n err_1 = _a.sent();\n console.error('Failed to create PluginFactory', remotePlugin);\n throw err_1;\n case 10: return [2 /*return*/];\n }\n });\n });\n}\nexport function remoteLoader(settings, integrations, mergedIntegrations, options, routingMiddleware, pluginSources) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n var allPlugins, routingRules, pluginPromises;\n var _this = this;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n allPlugins = [];\n routingRules = (_b = (_a = settings.middlewareSettings) === null || _a === void 0 ? void 0 : _a.routingRules) !== null && _b !== void 0 ? _b : [];\n pluginPromises = ((_c = settings.remotePlugins) !== null && _c !== void 0 ? _c : []).map(function (remotePlugin) { return __awaiter(_this, void 0, void 0, function () {\n var pluginFactory, _a, intg, plugin, plugins, routing_1, error_4;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (isPluginDisabled(integrations, remotePlugin))\n return [2 /*return*/];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 6, , 7]);\n _a = (pluginSources === null || pluginSources === void 0 ? void 0 : pluginSources.find(function (_a) {\n var pluginName = _a.pluginName;\n return pluginName === remotePlugin.name;\n }));\n if (_a) return [3 /*break*/, 3];\n return [4 /*yield*/, loadPluginFactory(remotePlugin, options === null || options === void 0 ? void 0 : options.obfuscate)];\n case 2:\n _a = (_b.sent());\n _b.label = 3;\n case 3:\n pluginFactory = _a;\n if (!pluginFactory) return [3 /*break*/, 5];\n intg = mergedIntegrations[remotePlugin.name];\n return [4 /*yield*/, pluginFactory(__assign(__assign({}, remotePlugin.settings), intg))];\n case 4:\n plugin = _b.sent();\n plugins = Array.isArray(plugin) ? plugin : [plugin];\n validate(plugins);\n routing_1 = routingRules.filter(function (rule) { return rule.destinationName === remotePlugin.creationName; });\n plugins.forEach(function (plugin) {\n var wrapper = new ActionDestination(remotePlugin.creationName, plugin);\n if (routing_1.length && routingMiddleware) {\n wrapper.addMiddleware(routingMiddleware);\n }\n allPlugins.push(wrapper);\n });\n _b.label = 5;\n case 5: return [3 /*break*/, 7];\n case 6:\n error_4 = _b.sent();\n console.warn('Failed to load Remote Plugin', error_4);\n recordIntegrationMetric(Context.system(), {\n integrationName: remotePlugin.name,\n methodName: 'load',\n type: 'action',\n didError: true,\n });\n return [3 /*break*/, 7];\n case 7: return [2 /*return*/];\n }\n });\n }); });\n return [4 /*yield*/, Promise.all(pluginPromises)];\n case 1:\n _d.sent();\n return [2 /*return*/, allPlugins.filter(Boolean)];\n }\n });\n });\n}\n//# sourceMappingURL=index.js.map","var _a;\nvar _b;\nimport { getGlobal } from '../../lib/get-global';\nvar env = getGlobal();\n// The code below assumes the inspector extension will use Object.assign\n// to add the inspect interface on to this object reference (unless the\n// extension code ran first and has already set up the variable)\nvar inspectorHost = ((_a = (_b = env)['__SEGMENT_INSPECTOR__']) !== null && _a !== void 0 ? _a : (_b['__SEGMENT_INSPECTOR__'] = {}));\nexport var attachInspector = function (analytics) { var _a; return (_a = inspectorHost.attach) === null || _a === void 0 ? void 0 : _a.call(inspectorHost, analytics); };\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __extends, __generator, __spreadArray } from \"tslib\";\nimport { getProcessEnv } from '../lib/get-process-env';\nimport { getCDN, setGlobalCDNUrl } from '../lib/parse-cdn';\nimport { Analytics, NullAnalytics } from '../core/analytics';\nimport { Context } from '../core/context';\nimport { mergedOptions } from '../lib/merged-options';\nimport { createDeferred } from '@segment/analytics-generic-utils';\nimport { envEnrichment } from '../plugins/env-enrichment';\nimport { remoteLoader } from '../plugins/remote-loader';\nimport { segmentio } from '../plugins/segmentio';\nimport { AnalyticsBuffered, flushAnalyticsCallsInNewTask, flushAddSourceMiddleware, flushSetAnonymousID, flushOn, PreInitMethodCall, flushRegister, } from '../core/buffer';\nimport { attachInspector } from '../core/inspector';\nimport { Stats } from '../core/stats';\nimport { setGlobalAnalyticsKey } from '../lib/global-analytics-helper';\nimport { fetch } from '../lib/fetch';\nexport function loadCDNSettings(writeKey, baseUrl) {\n return fetch(\"\".concat(baseUrl, \"/v1/projects/\").concat(writeKey, \"/settings\"))\n .then(function (res) {\n if (!res.ok) {\n return res.text().then(function (errorResponseMessage) {\n throw new Error(errorResponseMessage);\n });\n }\n return res.json();\n })\n .catch(function (err) {\n console.error(err.message);\n throw err;\n });\n}\nfunction hasLegacyDestinations(settings) {\n return (getProcessEnv().NODE_ENV !== 'test' &&\n // just one integration means segmentio\n Object.keys(settings.integrations).length > 1);\n}\nfunction hasTsubMiddleware(settings) {\n var _a, _b, _c;\n return (getProcessEnv().NODE_ENV !== 'test' &&\n ((_c = (_b = (_a = settings.middlewareSettings) === null || _a === void 0 ? void 0 : _a.routingRules) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0);\n}\n/**\n * With AJS classic, we allow users to call setAnonymousId before the library initialization.\n * This is important because some of the destinations will use the anonymousId during the initialization,\n * and if we set anonId afterwards, that wouldn’t impact the destination.\n *\n * Also Ensures events can be registered before library initialization.\n * This is important so users can register to 'initialize' and any events that may fire early during setup.\n */\nfunction flushPreBuffer(analytics, buffer) {\n flushSetAnonymousID(analytics, buffer);\n flushOn(analytics, buffer);\n}\n/**\n * Finish flushing buffer and cleanup.\n */\nfunction flushFinalBuffer(analytics, queryString, buffer) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, flushQueryString(analytics, queryString)];\n case 1:\n _a.sent();\n flushAnalyticsCallsInNewTask(analytics, buffer);\n return [2 /*return*/];\n }\n });\n });\n}\nvar getQueryString = function () {\n var _a, _b;\n var hash = (_a = window.location.hash) !== null && _a !== void 0 ? _a : '';\n var search = (_b = window.location.search) !== null && _b !== void 0 ? _b : '';\n var term = search.length ? search : hash.replace(/(?=#).*(?=\\?)/, '');\n return term;\n};\nvar flushQueryString = function (analytics, queryString) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!queryString.includes('ajs_')) return [3 /*break*/, 2];\n return [4 /*yield*/, analytics.queryString(queryString).catch(console.error)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n}); };\nfunction registerPlugins(writeKey, cdnSettings, analytics, options, pluginLikes, legacyIntegrationSources, preInitBuffer) {\n var _a, _b, _c;\n if (pluginLikes === void 0) { pluginLikes = []; }\n return __awaiter(this, void 0, void 0, function () {\n var pluginsFromSettings, pluginSources, tsubMiddleware, _d, legacyDestinations, _e, schemaFilter, _f, mergedSettings, remotePlugins, basePlugins, shouldIgnoreSegmentio, _g, _h, ctx;\n var _this = this;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n flushPreBuffer(analytics, preInitBuffer);\n pluginsFromSettings = pluginLikes === null || pluginLikes === void 0 ? void 0 : pluginLikes.filter(function (pluginLike) { return typeof pluginLike === 'object'; });\n pluginSources = pluginLikes === null || pluginLikes === void 0 ? void 0 : pluginLikes.filter(function (pluginLike) {\n return typeof pluginLike === 'function' &&\n typeof pluginLike.pluginName === 'string';\n });\n if (!hasTsubMiddleware(cdnSettings)) return [3 /*break*/, 2];\n return [4 /*yield*/, import(\n /* webpackChunkName: \"tsub-middleware\" */ '../plugins/routing-middleware').then(function (mod) {\n return mod.tsubMiddleware(cdnSettings.middlewareSettings.routingRules);\n })];\n case 1:\n _d = _j.sent();\n return [3 /*break*/, 3];\n case 2:\n _d = undefined;\n _j.label = 3;\n case 3:\n tsubMiddleware = _d;\n if (!(hasLegacyDestinations(cdnSettings) || legacyIntegrationSources.length > 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, import(\n /* webpackChunkName: \"ajs-destination\" */ '../plugins/ajs-destination').then(function (mod) {\n return mod.ajsDestinations(writeKey, cdnSettings, analytics.integrations, options, tsubMiddleware, legacyIntegrationSources);\n })];\n case 4:\n _e = _j.sent();\n return [3 /*break*/, 6];\n case 5:\n _e = [];\n _j.label = 6;\n case 6:\n legacyDestinations = _e;\n if (!cdnSettings.legacyVideoPluginsEnabled) return [3 /*break*/, 8];\n return [4 /*yield*/, import(\n /* webpackChunkName: \"legacyVideos\" */ '../plugins/legacy-video-plugins').then(function (mod) {\n return mod.loadLegacyVideoPlugins(analytics);\n })];\n case 7:\n _j.sent();\n _j.label = 8;\n case 8:\n if (!((_a = options.plan) === null || _a === void 0 ? void 0 : _a.track)) return [3 /*break*/, 10];\n return [4 /*yield*/, import(\n /* webpackChunkName: \"schemaFilter\" */ '../plugins/schema-filter').then(function (mod) {\n var _a;\n return mod.schemaFilter((_a = options.plan) === null || _a === void 0 ? void 0 : _a.track, cdnSettings);\n })];\n case 9:\n _f = _j.sent();\n return [3 /*break*/, 11];\n case 10:\n _f = undefined;\n _j.label = 11;\n case 11:\n schemaFilter = _f;\n mergedSettings = mergedOptions(cdnSettings, options);\n return [4 /*yield*/, remoteLoader(cdnSettings, analytics.integrations, mergedSettings, options, tsubMiddleware, pluginSources).catch(function (err) {\n console.error('Failed to load remote plugins', err);\n return [];\n })];\n case 12:\n remotePlugins = _j.sent();\n basePlugins = __spreadArray(__spreadArray([envEnrichment], legacyDestinations, true), remotePlugins, true);\n if (schemaFilter) {\n basePlugins.push(schemaFilter);\n }\n shouldIgnoreSegmentio = (((_b = options.integrations) === null || _b === void 0 ? void 0 : _b.All) === false &&\n !options.integrations['Segment.io']) ||\n (options.integrations && options.integrations['Segment.io'] === false);\n if (!!shouldIgnoreSegmentio) return [3 /*break*/, 14];\n _h = (_g = basePlugins).push;\n return [4 /*yield*/, segmentio(analytics, mergedSettings['Segment.io'], cdnSettings.integrations)];\n case 13:\n _h.apply(_g, [_j.sent()]);\n _j.label = 14;\n case 14: return [4 /*yield*/, analytics.register.apply(analytics, __spreadArray(__spreadArray([], basePlugins, false), pluginsFromSettings, false))];\n case 15:\n ctx = _j.sent();\n // register user-defined plugins registered via analytics.register()\n return [4 /*yield*/, flushRegister(analytics, preInitBuffer)];\n case 16:\n // register user-defined plugins registered via analytics.register()\n _j.sent();\n if (!Object.entries((_c = cdnSettings.enabledMiddleware) !== null && _c !== void 0 ? _c : {}).some(function (_a) {\n var enabled = _a[1];\n return enabled;\n })) return [3 /*break*/, 18];\n return [4 /*yield*/, import(\n /* webpackChunkName: \"remoteMiddleware\" */ '../plugins/remote-middleware').then(function (_a) {\n var remoteMiddlewares = _a.remoteMiddlewares;\n return __awaiter(_this, void 0, void 0, function () {\n var middleware, promises;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, remoteMiddlewares(ctx, cdnSettings, options.obfuscate)];\n case 1:\n middleware = _b.sent();\n promises = middleware.map(function (mdw) {\n return analytics.addSourceMiddleware(mdw);\n });\n return [2 /*return*/, Promise.all(promises)];\n }\n });\n });\n })];\n case 17:\n _j.sent();\n _j.label = 18;\n case 18: \n // register any user-defined plugins added via analytics.addSourceMiddleware()\n return [4 /*yield*/, flushAddSourceMiddleware(analytics, preInitBuffer)];\n case 19:\n // register any user-defined plugins added via analytics.addSourceMiddleware()\n _j.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n}\nfunction loadAnalytics(settings, options, preInitBuffer) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var queryString, cdnURL, cdnSettings, _k, disabled, retryQueue, analytics, plugins, classicIntegrations, segmentLoadOptions, ctx;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n // return no-op analytics instance if disabled\n if (options.disable === true) {\n return [2 /*return*/, [new NullAnalytics(), Context.system()]];\n }\n if (options.globalAnalyticsKey)\n setGlobalAnalyticsKey(options.globalAnalyticsKey);\n // this is an ugly side-effect, but it's for the benefits of the plugins that get their cdn via getCDN()\n if (settings.cdnURL)\n setGlobalCDNUrl(settings.cdnURL);\n if (options.initialPageview) {\n // capture the page context early, so it's always up-to-date\n preInitBuffer.add(new PreInitMethodCall('page', []));\n }\n queryString = getQueryString();\n cdnURL = (_a = settings.cdnURL) !== null && _a !== void 0 ? _a : getCDN();\n if (!((_b = settings.cdnSettings) !== null && _b !== void 0)) return [3 /*break*/, 1];\n _k = _b;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, loadCDNSettings(settings.writeKey, cdnURL)];\n case 2:\n _k = (_l.sent());\n _l.label = 3;\n case 3:\n cdnSettings = _k;\n if (options.updateCDNSettings) {\n cdnSettings = options.updateCDNSettings(cdnSettings);\n }\n if (!(typeof options.disable === 'function')) return [3 /*break*/, 5];\n return [4 /*yield*/, options.disable(cdnSettings)];\n case 4:\n disabled = _l.sent();\n if (disabled) {\n return [2 /*return*/, [new NullAnalytics(), Context.system()]];\n }\n _l.label = 5;\n case 5:\n retryQueue = (_d = (_c = cdnSettings.integrations['Segment.io']) === null || _c === void 0 ? void 0 : _c.retryQueue) !== null && _d !== void 0 ? _d : true;\n options = __assign({ retryQueue: retryQueue }, options);\n analytics = new Analytics(__assign(__assign({}, settings), { cdnSettings: cdnSettings, cdnURL: cdnURL }), options);\n attachInspector(analytics);\n plugins = (_e = settings.plugins) !== null && _e !== void 0 ? _e : [];\n classicIntegrations = (_f = settings.classicIntegrations) !== null && _f !== void 0 ? _f : [];\n segmentLoadOptions = (_g = options.integrations) === null || _g === void 0 ? void 0 : _g['Segment.io'];\n Stats.initRemoteMetrics(__assign(__assign({}, cdnSettings.metrics), { host: (_h = segmentLoadOptions === null || segmentLoadOptions === void 0 ? void 0 : segmentLoadOptions.apiHost) !== null && _h !== void 0 ? _h : (_j = cdnSettings.metrics) === null || _j === void 0 ? void 0 : _j.host, protocol: segmentLoadOptions === null || segmentLoadOptions === void 0 ? void 0 : segmentLoadOptions.protocol }));\n return [4 /*yield*/, registerPlugins(settings.writeKey, cdnSettings, analytics, options, plugins, classicIntegrations, preInitBuffer)];\n case 6:\n ctx = _l.sent();\n analytics.initialized = true;\n analytics.emit('initialize', settings, options);\n return [4 /*yield*/, flushFinalBuffer(analytics, queryString, preInitBuffer)];\n case 7:\n _l.sent();\n return [2 /*return*/, [analytics, ctx]];\n }\n });\n });\n}\n/**\n * The public browser interface for Segment Analytics\n *\n * @example\n * ```ts\n * export const analytics = new AnalyticsBrowser()\n * analytics.load({ writeKey: 'foo' })\n * ```\n * @link https://github.com/segmentio/analytics-next/#readme\n */\nvar AnalyticsBrowser = /** @class */ (function (_super) {\n __extends(AnalyticsBrowser, _super);\n function AnalyticsBrowser() {\n var _this = this;\n var _a = createDeferred(), loadStart = _a.promise, resolveLoadStart = _a.resolve;\n _this = _super.call(this, function (buffer) {\n return loadStart.then(function (_a) {\n var settings = _a[0], options = _a[1];\n return loadAnalytics(settings, options, buffer);\n });\n }) || this;\n _this._resolveLoadStart = function (settings, options) {\n return resolveLoadStart([settings, options]);\n };\n return _this;\n }\n /**\n * Fully initialize an analytics instance, including:\n *\n * * Fetching settings from the segment CDN (by default).\n * * Fetching all remote destinations configured by the user (if applicable).\n * * Flushing buffered analytics events.\n * * Loading all middleware.\n *\n * Note:️ This method should only be called *once* in your application.\n *\n * @example\n * ```ts\n * export const analytics = new AnalyticsBrowser()\n * analytics.load({ writeKey: 'foo' })\n * ```\n */\n AnalyticsBrowser.prototype.load = function (settings, options) {\n if (options === void 0) { options = {}; }\n this._resolveLoadStart(settings, options);\n return this;\n };\n /**\n * Instantiates an object exposing Analytics methods.\n *\n * @example\n * ```ts\n * const ajs = AnalyticsBrowser.load({ writeKey: '<YOUR_WRITE_KEY>' })\n *\n * ajs.track(\"foo\")\n * ...\n * ```\n */\n AnalyticsBrowser.load = function (settings, options) {\n if (options === void 0) { options = {}; }\n return new AnalyticsBrowser().load(settings, options);\n };\n AnalyticsBrowser.standalone = function (writeKey, options) {\n return AnalyticsBrowser.load({ writeKey: writeKey }, options).then(function (res) { return res[0]; });\n };\n return AnalyticsBrowser;\n}(AnalyticsBuffered));\nexport { AnalyticsBrowser };\n//# sourceMappingURL=index.js.map","var AnalyticsNode = /** @class */ (function () {\n function AnalyticsNode() {\n }\n AnalyticsNode.load = function () {\n return Promise.reject(new Error('AnalyticsNode is not available in browsers.'));\n };\n return AnalyticsNode;\n}());\nexport { AnalyticsNode };\n//# sourceMappingURL=node.browser.js.map"],"file":"assets/index-pguZ7Pr7.js"}
|