{"version":3,"file":"fast-phonics-client-8b84de1039204129073acec8f7fe110d.js","names":["App","Application","constructor","super","arguments","_defineProperty","this","config","modulePrefix","podModulePrefix","Resolver","_exports","default","startLog","rollbar","ignoredMessages","checkIgnore","setupDatadogRum","loadInitializers","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","id","block","moduleName","isStrictMode","_component","setComponentTemplate","templateOnly","APP","ContentInteractive","_class","Component","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_descriptor4","AbortController","signal","abortController","loader","jesterLoader","externalController","contentActions","contentSpec","args","logger","enableMessengerLogging","name","event","_len","length","Array","_key","console","log","createExternalController","onUnrecoverableError","error","errorHandler","handleUnrecoverableError","variables","bgmDisabled","user","backgroundMusicDisabled","featureFlags","client","features","getClient","payload","flagNames","getObjectValue","jesterFlags","Set","filter","flagName","getBooleanValue","has","add","onError","aborted","reason","willDestroy","abort","_applyDecoratedDescriptor","prototype","service","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","DebugObservable","key","subscribe","unsubscribe","next","value","currentValue","JSON","stringify","data","complete","tracked","ContentInteractiveDebugComponent","_class2","owner","debug","getDebug","actionParams","actions","params","param","entries","push","debugActions","values","defineProperty","get","debugValues","subscriptions","observable","debugSubscriptions","copyToClipboard","target","HTMLElement","dataset","navigator","clipboard","writeText","onSubmit","actionKey","_debug$actions$get","preventDefault","debugAction","debugParams","currentTarget","HTMLFormElement","Map","formData","FormData","_paramType","set","fromEntries","ToggleDebug","debugAllowed","debugMode","buttonText","enabled","toggleDebug","disable","enable","DebugModeCompleteStones","loadingUi","finish","isInteractiveActivity","activityType","isBookActivity","isQuizActivity","isVideoActivity","passQuizResult","correctAnswers","failQuizResult","incorrectAnswers","questionCount","progressionSequence","activityId","passActivity","saveActivityResult","uuid","uuidV7","correctCount","totalCount","failActivity","passVideoActivity","completeVideo","passBookQuiz","saveBookQuizResult","quizData","from","_","i","concat","toString","readRepeat","uuidV4","failBookQuiz","passPeakQuiz","savePeakQuizResult","failPeakQuiz","unhandledError","Error","transitionToErrorRoute","unhandledUnauthorizedError","unauthorizedError","NotAuthenticatedError","DebugModeIntroVideoComponent","goBack","DebugModePlacementTestComponent","saveTestResults","questionNumber","peakNumber","peakPlacement","skipPlacementTest","setQuestionNumber","Number","DebugModeToggleDebug","shouldDisplay","debugModeEnabled","DebugModeYetiShop","student","rewardTotals","coins","selectedYeti","yetiMenu","_this$args$yetis","yetis","purchases","map","_ref","price","purchased","slice","some","_ref2","item","purchasable","selectable","purchaseYeti","message","_error","selectYeti","ErrorScreen","furballPalette","shuffle","returnRoute","return","start","router","transitionTo","LoadingScreen","fadeDurationStyle","htmlSafe","fadeDuration","toFixed","QuestNotificationComponent","_descriptor5","_descriptor6","currencyAmount","firstName","quest","currentQuest","alertAnytime","displayQuestAlertIfRequired","showQuestAlert","questGoalForNotification","jesterManifests","acknowledgeQuestGoalAlert","goalId","awarded","close","closeQuestAlert","onContentError","handleContentUnhandledError","readyForUserInput","debugErrors","Controller","isRootRoute","routeName","currentRoute","includes","isAppBroken","progress","lessonsProgressData","placementTestRequired","showPlacementTest","isUnauthorizedError","model","errorScreenComponent","ApplicationController","currentAssignment","assignments","thumbnailUrl","title","timeRemaining","dateFromNow","Date","endAt","now","dueDate","formatDueDate","startAssignment","peak","logout","window","history","back","lastAccessiblePeak","_this","goToPeak","goToApp","appName","location","undefined","print","url","_internalGoToApp","href","_config$APP$apiEndpoi","URL","apiEndpoint","origin","appIsBroken","showLogoutErrorScreen","updateIntroVideoMutationDocument","graphql","useMutation","activityComponent","completeIntro","saveCompleteIntroResult","response","updateIntroVideo","current","mutate","input","viewed","__typename","hasFinishedProgram","hasViewedIntroVideo","goToTab","tabName","readBook","bookId","watchSoundVideo","sound","peakCertificate","pageTitle","localName","replaceWith","_dec","_dec2","type","options","numberOfPeaks","label","generatePeakOptions","positionInPeak","_dec3","_dec4","debugValue","_descriptor7","_descriptor8","_descriptor9","createActivityResultMutationDocument","isAssignmentMode","assignmentMode","assignmentId","shouldLogout","rosterEnabled","logOut","startIntroVideo","updatePeakView","peakId","peakView","transitionToPeak","goToStonesForPeak","transitionToStones","goToActivity","transitionToStoneActivity","goToSounds","transitionToSounds","goToWords","transitionToWords","goToBooks","transitionToBooks","goToProgress","transitionToProgress","goToYetiShop","saveProgress","peakRouteInfo","find","route","stoneId","activity","findStoneIdFor","chest","findActivityIdByPosition","ok","errorMessage","createActivityResult","attemptUuid","resetProgressToPlacementTest","resetPlacementTestProgress","resetProgressToPeakPosition","resetPeakProgress","parseInt","resetProgressToProgramComplete","e","r","l","call","t","Symbol","toPrimitive","TypeError","String","_toPrimitive","_toPropertyKey","n","a","keys","forEach","reverse","reduce","createPlacementTestResultMutationDocument","skipPlacementTestResultMutationDocument","goToPeaks","metrics","trackEvent","category","_validateSubmission","blob","skipPlacementTestResult","_ref3","createPlacementTestResult","createBookQuizResultMutationDocument","createPeakQuizResultMutationDocument","_descriptor0","studentFirstName","renderQuestAlert","startCase","completeVideoCalled","_incorrectAnswers$map","bookName","_bookName","createBookQuizResult","studentInput","correctAnswer","replayWithAudio","completeBookQuiz","completeBookQuizCalled","showCongratulations","queryParams","_ref4","_incorrectAnswers$map2","createPeakQuizResult","_ref5","studentName","contentError","coinsEarned","passed","certificateUrl","peakQuizResult","_ref6","activityResult","updateSelectedYetiMutationDocument","purchaseYetiMutationDocument","toLowerCase","getCoins","yeti","purchaseYetiMutation","updateSelectedYeti","fetch","setupDeprecationWorkflow","workflow","handler","matchId","source","_source","documents","types","UpdateIntroVideoDocument","PlacementTestResultDataFragmentFragmentDoc","SkipPlacementTestResultDataFragmentFragmentDoc","CreatePlacementTestResultDocument","SkipPlacementTestResultDocument","ActivityResultDataFragmentFragmentDoc","BookQuizResultDataFragmentFragmentDoc","PeakQuizResultDataFragmentFragmentDoc","CreateActivityResultDocument","CreateBookQuizResultDocument","CreatePeakQuizResultDocument","UpdateSelectedYetiDocument","PurchaseYetiDocument","GetInitialAppDataDocument","YetiDataFragmentFragmentDoc","GetYetisDocument","ActivityDataFragmentDoc","GetActivitiesDocument","StudentAssignmentDataFragmentFragmentDoc","GetStudentAssignmentDocument","ResetPeakProgressDocument","ResetPlacementTestProgressDocument","StudentProgressDataFragmentFragmentDoc","GetStudentProgressDocument","StudentQuestDataFragmentFragmentDoc","GetStudentQuestDocument","StudentQuestGoalAcknowledgeCompleteDocument","RewardTotalsDataFragmentFragmentDoc","PeakQuizSummariesDataFragmentFragmentDoc","PurchasesDataFragmentFragmentDoc","SoundsDataFragmentFragmentDoc","WordsDataFragmentFragmentDoc","StudentUserDataFragmentFragmentDoc","GetStudentDocument","Accent","ActivityType","CustomerType","HouseLevel","PurchaseCatgegory","QuestGoalStatus","kind","definitions","typeCondition","selectionSet","selections","alias","operation","variableDefinitions","variable","_gql","possibleTypes","Assignment","AssignmentDetails","AssignmentTask","AssignmentTaskDetails","CreateActivityResultPayload","CreateBookQuizResultPayload","CreatePeakQuizResultPayload","CreatePlacementTestResultPayload","PrimaryGoal","PurchaseYetiPayload","SkipPlacementTestResultPayload","StudentPayload","StudentProgressPeakResetPayload","StudentProgressPlacementTestResetPayload","StudentQuestGoalAcknowledgeCompletePayload","UpdateIntroVideoPayload","UpdateSelectedYetiPayload","appVersion","hash","version","versionOnly","hideSha","shaOnly","hideVersion","match","showExtended","versionExtendedRegExp","versionRegExp","shaRegExp","helper","pluralize","singularize","styleNamespace","componentName","classname","podNames","titleCase","capitalize","decamelize","replace","initialize","initializerFactory","Ember","reopen","StyleNamespacingExtras","Modifier","modify","parent","use","resource","on","apollo","lookup","watchOptions","fragment","query","watchFragment","currentResult","cell","cache","identify","initialResult","readFragment","subscription","result","cleanup","Fragment","mutation","clientOptions","mutateResult","Mutation","watchQuery","partial","refetch","updateQuery","mapFn","Query","Router","EmberRouter","locationType","rootURL","path","initialAppQueryDocument","Route","_descriptor1","_descriptor10","_descriptor11","_descriptor12","_descriptor13","_descriptor14","_descriptor15","one","_trackPage","removeVisibilityTracking","studentMetrics","setupVisibilityTracking","beforeModel","transition","_transition$to","_transition$to2","to","_setupSession","afterModel","_resolvedModel","checkTransition","_transition$to$name","_transition$to3","logErrorIfActionable","willTransition","_scheduleAppRefreshOnSuccessfulTransition","trackPage","page","currentURL","currentRouteName","trackTimeOnTask","isEnabled","posthog","capture","_capturePageView","_currentURL$split$","routeInfo","contentType","info","resolvedModel","attributes","capturePageView","split","timeOnTask","trackRoute","timeOnTaskV2Enabled","load","setup","Promise","all","studentId","sessionTracker","releaseChecker","longSessionKiller","_transition$from","fromRouteName","followRedirects","then","toRoute","toRouteName","isInsideInteractive","isErrorRoute","refresher","refreshIfSafeAndScheduled","trigger","assignment","book_id","books","bookActivity","findActivityById","manifestBundle","manifestBundleName","manifestKey","manifests","displayQuiz","book","abbreviatedName","finalPeakNbr","lastPeak","redirect","loginWarning","warning","session","signIn","signOut","userRewards","_params","averageBestPeakQuizResult","peakQuizSummaries","peakQuizResults","sounds","words","results","acc","rewards","word","requestedTab","_initialTab","peaksWithoutSounds","PeakView","requestedPeakId","_getRequestedPeakIdFromRoute","canPlayPeak","Boolean","userProgress","requestedRouteInfo","requestedPeakView","_getRequestedPeakViewFromRoute","ASSIGNMENT_MODE","stones","PeakRoute","studentAccent","accent","accentOverride","flatMap","s","StoneRoute","peak_id","stone_id","canPlayStone","paramsFor","findActivityByStoneId","contentSpecsByActivityType","YetiQueryDocument","purchasedYetis","ActivitiesQueryDocument","ActivityService","Service","useQuery","activities","_activitiesQuery","lastActivity","at","findPositionInPeakFor","runInDebug","loadDevMessages","loadErrorMessages","apolloURL","typePolicies","_client","WeakMap","properties","_apollo$connectToDevT","_classPrivateFieldInitSpec","InMemoryCache","introspectionResult","httpLink","createHttpLink","uri","credentials","errorLink","graphQLErrors","networkError","delayOpts","retryLink","RetryLink","attempts","max","retryIf","_input","isApolloNetworkErrorRetryable","_classPrivateFieldSet","ApolloClient","link","devtools","connectToDevTools","_classPrivateFieldGet","clearStore","waitFor","StudentAssignmentQueryDocument","_studentAssignmentQuery","handleError","_transition$targetNam","targetName","startsWith","targetPeakId","parentPeakId","parentStoneId","assignmentStoneId","resetPeakProgressMutationDocument","resetPlacementTestProgressMutationDocument","resetPeakProgressMutation","resetPlacementTestProgressMutation","isErrorLike","errorIsActionable","ContentLoader","variant","activityAccent","framework","contentLoader","jester","_config$APP$loadingUi","_preDelay","_config$APP$loadingUi2","preDelay","_postDelay","_config$APP$loadingUi3","postDelay","document","getElementsByTagName","pageTransitionEvent","persisted","getLastNavigationType","addEventListener","_onPageShow","removeEventListener","fn","isLoading","later","_finishLoading","staticLoadingElement","staticLoadingElements","_removeStaticLoadingScreen","remove","once","style","setProperty","deviceDetection","isNativeMobile","searchParams","open","_printImage","printImage","projectToken","apiHost","customProperties","application","isInstalled","$set","customer_type","customerType","_setup","init","api_host","autocapture","capture_pageleave","capture_pageview","capture_performance","advanced_disable_flags","bootstrap","distinctID","isIdentifiedID","reset","StudentProgressQueryDocument","_studentProgressQuery","lessons","RollbarIgnoreError","progressPeak","Math","min","viewedIntroVideo","canPlayPeakLesson","requestedPosition","canPlayStoneActivity","StudentQuestQueryDocument","acknowledgeQuestGoalAlertMutationDocument","_this$_studentQuestQu","_this$_studentQuestQu2","_this$_studentQuestQu3","_studentQuestQuery","recommendedTargetRoute","primaryGoal","status","Incomplete","progressCurrent","_this$currentQuest","ShowCompleteAlert","_acknowledgeQuestGoalAlertMutation","studentQuestGoalAcknowledgeComplete","onClose","SessionService","AuthSessionService","_navigate","loginUrl","logoutUrl","StudentMetricsService","defaultConfig","resolveContext","_this$session$state$d","locale","sessionId","getSessionIdFromJwt","state","token","TimeOnTask","initialized","totter","TimeOnTaskClass","product","syncOptions","syncUrl","getAuthCallback","async","_this$session$state$d2","resolve","_this$totter","trackSession","timeOnTaskUrl","StudentQueryDocument","_studentQuery","setupFeatureFlags","setPerson","userID","subscribeToSessionChanges","ky","post","json","context","targetingKey","retry","limit","methods","flags","provider","createOfrepInMemoryProvider","isCanadaAware","Ca","unsubscribeFromSessionChanges","unsubscribeSessionChangeHandlers","onUnauthenticated","onMismatched","isPeaksRoute","test","isMyProgressRoute","isInsidePeaks","every","isInsideMyProgress","check","DD_RUM","datadogRum","matches","appVersionRegex","exec","userAgent","_matches$","setGlobalContextProperty","date","diff","getTime","DIFF_YEAR_AGO","_msToAbsolute","DIFF_MONTHS_AGO","DIFF_MONTH_AGO","DIFF_DAYS_AGO","DIFF_DAY_AGO","DIFF_HOURS_AGO","DIFF_HOUR_AGO","DIFF_MINUTES_AGO","DIFF_MINUTE_AGO","DIFF_SECONDS_AGO","DIFF_SECONDS_FROM_NOW","DIFF_MINUTE_FROM_NOW","DIFF_MINUTES_FROM_NOW","DIFF_HOUR_FROM_NOW","DIFF_HOURS_FROM_NOW","DIFF_DAY_FROM_NOW","DIFF_DAYS_FROM_NOW","DIFF_MONTH_FROM_NOW","DIFF_MONTHS_FROM_NOW","DIFF_YEAR_FROM_NOW","abs","ceil","floor","ONE_MINUTE","ONE_SECOND","ONE_HOUR","ONE_DAY","ONE_MONTH","ONE_YEAR","ms","unit","converted","minutes","hours","days","months","years","propertyKey","DebugContent","DebugContentSymbol","for","setDebug","assign","unrecoverableErrorCheck","ContentError","cause","isAbortError","isScriptBlockedError","isNotAuthenticatedError","isNetworkError","obj","hasOwnProperty","statusCode","HTTPError","isBadRequestError","errorHasName","isServerError","isKyTimeoutError","ScriptBlockedError","dateOfMonth","getDate","dayOfWeek","getDay","month","getMonth","eggs","performance","currentNavigation","navigationType","getEntriesByType","navigation","hiddenPrintContainerId","printContainer","querySelector","firstChild","hiddenImage","createElement","src","printPromise","reject","onload","setTimeout","onerror","appendChild","studentProgress","currentPeak","requestedPeak","requestedStone","currentStone","studentProgressPeak","lastActivityPeak","callback","pRetry","AbortError","define","metaName","prefix","rawConfig","getAttribute","exports","parse","decodeURIComponent","err","runningTests","require","create","apiNamespace","studentNamespace","gitSha","defaultAccent","emberGitSha","guest","certificateHost"],"sources":["vendor/ember-cli/app-prefix.js","fast-phonics-client/app.ts","fast-phonics-client/components/assignment-button.js","fast-phonics-client/components/content-interactive.ts","fast-phonics-client/components/content-interactive/debug.ts","fast-phonics-client/components/debug-app/toggle-debug.ts","fast-phonics-client/components/debug-mode/complete-stones.ts","fast-phonics-client/components/debug-mode/intro-video.ts","fast-phonics-client/components/debug-mode/placement-test.ts","fast-phonics-client/components/debug-mode/toggle-debug.ts","fast-phonics-client/components/debug-mode/yeti-shop.ts","fast-phonics-client/components/device-rotate-notification.js","fast-phonics-client/components/dialog/overlay.js","fast-phonics-client/components/error-screen.ts","fast-phonics-client/components/error-screen/login.js","fast-phonics-client/components/error-screen/logout.js","fast-phonics-client/components/error-screen/not-found.js","fast-phonics-client/components/full-viewport.js","fast-phonics-client/components/hidden-print-container.js","fast-phonics-client/components/loading-screen.ts","fast-phonics-client/components/quest/notification.ts","fast-phonics-client/controllers/application-error.ts","fast-phonics-client/controllers/application.ts","fast-phonics-client/controllers/assignment.ts","fast-phonics-client/controllers/book.ts","fast-phonics-client/controllers/end-of-program.ts","fast-phonics-client/controllers/error/index.ts","fast-phonics-client/controllers/intro-video.ts","fast-phonics-client/controllers/my-progress.ts","fast-phonics-client/controllers/peaks.ts","fast-phonics-client/controllers/placement-test.ts","fast-phonics-client/controllers/sound.ts","fast-phonics-client/controllers/stone/index.ts","fast-phonics-client/controllers/yeti-shop.ts","fast-phonics-client/deprecation-workflow.js","fast-phonics-client/graphql/gql.ts","fast-phonics-client/graphql/graphql.ts","fast-phonics-client/graphql/index.ts","fast-phonics-client/graphql/introspection-result.ts","fast-phonics-client/helpers/app-version.js","fast-phonics-client/helpers/pluralize.js","fast-phonics-client/helpers/singularize.js","fast-phonics-client/helpers/style-namespace.ts","fast-phonics-client/helpers/title-case.ts","fast-phonics-client/initializers/app-version.js","fast-phonics-client/initializers/component-styles.js","fast-phonics-client/initializers/ember-cli-mirage.js","fast-phonics-client/instance-initializers/route-styles.js","fast-phonics-client/modifiers/remove-loading-screen.ts","fast-phonics-client/resources/fragment.ts","fast-phonics-client/resources/mutation.ts","fast-phonics-client/resources/query.ts","fast-phonics-client/router.js","fast-phonics-client/routes/application.ts","fast-phonics-client/routes/assignment.ts","fast-phonics-client/routes/book.ts","fast-phonics-client/routes/end-of-program.ts","fast-phonics-client/routes/index.ts","fast-phonics-client/routes/intro-video.ts","fast-phonics-client/routes/login.ts","fast-phonics-client/routes/logout.ts","fast-phonics-client/routes/my-progress.ts","fast-phonics-client/routes/peaks.ts","fast-phonics-client/routes/peaks/peak.ts","fast-phonics-client/routes/placement-test.ts","fast-phonics-client/routes/recommended.ts","fast-phonics-client/routes/sound.ts","fast-phonics-client/routes/stone.ts","fast-phonics-client/routes/stone/index.ts","fast-phonics-client/routes/yeti-shop.ts","fast-phonics-client/services/activity.ts","fast-phonics-client/services/apollo.ts","fast-phonics-client/services/assignments.ts","fast-phonics-client/services/debug-mode.ts","fast-phonics-client/services/error-handler.ts","fast-phonics-client/services/jester-loader.ts","fast-phonics-client/services/loading-ui.ts","fast-phonics-client/services/peak-certificate.ts","fast-phonics-client/services/posthog.ts","fast-phonics-client/services/progress.ts","fast-phonics-client/services/quest.ts","fast-phonics-client/services/session.ts","fast-phonics-client/services/student-metrics.ts","fast-phonics-client/services/time-on-task.ts","fast-phonics-client/services/user.ts","fast-phonics-client/utils/app-refresher-logic.ts","fast-phonics-client/utils/datadog-rum.ts","fast-phonics-client/utils/date-from-now.ts","fast-phonics-client/utils/debug.ts","fast-phonics-client/utils/errors.ts","fast-phonics-client/utils/format-due-date.ts","fast-phonics-client/utils/guest-student.js","fast-phonics-client/utils/navigation.js","fast-phonics-client/utils/print-image.ts","fast-phonics-client/utils/progress.ts","fast-phonics-client/utils/retry-on-network-error.ts","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"sourcesContent":["'use strict';\n\n\n","/**\n * This is a polyfill for Error.cause\n * It can be removed once our all browsers support it natively -\n * see https://caniuse.com/mdn-javascript_builtins_error_cause\n */\nimport 'core-js/stable/error'\n\nimport 'core-js/stable/array/at'\n\nimport './deprecation-workflow'\n\nimport Application from '@ember/application'\nimport Resolver from 'ember-resolver'\nimport loadInitializers from 'ember-load-initializers'\nimport { startLog, checkIgnore } from '@blakeelearning/log'\nimport { setupDatadogRum } from 'fast-phonics-client/utils/datadog-rum'\nimport config from 'fast-phonics-client/config/environment'\n\nexport default class App extends Application {\n  modulePrefix = config.modulePrefix\n\n  podModulePrefix = config.podModulePrefix\n\n  Resolver = Resolver\n}\n\nstartLog({\n  rollbar: {\n    ...config.rollbar,\n    ignoredMessages: [\n      // ignore ScriptBlockedError\n      // ignoredMessages matchers are actually regular expressions\n      // https://docs.rollbar.com/docs/javascript#ignoring-specific-exception-messages\n      \"^Script '.*' blocked$\",\n      \"RollbarIgnoreError\",\n      // ignore NotAllowedError (browser DOMException, e.g. autoplay blocked)\n      \"^NotAllowedError\",\n    ],\n    checkIgnore,\n  },\n})\n\nsetupDatadogRum()\n\nloadInitializers(App, config.modulePrefix)\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<button\\n  ...attributes\\n  class=\\\"{{style-namespace 'assignment-button'}}\\\"\\n  {{on \\\"click\\\" @action}}\\n  type=\\\"button\\\"\\n>\\n  <div class=\\\"btn-fill-outer\\\">\\n    <div class=\\\"btn-fill-inner\\\">\\n      <span> {{yield}}</span>\\n    </div>\\n  </div>\\n\\n</button>\", {\"contents\":\"<button\\n  ...attributes\\n  class=\\\"{{style-namespace 'assignment-button'}}\\\"\\n  {{on \\\"click\\\" @action}}\\n  type=\\\"button\\\"\\n>\\n  <div class=\\\"btn-fill-outer\\\">\\n    <div class=\\\"btn-fill-inner\\\">\\n      <span> {{yield}}</span>\\n    </div>\\n  </div>\\n\\n</button>\",\"moduleName\":\"fast-phonics-client/components/assignment-button.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/assignment-button.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<FullViewport\\n  {{content-interactive\\n    this.loader\\n    manifests=@manifests\\n    variables=this.variables\\n    externalController=this.externalController\\n    onError=this.onError\\n    signal=this.signal\\n    features=this.featureFlags\\n  }}\\n  data-test-content-interactive\\n  class=\\\"flex justify-center items-center\\\"\\n  ...attributes\\n/>\", {\"contents\":\"<FullViewport\\n  {{content-interactive\\n    this.loader\\n    manifests=@manifests\\n    variables=this.variables\\n    externalController=this.externalController\\n    onError=this.onError\\n    signal=this.signal\\n    features=this.featureFlags\\n  }}\\n  data-test-content-interactive\\n  class=\\\"flex justify-center items-center\\\"\\n  ...attributes\\n/>\",\"moduleName\":\"fast-phonics-client/components/content-interactive.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/content-interactive.hbs\"}});\nimport Component from '@glimmer/component'\nimport { assert } from '@ember/debug'\nimport { inject as service } from '@ember/service'\nimport type { ExternalController, Logger } from '@blakeelearning/messenger'\nimport {\n  createExternalController,\n  isContentSpec,\n  isContentActions,\n} from '@blakeelearning/messenger'\nimport config from 'fast-phonics-client/config/environment'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type { FeatureService } from '@blakeelearning/features'\nimport { action } from '@ember/object'\nimport type JesterLoaderService from 'fast-phonics-client/services/jester-loader'\nimport type UserService from 'fast-phonics-client/services/user'\n\nconst { APP } = config\n\ninterface ContentInteractiveComponentArgs {\n  Element: HTMLElement\n  Args: {\n    contentActions: unknown\n    contentSpec: unknown\n    accentOverride?: string\n    manifests: [key: string, url: string][]\n    variables: Record<string, unknown>\n  }\n}\n\nexport default class ContentInteractive extends Component<ContentInteractiveComponentArgs> {\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare features: FeatureService\n\n  @service declare jesterLoader: JesterLoaderService\n\n  @service declare user: UserService\n\n  abortController = new AbortController()\n\n  get signal() {\n    return this.abortController.signal\n  }\n\n  get loader() {\n    return this.jesterLoader.loader\n  }\n\n  get externalController(): ExternalController {\n    const { contentActions, contentSpec } = this.args\n\n    assert(\n      '@contentSpec must be a valid contentSpec object',\n      isContentSpec(contentSpec),\n    )\n\n    assert(\n      '@contentActions must be a valid contentActions object for this contentSpec',\n      isContentActions(contentActions, contentSpec),\n    )\n\n    let logger: Logger | undefined\n\n    if (APP.enableMessengerLogging) {\n      logger = (name, event, ...args) => {\n        console.log(\n          '%c[%s :: %s]',\n          'color: lavender; background-color: #836bb6; font-weight: bold',\n          name,\n          event,\n          ...args,\n        )\n      }\n    }\n\n    return createExternalController(contentActions, contentSpec, {\n      onUnrecoverableError: (error) => {\n        this.errorHandler.handleUnrecoverableError(error)\n      },\n      logger,\n    })\n  }\n\n  get variables() {\n    return {\n      ...this.args.variables,\n      bgmDisabled: this.user.backgroundMusicDisabled,\n    }\n  }\n\n  get featureFlags() {\n    const client = this.features.getClient()\n    const { payload: flagNames } = client.getObjectValue<{ payload: string[] }>(\n      'fp_jester-flag-names',\n      { payload: [] },\n    )\n\n    const jesterFlags = new Set([\n      ...flagNames.filter((flagName) =>\n        client.getBooleanValue(flagName, false),\n      ),\n    ])\n\n    if (jesterFlags.has('fp_jester-css-font-loading')) {\n      jesterFlags.add('jesterCssFontLoadingFF')\n    }\n\n    return [...jesterFlags]\n  }\n\n  @action\n  onError(error: unknown) {\n    if (this.signal.aborted) {\n      console.log(this.signal.reason)\n    } else {\n      this.errorHandler.handleUnrecoverableError(error)\n    }\n  }\n\n  override willDestroy(): void {\n    this.abortController.abort('Destroying interactive')\n    super.willDestroy()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"{{style-namespace 'content-interactive/debug'}}\\\">\\n  {{#each this.debugActions as |action|}}\\n    <form {{on \\\"submit\\\" (fn this.onSubmit action.key)}}>\\n      {{#each action.params as |param|}}\\n        <fieldset>\\n          <label for=\\\"{{action.key}}-{{param.name}}\\\">\\n            {{title-case param.name}}\\n          </label>\\n          {{#if (eq param.type \\\"select\\\")}}\\n            <select\\n              class=\\\"form-select\\\"\\n              id=\\\"{{action.key}}-{{param.name}}\\\"\\n              name={{param.name}}\\n              required\\n            >\\n              <option value=\\\"\\\">Select {{param.name}}</option>\\n              {{#each param.options as |item|}}\\n                <option\\n                  value={{item.value}}\\n                  selected={{eq param.value item.value}}\\n                >\\n                  {{item.label}}\\n                </option>\\n              {{/each}}\\n            </select>\\n          {{else}}\\n            <input\\n              class=\\\"form-input\\\"\\n              id=\\\"{{action.key}}-{{param.name}}\\\"\\n              name={{param.name}}\\n              type={{param.type}}\\n              value={{param.value}}\\n            />\\n          {{/if}}\\n        </fieldset>\\n      {{/each}}\\n\\n      <button data-test-debug-action={{action.key}} type=\\\"submit\\\">\\n        {{title-case action.key}}\\n      </button>\\n    </form>\\n  {{/each}}\\n\\n  {{#each this.debugValues as |value|}}\\n    <figure>\\n      <figcaption>\\n        {{title-case value}}\\n      </figcaption>\\n\\n      <pre\\n        data-test-debug-value={{value}}\\n        data-debug=\\\"{{get this value}}\\\"\\n        title=\\\"Copy to Clipboard\\\"\\n        role=\\\"button\\\"\\n        tabindex=\\\"0\\\"\\n        {{on \\\"click\\\" this.copyToClipboard}}\\n      ></pre>\\n    </figure>\\n  {{/each}}\\n\\n  {{#each this.debugSubscriptions as |subscription|}}\\n    <figure>\\n      <figcaption>\\n        {{title-case subscription.key}}\\n      </figcaption>\\n\\n      <pre\\n        data-test-debug-value={{subscription.key}}\\n        data-debug=\\\"{{subscription.currentValue}}\\\"\\n        title=\\\"Copy to Clipboard\\\"\\n        role=\\\"button\\\"\\n        tabindex=\\\"0\\\"\\n        {{on \\\"click\\\" this.copyToClipboard}}\\n      ></pre>\\n    </figure>\\n  {{/each}}\\n</div>\", {\"contents\":\"<div class=\\\"{{style-namespace 'content-interactive/debug'}}\\\">\\n  {{#each this.debugActions as |action|}}\\n    <form {{on \\\"submit\\\" (fn this.onSubmit action.key)}}>\\n      {{#each action.params as |param|}}\\n        <fieldset>\\n          <label for=\\\"{{action.key}}-{{param.name}}\\\">\\n            {{title-case param.name}}\\n          </label>\\n          {{#if (eq param.type \\\"select\\\")}}\\n            <select\\n              class=\\\"form-select\\\"\\n              id=\\\"{{action.key}}-{{param.name}}\\\"\\n              name={{param.name}}\\n              required\\n            >\\n              <option value=\\\"\\\">Select {{param.name}}</option>\\n              {{#each param.options as |item|}}\\n                <option\\n                  value={{item.value}}\\n                  selected={{eq param.value item.value}}\\n                >\\n                  {{item.label}}\\n                </option>\\n              {{/each}}\\n            </select>\\n          {{else}}\\n            <input\\n              class=\\\"form-input\\\"\\n              id=\\\"{{action.key}}-{{param.name}}\\\"\\n              name={{param.name}}\\n              type={{param.type}}\\n              value={{param.value}}\\n            />\\n          {{/if}}\\n        </fieldset>\\n      {{/each}}\\n\\n      <button data-test-debug-action={{action.key}} type=\\\"submit\\\">\\n        {{title-case action.key}}\\n      </button>\\n    </form>\\n  {{/each}}\\n\\n  {{#each this.debugValues as |value|}}\\n    <figure>\\n      <figcaption>\\n        {{title-case value}}\\n      </figcaption>\\n\\n      <pre\\n        data-test-debug-value={{value}}\\n        data-debug=\\\"{{get this value}}\\\"\\n        title=\\\"Copy to Clipboard\\\"\\n        role=\\\"button\\\"\\n        tabindex=\\\"0\\\"\\n        {{on \\\"click\\\" this.copyToClipboard}}\\n      ></pre>\\n    </figure>\\n  {{/each}}\\n\\n  {{#each this.debugSubscriptions as |subscription|}}\\n    <figure>\\n      <figcaption>\\n        {{title-case subscription.key}}\\n      </figcaption>\\n\\n      <pre\\n        data-test-debug-value={{subscription.key}}\\n        data-debug=\\\"{{subscription.currentValue}}\\\"\\n        title=\\\"Copy to Clipboard\\\"\\n        role=\\\"button\\\"\\n        tabindex=\\\"0\\\"\\n        {{on \\\"click\\\" this.copyToClipboard}}\\n      ></pre>\\n    </figure>\\n  {{/each}}\\n</div>\",\"moduleName\":\"fast-phonics-client/components/content-interactive/debug.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/content-interactive/debug.hbs\"}});\nimport { assert } from '@ember/debug'\nimport { action } from '@ember/object'\nimport Component from '@glimmer/component'\nimport { tracked } from '@glimmer/tracking'\nimport type { Subscribe } from '@blakeelearning/messenger'\nimport {\n  getDebug,\n  type DebugActionParam,\n} from 'fast-phonics-client/utils/debug'\n\ninterface Args {\n  contentActions?: Record<string | symbol, unknown>\n}\n\ntype DebugParam = DebugActionParam & {\n  /**\n   * The name of the input field\n   */\n  name: string\n}\n\ninterface DebugAction {\n  key: string | symbol\n  params: DebugParam[]\n}\n\nclass DebugObservable {\n  @tracked currentValue?: string\n\n  key: string | symbol\n\n  // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n  unsubscribe: (() => void) | void\n\n  constructor(key: string | symbol, subscribe: Subscribe) {\n    this.key = key\n\n    this.unsubscribe = subscribe({\n      next: (value) => {\n        this.currentValue = JSON.stringify(value.data, null, 2)\n      },\n      error(error) {\n        console.log(error)\n      },\n      complete() {\n        console.log('done')\n      },\n    })\n  }\n}\n\n/**\n * Displays values and actions from the DebugContent in a debug menu\n *\n * Displays values as JSON strings\n *\n * Displays actions a form, with action params as input fields\n */\nexport default class ContentInteractiveDebugComponent extends Component<Args> {\n  debugValues: (string | symbol)[] = []\n\n  debugActions: DebugAction[] = []\n\n  debugSubscriptions: DebugObservable[] = []\n\n  constructor(owner: unknown, args: Args) {\n    super(owner, args)\n\n    const debug = getDebug(this.contentActions)\n\n    for (const [key, actionParams] of debug.actions) {\n      const params = []\n\n      if (typeof actionParams !== 'undefined') {\n        for (const [name, param] of Object.entries(actionParams)) {\n          params.push({ name, ...param })\n        }\n      }\n\n      this.debugActions.push({ key, params })\n    }\n\n    for (const key of debug.values) {\n      Object.defineProperty(this, key, {\n        get() {\n          // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n          return JSON.stringify(this.contentActions[key], null, 2)\n        },\n      })\n\n      this.debugValues.push(key)\n    }\n\n    for (const key of debug.subscriptions) {\n      const subscribe = this.contentActions[key]\n\n      if (typeof subscribe === 'function') {\n        const observable = new DebugObservable(key, subscribe as Subscribe)\n        this.debugSubscriptions.push(observable)\n      }\n    }\n  }\n\n  get contentActions() {\n    assert(\n      'contentActions must be defined',\n      typeof this.args.contentActions !== 'undefined',\n    )\n    return this.args.contentActions\n  }\n\n  @action\n  copyToClipboard(event: Event) {\n    if (\n      event.target instanceof HTMLElement &&\n      typeof event.target.dataset['debug'] === 'string'\n    ) {\n      void navigator.clipboard.writeText(event.target.dataset['debug'])\n    }\n  }\n\n  @action\n  onSubmit(actionKey: string, event: Event) {\n    event.preventDefault()\n\n    const debug = getDebug(this.contentActions)\n    const debugAction = this.contentActions[actionKey]\n    const debugParams = debug.actions.get(actionKey) ?? []\n\n    assert('debug action must be a function', typeof debugAction === 'function')\n\n    if (event.currentTarget instanceof HTMLFormElement) {\n      const params = new Map()\n      const formData = new FormData(event.currentTarget)\n\n      for (const [key, _paramType] of Object.entries(debugParams)) {\n        const value = formData.get(key)\n\n        params.set(key, value)\n      }\n\n      // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n      debugAction(Object.fromEntries(params))\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if this.debugAllowed}}\\n  <div\\n    class=\\\"absolute right-0 top-0 overflow-y-auto rounded-bl-md bg-dusty-black-500 bg-opacity-50\\\"\\n  >\\n    <div class=\\\"relative\\\">\\n      <button\\n        class=\\\"ml-auto block rounded-bl-md bg-dusty-black-400 bg-opacity-80 px-3 py-2 text-white shadow-sm\\\"\\n        data-test-toggle-debug=\\\"true\\\"\\n        {{on \\\"click\\\" this.toggleDebug}}\\n        type=\\\"button\\\"\\n      >\\n        {{this.buttonText}}\\n      </button>\\n\\n      {{#if this.debugMode.enabled}}\\n        {{yield}}\\n      {{/if}}\\n    </div>\\n  </div>\\n{{/if}}\", {\"contents\":\"{{#if this.debugAllowed}}\\n  <div\\n    class=\\\"absolute right-0 top-0 overflow-y-auto rounded-bl-md bg-dusty-black-500 bg-opacity-50\\\"\\n  >\\n    <div class=\\\"relative\\\">\\n      <button\\n        class=\\\"ml-auto block rounded-bl-md bg-dusty-black-400 bg-opacity-80 px-3 py-2 text-white shadow-sm\\\"\\n        data-test-toggle-debug=\\\"true\\\"\\n        {{on \\\"click\\\" this.toggleDebug}}\\n        type=\\\"button\\\"\\n      >\\n        {{this.buttonText}}\\n      </button>\\n\\n      {{#if this.debugMode.enabled}}\\n        {{yield}}\\n      {{/if}}\\n    </div>\\n  </div>\\n{{/if}}\",\"moduleName\":\"fast-phonics-client/components/debug-app/toggle-debug.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/debug-app/toggle-debug.hbs\"}});\nimport { inject as service } from '@ember/service'\nimport { action } from '@ember/object'\nimport Component from '@glimmer/component'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\n\n/**\n * Provide a button to toggle debug mode globally\n */\nexport default class ToggleDebug extends Component {\n  @service declare debugMode: DebugModeService\n\n  get debugAllowed() {\n    return this.debugMode.debugAllowed\n  }\n\n  get buttonText() {\n    if (this.debugMode.enabled) {\n      return 'Disable Debug Mode'\n    }\n    return 'Enable Debug Mode'\n  }\n\n  @action\n  toggleDebug() {\n    if (this.debugMode.enabled) {\n      this.debugMode.disable()\n    } else {\n      this.debugMode.enable()\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<FullViewport>\\n  <div class={{style-namespace \\\"debug-mode/complete-stones\\\"}} ...attributes>\\n    <div\\n      class=\\\"flex flex-col justify-center w-full h-screen complete-stones-container\\\"\\n    >\\n      {{#if this.isInteractiveActivity}}\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-complete-activity-pass\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passActivity}}\\n          >\\n            Pass Interactive Activity\\n          </button>\\n\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-complete-activity-fail\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.failActivity}}\\n          >\\n            Fail Interactive Activity\\n          </button>\\n        </div>\\n      {{/if}}\\n      {{#if this.isVideoActivity}}\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-complete-video-activity-pass\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passVideoActivity}}\\n          >\\n            Pass Video Activity\\n          </button>\\n        </div>\\n      {{/if}}\\n      {{#if this.isBookActivity}}\\n\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-pass-book-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passBookQuiz}}\\n          >\\n            Pass Book Quiz\\n          </button>\\n\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-fail-book-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.failBookQuiz}}\\n          >\\n            Fail Book Quiz\\n          </button>\\n        </div>\\n      {{/if}}\\n      {{#if this.isQuizActivity}}\\n\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-pass-peak-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passPeakQuiz}}\\n          >\\n            Pass Peak Quiz\\n          </button>\\n\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-fail-peak-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.failPeakQuiz}}\\n          >\\n            Fail Peak Quiz\\n          </button>\\n        </div>\\n      {{/if}}\\n\\n      <div class=\\\"complete-stone-item\\\">\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-error\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.unhandledError}}\\n        >\\n          Error\\n        </button>\\n\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-unauthorized-error\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.unhandledUnauthorizedError}}\\n        >\\n          Authorization Error\\n        </button>\\n      </div>\\n    </div>\\n  </div>\\n</FullViewport>\", {\"contents\":\"<FullViewport>\\n  <div class={{style-namespace \\\"debug-mode/complete-stones\\\"}} ...attributes>\\n    <div\\n      class=\\\"flex flex-col justify-center w-full h-screen complete-stones-container\\\"\\n    >\\n      {{#if this.isInteractiveActivity}}\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-complete-activity-pass\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passActivity}}\\n          >\\n            Pass Interactive Activity\\n          </button>\\n\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-complete-activity-fail\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.failActivity}}\\n          >\\n            Fail Interactive Activity\\n          </button>\\n        </div>\\n      {{/if}}\\n      {{#if this.isVideoActivity}}\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-complete-video-activity-pass\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passVideoActivity}}\\n          >\\n            Pass Video Activity\\n          </button>\\n        </div>\\n      {{/if}}\\n      {{#if this.isBookActivity}}\\n\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-pass-book-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passBookQuiz}}\\n          >\\n            Pass Book Quiz\\n          </button>\\n\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-fail-book-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.failBookQuiz}}\\n          >\\n            Fail Book Quiz\\n          </button>\\n        </div>\\n      {{/if}}\\n      {{#if this.isQuizActivity}}\\n\\n        <div class=\\\"complete-stone-item\\\">\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-pass-peak-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.passPeakQuiz}}\\n          >\\n            Pass Peak Quiz\\n          </button>\\n\\n          <button\\n            class=\\\"mx-2 w-1/4\\\"\\n            data-test-fail-peak-quiz\\n            type=\\\"button\\\"\\n            {{on \\\"click\\\" this.failPeakQuiz}}\\n          >\\n            Fail Peak Quiz\\n          </button>\\n        </div>\\n      {{/if}}\\n\\n      <div class=\\\"complete-stone-item\\\">\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-error\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.unhandledError}}\\n        >\\n          Error\\n        </button>\\n\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-unauthorized-error\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.unhandledUnauthorizedError}}\\n        >\\n          Authorization Error\\n        </button>\\n      </div>\\n    </div>\\n  </div>\\n</FullViewport>\",\"moduleName\":\"fast-phonics-client/components/debug-mode/complete-stones.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/debug-mode/complete-stones.hbs\"}});\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Component from '@glimmer/component'\nimport { v7 as uuidV7 } from 'uuid'\nimport { v4 as uuidV4 } from 'uuid'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type { StoneContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\nimport progressionSequence from '@blakeelearning/progression-sequence-fast-phonics/dist/progression.json'\n\ninterface DebugModeCompleteStonesArgs {\n  contentActions: StoneContentActions\n  activityType: 'book' | 'interactive' | 'quiz' | 'video'\n  activityId: keyof typeof progressionSequence\n}\n\ninterface QuizResults {\n  correctAnswers: string[]\n  incorrectAnswers?: string[][]\n}\n\nexport default class DebugModeCompleteStones extends Component<DebugModeCompleteStonesArgs> {\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  constructor(owner: unknown, args: DebugModeCompleteStonesArgs) {\n    super(owner, args)\n    this.loadingUi.finish()\n  }\n\n  get isInteractiveActivity(): boolean {\n    return this.args.activityType === 'interactive'\n  }\n\n  get isBookActivity(): boolean {\n    return this.args.activityType === 'book'\n  }\n  get isQuizActivity(): boolean {\n    return this.args.activityType === 'quiz'\n  }\n  get isVideoActivity(): boolean {\n    return this.args.activityType === 'video'\n  }\n\n  // Fakes what content passes to FE as `quizData` for a pass result\n  get passQuizResult(): QuizResults {\n    const studentPassResult = {\n      correctAnswers: [\n        'one',\n        'two',\n        'three',\n        'four',\n        'five',\n        'six',\n        'seven',\n        'eight',\n        'nine',\n        'ten',\n      ],\n    }\n    return studentPassResult\n  }\n\n  // Fakes what content passes to FE as `quizData` for a fail result\n  get failQuizResult(): QuizResults {\n    const studentFailResult = {\n      correctAnswers: [],\n      incorrectAnswers: [\n        ['on', 'one'],\n        ['twwo', 'two'],\n        ['thee', 'three'],\n        ['foor', 'four'],\n        ['fiv', 'five'],\n        ['siix', 'six'],\n        ['sevvn', 'seven'],\n        ['ate', 'eight'],\n        ['mine', 'nine'],\n        ['tten', 'ten'],\n      ],\n    }\n    return studentFailResult\n  }\n\n  get questionCount(): number {\n    if (this.isQuizActivity) return 10\n    //@ts-expect-error shush typescript\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n    return progressionSequence[this.args.activityId].questionCount\n  }\n\n  @action async passActivity(): Promise<void> {\n    await this.args.contentActions.saveActivityResult({\n      uuid: uuidV7(),\n      correctCount: this.questionCount,\n      totalCount: this.questionCount,\n    })\n    this.args.contentActions.next()\n  }\n\n  @action async failActivity(): Promise<void> {\n    await this.args.contentActions.saveActivityResult({\n      uuid: uuidV7(),\n      correctCount: 0,\n      totalCount: this.questionCount,\n    })\n    this.args.contentActions.next()\n  }\n\n  @action async passVideoActivity(): Promise<void> {\n    await this.args.contentActions.completeVideo()\n  }\n\n  @action async passBookQuiz(): Promise<void> {\n    await this.args.contentActions.saveBookQuizResult({\n      quizData: {\n        correctAnswers: Array.from(\n          { length: this.questionCount },\n          (_, i) => `debug-correct-${(i + 1).toString()}`,\n        ),\n        incorrectAnswers: [],\n      },\n      readRepeat: false,\n      uuid: uuidV4(),\n    })\n    this.args.contentActions.next()\n  }\n\n  @action async failBookQuiz(): Promise<void> {\n    await this.args.contentActions.saveBookQuizResult({\n      quizData: {\n        correctAnswers: [],\n        incorrectAnswers: Array.from({ length: this.questionCount }, (_, i) => [\n          `debug-incorrect-student-input-${(i + 1).toString()}`,\n          `debug-correct-${(i + 1).toString()}`,\n        ]),\n      },\n      readRepeat: false,\n      uuid: uuidV4(),\n    })\n    this.args.contentActions.next()\n  }\n\n  @action async passPeakQuiz(): Promise<void> {\n    await this.args.contentActions.savePeakQuizResult({\n      correctAnswers: Array.from(\n        { length: this.questionCount },\n        (_, i) => `debug-correct-${(i + 1).toString()}`,\n      ),\n      incorrectAnswers: [],\n      uuid: uuidV4(),\n    })\n    this.args.contentActions.next()\n  }\n\n  @action async failPeakQuiz(): Promise<void> {\n    await this.args.contentActions.savePeakQuizResult({\n      correctAnswers: [],\n      incorrectAnswers: Array.from({ length: this.questionCount }, (_, i) => [\n        `debug-incorrect-student-input-${(i + 1).toString()}`,\n        `debug-correct-${(i + 1).toString()}`,\n      ]),\n      uuid: uuidV4(),\n    })\n    this.args.contentActions.next()\n  }\n\n  @action unhandledError(): void {\n    const error = new Error('manually triggered from debug-mode')\n    this.errorHandler.transitionToErrorRoute(error)\n  }\n\n  @action unhandledUnauthorizedError(): void {\n    const unauthorizedError = new NotAuthenticatedError(\n      'manually triggered from debug-mode',\n    )\n\n    this.errorHandler.transitionToErrorRoute(unauthorizedError)\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<FullViewport>\\n  <div class={{style-namespace \\\"debug-mode/intro-video\\\"}} ...attributes>\\n    <div\\n      class=\\\"flex flex-col justify-center w-full h-screen intro-video-container\\\"\\n    >\\n      <div class=\\\"complete-video\\\">\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-go-back\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.goBack}}\\n        >\\n          Go Back\\n        </button>\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-complete-video\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.completeVideo}}\\n        >\\n          Complete Video\\n        </button>\\n      </div>\\n    </div>\\n  </div>\\n</FullViewport>\", {\"contents\":\"<FullViewport>\\n  <div class={{style-namespace \\\"debug-mode/intro-video\\\"}} ...attributes>\\n    <div\\n      class=\\\"flex flex-col justify-center w-full h-screen intro-video-container\\\"\\n    >\\n      <div class=\\\"complete-video\\\">\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-go-back\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.goBack}}\\n        >\\n          Go Back\\n        </button>\\n        <button\\n          class=\\\"mx-2 w-1/4\\\"\\n          data-test-complete-video\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.completeVideo}}\\n        >\\n          Complete Video\\n        </button>\\n      </div>\\n    </div>\\n  </div>\\n</FullViewport>\",\"moduleName\":\"fast-phonics-client/components/debug-mode/intro-video.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/debug-mode/intro-video.hbs\"}});\nimport Component from '@glimmer/component'\nimport { inject as service } from '@ember/service'\nimport { action } from '@ember/object'\nimport type { VideoContentActions } from '@blakeelearning/content-specs-fast-phonics'\n\ninterface DebugModeIntroVideoComponentArgs {\n  contentActions: VideoContentActions\n}\n\nexport default class DebugModeIntroVideoComponent extends Component<DebugModeIntroVideoComponentArgs> {\n  @service declare loadingUi: { finish: () => void } // FIXME: Once the loadingUI is converted to TS\n\n  constructor(owner: unknown, args: DebugModeIntroVideoComponentArgs) {\n    super(owner, args)\n    this.loadingUi.finish()\n  }\n\n  @action completeVideo(): void {\n    this.args.contentActions.completeVideo()\n  }\n\n  @action goBack(): void {\n    this.args.contentActions.goBack()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class={{style-namespace \\\"debug-mode/placement-test\\\"}} ...attributes>\\n  {{#if this.peakPlacement}}\\n    <div class=\\\"flex flex-col justify-center items-center h-screen\\\">\\n      <p data-test-peak-placement class=\\\"text-lg m-4\\\">You have been placed on\\n        Peak\\n        {{this.peakPlacement}}</p>\\n\\n      <button\\n        data-test-go-to-peaks\\n        class=\\\"placement-test-button\\\"\\n        type=\\\"button\\\"\\n        {{on \\\"click\\\" @contentActions.goToPeaks}}\\n      >\\n        Go To Peaks\\n      </button>\\n    </div>\\n  {{else}}\\n\\n    <div class=\\\"mt-2 flex flex-col items-center h-screen justify-center\\\">\\n      <div class=\\\"flex justify-center items-stretch space-x-3\\\">\\n        <button\\n          data-test-back\\n          class=\\\"placement-test-button\\\"\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" @contentActions.goBack}}\\n        >\\n          Back\\n        </button>\\n\\n        <button\\n          class=\\\"placement-test-button\\\"\\n          data-test-skip-placement-test\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.skipPlacementTest}}\\n        >\\n          Skip Placement Test\\n        </button>\\n\\n        <label>\\n          <span>Question Number:</span>\\n          <select\\n            data-test-question-number\\n            class=\\\"p-2 text-lg h-full\\\"\\n            {{on \\\"change\\\" this.setQuestionNumber}}\\n          >\\n            {{#each this.questionNumbers as |questionNumber|}}\\n              <option>{{questionNumber}}</option>\\n            {{/each}}\\n          </select>\\n        </label>\\n\\n        <button\\n          data-test-pass-placement-test\\n          class=\\\"placement-test-button\\\"\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.saveTestResults}}\\n        >\\n          Pass Placement Test\\n        </button>\\n      </div>\\n\\n    </div>\\n  {{/if}}\\n</div>\", {\"contents\":\"<div class={{style-namespace \\\"debug-mode/placement-test\\\"}} ...attributes>\\n  {{#if this.peakPlacement}}\\n    <div class=\\\"flex flex-col justify-center items-center h-screen\\\">\\n      <p data-test-peak-placement class=\\\"text-lg m-4\\\">You have been placed on\\n        Peak\\n        {{this.peakPlacement}}</p>\\n\\n      <button\\n        data-test-go-to-peaks\\n        class=\\\"placement-test-button\\\"\\n        type=\\\"button\\\"\\n        {{on \\\"click\\\" @contentActions.goToPeaks}}\\n      >\\n        Go To Peaks\\n      </button>\\n    </div>\\n  {{else}}\\n\\n    <div class=\\\"mt-2 flex flex-col items-center h-screen justify-center\\\">\\n      <div class=\\\"flex justify-center items-stretch space-x-3\\\">\\n        <button\\n          data-test-back\\n          class=\\\"placement-test-button\\\"\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" @contentActions.goBack}}\\n        >\\n          Back\\n        </button>\\n\\n        <button\\n          class=\\\"placement-test-button\\\"\\n          data-test-skip-placement-test\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.skipPlacementTest}}\\n        >\\n          Skip Placement Test\\n        </button>\\n\\n        <label>\\n          <span>Question Number:</span>\\n          <select\\n            data-test-question-number\\n            class=\\\"p-2 text-lg h-full\\\"\\n            {{on \\\"change\\\" this.setQuestionNumber}}\\n          >\\n            {{#each this.questionNumbers as |questionNumber|}}\\n              <option>{{questionNumber}}</option>\\n            {{/each}}\\n          </select>\\n        </label>\\n\\n        <button\\n          data-test-pass-placement-test\\n          class=\\\"placement-test-button\\\"\\n          type=\\\"button\\\"\\n          {{on \\\"click\\\" this.saveTestResults}}\\n        >\\n          Pass Placement Test\\n        </button>\\n      </div>\\n\\n    </div>\\n  {{/if}}\\n</div>\",\"moduleName\":\"fast-phonics-client/components/debug-mode/placement-test.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/debug-mode/placement-test.hbs\"}});\nimport { action } from '@ember/object'\nimport Component from '@glimmer/component'\nimport { inject as service } from '@ember/service'\nimport { tracked } from '@glimmer/tracking'\nimport { assert } from '@ember/debug'\nimport type { PlacementTestContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport { v4 as uuidV4 } from 'uuid'\n\ninterface DebugModePlacementTestComponentArgs {\n  contentActions: Omit<PlacementTestContentActions, 'checkAudio'>\n}\n\n// eslint-disable-next-line ember/no-test-import-export\nexport default class DebugModePlacementTestComponent extends Component<DebugModePlacementTestComponentArgs> {\n  constructor(owner: unknown, args: DebugModePlacementTestComponentArgs) {\n    super(owner, args)\n    this.loadingUi.finish()\n  }\n\n  @service declare loadingUi: { finish: () => void } // FIXME: Once the loadingUI is converted to TS\n\n  @tracked peakPlacement: number | null = null\n\n  @tracked questionNumber = 3\n\n  questionNumbers = Array.from(\n    (function* () {\n      for (let i = 3; i <= 22; i++) {\n        yield i\n      }\n    })(),\n  )\n\n  @action async saveTestResults(): Promise<void> {\n    const { questionNumber } = this\n    const { peakNumber } = await this.args.contentActions.saveTestResults({\n      questionNumber,\n      // @ts-expect-error uuid is not in the type definition :/\n      uuid: uuidV4()\n    })\n    this.peakPlacement = peakNumber\n  }\n\n  @action async skipPlacementTest(): Promise<void> {\n    await this.args.contentActions.skipPlacementTest({\n      reason: 'level_checker',\n    })\n    this.peakPlacement = 1\n  }\n\n  @action\n  setQuestionNumber(event: Event): void {\n    assert('target is required', event.target instanceof HTMLSelectElement)\n\n    this.questionNumber = Number(event.target.value)\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if this.shouldDisplay}}\\n  <div class=\\\"{{style-namespace 'debug-mode/toggle-debug'}}\\\">\\n    <button\\n      data-test-toggle-debug-button\\n      class=\\\"toggle-button\\\"\\n      type=\\\"button\\\"\\n      {{on \\\"click\\\" this.toggleDebug}}\\n    >\\n      {{#if this.debugModeEnabled}}\\n        Disable QA Debug Mode\\n      {{else}}\\n        Enable QA Debug Mode\\n      {{/if}}\\n    </button>\\n  </div>\\n{{/if}}\", {\"contents\":\"{{#if this.shouldDisplay}}\\n  <div class=\\\"{{style-namespace 'debug-mode/toggle-debug'}}\\\">\\n    <button\\n      data-test-toggle-debug-button\\n      class=\\\"toggle-button\\\"\\n      type=\\\"button\\\"\\n      {{on \\\"click\\\" this.toggleDebug}}\\n    >\\n      {{#if this.debugModeEnabled}}\\n        Disable QA Debug Mode\\n      {{else}}\\n        Enable QA Debug Mode\\n      {{/if}}\\n    </button>\\n  </div>\\n{{/if}}\",\"moduleName\":\"fast-phonics-client/components/debug-mode/toggle-debug.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/debug-mode/toggle-debug.hbs\"}});\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Component from '@glimmer/component'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\n\nexport default class DebugModeToggleDebug extends Component {\n  @service declare debugMode: DebugModeService\n\n  get shouldDisplay(): boolean {\n    return this.debugMode.debugAllowed\n  }\n\n  get debugModeEnabled(): boolean {\n    return this.debugMode.enabled\n  }\n\n  @action toggleDebug(): void {\n    const { debugMode } = this\n\n    if (debugMode.enabled) {\n      debugMode.disable()\n    } else {\n      debugMode.enable()\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div\\n  class=\\\"container mx-auto bg-white mt-4 p-8 rounded-lg shadow-xl\\n    {{style-namespace 'debug-mode/yeti-shop'}}\\\"\\n>\\n  <button data-test-go-back {{on \\\"click\\\" this.goBack}} type=\\\"button\\\">\\n    Go Back</button>\\n  <h1 class=\\\"text-3xl font-bold mb-4 mt-2\\\"> Debug Yeti Shop</h1>\\n  <p class=\\\"my-4\\\" data-test-current-yeti>Current yeti: {{this.selectedYeti}}</p>\\n  <p class=\\\"my-4\\\" data-test-coins>Coins: {{this.coins}}</p>\\n  <h2 class=\\\"text-xl font-bold mb-4\\\">Yetis</h2>\\n  <ul>\\n    {{#each this.yetiMenu as |yeti|}}\\n      <li class=\\\"flex my-4 items-center\\\" data-test-yeti-list-item>\\n        <span class=\\\"flex-1\\\">{{yeti.id}}</span>\\n        <span class=\\\"flex-1\\\">\\n          {{#if yeti.price}}\\n            {{yeti.price}}\\n          {{else}}\\n            Free\\n          {{/if}}\\n        </span>\\n        <span class=\\\"flex-1\\\">\\n          {{#if yeti.purchasable}}\\n            <button\\n              data-test-yeti-purchase\\n              type=\\\"button\\\"\\n              {{on \\\"click\\\" (fn this.purchaseYeti yeti.id)}}\\n            >Purchase</button>\\n          {{/if}}\\n          {{#if yeti.selectable}}\\n            <button\\n              data-test-yeti-select\\n              type=\\\"button\\\"\\n              {{on \\\"click\\\" (fn this.selectYeti yeti.id)}}\\n            >Select</button>\\n          {{/if}}\\n        </span>\\n      </li>\\n    {{/each}}\\n  </ul>\\n  <p data-test-message>\\n    {{this.message}}\\n  </p>\\n</div>\", {\"contents\":\"<div\\n  class=\\\"container mx-auto bg-white mt-4 p-8 rounded-lg shadow-xl\\n    {{style-namespace 'debug-mode/yeti-shop'}}\\\"\\n>\\n  <button data-test-go-back {{on \\\"click\\\" this.goBack}} type=\\\"button\\\">\\n    Go Back</button>\\n  <h1 class=\\\"text-3xl font-bold mb-4 mt-2\\\"> Debug Yeti Shop</h1>\\n  <p class=\\\"my-4\\\" data-test-current-yeti>Current yeti: {{this.selectedYeti}}</p>\\n  <p class=\\\"my-4\\\" data-test-coins>Coins: {{this.coins}}</p>\\n  <h2 class=\\\"text-xl font-bold mb-4\\\">Yetis</h2>\\n  <ul>\\n    {{#each this.yetiMenu as |yeti|}}\\n      <li class=\\\"flex my-4 items-center\\\" data-test-yeti-list-item>\\n        <span class=\\\"flex-1\\\">{{yeti.id}}</span>\\n        <span class=\\\"flex-1\\\">\\n          {{#if yeti.price}}\\n            {{yeti.price}}\\n          {{else}}\\n            Free\\n          {{/if}}\\n        </span>\\n        <span class=\\\"flex-1\\\">\\n          {{#if yeti.purchasable}}\\n            <button\\n              data-test-yeti-purchase\\n              type=\\\"button\\\"\\n              {{on \\\"click\\\" (fn this.purchaseYeti yeti.id)}}\\n            >Purchase</button>\\n          {{/if}}\\n          {{#if yeti.selectable}}\\n            <button\\n              data-test-yeti-select\\n              type=\\\"button\\\"\\n              {{on \\\"click\\\" (fn this.selectYeti yeti.id)}}\\n            >Select</button>\\n          {{/if}}\\n        </span>\\n      </li>\\n    {{/each}}\\n  </ul>\\n  <p data-test-message>\\n    {{this.message}}\\n  </p>\\n</div>\",\"moduleName\":\"fast-phonics-client/components/debug-mode/yeti-shop.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/debug-mode/yeti-shop.hbs\"}});\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Component from '@glimmer/component'\nimport { tracked } from '@glimmer/tracking'\nimport { v4 as uuidV4 } from 'uuid'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type { YetiShopContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport type UserService from 'fast-phonics-client/services/user'\n\ninterface Yeti {\n  id: string\n  price: number\n}\n\ninterface DebugModeYetiShopArgs {\n  contentActions: YetiShopContentActions\n  yetis?: Yeti[]\n}\n\ninterface YetiMenu {\n  id: string\n  price: number\n  purchasable: boolean\n  selectable: boolean\n}\n\nexport default class DebugModeYetiShop extends Component<DebugModeYetiShopArgs> {\n  constructor(owner: unknown, args: DebugModeYetiShopArgs) {\n    super(owner, args)\n    this.loadingUi.finish()\n  }\n\n  @tracked message: string | null = null\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare user: UserService\n\n  get student() {\n    return this.user.student\n  }\n\n  get rewardTotals() {\n    return this.user.student.rewardTotals\n  }\n\n  get coins(): number {\n    return this.rewardTotals.coins\n  }\n\n  get selectedYeti(): string {\n    return this.student.selectedYeti\n  }\n\n  get yetiMenu(): YetiMenu[] {\n    const yetis = this.args.yetis ?? []\n    const { purchases } = this.student\n\n    return yetis.map(({ id, price }) => {\n      const purchased = purchases.slice().some(({ item }) => item === id)\n      const purchasable = price > 0 && !purchased\n      const selectable = price === 0 || purchased\n      return { id, price, purchasable, selectable }\n    })\n  }\n\n  @action async purchaseYeti(id: string): Promise<void> {\n    this.message = 'Purchasing...'\n    try {\n      await this.args.contentActions.purchaseYeti({ uuid: uuidV4(), id })\n      this.message = 'You bought it'\n    } catch (_error) {\n      this.message = `Failed to purchase ${id} yeti`\n    }\n  }\n\n  @action async selectYeti(id: string): Promise<void> {\n    this.message = 'Selecting...'\n    try {\n      await this.args.contentActions.selectYeti({ id })\n      this.message = 'You selected it'\n    } catch (_error) {\n      this.message = `Failed to select ${id} yeti`\n    }\n  }\n\n  @action goBack(): void {\n    this.args.contentActions.goBack()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div\\n  class=\\\"bg-fp-purple-300 bg-furballs fixed top-0 left-0 w-full h-screen flex-col items-center justify-center z-50 hidden touch-device:portrait:flex\\\"\\n  data-test-rotate-notification\\n>\\n  <img\\n    src=\\\"/assets/svgs/rotate-device-white.svg\\\"\\n    alt=\\\"Please rotate your device\\\"\\n    class=\\\"w-2/3 mb-8\\\"\\n  />\\n  <h2 class=\\\"font-fastphonics text-white text-shadow text-xl sm:text-3xl\\\">Please\\n    rotate your device.</h2>\\n</div>\", {\"contents\":\"<div\\n  class=\\\"bg-fp-purple-300 bg-furballs fixed top-0 left-0 w-full h-screen flex-col items-center justify-center z-50 hidden touch-device:portrait:flex\\\"\\n  data-test-rotate-notification\\n>\\n  <img\\n    src=\\\"/assets/svgs/rotate-device-white.svg\\\"\\n    alt=\\\"Please rotate your device\\\"\\n    class=\\\"w-2/3 mb-8\\\"\\n  />\\n  <h2 class=\\\"font-fastphonics text-white text-shadow text-xl sm:text-3xl\\\">Please\\n    rotate your device.</h2>\\n</div>\",\"moduleName\":\"fast-phonics-client/components/device-rotate-notification.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/device-rotate-notification.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<FullViewport\\n  tabindex=\\\"-1\\\"\\n  class=\\\"bg-storm-blue-500 bg-opacity-80 backdrop-blur-sm\\\"\\n  ...attributes\\n>\\n  {{yield}}\\n</FullViewport>\", {\"contents\":\"<FullViewport\\n  tabindex=\\\"-1\\\"\\n  class=\\\"bg-storm-blue-500 bg-opacity-80 backdrop-blur-sm\\\"\\n  ...attributes\\n>\\n  {{yield}}\\n</FullViewport>\",\"moduleName\":\"fast-phonics-client/components/dialog/overlay.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/dialog/overlay.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<error-screen\\n  class=\\\"{{style-namespace 'error-screen'}} font-fastphonics\\\"\\n  {{remove-loading-screen}}\\n>\\n  <FullViewport>\\n    {{#let this.furballPalette as |palette|}}\\n      <div class=\\\"flex flex-row h-full items-stretch\\\">\\n        <div\\n          class=\\\"flex-1 flex flex-column justify-end items-end p-4 lg:mb-8 xl:mb-16 portrait:hidden\\\"\\n        >\\n          <div\\n            class=\\\"furball furball-{{get palette 0}}\\\"\\n            data-test-left-furball\\n          ></div>\\n        </div>\\n\\n        <div\\n          class=\\\"middle-column justify-around landscape-height-m:justify-center\\\"\\n        >\\n          <div class=\\\"logo\\\">\\n            <img\\n              src=\\\"/assets/images/fast-phonics-logo.png\\\"\\n              alt=\\\"Fast Phonics\\\"\\n              class=\\\"mx-auto max-h-full w-auto\\\"\\n            />\\n          </div>\\n\\n          <div\\n            class=\\\"text-white text-shadow text-center text-base landscape-height-s:text-2xl landscape-height-m:text-4xl portrait:text-2xl landscape-height-m:my-12\\\"\\n          >\\n            <h2>Oh no!</h2>\\n            {{#if (has-block)}}\\n              {{yield}}\\n            {{else}}\\n              <p data-test-something-has-gone-wrong>Something has gone wrong.</p>\\n              <p\\n                data-test-please-go-to-peaks\\n                class=\\\"paragraph-space-1/2 landscape-height-s:paragraph-space-1 portrait:paragraph-space-1\\\"\\n              >Please go to Peaks</p>\\n            {{/if}}\\n          </div>\\n\\n          <div class=\\\"return-button\\\">\\n            <button\\n              data-test-error-screen-button\\n              type=\\\"button\\\"\\n              class=\\\"h-full flex justify-center items-center\\\"\\n              {{on \\\"click\\\" this.return}}\\n            >\\n              <img\\n                data-test-error-screen-button-image\\n                src={{if\\n                  @returnButtonImage\\n                  @returnButtonImage\\n                  \\\"/assets/images/go-to-peaks-button.png\\\"\\n                }}\\n                alt={{if\\n                  @returnButtonText\\n                  @returnButtonText\\n                  \\\"Please go to Peaks\\\"\\n                }}\\n                class=\\\"return-button-image max-h-full w-auto\\\"\\n              />\\n            </button>\\n          </div>\\n        </div>\\n\\n        <div\\n          class=\\\"flex-1 flex flex-column justify-start items-end p-4 lg:mb-8 xl:mb-16 portrait:hidden\\\"\\n        >\\n          <div\\n            class=\\\"furball furball-{{get palette 1}} flipped\\\"\\n            data-test-right-furball\\n          ></div>\\n        </div>\\n      </div>\\n    {{/let}}\\n  </FullViewport>\\n</error-screen>\", {\"contents\":\"<error-screen\\n  class=\\\"{{style-namespace 'error-screen'}} font-fastphonics\\\"\\n  {{remove-loading-screen}}\\n>\\n  <FullViewport>\\n    {{#let this.furballPalette as |palette|}}\\n      <div class=\\\"flex flex-row h-full items-stretch\\\">\\n        <div\\n          class=\\\"flex-1 flex flex-column justify-end items-end p-4 lg:mb-8 xl:mb-16 portrait:hidden\\\"\\n        >\\n          <div\\n            class=\\\"furball furball-{{get palette 0}}\\\"\\n            data-test-left-furball\\n          ></div>\\n        </div>\\n\\n        <div\\n          class=\\\"middle-column justify-around landscape-height-m:justify-center\\\"\\n        >\\n          <div class=\\\"logo\\\">\\n            <img\\n              src=\\\"/assets/images/fast-phonics-logo.png\\\"\\n              alt=\\\"Fast Phonics\\\"\\n              class=\\\"mx-auto max-h-full w-auto\\\"\\n            />\\n          </div>\\n\\n          <div\\n            class=\\\"text-white text-shadow text-center text-base landscape-height-s:text-2xl landscape-height-m:text-4xl portrait:text-2xl landscape-height-m:my-12\\\"\\n          >\\n            <h2>Oh no!</h2>\\n            {{#if (has-block)}}\\n              {{yield}}\\n            {{else}}\\n              <p data-test-something-has-gone-wrong>Something has gone wrong.</p>\\n              <p\\n                data-test-please-go-to-peaks\\n                class=\\\"paragraph-space-1/2 landscape-height-s:paragraph-space-1 portrait:paragraph-space-1\\\"\\n              >Please go to Peaks</p>\\n            {{/if}}\\n          </div>\\n\\n          <div class=\\\"return-button\\\">\\n            <button\\n              data-test-error-screen-button\\n              type=\\\"button\\\"\\n              class=\\\"h-full flex justify-center items-center\\\"\\n              {{on \\\"click\\\" this.return}}\\n            >\\n              <img\\n                data-test-error-screen-button-image\\n                src={{if\\n                  @returnButtonImage\\n                  @returnButtonImage\\n                  \\\"/assets/images/go-to-peaks-button.png\\\"\\n                }}\\n                alt={{if\\n                  @returnButtonText\\n                  @returnButtonText\\n                  \\\"Please go to Peaks\\\"\\n                }}\\n                class=\\\"return-button-image max-h-full w-auto\\\"\\n              />\\n            </button>\\n          </div>\\n        </div>\\n\\n        <div\\n          class=\\\"flex-1 flex flex-column justify-start items-end p-4 lg:mb-8 xl:mb-16 portrait:hidden\\\"\\n        >\\n          <div\\n            class=\\\"furball furball-{{get palette 1}} flipped\\\"\\n            data-test-right-furball\\n          ></div>\\n        </div>\\n      </div>\\n    {{/let}}\\n  </FullViewport>\\n</error-screen>\",\"moduleName\":\"fast-phonics-client/components/error-screen.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/error-screen.hbs\"}});\nimport { inject as service } from '@ember/service'\nimport Component from '@glimmer/component'\nimport { action } from '@ember/object'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type RouterService from '@ember/routing/router-service'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport shuffle from 'lodash/shuffle'\n\ninterface ErrorScreenComponentArgs {\n  returnRoute: string\n}\n\nexport default class ErrorScreen extends Component<ErrorScreenComponentArgs> {\n  @service declare loadingUi: LoadingUiService\n\n  @service declare router: RouterService\n\n  @service declare progress: ProgressService\n\n  get furballPalette(): string[] {\n    return shuffle(['red', 'blue', 'green', 'purple', 'yellow'])\n  }\n\n  get returnRoute(): string {\n    return this.args.returnRoute || 'peaks'\n  }\n\n  @action return(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo(this.returnRoute)\n    })\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<ErrorScreen\\n  @returnRoute=\\\"login\\\"\\n  @returnButtonImage=\\\"/assets/images/login-button.png\\\"\\n  @returnButtonText=\\\"Login\\\"\\n>\\n  <p>Something has gone wrong.</p>\\n</ErrorScreen>\", {\"contents\":\"<ErrorScreen\\n  @returnRoute=\\\"login\\\"\\n  @returnButtonImage=\\\"/assets/images/login-button.png\\\"\\n  @returnButtonText=\\\"Login\\\"\\n>\\n  <p>Something has gone wrong.</p>\\n</ErrorScreen>\",\"moduleName\":\"fast-phonics-client/components/error-screen/login.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/error-screen/login.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<ErrorScreen\\n  @returnRoute=\\\"logout\\\"\\n  @returnButtonImage=\\\"/assets/images/return-to-home.png\\\"\\n  @returnButtonText=\\\"Home\\\"\\n>\\n  <p>Something has gone wrong.</p>\\n  <p\\n    class=\\\"paragraph-space-1/2 landscape-height-s:paragraph-space-1 portrait:paragraph-space-1\\\"\\n  >Please go to Home</p>\\n</ErrorScreen>\", {\"contents\":\"<ErrorScreen\\n  @returnRoute=\\\"logout\\\"\\n  @returnButtonImage=\\\"/assets/images/return-to-home.png\\\"\\n  @returnButtonText=\\\"Home\\\"\\n>\\n  <p>Something has gone wrong.</p>\\n  <p\\n    class=\\\"paragraph-space-1/2 landscape-height-s:paragraph-space-1 portrait:paragraph-space-1\\\"\\n  >Please go to Home</p>\\n</ErrorScreen>\",\"moduleName\":\"fast-phonics-client/components/error-screen/logout.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/error-screen/logout.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<ErrorScreen>\\n  <p>Page not found.</p>\\n</ErrorScreen>\", {\"contents\":\"<ErrorScreen>\\n  <p>Page not found.</p>\\n</ErrorScreen>\",\"moduleName\":\"fast-phonics-client/components/error-screen/not-found.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/error-screen/not-found.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div\\n  {{device/detection-classes \\\"iphone\\\"}}\\n  {{device/bind-viewport-height propertyName=\\\"--iphone-viewport-height\\\"}}\\n  class=\\\"fixed inset-0 h-iphone-viewport-height\\\"\\n  data-test-full-viewport\\n  ...attributes\\n>\\n  {{yield}}\\n</div>\", {\"contents\":\"<div\\n  {{device/detection-classes \\\"iphone\\\"}}\\n  {{device/bind-viewport-height propertyName=\\\"--iphone-viewport-height\\\"}}\\n  class=\\\"fixed inset-0 h-iphone-viewport-height\\\"\\n  data-test-full-viewport\\n  ...attributes\\n>\\n  {{yield}}\\n</div>\",\"moduleName\":\"fast-phonics-client/components/full-viewport.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/full-viewport.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div\\n  id=\\\"hidden-print-container\\\"\\n  data-test-hidden-print-container\\n  class=\\\"absolute top-0 w-full h-full flex items-center justify-center overflow-hidden invisible\\\"\\n>\\n  {{yield}}\\n</div>\", {\"contents\":\"<div\\n  id=\\\"hidden-print-container\\\"\\n  data-test-hidden-print-container\\n  class=\\\"absolute top-0 w-full h-full flex items-center justify-center overflow-hidden invisible\\\"\\n>\\n  {{yield}}\\n</div>\",\"moduleName\":\"fast-phonics-client/components/hidden-print-container.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/hidden-print-container.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<loading-screen\\n  class=\\\"{{style-namespace 'loading-screen'}}\\n    {{if this.loadingUi.isLoading 'fade-in' 'fade-out'}}\\\"\\n  {{! template-lint-disable no-inline-styles style-concatenation }}\\n  style=\\\"{{this.fadeDurationStyle}}\\\"\\n>\\n  <img id=\\\"loader\\\" src=\\\"/assets/svgs/loader.svg\\\" alt=\\\"Loading Fast Phonics\\\" />\\n</loading-screen>\", {\"contents\":\"<loading-screen\\n  class=\\\"{{style-namespace 'loading-screen'}}\\n    {{if this.loadingUi.isLoading 'fade-in' 'fade-out'}}\\\"\\n  {{! template-lint-disable no-inline-styles style-concatenation }}\\n  style=\\\"{{this.fadeDurationStyle}}\\\"\\n>\\n  <img id=\\\"loader\\\" src=\\\"/assets/svgs/loader.svg\\\" alt=\\\"Loading Fast Phonics\\\" />\\n</loading-screen>\",\"moduleName\":\"fast-phonics-client/components/loading-screen.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/loading-screen.hbs\"}});\nimport { inject as service } from '@ember/service'\nimport Component from '@glimmer/component'\nimport { htmlSafe } from '@ember/template'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\n\n/**\n * Display a full-page loading screen during app loading\n *\n * This component works in concert with the loading-ui service.\n *\n * It assumes the server-rendered HTML serving the Ember app will have\n * equivalent HTML and CSS for showing a loading screen during initial page\n * load. As such, this component will not be visible when the loading-ui\n * service indicates initial page load is not yet completed.\n *\n * Otherwise, the component will toggle visibility based on the loading-ui\n * service's loading state.\n *\n * The duration of the static loading screen fade out animation can be set to\n * 0 within the app's config, to avoid waiting for animations during testing.\n */\nexport default class LoadingScreen extends Component {\n  @service declare loadingUi: LoadingUiService\n\n  /**\n   * CSS custom property to provide the fade duration for CSS transitions\n   */\n  get fadeDurationStyle() {\n    return htmlSafe(\n      `--loading-screen-fade-duration: ${this.loadingUi.fadeDuration.toFixed()}ms`,\n    )\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#let (unique-id) as |titleId|}}\\n  <Dialog\\n    @open={{this.showQuestAlert}}\\n    class=\\\"pointer-events-auto aria-hidden:pointer-events-none aria-hidden:opacity-0\\\"\\n    role=\\\"alertdialog\\\"\\n    aria-labelledby={{titleId}}\\n    aria-hidden={{if this.showQuestAlert \\\"false\\\" \\\"true\\\"}}\\n    data-test-quest-notification\\n  >\\n    {{#if this.showQuestAlert}}\\n      <Dialog::Overlay\\n        class=\\\"flex items-center justify-center\\\"\\n        role=\\\"document\\\"\\n        tabindex=\\\"0\\\"\\n        {{content-interactive\\n          this.loader\\n          externalController=this\\n          manifests=this.jesterManifests\\n          runtimeVariables=this.variables\\n          onError=this.onContentError\\n        }}\\n      />\\n    {{/if}}\\n  </Dialog>\\n{{/let}}\", {\"contents\":\"{{#let (unique-id) as |titleId|}}\\n  <Dialog\\n    @open={{this.showQuestAlert}}\\n    class=\\\"pointer-events-auto aria-hidden:pointer-events-none aria-hidden:opacity-0\\\"\\n    role=\\\"alertdialog\\\"\\n    aria-labelledby={{titleId}}\\n    aria-hidden={{if this.showQuestAlert \\\"false\\\" \\\"true\\\"}}\\n    data-test-quest-notification\\n  >\\n    {{#if this.showQuestAlert}}\\n      <Dialog::Overlay\\n        class=\\\"flex items-center justify-center\\\"\\n        role=\\\"document\\\"\\n        tabindex=\\\"0\\\"\\n        {{content-interactive\\n          this.loader\\n          externalController=this\\n          manifests=this.jesterManifests\\n          runtimeVariables=this.variables\\n          onError=this.onContentError\\n        }}\\n      />\\n    {{/if}}\\n  </Dialog>\\n{{/let}}\",\"moduleName\":\"fast-phonics-client/components/quest/notification.hbs\",\"parseOptions\":{\"srcName\":\"fast-phonics-client/components/quest/notification.hbs\"}});\nimport { action } from '@ember/object'\nimport Component from '@glimmer/component'\nimport { service } from '@ember/service'\nimport type QuestService from 'fast-phonics-client/services/quest'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type Owner from '@ember/owner'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type JesterLoaderService from 'fast-phonics-client/services/jester-loader'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type UserService from 'fast-phonics-client/services/user'\n\ninterface QuestNotificationComponentArgs {\n  alertAnytime?: boolean\n}\nexport default class QuestNotificationComponent extends Component<QuestNotificationComponentArgs> {\n  @service declare quest: QuestService\n\n  @service declare user: UserService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare features: FeatureService\n\n  @service declare jesterLoader: JesterLoaderService\n\n  @service declare loadingUi: LoadingUiService\n\n  variables\n\n  constructor(owner: Owner, args: QuestNotificationComponentArgs) {\n    super(owner, args)\n    this.variables = {\n      currencyAmount: this.user.student.rewardTotals.coins,\n      name: this.user.student.firstName,\n      quest: this.quest.currentQuest,\n    }\n    if (this.args.alertAnytime) this.quest.displayQuestAlertIfRequired()\n  }\n\n  get loader() {\n    return this.jesterLoader.loader\n  }\n\n  get showQuestAlert() {\n    return this.quest.showQuestAlert\n  }\n\n  get questGoalForNotification() {\n    return this.quest.questGoalForNotification\n  }\n\n  get jesterManifests() {\n    return [['index', 'three-essentials/quest-reward']]\n  }\n\n  @action\n  acknowledgeQuestGoalAlert() {\n    if (!this.questGoalForNotification) return\n\n    void this.quest.acknowledgeQuestGoalAlert({\n      goalId: this.questGoalForNotification.id,\n    })\n  }\n\n  @action\n  awarded() {\n    this.acknowledgeQuestGoalAlert()\n  }\n\n  @action\n  close() {\n    this.quest.closeQuestAlert()\n  }\n\n  @action\n  onContentError(error: Error) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.finish()\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport config from 'fast-phonics-client/config/environment'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type RouterService from '@ember/routing/router-service'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type UserService from 'fast-phonics-client/services/user'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\n\nconst {\n  APP: { debugErrors },\n} = config\n\nexport default class ApplicationErrorController extends Controller {\n  debugErrors = debugErrors\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare router: RouterService\n\n  @service declare user: UserService\n\n  @service declare progress: ProgressService\n\n  get isRootRoute(): boolean {\n    const routeName = this.router.currentRoute.name\n    return ['peaks.index', 'peaks.peak.index', 'index'].includes(routeName)\n  }\n\n  /**\n   * This is a best guess at whether the app is broken in some unrecoverable\n   * way.  At present we assume that this is so if we have arrived in this\n   * error sub-state without a student model, or if we have arrived here from\n   * a route that doesn't have an obvious place that we can redirect to.\n   */\n  get isAppBroken(): boolean {\n    try {\n      // Access these properties to trigger any potential errors\n      void this.user.student\n      void this.progress.lessonsProgressData\n      return this.isRootRoute\n    } catch {\n      return true\n    }\n  }\n\n  get placementTestRequired(): boolean {\n    return this.progress.showPlacementTest\n  }\n\n  get isUnauthorizedError(): boolean {\n    const error = this.model\n    return error instanceof NotAuthenticatedError\n  }\n\n  get errorScreenComponent(): string {\n    if (this.isUnauthorizedError) {\n      return 'error-screen/login'\n    }\n    if (this.isAppBroken) {\n      return 'error-screen/logout'\n    }\n    if (this.placementTestRequired) {\n      return 'error-screen/logout'\n    }\n    return 'error-screen'\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'application-error': ApplicationErrorController\n  }\n}\n","import Controller from '@ember/controller'\n\nexport default class ApplicationController extends Controller { }\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    application: ApplicationController\n  }\n}\n","import Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport type RouterService from '@ember/routing/router-service'\nimport { inject as service } from '@ember/service'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\nimport type UserService from 'fast-phonics-client/services/user'\nimport dateFromNow from 'fast-phonics-client/utils/date-from-now'\nimport formatDueDate from 'fast-phonics-client/utils/format-due-date'\n\nexport default class AssignmentController extends Controller {\n  @service declare assignments: AssignmentsService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare activity: ActivityService\n\n  get currentAssignment() {\n    if (!this.assignments.currentAssignment) {\n      throw new Error('No current assignment found')\n    }\n    return this.assignments.currentAssignment\n  }\n\n  get thumbnailUrl() {\n    return this.currentAssignment.thumbnailUrl\n  }\n\n  get title() {\n    return this.currentAssignment.title\n  }\n\n  get timeRemaining() {\n    // TODO: The dateFromNow util can be replaced with date-fns intlFormatDistance once we drop support for ios13\n    return dateFromNow(new Date(this.currentAssignment.endAt), Date.now())\n  }\n\n  get dueDate() {\n    return formatDueDate(new Date(this.currentAssignment.endAt))\n  }\n\n  @action\n  startAssignment() {\n    const peak = this.currentAssignment.peak\n    this.router.transitionTo('peaks.peak', peak)\n  }\n\n  @action\n  logout() {\n    this.router.transitionTo('logout')\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    assignment: AssignmentController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type { BookContentActions } from '@blakeelearning/content-specs-fast-phonics'\n\nexport default class BookController extends Controller {\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  get contentActions(): BookContentActions {\n    return {\n      readyForUserInput: () => {\n        this.loadingUi.finish()\n      },\n      unhandledError: ({ error }: { error: unknown }) => {\n        this.errorHandler.handleContentUnhandledError(error)\n      },\n      next: () => {\n        this.goBack()\n      },\n      goBack: () => {\n        this.goBack()\n      },\n    }\n  }\n\n  @action\n  goBack(): void {\n    this.loadingUi.start(() => {\n      window.history.back()\n    })\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    book: BookController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport { warn } from '@ember/debug'\nimport type RouterService from '@ember/routing/router-service'\nimport config from 'fast-phonics-client/config/environment'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type { EndOfProgramContentActions } from '@blakeelearning/content-specs-fast-phonics'\n\nexport default class EndOfProgramController extends Controller {\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare progress: ProgressService\n\n  @service declare router: RouterService\n\n  get lastAccessiblePeak(): number {\n    return this.progress.lastAccessiblePeak\n  }\n\n  get contentActions(): EndOfProgramContentActions {\n    return {\n      readyForUserInput: () => {\n        this.loadingUi.finish()\n      },\n      unhandledError: ({ error }: { error: unknown }) => {\n        this.errorHandler.handleContentUnhandledError(error)\n      },\n      goToPeak: () => {\n        this.goToPeak()\n      },\n      goToApp: (appName: string, location: Location = window.location) => {\n        this.goToApp(appName, location)\n      },\n      print: () => {\n        this.print()\n      },\n    }\n  }\n\n  @action goToPeak(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('peaks.peak', this.lastAccessiblePeak)\n    })\n  }\n\n  @action goToApp(appName: string, location = window.location): void {\n    const url = this._internalGoToApp(appName, location)\n    location.href = url.href\n  }\n\n  @action print(): void {\n    warn(\n      `This is an empty action, to work you will need to ensure the interactive in jester-activities is receiving print() and that the printable PDF work is finalised.`,\n      { id: 'end-of-program.print-action-failed' },\n    )\n  }\n\n  /**\n   * Utilises apiEndpoint to perform redirection\n   */\n  _internalGoToApp(appName: string, location: Location): URL {\n    const url = new URL(\n      'go-to-app/' + appName,\n      config.APP.apiEndpoint ?? location.origin,\n    )\n    return url\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'end-of-program': EndOfProgramController\n  }\n}\n","import Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type UserService from 'fast-phonics-client/services/user'\n\nexport default class ErrorIndexController extends Controller {\n  @service declare progress: ProgressService\n\n  @service declare user: UserService\n\n  get appIsBroken(): boolean {\n    try {\n      // Access these properties to trigger any potential errors\n      void this.user.student\n      void this.progress.lessonsProgressData\n      return false\n    } catch {\n      return true\n    }\n  }\n\n  get showLogoutErrorScreen(): boolean {\n    return this.appIsBroken || this.progress.showPlacementTest\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'error/index': ErrorIndexController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\nimport type { VideoContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useMutation } from 'fast-phonics-client/resources/mutation'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\n\nexport const updateIntroVideoMutationDocument = graphql(/* GraphQL */ `\n  mutation UpdateIntroVideo($input: UpdateIntroVideoInput!) {\n    updateIntroVideo(input: $input) {\n      ... on UpdateIntroVideoSuccess {\n        student {\n          id\n          viewedIntroVideo\n        }\n        viewed\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport default class IntroVideoController extends Controller {\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare progress: ProgressService\n\n  @service declare debugMode: DebugModeService\n\n  @service declare router: RouterService\n\n  updateIntroVideo = useMutation(this, updateIntroVideoMutationDocument)\n\n  get activityComponent(): string {\n    if (this.debugMode.enabled) {\n      return 'debug-mode/intro-video'\n    }\n    return 'content-interactive'\n  }\n\n  get contentActions(): VideoContentActions {\n    return {\n      readyForUserInput: () => {\n        this.loadingUi.finish()\n      },\n      unhandledError: ({ error }: { error: unknown }) => {\n        this.errorHandler.handleContentUnhandledError(error)\n      },\n      completeVideo: () => this.completeIntro(),\n      goBack: () => {\n        this.goBack()\n      },\n    }\n  }\n\n  async saveCompleteIntroResult(): Promise<void> {\n    const response = await this.updateIntroVideo.current.mutate({\n      variables: {\n        input: {\n          viewed: true,\n        },\n      },\n    })\n\n    if (!response) {\n      throw new Error('GraphQL UpdateIntroVideo mutation failed')\n    }\n\n    switch (response.updateIntroVideo.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL UpdateIntroVideo mutation returned NotAuthenticatedError',\n        )\n\n      case 'UpdateIntroVideoSuccess':\n        return // Happy path\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL UpdateIntroVideo mutation returned unhandled type: ${response.updateIntroVideo.__typename}`,\n        )\n    }\n  }\n\n  /**\n   * Need to guard against if the student has finished the program\n   * If we don't, it will take them to a non existent peak and cause an application error\n   */\n  @action async completeIntro(): Promise<void> {\n    await this.saveCompleteIntroResult()\n\n    if (this.progress.showPlacementTest) {\n      this.loadingUi.start(() => {\n        void this.router.transitionTo('placement-test')\n      })\n    } else if (this.progress.hasFinishedProgram) {\n      this.loadingUi.start(() => {\n        void this.router.transitionTo('end-of-program')\n      })\n    } else {\n      this.loadingUi.start(() => {\n        void this.router.transitionTo('peaks')\n      })\n    }\n  }\n\n  @action goBack(): void {\n    const { hasViewedIntroVideo } = this.progress\n\n    this.loadingUi.start(() => {\n      if (hasViewedIntroVideo) {\n        window.history.back()\n      } else {\n        void this.router.transitionTo('logout')\n      }\n    })\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'intro-video': IntroVideoController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type { MyProgressContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport type PeakCertificateService from 'fast-phonics-client/services/peak-certificate'\n\nexport default class MyProgressController extends Controller {\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare peakCertificate: PeakCertificateService\n\n  @service declare router: RouterService\n\n  get contentActions(): MyProgressContentActions {\n    return {\n      readyForUserInput: () => {\n        this.loadingUi.finish()\n      },\n      unhandledError: ({ error }: { error: unknown }) => {\n        this.errorHandler.handleContentUnhandledError(error)\n      },\n      goBack: () => {\n        this.goBack()\n      },\n      goToTab: (tabName: string) => {\n        this.goToTab(tabName)\n      },\n      readBook: (bookId: string) => {\n        this.readBook(bookId)\n      },\n      watchSoundVideo: (sound: string) => {\n        this.watchSoundVideo(sound)\n      },\n      print: (args) => this.peakCertificate.print(args),\n    }\n  }\n\n  get pageTitle(): string {\n    switch (this.router.currentRoute.localName) {\n      case 'sounds':\n        return 'Sounds | My Progress'\n      case 'words':\n        return 'Words | My Progress'\n      case 'books':\n        return 'Books | My Progress'\n      case 'certificates':\n        return 'Certificates | My Progress'\n      default:\n        return 'My Progress'\n    }\n  }\n\n  @action goBack(): void {\n    this.loadingUi.start(() => {\n      window.history.back()\n    })\n  }\n\n  /**\n   * Replace the route with the one that matches the tab we are on, so long\n   * as we recognise the tab.\n   */\n  @action goToTab(tabName: string): void {\n    switch (tabName) {\n      case 'certificates':\n        void this.router.replaceWith('my-progress.certificates')\n        break\n      case 'sounds':\n        void this.router.replaceWith('my-progress.sounds')\n        break\n      case 'words':\n        void this.router.replaceWith('my-progress.words')\n        break\n      case 'books':\n        void this.router.replaceWith('my-progress.books')\n        break\n      case 'progress':\n        void this.router.replaceWith('my-progress.index')\n        break\n      default:\n        throw new Error(`Unknown tab name: ${tabName}`)\n    }\n  }\n\n  @action readBook(bookId: string): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('book', bookId)\n    })\n  }\n\n  @action watchSoundVideo(sound: string): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('sound', sound)\n    })\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'my-progress': MyProgressController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport { assert } from '@ember/debug'\nimport type RouterService from '@ember/routing/router-service'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type { PeaksContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport type QuestService from 'fast-phonics-client/services/quest'\nimport { debugAction, debugValue } from 'fast-phonics-client/utils/debug'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\nimport { useMutation } from 'fast-phonics-client/resources/mutation'\nimport { v7 as uuidV7 } from 'uuid'\nimport { createActivityResultMutationDocument } from './stone'\nimport type UserService from 'fast-phonics-client/services/user'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\nimport type { ModelFor } from 'fast-phonics-client/utils/route-model'\nimport type PeaksRoute from 'fast-phonics-client/routes/peaks'\n\nexport default class PeaksController extends Controller {\n  declare model: ModelFor<PeaksRoute>\n\n  @service declare activity: ActivityService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare quest: QuestService\n\n  @service declare features: FeatureService\n\n  @service declare debugMode: DebugModeService\n\n  @service declare assignments: AssignmentsService\n\n  get isAssignmentMode(): boolean {\n    return this.model.assignmentMode\n  }\n\n  get assignmentId() {\n    if (!this.isAssignmentMode) return null\n    if (!this.assignments.currentAssignment) {\n      throw new Error(\n        'PeaksController in assignment mode but no current assignment found',\n      )\n    }\n    return this.assignments.currentAssignment.id\n  }\n\n  get shouldLogout(): boolean {\n    return (\n      this.user.student.rosterEnabled &&\n      this.isAssignmentMode &&\n      !this.assignments.currentAssignment\n    )\n  }\n\n  get contentActions(): PeaksContentActions {\n    return {\n      readyForUserInput: () => {\n        this.loadingUi.finish()\n      },\n      unhandledError: ({ error }: { error: unknown }) => {\n        this.errorHandler.handleContentUnhandledError(error)\n      },\n      logOut: () => {\n        this.logOut()\n      },\n      startIntroVideo: () => {\n        this.startIntroVideo()\n      },\n      updatePeakView: (peakId: number, peakView: string) => {\n        this.updatePeakView(peakId, peakView)\n      },\n      goToPeak: (peakId: number) => {\n        this.transitionToPeak(peakId)\n      },\n      goToStonesForPeak: (peakId: number) => {\n        this.transitionToStones(peakId)\n      },\n      goToActivity: (peakId: number, positionInPeak: number) => {\n        this.transitionToStoneActivity(peakId, positionInPeak)\n      },\n      goToSounds: () => {\n        this.transitionToSounds()\n      },\n      goToWords: () => {\n        this.transitionToWords()\n      },\n      goToBooks: () => {\n        this.transitionToBooks()\n      },\n      goToProgress: () => {\n        this.transitionToProgress()\n      },\n      goToYetiShop: () => {\n        this.goToYetiShop()\n      },\n      saveProgress: (peakId: number, positionInPeak: number, uuid?: string) =>\n        this.saveProgress(peakId, positionInPeak, uuid),\n    }\n  }\n\n  get pageTitle(): string {\n    const peakRouteInfo = this.router.currentRoute.find(\n      (route) => route.name === 'peaks.peak',\n    )\n    const peakId = peakRouteInfo?.params['peak_id']\n\n    if (this.router.currentRoute.name === 'peaks.peak.stones') {\n      return peakId ? `Stones | Peak ${peakId}` : 'Stones | Peaks'\n    }\n\n    return peakId ? `Peak ${peakId} | Peaks` : 'Peaks'\n  }\n\n  @action logOut(): void {\n    void this.router.transitionTo('logout')\n  }\n\n  @action startIntroVideo(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('intro-video')\n    })\n  }\n\n  @action updatePeakView(peakId: number, peakView: string): void {\n    if (peakView === 'peak') {\n      void this.router.transitionTo('peaks.peak', peakId)\n    } else if (peakView === 'stones') {\n      void this.router.transitionTo('peaks.peak.stones', peakId)\n    }\n  }\n\n  @action transitionToPeak(peakId: number): void {\n    void this.router.transitionTo('peaks.peak', peakId)\n  }\n\n  @action transitionToStones(peakId: number): void {\n    if (this.shouldLogout) {\n      this.logOut()\n      return\n    }\n    void this.router.transitionTo('peaks.peak.stones', peakId)\n  }\n\n  @action transitionToStoneActivity(\n    peakId: number,\n    positionInPeak: number,\n  ): void {\n    const stoneId = this.activity.findStoneIdFor(peakId, positionInPeak)\n    assert('stoneId result returns ok: true', stoneId.ok)\n\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('stone', peakId, stoneId.id)\n    })\n  }\n\n  @action transitionToSounds(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('my-progress.sounds')\n    })\n  }\n\n  @action transitionToWords(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('my-progress.words')\n    })\n  }\n\n  @action transitionToBooks(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('my-progress.books')\n    })\n  }\n\n  @action transitionToProgress(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('my-progress.index')\n    })\n  }\n\n  @action goToYetiShop(): void {\n    this.loadingUi.start(() => {\n      void this.router.transitionTo('yeti-shop')\n    })\n  }\n\n  createActivityResult = useMutation(this, createActivityResultMutationDocument)\n\n  @action async saveProgress(\n    peakId: number,\n    positionInPeak: number,\n    uuid?: string,\n  ): Promise<void> {\n    const activityService = this.activity\n    const chest = activityService.findActivityIdByPosition(\n      peakId,\n      positionInPeak,\n    )\n\n    if (!chest.ok) throw new Error(chest.errorMessage)\n\n    const response = await this.createActivityResult.current.mutate({\n      variables: {\n        input: {\n          activityId: chest.id,\n          assignmentId: this.assignmentId,\n          attemptUuid: uuid ?? uuidV7(),\n        },\n      },\n    })\n\n    if (!response) {\n      throw new Error('GraphQL CreateActivityResult mutation failed')\n    }\n\n    switch (response.createActivityResult.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL CreateActivityResult mutation returned NotAuthenticatedError',\n        )\n\n      case 'CreateActivityResultSuccess':\n        return // Happy path\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL CreateActivityResult mutation returned unhandled type: ${response.createActivityResult.__typename}`,\n        )\n    }\n  }\n\n  @action\n  @debugAction()\n  async resetProgressToPlacementTest() {\n    await this.debugMode.resetPlacementTestProgress()\n  }\n\n  @action\n  @debugAction({\n    peak: {\n      type: 'select',\n      options: generatePeakOptions(20),\n    },\n    positionInPeak: {\n      type: 'number',\n      value: '1',\n    },\n  })\n  async resetProgressToPeakPosition({\n    peak,\n    positionInPeak,\n  }: {\n    peak: string\n    positionInPeak: string\n  }) {\n    await this.debugMode.resetPeakProgress(\n      parseInt(peak, 10),\n      parseInt(positionInPeak, 10),\n    )\n  }\n\n  @action\n  @debugAction()\n  async resetProgressToProgramComplete() {\n    await this.debugMode.resetPeakProgress(21, 1)\n  }\n\n  @debugValue()\n  get currentQuest() {\n    return this.quest.currentQuest\n  }\n}\n\nfunction generatePeakOptions(numberOfPeaks: number) {\n  const options = []\n  let i = 0\n\n  for (i; i < numberOfPeaks; i++) {\n    const peak = (i + 1).toFixed()\n\n    options.push({\n      value: peak,\n      label: `Peak ${peak}`,\n    })\n  }\n  return options\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    peaks: PeaksController\n  }\n}\n","/* eslint-disable ember/no-test-import-export */\nimport Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type MetricsService from 'ember-metrics'\nimport type QuestService from 'fast-phonics-client/services/quest'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useMutation } from 'fast-phonics-client/resources/mutation'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\n\ngraphql(/* GraphQL */ `\n  fragment PlacementTestResultDataFragment on PlacementTestResult {\n    attemptUuid\n    id\n    peak\n    questionNumber\n  }\n`)\n\ngraphql(/* GraphQL */ `\n  fragment SkipPlacementTestResultDataFragment on SkipPlacementTestResult {\n    attemptUuid\n    id\n  }\n`)\n\nexport const createPlacementTestResultMutationDocument = graphql(/* GraphQL */ `\n  mutation CreatePlacementTestResult($input: CreatePlacementTestResultInput!) {\n    createPlacementTestResult(input: $input) {\n      ... on CreatePlacementTestResultSuccess {\n        student {\n          ...StudentProgressDataFragment\n          ...StudentQuestDataFragment\n        }\n        placementTestResult {\n          ...PlacementTestResultDataFragment\n        }\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport const skipPlacementTestResultMutationDocument = graphql(/* GraphQL */ `\n  mutation SkipPlacementTestResult($input: SkipPlacementTestResultInput!) {\n    skipPlacementTestResult(input: $input) {\n      ... on SkipPlacementTestResultSuccess {\n        student {\n          ...StudentProgressDataFragment\n          ...StudentQuestDataFragment\n        }\n        skipPlacementTestResult {\n          ...SkipPlacementTestResultDataFragment\n        }\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport default class PlacementTestController extends Controller {\n  @service declare metrics: MetricsService\n\n  @service declare router: RouterService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare progress: ProgressService\n\n  @service declare debugMode: DebugModeService\n\n  @service declare quest: QuestService\n\n  createPlacementTestResult = useMutation(\n    this,\n    createPlacementTestResultMutationDocument,\n  )\n\n  skipPlacementTestResult = useMutation(\n    this,\n    skipPlacementTestResultMutationDocument,\n  )\n\n  get activityComponent(): string {\n    if (this.debugMode.enabled) {\n      return 'debug-mode/placement-test'\n    }\n    return 'content-interactive'\n  }\n\n  @action readyForUserInput(): void {\n    this.loadingUi.finish()\n  }\n\n  @action unhandledError({ error }: { error: unknown }): void {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  @action goToPeaks(): void {\n    void this.router.transitionTo('peaks')\n  }\n\n  @action goBack(): void {\n    this.metrics.trackEvent({\n      category: 'Placement Test',\n      action: 'Go Back',\n      label: 'Go Back',\n    })\n\n    void this.router.transitionTo('logout')\n  }\n\n  _validateSubmission(blob: Blob): { ok: true } | { ok: false; error: string } {\n    const isValid = blob.type === 'audio/wav'\n    if (isValid) {\n      return { ok: true }\n    }\n    return {\n      ok: false,\n      error: `Audio Type cannot be empty or of type other that audio/wav`,\n    }\n  }\n\n  @action async skipPlacementTest({\n    reason,\n    uuid,\n  }: {\n    reason: string\n    uuid: string\n  }): Promise<void> {\n    this.metrics.trackEvent({\n      category: 'Placement Test',\n      action: 'Skip Placement Test',\n      label: reason,\n    })\n\n    const response = await this.skipPlacementTestResult.current.mutate({\n      variables: {\n        input: {\n          attemptUuid: uuid,\n        },\n      },\n    })\n\n    if (!response) {\n      throw new Error('GraphQL SkipPlacementTestResult mutation failed')\n    }\n\n    switch (response.skipPlacementTestResult.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL SkipPlacementTestResult mutation returned NotAuthenticatedError',\n        )\n      case 'SkipPlacementTestResultSuccess':\n        return\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL SkipPlacementTestResult mutation returned unhandled type: ${response.skipPlacementTestResult.__typename}`,\n        )\n    }\n  }\n\n  @action async saveTestResults({\n    questionNumber,\n    uuid,\n  }: {\n    questionNumber: number\n    uuid: string\n  }): Promise<{ peakNumber: number }> {\n    this.metrics.trackEvent({\n      category: 'Placement Test',\n      action: 'Save Test Results',\n      label: `Question Number ${questionNumber.toFixed()}`,\n    })\n\n    const response = await this.createPlacementTestResult.current.mutate({\n      variables: {\n        input: {\n          attemptUuid: uuid,\n          questionNumber,\n        },\n      },\n    })\n\n    if (!response) {\n      throw new Error('GraphQL CreatePlacementTestResult mutation failed')\n    }\n\n    switch (response.createPlacementTestResult.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL CreatePlacementTestResult mutation returned NotAuthenticatedError',\n        )\n      case 'CreatePlacementTestResultSuccess':\n        return { peakNumber: this.progress.lastAccessiblePeak }\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL CreatePlacementTestResult mutation returned unhandled type: ${response.createPlacementTestResult.__typename}`,\n        )\n    }\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'placement-test': PlacementTestController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type { VideoContentActions } from '@blakeelearning/content-specs-fast-phonics'\n\nexport default class SoundController extends Controller {\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  get contentActions(): VideoContentActions {\n    return {\n      readyForUserInput: () => {\n        this.loadingUi.finish()\n      },\n      unhandledError: ({ error }: { error: unknown }) => {\n        this.errorHandler.handleContentUnhandledError(error)\n      },\n      completeVideo: () => {\n        this.goBack()\n      },\n      goBack: () => {\n        this.goBack()\n      },\n    }\n  }\n\n  @action goBack(): void {\n    this.loadingUi.start(() => {\n      window.history.back()\n    })\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    sound: SoundController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type { StoneContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport type StoneIndexRoute from 'fast-phonics-client/routes/stone/index'\nimport type { ModelFor } from 'fast-phonics-client/utils/route-model'\nimport type { ErrorLike } from 'fast-phonics-client/utils/errors'\nimport { contentError } from 'fast-phonics-client/utils/errors'\nimport type PeakCertificateService from 'fast-phonics-client/services/peak-certificate'\nimport type QuestService from 'fast-phonics-client/services/quest'\nimport type { FeatureService } from '@blakeelearning/features'\nimport { useMutation } from 'fast-phonics-client/resources/mutation'\n\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { v7 as uuidV7 } from 'uuid'\nimport type UserService from 'fast-phonics-client/services/user'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\nimport { startCase } from 'lodash'\n\nexport interface QuizData {\n  correctAnswers: string[]\n  incorrectAnswers?: [string, string][]\n}\n\ninterface SavePeakQuizResultArgs extends QuizData {\n  uuid: string\n}\n\ninterface ActivityResultParams {\n  uuid: string\n  correctCount: number\n  totalCount: number\n}\n\ngraphql(/* GraphQL */ `\n  fragment ActivityResultDataFragment on ActivityResult {\n    activityId\n    coinsEarned\n    correctCount\n    houseLevel\n    id\n    passed\n    peak\n    soundGemsEarned\n    soundsEarned\n    totalCount\n    wordGemsEarned\n    wordsEarned\n  }\n`)\n\ngraphql(/* GraphQL */ `\n  fragment BookQuizResultDataFragment on BookQuizResult {\n    activityId\n    attemptUuid\n    bookGemEarned\n    bookName\n    coinsEarned\n    correctAnswers\n    id\n    incorrectAnswers {\n      correctAnswer\n      studentInput\n    }\n    passed\n    peak\n    replayWithAudio\n  }\n`)\n\ngraphql(/* GraphQL */ `\n  fragment PeakQuizResultDataFragment on PeakQuizResult {\n    certificateUrl\n    coinsEarned\n    correctAnswers\n    id\n    incorrectAnswers {\n      correctAnswer\n      studentInput\n    }\n    passed\n    peak\n    progressed\n  }\n`)\n\nexport const createActivityResultMutationDocument = graphql(/* GraphQL */ `\n  mutation CreateActivityResult($input: CreateActivityResultInput!) {\n    createActivityResult(input: $input) {\n      ... on CreateActivityResultSuccess {\n        student {\n          ...StudentAssignmentDataFragment\n          ...StudentProgressDataFragment\n          ...StudentQuestDataFragment\n          ...RewardTotalsDataFragment\n          ...SoundsDataFragment\n          ...WordsDataFragment\n        }\n        activityResult {\n          ...ActivityResultDataFragment\n        }\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport const createBookQuizResultMutationDocument = graphql(/* GraphQL */ `\n  mutation CreateBookQuizResult($input: CreateBookQuizResultInput!) {\n    createBookQuizResult(input: $input) {\n      ... on CreateBookQuizResultSuccess {\n        student {\n          ...StudentAssignmentDataFragment\n          ...StudentProgressDataFragment\n          ...StudentQuestDataFragment\n          ...RewardTotalsDataFragment\n          books\n        }\n        bookQuizResult {\n          ...BookQuizResultDataFragment\n        }\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport const createPeakQuizResultMutationDocument = graphql(/* GraphQL */ `\n  mutation CreatePeakQuizResult($input: CreatePeakQuizResultInput!) {\n    createPeakQuizResult(input: $input) {\n      ... on CreatePeakQuizResultSuccess {\n        student {\n          ...StudentAssignmentDataFragment\n          ...StudentProgressDataFragment\n          ...StudentQuestDataFragment\n          ...RewardTotalsDataFragment\n          ...PeakQuizSummariesDataFragment\n        }\n        peakQuizResult {\n          ...PeakQuizResultDataFragment\n        }\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport default class StoneIndexController\n  extends Controller\n  implements StoneContentActions\n{\n  declare model: ModelFor<StoneIndexRoute>\n\n  @service declare debugMode: DebugModeService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare user: UserService\n\n  @service declare progress: ProgressService\n\n  @service declare peakCertificate: PeakCertificateService\n\n  @service declare router: RouterService\n\n  @service declare quest: QuestService\n\n  @service declare features: FeatureService\n\n  @service declare assignments: AssignmentsService\n\n  createActivityResult = useMutation(this, createActivityResultMutationDocument)\n  createBookQuizResult = useMutation(this, createBookQuizResultMutationDocument)\n  createPeakQuizResult = useMutation(this, createPeakQuizResultMutationDocument)\n\n  get activityId(): string {\n    return this.model.activityId\n  }\n\n  get activityType(): string {\n    return this.model.activityType\n  }\n\n  get isAssignmentMode(): boolean {\n    return this.model.assignmentMode\n  }\n\n  get assignmentId() {\n    if (!this.isAssignmentMode) return null\n    if (!this.assignments.currentAssignment) {\n      throw new Error(\n        'StoneIndexController in assignment mode but no current assignment found',\n      )\n    }\n    return this.assignments.currentAssignment.id\n  }\n\n  get shouldLogout(): boolean {\n    return (\n      this.user.student.rosterEnabled &&\n      this.isAssignmentMode &&\n      !this.assignments.currentAssignment\n    )\n  }\n\n  get hasFinishedProgram(): boolean {\n    return this.progress.hasFinishedProgram\n  }\n\n  get lastAccessiblePeak(): number {\n    return this.progress.lastAccessiblePeak\n  }\n\n  get peakId(): number {\n    return this.model.peakId\n  }\n\n  get stoneId(): string {\n    return this.model.stoneId\n  }\n\n  get studentFirstName(): string {\n    return this.user.student.firstName\n  }\n\n  get renderQuestAlert() {\n    return this.quest.showQuestAlert\n  }\n\n  get pageTitle(): string {\n    return `${startCase(this.stoneId)} | Peak ${this.peakId.toString()}`\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.finish()\n  }\n\n  @action\n  unhandledError({ error }: { error: ErrorLike }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  @action\n  print(data: { certificateUrl: string }) {\n    return this.peakCertificate.print(data)\n  }\n\n  @action\n  async completeVideo(): Promise<void> {\n    if (this.model.completeVideoCalled) return\n    this.model.completeVideoCalled = true\n\n    const response = await this.createActivityResult.current.mutate({\n      variables: {\n        input: {\n          activityId: this.activityId,\n          assignmentId: this.assignmentId,\n          attemptUuid: uuidV7(),\n        },\n      },\n    })\n\n    if (!response) {\n      throw new Error('GraphQL CreateActivityResult mutation failed')\n    }\n\n    switch (response.createActivityResult.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL CreateActivityResult mutation returned NotAuthenticatedError',\n        )\n\n      case 'CreateActivityResultSuccess':\n        if (this.shouldLogout) {\n          void this.router.transitionTo('logout')\n          return\n        }\n        this.loadingUi.start(() => {\n          void this.router.transitionTo('peaks.peak.stones', this.peakId)\n        })\n        return\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL CreateActivityResult mutation returned unhandled type: ${response.createActivityResult.__typename}`,\n        )\n    }\n  }\n\n  @action\n  async saveBookQuizResult({\n    quizData: { correctAnswers, incorrectAnswers },\n    readRepeat,\n    bookName: _bookName,\n    uuid,\n  }: {\n    quizData: QuizData\n    readRepeat: boolean\n    bookName: string\n    uuid: string\n  }): Promise<void> {\n    const response = await this.createBookQuizResult.current.mutate({\n      variables: {\n        input: {\n          activityId: this.activityId,\n          assignmentId: this.assignmentId,\n          attemptUuid: uuid,\n          correctAnswers,\n          incorrectAnswers:\n            incorrectAnswers?.map(([studentInput, correctAnswer]) => ({\n              correctAnswer,\n              studentInput,\n            })) ?? [],\n          peak: this.peakId,\n          replayWithAudio: readRepeat,\n        },\n      },\n    })\n\n    if (!response) {\n      throw new Error('GraphQL CreateBookQuizResult mutation failed')\n    }\n\n    switch (response.createBookQuizResult.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL CreateBookQuizResult mutation returned NotAuthenticatedError',\n        )\n\n      case 'CreateBookQuizResultSuccess':\n        return // Happy path\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL CreateBookQuizResult mutation returned unhandled type: ${response.createBookQuizResult.__typename}`,\n        )\n    }\n  }\n\n  @action\n  async completeBookQuiz(\n    quizData: QuizData,\n    readRepeat: boolean,\n    uuid: string,\n  ): Promise<void> {\n    if (this.model.completeBookQuizCalled) return\n    this.model.completeBookQuizCalled = true\n\n    await this.saveBookQuizResult({\n      quizData,\n      readRepeat,\n      bookName: 'unknown',\n      uuid,\n    })\n    this.next()\n  }\n\n  @action\n  goBack(): void {\n    this.loadingUi.start(() => {\n      window.history.back()\n    })\n  }\n\n  @action\n  next(): void {\n    if (this.shouldLogout) {\n      void this.router.transitionTo('logout')\n      return\n    }\n\n    this.quest.displayQuestAlertIfRequired(() => {\n      if (this.activityType === 'quiz') {\n        if (this.hasFinishedProgram) {\n          this.router.transitionTo('end-of-program')\n        } else {\n          const showCongratulations =\n            this.lastAccessiblePeak === this.peakId + 1\n          this.router.transitionTo('peaks.peak', this.lastAccessiblePeak, {\n            queryParams: { showCongratulations },\n          })\n        }\n      } else {\n        this.router.transitionTo('peaks.peak.stones', this.peakId)\n      }\n    })\n  }\n\n  @action\n  async savePeakQuizResult({\n    correctAnswers,\n    incorrectAnswers,\n    uuid: attemptUuid,\n  }: SavePeakQuizResultArgs) {\n    const response = await this.createPeakQuizResult.current.mutate({\n      variables: {\n        input: {\n          attemptUuid,\n          assignmentId: this.assignmentId,\n          correctAnswers,\n          incorrectAnswers:\n            incorrectAnswers?.map(([studentInput, correctAnswer]) => ({\n              correctAnswer,\n              studentInput,\n            })) ?? [],\n          peak: this.peakId,\n          studentName: this.studentFirstName,\n        },\n      },\n    })\n\n    if (!response) {\n      throw contentError(\n        'SaveFailed',\n        new Error('GraphQL CreatePeakQuizResult mutation failed'),\n      )\n    }\n\n    switch (response.createPeakQuizResult.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL CreatePeakQuizResult mutation returned NotAuthenticatedError',\n        )\n\n      case 'CreatePeakQuizResultSuccess':\n        break // happy path\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL CreatePeakQuizResult mutation returned unhandled type: ${response.createPeakQuizResult.__typename}`,\n        )\n    }\n\n    const { coinsEarned, passed, certificateUrl } =\n      response.createPeakQuizResult.peakQuizResult\n\n    return { peakQuizResult: { coinsEarned, passed, certificateUrl } }\n  }\n\n  @action\n  async saveActivityResult({\n    uuid,\n    correctCount,\n    totalCount,\n  }: ActivityResultParams) {\n    const response = await this.createActivityResult.current.mutate({\n      variables: {\n        input: {\n          activityId: this.activityId,\n          assignmentId: this.assignmentId,\n          attemptUuid: uuid,\n          correctCount,\n          totalCount,\n        },\n      },\n    })\n\n    if (!response) {\n      throw new Error('GraphQL CreateActivityResult mutation failed')\n    }\n\n    switch (response.createActivityResult.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL CreateActivityResult mutation returned NotAuthenticatedError',\n        )\n\n      case 'CreateActivityResultSuccess':\n        return { activityResult: response.createActivityResult.activityResult }\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL CreateActivityResult mutation returned unhandled type: ${response.createActivityResult.__typename}`,\n        )\n    }\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'stone/index': StoneIndexController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport { contentError } from 'fast-phonics-client/utils/errors'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\nimport type { YetiShopContentActions } from '@blakeelearning/content-specs-fast-phonics'\nimport type { PurchasedYetis } from 'fast-phonics-client/routes/yeti-shop'\nimport type UserService from 'fast-phonics-client/services/user'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useMutation } from 'fast-phonics-client/resources/mutation'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\n\ninterface PurchaseYetiResult {\n  selectedYeti: string\n  coins: number\n  purchases: PurchasedYetis[]\n}\n\ninterface SelectedYeti {\n  selectedYeti: string\n}\n\ninterface YetiData {\n  uuid: string\n  id: string\n}\n\nexport const updateSelectedYetiMutationDocument = graphql(/* GraphQL */ `\n  mutation UpdateSelectedYeti($input: UpdateSelectedYetiInput!) {\n    updateSelectedYeti(input: $input) {\n      ... on UpdateSelectedYetiSuccess {\n        student {\n          id\n          selectedYeti\n        }\n        yeti\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport const purchaseYetiMutationDocument = graphql(/* GraphQL */ `\n  mutation PurchaseYeti($input: PurchaseYetiInput!) {\n    purchaseYeti(input: $input) {\n      ... on PurchaseYetiSuccess {\n        student {\n          id\n          selectedYeti\n          ...PurchasesDataFragment\n          ...RewardTotalsDataFragment\n        }\n        yeti\n      }\n      ... on AlreadyPurchasedError {\n        code\n      }\n      ... on NotEnoughCoinsError {\n        code\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport default class YetiShopController extends Controller {\n  @service declare debugMode: DebugModeService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare user: UserService\n\n  updateSelectedYeti = useMutation(this, updateSelectedYetiMutationDocument)\n  purchaseYetiMutation = useMutation(this, purchaseYetiMutationDocument)\n\n  get student() {\n    return this.user.student\n  }\n\n  get rewardTotals() {\n    return this.user.student.rewardTotals\n  }\n\n  get coins(): number {\n    return this.rewardTotals.coins\n  }\n\n  get selectedYeti(): string {\n    return this.student.selectedYeti\n  }\n\n  get purchases(): PurchasedYetis[] {\n    return this.student.purchases.map(({ item, category }) => {\n      return { item, category: category.toLowerCase() }\n    })\n  }\n\n  get activityComponent(): string {\n    if (this.debugMode.enabled) {\n      return 'debug-mode/yeti-shop'\n    }\n    return 'content-interactive'\n  }\n\n  get contentActions(): YetiShopContentActions {\n    return {\n      readyForUserInput: () => {\n        this.loadingUi.finish()\n      },\n      unhandledError: ({ error }: { error: unknown }) => {\n        this.errorHandler.handleContentUnhandledError(error)\n      },\n      goBack: () => {\n        this.goBack()\n      },\n      purchaseYeti: (data: YetiData) => this.purchaseYeti(data),\n      selectYeti: (data: YetiData) => this.selectYeti(data),\n      getCoins: () => this.getCoins(),\n    }\n  }\n\n  @action goBack(): void {\n    this.loadingUi.start(() => {\n      window.history.back()\n    })\n  }\n\n  /**\n   * Async method for the yeti shop interactive to call in order to purchase a yeti.\n   */\n  async purchaseYeti({\n    uuid,\n    id: yeti,\n  }: YetiData): Promise<PurchaseYetiResult> {\n    const response = await this.purchaseYetiMutation.current.mutate({\n      variables: {\n        input: {\n          yeti,\n          uuid,\n        },\n      },\n    })\n    if (!response) {\n      throw contentError(\n        'PurchaseFailed',\n        new Error('GraphQL PurchaseYeti mutation failed'),\n      )\n    }\n    switch (response.purchaseYeti.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL PurchaseYeti mutation returned NotAuthenticatedError',\n        )\n\n      case 'AlreadyPurchasedError':\n        throw contentError('AlreadyPurchased', new Error('AlreadyPurchased'))\n\n      case 'NotEnoughCoinsError':\n        throw contentError('NotEnoughCoins', new Error('NotEnoughCoins'))\n\n      case 'PurchaseYetiSuccess':\n        return {\n          selectedYeti: this.selectedYeti,\n          coins: this.coins,\n          purchases: this.purchases,\n        }\n\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL PurchaseYeti mutation returned unhandled type: ${response.purchaseYeti.__typename}`,\n        )\n    }\n  }\n\n  /**\n   * Async method for the yeti shop interactive to call in order to select a yeti.\n   */\n  async selectYeti({ id: yeti }: YetiData): Promise<SelectedYeti> {\n    const response = await this.updateSelectedYeti.current.mutate({\n      variables: {\n        input: {\n          yeti,\n        },\n      },\n    })\n    if (!response) {\n      throw contentError(\n        'SelectFailed',\n        new Error('GraphQL UpdateSelectedYeti mutation failed'),\n      )\n    }\n    switch (response.updateSelectedYeti.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL UpdateSelectedYeti mutation returned NotAuthenticatedError',\n        )\n      case 'UpdateSelectedYetiSuccess':\n        return { selectedYeti: response.updateSelectedYeti.yeti }\n      default:\n        throw new Error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GraphQL UpdateSelectedYeti mutation returned unhandled type: ${response.updateSelectedYeti.__typename}`,\n        )\n    }\n  }\n\n  async getCoins(): Promise<{ coins: number }> {\n    await this.user.fetch() // TODO: do we actually need to do this fetch?\n    return { coins: this.coins }\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'yeti-shop': YetiShopController\n  }\n}\n","import setupDeprecationWorkflow from 'ember-cli-deprecation-workflow'\n\nsetupDeprecationWorkflow({\n  workflow: [\n    { handler: 'error', matchId: 'ember-test-waiters-legacy-module-name' },\n  ],\n})\n","/* eslint-disable */\nimport * as types from './graphql';\nimport type { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\n\n/**\n * Map of all GraphQL operations in the project.\n *\n * This map has several performance disadvantages:\n * 1. It is not tree-shakeable, so it will include all operations in the project.\n * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.\n * 3. It does not support dead code elimination, so it will add unused operations.\n *\n * Therefore it is highly recommended to use the babel or swc plugin for production.\n * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size\n */\nconst documents = {\n    \"\\n  mutation UpdateIntroVideo($input: UpdateIntroVideoInput!) {\\n    updateIntroVideo(input: $input) {\\n      ... on UpdateIntroVideoSuccess {\\n        student {\\n          id\\n          viewedIntroVideo\\n        }\\n        viewed\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.UpdateIntroVideoDocument,\n    \"\\n  fragment PlacementTestResultDataFragment on PlacementTestResult {\\n    attemptUuid\\n    id\\n    peak\\n    questionNumber\\n  }\\n\": types.PlacementTestResultDataFragmentFragmentDoc,\n    \"\\n  fragment SkipPlacementTestResultDataFragment on SkipPlacementTestResult {\\n    attemptUuid\\n    id\\n  }\\n\": types.SkipPlacementTestResultDataFragmentFragmentDoc,\n    \"\\n  mutation CreatePlacementTestResult($input: CreatePlacementTestResultInput!) {\\n    createPlacementTestResult(input: $input) {\\n      ... on CreatePlacementTestResultSuccess {\\n        student {\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n        }\\n        placementTestResult {\\n          ...PlacementTestResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.CreatePlacementTestResultDocument,\n    \"\\n  mutation SkipPlacementTestResult($input: SkipPlacementTestResultInput!) {\\n    skipPlacementTestResult(input: $input) {\\n      ... on SkipPlacementTestResultSuccess {\\n        student {\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n        }\\n        skipPlacementTestResult {\\n          ...SkipPlacementTestResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.SkipPlacementTestResultDocument,\n    \"\\n  fragment ActivityResultDataFragment on ActivityResult {\\n    activityId\\n    coinsEarned\\n    correctCount\\n    houseLevel\\n    id\\n    passed\\n    peak\\n    soundGemsEarned\\n    soundsEarned\\n    totalCount\\n    wordGemsEarned\\n    wordsEarned\\n  }\\n\": types.ActivityResultDataFragmentFragmentDoc,\n    \"\\n  fragment BookQuizResultDataFragment on BookQuizResult {\\n    activityId\\n    attemptUuid\\n    bookGemEarned\\n    bookName\\n    coinsEarned\\n    correctAnswers\\n    id\\n    incorrectAnswers {\\n      correctAnswer\\n      studentInput\\n    }\\n    passed\\n    peak\\n    replayWithAudio\\n  }\\n\": types.BookQuizResultDataFragmentFragmentDoc,\n    \"\\n  fragment PeakQuizResultDataFragment on PeakQuizResult {\\n    certificateUrl\\n    coinsEarned\\n    correctAnswers\\n    id\\n    incorrectAnswers {\\n      correctAnswer\\n      studentInput\\n    }\\n    passed\\n    peak\\n    progressed\\n  }\\n\": types.PeakQuizResultDataFragmentFragmentDoc,\n    \"\\n  mutation CreateActivityResult($input: CreateActivityResultInput!) {\\n    createActivityResult(input: $input) {\\n      ... on CreateActivityResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          ...SoundsDataFragment\\n          ...WordsDataFragment\\n        }\\n        activityResult {\\n          ...ActivityResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.CreateActivityResultDocument,\n    \"\\n  mutation CreateBookQuizResult($input: CreateBookQuizResultInput!) {\\n    createBookQuizResult(input: $input) {\\n      ... on CreateBookQuizResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          books\\n        }\\n        bookQuizResult {\\n          ...BookQuizResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.CreateBookQuizResultDocument,\n    \"\\n  mutation CreatePeakQuizResult($input: CreatePeakQuizResultInput!) {\\n    createPeakQuizResult(input: $input) {\\n      ... on CreatePeakQuizResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          ...PeakQuizSummariesDataFragment\\n        }\\n        peakQuizResult {\\n          ...PeakQuizResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.CreatePeakQuizResultDocument,\n    \"\\n  mutation UpdateSelectedYeti($input: UpdateSelectedYetiInput!) {\\n    updateSelectedYeti(input: $input) {\\n      ... on UpdateSelectedYetiSuccess {\\n        student {\\n          id\\n          selectedYeti\\n        }\\n        yeti\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.UpdateSelectedYetiDocument,\n    \"\\n  mutation PurchaseYeti($input: PurchaseYetiInput!) {\\n    purchaseYeti(input: $input) {\\n      ... on PurchaseYetiSuccess {\\n        student {\\n          id\\n          selectedYeti\\n          ...PurchasesDataFragment\\n          ...RewardTotalsDataFragment\\n        }\\n        yeti\\n      }\\n      ... on AlreadyPurchasedError {\\n        code\\n      }\\n      ... on NotEnoughCoinsError {\\n        code\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.PurchaseYetiDocument,\n    \"\\n  query GetInitialAppData {\\n    student {\\n      ... on Student {\\n        ...StudentUserDataFragment\\n        ...StudentProgressDataFragment\\n        ...StudentQuestDataFragment\\n        ...StudentAssignmentDataFragment\\n        __typename\\n      }\\n    }\\n  }\\n\": types.GetInitialAppDataDocument,\n    \"\\n  fragment YetiDataFragment on Yeti {\\n    id\\n    price\\n  }\\n\": types.YetiDataFragmentFragmentDoc,\n    \"\\n  query GetYetis {\\n    yetis {\\n      ...YetiDataFragment\\n    }\\n  }\\n\": types.GetYetisDocument,\n    \"\\n  fragment ActivityData on Activity {\\n    activityType\\n    id\\n    manifestBundle\\n    manifestKey\\n    peak\\n    positionInPeak\\n  }\\n\": types.ActivityDataFragmentDoc,\n    \"\\n  query GetActivities {\\n    activities {\\n      ...ActivityData\\n    }\\n  }\\n\": types.GetActivitiesDocument,\n    \"\\n  fragment StudentAssignmentDataFragment on Student {\\n    assignment {\\n      ... on AssignmentPeak {\\n        positionInPeak\\n        endAt\\n        id\\n        peak\\n        thumbnailUrl\\n        title\\n      }\\n      __typename\\n    }\\n  }\\n\": types.StudentAssignmentDataFragmentFragmentDoc,\n    \"\\n  query GetStudentAssignment {\\n    student {\\n      ... on Student {\\n        id\\n        ...StudentAssignmentDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.GetStudentAssignmentDocument,\n    \"\\n  mutation ResetPeakProgress($input: StudentProgressPeakResetInput!) {\\n    studentProgressPeakReset(input: $input) {\\n      ... on StudentProgressPeakResetOutput {\\n        student {\\n          ...StudentProgressDataFragment\\n        }\\n      }\\n      __typename\\n    }\\n  }\\n\": types.ResetPeakProgressDocument,\n    \"\\n    mutation ResetPlacementTestProgress {\\n      studentProgressPlacementTestReset {\\n        ... on StudentProgressPlacementTestResetOutput {\\n          student {\\n            ...StudentProgressDataFragment\\n          }\\n        }\\n        __typename\\n      }\\n    }\\n  \": types.ResetPlacementTestProgressDocument,\n    \"\\n  fragment StudentProgressDataFragment on Student {\\n    id\\n    progress {\\n      lessons {\\n        peak\\n        positionInPeak\\n        showPlacementTest\\n      }\\n    }\\n  }\\n\": types.StudentProgressDataFragmentFragmentDoc,\n    \"\\n  query GetStudentProgress {\\n    student {\\n      ... on Student {\\n        ...StudentProgressDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.GetStudentProgressDocument,\n    \"\\n  fragment StudentQuestDataFragment on Student {\\n    id\\n    quest {\\n      primaryGoal {\\n        __typename\\n        goalType: __typename\\n        ... on QuestGoalPeak {\\n          rewardAmount\\n          id\\n          peak\\n          progressCurrent\\n          progressTotal\\n          status\\n        }\\n      }\\n    }\\n  }\\n\": types.StudentQuestDataFragmentFragmentDoc,\n    \"\\n  query GetStudentQuest {\\n    student {\\n      ... on Student {\\n        ...StudentQuestDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.GetStudentQuestDocument,\n    \"\\n  mutation StudentQuestGoalAcknowledgeComplete(\\n    $input: StudentQuestGoalAcknowledgeCompleteInput!\\n  ) {\\n    studentQuestGoalAcknowledgeComplete(input: $input) {\\n      ... on StudentQuestGoalAcknowledgeCompleteOutput {\\n        student {\\n          ...StudentQuestDataFragment\\n          ...StudentUserDataFragment\\n        }\\n      }\\n    }\\n  }\\n\": types.StudentQuestGoalAcknowledgeCompleteDocument,\n    \"\\n  fragment RewardTotalsDataFragment on Student {\\n    rewardTotals {\\n      bookGems\\n      coins\\n      soundGems\\n      wordGems\\n    }\\n  }\\n\": types.RewardTotalsDataFragmentFragmentDoc,\n    \"\\n  fragment PeakQuizSummariesDataFragment on Student {\\n    peakQuizSummaries {\\n      best\\n      certificate {\\n        colour\\n        created\\n        url\\n      }\\n      first\\n      id\\n    }\\n  }\\n\": types.PeakQuizSummariesDataFragmentFragmentDoc,\n    \"\\n  fragment PurchasesDataFragment on Student {\\n    purchases {\\n      category\\n      item\\n      price\\n      uuid\\n    }\\n  }\\n\": types.PurchasesDataFragmentFragmentDoc,\n    \"\\n  fragment SoundsDataFragment on Student {\\n    sounds {\\n      peak\\n      rewards\\n    }\\n  }\\n\": types.SoundsDataFragmentFragmentDoc,\n    \"\\n  fragment WordsDataFragment on Student {\\n    words {\\n      peak\\n      rewards\\n    }\\n  }\\n\": types.WordsDataFragmentFragmentDoc,\n    \"\\n  fragment StudentUserDataFragment on Student {\\n    id\\n    customerType\\n    backgroundMusicDisabled\\n    books\\n    averageBestPeakQuizResult\\n    abbreviatedName\\n    accent\\n    firstName\\n    selectedYeti\\n    viewedIntroVideo\\n    rosterEnabled\\n    ...PeakQuizSummariesDataFragment\\n    ...PurchasesDataFragment\\n    ...RewardTotalsDataFragment\\n    ...SoundsDataFragment\\n    ...WordsDataFragment\\n  }\\n\": types.StudentUserDataFragmentFragmentDoc,\n    \"\\n  query GetStudent {\\n    student {\\n      ... on Student {\\n        ...StudentUserDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\": types.GetStudentDocument,\n};\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n *\n *\n * @example\n * ```ts\n * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);\n * ```\n *\n * The query argument is unknown!\n * Please regenerate the types.\n */\nexport function graphql(source: string): unknown;\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation UpdateIntroVideo($input: UpdateIntroVideoInput!) {\\n    updateIntroVideo(input: $input) {\\n      ... on UpdateIntroVideoSuccess {\\n        student {\\n          id\\n          viewedIntroVideo\\n        }\\n        viewed\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation UpdateIntroVideo($input: UpdateIntroVideoInput!) {\\n    updateIntroVideo(input: $input) {\\n      ... on UpdateIntroVideoSuccess {\\n        student {\\n          id\\n          viewedIntroVideo\\n        }\\n        viewed\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment PlacementTestResultDataFragment on PlacementTestResult {\\n    attemptUuid\\n    id\\n    peak\\n    questionNumber\\n  }\\n\"): (typeof documents)[\"\\n  fragment PlacementTestResultDataFragment on PlacementTestResult {\\n    attemptUuid\\n    id\\n    peak\\n    questionNumber\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment SkipPlacementTestResultDataFragment on SkipPlacementTestResult {\\n    attemptUuid\\n    id\\n  }\\n\"): (typeof documents)[\"\\n  fragment SkipPlacementTestResultDataFragment on SkipPlacementTestResult {\\n    attemptUuid\\n    id\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation CreatePlacementTestResult($input: CreatePlacementTestResultInput!) {\\n    createPlacementTestResult(input: $input) {\\n      ... on CreatePlacementTestResultSuccess {\\n        student {\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n        }\\n        placementTestResult {\\n          ...PlacementTestResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation CreatePlacementTestResult($input: CreatePlacementTestResultInput!) {\\n    createPlacementTestResult(input: $input) {\\n      ... on CreatePlacementTestResultSuccess {\\n        student {\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n        }\\n        placementTestResult {\\n          ...PlacementTestResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation SkipPlacementTestResult($input: SkipPlacementTestResultInput!) {\\n    skipPlacementTestResult(input: $input) {\\n      ... on SkipPlacementTestResultSuccess {\\n        student {\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n        }\\n        skipPlacementTestResult {\\n          ...SkipPlacementTestResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation SkipPlacementTestResult($input: SkipPlacementTestResultInput!) {\\n    skipPlacementTestResult(input: $input) {\\n      ... on SkipPlacementTestResultSuccess {\\n        student {\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n        }\\n        skipPlacementTestResult {\\n          ...SkipPlacementTestResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment ActivityResultDataFragment on ActivityResult {\\n    activityId\\n    coinsEarned\\n    correctCount\\n    houseLevel\\n    id\\n    passed\\n    peak\\n    soundGemsEarned\\n    soundsEarned\\n    totalCount\\n    wordGemsEarned\\n    wordsEarned\\n  }\\n\"): (typeof documents)[\"\\n  fragment ActivityResultDataFragment on ActivityResult {\\n    activityId\\n    coinsEarned\\n    correctCount\\n    houseLevel\\n    id\\n    passed\\n    peak\\n    soundGemsEarned\\n    soundsEarned\\n    totalCount\\n    wordGemsEarned\\n    wordsEarned\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment BookQuizResultDataFragment on BookQuizResult {\\n    activityId\\n    attemptUuid\\n    bookGemEarned\\n    bookName\\n    coinsEarned\\n    correctAnswers\\n    id\\n    incorrectAnswers {\\n      correctAnswer\\n      studentInput\\n    }\\n    passed\\n    peak\\n    replayWithAudio\\n  }\\n\"): (typeof documents)[\"\\n  fragment BookQuizResultDataFragment on BookQuizResult {\\n    activityId\\n    attemptUuid\\n    bookGemEarned\\n    bookName\\n    coinsEarned\\n    correctAnswers\\n    id\\n    incorrectAnswers {\\n      correctAnswer\\n      studentInput\\n    }\\n    passed\\n    peak\\n    replayWithAudio\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment PeakQuizResultDataFragment on PeakQuizResult {\\n    certificateUrl\\n    coinsEarned\\n    correctAnswers\\n    id\\n    incorrectAnswers {\\n      correctAnswer\\n      studentInput\\n    }\\n    passed\\n    peak\\n    progressed\\n  }\\n\"): (typeof documents)[\"\\n  fragment PeakQuizResultDataFragment on PeakQuizResult {\\n    certificateUrl\\n    coinsEarned\\n    correctAnswers\\n    id\\n    incorrectAnswers {\\n      correctAnswer\\n      studentInput\\n    }\\n    passed\\n    peak\\n    progressed\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation CreateActivityResult($input: CreateActivityResultInput!) {\\n    createActivityResult(input: $input) {\\n      ... on CreateActivityResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          ...SoundsDataFragment\\n          ...WordsDataFragment\\n        }\\n        activityResult {\\n          ...ActivityResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation CreateActivityResult($input: CreateActivityResultInput!) {\\n    createActivityResult(input: $input) {\\n      ... on CreateActivityResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          ...SoundsDataFragment\\n          ...WordsDataFragment\\n        }\\n        activityResult {\\n          ...ActivityResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation CreateBookQuizResult($input: CreateBookQuizResultInput!) {\\n    createBookQuizResult(input: $input) {\\n      ... on CreateBookQuizResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          books\\n        }\\n        bookQuizResult {\\n          ...BookQuizResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation CreateBookQuizResult($input: CreateBookQuizResultInput!) {\\n    createBookQuizResult(input: $input) {\\n      ... on CreateBookQuizResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          books\\n        }\\n        bookQuizResult {\\n          ...BookQuizResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation CreatePeakQuizResult($input: CreatePeakQuizResultInput!) {\\n    createPeakQuizResult(input: $input) {\\n      ... on CreatePeakQuizResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          ...PeakQuizSummariesDataFragment\\n        }\\n        peakQuizResult {\\n          ...PeakQuizResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation CreatePeakQuizResult($input: CreatePeakQuizResultInput!) {\\n    createPeakQuizResult(input: $input) {\\n      ... on CreatePeakQuizResultSuccess {\\n        student {\\n          ...StudentAssignmentDataFragment\\n          ...StudentProgressDataFragment\\n          ...StudentQuestDataFragment\\n          ...RewardTotalsDataFragment\\n          ...PeakQuizSummariesDataFragment\\n        }\\n        peakQuizResult {\\n          ...PeakQuizResultDataFragment\\n        }\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation UpdateSelectedYeti($input: UpdateSelectedYetiInput!) {\\n    updateSelectedYeti(input: $input) {\\n      ... on UpdateSelectedYetiSuccess {\\n        student {\\n          id\\n          selectedYeti\\n        }\\n        yeti\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation UpdateSelectedYeti($input: UpdateSelectedYetiInput!) {\\n    updateSelectedYeti(input: $input) {\\n      ... on UpdateSelectedYetiSuccess {\\n        student {\\n          id\\n          selectedYeti\\n        }\\n        yeti\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation PurchaseYeti($input: PurchaseYetiInput!) {\\n    purchaseYeti(input: $input) {\\n      ... on PurchaseYetiSuccess {\\n        student {\\n          id\\n          selectedYeti\\n          ...PurchasesDataFragment\\n          ...RewardTotalsDataFragment\\n        }\\n        yeti\\n      }\\n      ... on AlreadyPurchasedError {\\n        code\\n      }\\n      ... on NotEnoughCoinsError {\\n        code\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation PurchaseYeti($input: PurchaseYetiInput!) {\\n    purchaseYeti(input: $input) {\\n      ... on PurchaseYetiSuccess {\\n        student {\\n          id\\n          selectedYeti\\n          ...PurchasesDataFragment\\n          ...RewardTotalsDataFragment\\n        }\\n        yeti\\n      }\\n      ... on AlreadyPurchasedError {\\n        code\\n      }\\n      ... on NotEnoughCoinsError {\\n        code\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetInitialAppData {\\n    student {\\n      ... on Student {\\n        ...StudentUserDataFragment\\n        ...StudentProgressDataFragment\\n        ...StudentQuestDataFragment\\n        ...StudentAssignmentDataFragment\\n        __typename\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetInitialAppData {\\n    student {\\n      ... on Student {\\n        ...StudentUserDataFragment\\n        ...StudentProgressDataFragment\\n        ...StudentQuestDataFragment\\n        ...StudentAssignmentDataFragment\\n        __typename\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment YetiDataFragment on Yeti {\\n    id\\n    price\\n  }\\n\"): (typeof documents)[\"\\n  fragment YetiDataFragment on Yeti {\\n    id\\n    price\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetYetis {\\n    yetis {\\n      ...YetiDataFragment\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetYetis {\\n    yetis {\\n      ...YetiDataFragment\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment ActivityData on Activity {\\n    activityType\\n    id\\n    manifestBundle\\n    manifestKey\\n    peak\\n    positionInPeak\\n  }\\n\"): (typeof documents)[\"\\n  fragment ActivityData on Activity {\\n    activityType\\n    id\\n    manifestBundle\\n    manifestKey\\n    peak\\n    positionInPeak\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetActivities {\\n    activities {\\n      ...ActivityData\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetActivities {\\n    activities {\\n      ...ActivityData\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment StudentAssignmentDataFragment on Student {\\n    assignment {\\n      ... on AssignmentPeak {\\n        positionInPeak\\n        endAt\\n        id\\n        peak\\n        thumbnailUrl\\n        title\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment StudentAssignmentDataFragment on Student {\\n    assignment {\\n      ... on AssignmentPeak {\\n        positionInPeak\\n        endAt\\n        id\\n        peak\\n        thumbnailUrl\\n        title\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetStudentAssignment {\\n    student {\\n      ... on Student {\\n        id\\n        ...StudentAssignmentDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetStudentAssignment {\\n    student {\\n      ... on Student {\\n        id\\n        ...StudentAssignmentDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation ResetPeakProgress($input: StudentProgressPeakResetInput!) {\\n    studentProgressPeakReset(input: $input) {\\n      ... on StudentProgressPeakResetOutput {\\n        student {\\n          ...StudentProgressDataFragment\\n        }\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation ResetPeakProgress($input: StudentProgressPeakResetInput!) {\\n    studentProgressPeakReset(input: $input) {\\n      ... on StudentProgressPeakResetOutput {\\n        student {\\n          ...StudentProgressDataFragment\\n        }\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation ResetPlacementTestProgress {\\n      studentProgressPlacementTestReset {\\n        ... on StudentProgressPlacementTestResetOutput {\\n          student {\\n            ...StudentProgressDataFragment\\n          }\\n        }\\n        __typename\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation ResetPlacementTestProgress {\\n      studentProgressPlacementTestReset {\\n        ... on StudentProgressPlacementTestResetOutput {\\n          student {\\n            ...StudentProgressDataFragment\\n          }\\n        }\\n        __typename\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment StudentProgressDataFragment on Student {\\n    id\\n    progress {\\n      lessons {\\n        peak\\n        positionInPeak\\n        showPlacementTest\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment StudentProgressDataFragment on Student {\\n    id\\n    progress {\\n      lessons {\\n        peak\\n        positionInPeak\\n        showPlacementTest\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetStudentProgress {\\n    student {\\n      ... on Student {\\n        ...StudentProgressDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetStudentProgress {\\n    student {\\n      ... on Student {\\n        ...StudentProgressDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment StudentQuestDataFragment on Student {\\n    id\\n    quest {\\n      primaryGoal {\\n        __typename\\n        goalType: __typename\\n        ... on QuestGoalPeak {\\n          rewardAmount\\n          id\\n          peak\\n          progressCurrent\\n          progressTotal\\n          status\\n        }\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment StudentQuestDataFragment on Student {\\n    id\\n    quest {\\n      primaryGoal {\\n        __typename\\n        goalType: __typename\\n        ... on QuestGoalPeak {\\n          rewardAmount\\n          id\\n          peak\\n          progressCurrent\\n          progressTotal\\n          status\\n        }\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetStudentQuest {\\n    student {\\n      ... on Student {\\n        ...StudentQuestDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetStudentQuest {\\n    student {\\n      ... on Student {\\n        ...StudentQuestDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation StudentQuestGoalAcknowledgeComplete(\\n    $input: StudentQuestGoalAcknowledgeCompleteInput!\\n  ) {\\n    studentQuestGoalAcknowledgeComplete(input: $input) {\\n      ... on StudentQuestGoalAcknowledgeCompleteOutput {\\n        student {\\n          ...StudentQuestDataFragment\\n          ...StudentUserDataFragment\\n        }\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation StudentQuestGoalAcknowledgeComplete(\\n    $input: StudentQuestGoalAcknowledgeCompleteInput!\\n  ) {\\n    studentQuestGoalAcknowledgeComplete(input: $input) {\\n      ... on StudentQuestGoalAcknowledgeCompleteOutput {\\n        student {\\n          ...StudentQuestDataFragment\\n          ...StudentUserDataFragment\\n        }\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment RewardTotalsDataFragment on Student {\\n    rewardTotals {\\n      bookGems\\n      coins\\n      soundGems\\n      wordGems\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment RewardTotalsDataFragment on Student {\\n    rewardTotals {\\n      bookGems\\n      coins\\n      soundGems\\n      wordGems\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment PeakQuizSummariesDataFragment on Student {\\n    peakQuizSummaries {\\n      best\\n      certificate {\\n        colour\\n        created\\n        url\\n      }\\n      first\\n      id\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment PeakQuizSummariesDataFragment on Student {\\n    peakQuizSummaries {\\n      best\\n      certificate {\\n        colour\\n        created\\n        url\\n      }\\n      first\\n      id\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment PurchasesDataFragment on Student {\\n    purchases {\\n      category\\n      item\\n      price\\n      uuid\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment PurchasesDataFragment on Student {\\n    purchases {\\n      category\\n      item\\n      price\\n      uuid\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment SoundsDataFragment on Student {\\n    sounds {\\n      peak\\n      rewards\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment SoundsDataFragment on Student {\\n    sounds {\\n      peak\\n      rewards\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment WordsDataFragment on Student {\\n    words {\\n      peak\\n      rewards\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment WordsDataFragment on Student {\\n    words {\\n      peak\\n      rewards\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment StudentUserDataFragment on Student {\\n    id\\n    customerType\\n    backgroundMusicDisabled\\n    books\\n    averageBestPeakQuizResult\\n    abbreviatedName\\n    accent\\n    firstName\\n    selectedYeti\\n    viewedIntroVideo\\n    rosterEnabled\\n    ...PeakQuizSummariesDataFragment\\n    ...PurchasesDataFragment\\n    ...RewardTotalsDataFragment\\n    ...SoundsDataFragment\\n    ...WordsDataFragment\\n  }\\n\"): (typeof documents)[\"\\n  fragment StudentUserDataFragment on Student {\\n    id\\n    customerType\\n    backgroundMusicDisabled\\n    books\\n    averageBestPeakQuizResult\\n    abbreviatedName\\n    accent\\n    firstName\\n    selectedYeti\\n    viewedIntroVideo\\n    rosterEnabled\\n    ...PeakQuizSummariesDataFragment\\n    ...PurchasesDataFragment\\n    ...RewardTotalsDataFragment\\n    ...SoundsDataFragment\\n    ...WordsDataFragment\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetStudent {\\n    student {\\n      ... on Student {\\n        ...StudentUserDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetStudent {\\n    student {\\n      ... on Student {\\n        ...StudentUserDataFragment\\n      }\\n      ... on NotAuthenticatedError {\\n        code\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n\nexport function graphql(source: string) {\n  return (documents as any)[source] ?? {};\n}\n\nexport type DocumentType<TDocumentNode extends DocumentNode<any, any>> = TDocumentNode extends DocumentNode<  infer TType,  any>  ? TType  : never;","/* eslint-disable */\nimport type { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };\nexport type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };\nexport type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n  ID: { input: string; output: string; }\n  String: { input: string; output: string; }\n  Boolean: { input: boolean; output: boolean; }\n  Int: { input: number; output: number; }\n  Float: { input: number; output: number; }\n  /**  The `DateTime` scalar type represents a date and time in the UTC timezone. The DateTime appears in a JSON response as an ISO8601 formatted string, including UTC timezone (\"Z\"). The parsed date and time string will be converted to UTC if there is an offset.  */\n  DateTime: { input: string; output: string; }\n  /** A URL */\n  Url: { input: string; output: string; }\n  /** A UUID (Universally Unique Identifier) in standard string format. */\n  Uuid: { input: string; output: string; }\n};\n\n/** A student accent. */\nexport enum Accent {\n  /** Australian accent. */\n  Au = 'AU',\n  /** Canadian accent. */\n  Ca = 'CA',\n  /** UK accent. */\n  Uk = 'UK',\n  /** US accent. */\n  Us = 'US'\n}\n\nexport enum ActivityType {\n  Book = 'BOOK',\n  Interactive = 'INTERACTIVE',\n  Quiz = 'QUIZ',\n  Unlock = 'UNLOCK',\n  Video = 'VIDEO'\n}\n\n/** Input needed to process the student completing an assignment task. */\nexport type CompleteAssignmentTaskInput = {\n  /** Unique identifier of the task within the assignment. */\n  assignmentTaskId: Scalars['ID']['input'];\n  /** Unique identifier of the assignment. */\n  assignmentUuid: Scalars['Uuid']['input'];\n};\n\n/** Input needed to process the student completing an activity. */\nexport type CreateActivityResultInput = {\n  /** Unique identifier of the activity, eg. 'stretch_it_out_3' */\n  activityId: Scalars['ID']['input'];\n  /**\n   * The assignment task that was completed.\n   * @deprecated Use `assignment_id` instead.\n   */\n  assignment?: InputMaybe<CompleteAssignmentTaskInput>;\n  /** Unique identifier of the assignment. */\n  assignmentId?: InputMaybe<Scalars['ID']['input']>;\n  /** Unique identifier of the attempt. */\n  attemptUuid: Scalars['ID']['input'];\n  /** Number of correct answers. */\n  correctCount?: InputMaybe<Scalars['Int']['input']>;\n  /** Total number of questions. */\n  totalCount?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** Input needed to process the student completing an activity. */\nexport type CreateBookQuizResultInput = {\n  /** Unique identifier of the book, eg. 'pat_taps'. */\n  activityId: Scalars['ID']['input'];\n  /**\n   * The assignment task that was completed.\n   * @deprecated Use `assignment_id` instead.\n   */\n  assignment?: InputMaybe<CompleteAssignmentTaskInput>;\n  /** Unique identifier of the assignment. */\n  assignmentId?: InputMaybe<Scalars['ID']['input']>;\n  /** Unique identifier of the attempt. */\n  attemptUuid: Scalars['Uuid']['input'];\n  /** List of correct answers. */\n  correctAnswers: Array<Scalars['String']['input']>;\n  /** List of incorrect answers. */\n  incorrectAnswers: Array<IncorrectAnswerInput>;\n  /** The peak number. */\n  peak: Scalars['Int']['input'];\n  /** Whether the student replayed the book with audio. */\n  replayWithAudio: Scalars['Boolean']['input'];\n};\n\n/** Input needed to process the student completing an activity. */\nexport type CreatePeakQuizResultInput = {\n  /** Unique identifier of the assignment. */\n  assignmentId?: InputMaybe<Scalars['ID']['input']>;\n  /** Unique identifier of the attempt. */\n  attemptUuid: Scalars['ID']['input'];\n  /** List of correct answers. */\n  correctAnswers: Array<Scalars['String']['input']>;\n  /** List of incorrect answers. */\n  incorrectAnswers: Array<IncorrectAnswerInput>;\n  /** The peak number. */\n  peak: Scalars['Int']['input'];\n  /** The student's name for the certificate. */\n  studentName: Scalars['String']['input'];\n};\n\n/** Input needed to process the student completing a placement test. */\nexport type CreatePlacementTestResultInput = {\n  /** Unique identifier of the attempt. */\n  attemptUuid: Scalars['Uuid']['input'];\n  /** The question number the student got up to. */\n  questionNumber: Scalars['Int']['input'];\n};\n\n/** The customer type of the student. */\nexport enum CustomerType {\n  /** Business-to-business school student. */\n  B2BStudent = 'B2B_STUDENT',\n  /** Business-to-consumer homeschool student. */\n  B2CHomeschoolStudent = 'B2C_HOMESCHOOL_STUDENT',\n  /** Business-to-consumer student. */\n  B2CStudent = 'B2C_STUDENT'\n}\n\n/** How grandiose the house is. */\nexport enum HouseLevel {\n  /** A basic house. */\n  Basic = 'BASIC',\n  /** A house after the first treasure chest. */\n  Chest_1 = 'CHEST_1',\n  /** A house after the second treasure chest. */\n  Chest_2 = 'CHEST_2',\n  /** No house. */\n  None = 'NONE'\n}\n\nexport type IncorrectAnswerInput = {\n  /** The correct answer. */\n  correctAnswer: Scalars['String']['input'];\n  /** The student's answer. */\n  studentInput: Scalars['String']['input'];\n};\n\n/** The category of the purchase. */\nexport enum PurchaseCatgegory {\n  /** A yeti purchase. */\n  Yeti = 'YETI'\n}\n\n/** Input needed to to purchase a yeti. */\nexport type PurchaseYetiInput = {\n  /** Unique client identifier of the purchase. */\n  uuid: Scalars['Uuid']['input'];\n  /** Id of the yeti to purchase. */\n  yeti: Scalars['ID']['input'];\n};\n\n/** The status of the goal. */\nexport enum QuestGoalStatus {\n  /** The goal is complete. */\n  Complete = 'COMPLETE',\n  /** The goal is incomplete. */\n  Incomplete = 'INCOMPLETE',\n  /** The goal is complete and the student can collect their reward. */\n  ShowCompleteAlert = 'SHOW_COMPLETE_ALERT'\n}\n\n/** Input needed to process the student skipping a placement test. */\nexport type SkipPlacementTestResultInput = {\n  /** Unique identifier of the attempt. */\n  attemptUuid: Scalars['Uuid']['input'];\n};\n\n/** Arguments needed to reset the students progress to a peak position */\nexport type StudentProgressPeakResetInput = {\n  /** A peak number */\n  peak: Scalars['Int']['input'];\n  /** A position within the peak */\n  positionInPeak: Scalars['Int']['input'];\n};\n\n/** Arguments needed to store a record of a student completing an End of Unit Quiz */\nexport type StudentQuestGoalAcknowledgeCompleteInput = {\n  /** A unique id for a quest goal record */\n  goalId: Scalars['String']['input'];\n};\n\n/** Input needed to update the intro_video_viewed state of a student. */\nexport type UpdateIntroVideoInput = {\n  /** Has the student viewed the intro video? */\n  viewed: Scalars['Boolean']['input'];\n};\n\n/** Input needed to update the selected_yeti for a student. */\nexport type UpdateSelectedYetiInput = {\n  /** Student's selected yeti. */\n  yeti: Scalars['String']['input'];\n};\n\nexport type UpdateIntroVideoMutationVariables = Exact<{\n  input: UpdateIntroVideoInput;\n}>;\n\n\nexport type UpdateIntroVideoMutation = { __typename: 'RootMutationType', updateIntroVideo: { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'UpdateIntroVideoSuccess', viewed: boolean, student: { __typename: 'Student', id: string, viewedIntroVideo: boolean } } };\n\nexport type PlacementTestResultDataFragmentFragment = { __typename: 'PlacementTestResult', attemptUuid: string, id: string, peak: number, questionNumber: number };\n\nexport type SkipPlacementTestResultDataFragmentFragment = { __typename: 'SkipPlacementTestResult', attemptUuid: string, id: string };\n\nexport type CreatePlacementTestResultMutationVariables = Exact<{\n  input: CreatePlacementTestResultInput;\n}>;\n\n\nexport type CreatePlacementTestResultMutation = { __typename: 'RootMutationType', createPlacementTestResult: { __typename: 'CreatePlacementTestResultSuccess', student: { __typename: 'Student', id: string, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } }, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null }, placementTestResult: { __typename: 'PlacementTestResult', attemptUuid: string, id: string, peak: number, questionNumber: number } } | { __typename: 'NotAuthenticatedError', code: string } };\n\nexport type SkipPlacementTestResultMutationVariables = Exact<{\n  input: SkipPlacementTestResultInput;\n}>;\n\n\nexport type SkipPlacementTestResultMutation = { __typename: 'RootMutationType', skipPlacementTestResult: { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'SkipPlacementTestResultSuccess', student: { __typename: 'Student', id: string, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } }, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null }, skipPlacementTestResult: { __typename: 'SkipPlacementTestResult', attemptUuid: string, id: string } } };\n\nexport type ActivityResultDataFragmentFragment = { __typename: 'ActivityResult', activityId: string, coinsEarned: number, correctCount?: number | null, houseLevel: HouseLevel, id: string, passed?: boolean | null, peak: number, soundGemsEarned: number, soundsEarned: Array<string>, totalCount?: number | null, wordGemsEarned: number, wordsEarned: Array<string> };\n\nexport type BookQuizResultDataFragmentFragment = { __typename: 'BookQuizResult', activityId: string, attemptUuid: string, bookGemEarned: boolean, bookName: string, coinsEarned: number, correctAnswers: Array<string>, id: string, passed: boolean, peak: number, replayWithAudio: boolean, incorrectAnswers: Array<{ __typename: 'IncorrectAnswer', correctAnswer: string, studentInput: string }> };\n\nexport type PeakQuizResultDataFragmentFragment = { __typename: 'PeakQuizResult', certificateUrl?: string | null, coinsEarned: number, correctAnswers: Array<string>, id: string, passed: boolean, peak: number, progressed: boolean, incorrectAnswers: Array<{ __typename: 'IncorrectAnswer', correctAnswer: string, studentInput: string }> };\n\nexport type CreateActivityResultMutationVariables = Exact<{\n  input: CreateActivityResultInput;\n}>;\n\n\nexport type CreateActivityResultMutation = { __typename: 'RootMutationType', createActivityResult: { __typename: 'CreateActivityResultSuccess', student: { __typename: 'Student', id: string, assignment?: { __typename: 'AssignmentPeak', positionInPeak: number, endAt: string, id: string, peak: number, thumbnailUrl: string, title: string } | null, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } }, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number }, sounds: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }>, words: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }> }, activityResult: { __typename: 'ActivityResult', activityId: string, coinsEarned: number, correctCount?: number | null, houseLevel: HouseLevel, id: string, passed?: boolean | null, peak: number, soundGemsEarned: number, soundsEarned: Array<string>, totalCount?: number | null, wordGemsEarned: number, wordsEarned: Array<string> } } | { __typename: 'NotAuthenticatedError', code: string } };\n\nexport type CreateBookQuizResultMutationVariables = Exact<{\n  input: CreateBookQuizResultInput;\n}>;\n\n\nexport type CreateBookQuizResultMutation = { __typename: 'RootMutationType', createBookQuizResult: { __typename: 'CreateBookQuizResultSuccess', student: { __typename: 'Student', books: Array<string>, id: string, assignment?: { __typename: 'AssignmentPeak', positionInPeak: number, endAt: string, id: string, peak: number, thumbnailUrl: string, title: string } | null, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } }, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number } }, bookQuizResult: { __typename: 'BookQuizResult', activityId: string, attemptUuid: string, bookGemEarned: boolean, bookName: string, coinsEarned: number, correctAnswers: Array<string>, id: string, passed: boolean, peak: number, replayWithAudio: boolean, incorrectAnswers: Array<{ __typename: 'IncorrectAnswer', correctAnswer: string, studentInput: string }> } } | { __typename: 'NotAuthenticatedError', code: string } };\n\nexport type CreatePeakQuizResultMutationVariables = Exact<{\n  input: CreatePeakQuizResultInput;\n}>;\n\n\nexport type CreatePeakQuizResultMutation = { __typename: 'RootMutationType', createPeakQuizResult: { __typename: 'CreatePeakQuizResultSuccess', student: { __typename: 'Student', id: string, assignment?: { __typename: 'AssignmentPeak', positionInPeak: number, endAt: string, id: string, peak: number, thumbnailUrl: string, title: string } | null, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } }, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number }, peakQuizSummaries: Array<{ __typename: 'PeakQuizSummary', best: number, first: number, id: string, certificate?: { __typename: 'Certificate', colour: string, created: string, url: string } | null }> }, peakQuizResult: { __typename: 'PeakQuizResult', certificateUrl?: string | null, coinsEarned: number, correctAnswers: Array<string>, id: string, passed: boolean, peak: number, progressed: boolean, incorrectAnswers: Array<{ __typename: 'IncorrectAnswer', correctAnswer: string, studentInput: string }> } } | { __typename: 'NotAuthenticatedError', code: string } };\n\nexport type UpdateSelectedYetiMutationVariables = Exact<{\n  input: UpdateSelectedYetiInput;\n}>;\n\n\nexport type UpdateSelectedYetiMutation = { __typename: 'RootMutationType', updateSelectedYeti: { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'UpdateSelectedYetiSuccess', yeti: string, student: { __typename: 'Student', id: string, selectedYeti: string } } };\n\nexport type PurchaseYetiMutationVariables = Exact<{\n  input: PurchaseYetiInput;\n}>;\n\n\nexport type PurchaseYetiMutation = { __typename: 'RootMutationType', purchaseYeti: { __typename: 'AlreadyPurchasedError', code: string } | { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'NotEnoughCoinsError', code: string } | { __typename: 'PurchaseYetiSuccess', yeti: string, student: { __typename: 'Student', id: string, selectedYeti: string, purchases: Array<{ __typename: 'Purchase', category: PurchaseCatgegory, item: string, price: number, uuid: string }>, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number } } } };\n\nexport type GetInitialAppDataQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetInitialAppDataQuery = { __typename: 'RootQueryType', student: { __typename: 'NotAuthenticatedError' } | { __typename: 'Student', id: string, customerType: CustomerType, backgroundMusicDisabled: boolean, books: Array<string>, averageBestPeakQuizResult?: number | null, abbreviatedName: string, accent: Accent, firstName: string, selectedYeti: string, viewedIntroVideo: boolean, rosterEnabled: boolean, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } }, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null, assignment?: { __typename: 'AssignmentPeak', positionInPeak: number, endAt: string, id: string, peak: number, thumbnailUrl: string, title: string } | null, peakQuizSummaries: Array<{ __typename: 'PeakQuizSummary', best: number, first: number, id: string, certificate?: { __typename: 'Certificate', colour: string, created: string, url: string } | null }>, purchases: Array<{ __typename: 'Purchase', category: PurchaseCatgegory, item: string, price: number, uuid: string }>, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number }, sounds: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }>, words: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }> } };\n\nexport type YetiDataFragmentFragment = { __typename: 'Yeti', id: string, price: number };\n\nexport type GetYetisQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetYetisQuery = { __typename: 'RootQueryType', yetis: Array<{ __typename: 'Yeti', id: string, price: number }> };\n\nexport type ActivityDataFragment = { __typename: 'Activity', activityType: ActivityType, id: string, manifestBundle: string, manifestKey: string, peak: number, positionInPeak: number };\n\nexport type GetActivitiesQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetActivitiesQuery = { __typename: 'RootQueryType', activities: Array<{ __typename: 'Activity', activityType: ActivityType, id: string, manifestBundle: string, manifestKey: string, peak: number, positionInPeak: number }> };\n\nexport type StudentAssignmentDataFragmentFragment = { __typename: 'Student', assignment?: { __typename: 'AssignmentPeak', positionInPeak: number, endAt: string, id: string, peak: number, thumbnailUrl: string, title: string } | null };\n\nexport type GetStudentAssignmentQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetStudentAssignmentQuery = { __typename: 'RootQueryType', student: { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'Student', id: string, assignment?: { __typename: 'AssignmentPeak', positionInPeak: number, endAt: string, id: string, peak: number, thumbnailUrl: string, title: string } | null } };\n\nexport type ResetPeakProgressMutationVariables = Exact<{\n  input: StudentProgressPeakResetInput;\n}>;\n\n\nexport type ResetPeakProgressMutation = { __typename: 'RootMutationType', studentProgressPeakReset: { __typename: 'NotAuthenticatedError' } | { __typename: 'StudentProgressPeakResetOutput', student: { __typename: 'Student', id: string, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } } } } };\n\nexport type ResetPlacementTestProgressMutationVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type ResetPlacementTestProgressMutation = { __typename: 'RootMutationType', studentProgressPlacementTestReset: { __typename: 'NotAuthenticatedError' } | { __typename: 'StudentProgressPlacementTestResetOutput', student: { __typename: 'Student', id: string, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } } } } };\n\nexport type StudentProgressDataFragmentFragment = { __typename: 'Student', id: string, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } } };\n\nexport type GetStudentProgressQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetStudentProgressQuery = { __typename: 'RootQueryType', student: { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'Student', id: string, progress: { __typename: 'Progress', lessons: { __typename: 'LessonsProgress', peak: number, positionInPeak: number, showPlacementTest: boolean } } } };\n\nexport type StudentQuestDataFragmentFragment = { __typename: 'Student', id: string, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null };\n\nexport type GetStudentQuestQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetStudentQuestQuery = { __typename: 'RootQueryType', student: { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'Student', id: string, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null } };\n\nexport type StudentQuestGoalAcknowledgeCompleteMutationVariables = Exact<{\n  input: StudentQuestGoalAcknowledgeCompleteInput;\n}>;\n\n\nexport type StudentQuestGoalAcknowledgeCompleteMutation = { __typename: 'RootMutationType', studentQuestGoalAcknowledgeComplete: { __typename: 'NotAuthenticatedError' } | { __typename: 'StudentQuestGoalAcknowledgeCompleteOutput', student: { __typename: 'Student', id: string, customerType: CustomerType, backgroundMusicDisabled: boolean, books: Array<string>, averageBestPeakQuizResult?: number | null, abbreviatedName: string, accent: Accent, firstName: string, selectedYeti: string, viewedIntroVideo: boolean, rosterEnabled: boolean, quest?: { __typename: 'Quest', primaryGoal: { __typename: 'QuestGoalPeak', rewardAmount: number, id: string, peak: number, progressCurrent: number, progressTotal: number, status: QuestGoalStatus, goalType: 'QuestGoalPeak' } } | null, peakQuizSummaries: Array<{ __typename: 'PeakQuizSummary', best: number, first: number, id: string, certificate?: { __typename: 'Certificate', colour: string, created: string, url: string } | null }>, purchases: Array<{ __typename: 'Purchase', category: PurchaseCatgegory, item: string, price: number, uuid: string }>, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number }, sounds: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }>, words: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }> } } };\n\nexport type RewardTotalsDataFragmentFragment = { __typename: 'Student', rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number } };\n\nexport type PeakQuizSummariesDataFragmentFragment = { __typename: 'Student', peakQuizSummaries: Array<{ __typename: 'PeakQuizSummary', best: number, first: number, id: string, certificate?: { __typename: 'Certificate', colour: string, created: string, url: string } | null }> };\n\nexport type PurchasesDataFragmentFragment = { __typename: 'Student', purchases: Array<{ __typename: 'Purchase', category: PurchaseCatgegory, item: string, price: number, uuid: string }> };\n\nexport type SoundsDataFragmentFragment = { __typename: 'Student', sounds: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }> };\n\nexport type WordsDataFragmentFragment = { __typename: 'Student', words: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }> };\n\nexport type StudentUserDataFragmentFragment = { __typename: 'Student', id: string, customerType: CustomerType, backgroundMusicDisabled: boolean, books: Array<string>, averageBestPeakQuizResult?: number | null, abbreviatedName: string, accent: Accent, firstName: string, selectedYeti: string, viewedIntroVideo: boolean, rosterEnabled: boolean, peakQuizSummaries: Array<{ __typename: 'PeakQuizSummary', best: number, first: number, id: string, certificate?: { __typename: 'Certificate', colour: string, created: string, url: string } | null }>, purchases: Array<{ __typename: 'Purchase', category: PurchaseCatgegory, item: string, price: number, uuid: string }>, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number }, sounds: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }>, words: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }> };\n\nexport type GetStudentQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetStudentQuery = { __typename: 'RootQueryType', student: { __typename: 'NotAuthenticatedError', code: string } | { __typename: 'Student', id: string, customerType: CustomerType, backgroundMusicDisabled: boolean, books: Array<string>, averageBestPeakQuizResult?: number | null, abbreviatedName: string, accent: Accent, firstName: string, selectedYeti: string, viewedIntroVideo: boolean, rosterEnabled: boolean, peakQuizSummaries: Array<{ __typename: 'PeakQuizSummary', best: number, first: number, id: string, certificate?: { __typename: 'Certificate', colour: string, created: string, url: string } | null }>, purchases: Array<{ __typename: 'Purchase', category: PurchaseCatgegory, item: string, price: number, uuid: string }>, rewardTotals: { __typename: 'RewardTotals', bookGems: number, coins: number, soundGems: number, wordGems: number }, sounds: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }>, words: Array<{ __typename: 'PeakRewards', peak: number, rewards: Array<string> }> } };\n\nexport const PlacementTestResultDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PlacementTestResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PlacementTestResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"questionNumber\"}}]}}]} as unknown as DocumentNode<PlacementTestResultDataFragmentFragment, unknown>;\nexport const SkipPlacementTestResultDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]} as unknown as DocumentNode<SkipPlacementTestResultDataFragmentFragment, unknown>;\nexport const ActivityResultDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coinsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctCount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"houseLevel\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGemsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalCount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGemsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordsEarned\"}}]}}]} as unknown as DocumentNode<ActivityResultDataFragmentFragment, unknown>;\nexport const BookQuizResultDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"BookQuizResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BookQuizResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGemEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coinsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswers\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"incorrectAnswers\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswer\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentInput\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"replayWithAudio\"}}]}}]} as unknown as DocumentNode<BookQuizResultDataFragmentFragment, unknown>;\nexport const PeakQuizResultDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificateUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coinsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswers\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"incorrectAnswers\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswer\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentInput\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressed\"}}]}}]} as unknown as DocumentNode<PeakQuizResultDataFragmentFragment, unknown>;\nexport const YetiDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"YetiDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Yeti\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}}]}}]} as unknown as DocumentNode<YetiDataFragmentFragment, unknown>;\nexport const ActivityDataFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityData\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Activity\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityType\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manifestBundle\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manifestKey\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}}]}}]} as unknown as DocumentNode<ActivityDataFragment, unknown>;\nexport const StudentAssignmentDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignment\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<StudentAssignmentDataFragmentFragment, unknown>;\nexport const StudentProgressDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}}]} as unknown as DocumentNode<StudentProgressDataFragmentFragment, unknown>;\nexport const StudentQuestDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}}]} as unknown as DocumentNode<StudentQuestDataFragmentFragment, unknown>;\nexport const PeakQuizSummariesDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peakQuizSummaries\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"best\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]}}]} as unknown as DocumentNode<PeakQuizSummariesDataFragmentFragment, unknown>;\nexport const PurchasesDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"purchases\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"item\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uuid\"}}]}}]}}]} as unknown as DocumentNode<PurchasesDataFragmentFragment, unknown>;\nexport const RewardTotalsDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}}]} as unknown as DocumentNode<RewardTotalsDataFragmentFragment, unknown>;\nexport const SoundsDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sounds\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}}]} as unknown as DocumentNode<SoundsDataFragmentFragment, unknown>;\nexport const WordsDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"words\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}}]} as unknown as DocumentNode<WordsDataFragmentFragment, unknown>;\nexport const StudentUserDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customerType\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"backgroundMusicDisabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"books\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"averageBestPeakQuizResult\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"abbreviatedName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"accent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedYeti\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewedIntroVideo\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rosterEnabled\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peakQuizSummaries\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"best\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"purchases\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"item\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uuid\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sounds\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"words\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}}]} as unknown as DocumentNode<StudentUserDataFragmentFragment, unknown>;\nexport const UpdateIntroVideoDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateIntroVideo\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateIntroVideoInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIntroVideo\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateIntroVideoSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewedIntroVideo\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewed\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<UpdateIntroVideoMutation, UpdateIntroVideoMutationVariables>;\nexport const CreatePlacementTestResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"CreatePlacementTestResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreatePlacementTestResultInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createPlacementTestResult\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreatePlacementTestResultSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"placementTestResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PlacementTestResultDataFragment\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PlacementTestResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PlacementTestResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"questionNumber\"}}]}}]} as unknown as DocumentNode<CreatePlacementTestResultMutation, CreatePlacementTestResultMutationVariables>;\nexport const SkipPlacementTestResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResultInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"skipPlacementTestResult\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResultSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"skipPlacementTestResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResultDataFragment\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SkipPlacementTestResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]} as unknown as DocumentNode<SkipPlacementTestResultMutation, SkipPlacementTestResultMutationVariables>;\nexport const CreateActivityResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateActivityResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateActivityResultInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createActivityResult\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateActivityResultSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityResultDataFragment\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignment\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sounds\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"words\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coinsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctCount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"houseLevel\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGemsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalCount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGemsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordsEarned\"}}]}}]} as unknown as DocumentNode<CreateActivityResultMutation, CreateActivityResultMutationVariables>;\nexport const CreateBookQuizResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateBookQuizResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateBookQuizResultInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createBookQuizResult\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateBookQuizResultSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"books\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookQuizResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"BookQuizResultDataFragment\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignment\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"BookQuizResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BookQuizResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGemEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coinsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswers\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"incorrectAnswers\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswer\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentInput\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"replayWithAudio\"}}]}}]} as unknown as DocumentNode<CreateBookQuizResultMutation, CreateBookQuizResultMutationVariables>;\nexport const CreatePeakQuizResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"CreatePeakQuizResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreatePeakQuizResultInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createPeakQuizResult\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreatePeakQuizResultSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peakQuizResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizResultDataFragment\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignment\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peakQuizSummaries\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"best\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizResultDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificateUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coinsEarned\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswers\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"incorrectAnswers\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswer\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentInput\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressed\"}}]}}]} as unknown as DocumentNode<CreatePeakQuizResultMutation, CreatePeakQuizResultMutationVariables>;\nexport const UpdateSelectedYetiDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateSelectedYeti\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateSelectedYetiInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateSelectedYeti\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateSelectedYetiSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedYeti\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"yeti\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<UpdateSelectedYetiMutation, UpdateSelectedYetiMutationVariables>;\nexport const PurchaseYetiDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchaseYeti\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchaseYetiInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"purchaseYeti\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchaseYetiSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedYeti\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"yeti\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AlreadyPurchasedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotEnoughCoinsError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"purchases\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"item\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uuid\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}}]} as unknown as DocumentNode<PurchaseYetiMutation, PurchaseYetiMutationVariables>;\nexport const GetInitialAppDataDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetInitialAppData\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peakQuizSummaries\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"best\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"purchases\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"item\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uuid\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sounds\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"words\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customerType\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"backgroundMusicDisabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"books\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"averageBestPeakQuizResult\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"abbreviatedName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"accent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedYeti\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewedIntroVideo\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rosterEnabled\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignment\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<GetInitialAppDataQuery, GetInitialAppDataQueryVariables>;\nexport const GetYetisDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetYetis\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"yetis\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"YetiDataFragment\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"YetiDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Yeti\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}}]}}]} as unknown as DocumentNode<GetYetisQuery, GetYetisQueryVariables>;\nexport const GetActivitiesDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetActivities\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activities\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityData\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityData\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Activity\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityType\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manifestBundle\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manifestKey\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}}]}}]} as unknown as DocumentNode<GetActivitiesQuery, GetActivitiesQueryVariables>;\nexport const GetStudentAssignmentDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetStudentAssignment\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAssignmentDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignment\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<GetStudentAssignmentQuery, GetStudentAssignmentQueryVariables>;\nexport const ResetPeakProgressDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"ResetPeakProgress\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressPeakResetInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentProgressPeakReset\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressPeakResetOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}}]} as unknown as DocumentNode<ResetPeakProgressMutation, ResetPeakProgressMutationVariables>;\nexport const ResetPlacementTestProgressDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"ResetPlacementTestProgress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentProgressPlacementTestReset\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressPlacementTestResetOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}}]} as unknown as DocumentNode<ResetPlacementTestProgressMutation, ResetPlacementTestProgressMutationVariables>;\nexport const GetStudentProgressDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetStudentProgress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"positionInPeak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}}]}}]}}]} as unknown as DocumentNode<GetStudentProgressQuery, GetStudentProgressQueryVariables>;\nexport const GetStudentQuestDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetStudentQuest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}}]} as unknown as DocumentNode<GetStudentQuestQuery, GetStudentQuestQueryVariables>;\nexport const StudentQuestGoalAcknowledgeCompleteDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestGoalAcknowledgeComplete\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestGoalAcknowledgeCompleteInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentQuestGoalAcknowledgeComplete\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestGoalAcknowledgeCompleteOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserDataFragment\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peakQuizSummaries\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"best\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"purchases\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"item\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uuid\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sounds\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"words\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalPeak\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customerType\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"backgroundMusicDisabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"books\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"averageBestPeakQuizResult\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"abbreviatedName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"accent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedYeti\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewedIntroVideo\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rosterEnabled\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"}}]}}]} as unknown as DocumentNode<StudentQuestGoalAcknowledgeCompleteMutation, StudentQuestGoalAcknowledgeCompleteMutationVariables>;\nexport const GetStudentDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetStudent\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserDataFragment\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotAuthenticatedError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peakQuizSummaries\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"best\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"purchases\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"item\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"price\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uuid\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardTotals\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coins\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"soundGems\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"wordGems\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sounds\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"words\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"peak\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewards\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customerType\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"backgroundMusicDisabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"books\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"averageBestPeakQuizResult\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"abbreviatedName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"accent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedYeti\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewedIntroVideo\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rosterEnabled\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PeakQuizSummariesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchasesDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"RewardTotalsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"SoundsDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WordsDataFragment\"}}]}}]} as unknown as DocumentNode<GetStudentQuery, GetStudentQueryVariables>;","export * from \"./gql\";","\n      export interface PossibleTypesResultData {\n        possibleTypes: {\n          [key: string]: string[]\n        }\n      }\n      const result: PossibleTypesResultData = {\n  \"possibleTypes\": {\n    \"Assignment\": [\n      \"AssignmentPeak\"\n    ],\n    \"AssignmentDetails\": [\n      \"AssignmentPeak\"\n    ],\n    \"AssignmentTask\": [\n      \"AssignmentTaskPeak\"\n    ],\n    \"AssignmentTaskDetails\": [\n      \"AssignmentTaskPeak\"\n    ],\n    \"CreateActivityResultPayload\": [\n      \"CreateActivityResultSuccess\",\n      \"NotAuthenticatedError\"\n    ],\n    \"CreateBookQuizResultPayload\": [\n      \"CreateBookQuizResultSuccess\",\n      \"NotAuthenticatedError\"\n    ],\n    \"CreatePeakQuizResultPayload\": [\n      \"CreatePeakQuizResultSuccess\",\n      \"NotAuthenticatedError\"\n    ],\n    \"CreatePlacementTestResultPayload\": [\n      \"CreatePlacementTestResultSuccess\",\n      \"NotAuthenticatedError\"\n    ],\n    \"PrimaryGoal\": [\n      \"QuestGoalPeak\"\n    ],\n    \"PurchaseYetiPayload\": [\n      \"AlreadyPurchasedError\",\n      \"NotAuthenticatedError\",\n      \"NotEnoughCoinsError\",\n      \"PurchaseYetiSuccess\"\n    ],\n    \"SkipPlacementTestResultPayload\": [\n      \"NotAuthenticatedError\",\n      \"SkipPlacementTestResultSuccess\"\n    ],\n    \"StudentPayload\": [\n      \"NotAuthenticatedError\",\n      \"Student\"\n    ],\n    \"StudentProgressPeakResetPayload\": [\n      \"NotAuthenticatedError\",\n      \"StudentProgressPeakResetOutput\"\n    ],\n    \"StudentProgressPlacementTestResetPayload\": [\n      \"NotAuthenticatedError\",\n      \"StudentProgressPlacementTestResetOutput\"\n    ],\n    \"StudentQuestGoalAcknowledgeCompletePayload\": [\n      \"NotAuthenticatedError\",\n      \"StudentQuestGoalAcknowledgeCompleteOutput\"\n    ],\n    \"UpdateIntroVideoPayload\": [\n      \"NotAuthenticatedError\",\n      \"UpdateIntroVideoSuccess\"\n    ],\n    \"UpdateSelectedYetiPayload\": [\n      \"NotAuthenticatedError\",\n      \"UpdateSelectedYetiSuccess\"\n    ]\n  }\n};\n      export default result;\n    ","import { helper } from '@ember/component/helper';\nimport config from '../config/environment';\nimport {\n  shaRegExp,\n  versionRegExp,\n  versionExtendedRegExp,\n} from 'ember-cli-app-version/utils/regexp';\n\nexport function appVersion(_, hash = {}) {\n  const version = config.APP.version;\n  // e.g. 1.0.0-alpha.1+4jds75hf\n\n  // Allow use of 'hideSha' and 'hideVersion' For backwards compatibility\n  let versionOnly = hash.versionOnly || hash.hideSha;\n  let shaOnly = hash.shaOnly || hash.hideVersion;\n\n  let match = null;\n\n  if (versionOnly) {\n    if (hash.showExtended) {\n      match = version.match(versionExtendedRegExp); // 1.0.0-alpha.1\n    }\n    // Fallback to just version\n    if (!match) {\n      match = version.match(versionRegExp); // 1.0.0\n    }\n  }\n\n  if (shaOnly) {\n    match = version.match(shaRegExp); // 4jds75hf\n  }\n\n  return match ? match[0] : version;\n}\n\nexport default helper(appVersion);\n","import pluralize from 'ember-inflector/lib/helpers/pluralize';\nexport default pluralize;\n","import singularize from 'ember-inflector/lib/helpers/singularize';\nexport default singularize;\n","import { helper } from '@ember/component/helper'\nimport podNames from 'ember-component-css/pod-names'\n\n/**\n * A temporary solution for ember-component-css not working with glimmer components\n *\n * Allows manually adding the pod-styles class to glimmer components\n */\nexport function styleNamespace(params: unknown[]): string {\n  const [componentName] = params\n  const classname = typeof componentName === 'string' ? podNames[componentName] : ''\n  return classname ?? ''\n}\n\nexport default helper(styleNamespace)\n","import { helper } from '@ember/component/helper'\nimport { capitalize, decamelize } from '@ember/string'\n\nexport const titleCase = ([value]: [string]) =>\n  capitalize(decamelize(value)).replace(/_/g, ' ')\n\nexport default helper(titleCase)\n","import initializerFactory from 'ember-cli-app-version/initializer-factory';\nimport config from '../config/environment';\n\nlet name, version;\nif (config.APP) {\n  name = config.APP.name;\n  version = config.APP.version;\n}\n\nexport default {\n  name: 'App Version',\n  initialize: initializerFactory(name, version),\n};\n","export { default, initialize } from 'ember-component-css/initializers/component-styles';\n\nimport Ember from 'ember';\n\nimport StyleNamespacingExtras from '../mixins/style-namespacing-extras';\n\n// eslint-disable-next-line ember/new-module-imports\nEmber.Component.reopen(StyleNamespacingExtras);\n","\n        export default {\n          name: 'ember-cli-mirage',\n          initialize() {}\n        };\n      ","// This file is removed from the build in Ember < 3.6\nexport { default, initialize } from 'ember-component-css/instance-initializers/route-styles';\n","import { service } from '@ember/service'\nimport Modifier from 'ember-modifier'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\n\ninterface RemoveLoadingScreenSignature {\n  Element: HTMLElement\n}\n\nexport default class RemoveLoadingScreenModifier extends Modifier<RemoveLoadingScreenSignature> {\n  @service\n  declare loadingUi: LoadingUiService\n\n  override modify() {\n    this.loadingUi.finish()\n  }\n}\n","import type { OperationVariables, WatchFragmentOptions } from '@apollo/client'\nimport { cell, resource, use } from 'ember-resources'\n\nfunction Fragment<TFragmentData = unknown, TVariables = OperationVariables>(\n  options: () => WatchFragmentOptions<TFragmentData, TVariables>,\n) {\n  return resource(({ owner, on }) => {\n    const apollo = owner.lookup('service:apollo')\n    const watchOptions = options()\n    const { from, fragment } = watchOptions\n    const query = apollo.watchFragment(watchOptions)\n\n    const currentResult = cell<TFragmentData | undefined>()\n\n    // Find the id of the object to read the initial fragment data\n    const id = typeof from === 'string' ? from : apollo.cache.identify(from)\n\n    if (id) {\n      // Attempt to read the initial fragment data from the cache\n      const initialResult = apollo.cache.readFragment({\n        id,\n        fragment: fragment,\n      })\n\n      if (initialResult) {\n        // If there is initial data, set the current result\n        currentResult.set(initialResult)\n      }\n    }\n\n    const subscription = query.subscribe((result) => {\n      if (result.complete) {\n        currentResult.set(result.data)\n      }\n    })\n\n    on.cleanup(() => {\n      subscription.unsubscribe()\n    })\n\n    return currentResult\n  })\n}\n\n/**\n * Watches the cache for changes to the provided frament.\n *\n * @returns a resource that will update with the latest fragment data.\n */\nexport function useFragment<\n  TFragmentData = unknown,\n  TVariables = OperationVariables,\n>(\n  parent: object,\n  options: () => WatchFragmentOptions<TVariables, TFragmentData>,\n) {\n  return use(parent, Fragment(options))\n}\n","import type {\n  ApolloCache,\n  BaseMutationOptions,\n  DefaultContext,\n  DocumentNode,\n  MutationOptions,\n  OperationVariables,\n  TypedDocumentNode,\n} from '@apollo/client'\nimport { cell, resource, use } from 'ember-resources'\nimport type { Reactive } from 'ember-resources'\n\nexport interface MutationResult<\n  TData = unknown,\n  TVariables = OperationVariables,\n  TContext = DefaultContext,\n  TCache extends ApolloCache<unknown> = ApolloCache<unknown>,\n> {\n  result: TData | undefined\n  mutate(\n    options: BaseMutationOptions<TData, TVariables, TContext, TCache>,\n  ): Promise<TData | null | undefined>\n}\n\nfunction Mutation<\n  TData = unknown,\n  TVariables = OperationVariables,\n  TContext = DefaultContext,\n  TCache extends ApolloCache<unknown> = ApolloCache<unknown>,\n>(\n  mutation: DocumentNode | TypedDocumentNode<TData, TVariables>,\n): MutationResult<TData, TVariables, TContext, TCache> {\n  return resource(({ owner }) => {\n    const apollo = owner.lookup('service:apollo')\n    const result = cell<TData | undefined>()\n\n    return () => ({\n      result: result.current,\n      async mutate(options) {\n        const clientOptions = { ...options, mutation } as MutationOptions<TData>\n        const mutateResult = await apollo.mutate(clientOptions)\n\n        if (mutateResult.data) {\n          result.set(mutateResult.data)\n        }\n\n        return mutateResult.data\n      },\n    })\n  })\n}\n\n/**\n * A resource that can perform the provided mutation.\n *\n * @returns a resource that will update with the latest mutation result,\n * and a method to perform the mutation.\n */\nexport function useMutation<TData = unknown, TVariables = OperationVariables>(\n  parent: object,\n  mutation: DocumentNode | TypedDocumentNode<TData, TVariables>,\n): Reactive<MutationResult<TData, TVariables>> {\n  return use(parent, Mutation(mutation))\n}\n","import type {\n  ApolloQueryResult,\n  OperationVariables,\n  WatchQueryOptions,\n} from '@apollo/client'\nimport { cell, resource, use } from 'ember-resources'\n\nexport interface WatchQuery<TData, TVariables> {\n  data: TData | undefined\n  refetch(): Promise<ApolloQueryResult<TData>>\n  result(): Promise<ApolloQueryResult<TData>>\n  updateQuery(\n    mapFn: (\n      previousQueryResult: TData,\n      options: {\n        variables?: TVariables\n      },\n    ) => TData,\n  ): void\n}\n\nfunction Query<\n  T = unknown,\n  TVariables extends OperationVariables = OperationVariables,\n>(options: () => WatchQueryOptions<TVariables, T>): WatchQuery<T, TVariables> {\n  return resource(({ owner, on }) => {\n    const apollo = owner.lookup('service:apollo')\n\n    const currentResult = cell<T | undefined>()\n    const query = apollo.watchQuery(options())\n\n    const subscription = query.subscribe((result) => {\n      if (!result.partial) {\n        currentResult.set(result.data)\n      }\n    })\n\n    on.cleanup(() => {\n      subscription.unsubscribe()\n    })\n\n    return () => ({\n      data: currentResult.current,\n      refetch() {\n        return query.refetch()\n      },\n      result() {\n        return query.result()\n      },\n      updateQuery(mapFn) {\n        query.updateQuery(mapFn)\n      },\n    })\n  })\n}\n\n/**\n * Watches the cache for changes to the provided query.\n *\n * @returns a resource that will update with the latest query data,\n * and methods to refetch or update the query.\n */\nexport function useQuery<\n  T = unknown,\n  TVariables extends OperationVariables = OperationVariables,\n>(parent: object, options: () => WatchQueryOptions<TVariables, T>) {\n  return use(parent, Query(options))\n}\n","import EmberRouter from '@ember/routing/router'\nimport config from 'fast-phonics-client/config/environment'\n\nexport default class Router extends EmberRouter {\n  location = config.locationType\n\n  rootURL = config.rootURL\n}\n\nRouter.map(function () {\n  this.route('peaks', function () {\n    this.route('peak', { path: '/:peak_id' }, function () {\n      // Peak Activities (All Stones)\n      this.route('stones')\n    })\n  })\n\n  // Interactive (Single Stone)\n  this.route('stone', { path: '/peaks/:peak_id/:stone_id' }, function () {\n    // EOM Quiz\n  })\n\n  this.route('end-of-program')\n\n  this.route('my-progress', function () {\n    // The index is the \"Progress\" tab\n    this.route('sounds')\n    this.route('words')\n    this.route('books')\n    this.route('certificates')\n  })\n\n  this.route('sound', { path: '/my-progress/sounds/:sound' })\n  this.route('book', { path: '/my-progress/books/:book_id' })\n\n  // intro video when user does not have progress\n  this.route('intro-video', function () {})\n\n  this.route('yeti-shop', function () {})\n\n  this.route('login')\n  this.route('logout')\n\n  this.route('error', function () {\n    this.route('unauthorized')\n  })\n\n  this.route('not-found', { path: '/*page' })\n  this.route('placement-test')\n  this.route('recommended')\n  this.route('assignment')\n})\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport {\n  isErrorRoute,\n  isInsideInteractive,\n} from 'fast-phonics-client/utils/app-refresher-logic'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport type ErrorHandlerService from 'fast-phonics-client/services/error-handler'\nimport type RouterService from '@ember/routing/router-service'\nimport type ReleaseChecker from '@blakeelearning/app-refresher/release-checker/service'\nimport type RefresherService from '@blakeelearning/app-refresher/refresher/service'\nimport type MetricsService from 'ember-metrics'\nimport type LongSessionKiller from '@blakeelearning/app-refresher/long-session-killer/service'\nimport type SessionTracker from '@blakeelearning/app-refresher/session-tracker/service'\nimport type Transition from '@ember/routing/-private/transition'\nimport type QuestService from 'fast-phonics-client/services/quest'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport type ApolloService from 'fast-phonics-client/services/apollo'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type TimeOnTaskService from 'fast-phonics-client/services/time-on-task'\nimport type UserService from 'fast-phonics-client/services/user'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\nimport type PosthogService from 'fast-phonics-client/services/posthog'\nimport type RouteInfo from '@ember/routing/route-info'\nimport type StudentMetricsService from 'fast-phonics-client/services/student-metrics'\nimport type { RouteInfoWithAttributes } from '@ember/routing/route-info'\n\ninterface InitialAppQueryResponse {\n  data: {\n    student: {\n      __typename: string\n    }\n  }\n}\n\nconst initialAppQueryDocument = graphql(/* GraphQL */ `\n  query GetInitialAppData {\n    student {\n      ... on Student {\n        ...StudentUserDataFragment\n        ...StudentProgressDataFragment\n        ...StudentQuestDataFragment\n        ...StudentAssignmentDataFragment\n        __typename\n      }\n    }\n  }\n`)\n\n/**\n * The application router makes sure the session is loaded before sub-routes\n * are able to do things, so they and their controllers can all assume that a\n * session with a student model property will always exist.\n */\n\nexport default class ApplicationRoute extends Route {\n  @service declare activity: ActivityService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare features: FeatureService\n\n  @service declare longSessionKiller: LongSessionKiller\n\n  @service declare metrics: MetricsService\n\n  @service declare refresher: RefresherService\n\n  @service declare releaseChecker: ReleaseChecker\n\n  @service declare router: RouterService\n\n  @service declare sessionTracker: SessionTracker\n\n  @service declare quest: QuestService\n\n  @service declare progress: ProgressService\n\n  @service declare timeOnTask: TimeOnTaskService\n\n  @service declare user: UserService\n\n  @service declare assignments: AssignmentsService\n\n  @service\n  declare apollo: ApolloService\n\n  @service declare posthog: PosthogService\n\n  @service\n  declare studentMetrics: StudentMetricsService\n\n  removeVisibilityTracking = () => {}\n\n  constructor(...args: ConstructorParameters<typeof Route>) {\n    super(...args)\n\n    // This will track the initial page load, after which we depend on\n    // `trackPage` events being emitted.\n    this.router.one('routeDidChange', () => {\n      this._trackPage()\n    })\n    this.on('trackPage', () => {\n      this._trackPage()\n    })\n\n    this.removeVisibilityTracking =\n      this.studentMetrics.setupVisibilityTracking()\n  }\n\n  override willDestroy() {\n    this.removeVisibilityTracking()\n  }\n\n  override async beforeModel(transition: Transition): Promise<void> {\n    if (transition.to?.name === 'login' || transition.to?.name === 'logout') {\n      return\n    }\n\n    try {\n      await this._setupSession()\n    } catch (error) {\n      if (error instanceof NotAuthenticatedError) {\n        // The student is apparently not logged in - this is a common\n        // occurrence, most easily fixed by redirecting to the\n        // fast_phonics_api /login URL.\n        void this.router.transitionTo('login')\n      } else {\n        throw error\n      }\n    }\n  }\n\n  override afterModel(_resolvedModel: unknown, transition: Transition) {\n    this.assignments.checkTransition(transition)\n  }\n\n  /**\n   * Route error handlers are called synchronously so cannot return a promise\n   * which also means we can't use async/await\n   */\n  @action\n  override error(error: Error, transition?: Transition): true {\n    const routeName = transition?.to?.name ?? 'unknown route'\n    this.errorHandler.logErrorIfActionable(\n      `Failed to transition to ${routeName}`,\n      error,\n    )\n    return true\n  }\n\n  @action\n  override willTransition(transition: Transition): void {\n    this._scheduleAppRefreshOnSuccessfulTransition(transition)\n    this.assignments.checkTransition(transition)\n  }\n\n  _trackPage() {\n    this.metrics.trackPage({\n      page: this.router.currentURL,\n      title: this.router.currentRouteName,\n    })\n    this.trackTimeOnTask(this.router.currentRouteName)\n\n    if (this.features.isEnabled('fp_posthog-capture-pageviews')) {\n      this.posthog.capture('$pageview')\n    }\n\n    this._capturePageView()\n  }\n\n  _capturePageView(\n    // Ember types `currentRoute` as always present, but it is null until the\n    // first transition has settled.\n    routeInfo: RouteInfo | null = this.router.currentRoute,\n  ) {\n    if (!this.features.isEnabled('fp_kafka-page-views')) return\n\n    const { currentURL } = this.router\n    if (!currentURL) return\n\n    let contentType = 'html'\n\n    routeInfo?.find((info) => {\n      const resolvedModel = (info as RouteInfoWithAttributes).attributes\n\n      if (!resolvedModel || typeof resolvedModel !== 'object') return false\n\n      if ('manifests' in resolvedModel || 'jesterManifests' in resolvedModel) {\n        contentType = 'jester'\n        return true\n      }\n\n      return false\n    })\n\n    this.studentMetrics.capturePageView({\n      contentType,\n      path: currentURL.split('?')[0] ?? '',\n    })\n  }\n\n  private trackTimeOnTask(routeName?: string) {\n    void this.timeOnTask.trackRoute(routeName)\n  }\n\n  get timeOnTaskV2Enabled() {\n    return this.features.isEnabled('fp_time-on-task-v2')\n  }\n\n  async _setupSession(): Promise<void> {\n    await this.activity.load()\n\n    const response = (await this.apollo.query({\n      query: initialAppQueryDocument,\n    })) as InitialAppQueryResponse\n    const { student } = response.data\n\n    if (student.__typename == 'NotAuthenticatedError') {\n      throw new NotAuthenticatedError(\n        'GraphQL GetInitialAppData query returned NotAuthenticatedError',\n      )\n    } else if (student.__typename == 'Student') {\n      // Happy path\n    } else {\n      throw new Error(\n        `GraphQL GetInitialAppData returned unhandled type for student: ${student.__typename}`,\n      )\n    }\n\n    await this.user.setup()\n\n    await Promise.all([\n      this.progress.setup(),\n      this.quest.setup(),\n      this.assignments.setup(),\n    ])\n\n    if (this.timeOnTaskV2Enabled) {\n      this.timeOnTask.setup()\n    }\n    const studentId = (this.user.student as { id: string | number }).id\n\n    // Start all of the app refresher services\n    this.sessionTracker.start(studentId)\n    this.releaseChecker.start()\n    this.longSessionKiller.start()\n\n    this.posthog.setup()\n    this.studentMetrics.setup()\n  }\n\n  /**\n   * This is the fast-phonics-client logic for scheduling and executing app refreshes.\n   * It is based on a transition rather than a route, because the determination\n   * needs to consider both where the transition is coming from and where it is\n   * going to.  At present there are two situations where we consider a refresh\n   * unsafe:\n   *\n   * 1. when a transition occurs without changing the interactive (e.g.\n   *    transitioning to the stones view of the peaks interactive); and\n   * 2. when the destination route is an error page, because the error\n   *    (whatever it is) might prevent the refresh from working correctly.\n   */\n  _scheduleAppRefreshOnSuccessfulTransition(transition: Transition): void {\n    const fromRouteName = transition.from?.name\n\n    void transition.followRedirects().then((toRoute) => {\n      if (toRoute instanceof Route) {\n        const { routeName: toRouteName } = toRoute\n        // Prevent refresh if these conditions apply\n        if (\n          isInsideInteractive(toRouteName, fromRouteName) ||\n          isErrorRoute(toRouteName)\n        )\n          return\n\n        const willRefresh =\n          this.refresher.refreshIfSafeAndScheduled(toRouteName)\n        if (!willRefresh) this.trigger('trackPage')\n      }\n    })\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\n\nimport type RouterService from '@ember/routing/router-service'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\n\nexport default class AssignmentRoute extends Route {\n  @service declare assignments: AssignmentsService\n\n  @service declare router: RouterService\n\n  @service declare loadingUi: LoadingUiService\n\n  override beforeModel() {\n    if (!this.assignments.currentAssignment) void this.router.replaceWith('/')\n  }\n\n  override model() {\n    const { currentAssignment } = this.assignments\n    if (!currentAssignment) {\n      // This should never happen as we already checked in beforeModel\n      throw new Error('Assignment Service has not been setup')\n    }\n\n    this.loadingUi.finish()\n\n    return {\n      assignment: currentAssignment,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type { BookContentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport { bookContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport type Transition from '@ember/routing/-private/transition'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 'fast-phonics-client/services/user'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport { startCase } from 'lodash'\n\ntype ModelForRoute = Model | undefined\ninterface Model {\n  contentSpec: BookContentSpec\n  manifests: string[][]\n  variables: Record<string, unknown>\n}\n\ninterface ParamsForRoute {\n  book_id: string\n}\n\nexport default class BookRoute extends Route<ModelForRoute, ParamsForRoute> {\n  @service declare user: UserService\n\n  @service declare activity: ActivityService\n\n  @service declare router: RouterService\n\n  get student() {\n    return this.user.student\n  }\n\n  override model({ book_id: bookId }: ParamsForRoute, transition: Transition) {\n    const studentHasReadBook = this.student.books.includes(bookId)\n\n    if (studentHasReadBook) {\n      const bookActivity = this.activity.findActivityById(bookId)\n      // Something has gone wrong - the student has read this book, but we can't\n      // find it in the activities index.\n      if (!bookActivity.ok) throw new Error(`No such book ID: ${bookId}`)\n\n      const { manifestBundle: manifestBundleName, manifestKey } =\n        bookActivity.activity\n\n      const manifests = [[manifestKey, manifestBundleName]]\n      const variables = { displayQuiz: false }\n      const book = startCase(bookId)\n\n      return { manifests, variables, contentSpec, book }\n    }\n\n    // This student hasn't yet read the book they are trying to access - abort the transition or redirect.\n    if (transition.from) {\n      void transition.abort()\n    } else {\n      void this.router.replaceWith('my-progress.books')\n    }\n\n    return undefined\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type { EndOfProgramContentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport { endOfProgramContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport type RouterService from '@ember/routing/router-service'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type UserService from 'fast-phonics-client/services/user'\n\ninterface ModelForRoute {\n  contentSpec: EndOfProgramContentSpec\n  manifests: string[][]\n  variables: Record<string, unknown>\n}\n\nexport default class EndOfProgramRoute extends Route<ModelForRoute> {\n  @service declare activity: ActivityService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare progress: ProgressService\n\n  get studentName(): string {\n    return this.user.student.abbreviatedName\n  }\n\n  override beforeModel(): void {\n    if (!this.progress.hasFinishedProgram || this.progress.showPlacementTest) {\n      void this.router.replaceWith('/')\n    }\n  }\n\n  override model() {\n    const manifests = [['index', 'activities/finished-fast-phonics']]\n    const variables = {\n      studentName: this.studentName,\n      finalPeakNbr: this.activity.lastPeak,\n    }\n    return { manifests, variables, contentSpec }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\n\nexport default class IndexRoute extends Route {\n  @service declare progress: ProgressService\n\n  @service declare assignments: AssignmentsService\n\n  @service declare router: RouterService\n\n  override redirect(): void {\n    if (this.assignments.currentAssignment) {\n      void this.router.replaceWith('assignment')\n    } else if (!this.progress.hasViewedIntroVideo) {\n      void this.router.replaceWith('intro-video')\n    } else if (this.progress.showPlacementTest) {\n      void this.router.replaceWith('placement-test')\n    } else if (this.progress.hasFinishedProgram) {\n      void this.router.replaceWith('end-of-program')\n    } else {\n      void this.router.replaceWith('peaks')\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type { VideoContentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport { videoContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\n\ninterface ModelForRoute {\n  contentSpec: VideoContentSpec\n  manifests: string[][]\n}\n\nexport default class IntroVideoRoute extends Route<ModelForRoute> {\n  @service declare debugMode: DebugModeService\n\n  override model() {\n    const manifests = [['index', 'activities/intro-video']]\n    return { manifests, contentSpec }\n  }\n}\n","import Route from '@ember/routing/route'\nimport { service } from '@ember/service'\nimport config from 'fast-phonics-client/config/environment'\nimport type SessionService from 'fast-phonics-client/services/session'\n\nconst {\n  APP: { loginWarning },\n} = config\n\ninterface ModelForRoute {\n  warning: string | null\n}\n\nexport default class LoginRoute extends Route<ModelForRoute> {\n  @service\n  declare session: SessionService\n\n  /**\n   * Implementation of the model hook.  The `redirectUrl` is used by `RedirectRoute`.\n   */\n  override model() {\n    return {\n      warning: loginWarning,\n    }\n  }\n\n  /**\n   * Implementation of the route redirect hook.  This will be called by Ember after the model has been resolved.\n   */\n  override redirect(): void {\n    this.session.signIn()\n  }\n}\n","import Route from '@ember/routing/route'\nimport config from 'fast-phonics-client/config/environment'\nimport { inject as service } from '@ember/service'\nimport type SessionService from 'fast-phonics-client/services/session'\n\nconst {\n  APP: { loginWarning },\n} = config\n\ninterface ModelForRoute {\n  warning: string | null\n}\n\nexport default class LogoutRoute extends Route<ModelForRoute> {\n  @service\n  declare session: SessionService\n\n  /**\n   * Implementation of the model hook.  The `redirectUrl` is used by\n   * `RedirectRoute`.\n   */\n  override model() {\n    return {\n      warning: loginWarning,\n    }\n  }\n\n  /**\n   * Implementation of the route redirect hook.  This will be called by Ember\n   * after the model has been resolved.\n   */\n  override redirect(): void {\n    this.session.signOut()\n  }\n}\n","import Route from '@ember/routing/route'\nimport { inject as service } from '@ember/service'\nimport type { MyProgressContentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport { myProgressContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type RouterService from '@ember/routing/router-service'\nimport type Transition from '@ember/routing/-private/transition'\nimport type PeakCertificateService from 'fast-phonics-client/services/peak-certificate'\nimport type UserService from 'fast-phonics-client/services/user'\n\ninterface ModelForRoute {\n  manifests: string[][]\n  variables: Record<string, unknown>\n  contentSpec: MyProgressContentSpec\n}\n\ninterface JesterPeakQuizResult {\n  __typename: 'PeakQuizSummary'\n  best: number\n  first: number\n  id: string\n  certificate?: {\n    __typename: 'Certificate'\n    colour: string\n    created: string\n    url: string\n  } | null\n}\n\nexport default class MyProgressRoute extends Route<ModelForRoute> {\n  @service declare progress: ProgressService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare peakCertificate: PeakCertificateService\n\n  get student() {\n    return this.user.student\n  }\n\n  get studentFirstName(): string {\n    return this.student.firstName\n  }\n\n  get userRewards() {\n    return this.student.rewardTotals\n  }\n\n  override beforeModel(): void {\n    if (this.progress.showPlacementTest) {\n      void this.router.transitionTo('placement-test')\n    }\n  }\n\n  override model(_params: unknown, transition: Transition) {\n    const {\n      firstName: studentFirstName,\n      averageBestPeakQuizResult,\n      peakQuizSummaries: peakQuizResults,\n      sounds,\n      books,\n      words,\n    } = this.student\n\n    const manifests = [['index', 'activities/progress-page']]\n    const variables = {\n      studentFirstName,\n      results: {\n        averageBestPeakQuizResult,\n        peakQuizResults: peakQuizResults.reduce<\n          Record<number, JesterPeakQuizResult>\n        >((acc, result) => {\n          acc[parseInt(result.id, 10)] = result\n          return acc\n        }, {}),\n        sounds: sounds.reduce<Record<number, string[]>>((acc, sound) => {\n          acc[sound.peak] = sound.rewards\n          return acc\n        }, {}),\n        books,\n        words: words.reduce<Record<number, string[]>>((acc, word) => {\n          acc[word.peak] = word.rewards\n          return acc\n        }, {}),\n      },\n      userRewards: this.userRewards,\n      requestedTab: this._initialTab(transition),\n      peaksWithoutSounds: [13, 14, 18, 19, 20],\n    }\n\n    return { manifests, variables, contentSpec }\n  }\n\n  _initialTab(transition: Transition): string {\n    switch (transition.to?.localName) {\n      case 'sounds':\n        return 'sounds'\n      case 'words':\n        return 'words'\n      case 'books':\n        return 'books'\n      case 'certificates':\n        return 'certificates'\n      default:\n        return 'progress'\n    }\n  }\n}\n","import Route from '@ember/routing/route'\nimport { inject as service } from '@ember/service'\nimport type { PeaksContentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport { peaksContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport type Activity from 'fast-phonics-client/services/activity'\nimport type RouterService from '@ember/routing/router-service'\nimport type Transition from '@ember/routing/-private/transition'\nimport type RouteInfo from '@ember/routing/-private/route-info'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type UserService from 'fast-phonics-client/services/user'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\n\nexport interface ModelForRoute {\n  manifests: string[][]\n  variables: Record<string, unknown>\n  contentSpec: PeaksContentSpec\n  assignmentMode: boolean\n}\n\nenum PeakView {\n  'stones' = 'stones',\n  'peak' = 'peak',\n}\n\nexport default class PeaksRoute extends Route<ModelForRoute> {\n  @service declare activity: Activity\n\n  @service declare user: UserService\n\n  @service declare progress: ProgressService\n\n  @service declare router: RouterService\n\n  @service declare assignments: AssignmentsService\n\n  get userRewards() {\n    return this.user.student.rewardTotals\n  }\n\n  override beforeModel(transition: Transition): void {\n    if (this.assignments.currentAssignment) return\n\n    if (this.progress.showPlacementTest) {\n      void this.router.transitionTo('placement-test')\n      return\n    }\n\n    const requestedPeakId = Number(\n      this._getRequestedPeakIdFromRoute(transition.to),\n    )\n\n    // If no peakId is passed, or if the provided peakId is inaccessible,\n    // redirect the student to their current peak.\n    if (!requestedPeakId || !this.progress.canPlayPeak(requestedPeakId)) {\n      void this.router.replaceWith(\n        'peaks.peak',\n        this.progress.lastAccessiblePeak,\n      )\n      return\n    }\n\n    // Addresses a case where a user clicks browser back button before they click 'Next' in End of Peak Quiz\n    // If this happens the chest unlock doesn't occur, which prevents progression from incrementing and\n    // prevents the user from accessing stones\n    if (\n      this.progress.lessonsProgressData.positionInPeak === 1 &&\n      !this.progress.hasFinishedProgram\n    ) {\n      void this.router.replaceWith(\n        'peaks.peak',\n        this.progress.lessonsProgressData.peak,\n      )\n    }\n  }\n\n  override model(_params: unknown, transition: Transition): ModelForRoute {\n    const { selectedYeti } = this.user.student\n    const { lastPeak } = this.activity\n    const assignmentMode = Boolean(this.assignments.currentAssignment)\n    const userProgress = assignmentMode\n      ? this.assignments.progress\n      : this.progress.lessonsProgressData\n\n    const { to: requestedRouteInfo } = transition\n    const requestedPeakId =\n      this._getRequestedPeakIdFromRoute(requestedRouteInfo)\n    const requestedPeakView =\n      this._getRequestedPeakViewFromRoute(requestedRouteInfo)\n    const showCongratulations = requestedRouteInfo?.queryParams['showCongratulations'] === 'true'\n\n    const manifests = [['index', 'activities/peaks']]\n    const variables = {\n      userRewards: this.userRewards,\n      requestedPeakView,\n      requestedPeakId,\n      userProgress,\n      lastPeak,\n      selectedYeti,\n      ASSIGNMENT_MODE: assignmentMode,\n      showCongratulations,\n    }\n\n    return { manifests, variables, contentSpec, assignmentMode }\n  }\n\n  /**\n   * Traverses the route metadata in order to pull the requested peak_id from the params.\n   *\n   * Allows us to render an interactive in a parent route, while accessing\n   * route params from a child route.\n   * This is required to prevent the interactive from re-rendering when child route params change\n   */\n  _getRequestedPeakIdFromRoute(\n    routeInfo: RouteInfo | null,\n  ): string | undefined {\n    const peakRouteInfo = routeInfo?.find(\n      (route) => route.name === 'peaks.peak',\n    )\n    return peakRouteInfo?.params['peak_id']\n  }\n\n  /**\n   * Traverses the route metadata to find which view the user should receive.\n   *\n   * Allows us to render an interactive in a parent route, while accessing\n   * route params from a child route.\n   * This is required to prevent the interactive from re-rendering when child route params change\n   */\n  _getRequestedPeakViewFromRoute(routeInfo: RouteInfo | null): PeakView {\n    const isRequestingStonesView = routeInfo?.find(\n      (route) => route.name === 'peaks.peak.stones',\n    )\n    return isRequestingStonesView ? PeakView.stones : PeakView.peak\n  }\n}\n","import Route from '@ember/routing/route'\n\nexport default class PeakRoute extends Route {\n  override queryParams = {\n    showCongratulations: {}\n  }\n\n  override model(): void {\n    /**\n     * This empty model hook prevents Ember's default behaviour of attempting\n     * to load a Peak model from the ember-data store that matches the current\n     * peak ID in the URL.\n     */\n  }\n}\n","import Route from '@ember/routing/route'\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport { placementTestContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport type DebugModeService from 'fast-phonics-client/services/debug-mode'\nimport type DeviceDetection from '@blakeelearning/device/device/detection/service'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type UserService from 'fast-phonics-client/services/user'\n\ninterface ModelForRoute {\n  contentSpec: unknown\n  accentOverride?: string\n  manifests: string[][]\n  variables: Record<string, unknown>\n}\n\n// eslint-disable-next-line ember/no-test-import-export\nexport default class PlacementTestRoute extends Route<ModelForRoute> {\n  @service declare debugMode: DebugModeService\n\n  @service declare progress: ProgressService\n\n  @service declare user: UserService\n\n  @service('device/detection') declare deviceDetection: DeviceDetection\n\n  @service declare router: RouterService\n\n  get studentAccent(): string {\n    return this.user.accent\n  }\n\n  get studentName(): string {\n    return this.user.student.abbreviatedName\n  }\n\n  override beforeModel(): void {\n    if (!this.progress.showPlacementTest) {\n      void this.router.transitionTo('/')\n    }\n  }\n\n  override model() {\n    const accentOverride = this.studentAccent\n\n    const manifests = [['index', 'activities/new-placement-test']]\n\n    const variables = {\n      studentName: this.studentName,\n    }\n    return { manifests, variables, accentOverride, contentSpec }\n  }\n\n  @action\n  override willTransition(): true {\n    return true\n  }\n}\n","import Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport { inject as service } from '@ember/service'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type QuestService from 'fast-phonics-client/services/quest'\n\nexport default class RecommendedRoute extends Route {\n  @service declare router: RouterService\n\n  @service declare progress: ProgressService\n\n  @service declare quest: QuestService\n\n  override beforeModel() {\n    // It does some unexpected things like skipping the intro video, and \n    // it also doesn’t work great with certain assumptions made about browser history in the app.\n    // We can put the redirection back once we resolve these issues.\n    // if (this.progress.showPlacementTest) {\n    //   this.router.replaceWith('placement-test')\n    //   return\n    // }\n    // if (this.quest.recommendedTargetRoute) {\n    //   // @ts-expect-error router params type no bueno\n    //   this.router.replaceWith(...this.quest.recommendedTargetRoute)\n    //   return\n    // }\n    this.router.replaceWith('/')\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport type { VideoContentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport { videoContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\n\nimport type Transition from '@ember/routing/-private/transition'\nimport type UserService from 'fast-phonics-client/services/user'\nimport { startCase } from 'lodash'\n\ntype ModelForRoute = Model | undefined\n\ninterface Model {\n  manifests: string[][]\n  contentSpec: VideoContentSpec\n}\n\ninterface ParamsForRoute {\n  sound: string\n}\n\nexport default class SoundRoute extends Route<ModelForRoute, ParamsForRoute> {\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  get student() {\n    return this.user.student\n  }\n\n  override model({ sound }: ParamsForRoute, transition: Transition) {\n    const studentHasLearntSound = this.student.sounds\n      .flatMap((s) => s.rewards)\n      .includes(sound)\n\n    if (studentHasLearntSound) {\n      const manifests = [[sound, 'sounds']]\n      return { manifests, contentSpec, sound: startCase(sound) }\n    }\n\n    // This student hasn't yet learnt this sound - abort the transition or redirect.\n    if (transition.from) {\n      void transition.abort()\n    } else {\n      void this.router.replaceWith('my-progress.sounds')\n    }\n\n    return undefined\n  }\n}\n","import Route from '@ember/routing/route'\n\ninterface ParamsForRoute {\n  peak_id: string\n  stone_id: string\n}\n\nexport default class StoneRoute extends Route<void, ParamsForRoute> {\n  override model(_params: ParamsForRoute): void {\n    // This empty model hook prevents Ember's default behaviour of attempting\n    // to load a Peak model from the ember-data store that matches the current\n    // peak ID in the URL.\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport { assert } from '@ember/debug'\nimport { contentSpecsByActivityType } from '@blakeelearning/content-specs-fast-phonics'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport type { Log } from '@blakeelearning/log'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type RouterService from '@ember/routing/router-service'\nimport type Transition from '@ember/routing/-private/transition'\nimport type { ParamsFor } from 'fast-phonics-client/utils/route-model'\nimport type StoneRoute from 'fast-phonics-client/routes/stone'\nimport type UserService from 'fast-phonics-client/services/user'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\n\nexport type ParamsForStoneRoute = ParamsFor<StoneRoute>\n\ntype ActivityContentSpec =\n  | (typeof contentSpecsByActivityType)['book']\n  | (typeof contentSpecsByActivityType)['interactive']\n  | (typeof contentSpecsByActivityType)['quiz']\n  | (typeof contentSpecsByActivityType)['video']\ninterface ModelForRoute {\n  manifests: string[][]\n  variables: Record<string, unknown>\n  peakId: number\n  stoneId: string\n  activityId: string\n  activityType: keyof typeof contentSpecsByActivityType\n  contentSpec: ActivityContentSpec\n  completeVideoCalled?: boolean\n  completeBookQuizCalled?: boolean\n  assignmentMode: boolean\n}\n\nexport default class StoneIndexRoute extends Route<ModelForRoute> {\n  @service declare activity: ActivityService\n\n  @service declare log: Log\n\n  @service declare user: UserService\n\n  @service declare progress: ProgressService\n\n  @service declare router: RouterService\n\n  @service declare assignments: AssignmentsService\n\n  get lessonsProgressData() {\n    return this.progress.lessonsProgressData\n  }\n\n  get studentFirstName(): string {\n    return this.user.student.firstName\n  }\n\n  get userRewards() {\n    return this.user.student.rewardTotals\n  }\n\n  override beforeModel(transition: Transition): void {\n    if (this.assignments.currentAssignment) return\n    if (this.progress.showPlacementTest) {\n      void this.router.transitionTo('placement-test')\n      return\n    }\n\n    const parent = transition.to?.parent\n    assert('transition is not null', parent)\n    const { params } = parent\n\n    const { peak_id, stone_id: stoneId } = params\n    const peakId = Number(peak_id)\n\n    assert('stoneId is defined', stoneId !== undefined)\n    const canPlayStone = this.progress.canPlayStone(peakId, stoneId)\n\n    if (!canPlayStone) {\n      // Send them to the peaks view.\n      void this.router.replaceWith('peaks.peak', peakId)\n    }\n  }\n\n  override model(): ModelForRoute {\n    const { peak_id, stone_id: stoneId } = this.paramsFor(\n      'stone',\n    ) as ParamsForStoneRoute\n    const peakId = Number(peak_id)\n\n    const activityResult = this.activity.findActivityByStoneId(peakId, stoneId)\n    if (!activityResult.ok) throw new Error(activityResult.errorMessage)\n    const { id: activityId, activityType } = activityResult.activity\n    const {\n      studentFirstName,\n      userRewards,\n      lessonsProgressData: userProgress,\n    } = this\n\n    const assignmentMode = Boolean(this.assignments.currentAssignment)\n    const manifests = [[stoneId, `activities/peaks/${peakId.toFixed()}`]]\n    const variables = {\n      studentFirstName,\n      userRewards,\n      userProgress,\n      ASSIGNMENT_MODE: assignmentMode,\n    }\n\n    assert(\n      'activityType is set',\n      activityType === 'book' ||\n        activityType === 'video' ||\n        activityType === 'quiz' ||\n        activityType === 'interactive',\n    )\n    const contentSpec = contentSpecsByActivityType[activityType]\n\n    return {\n      manifests,\n      variables,\n      peakId,\n      stoneId,\n      activityId,\n      activityType,\n      contentSpec,\n      assignmentMode\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport { assert } from '@ember/debug'\nimport type { YetiShopContentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport { yetiShopContentSpec as contentSpec } from '@blakeelearning/content-specs-fast-phonics'\nimport type RouterService from '@ember/routing/router-service'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport type ProgressService from 'fast-phonics-client/services/progress'\nimport type UserService from 'fast-phonics-client/services/user'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport type ApolloService from 'fast-phonics-client/services/apollo'\n\nexport interface PurchasedYetis {\n  category: string\n  item: string\n}\n\ninterface Yeti {\n  id: string\n  price: number\n}\ninterface ModelForRoute {\n  manifests: string[][]\n  variables: Record<string, unknown>\n  contentSpec: YetiShopContentSpec\n  yetis: Yeti[]\n}\n\ngraphql(/* GraphQL */ `\n  fragment YetiDataFragment on Yeti {\n    id\n    price\n  }\n`)\n\nconst YetiQueryDocument = graphql(/* GraphQL */ `\n  query GetYetis {\n    yetis {\n      ...YetiDataFragment\n    }\n  }\n`)\n\nexport default class YetiShopRoute extends Route<ModelForRoute> {\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare activity: ActivityService\n\n  @service declare progress: ProgressService\n\n  @service declare apollo: ApolloService\n\n  get rewardTotals() {\n    return this.user.student.rewardTotals\n  }\n\n  get coins(): number {\n    assert('coins is set', this.rewardTotals.coins)\n    return this.rewardTotals.coins\n  }\n\n  get lessonsProgressData() {\n    return this.progress.lessonsProgressData\n  }\n\n  get hasFinishedProgram(): boolean {\n    return this.progress.hasFinishedProgram\n  }\n\n  get selectedYeti(): string {\n    return this.user.student.selectedYeti\n  }\n\n  get purchasedYetis(): PurchasedYetis[] {\n    return this.user.student.purchases.map(({ category, item }) => {\n      return { category, item }\n    })\n  }\n\n  override beforeModel(): void {\n    if (this.progress.showPlacementTest) {\n      void this.router.transitionTo('placement-test')\n    }\n  }\n\n  override async model(): Promise<ModelForRoute> {\n    const {\n      data: { yetis },\n    } = await this.apollo.query({\n      query: YetiQueryDocument,\n    })\n\n    const { purchasedYetis, coins, selectedYeti } = this\n\n    const yetiShopVariables = {\n      purchases: purchasedYetis,\n      coins,\n      selectedYeti,\n      yetis: yetis.map(({ id, price }) => ({ id, price })),\n    }\n\n    const manifests = [['index', 'activities/yeti-shop']]\n    const variables = yetiShopVariables\n    return { manifests, variables, contentSpec, yetis }\n  }\n}\n","import Service from '@ember/service'\nimport { assert } from '@ember/debug'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useQuery } from 'fast-phonics-client/resources/query'\n\ntype PositionResult =\n  | { ok: true; id: string }\n  | { ok: false; errorMessage: string }\ntype StoneResult =\n  | { ok: true; id: number }\n  | { ok: false; errorMessage: string }\ntype ActivityResult =\n  | { ok: true; activity: Activity }\n  | { ok: false; errorMessage: string }\n\nexport interface Activity {\n  activityType: string\n  id: string\n  manifestBundle: string\n  manifestKey: string\n  peak: number\n  positionInPeak: number\n}\n\ngraphql(/* GraphQL */ `\n  fragment ActivityData on Activity {\n    activityType\n    id\n    manifestBundle\n    manifestKey\n    peak\n    positionInPeak\n  }\n`)\n\nconst ActivitiesQueryDocument = graphql(/* GraphQL */ `\n  query GetActivities {\n    activities {\n      ...ActivityData\n    }\n  }\n`)\n\nexport default class ActivityService extends Service {\n  _activitiesQuery = useQuery(this, () => {\n    return {\n      query: ActivitiesQueryDocument,\n    }\n  })\n\n  get activities(): Activity[] {\n    if (!this._activitiesQuery.current.data) {\n      throw new Error('Activities Service has not been setup')\n    }\n    return this._activitiesQuery.current.data.activities.map(\n      ({\n        activityType,\n        id,\n        manifestBundle,\n        manifestKey,\n        peak,\n        positionInPeak,\n      }) => ({\n        activityType: activityType.toLowerCase(),\n        id,\n        manifestBundle,\n        manifestKey,\n        peak,\n        positionInPeak,\n      }),\n    )\n  }\n\n  get lastActivity() {\n    const lastActivity = this.activities.at(-1)\n    assert('lastActivity is undefined', typeof lastActivity !== 'undefined')\n    return lastActivity\n  }\n\n  get lastPeak(): number {\n    assert(\n      'lastActivity.peak is of type number',\n      typeof this.lastActivity.peak === 'number',\n    )\n    return this.lastActivity.peak\n  }\n\n  /**\n   * Converts positionInPeak to stoneId so the content-interactive knows which activity to load\n   */\n  findStoneIdFor(peakId: number, positionInPeak: number): PositionResult {\n    const activity = this.activities.find(\n      (a) => a.peak === peakId && a.positionInPeak === positionInPeak,\n    )\n\n    if (activity) {\n      assert(\n        'activity has valid manifestKey',\n        typeof activity.manifestKey === 'string',\n      )\n      return {\n        ok: true,\n        id: activity.manifestKey,\n      }\n    }\n\n    return {\n      ok: false,\n      errorMessage: `Check that Peak ID (${peakId.toFixed()}) & Position in Peak (${positionInPeak.toFixed()}) are returning a valid Activity (${String(\n        activity,\n      )})`,\n    }\n  }\n\n  /**\n   * Finds positionInPeak based off the stoneId\n   */\n  findPositionInPeakFor(peakId: number, stoneId: string): StoneResult {\n    const activity = this.activities.find(\n      (a) => a.peak === peakId && a.manifestKey === stoneId,\n    )\n\n    if (activity) {\n      assert(\n        'activity has valid positionInPeak',\n        typeof activity.positionInPeak === 'number',\n      )\n      return {\n        ok: true,\n        id: activity.positionInPeak,\n      }\n    }\n\n    return {\n      ok: false,\n      errorMessage: `Check that Peak ID (${peakId.toFixed()}) & Stone ID (${stoneId}) are returning a valid Activity (${String(\n        activity,\n      )})`,\n    }\n  }\n\n  /**\n   * Finds the activity ID based off positionInPeak\n   */\n  findActivityIdByPosition(\n    peakId: number,\n    positionInPeak: number,\n  ): PositionResult {\n    const activity = this.activities.find(\n      (a) => a.peak === peakId && a.positionInPeak === positionInPeak,\n    )\n\n    if (activity) {\n      return {\n        ok: true,\n        id: activity.id,\n      }\n    }\n\n    return {\n      ok: false,\n      errorMessage: `Check that Peak ID (${peakId.toFixed()}) & Position in Peak (${positionInPeak.toFixed()}) are returning a valid Activity (${String(\n        activity,\n      )})`,\n    }\n  }\n\n  /**\n   * Finds the activity based off Stone Id\n   */\n  findActivityByStoneId(peakId: number, stoneId: string): ActivityResult {\n    const activity = this.activities.find(\n      (a) => a.peak === peakId && a.manifestKey === stoneId,\n    )\n\n    if (activity) {\n      return {\n        ok: true,\n        activity,\n      }\n    }\n\n    return {\n      ok: false,\n      errorMessage: `Check that Peak ID (${peakId.toFixed()}) & Stone ID (${stoneId}) are returning a valid Activity (${String(\n        activity,\n      )})`,\n    }\n  }\n\n  findActivityById(id: string): ActivityResult {\n    const activity = this.activities.find((a) => a.id === id)\n    if (activity) {\n      return {\n        ok: true,\n        activity,\n      }\n    }\n    return {\n      ok: false,\n      errorMessage: `Check that Activity ID (${id}) is returning a valid Activity (${String(\n        activity,\n      )})`,\n    }\n  }\n\n  async load() {\n    await this._activitiesQuery.current.result()\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    activity: ActivityService\n  }\n}\n","import type {\n  ApolloQueryResult,\n  FetchResult,\n  MutationOptions,\n  NormalizedCacheObject,\n  Observable,\n  ObservableQuery,\n  OperationVariables,\n  QueryOptions,\n  WatchFragmentOptions,\n  WatchFragmentResult,\n  WatchQueryOptions,\n} from '@apollo/client/core'\nimport {\n  createHttpLink,\n  from,\n  InMemoryCache,\n  ApolloClient,\n} from '@apollo/client/core'\nimport introspectionResult from 'fast-phonics-client/graphql/introspection-result'\nimport config from 'fast-phonics-client/config/environment'\nimport type { TypedTypePolicies } from 'fast-phonics-client/graphql/apollo-helpers'\nimport { waitFor } from '@ember/test-waiters'\nimport { onError } from '@apollo/client/link/error'\nimport { loadErrorMessages, loadDevMessages } from '@apollo/client/dev'\nimport { runInDebug } from '@ember/debug'\nimport Service, { service } from '@ember/service'\nimport type { Log } from '@blakeelearning/log'\nimport { isTesting, macroCondition } from '@embroider/macros'\nimport { RetryLink } from '@apollo/client/link/retry'\nimport { isApolloNetworkErrorRetryable } from 'fast-phonics-client/utils/errors'\n\nrunInDebug(() => {\n  loadDevMessages()\n  loadErrorMessages()\n})\n\nconst {\n  APP: { apiEndpoint, apollo },\n} = config\n\nlet apolloURL = '/api/graphql'\n\nif (apiEndpoint) {\n  apolloURL = new URL(apolloURL, apiEndpoint).href\n}\n\nconst typePolicies: TypedTypePolicies = {}\n\nexport default class ApolloService extends Service {\n  @service\n  declare log: Log\n\n  #client: ApolloClient<NormalizedCacheObject>\n\n  constructor(properties?: object) {\n    super(properties)\n\n    const cache = new InMemoryCache({\n      typePolicies,\n      // /**\n      //  * Declare Possible Types\n      //  *\n      //  * This is required for when we use fragments on union types or interfaces\n      //  * Otherwise Apollo doesn't know what to do, and strips all the fields from the response\n      //  * @see {@link https://github.com/apollographql/apollo-client/issues/7050}\n      //  * @see {@link https://www.apollographql.com/docs/react/data/fragments/#using-fragments-with-unions-and-interfaces}\n      //  */\n      possibleTypes: introspectionResult.possibleTypes,\n    })\n\n    const httpLink = createHttpLink({\n      uri: apolloURL,\n      credentials: 'include',\n    })\n\n    const errorLink = onError(({ graphQLErrors, networkError }) => {\n      if (graphQLErrors) {\n        graphQLErrors.forEach(({ message, ...error }) => {\n          this.log.error(message, error)\n        })\n      }\n\n      if (networkError) {\n        this.log.error(networkError)\n      }\n    })\n\n    // This prevents retries from slowing down tests\n    let delayOpts = undefined\n    if (macroCondition(isTesting())) {\n      delayOpts = { delay: () => 0 }\n    }\n    const retryLink = new RetryLink({\n      ...delayOpts,\n      attempts: {\n        max: 5,\n        retryIf: (error, { variables }) => {\n          return (\n            isApolloNetworkErrorRetryable(error) &&\n            !!(variables as { input?: { attemptUuid?: string } }).input\n              ?.attemptUuid\n          )\n        },\n      },\n    })\n\n    this.#client = new ApolloClient({\n      cache,\n      link: from([retryLink, errorLink, httpLink]),\n      devtools: {\n        enabled: apollo.connectToDevTools ?? false,\n      },\n    })\n  }\n\n  get cache() {\n    return this.#client.cache\n  }\n\n  override willDestroy() {\n    void this.#client.clearStore()\n  }\n\n  @waitFor\n  async mutate<\n    T = unknown,\n    TVariables extends OperationVariables = OperationVariables,\n  >(options: MutationOptions<T, TVariables>): Promise<FetchResult<T>> {\n    return this.#client.mutate(options)\n  }\n\n  @waitFor\n  async query<\n    T = unknown,\n    TVariables extends OperationVariables = OperationVariables,\n  >(options: QueryOptions<TVariables, T>): Promise<ApolloQueryResult<T>> {\n    return this.#client.query(options)\n  }\n\n  watchQuery<\n    T = unknown,\n    TVariables extends OperationVariables = OperationVariables,\n  >(options: WatchQueryOptions<TVariables, T>): ObservableQuery<T, TVariables> {\n    return this.#client.watchQuery(options)\n  }\n\n  watchFragment<TFragmentData = unknown, TVariables = OperationVariables>(\n    options: WatchFragmentOptions<TFragmentData, TVariables>,\n  ): Observable<WatchFragmentResult<TFragmentData>> {\n    return this.#client.watchFragment(options)\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    apollo: ApolloService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useQuery } from 'fast-phonics-client/resources/query'\nimport type UserService from './user'\nimport type ErrorHandlerService from './error-handler'\nimport { NotAuthenticatedError } from './error-handler'\nimport type Transition from '@ember/routing/transition'\nimport type RouterService from '@ember/routing/router-service'\n\ngraphql(/* GraphQL */ `\n  fragment StudentAssignmentDataFragment on Student {\n    assignment {\n      ... on AssignmentPeak {\n        positionInPeak\n        endAt\n        id\n        peak\n        thumbnailUrl\n        title\n      }\n      __typename\n    }\n  }\n`)\n\nconst StudentAssignmentQueryDocument = graphql(/* GraphQL */ `\n  query GetStudentAssignment {\n    student {\n      ... on Student {\n        id\n        ...StudentAssignmentDataFragment\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\nexport default class AssignmentsService extends Service {\n  @service declare activity: ActivityService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  _studentAssignmentQuery = useQuery(this, () => {\n    return {\n      query: StudentAssignmentQueryDocument,\n    }\n  })\n\n  get currentAssignment() {\n    if (!this._studentAssignmentQuery.current.data) {\n      throw new Error('Assignment Service has not been setup')\n    }\n\n    const student = this._studentAssignmentQuery.current.data.student\n\n    if (student.__typename === 'NotAuthenticatedError') {\n      this.errorHandler.handleError(\n        'AssignmentsService student not authenticated',\n        new NotAuthenticatedError(\n          'GraphQL GetStudentAssignment query returned NotAuthenticatedError',\n        ),\n      )\n      return\n    }\n\n    return student.assignment\n  }\n\n  get progress() {\n    if (!this.currentAssignment) throw new Error('No current assignment found')\n    return {\n      peak: this.currentAssignment.peak,\n      positionInPeak: this.currentAssignment.positionInPeak,\n      showPlacementTest: false,\n    }\n  }\n\n  async setup() {\n    await this._studentAssignmentQuery.current.result()\n  }\n\n  async fetch() {\n    await this._studentAssignmentQuery.current.refetch()\n  }\n\n  startAssignment() {\n    if (!this.currentAssignment) {\n      throw new Error('No current assignment found')\n    }\n    const peak = this.currentAssignment.peak\n    this.router.transitionTo('peaks.peak', peak)\n  }\n\n  checkTransition(transition: Transition) {\n    if (transition.targetName === 'login') return\n    if (transition.targetName === 'logout') return\n\n    if (!this.currentAssignment) return\n\n    if (transition.targetName?.startsWith('peaks.peak.')) {\n      const targetPeakId = Number(transition.to?.parent?.params['peak_id'])\n      if (this.currentAssignment.peak !== targetPeakId) {\n        void this.router.replaceWith('assignment')\n      }\n      return\n    }\n\n    if (transition.targetName === 'stone.index') {\n      const parentPeakId = Number(transition.to?.parent?.params['peak_id'])\n      const parentStoneId = transition.to?.parent?.params['stone_id']\n\n      const assignmentStoneId = this.activity.findStoneIdFor(\n        this.currentAssignment.peak,\n        this.currentAssignment.positionInPeak,\n      )\n\n      if (!assignmentStoneId.ok) throw new Error(assignmentStoneId.errorMessage)\n\n      if (\n        this.currentAssignment.peak !== parentPeakId ||\n        assignmentStoneId.id !== parentStoneId\n      ) {\n        void this.router.replaceWith('assignment')\n      }\n      return\n    }\n    void this.router.replaceWith('assignment')\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    assignments: AssignmentsService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport { tracked } from '@glimmer/tracking'\nimport type { FeatureService } from '@blakeelearning/features'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useMutation } from 'fast-phonics-client/resources/mutation'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from './user'\n\nexport const resetPeakProgressMutationDocument = graphql(/* GraphQL */ `\n  mutation ResetPeakProgress($input: StudentProgressPeakResetInput!) {\n    studentProgressPeakReset(input: $input) {\n      ... on StudentProgressPeakResetOutput {\n        student {\n          ...StudentProgressDataFragment\n        }\n      }\n      __typename\n    }\n  }\n`)\n\nexport const resetPlacementTestProgressMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation ResetPlacementTestProgress {\n      studentProgressPlacementTestReset {\n        ... on StudentProgressPlacementTestResetOutput {\n          student {\n            ...StudentProgressDataFragment\n          }\n        }\n        __typename\n      }\n    }\n  `,\n)\n\nexport default class DebugModeService extends Service {\n  @service declare features: FeatureService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @tracked enabled = false\n\n  resetPeakProgressMutation = useMutation(\n    this,\n    resetPeakProgressMutationDocument,\n  )\n\n  resetPlacementTestProgressMutation = useMutation(\n    this,\n    resetPlacementTestProgressMutationDocument,\n  )\n\n  get debugAllowed(): boolean {\n    return this.features.isEnabled('debug-allowed')\n  }\n\n  enable(): void {\n    if (this.debugAllowed) {\n      this.enabled = true\n    }\n  }\n\n  disable(): void {\n    if (this.debugAllowed) {\n      this.enabled = false\n    }\n  }\n\n  async resetPeakProgress(peak: number, positionInPeak: number) {\n    if (this.enabled) {\n      await this.resetPeakProgressMutation.current.mutate({\n        variables: {\n          input: {\n            peak,\n            positionInPeak,\n          },\n        },\n      })\n      void this.router.replaceWith('/')\n    }\n  }\n\n  async resetPlacementTestProgress() {\n    if (this.enabled) {\n      await this.resetPlacementTestProgressMutation.current.mutate({})\n      void this.router.replaceWith('/')\n    }\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'debug-mode': DebugModeService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport type { ErrorLike } from 'fast-phonics-client/utils/errors'\nimport {\n  errorIsActionable,\n  isErrorLike,\n} from 'fast-phonics-client/utils/errors'\nimport type RouterService from '@ember/routing/router-service'\nimport type { Log } from '@blakeelearning/log'\nimport type LoadingUiService from 'fast-phonics-client/services/loading-ui'\n\nexport type UnhandledError = Partial<ErrorLike>\n\nexport class NotAuthenticatedError extends Error {\n  constructor(message: string) {\n    super(message)\n    this.name = 'NotAuthenticatedError'\n  }\n}\n\nexport default class ErrorHandlerService extends Service {\n  @service declare loadingUi: LoadingUiService\n\n  @service declare router: RouterService\n\n  @service declare log: Log\n\n  /**\n   * Transitions the browser to an error page appropriate to the error provided.\n   */\n  transitionToErrorRoute(error?: unknown): void {\n    let route = 'error'\n    if (error instanceof NotAuthenticatedError) {\n      route = 'error.unauthorized'\n    }\n    this.loadingUi.start(() => {\n      void this.router.transitionTo(route)\n    })\n  }\n\n  /**\n   * This is a handler for any time Content code calls\n   * `externalController.unhandledError`, indicating that it has encountered an\n   * error it cannot handle.  It:\n   *\n   * 1. logs the error to rollbar\n   * 2. transitions to an error route\n   *\n   * Because these calls come from Content, we can't depend on any instanceof\n   * checks.\n   */\n  handleContentUnhandledError(error: unknown): void {\n    let name = 'Error'\n    let message = 'Unknown Error'\n\n    if (typeof error === 'object' && error !== null) {\n      if ('name' in error && typeof error.name === 'string') {\n        name = error.name\n      }\n\n      if ('message' in error && typeof error.message === 'string') {\n        message = error.message\n      }\n    }\n\n    this.handleError(`Unhandled ${name} returned from content: ${message}`)\n  }\n\n  /**\n   * This is a general-purpose function for handling errors.  It accepts an\n   * error message and an optional error object.  With these it:\n   *\n   * 1. logs the error to rollbar, unless the error is considered un-actionable\n   * 2. transitions to an error route\n   *\n   * @see {@link #errorIsActionable}\n   */\n  handleError(message: string, error?: unknown) {\n    this.logErrorIfActionable(message, error)\n    this.transitionToErrorRoute(error)\n  }\n\n  /**\n   * This is a general-purpose handler for any time that controller code\n   * encounters an unrecoverable error.  This is any error that occurs in\n   * mathseeds-prime-client in the course of actioning a request from Content that\n   * we know that the Content code has no means of recovering from. It:\n   *\n   * 1. logs the error to rollbar\n   * 2. transitions to an error route\n   */\n  handleUnrecoverableError(error: unknown): void {\n    let message: string\n    if (isErrorLike(error)) {\n      message = error.message\n    } else if (typeof error === 'string') {\n      message = error\n    } else {\n      message = 'Unknown error'\n    }\n    this.handleError(`Unrecoverable error: ${message}`, error)\n  }\n\n  /**\n   * This will log errors that are considered actionable.\n   *\n   * @see {@link #errorIsActionable}\n   */\n  logErrorIfActionable(message: string, error?: unknown): void {\n    if (!error || !(error instanceof Error)) {\n      this.log.error(message)\n    } else if (errorIsActionable(error)) {\n      this.log.error(message, error)\n    }\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'error-handler': ErrorHandlerService\n  }\n}\n","import type Owner from '@ember/owner'\nimport Service, { inject as service } from '@ember/service'\nimport { ContentLoader, activityAccent } from '@blakeelearning/content-loader'\nimport type { InteractiveConfig, Manifest } from '@blakeelearning/content-loader-core'\nimport config from 'fast-phonics-client/config/environment'\nimport type UserService from './user'\n\nexport default class JesterLoaderService extends Service {\n  @service()\n  declare user: UserService\n\n  loader: ContentLoader\n\n  constructor(owner: Owner) {\n    super(owner)\n\n    this.loader = new ContentLoader({\n      variant: activityAccent(this.user.accent),\n      framework: 'jester',\n      config: config.contentLoader.jester,\n    })\n  }\n\n  load(manifests: Manifest[], variables?: Record<string, unknown>): Promise<InteractiveConfig> {\n    return this.loader.load(manifests, variables ?? {})\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'jester-loader': JesterLoaderService\n  }\n}\n","/* eslint-disable ember/no-runloop */\nimport Service, { inject as service } from '@ember/service'\nimport { later } from '@ember/runloop'\nimport { tracked } from '@glimmer/tracking'\nimport config from 'fast-phonics-client/config/environment'\nimport { getLastNavigationType } from 'fast-phonics-client/utils/navigation'\nimport type RouterService from '@ember/routing/router-service'\n\n/**\n * A service for tracking the loading state of the app, so we can display loading UI\n *\n * This service makes 2 important assumptions:\n * 1. when this service is initialised, we're within the initial page loading cycle\n * 2. other parts of the app are responsible for informing this service when they\n *    start and finish loading\n *\n * Other code will call `start(fn, preDelay)` and `finish(postDelay)` according to\n * their needs, with `preDelay` and `postDelay` being globally configurable.\n * These functions give loading UI a chance to fade in before commencing\n * loading operations, usually Ember route transitions. Similarly, the loading\n * UI has a chance to fade out smoothly once the loading has completed.\n *\n * After initial page load, this service also removes any static loading screen\n * HTML rendered by the server, so that Ember components can assume control of\n * loading UI once the Ember app has booted for the first time.\n *\n * Additionally, the duration of the static loading screen fade out animation\n * can be set to 0 within the app's config, to avoid waiting for animations\n * during testing.\n */\n\nexport default class LoadingUiService extends Service {\n  @service declare router: RouterService\n\n  /**\n   * the current loading state of the app, according to app components that want to display loading UI\n   */\n  @tracked isLoading = true\n\n  staticLoadingElements = document.getElementsByTagName('loading-screen-static')\n\n  /**\n   * Duration of the fade transition in milliseconds\n   */\n  get fadeDuration() {\n    return config.APP.loadingUi.fadeDuration ?? 0\n  }\n\n  /**\n   * Duration of the pre delay in milliseconds\n   */\n  get _preDelay() {\n    return config.APP.loadingUi.preDelay ?? 0\n  }\n\n  /**\n   * Duration of the post delay in milliseconds\n   */\n  get _postDelay() {\n    return config.APP.loadingUi.postDelay ?? 0\n  }\n\n  constructor(owner: Record<string, unknown>) {\n    super(owner)\n    window.addEventListener('pageshow', this._onPageShow)\n  }\n\n  override willDestroy(): void {\n    window.removeEventListener('pageshow', this._onPageShow)\n    super.willDestroy()\n  }\n\n  /**\n   * Starts a loading UI cycle, running the provided callback after an optional delay\n   *\n   * This function will schedule to callback to run after the delay, using\n   * Ember's runloop to apply the delay.\n   *\n   *  @example\n   * loadingUi.start(() => {\n   *   this.router.transitionTo('my-slow-loading-route')\n   * }, 1000)\n   */\n  start(fn?: () => void, preDelay?: number): void {\n    preDelay = preDelay ?? this._preDelay\n    this.isLoading = true\n    if (fn && preDelay > 0) {\n      later(fn, preDelay)\n    } else if (fn) {\n      fn()\n    }\n  }\n\n  /**\n   * Finishes a loading UI cycle, optionally after a delay\n   *\n   * After initial page load, this function will remove any server-rendered\n   * loading screen elements from the DOM.\n   */\n  finish(postDelay?: number): void {\n    postDelay = postDelay ?? this._postDelay\n\n    if (postDelay > 0) {\n      later(() => {\n        this._finishLoading()\n      }, postDelay)\n    } else {\n      this._finishLoading()\n    }\n  }\n\n  _finishLoading(): void {\n    this.isLoading = false\n\n    for (const staticLoadingElement of this.staticLoadingElements) {\n      if (staticLoadingElement instanceof HTMLElement) {\n        this._removeStaticLoadingScreen(staticLoadingElement)\n      }\n    }\n  }\n\n  /**\n   * Removes the static loading element, if it exists\n   */\n  _removeStaticLoadingScreen(staticLoadingElement: HTMLElement): void {\n    staticLoadingElement.addEventListener(\n      'transitionend',\n      () => {\n        staticLoadingElement.remove()\n      },\n      { once: true },\n    )\n    staticLoadingElement.style.setProperty(\n      'transition',\n      `opacity ${this.fadeDuration.toFixed()}ms`,\n    )\n    staticLoadingElement.style.setProperty('opacity', '0')\n  }\n\n  _onPageShow = (pageTransitionEvent: PageTransitionEvent) => {\n    // If the page was loaded from Safari's PageCache or\n    // Firefox's Back/Forward Cache, then our interactives' readyForUserInput\n    // won't fire, as the interactive will be revived in the same state\n    // as when the user was previously using it.\n    // This can occur when using the browser back/forward buttons, or their\n    // equivalent Javascript APIs.\n    // In these circumstances, we assume the loading screen can be removed.\n    const didLoadFromCache = pageTransitionEvent.persisted\n    if (didLoadFromCache && getLastNavigationType() === 'back_forward') {\n      this.finish()\n    }\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'loading-ui': LoadingUiService\n  }\n}\n","import Service, { service } from '@ember/service'\nimport { contentError } from 'fast-phonics-client/utils/errors'\nimport printImage from 'fast-phonics-client/utils/print-image'\nimport type DeviceDetection from '@blakeelearning/device/device/detection/service'\n\ninterface PrintArgs {\n  certificateUrl: string\n}\nexport interface CertificateData {\n  peakId: number\n  name: string\n  colour: 'gold' | 'silver' | 'bronze'\n  timestamp: number\n}\n\nexport default class PeakCertificateService extends Service {\n  @service('device/detection') declare deviceDetection: DeviceDetection\n\n  /**\n   * Prints a certificate\n   */\n  async print(args: PrintArgs): Promise<void> {\n    try {\n      const certificateUrl = new URL(args.certificateUrl)\n      if (this.deviceDetection.isNativeMobile) {\n        // The prescence of this param will result in an SVG element with `width=100% height=auto` attributes. The mobile apps require this for print layout.\n        certificateUrl.searchParams.set('fitpage', '')\n        // Mobile apps will intercept these calls and take care of printing from there.\n        window.open(certificateUrl.href, '_blank')\n        return\n      }\n\n      await this._printImage(certificateUrl.href)\n    } catch (error) {\n      throw contentError('PrintFailed', error)\n    }\n  }\n\n  _printImage(url: string) {\n    return printImage(url)\n  }\n}\ndeclare module '@ember/service' {\n  interface Registry {\n    'peak-certificate': PeakCertificateService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport posthog, { type CaptureOptions, type Properties } from 'posthog-js'\nimport config from 'fast-phonics-client/config/environment'\nimport type UserService from './user'\nimport type { FeatureService } from '@blakeelearning/features'\nimport { tracked } from '@glimmer/tracking'\n\nconst {\n  posthog: { projectToken, apiHost },\n} = config\n\nexport default class PosthogService extends Service {\n  @service declare user: UserService\n\n  @service declare features: FeatureService\n\n  @tracked isInstalled = false\n\n  capture(\n    event: string,\n    customProperties?: Properties,\n    options?: CaptureOptions,\n  ) {\n    const properties = { application: 'fp', ...customProperties }\n\n    console.debug('Capturing Posthog event', { event, properties, options })\n    if (!this.isInstalled) {\n      console.debug('Posthog is not installed, skipping capture')\n      return\n    }\n    posthog.capture(event, properties, {\n      ...options,\n      $set: {\n        customer_type: this.user.student.customerType.toLowerCase(),\n        ...options?.$set,\n      },\n    })\n  }\n\n  setup() {\n    if (\n      !config.posthog.enabled ||\n      !this.features.isEnabled('posthog-capture')\n    ) {\n      console.debug('Posthog is not enabled')\n      return\n    }\n\n    this._setup()\n  }\n\n  _setup() {\n    posthog.init(projectToken, {\n      api_host: apiHost,\n      autocapture: false,\n      capture_pageleave: false,\n      capture_pageview: false,\n      capture_performance: false,\n      advanced_disable_flags: true,\n      bootstrap: {\n        distinctID: this.user.student.id,\n        isIdentifiedID: true,\n      },\n    })\n\n    this.isInstalled = true\n  }\n\n  reset() {\n    if (!this.isInstalled) return\n    posthog.reset()\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    posthog: PosthogService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport type ActivityService from 'fast-phonics-client/services/activity'\nimport {\n  hasFinishedProgram,\n  canPlayPeakLesson,\n  canPlayStoneActivity,\n} from 'fast-phonics-client/utils/progress'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useQuery } from 'fast-phonics-client/resources/query'\nimport type UserService from './user'\nimport type ErrorHandlerService from './error-handler'\nimport { NotAuthenticatedError } from './error-handler'\nimport { RollbarIgnoreError } from 'fast-phonics-client/utils/errors'\n\ngraphql(/* GraphQL */ `\n  fragment StudentProgressDataFragment on Student {\n    id\n    progress {\n      lessons {\n        peak\n        positionInPeak\n        showPlacementTest\n      }\n    }\n  }\n`)\n\nconst StudentProgressQueryDocument = graphql(/* GraphQL */ `\n  query GetStudentProgress {\n    student {\n      ... on Student {\n        ...StudentProgressDataFragment\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\nexport default class ProgressService extends Service {\n  @service declare activity: ActivityService\n\n  @service declare user: UserService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  _studentProgressQuery = useQuery(this, () => {\n    return {\n      query: StudentProgressQueryDocument,\n    }\n  })\n\n  get lastActivity() {\n    const { lastActivity } = this.activity\n    return lastActivity\n  }\n\n  get lessonsProgressData() {\n    if (!this._studentProgressQuery.current.data) {\n      throw new Error('Progress Service has not been setup')\n    }\n\n    switch (this._studentProgressQuery.current.data.student.__typename) {\n      case 'Student':\n        return this._studentProgressQuery.current.data.student.progress.lessons\n\n      case 'NotAuthenticatedError':\n        this.errorHandler.handleError(\n          'ProgressService student not authenticated',\n          new NotAuthenticatedError(\n            'GraphQL GetStudentProgress query returned NotAuthenticatedError',\n          ),\n        )\n        /**\n         * The errorHandler.handleError call will redirect the user to the login page.\n         * Throwing a RollbarIgnoreError here keeps our return type as non-nullable.\n         */\n        throw new RollbarIgnoreError()\n\n      default:\n        this.errorHandler.handleError(\n          'GetStudentProgress query returned unhandled student type',\n          new Error(\n            // @ts-expect-error this will catch any unhandled types that are added to the BE.\n            // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n            `GetStudentProgress query returned unhandled student type: ${this._studentProgressQuery.current.data.student.__typename}`,\n          ),\n        )\n        throw new RollbarIgnoreError()\n    }\n  }\n\n  get lastAccessiblePeak() {\n    const progressPeak = this.lessonsProgressData.peak\n    const { lastPeak } = this.activity\n\n    return Math.min(progressPeak, lastPeak)\n  }\n\n  get hasFinishedProgram() {\n    return hasFinishedProgram(this.lessonsProgressData, this.lastActivity)\n  }\n\n  get hasViewedIntroVideo() {\n    return this.user.student.viewedIntroVideo\n  }\n\n  get showPlacementTest() {\n    return this.lessonsProgressData.showPlacementTest\n  }\n\n  canPlayPeak(peakId: number) {\n    return (\n      peakId <= this.lastAccessiblePeak &&\n      canPlayPeakLesson(this.lessonsProgressData, peakId).ok\n    )\n  }\n\n  canPlayStone(peakId: number, stoneId: string) {\n    const requestedPosition = this.activity.findPositionInPeakFor(\n      peakId,\n      stoneId,\n    )\n\n    if (requestedPosition.ok) {\n      const canPlayStone = canPlayStoneActivity(\n        this.lessonsProgressData,\n        peakId,\n        requestedPosition.id,\n      )\n      return canPlayStone.ok\n    }\n    return false\n  }\n\n  async setup() {\n    await this._studentProgressQuery.current.result()\n  }\n\n  async fetch() {\n    await this._studentProgressQuery.current.refetch()\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    progress: ProgressService\n  }\n}\n","import Service, { service } from '@ember/service'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport {\n  QuestGoalStatus,\n  type StudentQuestGoalAcknowledgeCompleteInput,\n} from 'fast-phonics-client/graphql/graphql'\nimport { useQuery } from 'fast-phonics-client/resources/query'\nimport type ActivityService from './activity'\nimport type { Log } from '@blakeelearning/log'\nimport { tracked } from '@glimmer/tracking'\nimport type RouterService from '@ember/routing/router-service'\nimport { useMutation } from 'fast-phonics-client/resources/mutation'\nimport type LoadingUiService from './loading-ui'\nimport type UserService from './user'\nimport type ErrorHandlerService from './error-handler'\nimport { NotAuthenticatedError } from './error-handler'\n\ngraphql(/* GraphQL */ `\n  fragment StudentQuestDataFragment on Student {\n    id\n    quest {\n      primaryGoal {\n        __typename\n        goalType: __typename\n        ... on QuestGoalPeak {\n          rewardAmount\n          id\n          peak\n          progressCurrent\n          progressTotal\n          status\n        }\n      }\n    }\n  }\n`)\n\nconst StudentQuestQueryDocument = graphql(/* GraphQL */ `\n  query GetStudentQuest {\n    student {\n      ... on Student {\n        ...StudentQuestDataFragment\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\nexport const acknowledgeQuestGoalAlertMutationDocument = graphql(/* GraphQL */ `\n  mutation StudentQuestGoalAcknowledgeComplete(\n    $input: StudentQuestGoalAcknowledgeCompleteInput!\n  ) {\n    studentQuestGoalAcknowledgeComplete(input: $input) {\n      ... on StudentQuestGoalAcknowledgeCompleteOutput {\n        student {\n          ...StudentQuestDataFragment\n          ...StudentUserDataFragment\n        }\n      }\n    }\n  }\n`)\n\nexport default class QuestService extends Service {\n  @service declare activity: ActivityService\n\n  @service declare log: Log\n\n  @service declare router: RouterService\n\n  @service declare user: UserService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @tracked showQuestAlert = false\n\n  onClose?: () => void\n\n  _studentQuestQuery = useQuery(this, () => {\n    return {\n      query: StudentQuestQueryDocument,\n    }\n  })\n\n  _acknowledgeQuestGoalAlertMutation = useMutation(\n    this,\n    acknowledgeQuestGoalAlertMutationDocument,\n  )\n\n  get currentQuest() {\n    switch (this._studentQuestQuery.current.data?.student.__typename) {\n      case 'Student':\n        return this._studentQuestQuery.current.data.student.quest\n\n      case 'NotAuthenticatedError':\n        this.errorHandler.handleError(\n          'QuestService student not authenticated',\n          new NotAuthenticatedError(\n            'GraphQL GetStudentQuest query returned NotAuthenticatedError',\n          ),\n        )\n        return undefined\n\n      default:\n        this.log.error(\n          // @ts-expect-error this will catch any unhandled types that are added to the BE.\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GetStudentQuest query returned unhandled student type: ${this._studentQuestQuery.current.data?.student.__typename ?? ''}`,\n        )\n        return undefined\n    }\n  }\n\n  get recommendedTargetRoute() {\n    if (!this.currentQuest) return\n\n    const primaryGoal = this.currentQuest.primaryGoal\n    if (primaryGoal.status === QuestGoalStatus.Incomplete) {\n      // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n      if (primaryGoal.__typename === 'QuestGoalPeak') {\n        const peak = primaryGoal.peak\n        const positionInPeak = primaryGoal.progressCurrent + 1\n        const result = this.activity.findStoneIdFor(peak, positionInPeak)\n\n        if (result.ok) {\n          if (result.id === 'index') {\n            // These are chest unlocks\n            return ['peaks.peak.stones', peak]\n          }\n          return ['stone', peak, result.id]\n        } else {\n          this.log.error(result.errorMessage)\n        }\n      }\n    }\n    return\n  }\n\n  get questGoalForNotification() {\n    const primaryGoal = this.currentQuest?.primaryGoal\n    if (primaryGoal?.status === QuestGoalStatus.ShowCompleteAlert) {\n      return primaryGoal\n    }\n    return undefined\n  }\n\n  async acknowledgeQuestGoalAlert(\n    input: StudentQuestGoalAcknowledgeCompleteInput,\n  ) {\n    const response =\n      await this._acknowledgeQuestGoalAlertMutation.current.mutate({\n        variables: {\n          input,\n        },\n      })\n    if (!response) {\n      throw new Error(\n        'GraphQL StudentQuestGoalAcknowledgeComplete mutation failed',\n      )\n    }\n\n    switch (response.studentQuestGoalAcknowledgeComplete.__typename) {\n      case 'NotAuthenticatedError':\n        throw new NotAuthenticatedError(\n          'GraphQL StudentQuestGoalAcknowledgeComplete mutation returned NotAuthenticatedError',\n        )\n\n      case 'StudentQuestGoalAcknowledgeCompleteOutput':\n        return // Happy path\n\n      default:\n        this.log.error(\n          // @ts-expect-error this is to catch unhandled types being added to the backend which we have not yet catered for in the client\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `StudentQuestGoalAcknowledgeComplete mutation returned unhandled __typename: ${response.studentQuestGoalAcknowledgeComplete.__typename}`,\n        )\n    }\n  }\n\n  closeQuestAlert() {\n    this.showQuestAlert = false\n    if (this.onClose) {\n      const { onClose } = this\n      delete this.onClose\n      onClose()\n    }\n  }\n\n  displayQuestAlertIfRequired(onClose?: NonNullable<typeof this.onClose>) {\n    if (this.questGoalForNotification) {\n      if (onClose) this.onClose = onClose\n      this.loadingUi.start()\n      this.showQuestAlert = true\n    } else if (onClose) {\n      onClose()\n    }\n  }\n\n  async fetch() {\n    await this._studentQuestQuery.current.refetch()\n  }\n\n  async setup() {\n    await this._studentQuestQuery.current.result()\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    quest: QuestService\n  }\n}\n","import { SessionService as AuthSessionService } from '@blakeelearning/auth'\nimport config from 'fast-phonics-client/config/environment'\n\nexport default class SessionService extends AuthSessionService {\n  signIn() {\n    this._navigate(config.APP.loginUrl)\n  }\n\n  signOut() {\n    this._navigate(config.APP.logoutUrl)\n  }\n\n  _navigate(url: string) {\n    window.location.replace(url)\n  }\n}\n\ndeclare module '@blakeelearning/auth' {\n  interface Session {\n    token: string | null\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    session: SessionService\n  }\n}\n","import { service } from '@ember/service'\nimport {\n  StudentMetricsService,\n  getSessionIdFromJwt,\n  type StudentMetricsConfig,\n  type StudentMetricsContext,\n} from '@blakeelearning/student-metrics'\nimport type UserService from './user'\nimport type SessionService from './session'\n\nexport default class StudentMetrics extends StudentMetricsService {\n  @service declare user: UserService\n  @service declare session: SessionService\n\n  override setup(config: StudentMetricsConfig = this.defaultConfig): void {\n    super.setup(config)\n  }\n\n  private get defaultConfig(): StudentMetricsConfig {\n    return {\n      application: 'fp',\n      resolveContext: () => this.resolveContext(),\n    }\n  }\n\n  private resolveContext(): StudentMetricsContext | undefined {\n    try {\n      const { student, accent } = this.user\n\n      return {\n        studentId: student.id,\n        customerType: student.customerType,\n        locale: accent,\n        sessionId: getSessionIdFromJwt(this.session.state.data?.token),\n      }\n    } catch {\n      // `user.student` throws before `user.setup()` has run.\n      return undefined\n    }\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'student-metrics': StudentMetrics\n  }\n}\n","import { TimeOnTask } from '@blakeelearning/totter'\nimport Service, { inject as service } from '@ember/service'\nimport config from 'fast-phonics-client/config/environment'\nimport type UserService from 'fast-phonics-client/services/user'\nimport type SessionService from './session'\n\ninterface StudentIdentity {\n  id: string | number\n}\n\nexport default class TimeOnTaskService extends Service {\n  @service declare session: SessionService\n\n  @service declare user: UserService\n\n  TimeOnTaskClass = TimeOnTask\n\n  initialized = false\n\n  totter?: TimeOnTask\n\n  setup() {\n    if (this.initialized) return\n\n    const studentId = String((this.user.student as StudentIdentity).id)\n\n    this.totter = new this.TimeOnTaskClass(studentId, {\n      product: 'fast_phonics',\n      syncOptions: {\n        syncUrl: this.syncUrl(),\n        getAuthCallback: async () => {\n          await Promise.resolve() // External TS expects an async function\n          return this.session.state.data?.token ?? ''\n        },\n      },\n    })\n    this.initialized = true\n  }\n\n  async trackRoute(routeName?: string) {\n    if (!routeName || !this.initialized) return\n\n    await this.totter?.trackSession(routeName)\n  }\n\n  private syncUrl() {\n    return `${config.timeOnTaskUrl}/api/v2/complete_events`\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'time-on-task': TimeOnTaskService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport { graphql } from 'fast-phonics-client/graphql'\nimport { useQuery } from 'fast-phonics-client/resources/query'\nimport config from 'fast-phonics-client/config/environment'\nimport type { Log } from '@blakeelearning/log'\nimport { Accent } from 'fast-phonics-client/graphql/graphql'\nimport type ErrorHandlerService from './error-handler'\nimport { NotAuthenticatedError } from './error-handler'\nimport { RollbarIgnoreError } from 'fast-phonics-client/utils/errors'\nimport { tracked } from '@glimmer/tracking'\nimport {\n  createOfrepInMemoryProvider,\n  type FeatureService,\n  type OfrepFlag,\n} from '@blakeelearning/features'\nimport ky from 'ky'\nimport type SessionService from 'fast-phonics-client/services/session'\n\ngraphql(/* GraphQL */ `\n  fragment RewardTotalsDataFragment on Student {\n    rewardTotals {\n      bookGems\n      coins\n      soundGems\n      wordGems\n    }\n  }\n`)\n\ngraphql(/* GraphQL */ `\n  fragment PeakQuizSummariesDataFragment on Student {\n    peakQuizSummaries {\n      best\n      certificate {\n        colour\n        created\n        url\n      }\n      first\n      id\n    }\n  }\n`)\ngraphql(/* GraphQL */ `\n  fragment PurchasesDataFragment on Student {\n    purchases {\n      category\n      item\n      price\n      uuid\n    }\n  }\n`)\ngraphql(/* GraphQL */ `\n  fragment SoundsDataFragment on Student {\n    sounds {\n      peak\n      rewards\n    }\n  }\n`)\ngraphql(/* GraphQL */ `\n  fragment WordsDataFragment on Student {\n    words {\n      peak\n      rewards\n    }\n  }\n`)\n\ngraphql(/* GraphQL */ `\n  fragment StudentUserDataFragment on Student {\n    id\n    customerType\n    backgroundMusicDisabled\n    books\n    averageBestPeakQuizResult\n    abbreviatedName\n    accent\n    firstName\n    selectedYeti\n    viewedIntroVideo\n    rosterEnabled\n    ...PeakQuizSummariesDataFragment\n    ...PurchasesDataFragment\n    ...RewardTotalsDataFragment\n    ...SoundsDataFragment\n    ...WordsDataFragment\n  }\n`)\n\nconst StudentQueryDocument = graphql(/* GraphQL */ `\n  query GetStudent {\n    student {\n      ... on Student {\n        ...StudentUserDataFragment\n      }\n      ... on NotAuthenticatedError {\n        code\n      }\n      __typename\n    }\n  }\n`)\n\ninterface OfrepBulkEvaluationResponse {\n  flags: OfrepFlag[]\n}\nexport default class UserService extends Service {\n  @service declare log: Log\n\n  @service declare features: FeatureService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare session: SessionService\n\n  /**\n   * This is stored one-off when setting up the service so that activities\n   * don't get reloaded when the student record is updated.\n   */\n  @tracked backgroundMusicDisabled = false\n\n  _studentQuery = useQuery(this, () => {\n    return {\n      query: StudentQueryDocument,\n    }\n  })\n\n  unsubscribeSessionChangeHandlers: (() => void)[] = []\n\n  async setup() {\n    await this._studentQuery.current.result()\n    await this.setupFeatureFlags()\n    this.backgroundMusicDisabled = this.student.backgroundMusicDisabled\n    this.log.setPerson({ id: this.student.id })\n\n    this.session.setup({\n      ...config.session,\n      userID: this.student.id,\n    })\n\n    this.subscribeToSessionChanges()\n  }\n\n  async setupFeatureFlags() {\n    const response = await ky.post('/ofrep/v1/evaluate/flags', {\n      json: {\n        context: {\n          targetingKey: this.student.id,\n          customer_type: this.student.customerType.toLowerCase(),\n        },\n      },\n      retry: {\n        limit: 3,\n        methods: ['POST'],\n      },\n    })\n\n    const { flags } = await response.json<OfrepBulkEvaluationResponse>()\n\n    await this.features.setup({\n      logger: console,\n      provider: createOfrepInMemoryProvider(flags),\n    })\n  }\n\n  async fetch() {\n    await this._studentQuery.current.refetch()\n  }\n\n  get student() {\n    if (!this._studentQuery.current.data) {\n      throw new Error('User Service has not been setup')\n    }\n\n    switch (this._studentQuery.current.data.student.__typename) {\n      case 'Student':\n        return this._studentQuery.current.data.student\n\n      case 'NotAuthenticatedError':\n        this.errorHandler.handleError(\n          'UserService student not authenticated',\n          new NotAuthenticatedError(\n            'GraphQL GetStudent query returned NotAuthenticatedError',\n          ),\n        )\n        /**\n         * The errorHandler.handleError call will redirect the user to the login page.\n         * Throwing a RollbarIgnoreError here keeps our return type as non-nullable.\n         */\n        throw new RollbarIgnoreError()\n\n      default:\n        throw new Error(\n          // @ts-expect-error this will catch any unhandled types that are added to the BE.\n          // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n          `GetStudent query returned unhandled student type: ${this._studentQuery.current.data.student.__typename}`,\n        )\n    }\n  }\n\n  get accent() {\n    const isCanadaAware = this.features.isEnabled('fp_canada-aware')\n\n    if (this.student.accent === Accent.Ca && !isCanadaAware) {\n      return 'us'\n    }\n\n    return this.student.accent.toLowerCase()\n  }\n\n  reset(location = window.location) {\n    location.replace('/')\n  }\n\n  subscribeToSessionChanges() {\n    this.unsubscribeFromSessionChanges()\n\n    this.unsubscribeSessionChangeHandlers.push(\n      this.session.onUnauthenticated(() => {\n        this.session.signOut()\n      }),\n      this.session.onMismatched(() => {\n        this.reset()\n      }),\n    )\n  }\n\n  unsubscribeFromSessionChanges() {\n    for (const unsubscribe of this.unsubscribeSessionChangeHandlers) {\n      unsubscribe()\n    }\n    this.unsubscribeSessionChangeHandlers = []\n  }\n\n  override willDestroy(): void {\n    this.unsubscribeFromSessionChanges()\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    user: UserService\n  }\n}\n","const isPeaksRoute = (name?: string) => /^peaks\\b/.test(name ?? '')\nconst isMyProgressRoute = (name?: string) => /^my-progress\\b/.test(name ?? '')\n\n/**\n * Returns true iff the route is an error page\n */\nexport const isErrorRoute = (name: string) => /^(not-found|error)\\b/.test(name)\n\n/**\n * Returns true iff a given route names will both display the peaks interactive\n */\nconst isInsidePeaks = (to: string, from?: string) => [from, to].every(isPeaksRoute)\n\n/**\n * Returns true iff the given route names will both display the progress-page interactive\n */\nconst isInsideMyProgress = (to: string, from?: string) => [from, to].every(isMyProgressRoute)\n\n/**\n * Returns true iff the given route names both display the same interactive\n */\nexport const isInsideInteractive = (to: string, from?: string) =>\n  [isInsidePeaks, isInsideMyProgress].some((check) => check(to, from))\n","import type { RumPublicApi } from '@datadog/browser-rum-core'\n\ndeclare global {\n  interface Window {\n    DD_RUM?: RumPublicApi\n  }\n}\n\nconst appVersionRegex =\n  /(readingeggs|mathseeds)-(ios|android)(?:(?:[-/]v?)(\\S+))?/\n/**\n * Used to add extra global context to datadog RUM events.\n */\nexport function setupDatadogRum() {\n  if (!window.DD_RUM) return\n\n  const datadogRum = window.DD_RUM\n\n  try {\n    const matches = appVersionRegex.exec(navigator.userAgent)\n\n    datadogRum.setGlobalContextProperty('isNativeAppWebView', matches != null)\n\n    if (matches) {\n      datadogRum.setGlobalContextProperty('nativeAppBrand', matches[1])\n      datadogRum.setGlobalContextProperty('nativeAppPlatform', matches[2])\n      datadogRum.setGlobalContextProperty(\n        'nativeAppVersion',\n        matches[3] ?? 'unknown',\n      )\n    }\n  } catch (error) {\n    console.error('Failed to setGlobalContextProperty on window.DD_RUM', error)\n  }\n}\n","const { abs, ceil, floor } = Math\n\n// This utility is a reimplementation of moment.js's `fromNow` and\n// `toNow` functions, using the same buckets of time for translating\n// relative dates to readable strings like: 'a few seconds ago', 'a year ago', etc\n// https://momentjs.com/docs/#/displaying/fromnow/\n// https://momentjs.com/docs/#/displaying/tonow/\n\n// TODO: This util can be replaced with date-fns intlFormatDistance once we drop support for ios13\n\nconst ONE_SECOND = 1000\nconst ONE_MINUTE = ONE_SECOND * 60\nconst ONE_HOUR = ONE_MINUTE * 60\nconst ONE_DAY = ONE_HOUR * 24\nconst ONE_MONTH = ONE_DAY * 31\nconst ONE_YEAR = ONE_DAY * 365\nconst DIFF_SECONDS_FROM_NOW = ONE_SECOND * 45\nconst DIFF_MINUTE_FROM_NOW = ONE_SECOND * 90\nconst DIFF_MINUTES_FROM_NOW = ONE_MINUTE * 45\nconst DIFF_HOUR_FROM_NOW = ONE_MINUTE * 90\nconst DIFF_HOURS_FROM_NOW = ONE_HOUR * 22\nconst DIFF_DAY_FROM_NOW = ONE_HOUR * 36\nconst DIFF_DAYS_FROM_NOW = ONE_DAY * 26\nconst DIFF_MONTH_FROM_NOW = ONE_DAY * 45\nconst DIFF_MONTHS_FROM_NOW = ONE_DAY * 319\nconst DIFF_YEAR_FROM_NOW = ONE_DAY * 547\nconst DIFF_SECONDS_AGO = DIFF_SECONDS_FROM_NOW * -1\nconst DIFF_MINUTE_AGO = DIFF_MINUTE_FROM_NOW * -1\nconst DIFF_MINUTES_AGO = DIFF_MINUTES_FROM_NOW * -1\nconst DIFF_HOUR_AGO = DIFF_HOUR_FROM_NOW * -1\nconst DIFF_HOURS_AGO = DIFF_HOURS_FROM_NOW * -1\nconst DIFF_DAY_AGO = DIFF_DAY_FROM_NOW * -1\nconst DIFF_DAYS_AGO = DIFF_DAYS_FROM_NOW * -1\nconst DIFF_MONTH_AGO = DIFF_MONTH_FROM_NOW * -1\nconst DIFF_MONTHS_AGO = DIFF_MONTHS_FROM_NOW * -1\nconst DIFF_YEAR_AGO = DIFF_YEAR_FROM_NOW * -1\n\nexport default function dateFromNow(date: Date, now = Date.now()): string {\n  const diff = date.getTime() - now\n\n  if (diff <= DIFF_YEAR_AGO) {\n    return `${_msToAbsolute(diff, 'years').toString()} years ago`\n  }\n  if (diff > DIFF_YEAR_AGO && diff <= DIFF_MONTHS_AGO) {\n    return 'a year ago'\n  }\n  if (diff > DIFF_MONTHS_AGO && diff <= DIFF_MONTH_AGO) {\n    return `${_msToAbsolute(diff, 'months').toString()} months ago`\n  }\n  if (diff > DIFF_MONTH_AGO && diff <= DIFF_DAYS_AGO) {\n    return 'a month ago'\n  }\n  if (diff > DIFF_DAYS_AGO && diff <= DIFF_DAY_AGO) {\n    return `${_msToAbsolute(diff, 'days').toString()} days ago`\n  }\n  if (diff > DIFF_DAY_AGO && diff <= DIFF_HOURS_AGO) {\n    return 'a day ago'\n  }\n  if (diff > DIFF_HOURS_AGO && diff <= DIFF_HOUR_AGO) {\n    return `${_msToAbsolute(diff, 'hours').toString()} hours ago`\n  }\n  if (diff > DIFF_HOUR_AGO && diff <= DIFF_MINUTES_AGO) {\n    return 'an hour ago'\n  }\n  if (diff > DIFF_MINUTES_AGO && diff <= DIFF_MINUTE_AGO) {\n    return `${_msToAbsolute(diff, 'minutes').toString()} minutes ago`\n  }\n  if (diff > DIFF_MINUTE_AGO && diff <= DIFF_SECONDS_AGO) {\n    return 'a minute ago'\n  }\n  if (diff > DIFF_SECONDS_AGO && diff < 0) {\n    return 'a few seconds ago'\n  }\n  if (diff >= 0 && diff < DIFF_SECONDS_FROM_NOW) {\n    return 'in seconds'\n  }\n  if (diff >= DIFF_SECONDS_FROM_NOW && diff < DIFF_MINUTE_FROM_NOW) {\n    return 'in a minute'\n  }\n  if (diff >= DIFF_MINUTE_FROM_NOW && diff < DIFF_MINUTES_FROM_NOW) {\n    return `in ${_msToAbsolute(diff, 'minutes').toString()} minutes`\n  }\n  if (diff >= DIFF_MINUTES_FROM_NOW && diff < DIFF_HOUR_FROM_NOW) {\n    return 'in an hour'\n  }\n  if (diff >= DIFF_HOUR_FROM_NOW && diff < DIFF_HOURS_FROM_NOW) {\n    return `in ${_msToAbsolute(diff, 'hours').toString()} hours`\n  }\n  if (diff >= DIFF_HOURS_FROM_NOW && diff < DIFF_DAY_FROM_NOW) {\n    return 'in a day'\n  }\n  if (diff >= DIFF_DAY_FROM_NOW && diff < DIFF_DAYS_FROM_NOW) {\n    return `in ${_msToAbsolute(diff, 'days').toString()} days`\n  }\n  if (diff >= DIFF_DAYS_FROM_NOW && diff < DIFF_MONTH_FROM_NOW) {\n    return 'in a month'\n  }\n  if (diff >= DIFF_MONTH_FROM_NOW && diff < DIFF_MONTHS_FROM_NOW) {\n    return `in ${_msToAbsolute(diff, 'months').toString()} months`\n  }\n  if (diff >= DIFF_MONTHS_FROM_NOW && diff < DIFF_YEAR_FROM_NOW) {\n    return 'in a year'\n  }\n  if (diff >= DIFF_YEAR_FROM_NOW) {\n    return `in ${_msToAbsolute(diff, 'years').toString()} years`\n  }\n  return ''\n}\n\ntype TimeUnit = 'minutes' | 'hours' | 'days' | 'months' | 'years'\n\nfunction _msToAbsolute(ms: number, unit: TimeUnit): number {\n  const conversionFactor = {\n    minutes: ONE_MINUTE,\n    hours: ONE_HOUR,\n    days: ONE_DAY,\n    months: ONE_MONTH,\n    years: ONE_YEAR,\n  }[unit]\n\n  const converted = abs(ms / conversionFactor)\n  return converted < 2 ? ceil(converted) : floor(converted)\n}\n","import { assert } from '@ember/debug'\n\nexport type DebugActionParam =\n  | {\n      type: 'checkbox' | 'date' | 'number' | 'text'\n\n      value?: string | undefined\n    }\n  | {\n      type: 'select'\n\n      options: { label: string; value: string }[]\n\n      values?: Record<string, unknown>\n    }\n\nexport type DebugAction = Record<string, DebugActionParam>\n\n/**\n * Marks this property as a debug value.\n * This property will be displayed in the debug menu as JSON.\n *\n * @example\n * ```ts\n * @debugValue()\n * get someValue() {\n *   return { foo: 'bar', baz: true }\n * }\n * ```\n *\n * @returns a property decorator\n */\nexport function debugValue(): PropertyDecorator {\n  return function (target, propertyKey) {\n    const debug = getDebug(target)\n    debug.values.add(propertyKey)\n  }\n}\n\n/**\n * Marks this action as a debug action.\n * This action and it's params will be available in the debug menu.\n *\n * Each param will be displayed as an input element with the provided type.\n *\n * @param params Debug action params\n * @returns a method decorator\n *\n * @example\n * ```ts\n * @action\n * @debugAction({ foo: 'text', bar: 'date })\n * doSomething(foo: string, bar: Date) {\n *   // do something\n * }\n * ```\n */\nexport function debugAction(params?: DebugAction): MethodDecorator {\n  return function (target, propertyKey) {\n    const debug = getDebug(target)\n    debug.actions.set(propertyKey, params)\n  }\n}\n\nexport function debugSubscription(): MethodDecorator {\n  return function (target, propertyKey) {\n    const debug = getDebug(target)\n    debug.subscriptions.add(propertyKey)\n  }\n}\n\n/**\n * Context for the content-interactive debug menu\n */\nexport class DebugContent {\n  /**\n   * Set of keys to lookup when debugging component values\n   */\n  values = new Set<string | symbol>()\n\n  /**\n   * Map of keys and config to lookup when debugging component actions\n   */\n  actions = new Map<string | symbol, DebugAction | undefined>()\n\n  /**\n   * Set of something\n   */\n  subscriptions = new Set<string | symbol>()\n}\n\n/** Unique symbol to lookup the DebugContent class */\nexport const DebugContentSymbol = Symbol.for('debug-content')\n\n/**\n * Gets the DebugContent of an object. Creates a new DebugContent if one doesn't exists already.\n *\n * @param context object to apply the DebugContent too\n * @returns The DebugContent\n */\nexport function getDebug(context: unknown): DebugContent {\n  const debug = (context as Record<PropertyKey, unknown>)[DebugContentSymbol]\n\n  if (debug instanceof DebugContent) {\n    return debug\n  }\n\n  return setDebug(context, new DebugContent())\n}\n\n/**\n * Sets the provided DebugContent on the context object\n *\n * @param context object to apply the DebugContent too\n * @param debug the DebugContent to apply to the context\n * @returns The DebugContent\n */\nexport function setDebug(context: unknown, debug: DebugContent): DebugContent {\n  assert(\n    'context must be a non-null object',\n    typeof context === 'object' && context !== null,\n  )\n  Object.assign(context, { [DebugContentSymbol]: debug })\n  return debug\n}\n","import { HTTPError } from 'ky'\nimport isNetworkError from 'is-network-error'\nimport { ScriptBlockedError } from '@blakeelearning/content-loader'\nimport { NotAuthenticatedError } from 'fast-phonics-client/services/error-handler'\n\n/**\n * This describes any object that has a name and a message.  All standard\n * JavaScript errors (Error, TypeError, etc.) implement this interface.\n */\nexport interface ErrorLike {\n  name: string\n  message: string\n}\n\ntype ErrorCheck = (error: unknown) => boolean\n\nclass ContentError extends Error {\n  constructor(name: string, error: unknown) {\n    let message: string\n    let cause: ErrorLike | undefined\n\n    if (isErrorLike(error)) {\n      message = error.message\n      cause = error\n    } else if (typeof error === 'string') {\n      message = error\n    } else {\n      message = `Unrecognised error: ${String(error)}`\n    }\n\n    super(message, { cause })\n    this.name = name\n  }\n}\n\n/**\n * There are two near-identical sets of network error classes in Ember - one\n * comes from fetch requests, and the other comes from ember-data.  The following\n * functions can be used to check for either.\n */\n\nexport const isUnauthorizedError: ErrorCheck = (error) =>\n  (error instanceof HTTPError && error.response.status === 401) ||\n  error instanceof NotAuthenticatedError\n\nexport const isAbortError: ErrorCheck = (error) => isNetworkError(error)\n\nexport const isBadRequestError: ErrorCheck = (error) =>\n  error instanceof HTTPError && error.response.status === 400\n\nexport const isServerError: ErrorCheck = (error) =>\n  error instanceof HTTPError && error.response.status >= 500\n\nfunction errorHasName(error: unknown): error is { name: unknown } {\n  return error !== null && typeof error === 'object' && 'name' in error\n}\n\nexport const isKyTimeoutError: ErrorCheck = (error) =>\n  errorHasName(error) && error.name === 'TimeoutError'\n\n/**\n * `ScriptBlockedError` indicates that content-loader failed to load a\n * JavaScript file into the DOM.  This is similar to an abort error, in that it\n * usually indicates a network failure.\n */\nexport const isScriptBlockedError: ErrorCheck = (error) =>\n  error instanceof ScriptBlockedError ||\n  (errorHasName(error) && error.name === 'ScriptBlockedError')\n\nexport const isNotAuthenticatedError: ErrorCheck = (error) =>\n  error instanceof NotAuthenticatedError\n\n/**\n * This determines if a given error message/error object pair are actionable.\n * The definition of actionable is something that if we see it reported in\n * Rollbar, we can take some action to either resolve or ameliorate the\n * issue.\n *\n * At present, the errors we consider un-actionable are:\n *\n * 1. AbortErrors (either from ED or Ember Ajax)\n * 2. ScriptBlockedErrors from content-loader\n *\n * Anything else might be actionable.\n */\nexport function errorIsActionable(error: Error): boolean {\n  if (error instanceof ContentError && isErrorLike(error.cause)) {\n    return errorIsActionable(error.cause)\n  }\n  return (\n    !isAbortError(error) &&\n    !isScriptBlockedError(error) &&\n    !isNotAuthenticatedError(error)\n  )\n}\n\n/**\n * Wraps errors with the given error name, provided that they are not\n * considered a priori unrecoverable in the current context.  If they are, they\n * are returned unchanged.\n *\n * The \"name\" argument is intended to by used by the externalController wrapper\n * to determine if an error is recoverable.  As such, the errors created by\n * this function can be thrown from controller code interfacing with Content\n * when something goes awry.  The original error is wrapped using Error.cause so\n * that its stack trace (if any) is not lost.\n *\n * The second argument to this function can be an error object, an \"error-like\"\n * (object with name and message), a string, or any other type that can be\n * converted to a string.\n *\n * It is also possible to pass an error check function as the third argument.\n * If provided, this function will be used to determine whether to wrap the\n * error or not.  This is done because there are some errors that we never want\n * to give our content code the opportunity to recover from.  By default only\n * UnauthorizedErrors are treated as definitely unrecoverable.\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause}\n * @example\n * try {\n *   doSomething()\n * } catch (error) {\n *   throw contentError('MyErrorName', error)\n * }\n *\n * @example\n * throw contentError('MyErrorName', 'my message')\n */\nexport function contentError(\n  name: string,\n  error: unknown,\n  unrecoverableErrorCheck: ErrorCheck = isUnauthorizedError,\n): unknown {\n  if (unrecoverableErrorCheck(error)) {\n    return error\n  }\n  return new ContentError(name, error)\n}\n\nexport function isErrorLike(error: unknown): error is ErrorLike {\n  return (\n    typeof error === 'object' &&\n    error !== null &&\n    'name' in error &&\n    'message' in error &&\n    typeof error.name === 'string' &&\n    typeof error.message === 'string'\n  )\n}\n\nfunction hasStatusCode(obj: unknown): obj is { statusCode: number } {\n  return (\n    !!obj &&\n    typeof obj === 'object' &&\n    obj.hasOwnProperty('statusCode') &&\n    typeof (obj as { statusCode: unknown }).statusCode === 'number'\n  )\n}\n\n/**\n * This is used to decide if a \"network error\" (Apollo term) can be retried.\n * We follow the ky logic for this, which says that any failed request (also\n * called a \"network error\", but meaning a fetch request that didn't resolve),\n * as well as certain 4xx and 5xx server errors can be.\n */\nexport function isApolloNetworkErrorRetryable(error: unknown): boolean {\n  return (\n    isNetworkError(error) ||\n    (hasStatusCode(error) &&\n      [408, 413, 429, 500, 502, 503, 504].includes(error.statusCode))\n  )\n}\n\n/**\n * This is a special error that can be thrown which is in the ignored messages config for Rollbar.\n * Calling this after the `ErrorHandler` service's `handleError` method means we don't need to make a lot of our return types nullable.\n */\nexport class RollbarIgnoreError extends Error {\n  constructor() {\n    super('RollbarIgnoreError')\n  }\n}\n","import { assert } from '@ember/debug'\n\nexport default function formatDueDate(date: Date): string {\n  const dateOfMonth = date.getDate().toString()\n  const dayOfWeek = {\n    0: 'Sunday',\n    1: 'Monday',\n    2: 'Tuesday',\n    3: 'Wednesday',\n    4: 'Thursday',\n    5: 'Friday',\n    6: 'Saturday',\n  }[date.getDay()]\n  const month = {\n    0: 'January',\n    1: 'February',\n    2: 'March',\n    3: 'April',\n    4: 'May',\n    5: 'June',\n    6: 'July',\n    7: 'August',\n    8: 'September',\n    9: 'October',\n    10: 'November',\n    11: 'December',\n  }[date.getMonth()]\n\n  assert('dayOfWeek must be a string', typeof dayOfWeek === 'string')\n  assert('month must be a string', typeof month === 'string')\n\n  return `${dayOfWeek}, ${dateOfMonth} ${month}`\n}\n","export default {\n  data: {\n    type: 'students',\n    id: 0,\n    attributes: {\n      name: 'Guest Student',\n      'remote-id': 1,\n      'first-name': 'Guest Student',\n      eggs: 30765,\n      'canonical-student-id': 0,\n      locale: 'au',\n    },\n  },\n}\n","export function getLastNavigationType() {\n  if (window.performance === undefined) return undefined\n\n  const supportsGetPerfEntries =\n    typeof window.performance.getEntriesByType === 'function'\n  let currentNavigation\n  let navigationType\n\n  if (supportsGetPerfEntries) {\n    ;[currentNavigation] = window.performance\n      .getEntriesByType('navigation')\n      .slice(-1)\n  }\n\n  if (currentNavigation) {\n    // If getEntriesByType exists, and returns a non-empty array, then the\n    // browser is assumed to support Navigation Timing Level 2 API, which\n    // returns a string type\n    // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming/type\n    navigationType = currentNavigation.type\n  } else {\n    // If getEntriesByType doesn't exist, or returns an empty array, then the\n    // browser is assumed to support Navigation Timing Level 1 API, which\n    // returns an integer type.\n    // This is the case for Safari 9 and upwards, as of July 2020.\n    // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigation/type\n    currentNavigation = window.performance.navigation.type\n\n    navigationType = {\n      0: 'navigate',\n      1: 'reload',\n      2: 'back_forward',\n    }[currentNavigation]\n  }\n\n  return navigationType\n}\n","/**\n * This util is designed to be used in conjuntion with the hidden-print-container component.\n */\nexport default async function printImage(url: string): Promise<void> {\n  const hiddenPrintContainerId = 'hidden-print-container'\n\n  const printContainer = document.querySelector(`div#${hiddenPrintContainerId}`)\n  if (!printContainer) throw new Error('Missing print container element')\n\n  while (printContainer.firstChild) {\n    printContainer.firstChild.remove()\n  }\n\n  const hiddenImage = document.createElement('img')\n  hiddenImage.src = url\n\n  const printPromise = new Promise<void>((resolve, reject) => {\n    hiddenImage.onload = () => {\n      /**\n       * This (ugly but functional) timeout is the most reliable way to ensure that Safari prints a fully rendered certificate.\n       * The following didn't work:\n       * -------------------------------\n       * await hiddenImage.decode()\n       * resolve()\n       * window.print()\n       * -------------------------------\n       * hiddenImage.decoding = 'sync' // Tried on it's own and incombination with the above\n       * -------------------------------\n       * requestAnimationFrame(() => {\n       *  requestAnimationFrame(() => {\n       *    resolve()\n       *    window.print()\n       *  })\n       * })\n       * -------------------------------\n       */\n      setTimeout(() => {\n        resolve()\n        const hiddenPrintImage = document.querySelector(`div#${hiddenPrintContainerId} > img`)\n        if (hiddenPrintImage === hiddenImage) window.print()\n      }, 500)\n    }\n    hiddenImage.onerror = () => {\n      reject(new Error('Failed to load image'))\n    }\n  })\n\n  printContainer.appendChild(hiddenImage)\n\n  return printPromise\n}\n","/**\n * Finished Program Functions\n */\n\nimport { assert } from '@ember/debug'\n\ntype CanPlayResult = { ok: true } | { ok: false; message: string }\n\ninterface ActivityModel {\n  peak: number | null | undefined\n  positionInPeak: number | null | undefined\n}\n\ninterface ProgressData {\n  peak: number\n  positionInPeak: number\n}\n\nexport function hasFinishedProgram(\n  studentProgress: ProgressData,\n  lastActivity: ActivityModel,\n): boolean {\n  const { peak: studentProgressPeak } = studentProgress\n  const { peak: lastActivityPeak } = lastActivity\n\n  assert('lastActivityPeak is a number', typeof lastActivityPeak === 'number')\n\n  const isFinishedProgram = studentProgressPeak > lastActivityPeak\n\n  return isFinishedProgram\n}\n\nexport function canPlayPeakLesson(\n  studentProgress: ProgressData,\n  peak: number,\n): CanPlayResult {\n  const { peak: currentPeak } = studentProgress\n  if (currentPeak >= peak) {\n    return { ok: true }\n  }\n  return {\n    ok: false,\n    message: `The requested peak is greater than the users current peak`,\n  }\n}\n\nexport function canPlayStoneActivity(\n  studentProgress: ProgressData,\n  requestedPeak: number,\n  requestedStone: number,\n): CanPlayResult {\n  const { peak: currentPeak, positionInPeak: currentStone } = studentProgress\n\n  if (requestedPeak < currentPeak) {\n    return { ok: true }\n  }\n\n  if (requestedPeak === currentPeak) {\n    if (requestedStone <= currentStone) {\n      return { ok: true }\n    }\n  }\n\n  if (requestedPeak > currentPeak) {\n    return {\n      ok: false,\n      message: `The requested peak is greater than the users current peak`,\n    }\n  }\n\n  if (requestedStone > currentStone) {\n    return {\n      ok: false,\n      message: `The requested position is greater than the users current position`,\n    }\n  }\n\n  // Default to false if the other cases aren't satisfied\n  return {\n    ok: false,\n    message:\n      'All previous cases failed, check that the user has progress data and that the requested Peak or Stone is valid',\n  }\n}\n","import isNetworkError from 'is-network-error'\nimport pRetry, { AbortError } from 'p-retry'\nimport type { Options } from 'p-retry'\n\nexport function retryOnNetworkError<T>(\n  callback: () => Promise<T>,\n  options?: Options,\n): Promise<T> {\n  const wrappedCallback = async () => {\n    try {\n      return await callback()\n    } catch (error) {\n      if (error instanceof Error) {\n        if (isNetworkError(error)) {\n          throw error\n        }\n        throw new AbortError(error)\n      } else {\n        throw new AbortError(String(error))\n      }\n    }\n  }\n\n  return pRetry(wrappedCallback, options)\n}\n","define('fast-phonics-client/config/environment', [], function() {\n  var prefix = 'fast-phonics-client';\ntry {\n  var metaName = prefix + '/config/environment';\n  var rawConfig = document.querySelector('meta[name=\"' + metaName + '\"]').getAttribute('content');\n  var config = JSON.parse(decodeURIComponent(rawConfig));\n\n  var exports = { 'default': config };\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n  return exports;\n}\ncatch(err) {\n  throw new Error('Could not read config from meta tag with name \"' + metaName + '\".');\n}\n\n});\n","\n          if (!runningTests) {\n            require(\"fast-phonics-client/app\")[\"default\"].create({\"apiNamespace\":\"api/v1\",\"apollo\":{},\"studentNamespace\":\"students\",\"debugErrors\":false,\"product\":\"fp\",\"gitSha\":\"123\",\"defaultAccent\":\"au\",\"emberGitSha\":\"abc\",\"loginUrl\":\"/login\",\"loginWarning\":null,\"logoutUrl\":\"/logout\",\"guest\":false,\"loadingUi\":{\"preDelay\":2000,\"postDelay\":500,\"fadeDuration\":1000},\"enableMessengerLogging\":false,\"certificateHost\":\"https://certificates.blake-staging.com\",\"name\":\"fast-phonics-client\",\"version\":\"1.22.1+20615e84\"});\n          }\n        \n"],"mappings":"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","ignoreList":[]}