{"version":3,"file":"fast-phonics-client-3b20f2b0f0569b21f6a3b81501dd6a59.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","client","features","getClient","bgmDisabled","user","backgroundMusicDisabled","filter","flag","getBooleanValue","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","uuidV4","correctCount","totalCount","failActivity","passVideoActivity","completeVideo","passBookQuiz","saveBookQuizResult","quizData","from","_","i","concat","toString","readRepeat","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","_dec","shouldRotateDevice","device","isMobile","isPortrait","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","isDebugAllowed","goToTab","tabName","readBook","bookId","watchSoundVideo","sound","peakCertificate","pageTitle","localName","replaceWith","_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","FeatureFlagType","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","one","_trackPage","beforeModel","transition","_transition$to","_transition$to2","to","_setupSession","afterModel","_resolvedModel","checkTransition","_transition$to$name","_transition$to3","logErrorIfActionable","willTransition","_scheduleAppRefreshOnSuccessfulTransition","trackPage","page","currentURL","currentRouteName","load","Promise","all","setup","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","signIn","logoutUrl","LogoutRoute","form","document","createElement","setAttribute","body","appendChild","submit","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","routeInfo","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","SESSION_STORAGE_KEY","resetPeakProgressMutationDocument","resetPlacementTestProgressMutationDocument","_setSessionStorage","shouldEnable","_shouldEnable","_getSessionStorage","sessionStorage","getItem","setItem","err","warn","resetPeakProgressMutation","resetPlacementTestProgressMutation","isErrorLike","errorIsActionable","ContentLoader","variant","activityAccent","framework","contentLoader","jester","_config$APP$loadingUi","_preDelay","_config$APP$loadingUi2","preDelay","_postDelay","_config$APP$loadingUi3","postDelay","getElementsByTagName","pageTransitionEvent","persisted","getLastNavigationType","addEventListener","_onPageShow","removeEventListener","fn","isLoading","later","_finishLoading","staticLoadingElement","staticLoadingElements","_removeStaticLoadingScreen","remove","once","style","setProperty","deviceDetection","isNativeMobile","searchParams","open","_printImage","printImage","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","loginUrl","StudentQueryDocument","_studentQuery","setPerson","provider","createBackendProvider","featureFlags","isCanadaAware","Ca","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","add","DebugContent","Set","DebugContentSymbol","for","context","setDebug","assign","unrecoverableErrorCheck","ContentError","cause","isAbortError","isScriptBlockedError","isNotAuthenticatedError","isNetworkError","obj","hasOwnProperty","statusCode","HTTPError","isBadRequestError","errorHasName","isServerError","isKyTimeoutError","ScriptBlockedError","dateOfMonth","getDate","dayOfWeek","getDay","month","getMonth","attributes","eggs","locale","performance","currentNavigation","navigationType","getEntriesByType","navigation","async","hiddenPrintContainerId","printContainer","querySelector","firstChild","hiddenImage","src","printPromise","resolve","reject","onload","setTimeout","onerror","studentProgress","currentPeak","requestedPeak","requestedStone","currentStone","studentProgressPeak","lastActivityPeak","callback","pRetry","AbortError","define","metaName","prefix","rawConfig","getAttribute","exports","parse","decodeURIComponent","runningTests","require","create","apiNamespace","studentNamespace","product","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/progress.ts","fast-phonics-client/services/quest.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\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  }}\\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  }}\\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    const client = this.features.getClient()\n    return {\n      ...this.args.variables,\n      bgmDisabled: this.user.backgroundMusicDisabled,\n      features: [\n        'jesterCssFontLoadingFF'\n      ].filter((flag) => client.getBooleanValue(flag, false)),\n    }\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 { 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: uuidV4(),\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: uuidV4(),\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 { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type DeviceService from '@blakeelearning/content-loader/content-loader/device/service'\n\nexport default class ApplicationController extends Controller {\n  @service('content-loader/device') declare device: DeviceService\n\n  get shouldRotateDevice(): boolean {\n    return this.device.isMobile && this.device.isPortrait\n  }\n}\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 { FeatureService } from '@blakeelearning/features'\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  @service declare features: FeatureService\n\n  get isDebugAllowed(): boolean {\n    const client = this.features.getClient()\n    return client.getBooleanValue('debugAllowedFF', false)\n  }\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 { v4 as uuidV4 } 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 ?? uuidV4(),\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 { v4 as uuidV4 } 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: uuidV4(),\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    backgroundMusicDisabled\\n    books\\n    averageBestPeakQuizResult\\n    abbreviatedName\\n    accent\\n    firstName\\n    selectedYeti\\n    viewedIntroVideo\\n    rosterEnabled\\n    featureFlags {\\n      name\\n      type\\n      value\\n    }\\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    backgroundMusicDisabled\\n    books\\n    averageBestPeakQuizResult\\n    abbreviatedName\\n    accent\\n    firstName\\n    selectedYeti\\n    viewedIntroVideo\\n    rosterEnabled\\n    featureFlags {\\n      name\\n      type\\n      value\\n    }\\n    ...PeakQuizSummariesDataFragment\\n    ...PurchasesDataFragment\\n    ...RewardTotalsDataFragment\\n    ...SoundsDataFragment\\n    ...WordsDataFragment\\n  }\\n\"): (typeof documents)[\"\\n  fragment StudentUserDataFragment on Student {\\n    id\\n    backgroundMusicDisabled\\n    books\\n    averageBestPeakQuizResult\\n    abbreviatedName\\n    accent\\n    firstName\\n    selectedYeti\\n    viewedIntroVideo\\n    rosterEnabled\\n    featureFlags {\\n      name\\n      type\\n      value\\n    }\\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/** Type of the feature flag */\nexport enum FeatureFlagType {\n  /** Boolean feature flag, value e.g. \"true\" */\n  Boolean = 'BOOLEAN',\n  /** JSON feature flag, value e.g. \"{\"key\": \"value\"}\" */\n  Json = 'JSON',\n  /** Number feature flag, value e.g. \"123\" */\n  Number = 'NUMBER',\n  /** String feature flag, value e.g. \"hello-world\" */\n  String = 'STRING'\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, backgroundMusicDisabled: boolean, books: Array<string>, averageBestPeakQuizResult?: number | null, abbreviatedName: string, accent: Accent, firstName: string, selectedYeti: string, viewedIntroVideo: boolean, rosterEnabled: boolean, featureFlags: Array<{ __typename: 'FeatureFlag', name: string, type: FeatureFlagType, value: 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, 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, 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, featureFlags: Array<{ __typename: 'FeatureFlag', name: string, type: FeatureFlagType, value: string }>, 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, backgroundMusicDisabled: boolean, books: Array<string>, averageBestPeakQuizResult?: number | null, abbreviatedName: string, accent: Accent, firstName: string, selectedYeti: string, viewedIntroVideo: boolean, rosterEnabled: boolean, featureFlags: Array<{ __typename: 'FeatureFlag', name: string, type: FeatureFlagType, value: string }>, 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, backgroundMusicDisabled: boolean, books: Array<string>, averageBestPeakQuizResult?: number | null, abbreviatedName: string, accent: Accent, firstName: string, selectedYeti: string, viewedIntroVideo: boolean, rosterEnabled: boolean, featureFlags: Array<{ __typename: 'FeatureFlag', name: string, type: FeatureFlagType, value: string }>, 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\":\"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\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"featureFlags\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}}]}},{\"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\":\"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\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"featureFlags\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}}]}},{\"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\":\"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\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"featureFlags\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}}]}},{\"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\":\"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\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"featureFlags\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}}]}},{\"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 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'\nimport type AssignmentsService from 'fast-phonics-client/services/assignments'\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 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 user: UserService\n\n  @service declare assignments: AssignmentsService\n\n  @service\n  declare apollo: ApolloService\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\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  }\n\n  async _setupSession(): Promise<void> {\n    await this.activity.load()\n\n    const response = await this.apollo.query({\n      query: initialAppQueryDocument,\n    })\n\n    if (response.data.student.__typename == 'NotAuthenticatedError') {\n      throw new NotAuthenticatedError(\n        'GraphQL GetInitialAppData query returned NotAuthenticatedError',\n      )\n      // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n    } else if (response.data.student.__typename == 'Student') {\n      // Happy path\n    } else {\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        `GraphQL GetInitialAppData returned unhandled type for student: ${response.data.student.__typename}`,\n      )\n    }\n\n    await Promise.all([\n      this.user.setup(),\n      this.progress.setup(),\n      this.quest.setup(),\n      this.assignments.setup(),\n    ])\n\n    // Start all of the app refresher services\n    this.sessionTracker.start(this.user.student.id)\n    this.releaseChecker.start()\n    this.longSessionKiller.start()\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 UserService from 'fast-phonics-client/services/user'\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 user: UserService\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.user.signIn()\n  }\n}\n","import Route from '@ember/routing/route'\nimport config from 'fast-phonics-client/config/environment'\n\nconst {\n  APP: { logoutUrl, loginWarning },\n} = config\n\ninterface ModelForRoute {\n  warning: string | null\n}\n\nexport default class LogoutRoute extends Route<ModelForRoute> {\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    if (logoutUrl) {\n      const form = document.createElement('form')\n      form.setAttribute('method', 'post')\n      form.setAttribute('action', logoutUrl)\n\n      document.body.appendChild(form)\n\n      form.submit()\n    }\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\nconst SESSION_STORAGE_KEY = 'fastPhonicsClient.debugMode.enabled'\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\n/**\n * Tracks the enabled / disabled state of the app's Debug Mode\n *\n * This service uses an underlying SessionStorage key to persist the\n * state of debug mode, combining that data with app config to decide\n * whether debug mode should be enabled.\n *\n * This computation is then set in the tracked `enabled` property, so\n * consumers can use it in situations where autotracking is required.\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 = this._shouldEnable()\n\n  resetPeakProgressMutation = useMutation(\n    this,\n    resetPeakProgressMutationDocument,\n  )\n\n  resetPlacementTestProgressMutation = useMutation(\n    this,\n    resetPlacementTestProgressMutationDocument,\n  )\n\n  get debugAllowed(): boolean {\n    const client = this.features.getClient()\n    return client.getBooleanValue('debugAllowedFF', false)\n  }\n\n  enable(): void {\n    if (this.debugAllowed) {\n      this._setSessionStorage(true)\n      const shouldEnable = this._shouldEnable()\n      this.enabled = shouldEnable\n    }\n  }\n\n  disable(): void {\n    if (this.debugAllowed) {\n      this._setSessionStorage(false)\n      this.enabled = false\n    }\n  }\n\n  _shouldEnable(): boolean {\n    try {\n      return this.debugAllowed && this._getSessionStorage() === 'true'\n    } catch (error) {\n      console.error(error)\n      return false\n    }\n  }\n\n  _getSessionStorage(): string | null {\n    const sessionStorageItem = sessionStorage.getItem(SESSION_STORAGE_KEY)\n    return sessionStorageItem\n  }\n\n  _setSessionStorage(value: boolean): void {\n    try {\n      sessionStorage.setItem(SESSION_STORAGE_KEY, value ? 'true' : 'false')\n    } catch (err) {\n      console.warn(`Unable to set sessionStorage item \"${SESSION_STORAGE_KEY}\"`)\n      console.error(err)\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 { 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>) {\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 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 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 {\n  createBackendProvider,\n  type FeatureService,\n} from '@blakeelearning/features'\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'\n\nconst {\n  APP: { loginUrl },\n} = config\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    backgroundMusicDisabled\n    books\n    averageBestPeakQuizResult\n    abbreviatedName\n    accent\n    firstName\n    selectedYeti\n    viewedIntroVideo\n    rosterEnabled\n    featureFlags {\n      name\n      type\n      value\n    }\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\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  /**\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  async setup() {\n    await this._studentQuery.current.result()\n    this.backgroundMusicDisabled = this.student.backgroundMusicDisabled\n    this.log.setPerson({ id: this.student.id })\n    await this.features.setup({\n      logger: console,\n      provider: createBackendProvider(this.student.featureFlags),\n    })\n  }\n\n  async fetch() {\n    await this._studentQuery.current.refetch()\n  }\n\n  signIn(location = window.location) {\n    if (loginUrl) location.href = loginUrl\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 client = this.features.getClient()\n    const isCanadaAware = client.getBooleanValue('canadaAwareFF', false)\n\n    if (this.student.accent === Accent.Ca && !isCanadaAware) {\n      return 'us'\n    }\n\n    return this.student.accent.toLowerCase()\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+e58c9074\"});\n          }\n        \n"],"mappings":"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","ignoreList":[]}