{"version":3,"file":"loginweb/mntv-app-loginweb.8d1cd16b.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/helpers/fragmentTypes.ts","/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/helpers/queryParams.ts","/app/apps/loginweb/src/app/handlers/login.ts","/app/apps/loginweb/src/app/helpers/asEnum.ts","/app/apps/loginweb/src/app/pages/login/LoadingPage/LoadingPage.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/UnlinkedMessaging.tsx","/app/apps/loginweb/src/app/helpers/locale.ts","/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/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/app/utils/history.ts","/app/apps/loginweb/external \"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;","// 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","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 } from '@auth0/auth0-spa-js';\nimport SessionClient, { 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';\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: client_id } = config;\n if (!domain || !client_id) {\n throw new Error('Missing auth0 configuration');\n }\n\n const client = new Auth0Client({\n client_id,\n domain,\n nowProvider: () => config.now,\n });\n const { appState, claims } = await handleRedirectCallback(client);\n const { result, error } = await SessionClient().createByLogin({\n claims,\n appState,\n smAllowCreateUser: sm_allow_create_user,\n });\n\n if (result === SessionResult.LOGGED_IN || result === SessionResult.CREATED) {\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 } else if (result === SessionResult.UNLINKED) {\n const { app, forceAccountPicker, ut_source, ut_source2 } = appState;\n const email_in_use = error?.emailInUse ? 'true' : undefined;\n stashIdToken(claims);\n navigateTo(\n '/login/unlinked',\n cleanObject({\n 'sm.app': app,\n 'sm.force_account_picker': forceAccountPicker ? '' : undefined,\n ep,\n sm,\n sm_allow_create_user,\n ut_source,\n ut_source2,\n email_in_use,\n })\n );\n } else {\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 throw e;\n }\n throw e;\n }\n}\n","export default function getQueryParam(name: string): 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, BaseLoginOptions } from '@auth0/auth0-spa-js';\nimport asEnum from '~app/helpers/asEnum';\nimport { Auth0Config } from '~app/helpers/auth0Config';\nimport { stashEp, stashSm, stashSmAllow } from '~app/helpers/sessionStorage';\nimport getQueryParam, { hasQueryParam, getAllQueryParams } 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: BaseLoginOptions['prompt'] = 'login';\n\nfunction getSmShow(): SmShow | undefined {\n const showParam: SmShow | undefined = getQueryParam('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('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('sm.force_account_picker')) {\n return true;\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('ut_source'),\n ut_source2: getQueryParam('ut_source2'),\n };\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\n * the login transaction\n * @param language\n * @param country\n */\nexport default function login({\n auth0Config,\n ep,\n language,\n country,\n smAllowCreateUserCookieVal,\n}: {\n auth0Config: Auth0Config;\n ep?: string;\n language?: string;\n country?: string;\n smAllowCreateUserCookieVal?: string;\n}): void {\n const { domain, clientId: client_id, now } = auth0Config;\n if (!domain || !client_id) {\n throw new Error(`Missing auth0 configuration`);\n }\n\n const client = new Auth0Client({\n client_id,\n domain,\n redirect_uri: getRedirectUri(),\n nowProvider: () => now,\n });\n\n const sm = getQueryParam('sm');\n const smAllowCreateUser = smAllowCreateUserCookieVal ?? getQueryParam('sm_allow_create_user');\n const queryObj = getAllQueryParams();\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 const appState = buildAppState();\n const lang = language ?? 'en';\n\n // navigates away\n client\n .loginWithRedirect({\n ...queryObj, // propagate all our query params over to Auth0 (incl. 'ep' if we have it)\n\n appState,\n 'sm.app': appState.app,\n 'sm.show': appState.show,\n 'sm.locale': lang,\n 'sm.country': country,\n prompt: FORCE_AUTH, // SM auth cookie will redirect logged-in users; always prompt for Auth0 login\n redirectMethod: 'replace',\n })\n ?.catch(e => {\n // eslint-disable-next-line no-console\n console.error('Failed to login with redirect', e);\n });\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","import React, { useEffect, useState } from 'react';\nimport { ProgressCircle } from '@sm/wds-react';\n\nimport './loading.scss';\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 // 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","import React from 'react';\nimport { Button, Container, ProgressCircle, Typography } from '@sm/wds-react';\n\nexport const BUTTON_TEST_ID = 'UnlinkedButtonOptionButton';\nexport const SPINNER_TEST_ID = 'UnlinkedButtonOptionSpinner';\nexport const TEST_ID = 'UnlinkedButtonOption';\n\nexport default function UnlinkedButtonOption({\n isDisabled,\n showSpinner,\n titleText,\n buttonText,\n onClick,\n id,\n href,\n}: {\n isDisabled: boolean;\n showSpinner: boolean;\n titleText: string;\n buttonText?: string;\n id?: string;\n href?: string;\n onClick(): void;\n}): JSX.Element {\n let containerTestId: string = TEST_ID;\n let buttonTestId: string = BUTTON_TEST_ID;\n let spinnerTestId: string = SPINNER_TEST_ID;\n if (typeof id !== 'undefined') {\n const suffix = `__${id}`;\n containerTestId = `${containerTestId}${suffix}`;\n buttonTestId = `${buttonTestId}${suffix}`;\n spinnerTestId = `${spinnerTestId}${suffix}`;\n }\n\n return (\n \n \n \n {titleText}\n {buttonText}\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 { Container, Banner } from '@sm/wds-react';\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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React from 'react';\nimport { defineMessages, T } from '@sm/intl';\nimport { Container, Typography } from '@sm/wds-react';\n\nimport { SocialName } from './types';\n\nexport const TEST_ID = 'UnlinkedMessaging';\n\nconst COPY = defineMessages({\n unlinkedPageHeader: {\n id: 'login.UnlinkedMessaging.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.UnlinkedMessaging.EmailInUseHeader',\n defaultMessage: 'There’s already an account associated with {userEmail}',\n description:\n '[Type: Header][Vis: med] - Header of the page alerting the user there is an existing account linked to their social email',\n },\n});\n\nexport default function UnlinkedMessaging({\n socialName,\n userEmail,\n emailInUse,\n}: {\n socialName: SocialName;\n userEmail: string;\n emailInUse: boolean;\n}): JSX.Element {\n return (\n \n \n {emailInUse ? (\n \n ) : (\n \n )}\n \n \n );\n}\n","export type Locale =\n | 'da'\n | 'de'\n | 'en'\n | 'en-xa' // Pseudo-locale\n | 'es'\n | 'fi'\n | 'fr'\n | 'it'\n | 'ja'\n | 'ko'\n | 'nl'\n | 'no'\n | 'pt-br'\n | 'ru'\n | 'sv'\n | 'tr'\n | 'zh-tw';\n\nconst defaultLocale = 'en';\n\nexport const getLocale = (locale: String | undefined): Locale => {\n if (locale) {\n switch (locale) {\n case 'da':\n case 'de':\n case 'en':\n case 'en-xa':\n case 'es':\n case 'fi':\n case 'fr':\n case 'ko':\n case 'nl':\n case 'no':\n case 'ja':\n case 'it':\n case 'ru':\n case 'pt-br':\n case 'sv':\n case 'tr':\n case 'zh-tw':\n return locale as Locale;\n default:\n return defaultLocale as Locale;\n }\n }\n return defaultLocale as Locale;\n};\n\n/**\n * These are the language codes supported by the SurveyMonkey help center\n */\nexport type HelpCenterLocale = 'es-la' | 'de' | 'fr' | 'nl' | 'pt-br' | 'ja' | 'it' | 'tr' | 'ru' | 'ko' | 'zh' | 'en';\n\n/**\n * Maps an app locale to a help center locale\n *\n * @returns the help center locale\n */\nexport const getHelpCenterLocale = (locale: Locale | undefined): HelpCenterLocale => {\n switch (locale) {\n case 'de':\n case 'fr':\n case 'nl':\n case 'ja':\n case 'it':\n case 'tr':\n case 'ru':\n case 'ko':\n case 'pt-br':\n return locale;\n\n case 'es':\n return 'es-la';\n\n case 'zh-tw':\n return 'zh';\n\n case 'da':\n case 'en':\n case 'en-xa':\n case 'fi':\n case 'no':\n case 'sv':\n default:\n return 'en';\n }\n};\n","import { defineMessages, t } from '@sm/intl';\nimport { createURL } from '@sm/utils';\nimport { Container, Respond, Card, Typography } from '@sm/wds-react';\nimport React, { PropsWithChildren, ReactNode, useState } from 'react';\nimport cleanObject from '../../../../common/utils/cleanObject';\nimport { AppState } from '../../../handlers/handlers';\nimport navigateTo from '../../../helpers/navigateTo';\nimport getQueryParam, { hasQueryParam } from '../../../helpers/queryParams';\nimport SessionClient, { SessionResult } from '../../../helpers/sessionsApiClient';\nimport { removeIdToken } from '../../../helpers/sessionStorage';\nimport getAndValidateIdToken from './tokenHelper';\nimport { AuthState } from './types';\nimport './unlinked-page.scss';\nimport UnlinkedButtonOption from './UnlinkedButtonOption';\nimport UnlinkedErrorBanner from './UnlinkedErrorBanner';\nimport UnlinkedMessaging from './UnlinkedMessaging';\nimport { getHelpCenterLocale, getLocale, HelpCenterLocale } from '~app/helpers/locale';\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 unlinkedPageOptionsHeaderEmail1: {\n id: 'login.UnlinkedPageContent.OptionsHeaderEmail1',\n defaultMessage: `You can’t create an account with your {socialName} account because there’s an existing account with the same email. Learn more`,\n description: 'Header text informing the user what happens if they click \"Log in to your account\"',\n },\n unlinkedPageOptionsHeaderEmail2: {\n id: 'login.UnlinkedPageContent.OptionsHeaderEmail2',\n defaultMessage: `To access your existing account, log in with {userEmail} and your password.`,\n description: 'Header text informing the user what happens if they click \"Log in to your account\"',\n },\n unlinkedPageOptionsHeaderNoEmail: {\n id: 'login.UnlinkedPageContent.OptionsHeaderNoEmail',\n defaultMessage: `What would you like to do?`,\n description: 'Header asking user what they would like to do to link their account',\n },\n});\n\nexport default function UnlinkedPageContent(): JSX.Element {\n const { idToken, socialName } = getAndValidateIdToken();\n\n const locale = getLocale(getQueryParam('sm.locale'));\n const helpCenterLocale = getHelpCenterLocale(locale);\n\n function helpCenterLink(linkLocale: HelpCenterLocale): (props: PropsWithChildren<{}>) => ReactNode {\n return ({ children }: PropsWithChildren<{}>): ReactNode => (\n \n {children}\n \n );\n }\n\n const appState: AppState = {\n app: getQueryParam('sm.app'),\n ep: getQueryParam('ep'),\n forceAccountPicker: hasQueryParam('sm.force_account_picker') ? true : undefined,\n sm: getQueryParam('sm'),\n sm_allow_create_user: getQueryParam('sm_allow_create_user'),\n ut_source: getQueryParam('ut_source'),\n ut_source2: getQueryParam('ut_source2'),\n };\n\n const emailInUse = !!getQueryParam('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 'sm.app': appState.app,\n 'sm.force_account_picker': appState.forceAccountPicker ? '' : undefined,\n '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 disallowCreateButton = (): boolean => {\n const baseUrl = window.location.href;\n return baseUrl.includes('eu.') || emailInUse;\n };\n\n // For logic affecting either/both buttons\n const areButtonsDisabled: boolean =\n loginState === 'pending' || loginState === 'success' || signupState === 'pending' || signupState === 'success';\n\n return (\n
\n \n {(matches: boolean) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {t(COPY.unlinkedPageOptionsHeaderEmail1, {\n socialName,\n a: helpCenterLink(helpCenterLocale),\n })}\n \n \n \n {t(COPY.unlinkedPageOptionsHeaderEmail2, { userEmail })}\n \n \n \n \n {t(COPY.unlinkedPageOptionsHeaderNoEmail)}\n \n \n \n \n \n \n \n \n \n {t(COPY.unlinkedPageSignupButtonContent, { socialName })}\n \n \n \n
\n \n \n \n \n \n \n {t(COPY.unlinkedPageLoginButtonContent, { socialName })}\n \n \n \n \n \n \n \n )}\n \n
\n );\n}\n","import React, { useContext } from 'react';\nimport { StaticContext, BasePage, Helmet } from '@sm/webassets';\nimport UnlinkedPageContent from './UnlinkedPageContent';\n\nimport './unlinked-page.scss';\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 loadable from '@loadable/component';\nimport { FiveHundredErrorPage, FourOhFourError, GlobalThemeProvider, StaticContext } from '@sm/webassets';\nimport { WrenchTheme } from '@wds/styles';\nimport React, { useContext } from 'react';\nimport { Route, Switch, useLocation } from 'react-router-dom';\nimport callback from './handlers/callback';\nimport login from './handlers/login';\nimport LoadingPage from './pages/login/LoadingPage/LoadingPage';\nimport UnlinkedPage from './pages/login/UnlinkedPage';\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 {\n 'client-config': { auth0: auth0Config, ep, isSso, smAllowCreateUser, now },\n environment: { languageCode: language, countryCode: country },\n } = useContext(StaticContext);\n\n auth0Config.now = now;\n\n const { search } = useLocation();\n return (\n \n \n \n login({ auth0Config, ep, language, country, smAllowCreateUserCookieVal: smAllowCreateUser })}\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 callback(auth0Config, isSso)} />\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 const bugsnagConfig = staticData['bugsnag-client-config'];\n // normalize missing configs\n initializeClientErrorHandler(bugsnagConfig || null);\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 { 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 */\nexport type AppState = {\n ep?: string;\n show?: SmShow;\n app?: SmApp;\n forceAccountPicker?: boolean;\n sm?: string;\n sm_allow_create_user?: string;\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 { FormattedError } from '~common/errors/userFacing';\nimport { AppState, SmApp } from '../handlers/handlers';\n\n// The types of errors that the server can return from POST /api/v1/sessions\nexport class IdentityAlreadyLinkedError extends Error {}\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 const PASSWORD_SUBJECT = 'auth0|';\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\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};\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 * 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 }> {\n const idToken = claims.__raw;\n\n // Try to login\n let notLinkedError: IdentityNotLinkedError | undefined;\n try {\n await this.postSessions({ idToken, action: 'login', preference: toPref(appState.app) });\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.\n // If the identity is non-password, return unlinked and let the user decide how to proceed.\n if (!claims.sub.startsWith(PASSWORD_SUBJECT)) {\n return { result: SessionResult.UNLINKED, error: notLinkedError };\n }\n\n // Else, we're dealing with a password identity. Go ahead and create a new account for it\n const result = await this.createBySignup({ claims, appState, smAllowCreateUser });\n return { result };\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: Partial;\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 });\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 | { action: 'login'; idToken: string; preference?: AccountTypePreference }\n | {\n action: 'signup';\n idToken: string;\n signupParams: UtSourceParams;\n inviteToken?: string;\n smAllowCreateUser?: string;\n }\n | { action: 'switch'; targetUserId: string }\n ): Promise {\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 }),\n });\n\n if (resp.status === 200) {\n return (await resp.json()) as SessionResponseBody;\n }\n\n const {\n errors: [serverError],\n }: { errors: FormattedError[] } = await resp.json();\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\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","import { createBrowserHistory } from 'history';\n\nexport default createBrowserHistory();\n","module.exports = jsdom;"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","t","keys","Object","module","exports","__schema","types","kind","name","possibleTypes","cleanObject","target","copy","entries","forEach","key","value","undefined","async","auth0Callback","config","ep","sm","sm_allow_create_user","domain","client_id","clientId","client","Auth0Client","nowProvider","now","handleRedirectCallback","result","claims","getIdTokenClaims","appState","clientErrorHandler","SessionClient","createByLogin","smAllowCreateUser","error","SessionResult","navigateTo","joined","force_account_picker","forceAccountPicker","app","ut_source","ut_source2","email_in_use","emailInUse","stashIdToken","getQueryParam","URLSearchParams","window","location","search","get","hasQueryParam","has","getSmShow","showParam","pathname","includes","SmShow","getSmApp","asEnum","enumObject","values","join","SmApp","getSmForceAccontPicker","login","auth0Config","language","country","smAllowCreateUserCookieVal","redirect_uri","hostname","queryObj","getAllQueryParams","params","obj","create","stashEp","stashSm","stashSmAllow","buildAppState","show","lang","loginWithRedirect","prompt","redirectMethod","catch","console","LoadingPage","handler","useState","setError","handleError","useEffect","isPromise","v","className","ProgressCircle","continuous","UnlinkedButtonOption","isDisabled","showSpinner","titleText","buttonText","onClick","href","containerTestId","buttonTestId","spinnerTestId","suffix","Container","flex","flexAlign","flexJustify","hidden","Button","color","disabled","Typography","variant","defaultProps","COPY","defineMessages","unlinkedPageErrorBanner","defaultMessage","description","unlinkedPageJwtErrorBanner","UnlinkedErrorBanner","JWTError","Banner","showIcon","T","desc","html","unlinkedPageHeader","unlinkedEmailInUseHeader","UnlinkedMessaging","socialName","userEmail","unlinkedPageSignupButtonTitle","unlinkedPageSignupButtonContent","unlinkedPageLoginButtonTitle","unlinkedPageLoginButtonEmailInUseTitle","unlinkedPageLoginButtonContent","unlinkedPageOptionsHeaderEmail1","unlinkedPageOptionsHeaderEmail2","unlinkedPageOptionsHeaderNoEmail","UnlinkedPageContent","getAndValidateIdToken","idToken","helpCenterLocale","locale","getHelpCenterLocale","getLocale","email","signupState","setSignupState","signupJWTError","setSignupJWTError","attemptSignUp","createBySignup","removeIdToken","loginState","setLoginState","attemptLogin","areButtonsDisabled","Respond","minWidth","matches","flexDirection","px","Card","a","linkLocale","children","createURL","UnlinkedPage","isEUDC","useContext","StaticContext","includeHeader","showSignupButton","includeFooter","pageId","legacyWeb","excludeMenuItems","TeamPage","loadable","fallback","SurveyShareInterstitialPage","App","auth0","isSso","environment","languageCode","countryCode","useLocation","theme","WrenchTheme","exact","path","SHARED_ROUTES","callback","fetchAndRemoveEp","fetchAndRemoveSm","fetchAndRemoveSmAllow","TeamRoutes","FALLBACK","bootstrapSMWeb","staticData","SM","__LOAD_PAYLOAD_CACHE__","bugsnagConfig","initializeClientErrorHandler","environ","slLanguageLocale","pageRequestId","appName","appVersion","graphQLUri","gql","gqlCache","apolloClient","createBrowserApolloClient","uri","cacheHydration","fragmentMatcherFn","getGraphQLFragmentMatcher","IntrospectionFragmentMatcher","introspectionQueryResultData","linkOptions","credentials","batchInterval","metadata","availableLoggedOutPaths","getLocaleMessages","webassetsTranslationsModule","appTranslationsModule","err","createApp","localeMessages","FallbackComponent","FiveHundredErrorPage","history","localeCode","mount","document","getElementById","innerHTML","trim","length","hydrate","render","url","replace","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","parse","IdentityAlreadyLinkedError","IdentityNotLinkedError","constructor","super","this","InvalidJWTError","InvalidInviteError","PASSWORD_SUBJECT","toPref","smApp","endpointUrl","__raw","notLinkedError","postSessions","action","preference","LOGGED_IN","sub","startsWith","UNLINKED","inviteToken","signupParams","getSignupParams","CREATED","INVALID_JWT","targetUserId","opts","resp","method","headers","body","id_token","signup_params","invite_token","target_user_id","status","json","serverError","errors","extra","source","pointer","getSocialName","split","freeze","CALLBACK","LANDING","CREATE","CONVERT","REASSIGN_LANDING","REASSIGN_CONFIRM","createBrowserHistory","jsdom"],"sourceRoot":""}