{"version":3,"file":"loginweb/mntv-app-loginweb.f488698a.js","mappings":"kFAAA,IAAIA,EAAM,CACT,UAAW,CACV,IACA,KAED,eAAgB,CACf,IACA,KAED,UAAW,CACV,IACA,KAED,eAAgB,CACf,IACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,MAGF,SAASC,oBAAoBC,GAC5B,IAAIC,EAAoBC,EAAEJ,EAAKE,GAC9B,OAAOG,QAAQC,UAAUC,MAAK,KAC7B,IAAIC,EAAI,IAAIC,MAAM,uBAAyBP,EAAM,KAEjD,MADAM,EAAEE,KAAO,mBACHF,KAIR,IAAIG,EAAMX,EAAIE,GAAMU,EAAKD,EAAI,GAC7B,OAAOR,EAAoBK,EAAEG,EAAI,IAAIJ,MAAK,IAClCJ,EAAoBU,EAAED,EAAI,MAGnCX,oBAAoBa,KAAO,IAAOC,OAAOD,KAAKd,GAC9CC,oBAAoBW,GAAK,KACzBI,EAAOC,QAAUhB,qB,eC1IjB,IAAID,EAAM,CACT,UAAW,CACV,KACA,GAED,eAAgB,CACf,KACA,GAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAAW,CACV,KACA,KAED,eAAgB,CACf,KACA,KAED,UAA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","sources":["/app/apps/loginweb/node_modules/@sm/webassets/dist/locales/translated|lazy|/^/.//.*$/|chunkName: i18n/webassets/[request]|groupOptions: {}|namespace object","/app/apps/loginweb/src/locales/translated|lazy|/^/.//.*$/|chunkName: i18n/[request]|groupOptions: {}|namespace object","/app/apps/loginweb/src/app/components/CTASplitter/CTASplitter.tsx","/app/apps/loginweb/src/app/helpers/fragmentTypes.ts","/app/apps/loginweb/src/app/helpers/queryParams.ts","/app/apps/loginweb/src/app/handlers/login.ts","/app/apps/loginweb/src/app/pages/login/BaseLoadingPage/index.tsx","/app/apps/loginweb/src/app/utils/auth0SamlErrorParser/handlers/index.ts","/app/apps/loginweb/src/app/utils/auth0SamlErrorParser/handlers/connectionDisabled.ts","/app/apps/loginweb/src/app/utils/auth0SamlErrorParser/handlers/idpInitiated.ts","/app/apps/loginweb/src/app/utils/auth0SamlErrorParser/handlers/invalidCert.ts","/app/apps/loginweb/src/app/utils/auth0SamlErrorParser/handlers/invalidThumbprint.ts","/app/apps/loginweb/src/app/pages/login/LoadingPage/LoadingPage.tsx","/app/apps/loginweb/src/app/utils/auth0SamlErrorParser/index.ts","/app/apps/loginweb/src/app/pages/login/hooks.tsx","/app/apps/loginweb/src/app/pages/login/StartAuthTransactionPage/index.tsx","/app/apps/loginweb/src/common/utils/cleanObject.ts","/app/apps/loginweb/src/app/handlers/callback.ts","/app/apps/loginweb/src/app/handlers/callback/handleRedirectCallback.ts","/app/apps/loginweb/src/app/pages/login/HandleAuthCallbackPage/index.tsx","/app/apps/loginweb/src/app/pages/login/UnlinkedPage/UnlinkedWindow.tsx","/app/apps/loginweb/src/app/pages/login/UnlinkedPage/UnlinkedButtonOption.tsx","/app/apps/loginweb/src/app/pages/login/UnlinkedPage/UnlinkedErrorBanner.tsx","/app/apps/loginweb/src/app/pages/login/UnlinkedPage/UnlinkedHeader.tsx","/app/apps/loginweb/src/app/pages/login/UnlinkedPage/UnlinkedPageContent.tsx","/app/apps/loginweb/src/app/pages/login/UnlinkedPage/index.tsx","/app/apps/loginweb/src/app/pages/login/ErrorPage/copy.ts","/app/apps/loginweb/src/app/pages/login/ErrorPage/index.tsx","/app/apps/loginweb/src/app/App.tsx","/app/apps/loginweb/src/app/utils/getLocaleMessages.ts","/app/apps/loginweb/src/app/entry.ts","/app/apps/loginweb/src/app/utils/bootstrapSMWeb.ts","/app/apps/loginweb/src/app/helpers/fragmentMatcher.ts","/app/apps/loginweb/src/app/utils/createApp.tsx","/app/apps/loginweb/src/app/utils/mount.ts","/app/apps/loginweb/src/app/handlers/handlers.ts","/app/apps/loginweb/src/app/helpers/navigateTo.ts","/app/apps/loginweb/src/app/helpers/sessionStorage.ts","/app/apps/loginweb/src/app/helpers/sessionsApiClient.ts","/app/apps/loginweb/src/app/pages/login/UnlinkedPage/tokenHelper.tsx","/app/apps/loginweb/src/app/pages/sharedRoutes.ts","/app/apps/loginweb/src/app/pages/team/routes.ts","/app/apps/loginweb/src/common/helpers/amplitudeSession.ts","/app/apps/loginweb/src/app/utils/amplitudeHelpers.ts","/app/apps/loginweb/src/app/utils/history.ts","/app/apps/loginweb/src/common/entities/auth0Strategy.ts","/app/apps/loginweb/src/common/entities/smParams.ts","/app/apps/loginweb/src/common/errors/userFacing.ts","/app/apps/loginweb/src/common/helpers/asEnum.ts","/app/apps/loginweb/external var \"jsdom\""],"sourcesContent":["var map = {\n\t\"./da-DK\": [\n\t\t833,\n\t\t495\n\t],\n\t\"./da-DK.json\": [\n\t\t833,\n\t\t495\n\t],\n\t\"./de-DE\": [\n\t\t963,\n\t\t495\n\t],\n\t\"./de-DE.json\": [\n\t\t963,\n\t\t495\n\t],\n\t\"./es-LA\": [\n\t\t6137,\n\t\t495\n\t],\n\t\"./es-LA.json\": [\n\t\t6137,\n\t\t495\n\t],\n\t\"./fi-FI\": [\n\t\t1049,\n\t\t495\n\t],\n\t\"./fi-FI.json\": [\n\t\t1049,\n\t\t495\n\t],\n\t\"./fr-FR\": [\n\t\t3798,\n\t\t495\n\t],\n\t\"./fr-FR.json\": [\n\t\t3798,\n\t\t495\n\t],\n\t\"./it-IT\": [\n\t\t6977,\n\t\t495\n\t],\n\t\"./it-IT.json\": [\n\t\t6977,\n\t\t495\n\t],\n\t\"./ja-JP\": [\n\t\t8572,\n\t\t495\n\t],\n\t\"./ja-JP.json\": [\n\t\t8572,\n\t\t495\n\t],\n\t\"./ko-KR\": [\n\t\t7602,\n\t\t495\n\t],\n\t\"./ko-KR.json\": [\n\t\t7602,\n\t\t495\n\t],\n\t\"./nl-NL\": [\n\t\t4742,\n\t\t495\n\t],\n\t\"./nl-NL.json\": [\n\t\t4742,\n\t\t495\n\t],\n\t\"./no-NO\": [\n\t\t7813,\n\t\t495\n\t],\n\t\"./no-NO.json\": [\n\t\t7813,\n\t\t495\n\t],\n\t\"./pt-BR\": [\n\t\t8815,\n\t\t495\n\t],\n\t\"./pt-BR.json\": [\n\t\t8815,\n\t\t495\n\t],\n\t\"./ru-RU\": [\n\t\t7962,\n\t\t495\n\t],\n\t\"./ru-RU.json\": [\n\t\t7962,\n\t\t495\n\t],\n\t\"./sv-SE\": [\n\t\t9207,\n\t\t495\n\t],\n\t\"./sv-SE.json\": [\n\t\t9207,\n\t\t495\n\t],\n\t\"./tr-TR\": [\n\t\t8314,\n\t\t495\n\t],\n\t\"./tr-TR.json\": [\n\t\t8314,\n\t\t495\n\t],\n\t\"./zh-TW\": [\n\t\t2729,\n\t\t495\n\t],\n\t\"./zh-TW.json\": [\n\t\t2729,\n\t\t495\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 3 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 8686;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./da-DK\": [\n\t\t9302,\n\t\t2\n\t],\n\t\"./da-DK.json\": [\n\t\t9302,\n\t\t2\n\t],\n\t\"./de-DE\": [\n\t\t9125,\n\t\t750\n\t],\n\t\"./de-DE.json\": [\n\t\t9125,\n\t\t750\n\t],\n\t\"./es-LA\": [\n\t\t4547,\n\t\t597\n\t],\n\t\"./es-LA.json\": [\n\t\t4547,\n\t\t597\n\t],\n\t\"./fi-FI\": [\n\t\t3989,\n\t\t675\n\t],\n\t\"./fi-FI.json\": [\n\t\t3989,\n\t\t675\n\t],\n\t\"./fr-FR\": [\n\t\t3836,\n\t\t821\n\t],\n\t\"./fr-FR.json\": [\n\t\t3836,\n\t\t821\n\t],\n\t\"./it-IT\": [\n\t\t2546,\n\t\t174\n\t],\n\t\"./it-IT.json\": [\n\t\t2546,\n\t\t174\n\t],\n\t\"./ja-JP\": [\n\t\t5340,\n\t\t93\n\t],\n\t\"./ja-JP.json\": [\n\t\t5340,\n\t\t93\n\t],\n\t\"./ko-KR\": [\n\t\t3097,\n\t\t890\n\t],\n\t\"./ko-KR.json\": [\n\t\t3097,\n\t\t890\n\t],\n\t\"./nl-NL\": [\n\t\t1212,\n\t\t574\n\t],\n\t\"./nl-NL.json\": [\n\t\t1212,\n\t\t574\n\t],\n\t\"./no-NO\": [\n\t\t2883,\n\t\t244\n\t],\n\t\"./no-NO.json\": [\n\t\t2883,\n\t\t244\n\t],\n\t\"./pt-BR\": [\n\t\t3924,\n\t\t319\n\t],\n\t\"./pt-BR.json\": [\n\t\t3924,\n\t\t319\n\t],\n\t\"./ru-RU\": [\n\t\t6917,\n\t\t484\n\t],\n\t\"./ru-RU.json\": [\n\t\t6917,\n\t\t484\n\t],\n\t\"./sv-SE\": [\n\t\t7570,\n\t\t130\n\t],\n\t\"./sv-SE.json\": [\n\t\t7570,\n\t\t130\n\t],\n\t\"./tr-TR\": [\n\t\t8016,\n\t\t580\n\t],\n\t\"./tr-TR.json\": [\n\t\t8016,\n\t\t580\n\t],\n\t\"./zh-TW\": [\n\t\t1515,\n\t\t10\n\t],\n\t\"./zh-TW.json\": [\n\t\t1515,\n\t\t10\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 3 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 4067;\nmodule.exports = webpackAsyncContext;","import { Box } from '@wds/box';\nimport { Responsive } from '@wds/responsive';\nimport { Theme } from '@wds/styles';\nimport { Typography } from '@wds/typography';\nimport React, { Fragment, ReactElement, ReactNode } from 'react';\nimport { createUseStyles } from 'react-jss';\n\nconst useStyles = createUseStyles((theme: Theme) => {\n const mediaQueryMinScreenSm = `@media (min-width: ${theme.breakpoints.sm}px)`;\n return {\n ctaContainer: {\n marginBottom: theme.spacing[6],\n [mediaQueryMinScreenSm]: {\n width: '240px',\n marginBottom: 0,\n },\n },\n spacer: {\n [mediaQueryMinScreenSm]: {\n borderRight: `1px solid ${theme.palette.border.main}`,\n },\n },\n };\n});\n\ntype CtaDefinition = {\n /** The call-to-action button */\n cta: ReactNode;\n\n /** Explanatory text */\n caption: ReactNode;\n\n /** unique id */\n id: string;\n};\n\n/**\n * Helper for rendering alternative CTAs side-by-side:\n *\n * ```\n * How do you want to proceed?\n * |\n * CALL TO ACTION #1 | CALL TO ACTION #2\n * |\n * Some caption explaining | Another caption explaining\n * the first option | the second option\n * ```\n *\n * - On small screens it collapses into a single column with alternatives stacked vertically\n *\n * @param ctas List of calls-to-action\n * @param prompt Prompt text to show above CTAs\n * @param swapOrder When `true`, the caption is rendered above the CTA. Default is `false`\n */\nexport default function CTASplitter({\n ctas,\n prompt,\n swapOrder = false,\n}: {\n ctas: CtaDefinition[];\n prompt?: ReactNode;\n swapOrder?: boolean;\n}): ReactElement {\n const { ctaContainer, spacer } = useStyles();\n\n const promptText = prompt ? (\n \n \n {prompt}\n \n \n ) : null;\n\n const justify = ctas.length > 1 ? 'space-between' : 'center';\n\n return (\n <>\n {promptText}\n \n {(matches: boolean) => (\n \n {ctas.map(({ cta, caption, id }, index) => (\n \n \n {swapOrder ? caption : cta}\n {swapOrder ? cta : caption}\n \n {index < ctas.length - 1 ? : null}\n \n ))}\n \n )}\n \n >\n );\n}\n","// TODO: This needs to be updated whenever we add new INTERFACE types and should be automated in the future\n// https://www.apollographql.com/docs/react/advanced/fragments.html#fragment-matcher\n\n// Manual update steps: https://code.corp.surveymonkey.com/thomask/GQLFragmentMatcher\n\nconst introspectionQueryResultData = {\n __schema: {\n types: [\n {\n kind: 'INTERFACE',\n name: 'SurveyQuestion',\n possibleTypes: [\n { name: 'PresentationQuestion' },\n { name: 'SingleChoiceQuestion' },\n { name: 'MultipleChoiceQuestion' },\n { name: 'OpenEndedQuestion' },\n { name: 'MatrixQuestion' },\n { name: 'DemographicQuestion' },\n { name: 'DatetimeQuestion' },\n { name: 'BasicQuestion' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'BaseQuestionHeader',\n possibleTypes: [{ name: 'SurveyQuestionHeader' }, { name: 'VideoStimuliSurveyQuestionHeader' }],\n },\n {\n kind: 'INTERFACE',\n name: 'PaginatedList',\n possibleTypes: [\n { name: 'AnalysisStandardViewList' },\n { name: 'RespondentList' },\n { name: 'SurveyRespondentResultsList' },\n { name: 'SurveyQuestionColumnChoiceList' },\n { name: 'SurveyQuestionList' },\n { name: 'CollaboratorList' },\n { name: 'CollectorList' },\n { name: 'CrossTabReportList' },\n { name: 'AnalysisResultsDashboardList' },\n { name: 'SurveyPageList' },\n { name: 'AnalysisSharedViewList' },\n { name: 'SurveyQuestionRowList' },\n { name: 'SurveyQuestionOptionList' },\n { name: 'WordCloudTagList' },\n { name: 'SurveyOtherResponseList' },\n { name: 'TeamImageAssetsList' },\n { name: 'ApplicationListingList' },\n { name: 'LibraryAssetsList' },\n { name: 'SurveyList' },\n { name: 'AnalysisExportJobList' },\n { name: 'SurveyTemplateList' },\n { name: 'SurveyCategoryList' },\n { name: 'SurveyCategoryIdList' },\n { name: 'SurveyTemplateCategoryList' },\n { name: 'SurveyTemplateAttributesList' },\n { name: 'TeamSurveyList' },\n { name: 'SurveyQuestionTemplateList' },\n { name: 'BillingInvoiceList' },\n { name: 'SurveyQuestionColumnList' },\n { name: 'NotificationPreferenceList' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'AnalysisStandardViewFilterRule',\n possibleTypes: [\n { name: 'QnAFilter' },\n { name: 'CollectorFilter' },\n { name: 'TimePeriodFilter' },\n { name: 'CompletenessFilter' },\n { name: 'RandomAssignmentFilter' },\n { name: 'TagFilter' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'AnalysisStandardViewCompareRule',\n possibleTypes: [{ name: 'QuestionAndAnswerCompare' }, { name: 'RandomAssignmentCompare' }],\n },\n {\n kind: 'UNION',\n name: 'SurveyRespondentAnswer',\n possibleTypes: [\n { name: 'SurveyChoiceResponse' },\n { name: 'SurveyImageChoiceResponse' },\n { name: 'SurveyOtherResponse' },\n { name: 'SurveyOpenEndedResponse' },\n { name: 'SurveyMatrixResponse' },\n { name: 'SurveyMatrixOtherResponse' },\n { name: 'SurveyMatrixDropDownResponse' },\n { name: 'SurveyMatrixOpenEndedResponse' },\n { name: 'SurveyFileUploadResponse' },\n { name: 'SurveyPaymentResponse' },\n { name: 'SurveyPresentationImageResponse' },\n { name: 'SurveyPresentationTextResponse' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'SurveyQuestionOption',\n possibleTypes: [\n { name: 'SurveyQuestionRow' },\n { name: 'SurveyQuestionOther' },\n { name: 'SurveyQuestionColumn' },\n { name: 'SurveyQuestionColumnChoice' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'Project',\n possibleTypes: [{ name: 'ConceptTestingProject' }],\n },\n {\n kind: 'INTERFACE',\n name: 'ProjectVariableConfiguration',\n possibleTypes: [\n { name: 'DefaultConfiguration' },\n { name: 'ImageStimuliVariableConfiguration' },\n { name: 'TextStimuliVariableConfiguration' },\n { name: 'VideoStimuliVariableConfiguration' },\n { name: 'ProductStimuliVariableConfiguration' },\n { name: 'NormsVariableConfiguration' },\n { name: 'AttributesVariableConfiguration' },\n { name: 'StimuliComparisonQuestionVariableConfiguration' },\n { name: 'CustomQuestionsBeforeStimuliVariableConfiguration' },\n { name: 'CustomQuestionsAfterStimuliVariableConfiguration' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'ProjectVariableAnswer',\n possibleTypes: [\n { name: 'QuestionVariableAnswer' },\n { name: 'QuestionBankVariableAnswer' },\n { name: 'ValueVariableAnswer' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'ConceptTestingStimulus',\n possibleTypes: [{ name: 'ConceptTestingTextStimulus' }, { name: 'ConceptTestingImageStimulus' }],\n },\n {\n kind: 'UNION',\n name: 'AttributeQuestion',\n possibleTypes: [\n { name: 'SingleChoiceQuestion' },\n { name: 'MultipleChoiceQuestion' },\n { name: 'OpenEndedQuestion' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'QuestionResponseSummary',\n possibleTypes: [\n { name: 'OneDimensionalResponseSummary' },\n { name: 'TwoDimensionalResponseSummary' },\n { name: 'ThreeDimensionalResponseSummary' },\n ],\n },\n {\n kind: 'UNION',\n name: 'MultipleComparisonQuestion',\n possibleTypes: [{ name: 'MultipleChoiceQuestion' }, { name: 'SingleChoiceQuestion' }],\n },\n {\n kind: 'UNION',\n name: 'CustomQuestion',\n possibleTypes: [\n { name: 'SingleChoiceQuestion' },\n { name: 'MultipleChoiceQuestion' },\n { name: 'OpenEndedQuestion' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'ProjectEntity',\n possibleTypes: [{ name: 'ProjectAudienceCollectorEntity' }, { name: 'ProjectSurveyEntity' }],\n },\n {\n kind: 'INTERFACE',\n name: 'AudienceTargetingCriteria',\n possibleTypes: [\n { name: 'AudienceRangeCriteria' },\n { name: 'AudienceCategoricalCriteria' },\n { name: 'AudienceHouseholdIncomeRangeCriteria' },\n ],\n },\n {\n kind: 'UNION',\n name: 'AudienceCriteriaSelection',\n possibleTypes: [\n { name: 'AudienceCategoricalCriteriaSelection' },\n { name: 'AudienceRangeCriteriaSelection' },\n { name: 'AudienceHouseholdIncomeRangeCriteriaSelection' },\n ],\n },\n {\n kind: 'UNION',\n name: 'CustomQuestionResponseSummary',\n possibleTypes: [\n { name: 'CustomQuestionAggregateResponseSummary' },\n { name: 'CustomQuestionStimuliResponseSummary' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'ImageAsset',\n possibleTypes: [{ name: 'TeamImageAsset' }],\n },\n {\n kind: 'INTERFACE',\n name: 'TeamAsset',\n possibleTypes: [{ name: 'TeamImageAsset' }],\n },\n {\n kind: 'INTERFACE',\n name: 'Asset',\n possibleTypes: [{ name: 'TeamImageAsset' }],\n },\n {\n kind: 'INTERFACE',\n name: 'LibraryAsset',\n possibleTypes: [\n { name: 'LibraryImage' },\n { name: 'LibraryTheme' },\n { name: 'LibraryCustomQuestion' },\n { name: 'LibrarySurveyTemplate' },\n { name: 'LibraryDocument' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'WelcomeFlowQuestion',\n possibleTypes: [\n { name: 'WelcomeFlowSingleChoiceQuestion' },\n { name: 'WelcomeFlowMultipleChoiceQuestion' },\n { name: 'WelcomeFlowFlagQuestion' },\n { name: 'WelcomeFlowNumberQuestion' },\n { name: 'WelcomeFlowTextQuestion' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'SurveyQuestionTemplate',\n possibleTypes: [\n { name: 'BasicQuestionTemplate' },\n { name: 'SingleChoiceQuestionTemplate' },\n { name: 'MatrixQuestionTemplate' },\n { name: 'OpenEndedQuestionTemplate' },\n { name: 'DemographicQuestionTemplate' },\n { name: 'MultipleChoiceQuestionTemplate' },\n { name: 'DatetimeQuestionTemplate' },\n { name: 'PresentationQuestionTemplate' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'QuestionVariableAnswerData',\n possibleTypes: [\n { name: 'DefaultQuestionVariableAnswerData' },\n { name: 'ABQuestionVariableAnswerData' },\n { name: 'VideoABQuestionVariableAnswerData' },\n ],\n },\n {\n kind: 'INTERFACE',\n name: 'SurveyQuestionTemplateOption',\n possibleTypes: [\n { name: 'SurveyQuestionTemplateRow' },\n { name: 'SurveyQuestionTemplateOther' },\n { name: 'SurveyQuestionTemplateColumn' },\n { name: 'SurveyQuestionTemplateColumnChoice' },\n ],\n },\n ],\n },\n};\n\nexport default introspectionQueryResultData;\n","import { QueryParams } from '~common/entities/smParams';\n\nexport default function getQueryParam(name: QueryParams): T | undefined {\n const params = new URLSearchParams(window.location.search);\n return (params.get(name) as T) || undefined;\n}\n\nexport function hasQueryParam(name: string): boolean {\n return new URLSearchParams(window.location.search).has(name);\n}\n\n/**\n * @returns The page query params as a dictionary.\n */\nexport function getAllQueryParams(): Record {\n const params = new URLSearchParams(window.location.search);\n const obj = Object.create(null);\n params.forEach((value, key) => {\n obj[key] = value;\n });\n return obj;\n}\n","import { Auth0Client, AuthorizationParams } from '@auth0/auth0-spa-js';\n\nimport { Auth0Config } from '~app/helpers/auth0Config';\nimport { stashEp, stashSm, stashSmAllow } from '~app/helpers/sessionStorage';\nimport { getAmplitudeIds, waitForAmplitude } from '~app/utils/amplitudeHelpers';\nimport { Auth0Strategy, isSocial } from '~common/entities/auth0Strategy';\nimport { QueryParams, SmParams } from '~common/entities/smParams';\nimport asEnum from '~common/helpers/asEnum';\nimport getQueryParam, { getAllQueryParams, hasQueryParam } from '../helpers/queryParams';\nimport { AppState, SmApp, SmShow } from './handlers';\n\nfunction getRedirectUri(): string {\n return `https://${window.location.hostname}/login/callback`;\n}\n\nconst FORCE_AUTH: AuthorizationParams['prompt'] = 'login';\n\nfunction getSmShow(): SmShow | undefined {\n const showParam: SmShow | undefined = getQueryParam(QueryParams.SM_SHOW);\n if (showParam !== undefined) {\n return showParam;\n }\n\n const { pathname } = window.location;\n if (pathname.includes('sign-up')) {\n return SmShow.SIGNUP;\n }\n if (pathname.includes('forgot-password')) {\n return SmShow.FORGOT_PASSWORD;\n }\n\n return undefined;\n}\n\nfunction getSmApp(): SmApp | undefined {\n const value = getQueryParam(QueryParams.SM_APP);\n\n try {\n return asEnum(SmApp, value);\n } catch (e: unknown) {\n // value not in enum\n }\n return undefined;\n}\n\nfunction getSmForceAccontPicker(): true | undefined {\n if (hasQueryParam(SmParams.SM_FORCE_ACCOUNT_PICKER)) {\n return true;\n }\n return undefined;\n}\n\nfunction getForceAccountCreation(): true | undefined {\n const { pathname } = window.location;\n if (pathname.replace(/\\/$/, '') === '/sign-up') {\n const connection = getQueryParam(QueryParams.CONNECTION);\n try {\n // When the user came into the transaction with \"signup\" intent and a social `connection`\n // param, they'll bypass the login page and go straight to the social IdP, so their intent\n // cannot change. Let's go ahead and force account creation in this case\n const strategy = asEnum(Auth0Strategy, connection);\n return isSocial(strategy) || undefined;\n } catch (e: unknown) {\n // unknown or no connection, ignore\n }\n }\n\n return undefined;\n}\n\n/**\n * @returns the params that will be persisted with the login transaction\n */\nfunction buildAppState(): AppState {\n return {\n show: getSmShow(),\n app: getSmApp(),\n forceAccountPicker: getSmForceAccontPicker(),\n ut_source: getQueryParam(QueryParams.UT_SOURCE),\n ut_source2: getQueryParam(QueryParams.UT_SOURCE2),\n authUrl: window.location.toString(),\n forceAccountCreation: getForceAccountCreation(),\n };\n}\n\n// URL opener function for the auth redirect. Because the current /login route is just a transitional\n// spinner screen, it shouldn't appear in the user's browsing history, hence location.replace() it\nasync function replaceUrl(url: string): Promise {\n window.location.replace(url);\n return Promise.resolve();\n}\n\n/**\n * @returns Which Auth0 connection to initiate login against. If undefined, LoginApp UI will be\n * rendered and offer all the available options (password, social, SAML, etc).\n */\nfunction getConnection(ssoCanonicalName?: string): string | undefined {\n return getQueryParam(QueryParams.CONNECTION) ?? ssoCanonicalName ?? undefined;\n}\n\n/**\n * Begins a login transaction, storing the per-transaction params in\n * sessionStorage. Then navigates to the authentication provider.\n * Handles both sign-ups and logins, given the user can switch intent\n * on the login page.\n *\n * @param auth0Config Auth0 configuration\n * @param ep Optional URI where the user should be sent after completing the transaction\n * @param language The user's language code, will be passed to LoginApp to control display language\n * @param country The user's country, will be passed to LoginApp to adjust country-specific look & feel\n * @param smAllowCreateUserCookieVal\n * @param ssoCanonicalName Initiate login against the Auth0 connection with this name. This is used\n * in SSO flows when we already know what IdP the user wants.\n */\nexport default async function login({\n auth0Config,\n ep,\n language,\n country,\n smAllowCreateUserCookieVal,\n ssoCanonicalName,\n}: {\n auth0Config: Auth0Config;\n ep?: string;\n language?: string;\n country?: string;\n smAllowCreateUserCookieVal?: string;\n ssoCanonicalName?: string;\n}): Promise {\n const { domain, clientId, now } = auth0Config;\n if (!domain || !clientId) {\n throw new Error(`Missing auth0 configuration`);\n }\n\n const client = new Auth0Client({\n clientId,\n domain,\n authorizationParams: {\n redirect_uri: getRedirectUri(),\n },\n nowProvider: () => now,\n });\n\n const sm = getQueryParam(QueryParams.SM);\n const smAllowCreateUser = smAllowCreateUserCookieVal ?? getQueryParam(QueryParams.SM_ALLOW_CREATE_USER);\n const queryObj = getAllQueryParams();\n const connection = getConnection(ssoCanonicalName);\n\n if (ep !== undefined) {\n stashEp(ep);\n }\n if (sm !== undefined) {\n stashSm(sm);\n }\n if (smAllowCreateUser !== undefined) {\n stashSmAllow(smAllowCreateUser);\n }\n\n // Wait for the Amplitude SDK to drop a session ID. This is important, as passing the Amp session\n // to Auth0 is what makes tracking work across the OAuth flow and back.\n await waitForAmplitude();\n\n const appState = buildAppState();\n const lang = language ?? 'en';\n const amplitudeIds = getAmplitudeIds();\n\n // navigates away\n client\n .loginWithRedirect({\n appState,\n openUrl: replaceUrl,\n authorizationParams: {\n ...queryObj, // propagate all our query params over to Auth0 (incl. 'ep' if we have it)\n [SmParams.SM_AMP_DID]: amplitudeIds.deviceId ?? undefined,\n [SmParams.SM_AMP_SID]: amplitudeIds.sessionId ?? undefined,\n [SmParams.SM_APP]: appState.app,\n [SmParams.SM_SHOW]: appState.show,\n [SmParams.SM_LOCALE]: lang,\n [SmParams.SM_COUNTRY]: country,\n connection,\n prompt: FORCE_AUTH, // SM auth cookie will redirect logged-in users; always prompt for Auth0 login\n },\n })\n ?.catch(e => {\n // eslint-disable-next-line no-console\n console.error('Failed to login with redirect', e);\n });\n}\n","import { MetricsTracker } from '@sm/metrics';\nimport { StaticContext } from '@sm/webassets';\nimport React, { PropsWithChildren, useContext, useEffect, useRef } from 'react';\n\nconst useInitialRender = (): boolean => {\n const isInitialRender = useRef(true);\n\n useEffect(() => {\n if (isInitialRender.current) {\n isInitialRender.current = false;\n }\n });\n\n return isInitialRender.current;\n};\n\nexport default function BaseLoadingPage({ children, pageId }: PropsWithChildren<{ pageId: string }>): JSX.Element {\n const isInitialRender = useInitialRender();\n const { user, environment, 'client-config': clientConfig } = useContext(StaticContext);\n const { countryCode: country } = environment;\n const { gtmId, loggingAPIPath, dataAnalyticsAPIPath, amplitudeToken } = clientConfig;\n\n if (isInitialRender) {\n MetricsTracker.initialize({\n user,\n dataAnalyticsAPIPath,\n loggingAPIPath,\n country,\n legacyWeb: '',\n pageId,\n gtmId,\n amplitudeToken,\n });\n }\n\n return <>{children}>;\n}\n","import { ParseResult } from '..';\n\nexport type Handler = {\n setNext(handler: Handler): Handler;\n\n handle(error: string, errorDescription: string): ParseResult | null;\n};\n\nexport abstract class AbstractHandler implements Handler {\n private nextHandler: Handler | undefined;\n\n public setNext(handler: Handler): Handler {\n this.nextHandler = handler;\n // Returning a handler from here will let us link handlers in a\n // convenient way\n return handler;\n }\n\n public handle(error: string, errorDescription: string): ParseResult | null {\n if (this.nextHandler) {\n return this.nextHandler.handle(error, errorDescription);\n }\n\n return null;\n }\n}\n","import { SamlErrorCode } from '~common/errors/userFacing';\n\nimport { ParseResult } from '..';\nimport { AbstractHandler } from '.';\n\nexport default class ConnectionDisabledHandler extends AbstractHandler {\n public handle(error: string, errorDescription: string): ParseResult | null {\n const isError = error === 'invalid_request' && errorDescription.includes('the connection was disabled');\n\n if (isError) {\n return {\n code: SamlErrorCode.CONNECTION_DISABLED,\n };\n }\n return super.handle(error, errorDescription);\n }\n}\n","import { SamlErrorCode } from '~common/errors/userFacing';\n\nimport { ParseResult } from '..';\nimport { AbstractHandler } from '.';\n\nexport default class IDPInitiatedHandler extends AbstractHandler {\n public handle(error: string, errorDescription: string): ParseResult | null {\n const isError = error === 'invalid_request' && errorDescription.includes('IdP-Initiated login is not enabled');\n\n if (isError) {\n return {\n code: SamlErrorCode.IDP_INITIATED_NOT_ENABLED,\n };\n }\n return super.handle(error, errorDescription);\n }\n}\n","import { SamlErrorCode } from '~common/errors/userFacing';\n\nimport { ParseResult } from '..';\nimport { AbstractHandler } from '.';\n\nexport default class InvalidCertHandler extends AbstractHandler {\n public handle(error: string, errorDescription: string): ParseResult | null {\n const isError =\n error === 'access_denied' &&\n (errorDescription.startsWith('The signing certificate is invalid') ||\n errorDescription.startsWith('Signature check errors') ||\n errorDescription.startsWith('Signature is missing') ||\n errorDescription.startsWith('Signature was found more than one time'));\n\n if (isError) {\n return {\n code: SamlErrorCode.X509_CANNOT_VERIFY,\n };\n }\n return super.handle(error, errorDescription);\n }\n}\n","import { SamlErrorCode } from '~common/errors/userFacing';\n\nimport { ParseResult } from '..';\nimport { AbstractHandler } from '.';\n\nexport default class InvalidThumprintHandler extends AbstractHandler {\n public handle(error: string, errorDescription: string): ParseResult | null {\n const isError = error === 'access_denied' && errorDescription.startsWith('Invalid thumbprint');\n\n if (isError) {\n return {\n code: SamlErrorCode.X509_MISMATCH,\n };\n }\n return super.handle(error, errorDescription);\n }\n}\n","import { ProgressCircle } from '@wds/progress-circle';\nimport React, { useEffect, useState } from 'react';\n\nimport BaseLoadingPage from '~app/pages/login/BaseLoadingPage';\nimport { SamlError } from '~app/helpers/sessionsApiClient';\n\nimport navigateTo from '~app/helpers/navigateTo';\nimport './loading.scss';\n\nimport getQueryParam from '~app/helpers/queryParams';\nimport parse, { ParseResult } from '~app/utils/auth0SamlErrorParser';\nimport { QueryParams } from '~common/entities/smParams';\n\nexport const TEST_ID = 'LoadingPage';\n\ntype Handler = () => void | Promise;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isPromise(v?: any): v is Promise {\n return !!v && 'then' in v;\n}\n\nexport default function LoadingPage({ handler }: { handler: Handler }): JSX.Element {\n const [, setError] = useState();\n const handleError = (e: Error): void => {\n // Auth0 throws this error if the state been returned is not valid\n const validState = e.message !== 'Invalid state';\n\n let auth0Error: ParseResult | null = null;\n const errorReason = getQueryParam(QueryParams.ERROR);\n const errorDesc = getQueryParam(QueryParams.ERROR_DESCRIPTION);\n\n if (errorReason && errorDesc && validState) {\n auth0Error = parse(errorReason, errorDesc);\n }\n\n if ((auth0Error || e instanceof SamlError) && validState) {\n const code = auth0Error?.code ?? (e as SamlError).code;\n\n return navigateTo('/login/error', { error: code });\n }\n\n // Re-throw the error inside a new hook. This ensures that the page-level\n // error boundary will trigger.\n setError(() => {\n throw e;\n });\n };\n\n // We're not providing deps to useEffect because we only load this\n // component on page load and we're running a script for the entire lifecycle\n // of the page.\n useEffect(() => {\n const result = handler();\n if (isPromise(result)) {\n result.catch(handleError);\n }\n });\n return (\n \n \n \n \n \n );\n}\n","import { SamlErrorCode } from '~common/errors/userFacing';\nimport ConnectionDisabledHandler from './handlers/connectionDisabled';\nimport IDPInitiatedHandler from './handlers/idpInitiated';\nimport InvalidCertHandler from './handlers/invalidCert';\nimport InvalidThumprintHandler from './handlers/invalidThumbprint';\n\nexport type ParseResult = {\n code: SamlErrorCode;\n};\n\nexport default function parse(error: string, errorDescription: string): ParseResult | null {\n const idpInitiated = new IDPInitiatedHandler();\n const invalidCert = new InvalidCertHandler();\n const invalidThumbprint = new InvalidThumprintHandler();\n const connectionDisabled = new ConnectionDisabledHandler();\n\n invalidThumbprint.setNext(connectionDisabled).setNext(invalidCert).setNext(idpInitiated);\n\n return invalidThumbprint.handle(error, decodeURIComponent(errorDescription));\n}\n","import { StaticContext } from '@sm/webassets';\nimport { useContext } from 'react';\nimport { Auth0Config } from '~app/helpers/auth0Config';\n\nexport default function useAuth0Config(): Auth0Config {\n const {\n 'client-config': { auth0, now },\n } = useContext<{ 'client-config': { auth0: Auth0Config; now: number } }>(StaticContext);\n\n auth0.now = now;\n\n return auth0;\n}\n","import { StaticContext } from '@sm/webassets';\nimport React, { useContext } from 'react';\nimport { useParams } from 'react-router-dom';\nimport login from '~app/handlers/login';\nimport LoadingPage from '~app/pages/login/LoadingPage/LoadingPage';\nimport useAuth0Config from '~app/pages/login/hooks';\n\n/** Renders a spinner page that starts the auth transaction and redirects the user to Auth0 */\nexport default function StartAuthTransactionPage(): JSX.Element {\n const {\n 'client-config': { ep, smAllowCreateUser },\n environment: { languageCode: language, countryCode: country },\n } = useContext(StaticContext);\n\n const auth0Config = useAuth0Config();\n\n const { ssoCanonicalName } = useParams<{ ssoCanonicalName?: string }>();\n\n return (\n {\n // Don't need to await this promise, just ignore it\n void login({\n auth0Config,\n ep,\n language,\n country,\n smAllowCreateUserCookieVal: smAllowCreateUser,\n ssoCanonicalName,\n });\n }}\n />\n );\n}\n","type Input = Record;\n\n/**\n * Helper function that asserts a value that:\n * - we know is a string (or expect is a string)\n * - its typing says it _could_ be of type not-a-string\n * gets returned as type string.\n *\n * @param v any value that should be a string\n * @returns the value asserted as a string, or undefined if the value isn't a string\n */\nexport function asString(v: unknown): string | undefined {\n return typeof v === 'string' ? v : undefined;\n}\n\n/** @returns a copy of `target` with all `undefined`-valued properties omitted */\nexport default function cleanObject(target: Input): Record {\n const copy: Record = {};\n\n Object.entries(target).forEach(([key, value]) => {\n if (value !== undefined) {\n copy[key] = value;\n }\n });\n\n return copy;\n}\n","import { Auth0Client, IdToken } from '@auth0/auth0-spa-js';\nimport SessionClient, { IdentityNotLinkedError, SessionResult } from '../helpers/sessionsApiClient';\nimport handleRedirectCallback from './callback/handleRedirectCallback';\nimport navigateTo from '~app/helpers/navigateTo';\nimport { fetchAndRemoveEp, fetchAndRemoveSm, fetchAndRemoveSmAllow, stashIdToken } from '../helpers/sessionStorage';\nimport { Auth0Config } from '~app/helpers/auth0Config';\nimport cleanObject from '~common/utils/cleanObject';\nimport { SmParams } from '~common/entities/smParams';\nimport { AppState } from './handlers';\n\nfunction handleSsoSessionResult(result: SessionResult, redirectUrl?: string): void {\n if (redirectUrl) {\n navigateTo(redirectUrl);\n } else {\n throw new Error(`redirectUrl not provided for SSO_LOGIN result: ${result}`);\n }\n}\n\nfunction handleLoggedInOrCreatedSessionResult(\n result: SessionResult,\n appState: AppState,\n ep?: string,\n sm?: string\n): void {\n navigateTo(\n '/login/next',\n cleanObject({\n ep,\n joined: result === SessionResult.CREATED ? 'true' : undefined,\n force_account_picker: appState.forceAccountPicker ? 'true' : undefined,\n sm,\n })\n );\n}\n\nfunction handleUnlinkedSessionResult(\n appState: AppState,\n claims: IdToken,\n error?: IdentityNotLinkedError,\n ep?: string,\n sm?: string,\n smAllowCreateUser?: string\n): void {\n const { app, forceAccountPicker, ut_source: utSource, ut_source2: utSource2 } = appState;\n const emailInUse = error?.emailInUse ? 'true' : undefined;\n stashIdToken(claims);\n navigateTo(\n '/login/unlinked',\n cleanObject({\n [SmParams.SM_APP]: app,\n [SmParams.SM_FORCE_ACCOUNT_PICKER]: forceAccountPicker ? '' : undefined,\n ep,\n sm,\n sm_allow_create_user: smAllowCreateUser,\n ut_source: utSource,\n ut_source2: utSource2,\n email_in_use: emailInUse,\n })\n );\n}\n\n/**\n * Completes a login transaction and establishes a session, then navigates the user\n *\n * @param config Auth0 configuration\n */\nasync function auth0Callback(\n config: Auth0Config,\n ep?: string,\n sm?: string,\n sm_allow_create_user?: string\n): Promise {\n const { domain, clientId } = config;\n if (!domain || !clientId) {\n throw new Error('Missing auth0 configuration');\n }\n\n const client = new Auth0Client({\n clientId,\n domain,\n nowProvider: () => config.now,\n });\n const { appState, claims } = await handleRedirectCallback(client);\n const { result, error, redirectUrl } = await SessionClient().createByLogin({\n claims,\n appState,\n smAllowCreateUser: sm_allow_create_user,\n });\n\n switch (result) {\n case SessionResult.SSO_LOGIN:\n handleSsoSessionResult(result, redirectUrl);\n break;\n case SessionResult.LOGGED_IN:\n case SessionResult.CREATED:\n handleLoggedInOrCreatedSessionResult(result, appState, ep, sm);\n break;\n case SessionResult.UNLINKED:\n handleUnlinkedSessionResult(appState, claims, error, ep, sm, sm_allow_create_user);\n break;\n default:\n throw new Error(`Unhandled result: ${result}`);\n }\n}\n\nexport default async function callback(config: Auth0Config, isSso: boolean): Promise {\n const ep = fetchAndRemoveEp() ?? undefined;\n const sm = fetchAndRemoveSm() ?? undefined;\n if (isSso) {\n navigateTo('/user/redirect', cleanObject({ ep, sm }));\n } else {\n const sm_allow_create_user = fetchAndRemoveSmAllow() ?? undefined;\n await auth0Callback(config, ep, sm, sm_allow_create_user);\n }\n}\n","import { Auth0Client, IdToken } from '@auth0/auth0-spa-js';\nimport { clientErrorHandler } from '@sm/webassets';\nimport { AppState } from '../handlers';\n\n/**\n * Handles the OAuth callback, extracting the ID Token claims, and AppState that was\n * saved with the transaction.\n *\n * @param client Configured Auth0 client\n * @returns ID Token claims and app state.\n */\nexport default async function handleRedirectCallback(\n client: Auth0Client\n): Promise<{ appState: AppState; claims: IdToken }> {\n try {\n const result = await client.handleRedirectCallback();\n const claims = await client.getIdTokenClaims();\n const appState: AppState = result.appState || {};\n\n if (!claims) {\n throw new Error('Missing ID token');\n }\n\n return { appState, claims };\n } catch (e: unknown) {\n if (e instanceof Error) {\n clientErrorHandler.logError(e, 'Failed to get ID token');\n }\n throw e;\n }\n}\n","import { StaticContext } from '@sm/webassets';\nimport React, { useContext } from 'react';\nimport callback from '~app/handlers/callback';\nimport LoadingPage from '~app/pages/login/LoadingPage/LoadingPage';\nimport useAuth0Config from '~app/pages/login/hooks';\n\nexport default function HandleAuthCallbackPage(): JSX.Element {\n const {\n 'client-config': { isSso },\n } = useContext(StaticContext);\n\n const auth0Config = useAuth0Config();\n\n return callback(auth0Config, isSso)} />;\n}\n","import React, { PropsWithChildren, ReactNode } from 'react';\nimport { CaptiveWindow } from '@sm/webassets';\nimport { createUseStyles } from 'react-jss';\nimport { Box } from '@wds/box';\nimport { Theme } from '@wds/styles';\n\nconst useStyles = createUseStyles(({ palette }: Theme) => {\n return {\n unlinkedWindow: {\n maxWidth: '636px',\n },\n window: {\n backgroundColor: palette.background.main,\n },\n };\n});\n\nconst UnlinkedWindow = ({ addOnTop, children }: PropsWithChildren<{ addOnTop: ReactNode }>): JSX.Element => {\n const { unlinkedWindow, window } = useStyles();\n return (\n \n {addOnTop}}>\n {children}\n \n \n );\n};\n\nexport default UnlinkedWindow;\n","import React from 'react';\nimport { Button } from '@wds/button';\nimport { Theme } from '@wds/styles';\nimport { createUseStyles } from 'react-jss';\nimport { ProgressCircle } from '@wds/progress-circle';\n\nexport const BUTTON_TEST_ID = 'UnlinkedButtonOptionButton';\n\nconst useStyles = createUseStyles((theme: Theme) => ({\n buttonOverride: {\n '& a, & button': {\n // reduce padding since we have some long titles and want to avoid breaking onto another\n // line if possible\n padding: [0, theme.spacing[3]],\n },\n },\n}));\n\nexport default function UnlinkedButtonOption({\n isDisabled,\n showSpinner,\n titleText,\n onClick,\n id,\n href,\n}: {\n isDisabled: boolean;\n showSpinner: boolean;\n titleText: string;\n id?: string;\n href?: string;\n onClick(): void;\n}): JSX.Element {\n let buttonTestId: string = BUTTON_TEST_ID;\n if (typeof id !== 'undefined') {\n const suffix = `__${id}`;\n buttonTestId = `${buttonTestId}${suffix}`;\n }\n\n const { buttonOverride } = useStyles();\n\n return (\n
\n \n
\n );\n}\n\nUnlinkedButtonOption.defaultProps = {\n id: undefined,\n href: undefined,\n};\n","import React from 'react';\nimport { defineMessages, T } from '@sm/intl';\nimport { Banner } from '@wds/banner';\n\nexport const TEST_ID = 'UnlinkedErrorBanner';\nexport const ERROR_TEST_ID = 'UnlinkedErrorBanner__Error';\nexport const JWT_ERROR_TEST_ID = 'UnlinkedErrorBanner__JWTError';\n\nconst COPY = defineMessages({\n unlinkedPageErrorBanner: {\n id: 'login.UnlinkedErrorBanner.BannerCopy',\n defaultMessage: 'Sorry, something went wrong. Please try again.',\n description: '[Type: Label][Vis: high] - Banner that shows when a signup attempt failed',\n },\n unlinkedPageJwtErrorBanner: {\n id: 'login.UnlinkedErrorBanner.JWTErrorBannerCopy',\n defaultMessage: \"Your request expired. Please go back and try again.\",\n description:\n '[Type: Label][Vis: high] - Banner that instructs the user to take specific action when a signup attempt failed',\n },\n});\n\nexport default function UnlinkedErrorBanner({ JWTError }: { JWTError: boolean }): JSX.Element {\n return (\n \n {JWTError ? (\n \n \n \n ) : (\n \n \n \n )}\n \n );\n}\n","import { defineMessages, T } from '@sm/intl';\nimport React from 'react';\nimport { PageHeader } from '@wds/page-header';\nimport { createUseStyles } from 'react-jss';\nimport { Theme } from '@wds/styles';\n\nimport { SocialName } from './types';\n\nexport const TEST_ID = 'UnlinkedHeader';\n\nconst COPY = defineMessages({\n unlinkedPageHeader: {\n id: 'login.UnlinkedHeader.Header',\n defaultMessage: 'Your {socialName} account isn’t linked to a SurveyMonkey account',\n description:\n '[Type: Header][Vis: med] - Header of the page alerting the user their third party account is unlinked',\n },\n unlinkedEmailInUseHeader: {\n id: 'login.UnlinkedHeader.EmailInUseHeader',\n defaultMessage: 'Please log in with your password',\n description:\n '[Type: Header][Vis: med] - Header of the page informing the user there is an existing account linked to their social email, so they need to log in using their password',\n },\n});\n\nconst useStyles = createUseStyles((theme: Theme) => {\n return {\n headerContainer: {\n '& > *': {\n paddingTop: 0,\n paddingBottom: theme.spacing[6],\n },\n '& *': {\n backgroundColor: 'transparent',\n },\n },\n header: {\n fontSize: theme.type.fontSize.pageTitle,\n },\n };\n});\n\nexport default function UnlinkedHeader({\n socialName,\n emailInUse,\n}: {\n socialName: SocialName;\n emailInUse: boolean;\n}): JSX.Element {\n const { headerContainer, header } = useStyles();\n\n const headerText = emailInUse ? (\n \n ) : (\n \n );\n\n return (\n
\n {headerText}
}>\n <>>\n \n \n );\n}\n","import { defineMessages, t } from '@sm/intl';\nimport { createURL } from '@sm/utils';\nimport { Box } from '@wds/box';\nimport { Theme } from '@wds/styles';\nimport { Typography } from '@wds/typography';\nimport React, { useState } from 'react';\nimport { createUseStyles } from 'react-jss';\nimport CTASplitter from '~app/components/CTASplitter/CTASplitter';\nimport { AppState } from '~app/handlers/handlers';\nimport navigateTo from '~app/helpers/navigateTo';\nimport { removeIdToken } from '~app/helpers/sessionStorage';\nimport SessionClient, { SessionResult } from '~app/helpers/sessionsApiClient';\nimport UnlinkedWindow from '~app/pages/login/UnlinkedPage/UnlinkedWindow';\nimport { QueryParams, SmParams } from '~common/entities/smParams';\nimport cleanObject from '~common/utils/cleanObject';\nimport getQueryParam, { hasQueryParam } from '../../../helpers/queryParams';\nimport UnlinkedButtonOption from './UnlinkedButtonOption';\nimport UnlinkedErrorBanner from './UnlinkedErrorBanner';\nimport UnlinkedHeader from './UnlinkedHeader';\nimport getAndValidateIdToken from './tokenHelper';\nimport { AuthState } from './types';\n\nexport const TEST_ID = 'UnlinkedPage';\n\nconst COPY = defineMessages({\n unlinkedPageSignupButtonTitle: {\n id: 'login.UnlinkedPageContent.SignupTitle',\n defaultMessage: 'Create a new account',\n description: '[Type: Button][Vis: high] - Button header for the user to create a new account',\n },\n unlinkedPageSignupButtonContent: {\n id: 'login.UnlinkedPageContent.SignupContent',\n defaultMessage: 'Sign up for SurveyMonkey using your {socialName} account – it’s free and easy',\n description:\n '[Type: Button][Vis: high] - Button text informing the user what happens if they click \"Create a new account\"',\n },\n unlinkedPageLoginButtonTitle: {\n id: 'login.UnlinkedPageContent.LoginTitle',\n defaultMessage: 'Log in to an existing account',\n description: '[Type: Button][Vis: high] - Button header for the user to log in to an existing account',\n },\n unlinkedPageLoginButtonEmailInUseTitle: {\n id: 'login.UnlinkedPageContent.LoginEmailInUseTitle',\n defaultMessage: 'Log in to your account',\n description:\n '[Type: Button][Vis: high] - Button header for the user to log in to the existing account linked to their social email',\n },\n unlinkedPageLoginButtonContent: {\n id: 'login.UnlinkedPageContent.LoginContent',\n defaultMessage: 'Once you log in to SurveyMonkey, you can link your {socialName} account from the My Account page',\n description:\n '[Type: Button][Vis: high] - Button text informing the user what happens if they click \"Log in to an existing account\"',\n },\n unlinkedPageEmailInUseMessage: {\n id: 'login.UnlinkedPageContent.EmailInUseMessage',\n defaultMessage: `
We found your account with {email}.
To log in, enter this email and select Next to enter your password.
You can’t use the Log in with {socialName} option until you’ve linked your SurveyMonkey and {socialName} accounts.
`,\n description: `[Type: Paragraph][Vis: med] - Body text informing the user of what steps they must take in order to login. \"Next\" is the button label defined in LoginEmailPage:submitButtonLabel`,\n },\n unlinkedPageLoginButton: {\n id: 'login.UnlinkedPageContent.LogIn',\n defaultMessage: 'Log in',\n description: `[Type: Button][Vis: high] - Label for the \"Log in\" button`,\n },\n unlinkedPageOptionsHeaderNoEmail: {\n id: 'login.UnlinkedPageContent.OptionsHeaderNoEmail',\n defaultMessage: `What would you like to do?`,\n description: '[Type: Paragraph][Vis: med] - Header asking user what they would like to do to link their account',\n },\n});\n\nconst useStyles = createUseStyles((theme: Theme) => {\n return {\n emailInUseButtonContainer: {\n width: '240px',\n },\n };\n});\n\nexport default function UnlinkedPageContent(): JSX.Element {\n const { idToken, socialName } = getAndValidateIdToken();\n const { emailInUseButtonContainer } = useStyles();\n\n const appState: AppState = {\n app: getQueryParam(QueryParams.SM_APP),\n ep: getQueryParam(QueryParams.EP),\n forceAccountPicker: hasQueryParam(SmParams.SM_FORCE_ACCOUNT_PICKER) ? true : undefined,\n sm: getQueryParam(QueryParams.SM),\n sm_allow_create_user: getQueryParam(QueryParams.SM_ALLOW_CREATE_USER),\n ut_source: getQueryParam(QueryParams.UT_SOURCE),\n ut_source2: getQueryParam(QueryParams.UT_SOURCE2),\n };\n\n const emailInUse = !!getQueryParam(QueryParams.EMAIL_IN_USE);\n const userEmail = idToken.email as string;\n // For the \"Create a new account\" button\n const [signupState, setSignupState] = useState('pageload');\n const [signupJWTError, setSignupJWTError] = useState(false);\n\n const attemptSignUp = async (): Promise => {\n if (signupState === 'pending' || signupState === 'success') {\n return;\n }\n setSignupState('pending');\n\n try {\n const result = await SessionClient().createBySignup({ claims: idToken, appState });\n if (result === SessionResult.CREATED) {\n setSignupState('success');\n removeIdToken();\n navigateTo('/login/next', cleanObject({ ep: appState.ep, joined: 'true' }));\n } else {\n setSignupState('error');\n setSignupJWTError(result === SessionResult.INVALID_JWT);\n }\n } catch (error: unknown) {\n setSignupJWTError(false);\n setSignupState('error');\n }\n };\n\n // For the \"Log in to an existing acct\" button\n const [loginState, setLoginState] = useState('pageload');\n\n const attemptLogin = (): void => {\n // navigation to /login handled by href attr; just set state here\n if (loginState !== 'pending' && loginState !== 'success') {\n setLoginState('pending');\n }\n };\n\n const generateLoginURL = (): string => {\n return createURL(\n '/login',\n cleanObject({\n [SmParams.SM_APP]: appState.app,\n [SmParams.SM_FORCE_ACCOUNT_PICKER]: appState.forceAccountPicker ? '' : undefined,\n [SmParams.SM_EMAIL]: userEmail,\n ep: appState.ep,\n sm: appState.sm,\n sm_allow_create_user: appState.sm_allow_create_user,\n ut_source: appState.ut_source,\n ut_source2: appState.ut_source2,\n })\n );\n };\n\n const allowAccountCreation = (): boolean => {\n const baseUrl = window.location.href;\n return !baseUrl.includes('eu.');\n };\n\n // For logic affecting either/both buttons\n const areButtonsDisabled: boolean =\n loginState === 'pending' || loginState === 'success' || signupState === 'pending' || signupState === 'success';\n\n const loginButton = (label: string): JSX.Element => (\n \n );\n\n const EmailInUse = (): JSX.Element => {\n return (\n \n \n {t(\n COPY.unlinkedPageEmailInUseMessage,\n {\n email: userEmail,\n socialName,\n },\n { html: true }\n )}\n \n \n {loginButton(t(COPY.unlinkedPageLoginButton))}\n \n \n );\n };\n\n const CreateOrLogin = (): JSX.Element => {\n const signupCTA = {\n id: 'cta.signup',\n cta: (\n \n ),\n caption: {t(COPY.unlinkedPageSignupButtonContent, { socialName })},\n };\n\n const loginCTA = {\n id: 'cta.login',\n cta: loginButton(t(COPY.unlinkedPageLoginButtonTitle)),\n caption: {t(COPY.unlinkedPageLoginButtonContent, { socialName })},\n };\n\n return (\n \n );\n };\n\n return (\n \n }\n >\n \n {/* OPTIONAL ERROR BANNER */}\n {signupState === 'error' ? : null}\n\n {emailInUse ? : }\n \n \n );\n}\n","import React, { useContext } from 'react';\nimport { StaticContext, BasePage, Helmet } from '@sm/webassets';\nimport UnlinkedPageContent from './UnlinkedPageContent';\n\nexport default function UnlinkedPage(): JSX.Element {\n const {\n locale: { isEUDC },\n } = useContext(StaticContext);\n return (\n \n \n Create or Link Your Account\n \n \n \n );\n}\n","import { Desc, defineMessages } from '@sm/intl';\nimport { getHelpCenterLink } from '@sm/webassets';\nimport { SamlErrorCode } from '~common/errors/userFacing';\n\ntype ErrorMessage = {\n values: Record;\n desc: Desc;\n};\n\nconst errorDescription = '[Type: Paragraph][Vis: high] - The description of a login failure.';\n\nconst COPY = defineMessages({\n ERROR_CODE: {\n id: 'login.copy.ErrorCode',\n defaultMessage: 'Error code',\n description: '[Type: Label][Vis: high] - The label of the error code to be shown',\n },\n ERROR_TITLE: {\n id: 'login.copy.Title',\n defaultMessage: 'Sorry, not able to log in',\n description: '[Type: Paragraph][Vis: high] - The reason a login failed',\n },\n DEFAULT: {\n id: 'login.copy.Default',\n defaultMessage: 'Ask your admin or contact your Customer Success Manager for help.',\n description: errorDescription,\n },\n GROUP_DOWNGRADED: {\n id: 'login.copy.GroupDowngraded',\n defaultMessage: 'Your group no longer has an Enterprise plan. Contact us for more info.',\n description: errorDescription,\n },\n GROUP_NOT_FOUND: {\n id: 'login.copy.GroupNotFound',\n defaultMessage: 'We’re not able to identify your group information. Ask your admin or contact us for help.',\n description: errorDescription,\n },\n NOT_AFTER_FAILURE: {\n id: 'login.copy.NotAfterFailure',\n defaultMessage: 'We’re unable to authenticate your info at this time. Ask your admin or contact us for help.',\n description: errorDescription,\n },\n NO_NAME_ID_FOUND: {\n id: 'login.copy.NoNameIDFound',\n defaultMessage: 'We’re not able to find your account ID in our system. Ask your admin or contact us for help.',\n description: errorDescription,\n },\n RESPONDENT: {\n id: 'login.copy.Respondent',\n defaultMessage: 'Your account doesn’t have permissions enabled. Contact your admin or IT team for help.',\n description: errorDescription,\n },\n SSO_NOT_ENABLED: {\n id: 'login.copy.SSONotEnabled',\n defaultMessage: 'Single sign-on isn’t enabled for your group. Contact your admin for more info.',\n description: errorDescription,\n },\n USER_PENDING_DELETION: {\n id: 'login.copy.UserPendingDeletion',\n defaultMessage:\n 'The account you’re trying to log in to may be pending deletion. Contact us for more info.',\n description: errorDescription,\n },\n USER_PENDING_REASSIGNMENT: {\n id: 'login.copy.UserPendingReassignment',\n defaultMessage:\n 'The account you’re trying to log in to was reassigned by your admin. The invitation email needs to be accepted before logging in. Contact your admin for more info.',\n description: errorDescription,\n },\n X509_CANNOT_VERIFY: {\n id: 'login.copy.X509CannotVerify',\n defaultMessage:\n 'We’re not able to identify your group information due to an incorrect certificate. Ask your admin or contact us for help.',\n description: errorDescription,\n },\n});\n\nexport const getErrorMessage = (languageCode: string, reason?: SamlErrorCode): ErrorMessage => {\n const contactUsLink = getHelpCenterLink(languageCode, { path: 'contact' });\n let values: Record = {};\n let desc: Desc;\n\n switch (reason) {\n case SamlErrorCode.GROUP_DOWNGRADED:\n case SamlErrorCode.GROUP_HAS_NO_OWNER:\n case SamlErrorCode.GROUP_OWNER_IS_NOT_ENTERPRISE:\n values = { contactUs: contactUsLink };\n desc = COPY.GROUP_DOWNGRADED;\n break;\n case SamlErrorCode.GROUP_NOT_FOUND_BY_CANONICAL_NAME:\n case SamlErrorCode.GROUP_NOT_FOUND_BY_ISSUER:\n case SamlErrorCode.GROUP_NOT_FOUND:\n desc = COPY.GROUP_NOT_FOUND;\n break;\n case SamlErrorCode.NOT_AFTER_FAILURE:\n case SamlErrorCode.NOT_BEFORE_FAILURE:\n case SamlErrorCode.SAML_RESPONSE_ALREADY_SEEN:\n desc = COPY.NOT_AFTER_FAILURE;\n break;\n case SamlErrorCode.NO_NAME_ID_FOUND:\n desc = COPY.NO_NAME_ID_FOUND;\n break;\n case SamlErrorCode.RESPONDENT_ONLY:\n desc = COPY.RESPONDENT;\n break;\n case SamlErrorCode.SSO_NOT_ENABLED:\n case SamlErrorCode.GROUP_NOT_SSO_ENABLED:\n desc = COPY.SSO_NOT_ENABLED;\n break;\n case SamlErrorCode.USER_PENDING_DELETION:\n case SamlErrorCode.USER_IS_PENDING_DELETION:\n values = { contactUs: contactUsLink };\n desc = COPY.USER_PENDING_DELETION;\n break;\n case SamlErrorCode.USER_PENDING_REASSIGNMENT:\n case SamlErrorCode.USER_IS_PENDING_REASSIGNMENT:\n desc = COPY.USER_PENDING_REASSIGNMENT;\n break;\n case SamlErrorCode.X509_CANNOT_VERIFY:\n case SamlErrorCode.X509_MISMATCH:\n desc = COPY.X509_CANNOT_VERIFY;\n break;\n default:\n desc = COPY.DEFAULT;\n break;\n }\n\n return {\n desc,\n values,\n };\n};\n\nexport default COPY;\n","import React, { useContext } from 'react';\nimport { FiveHundredErrorPage, StaticContext } from '@sm/webassets';\nimport { t, T } from '@sm/intl';\n\nimport getQueryParam from '~app/helpers/queryParams';\nimport { QueryParams } from '~common/entities/smParams';\nimport { SamlErrorCode } from '~common/errors/userFacing';\nimport COPY, { getErrorMessage } from './copy';\n\nexport function getSamlErrorCode(errorReason: string | undefined): SamlErrorCode | undefined {\n if (errorReason && Object.values(SamlErrorCode).includes(errorReason)) {\n return errorReason as SamlErrorCode;\n }\n\n return undefined;\n}\n\nexport default function ErrorPage(): JSX.Element {\n const {\n environment: { languageCode },\n pageRequestId,\n } = useContext(StaticContext);\n const errorReason = getQueryParam(QueryParams.ERROR);\n const samlErrorCode = getSamlErrorCode(errorReason);\n\n if (samlErrorCode) {\n const { desc, values } = getErrorMessage(languageCode, samlErrorCode);\n\n return (\n }\n />\n );\n }\n\n return ;\n}\n","import loadable from '@loadable/component';\nimport { FourOhFourError, GlobalThemeProvider } from '@sm/webassets';\nimport { WrenchTheme } from '@wds/styles';\nimport { Route, Switch, useLocation } from 'react-router-dom';\nimport React from 'react';\n\nimport StartAuthTransactionPage from '~app/pages/login/StartAuthTransactionPage';\nimport HandleAuthCallbackPage from '~app/pages/login/HandleAuthCallbackPage';\nimport LoadingPage from './pages/login/LoadingPage/LoadingPage';\nimport UnlinkedPage from './pages/login/UnlinkedPage';\nimport LoginErrorPage from './pages/login/ErrorPage';\nimport SHARED_ROUTES from './pages/sharedRoutes';\nimport TeamRoutes from './pages/team/routes';\n\n// Team join pages go in their own separate chunk\nconst TeamPage = loadable(\n async () => import(/* webpackChunkName: 'loginweb-team-join' */ './pages/team/TeamBasePage'),\n {\n fallback: {}} />,\n }\n);\n\n// Survey share interstitial page goes in a separate chunk, since it's off the main path\nconst SurveyShareInterstitialPage = loadable(\n async () =>\n import(/* webpackChunkName: 'loginweb-survey-share' */ './pages/survey-share/SurveyShareInterstitialPage'),\n {\n fallback: {}} />,\n }\n);\n\nconst App = (): JSX.Element => {\n const { search } = useLocation();\n\n return (\n \n \n \n \n \n\n \n {/*\n We have a single callback path registered with the auth server. It routes to distinct\n login flows based on the query param. Determine which flow we're in.\n - /login/callback?team-join => TeamPage\n - /login/callback => normal login/sign-up\n */}\n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n );\n};\n\nexport default App;\n","type Messages = { [K: string]: string };\n\nconst DEFAULT_LOCALE = 'en-US';\nconst FALLBACK = {};\n\nexport default async function getLocaleMessages(locale: string): Promise {\n if (locale === DEFAULT_LOCALE) {\n // Default locale will use the default fallback strings\n return FALLBACK;\n }\n try {\n const webassetsTranslationsModule: Messages = await import(\n /* webpackChunkName: \"i18n/webassets/[request]\" */ `@sm/webassets/dist/locales/translated/${locale}`\n );\n const appTranslationsModule: Messages = await import(\n /* webpackChunkName: \"i18n/[request]\" */ `../../locales/translated/${locale}`\n );\n return {\n ...webassetsTranslationsModule,\n ...appTranslationsModule,\n };\n } catch (err: unknown) {\n return FALLBACK;\n }\n}\n","import 'regenerator-runtime/runtime';\nimport 'core-js/stable';\n\nimport { NormalizedCacheObject } from 'apollo-cache-inmemory';\nimport { ApolloClient } from 'apollo-client';\n\nimport createBrowserApolloClient from '@sm/apollo-clients/dist/browser';\nimport { clientErrorHandler } from '@sm/webassets';\n\nimport getGraphQLFragmentMatcher from './helpers/fragmentMatcher';\nimport { bootstrapSMWeb, createApp, getLocaleMessages, mount } from './utils';\n\nconst { staticData, environ, locale } = bootstrapSMWeb(window);\nconst {\n pageRequestId,\n 'client-config': { appName, appVersion, graphQLUri },\n gql: { gqlCache = {} } = {},\n} = staticData;\n\nconst apolloClient: ApolloClient = createBrowserApolloClient({\n uri: graphQLUri,\n cacheHydration: gqlCache,\n pageRequestId,\n fragmentMatcherFn: getGraphQLFragmentMatcher,\n linkOptions: {\n credentials: 'include',\n batchInterval: 30,\n },\n metadata: { appName, appVersion },\n availableLoggedOutPaths: ['/lo-graphql/teamJoin'],\n});\n\ngetLocaleMessages(locale)\n .then(createApp(environ, staticData, apolloClient))\n .then(mount(document))\n .catch(clientErrorHandler.logError);\n","import { initializeClientErrorHandler } from '@sm/webassets';\n\nexport default function bootstrapSMWeb(window: Window): SMConfig {\n const staticData = window.SM?.__LOAD_PAYLOAD_CACHE__;\n if (!staticData) {\n throw new Error('__LOAD_PAYLOAD_CACHE__ not found in window.SM');\n }\n\n initializeClientErrorHandler();\n\n const { environment: environ } = staticData;\n const locale = environ?.slLanguageLocale;\n\n if (!locale) {\n throw new Error('Misconfigured SMEnviron');\n }\n\n return {\n locale,\n environ,\n staticData,\n };\n}\n","import { IntrospectionFragmentMatcher } from 'apollo-cache-inmemory';\nimport introspectionQueryResultData from './fragmentTypes';\n\n/**\n * Get the GraphQL fragment matcher\n * @memberof module:@sm/utils\n * @returns {IntrospectionFragmentMatcher} IntrospectionFragmentMatcher\n */\nexport default function getGraphQLFragmentMatcher(): IntrospectionFragmentMatcher {\n return new IntrospectionFragmentMatcher({\n introspectionQueryResultData,\n });\n}\n","import SMEnviron from '@sm/environ';\nimport { L10nProvider } from '@sm/intl';\nimport { LanguageCode } from '@sm/locale';\nimport { ErrorBoundary, FiveHundredErrorPage, HelmetProvider, StaticProvider } from '@sm/webassets';\nimport { NormalizedCacheObject } from 'apollo-cache-inmemory';\nimport { ApolloClient } from 'apollo-client';\nimport React, { ReactElement } from 'react';\nimport { ApolloProvider } from 'react-apollo';\nimport { Router } from 'react-router-dom';\nimport App from '../App';\nimport history from './history';\n\nexport default function createApp(\n environ: SMEnviron,\n staticData: { [K in string]: unknown },\n apolloClient: ApolloClient\n): (msgs: { [K: string]: string }) => ReactElement {\n return (localeMessages: { [K: string]: string }) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","import { ReactElement } from 'react';\nimport { hydrate, render } from 'react-dom';\n\ntype DocumentLike = {\n getElementById(id: string): HTMLElement | null;\n};\n\nexport default function mount(document: DocumentLike): (app: ReactElement) => void {\n const target = document.getElementById('reactApp');\n if (!target) {\n throw new Error('App node not found in document');\n }\n\n return (app: ReactElement) => {\n if (target.innerHTML.trim().length) {\n return hydrate(app, target);\n }\n return render(app, target);\n };\n}\n","// Interfaces for the client side handler code.\n\nimport { UtSourceParams } from '~common/entities/user';\n\n/**\n * Any additional data stored by the client that is associated with\n * a particular login transaction.\n *\n * - `ep`: \"end page\"; where the user is redirected to after auth\n * - `show`: what auth experience the user should first get on LoginApp\n * - `forceAccountCreation`: true to create a SurveyMonkey account instead of showing the\n * \"unlinked 3rd party account\" page when possible.\n */\nexport type AppState = {\n ep?: string;\n show?: SmShow;\n app?: SmApp;\n forceAccountPicker?: boolean;\n forceAccountCreation?: boolean;\n sm?: string;\n sm_allow_create_user?: string;\n authUrl?: string; // The complete original login URL that the client came into the transaction with.\n} & UtSourceParams;\n\n/** Possible values for the `sm.show` query parameter */\nexport enum SmShow {\n SIGNUP = 'sign-up',\n LOGIN = 'log-in',\n FORGOT_PASSWORD = 'forgot-password',\n}\n\n/** Possible values for the `sm.app` query parameter */\nexport enum SmApp {\n CORE = 'core',\n CONTRIBUTE = 'contribute',\n REWARDS = 'rewards',\n MOBILE = 'mobile',\n}\n","import { createURL } from '@sm/utils';\n\n/**\n * Navigates to the given base URL and query.\n */\nexport default function navigateTo(url: string, params?: Record): void {\n window.location.replace(createURL(url, params));\n}\n","import { IdToken } from '@auth0/auth0-spa-js';\n\nconst ID_TOKEN_NAMESPACE = 'unlinkedState';\nconst EP_PARAM_NAMESPACE = 'ep';\nconst SM_PARAM_NAMESPACE = 'sm';\nconst SM_ALLOW_CREATE_PARAM_NAMESPACE = 'sm_allow_create_user';\n\nfunction stash(namespace: string, value: string): void {\n window.sessionStorage.setItem(namespace, value);\n}\n\nfunction fetch(namespace: string): string | null {\n return window.sessionStorage.getItem(namespace);\n}\n\nfunction remove(namespace: string): void {\n window.sessionStorage.removeItem(namespace);\n}\n\nexport function stashIdToken(idToken: IdToken): void {\n stash(ID_TOKEN_NAMESPACE, JSON.stringify(idToken));\n}\n\nexport function fetchIdToken(): IdToken | null {\n const token = fetch(ID_TOKEN_NAMESPACE);\n if (!token) {\n return null;\n }\n return JSON.parse(token) as IdToken;\n}\n\nexport function removeIdToken(): void {\n remove(ID_TOKEN_NAMESPACE);\n}\n\nexport function stashEp(ep: string): void {\n stash(EP_PARAM_NAMESPACE, ep);\n}\n\nexport function fetchAndRemoveEp(): string | null {\n const ep = fetch(EP_PARAM_NAMESPACE);\n remove(EP_PARAM_NAMESPACE);\n return ep;\n}\n\nexport function stashSm(sm: string): void {\n stash(SM_PARAM_NAMESPACE, sm);\n}\n\nexport function fetchAndRemoveSm(): string | null {\n const sm = fetch(SM_PARAM_NAMESPACE);\n remove(SM_PARAM_NAMESPACE);\n return sm;\n}\n\nexport function stashSmAllow(sm_allow_create_user: string): void {\n stash(SM_ALLOW_CREATE_PARAM_NAMESPACE, sm_allow_create_user);\n}\n\nexport function fetchAndRemoveSmAllow(): string | null {\n const sm_allow_create_user = fetch(SM_ALLOW_CREATE_PARAM_NAMESPACE);\n remove(SM_ALLOW_CREATE_PARAM_NAMESPACE);\n return sm_allow_create_user;\n}\n","import { IdToken } from '@auth0/auth0-spa-js';\nimport { clientErrorHandler } from '@sm/webassets';\nimport { UtSourceParams } from 'src/common/entities/user';\nimport { Auth0Strategy, getStrategyBySub } from '~common/entities/auth0Strategy';\nimport { FormattedError, SamlErrorCode } from '~common/errors/userFacing';\nimport { AppState, SmApp } from '../handlers/handlers';\nimport { getAmplitudeIds, waitForAmplitude } from '~app/utils/amplitudeHelpers';\nimport { AmplitudeSessionInfo } from '~common/helpers/amplitudeSession';\n\n// The types of errors that the server can return from POST /api/v1/sessions\nexport class IdentityAlreadyLinkedError extends Error {}\n\nexport class SamlError extends Error {\n code: SamlErrorCode;\n\n constructor(detail: string, code: SamlErrorCode) {\n super(detail);\n this.code = code;\n }\n}\n\nexport class IdentityNotLinkedError extends Error {\n /**\n * Whether the email asserted by the social identity is in use by an existing account\n */\n emailInUse: boolean;\n\n constructor(emailInUse = false) {\n super();\n this.emailInUse = emailInUse;\n }\n}\nexport class InvalidJWTError extends Error {}\nexport class InvalidInviteError extends Error {}\n\nexport enum SessionResult {\n /** Could not create a session because no account was linked. User intervention is needed. */\n UNLINKED = 1,\n\n /** Could not create a session because of issue detected with the JWT (with no further detail, intentionally) */\n INVALID_JWT = 2,\n\n /** Existing user successfully logged in */\n LOGGED_IN = 3,\n\n /** New user created and then logged in */\n CREATED = 4,\n\n /** User login via SSO */\n SSO_LOGIN = 5,\n}\n\n/** Which type of account we'd prefer to log into */\nexport type AccountTypePreference = 'contribute' | 'rewards' | undefined;\n\n/** Return value from sucessful POST /sessions call */\ntype SessionResponseBody = {\n user: {\n id: string;\n };\n redirectUrl?: string;\n};\n\nfunction toPref(smApp?: SmApp): AccountTypePreference {\n switch (smApp) {\n case undefined:\n case SmApp.CORE:\n case SmApp.MOBILE:\n return undefined;\n case SmApp.CONTRIBUTE:\n return 'contribute';\n case SmApp.REWARDS:\n return 'rewards';\n }\n}\n\nexport class SessionClient {\n readonly endpointUrl = '/login/api/v1/sessions';\n\n private static getSignupParams(appState: AppState): Pick {\n const { ut_source, ut_source2 } = appState;\n return { ut_source, ut_source2 };\n }\n\n /**\n * @returns Whether we should create a SurveyMonkey account linked to the user's token subject\n * without prompting the user\n */\n private static shouldCreateAccount(\n appState: AppState,\n claims: IdToken,\n notLinkedError: IdentityNotLinkedError\n ): boolean {\n // Create an account when the user authenticated via Auth0 strategy (i.e. email+password).\n // This is the typical case when a user has just created an Auth0 email identity.\n if (getStrategyBySub(claims.sub) === Auth0Strategy.Auth0) {\n return true;\n }\n\n // Create an account if the 'force' param is set, and the email isn't already in use\n if (appState.forceAccountCreation && !notLinkedError.emailInUse) {\n return true;\n }\n\n return false;\n }\n\n private static handleError(body: { errors: FormattedError[] }): never {\n const {\n errors: [serverError],\n } = body;\n\n if (Object.values(SamlErrorCode).includes(serverError.code)) {\n throw new SamlError(serverError.detail, serverError.code as unknown as SamlErrorCode);\n }\n\n switch (serverError.code) {\n case 'identity_already_linked':\n throw new IdentityAlreadyLinkedError();\n case 'identity_not_linked':\n throw new IdentityNotLinkedError(serverError.extra === 'email_in_use_by_password_account');\n case 'invalid_invite':\n throw new InvalidInviteError();\n case 'unauthorized':\n // The remote UserService rejected the JWT\n throw new InvalidJWTError();\n case 'invalid_request':\n if (\n serverError.source &&\n serverError.source.location === 'body' &&\n serverError.source.pointer === '.id_token'\n ) {\n // Shallow validation failed (probably because the JWT expired)\n throw new InvalidJWTError();\n }\n break;\n default:\n break; // will throw generic error below\n }\n\n const error = new Error('Failed to create session');\n clientErrorHandler.logError(error);\n throw error;\n }\n\n /**\n * Authenticate using the identity token, by first attempting to login and creating a new SM user\n * if necessary.\n *\n * @throws `IdentityAlreadyLinkedError` if the identity is already linked to an SM user.\n * @throws Generic error on other failure.\n * @returns A SessionResult and optionally a detailed error field\n */\n async createByLogin({\n claims,\n appState,\n smAllowCreateUser,\n }: {\n claims: IdToken;\n appState: AppState;\n smAllowCreateUser?: string;\n }): Promise<{ result: SessionResult; error?: IdentityNotLinkedError; redirectUrl?: string }> {\n const idToken = claims.__raw;\n\n // Try to login\n let notLinkedError: IdentityNotLinkedError | undefined;\n try {\n const response = await this.postSessions({\n idToken,\n action: 'login',\n preference: toPref(appState.app),\n authUrl: appState.authUrl,\n });\n\n if (response.redirectUrl) {\n return { result: SessionResult.SSO_LOGIN, redirectUrl: response.redirectUrl };\n }\n\n return { result: SessionResult.LOGGED_IN };\n } catch (e: unknown) {\n if (!(e instanceof IdentityNotLinkedError)) {\n throw e;\n }\n notLinkedError = e;\n }\n\n // Identity is not linked to an SM account. Check if we should create one.\n if (SessionClient.shouldCreateAccount(appState, claims, notLinkedError)) {\n const result = await this.createBySignup({ claims, appState, smAllowCreateUser });\n return { result };\n }\n\n // Identity not linked and we couldn't create an account for them. Just return unlinked, and\n // let the user decide how to proceed.\n return { result: SessionResult.UNLINKED, error: notLinkedError };\n }\n\n /**\n * Authenticate using the identity token, by creating a new SM user on the fly.\n *\n * @param claims The ID token\n * @param appState\n * @param inviteToken Optional invite token if user is being created in the context of\n * a team invite workflow\n *\n * @throws `IdentityAlreadyLinkedError` if the identity is already linked to an SM user.\n * @throws Generic error on other failure.\n */\n async createBySignup({\n claims,\n appState,\n inviteToken = undefined,\n smAllowCreateUser = undefined,\n }: {\n claims: IdToken;\n appState: AppState;\n inviteToken?: string;\n smAllowCreateUser?: string;\n }): Promise {\n const idToken = claims.__raw;\n\n try {\n await this.postSessions({\n idToken,\n action: 'signup',\n signupParams: SessionClient.getSignupParams(appState),\n inviteToken,\n smAllowCreateUser,\n authUrl: appState.authUrl,\n });\n return SessionResult.CREATED;\n } catch (e: unknown) {\n if (e instanceof InvalidJWTError) {\n return SessionResult.INVALID_JWT;\n }\n throw e;\n }\n }\n\n /**\n * Authenticate an existing SM user using the identity token.\n *\n * @param idToken\n * @throws IdentityNotLinkedError\n * @throws InvalidJWTError\n */\n async login(idToken: IdToken): Promise {\n return this.postSessions({ action: 'login', idToken: idToken.__raw });\n }\n\n /**\n * Switch to a linked account by the active session.\n *\n * @param targetUserId Id of the linked user account being switched to\n */\n async switch(targetUserId: string): Promise {\n return this.postSessions({ action: 'switch', targetUserId });\n }\n\n private async postSessions(\n opts:\n | {\n action: 'login';\n idToken: string;\n preference?: AccountTypePreference;\n authUrl?: string;\n }\n | {\n action: 'signup';\n idToken: string;\n signupParams: UtSourceParams;\n inviteToken?: string;\n smAllowCreateUser?: string;\n authUrl?: string;\n }\n | { action: 'switch'; targetUserId: string }\n ): Promise {\n let ampIds: AmplitudeSessionInfo = {};\n if (opts.action === 'login' || opts.action === 'signup') {\n await waitForAmplitude();\n ampIds = getAmplitudeIds();\n }\n\n const resp = await fetch(this.endpointUrl, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n action: opts.action,\n id_token: 'idToken' in opts ? opts.idToken : undefined,\n preference: opts.action === 'login' ? opts.preference : undefined,\n signup_params: opts.action === 'signup' ? opts.signupParams : undefined,\n invite_token: opts.action === 'signup' ? opts.inviteToken : undefined,\n sm_allow_create_user: opts.action === 'signup' ? opts.smAllowCreateUser : undefined,\n target_user_id: opts.action === 'switch' ? opts.targetUserId : undefined,\n auth_url: opts.action === 'login' || opts.action === 'signup' ? opts.authUrl : undefined,\n sm_amp_sid: ampIds.sessionId ?? undefined,\n sm_amp_did: ampIds.deviceId ?? undefined,\n }),\n });\n\n if (resp.status === 200) {\n return (await resp.json()) as SessionResponseBody;\n }\n\n return SessionClient.handleError(await resp.json());\n }\n}\n\nexport default (): SessionClient => new SessionClient();\n","import { IdToken } from '@auth0/auth0-spa-js';\nimport { fetchIdToken } from '../../../helpers/sessionStorage';\nimport { SocialName } from './types';\n\n/**\n * Given an id token from a social login, returns the display name of the social IDP.\n *\n * @param idToken\n * @returns The social IDP name. The returned values are brand/company names, so they don't\n * need to be translated.\n */\nexport function getSocialName(idToken: IdToken): SocialName {\n // loose type-check that idToken _is_ an IdToken\n if (typeof idToken.sub === 'undefined') {\n throw new Error('idToken not in expected IdToken shape');\n }\n\n const { sub } = idToken;\n\n // verify sub one of expected social providers\n let socialName: SocialName;\n switch (sub.split('|')[0]) {\n case 'google-oauth2':\n socialName = 'Google';\n break;\n case 'facebook':\n socialName = 'Facebook';\n break;\n case 'windowslive':\n socialName = 'Microsoft';\n break;\n case 'linkedin':\n socialName = 'LinkedIn';\n break;\n case 'apple':\n socialName = 'Apple';\n break;\n default:\n throw new Error('Unidentifiable third party social provider');\n }\n return socialName;\n}\n\nexport default function getAndValidateIdToken(): { idToken: IdToken; socialName: SocialName } {\n // verify token JSON-serializable and of expected shape\n let idToken: IdToken | null;\n try {\n idToken = fetchIdToken();\n } catch (error: unknown) {\n throw new Error('idToken not in expected JSON-serializable format');\n }\n if (idToken === null) {\n throw new Error('No id token present in app state');\n }\n\n const socialName = getSocialName(idToken);\n\n return { idToken, socialName };\n}\n","// Routes shared by the login and team pages\n\nconst SHARED_ROUTES = Object.freeze({\n /** Our callback URL that is allow-listed on the auth server */\n CALLBACK: '/login/callback',\n});\n\nexport default SHARED_ROUTES;\n","const ROUTES = Object.freeze({\n LANDING: '/login/team/join/:inviteToken',\n CREATE: '/login/team/join/:inviteToken/create',\n CONVERT: '/login/team/join/:inviteToken/convert',\n\n REASSIGN_LANDING: '/login/team/reassign/:inviteToken',\n REASSIGN_CONFIRM: '/login/team/reassign/:inviteToken/confirm',\n});\n\nexport default ROUTES;\n","/* Helper functions for parsing Amplitude session. These are consumed by BOTH client and server code */\n\nexport type AmplitudeSessionInfo = {\n deviceId?: string;\n sessionId?: number;\n};\n\nfunction atob(input: string): string {\n // This works in the browser or Node.js\n return typeof window !== 'undefined' ? window.atob(input) : Buffer.from(input, 'base64').toString('latin1');\n}\n\nexport function getAmplitudeStorageKey(amplitudeToken: string): string {\n // the amplitude SDK names its storage key `AMP_`\n return `AMP_${amplitudeToken.substring(0, 10)}`;\n}\n\n/**\n * Parse Amplitude session from a string\n * @param json A string containing JSON data\n */\nexport function parseAmplitudeSession(json: string | undefined | null): AmplitudeSessionInfo {\n if (typeof json !== 'string') {\n return {};\n }\n\n try {\n const parsed = JSON.parse(json);\n return {\n deviceId: parsed.deviceId,\n sessionId: parsed.sessionId,\n };\n } catch (e: unknown) {\n // give up\n return {};\n }\n}\n\n/**\n * Parse Amplitude session from cookie\n *\n * @param cookies Object containing cookies as name-value pairs\n */\nexport default function parseAmplitudeCookie(\n cookies: Record,\n amplitudeToken: string\n): AmplitudeSessionInfo {\n const storageKey = getAmplitudeStorageKey(amplitudeToken);\n\n let cookieData = cookies[storageKey];\n if (!cookieData) {\n return {};\n }\n\n // Normalize it before parsing\n cookieData = decodeURIComponent(atob(cookieData));\n\n return parseAmplitudeSession(cookieData);\n}\n","import { MetricsTracker, USER_EVENTS } from '@sm/metrics';\nimport { parse as parseCookie } from 'cookie';\nimport parseAmplitudeCookie, {\n AmplitudeSessionInfo,\n getAmplitudeStorageKey,\n parseAmplitudeSession,\n} from '~common/helpers/amplitudeSession';\n\n/* Client-side Amplitude helper functions */\n\n// How long we'll wait for Amplitude SDK to initialize before giving up\nconst amplitudeInitTimeoutMs = 150;\n\n// Time between checks\nconst pollIntervalMs = 50;\n\n/** Parse Amplitude session from local storage */\nfunction parseAmplitudeStorage(s: Storage, amplitudeToken: string): AmplitudeSessionInfo {\n const storageKey = getAmplitudeStorageKey(amplitudeToken);\n const data = s.getItem(storageKey);\n return parseAmplitudeSession(data);\n}\n\n/**\n * Extracts the device and session IDs from the Amplitude cookie\n *\n * @returns An object containing the extracted device/session IDs\n */\nexport function getAmplitudeIds(): AmplitudeSessionInfo {\n const amplitudeToken = MetricsTracker?.getConfig()?.amplitudeToken;\n\n if (!amplitudeToken) {\n return {};\n }\n\n // Check for cookie storage\n const cookieTokens = parseCookie(document.cookie);\n const fromCookie = parseAmplitudeCookie(cookieTokens, amplitudeToken);\n\n if (fromCookie.deviceId && fromCookie.sessionId) {\n // Use the cookie values\n return fromCookie;\n }\n\n // Cookie not found, try localStorage fallback\n return parseAmplitudeStorage(window.localStorage, amplitudeToken);\n}\n\n/**\n * Polls a predicate function until it returns true or timeout elapses.\n *\n * @resolves To `'ok'` if condition returned true, or `'timeout'` if timeout elapsed\n * @rejects On runtime error in `condition()`\n */\nasync function waitFor(predicate: () => boolean): Promise<'ok' | 'timeout'> {\n return new Promise((resolve, reject) => {\n const timeoutId = setTimeout(() => resolve('timeout'), amplitudeInitTimeoutMs);\n\n const check = (): void => {\n try {\n if (predicate()) {\n clearTimeout(timeoutId);\n resolve('ok');\n } else {\n setTimeout(check, pollIntervalMs);\n }\n } catch (e: unknown) {\n const err = e as Error;\n clearTimeout(timeoutId);\n reject(err);\n }\n };\n\n setTimeout(check, 0); // start on next tick\n });\n}\n\n/**\n * This function forces the Amplitude SDK to start up, and returns once it has written the\n * session ID and device ID to storage. If we can't find the SID/DID in a reasonable time,\n * give up and return so we don't block the user's transaction.\n *\n * ⚠️ NOTE: this won't work in all cases: in particular, users who haven't yet consented to functional\n * cookies will not get an Amp session. But given the current @sm/metrics design this is the best\n * we can do.\n */\nexport async function waitForAmplitude(): Promise {\n // Track a useless event, this triggers initialization of the Amplitude SDK as a side effect\n MetricsTracker.track({\n name: USER_EVENTS.VIRTUAL_PAGE_VIEW,\n data: {\n amplitudeEvent: 'login init',\n },\n });\n\n // Poll until we find a session or our timeout elapses\n await waitFor(() => !!getAmplitudeIds().sessionId);\n}\n","import { createBrowserHistory } from 'history';\n\nexport default createBrowserHistory();\n","import asEnum from '~common/helpers/asEnum';\n\n/**\n * An Auth0 login strategy. The strategy appears in Auth0-issued ID Tokens as the leftmost\n * segment of the `sub` claim.\n *\n * Example sub claims:\n * - `auth0|deadbeef`\n * - `facebook|111222333444`\n * - `samlp|bigcorp|user@email.com`\n */\nexport enum Auth0Strategy {\n Apple = 'apple',\n Auth0 = 'auth0',\n Facebook = 'facebook',\n Google = 'google-oauth2',\n LinkedIn = 'linkedin',\n Microsoft = 'windowslive',\n Saml = 'samlp',\n}\n\nexport function isSocial(s: Auth0Strategy): boolean {\n switch (s) {\n case Auth0Strategy.Apple:\n case Auth0Strategy.Facebook:\n case Auth0Strategy.Google:\n case Auth0Strategy.LinkedIn:\n case Auth0Strategy.Microsoft:\n return true;\n default:\n return false;\n }\n}\n\n/** Gets the Auth0 login strategy from a `sub` claim */\nexport function getStrategyBySub(sub: string): Auth0Strategy {\n const [strategyPart] = sub.split('|');\n return asEnum(Auth0Strategy, strategyPart);\n}\n","/** The names of known \"sm.\" query params that can be added to the auth URL */\nexport enum SmParams {\n SM_APP = 'sm.app',\n SM_COUNTRY = 'sm.country',\n SM_EMAIL = 'sm.email',\n SM_FORCE_ACCOUNT_PICKER = 'sm.force_account_picker',\n SM_INVITE_TOKEN = 'sm.invite_token',\n SM_LOCALE = 'sm.locale',\n SM_ORIGIN = 'sm.origin',\n SM_SHOW = 'sm.show',\n // amplitude device ID\n SM_AMP_DID = 'sm.amp_did',\n // amplitude session ID\n SM_AMP_SID = 'sm.amp_sid',\n}\n\n/** Possible values for the sm.origin param */\nexport enum SmOrigin {\n SURVEYENDPAGE = 'surveyendpage',\n}\n\n/** Inbound query params that we understand */\nexport enum QueryParams {\n CONNECTION = 'connection',\n EMAIL_IN_USE = 'email_in_use',\n ERROR = 'error',\n ERROR_DESCRIPTION = 'error_description',\n EP = 'ep',\n SM = 'sm',\n SM_ALLOW_CREATE_USER = 'sm_allow_create_user',\n SM_APP = 'sm.app',\n SM_LOCALE = 'sm.locale',\n SM_SHOW = 'sm.show',\n UT_SOURCE = 'ut_source',\n UT_SOURCE2 = 'ut_source2',\n}\n\nexport default SmParams;\n","/* Error types that may be observed by the client */\n\nexport enum SamlErrorCode {\n // Usersvc codes\n DOMAIN_LOCKED = 'domain_locked',\n EMAIL_ROLE_BASED = 'email_role_based',\n GROUP_DOWNGRADED = 'group_downgraded',\n GROUP_HAS_NO_OWNER = 'group_has_no_owner',\n GROUP_NOT_FOUND = 'group_not_found',\n GROUP_NOT_FOUND_BY_CANONICAL_NAME = 'group_not_found_by_canonical_name',\n GROUP_NOT_FOUND_BY_ISSUER = 'group_not_found_by_issuer',\n GROUP_NOT_SSO_ENABLED = 'group_not_sso_enabled',\n GROUP_OWNER_IS_NOT_ENTERPRISE = 'group_owner_is_not_enterprise',\n INVALID_EMAIL = 'invalid_email',\n INVALID_EMAIL_IN_USER_ATTRIBUTES = 'invalid_email_in_user_attributes',\n NOT_AFTER_FAILURE = 'not_after_failure',\n NOT_BEFORE_FAILURE = 'not_before_failure',\n NO_NAME_ID_FOUND = 'no_nameID_found',\n RESPONDENT_ONLY = 'respondent_only',\n REQUEST_DENIED = 'request_denied',\n SAML_RESPONSE_ALREADY_SEEN = 'saml_response_already_seen',\n SSO_NOT_ENABLED = 'sso_not_enabled',\n USER_PENDING_DELETION = 'user_pending_deletion',\n USER_IS_PENDING_DELETION = 'user_is_pending_deletion',\n USER_PENDING_REASSIGNMENT = 'user_pending_reassignment',\n USER_IS_PENDING_REASSIGNMENT = 'user_is_pending_reassignment',\n X509_CANNOT_VERIFY = 'x509_cannot_verify',\n X509_MISMATCH = 'x509_mismatch',\n\n // Non Usersvc codes\n CONNECTION_DISABLED = 'connection_disabled',\n IDP_INITIATED_NOT_ENABLED = 'idp_init_not_enabled',\n}\n\nexport type ErrorCode =\n | 'accept_forbidden'\n | 'content_type_not_acceptable'\n | 'data_center_mismatch'\n | 'identity_already_linked'\n | 'identity_not_linked'\n | 'internal_error'\n | 'invalid_invite'\n | 'invalid_request'\n | 'method_not_allowed'\n | 'not_enough_seats'\n | 'profile'\n | 'profile_not_found'\n | 'multiple_profiles_found'\n | 'rate_limit_exceeded'\n | 'resource_not_found'\n | 'temporarily_unavailable'\n | 'unauthorized'\n | 'user_already_in_group'\n | 'user_is_hipaa';\n\ntype ErrorSource =\n | {\n location: 'body';\n pointer: string;\n }\n | {\n location: 'headers';\n header: string;\n }\n | {\n location: 'path';\n }\n | {\n location: 'query';\n parameter: string;\n };\n\nexport type FormattedError = {\n code: ErrorCode | SamlErrorCode;\n detail: string;\n source?: ErrorSource;\n retryAfter?: string;\n isEmailInUse?: boolean;\n extra?: string;\n};\n","/**\n * @returns a string value if it belongs to the enum.\n * @throws if the value is not a member of the enum.\n */\nexport default function asEnum(\n enumObject: { [K in T]: TEnumValue },\n value: unknown\n): TEnumValue {\n const isOk = (v: unknown): v is TEnumValue => Object.values(enumObject).includes(value);\n\n if (isOk(value)) {\n return value;\n }\n\n throw new Error(`Value \"${value}\" is not a member of enum [${Object.values(enumObject).join(',')}]`);\n}\n","module.exports = jsdom;"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","t","keys","Object","module","exports","useStyles","createUseStyles","theme","mediaQueryMinScreenSm","breakpoints","sm","ctaContainer","marginBottom","spacing","width","spacer","borderRight","palette","border","main","CTASplitter","ctas","prompt","swapOrder","_useStyles","promptText","React","Box","mb","Typography","align","variant","justify","length","Responsive","minWidth","matches","assign","mt","mx","flexJustify","display","cta","caption","index","Fragment","key","className","flexDirection","__schema","types","kind","name","possibleTypes","getQueryParam","URLSearchParams","window","location","search","get","undefined","hasQueryParam","has","getSmShow","showParam","QueryParams","pathname","includes","SmShow","getSmApp","value","asEnum","SmApp","getSmForceAccontPicker","SmParams","getForceAccountCreation","replace","connection","strategy","Auth0Strategy","isSocial","async","replaceUrl","url","login","auth0Config","ep","language","country","smAllowCreateUserCookieVal","ssoCanonicalName","_client$loginWithRedi","_amplitudeIds$deviceI","_amplitudeIds$session","domain","clientId","now","client","Auth0Client","authorizationParams","redirect_uri","hostname","nowProvider","smAllowCreateUser","queryObj","getAllQueryParams","params","obj","create","forEach","getConnection","_ref","_getQueryParam","stashEp","stashSm","stashSmAllow","waitForAmplitude","appState","buildAppState","show","app","forceAccountPicker","ut_source","ut_source2","authUrl","toString","forceAccountCreation","lang","amplitudeIds","getAmplitudeIds","loginWithRedirect","openUrl","_objectSpread","deviceId","sessionId","catch","console","error","BaseLoadingPage","children","pageId","isInitialRender","useInitialRender","useRef","useEffect","current","_useContext","useContext","StaticContext","user","environment","clientConfig","countryCode","gtmId","loggingAPIPath","dataAnalyticsAPIPath","amplitudeToken","MetricsTracker","legacyWeb","AbstractHandler","constructor","nextHandler","setNext","handler","this","handle","errorDescription","ConnectionDisabledHandler","SamlErrorCode","super","IDPInitiatedHandler","InvalidCertHandler","startsWith","InvalidThumprintHandler","LoadingPage","_useState","useState","setError","_slicedToArray","handleError","validState","message","auth0Error","errorReason","errorDesc","parse","idpInitiated","invalidCert","invalidThumbprint","connectionDisabled","decodeURIComponent","SamlError","_auth0Error$code","_auth0Error","navigateTo","result","isPromise","v","ProgressCircle","continuous","useAuth0Config","_useContext$clientCo","auth0","StartAuthTransactionPage","_useContext$environme","languageCode","useParams","cleanObject","target","copy","entries","auth0Callback","config","sm_allow_create_user","_await$handleRedirect","handleRedirectCallback","claims","getIdTokenClaims","clientErrorHandler","_await$SessionClient$","SessionClient","createByLogin","redirectUrl","SessionResult","handleSsoSessionResult","handleLoggedInOrCreatedSessionResult","joined","force_account_picker","handleUnlinkedSessionResult","utSource","utSource2","emailInUse","stashIdToken","email_in_use","HandleAuthCallbackPage","isSso","callback","_fetchAndRemoveEp","_fetchAndRemoveSm","fetchAndRemoveEp","fetchAndRemoveSm","_fetchAndRemoveSmAllo","fetchAndRemoveSmAllow","displayName","unlinkedWindow","maxWidth","backgroundColor","background","UnlinkedWindow","addOnTop","CaptiveWindow","logoPosition","buttonOverride","padding","UnlinkedButtonOption","isDisabled","showSpinner","titleText","onClick","href","buttonTestId","Button","stretched","color","size","disabled","defaultProps","COPY","defineMessages","unlinkedPageErrorBanner","defaultMessage","description","unlinkedPageJwtErrorBanner","UnlinkedErrorBanner","JWTError","Banner","showIcon","T","desc","html","unlinkedPageHeader","unlinkedEmailInUseHeader","headerContainer","paddingTop","paddingBottom","header","fontSize","type","pageTitle","UnlinkedHeader","socialName","headerText","values","PageHeader","centered","title","unlinkedPageSignupButtonTitle","unlinkedPageSignupButtonContent","unlinkedPageLoginButtonTitle","unlinkedPageLoginButtonEmailInUseTitle","unlinkedPageLoginButtonContent","unlinkedPageEmailInUseMessage","unlinkedPageLoginButton","unlinkedPageOptionsHeaderNoEmail","emailInUseButtonContainer","UnlinkedPageContent","_getAndValidateIdToke","getAndValidateIdToken","idToken","userEmail","email","_useState2","signupState","setSignupState","_useState3","_useState4","signupJWTError","setSignupJWTError","attemptSignUp","createBySignup","removeIdToken","_useState5","_useState6","loginState","setLoginState","attemptLogin","areButtonsDisabled","loginButton","label","createURL","EmailInUse","CreateOrLogin","signupCTA","loginCTA","UnlinkedPage","isEUDC","locale","BasePage","includeHeader","showSignupButton","includeFooter","excludeMenuItems","Helmet","ERROR_CODE","ERROR_TITLE","DEFAULT","GROUP_DOWNGRADED","GROUP_NOT_FOUND","NOT_AFTER_FAILURE","NO_NAME_ID_FOUND","RESPONDENT","SSO_NOT_ENABLED","USER_PENDING_DELETION","USER_PENDING_REASSIGNMENT","X509_CANNOT_VERIFY","ErrorPage","pageRequestId","samlErrorCode","getSamlErrorCode","_getErrorMessage","getErrorMessage","reason","contactUsLink","getHelpCenterLink","path","contactUs","FiveHundredErrorPage","requestId","openingMessage","errorTitle","errorMessage","TeamPage","loadable","fallback","SurveyShareInterstitialPage","App","useLocation","GlobalThemeProvider","WrenchTheme","Switch","Route","exact","SHARED_ROUTES","LoginErrorPage","TeamRoutes","FourOhFourError","FALLBACK","_bootstrapSMWeb","bootstrapSMWeb","_window$SM","staticData","SM","__LOAD_PAYLOAD_CACHE__","initializeClientErrorHandler","environ","slLanguageLocale","_staticData$clientCo","appName","appVersion","graphQLUri","_staticData$gql","gql","_staticData$gql2$gqlC","gqlCache","apolloClient","createBrowserApolloClient","uri","cacheHydration","fragmentMatcherFn","getGraphQLFragmentMatcher","IntrospectionFragmentMatcher","introspectionQueryResultData","linkOptions","credentials","batchInterval","metadata","availableLoggedOutPaths","getLocaleMessages","webassetsTranslationsModule","appTranslationsModule","err","createApp","localeMessages","ErrorBoundary","FallbackComponent","HelmetProvider","ApolloProvider","Router","history","StaticProvider","L10nProvider","localeCode","mount","document","getElementById","innerHTML","trim","hydrate","render","ID_TOKEN_NAMESPACE","EP_PARAM_NAMESPACE","SM_PARAM_NAMESPACE","SM_ALLOW_CREATE_PARAM_NAMESPACE","stash","namespace","sessionStorage","setItem","fetch","getItem","remove","removeItem","JSON","stringify","fetchIdToken","token","IdentityAlreadyLinkedError","detail","IdentityNotLinkedError","InvalidJWTError","InvalidInviteError","toPref","smApp","endpointUrl","notLinkedError","getStrategyBySub","sub","body","serverError","errors","extra","source","pointer","__raw","response","postSessions","action","preference","SSO_LOGIN","LOGGED_IN","shouldCreateAccount","UNLINKED","inviteToken","signupParams","getSignupParams","CREATED","INVALID_JWT","targetUserId","opts","_ampIds$sessionId","_ampIds$deviceId","ampIds","resp","method","headers","id_token","signup_params","invite_token","target_user_id","auth_url","sm_amp_sid","sm_amp_did","status","json","getSocialName","split","freeze","CALLBACK","LANDING","CREATE","CONVERT","REASSIGN_LANDING","REASSIGN_CONFIRM","getAmplitudeStorageKey","substring","parseAmplitudeSession","parsed","parseAmplitudeCookie","cookies","cookieData","atob","input","Buffer","from","_MetricsTracker$getCo","fromCookie","parseCookie","cookie","parseAmplitudeStorage","s","storageKey","localStorage","USER_EVENTS","data","amplitudeEvent","waitFor","predicate","reject","timeoutId","setTimeout","check","clearTimeout","createBrowserHistory","Apple","Facebook","Google","LinkedIn","Microsoft","_sub$split","strategyPart","SmOrigin","enumObject","join","jsdom"],"sourceRoot":""}