{"version":3,"sources":["selectors/currentStoryGame.ts","styles/SocialIcons.module.scss","utils/helperUtils.js","utils/CognitoUtils.js","actions/analytics.ts","styles/PreviewBit.module.scss","api/auth.js","utils/analyticsUtils.js","api/account.js","utils/routes.js","utils/browserUtils.js","utils/referralUtils.js","utils/reducerHelperUtils.ts","styles/DownloadLink.module.css","styles/GenericLogoLander.module.scss","constants/planMetadata.ts","hooks/useIsMobile.tsx","actions/current.ts","api/GoogleTagManager.ts","containers/genai/components/CircularProgress.tsx","hooks/useInfiniteProgress.ts","containers/genai/components/PromptMessage.tsx","containers/genai/components/BuildBBDocCYOA.tsx","api/BBPlatform.ts","containers/genai/components/AnimatedButton.tsx","containers/genai/components/PreviewBit.tsx","containers/genai/components/DownloadBBDocCYOA.tsx","containers/genai/components/GeneratingGameAssetsCYOA.tsx","containers/genai/components/GeneratingGameDataCYOA.tsx","containers/genai/components/LoginPrompt.tsx","utils/CognitoHelper.ts","containers/genai/components/ErrorOutOfCreditsCYOA.tsx","containers/genai/components/InitialCYOAPrompt.tsx","containers/genai/constants/mapPromptToDisplay.tsx","img/LogoBB_Normal.png","actions/cart.ts","api/analytics.js","api/subscription.ts","utils/accountUtils.ts","actions/account.ts","Env.ts","selectors/selectCurrentState.ts","selectors/isLoggingInFromClient.ts","api/mailchimp.js","utils/validationForm.ts","styles/Header.module.scss","reducers/models.ts","containers/genai/constants/bbai.prompts.ts","constants/GenPrompTypes.ts","selectors/selectGAClientId.ts","constants/HeaderItems.ts","components/MenuItem.jsx","components/SocialIcons.tsx","containers/Header.tsx","utils/setCssVariables.js","containers/Footer.tsx","components/AppliedRoute.js","Routes.js","containers/BrowserRoadblock.js","OneTrust.tsx","App.js","reducers/storyGameReducer.ts","utils/StorageVersion.ts","img/BB4_Logo_Wordmark_Wht.png","styles/App.module.scss","styles/AnimatedButton.module.css","actions/storyGame.ts","shared/utility.ts","api/referralprogram.js","actions/auth.ts","api/storyGame.ts","actions/error.ts","styles/PromptMessage.module.css","utils/Log.js","serviceWorker.js","constants/amplify_config.js","reducers/authReducer.ts","reducers/accountReducer.ts","reducers/saleReducer.ts","reducers/errorReducer.ts","reducers/cartReducer.ts","reducers/currentReducer.ts","reducers/monetizationReducer.ts","reducers/index.ts","configureStore.tsx","index.js","styles/Footer.module.scss","selectors/currentUserInfo.ts"],"names":["state","storyGame","module","exports","getRandomColor","color","i","Math","floor","random","formatUNIXTimestamp","timestamp","hyperWalletStyle","dateObject","Date","month","toLocaleString","day","year","concat","getBBVersion","productType","BBVersions","BUILDBOX2","BUILDBOX3","BUILDBOX4","BUILDBOXWORLD","SOUNDBOX","GENERIC","openNewWindow","url","writeToWindow","y","window","outerHeight","screenY","x","outerWidth","screenX","newwindow","open","focus","document","write","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","f","s","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","checkTokenExpiration","_ref","_asyncToGenerator","_callee","token","parseJwt","_yield$parseJwt","exp","_context","JSON","parse","atob","split","getTime","t0","Log","error","_x","apply","arguments","getCognitoUser","_ref2","_callee2","isSocialSignReferral","refCodeId","user","refreshToken","_user$attributes","email","userObject","_context2","sessionStorage","getItem","updateCustomField","setItem","Auth","currentAuthenticatedUser","signInUserSession","accessToken","jwtToken","attributes","referralTrackingId","info","_updateCustomField","_callee10","xsollaTrackingId","_context10","findCookieValue","updateUserAttributes","getUserAttributes","_ref3","_callee3","_context3","reject","fetch","process","headers","mode","cache","body","stringify","AccessToken","response","json","data","newObj","UserAttributes","obj","key","_objectSpread","username","Username","_x2","getRefreshedCognitoTokens","_ref4","_callee4","cognitoClientId","clientSecretHash","_context4","ClientId","AuthFlow","AuthParameters","REFRESH_TOKEN","SECRET_HASH","AuthenticationResult","_x3","_x4","_x5","cognitoLogin","_ref5","_callee5","password","_context5","PASSWORD","USERNAME","_x6","_x7","_x8","_ref6","_callee6","userAttributes","cognitoAttributesList","_context6","Name","Value","status","message","statusText","_x9","_x10","changeCognitoPassword","_ref7","_callee7","previousPassword","newPassword","_context7","PreviousPassword","ProposedPassword","_x11","_x12","_x13","refreshWebAccessToken","_ref8","_callee8","cognitoUser","currentSession","_context8","refreshSession","session","confirmAccount","userName","confirmationCode","API","post","clientId","res","setAnalyticsRegistrationEvent","uuid","deviceType","dispatch","setAnalyticsWorkState","WorkState","Loading","waitForGAClientId","googleClientId","createUserRegistrationRequest","None","setAnalyticsPurchaseEvent","planType","planInterval","product","createUserPurchaseRequest","dataLayer","event","payload","setGAClientId","gaClientId","actions","auth","SET_GA_CLIENT_ID","createUser","referralInfo","Token","newUser","fetchTokensforCode","get","ssoTokenResponse","storeSSOTokens","clientSecret","id","updateUserScreenName","screenName","fetchUserScreenName","getGAClientId","ga","getAll","trackers","trackingId","localStorage","gaTimeElapsed","cb","trace","setTimeout","console","warn","fetchUserPlan","fetchTrialUpsellInfo","endpoint","updateBillingInfo","paymentProcessor","subscriptionId","stripePaymentId","put","fetchUserDevices","userId","updateDeviceStatus","active","macHash","productId","Active","MACHash","ProductId","fetchUserEligibleRenewal","addUserToWaitlist","userInfo","redirectToDownloads","props","version","history","toLowerCase","redirectToPreferredPaymentPlatformForProduct","productName","_referralInfo$Network","undefined","promoCode","ProductType","BB2","BB3","BBBundle","Soundbox","BB4","Network","redirectToXsollaCheckout","redirectToStripeCheckout","redirectToPlans","loc","redirectToThankYouPage","redirectToThankYouRenewalPage","redirectToPreviousPage","route","redirectToLoginPage","redirectToDeviceDownloadPage","currentUser","isMobileOnly","isTablet","redirectToDeviceDownloadPageSimple","redirectToTrialUpsellPage","paymentPlatform","pathname","isUnsupportedBrowser","isIE","getBrowser","isFirefox","isSafari","isChrome","getDeviceType","isBrowser","isMobileDevice","cookieName","foundCookie","cookie","find","row","startsWith","setXsollaCookie","referralCode","date","setTime","daysUntilExp","toUTCString","combineNetworks","networkReports","map","networkName","reports","item","flat","filterReducerAdboxReportItem","reportItems","platformFilter","networkFilter","word","filter","reportItem","platform","ios","android","appLovin","vungle","bundleID","package_name","includes","PLANS_JSON","_PLANS_JSON","BB4Free","PlanIds","PlanType","Free","PlanInterval","Lifetime","productCategory","ProductCategory","planName","analyticsTierName","analyticProductTierNames","discountsAllowed","trialDays","monthlyCost","annualCost","lifetimeCost","yearCommitmentCost","features","downloadUrl","BB4Basic","Basic","Yearly","Plus","stripeId","stripeIdDev","xsollaProductId","xsollaId","xsollaProductIdDev","xsollaIdDev","BB4Pro","Pro","featured","simplifiedFeatures","bannerText","BB4TrialUpsell","_defineProperty","BB4Beginner","Beginner","Monthly","SoundboxFree","SoundboxPro","BB3Free","BB3Monthly","nonGridFeatures","badgeText","BB3Plus","BB3Pro","BB3TrialUpsell","BB3Beginner","BB2Free","BB2Monthly","BB2Plus","BB2Pro","BB2Beginner","BB2TrialUpsell","Bundle","preBundleCost","BBBundleUpsell","PLAN_MAP","useIsMobile","_useState","useState","innerWidth","_useState2","_slicedToArray","width","setWidth","handleWindowSizeChange","useEffect","addEventListener","removeEventListener","isMobile","clientLoginRedirect","getState","_getState","router","currentUrl","_yield$cognitoLogin","RefreshToken","ReferralInfo","Email","urlQuery","websocketPort","showLinkback","provider","destUrl","location","Info","search","log","websocketDomain","now","webLoginRedirect","cart","cartItem","_auth$user","_cartItem","_auth$user2","items","routes","THANK_YOU","setPlanFetchWorkState","workState","current","SET_PLAN_FETCH_STATE","setInvoicesFetchWorkState","SET_INVOICES_FETCH_STATE","setLoginWorkState","loginState","SET_LOGIN_STATE","setPurchaseState","SET_PURCHASE_STATE","setSignUpWorkState","SET_SIGNUP_STATE","setLoggingInfromClient","client","SET_LOGIN_TYPE","setFromSSORedirect","fromSSORedirect","SET_FROM_SSO_REDIRECT","resetCurrentState","RESET_CURRENT_STATE","SET_ANALYTICS_WORKSTATE","setAdSettingsWorkState","adSettingsWorkState","SET_AD_SETTINGS_WORKSTATE","setProductType","SET_PRODUCT_TYPE","setTransactionsFetchWorkState","SET_TRANSACTIONS_FETCH_WORKSTATE","setProjectsFetchWorkState","SET_PROJECTS_FETCH_WORKSTATE","customEventDataLayerTrigger","eventName","otherData","prePendEventName","Env","AOB_ENV","toUpperCase","customEventName","TagManager","UserId","CircularProgress","_ref$progress","progress","React","createElement","Progress","percent","strokeWidth","size","strokeColor","useInfiniteProgress","successReport","setProgress","interval","setInterval","clearInterval","randomeNumberIncrement","PromptMessage","_ref$message","_ref$loading","promptStage","loading","_ref$successReport","component","_ref$error","progressValue","handleDoneTyping","completed","Fragment","Row","className","styles","promptMessage","promptFeedbackBBAI","promptFeedbackUser","Col","xs","sm","md","lg","xl","senderImg","src","pic","alt","TypeAnimation","sequence","wrapper","speed","cursor","BuildBBDocCYOA","bbaiStore","useSelector","currentStoryGame","userStore","currentUserInfo","useDispatch","generateBBDoc","useRef","allAssetsGenerated","generateBBDOC","nextStage","refreshedToken","_bbaiStoryGamePromptO","generatedCYOAGameData","validateToken","createCYOABBDoc","projectId","projectBBDocUrl","debug","bbdocId","setBBWorldBBDocId","cyoaConfirmComplete","setConfirmComplete","setErrorState","title","bbaiStoryGamePromptOptions","promptStepStatus","errPrompt","bbaiStoryGamePromptStepStatus","BUILD_BBDOC","prompt","bbaiUser","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","UUID_REGEX","BBPlatformClientError","_Error","_classCallCheck","_inherits","_createClass","_wrapNativeSuper","BBPlatform4XXError","_Error2","metadata","_this","BBPlatformClientNotAuthorizedError","_Error3","BBPlatformServerError","_BBPlatform4XXError","BBPlatformClient","tokens","injectedToken","isBBWorldMode","isAndroidJSInterface","Android","fetchBBToken","BBWorldAccessToken","ACCESS_TIMEOUT_MS","bbworldModeValue","URLSearchParams","androidJSInterfaceValue","_apiRequest","_props$headers","providedHeaders","bodyJSON","_props$publicEndpoint","publicEndpoint","_props$isAuthRetry","isAuthRetry","responseBody","_message","getUnexpiredTokens","apiRequest","_apiGet","_apiPost","_apiPut","_login","apiPost","UAM_BASE_URL","_getUserInfo","apiGet","_getGenerateAsset","this","BB2D_BASE_URL","_getAssetGenerationProgress","jobId","_generateClipdropAsset","_callee9","_context9","input","output","badEndText","lose","chapterContent","goodEndText","win","badEndImageFilename","goodEndImageFilename","subtitle","mission","titleImageFilename","iconFilename","backgroundMusicFilename","chapters","ii","chapter","description","imageFilename","choicesData","choices","jj","choiceData","choice","choiceDescription","coinsDelta","healthDelta","resultDescription","_emplaceCYOAResource","filename","_createCYOABBDoc","_callee11","gameData","_context11","convertBBAICYOADataToPlatformFormat","_createBBDocRandomFile","_callee12","index","randomTemplateType","_context12","templateType","_x14","_getAssetImages","_callee13","_context13","_x15","_downloadBuildboxClient","_callee14","platformDesired","_context14","navigator","foundMatch","str","some","DownloadPlatforms","WINDOWS","MAC","UNKNOWN","downloadLink","BBDownloadVersion","href","WIN","_x16","_x17","_createUserDownloadsRequest","_callee15","resp","_context15","sendUserDownloadRequestAnalytics","_x18","_x19","_sendUserDownloadRequestAnalytics","_callee16","_this2","_context16","app","_x20","_x21","_sendDownloadAnalytics","_callee17","analyticsResponse","_context17","createUserDownloadsRequest","_x22","_x23","_getUserBBDocs","_callee18","result","_args18","_context18","BB_WORLD_BASE_URL","bits","_getBBDocDownloadLink","_callee19","_context19","test","_x24","bbDocId","BB_DEEP_LINK","replace","_testError","_callee20","_context20","_getSSOToken","_callee21","ssoTokenDTO","_context21","_x25","_cyoaNewId","_callee22","_context22","_cyoaConfirmComplete","_callee23","_context23","_x26","_getCYOABBDocDownloadLink","_callee24","_context24","expiresIn","_x27","_getUserData","_callee25","_context25","_getBalance","_callee26","_context26","_getFirebaseShortenDeepLink","_callee27","bitId","_context27","_x28","AnimatedButton","text","handleClick","isAnimating","_useState3","buttonRadius","Button","animatedButton","shape","style","height","onClick","PreviewBit","css","backgroundImage","titleImage","backgroundPosition","backgroundSize","container","previewBitContainer","bgInfoBase","textInfoTitle","textInfoMission","startImgContainer","startImg","FileType","DownloadBBDocCYOA","bbdoc","setBBDoc","_useState4","dynamicLink","setDynamicLink","getBBDOC","downloadBBDOC","clickEvt","download","MouseEvent","view","bubbles","cancelable","dispatchEvent","remove","deepLink","bbworldBBDocId","getCYOABBDocDownloadLink","getFirebaseShortenDeepLink","setBBDocUrl","handleClickDownloadBBDOC","fileType","openBBWorld","BBDOC","BBCLASSIC_INSTALLER","downloadBuildboxClient","MobileRender","playBit","DesktopRender","textAlign","margin","qrContainer","QRCode","bgColor","QR_BB_WORLD","padding","marginTop","downloadStyles","downloadLinkIcon","fancyText","GeneratingGameAssetsCYOA","genAssetsRan","startTimer","generatedDataSuccess","setGeneratedDataSucesss","generateCYOAGameAssets","skipGenerate","_refreshedToken","newProjectID","jobRequest","promisesImages","chapterInfo","musicUrl","getBalance","balance","cyoaNewId","setProjectId","costInVC","disableSuggestedOptimizations","uuidv4","removeBackground","seed","webCYOASaveCopyToS3Filename","webCYOAProjectId","imageDescription","generateClipdropAsset","emplaceCYOAResource","all","setTitleImage","image","setAllAssetsGenerated","setGeneratedCYOAGameData","GENERATING_GAME_ASSETS","GeneratingGameDataCYOA","generateDataCYOA","userStoryPrompt","bodyGenAI","UserID","genai_question","genai_user_response","genai_skipped","generateCYOAGameData","userPrompt","numberOfChapters","genJob","setPromptStepState","GENERATING_GAME_DATA","cyoaGameAsJson","LoginPrompt","useHistory","handleLogin","generateTokenForSSO","ErrorOutOfCreditsCYOA","setTokenQuery","baseUrl","urltoken","VIEW_PLANS_URL","InitialCYOAPrompt","setUserStoryPrompt","notEnoughCreditsError","setNotEnoughCreditsError","CheckIfUserHasEnoughCredits","gameDataRestartID","userCreditsInfo","INITIAL","defaultUser","mapPromptToDisplay","Component","stage","addPlanToCart","planId","subscriptionPlan","planPurchaseObject","cartId","v4","seatQuantity","ADD_TO_CART","showError","updateSeatQuantity","quantity","UPDATE_SEAT_QUANTITY","customerId","plan","updateSubscription","_updateSubscription","stripePlanId","totalSeats","totalCost","saleCode","params","userEmail","getProductEndpoint","getUserSubscriptionProviders","_getUserSubscriptionProviders","renewSubscription","_renewSubscription","renewPaymentBody","accountlessUpdateSubscription","_accountlessUpdateSubscription","mapToFreePlan","plans","devices","plansArray","entries","billing","brand","expiryMonth","expiryYear","lastFour","planDetail","planDevices","billingInterval","nextPaymentDate","paymentAmount","billingInfo","selectedPlanSpecs","supportedModules","mapSupportedModules","availableWorlds","worlds","availableSections","sections","brandedSplashScreen","isCustomSplashScreenAllowed","upgradeAvailable","isPlanUpgradeAvailable","subscriptionTier","modules","supportedMod","purchasePlan","purchaseCost","_getState2","_auth$user3","sessionProductType","accountlessPurchaseEmail","analyticProductTypes","Success","renewPlan","_getState3","_getState4","_auth$user4","_auth$user5","_auth$user6","subscriptionUpdateResponse","upcomingInvoice","account","SET_UPCOMING_INVOICE","fetchAccountData","_getState5","planData","eligibleRenewal","planInfo","bb2","bb3","bb4","bbbundle","soundbox","t1","t2","SET_CURRENT_PLANS","setEligibleRenewal","t3","updateBilling","paymentId","fetchPlanProvider","userPlanProviders","plansAndProviders","BB2Plan","BB3Plan","BB4Plan","SoundboxPlan","planProviders","SET_PLAN_PROVIDERS","SET_USER_PLANS","clearAccount","CLEAR_ACCOUNT","SET_ELIGIBLE_RENEWAL","getRequiredEnvVar","envVarName","defaultVal","varName","val","getEnvVarForEnvironment","overrideEnvVarName","prodValue","devValue","localValue","BBAI_BASE_URL","ASSET_MANAGER_BASE_URL","LEARN_MORE_URL","MY_ACCOUNT_URL","BB4_DOWNLOAD_LINK_WIN","BB4_DOWNLOAD_LINK_MAC","BB3_DOWNLOAD_LINK_WIN","BB3_DOWNLOAD_LINK_MAC","BB2_DOWNLOAD_LINK_WIN","BB2_DOWNLOAD_LINK_MAC","SOUNDBOX_DOWNLOAD_LINK_WIN","SOUNDBOX_DOWNLOAD_LINK_MAC","APP_CLIENT_ID","GTM_ID","strVal","toString","numVal","parseInt","getRequiredIntEnvVal","DEBUG_MODE","getRequiredBoolEnvVal","CYOA_OPENAI_MODEL","CYOA_OPENAI_TEMPERATURE","parseFloat","getRequiredFloatEnvVal","createSelector","currentState","LoginClientType","Client","md5Hash","emailAddress","require","md5","sendDownloadEmail","hashedEmail","addMailchimpAudienceTags","_getMailchimpTag","GENERIC_BB_TAGS","getMailchimpTag","isTagActive","mailchimpTagName","validateLength","validateEmail","String","match","LoginState","stringToProductCategory","PaymentPlatforms","AdPaymentDescription","HWAccountStatus","HWVerificationStatus","PlanNameToPlanIds","GAME_DATA","CLAIM_LOGIN_SKIP","COMPLETE","COMPLETE_MOBILE","DOWNLOAD_BBDOC","CLAIM_ACCOUNT","APP","headerItems","externalURL","profileHeaderItems","MenuItem","menuOpenState","toggleMenuState","windowWidth","setWindowWidth","isDesktop","menuItem","toggleTab","path","activeTab","handleWindowResize","submenus","toggleMenu","stopPropagation","dropDown","menuTitleContainer","Link","to","target","rel","parentMenuTitle","subMenu","FontAwesomeIcon","menuIcon","icon","faAngleUp","faAngleDown","dropDownContent","classnames","hidden","submenu","link","SocialIcons","socialIconsContainer","socialLink","Header","useLocation","useContext","UserContext","setActiveTab","_useState5","_useState6","toggleDropdown","setToggleDropdown","color1","color2","_onLoad","handleSignIn","handleLogout","_handleLogout","logout","renderMenuItems","headerItemsArray","headerItem","onLoad","header","logoUrl","imgBuildbox4Logo","logoWrapper","logo","logoElement","socialIcons","linkListDesktop","userNameLetter","background","variableObj","documentElement","setProperty","profileBtn","profileDropdown","NavLink","activeClassName","selected","signInContainer","button","LOGIN","renderAuthState","_currentUser$referral","_currentUser$referral2","getStartedButton","menuIconContainer","faTimes","faBars","animStyle","overflow","transition","maxHeight","linkHeaderItems","gridTemplateRows","linkListMobile","listContainer","loginNavLink","signInWrapper","getMobileMenu","Footer","footer","linksContainer","linksWrapper","linkItems","img","action","formInputs","required","placeholder","interestsList","htmlFor","readOnly","display","position","left","aria-hidden","linkItemsSocial","socialText","termsContainer","AppliedRoute","C","appProps","rest","_objectWithoutProperties","_excluded","scrollTo","Route","assign","render","Suspense","fallback","NewBB4Home","lazy","BB4Product","BB3Product","BB2Product","SoundboxProduct","Plans","NotFound","Downloads","BillingFormStripe","BillingFormXsolla","AuthUI","ConfirmAccount","ThankYou","Login","Loader","ClientUpgradeRedirect","ClientLoginRedirect","ClientLogoutRedirect","ClientPostmessageConnection","ClientGoogleLogin","ClientFacebookLogin","ClientAppleLogin","ClientDeeplinkLogin","ClientAwaitingFacebookLogin","ClientAwaitingAppleLogin","ClientAwaitingGoogleLogin","ReportAnIssue","ContactSupport","NewFeature","FeatureThankYou","FeaturePostMessage","UserAccount","BuildBoxWorld","ReferralLandingPage","GenAIPrompt","RenewalThankYou","BB4AlphaPreviewNotes","BB4CheckoutRedirect","BB2CheckoutRedirect","UpsellAfterTrial","BB2Campaign","Routes","Switch","SPLASH","exact","PURCHASE_PLANS","DOWNLOADS","CHECKOUT_STRIPE","CHECKOUT_XSOLLA","UPSELL_AFTER_TRIAL","REDIRECT","CONFIRM_ACCOUNT","ERROR","LOADING","CLIENT_REDIRECT","CLIENT_LOGOUT_REDIRECT","CLIENT_POSTMESSAGE_CONNECTION","CLIENT_GOOGLE_LOGIN","CLIENT_FACEBOOK_LOGIN","CLIENT_APPLE_LOGIN","CLIENT_DEEPLINK_LOGIN","CLIENT_AWAITING_GOOGLE_LOGIN","CLIENT_AWAITING_FACEBOOK_LOGIN","CLIENT_AWAITING_APPLE_LOGIN","REPORT_AN_ISSUE","CONTACT_SUPPORT","SUBMIT_NEW_FEATURE","REPORTING_THANK_YOU","FEATURE_POST_MESSAGE","BB4_PRODUCT","BB3_PRODUCT","BB2_PRODUCT","BB2_LANDING","SOUNDBOX_PRODUCT","USER_ACCOUNT","USER_SUBSCRIPTION","USER_AD_MANAGEMENT","REFERRAL_LANDING_PAGE","RENEWAL_THANK_YOU","STORY_GAME","BuildBoxWorldProduct","STORY_GAME_GENERATE","BB4_ALPHA_PREVIEW_NOTES","BB4_CHECKOUT_REDIRECT","BB2_CHECKOUT_REDIRECT","APPLE_PAY_SITE_VERIFICATION","Redirect","from","RoadblockUI","BBLogo","BrowserRoadblock","children","isDeprecated","setRoadblock","OneTrust","createContext","withRouter","authError","setAuthError","isAuthenticated","setIsAuthenticated","errorState","clientLoginState","isLoggingInFromClient","selectGoogleClientId","selectGAClientId","referralShortCode","URL","QueryString","dispatchError","handler","login","Hub","listen","UserContextValue","hideHeaderAndFooter","App","ToastContainer","autoClose","Provider","CYOAProjectType","storeVersion","storageKey","BBAI_STORE_VERSION_KEY","storedVersionStr","storedVersion","removeItem","storeStorageVersion","initialStoryGameState","projectType","isLoading","isGuest","bbDocHistory","showAuthFrame","isAuthed","createAccountMode","bbDocUrl","storyGameReducer","_mapPromptToDisplay$b","SET_LOADING","SET_ERROR","SET_PROMPT_STEP","stepStatus","SET_USER_STORY_PROMPT","SET_GENERATED_STORY_GAME_DATA","SET_PROJECT_ID","SET_ALL_ASSETS_GENERATED","SET_BBWORLD_BBDOC_ID","SET_BBDOC_HISTORY","SET_GUEST","NEXT_STAGE","currentStage","SET_STAGE","SET_SHOW_AUTH_FRAME","SET_IS_AUTH","SET_CREATE_ACCOUNT_MODE","SET_USER_ID","SET_BBDOC_URL","START_OVER","SET_RETRY_ID","SET_CONFIRM_COMPLETE","GET_COMPONENTS_ARRAY","SET_TITLE_IMAGE","setStage","startOver","setRetryID","newComponentArray","_i","_Object$entries","_Object$entries$_i","downloadPaths","sendReferralTrackingId","_e$response","_e$response$data","_e$response$data$meta","cognitoUserInfo","_response$payload","userCreated","locale","userScreenName","tokenObject","setUserScreenName","Id","country","isNewUser","setUser","setAuthTokens","handleNewUserRegistration","setMailchimpMarketingTags","Unauthorized","ServerError","previousRoute","signOut","clearUser","clear","ssoTokenLogin","goToPlansPage","planView","setCognitoClientInfo","_sessionStorage$getIt","_auth$authTokens","tokenIsExpired","authTokens","refreshTokens","newToken","newError","handleUpdateUserScreenName","newScreenName","errorcode","SET_COGNITO_CLIENT_INFO","SET_SCREEN_NAME","SET_AUTH_TOKENS","SET_USER","CLEAR_USER","setAccountlessPurchaseEmail","actionBody","SET_ACCOUNTLESS_PURCHASE_EMAIL","_ref15","_x34","_ref16","_x35","_x36","_ref17","_x37","_x38","_ref19","_x40","_ref20","_x41","_x42","_ref21","userInput","_args21","_x43","_x44","getAllSharedBits","_ref22","offset","_args22","toast","toastId","onClose","clearError","dismiss","HIDE_ERROR","SHOW_ERROR","COLOURS","level","source","namespace","createDebug","enabled","generateMessage","Boolean","hostname","aws_config","s3","REGION","apiGateway","analyticsGateway","plansGateway","adManagerGateway","assetManagementGateway","bbworldGetway","pseudo","REACT_APP_PSEUDO_URL","bb2Gateway","bbaiGateway","assetMangerGateway","cognito","USER_POOL_ID","COOKIE_DOMAIN","REACT_APP_COGNITO_COOKIE_DOMAIN","oauth","domain","scope","redirectSignIn","redirectSignOut","responseType","initialState","fromBBClient","authReducer","subscriptions","invoices","bundleSubscription","accountReducer","_toConsumableArray","SET_INVOICES","SET_BUNDLE_SUBSCRIPTION","houseAdCampaign","website_homepage","website_pricing","website_stripe","saleData","saleContext","showSaleUI","showSalesLoader","discountedCost","saleJustEnded","saleState","saleReducer","sale","SET_SALE_STATE","SET_SALE_DATA","SET_SALE_UI","SET_SALE_LOADER","SET_DISCOUNTED_COST","SET_TOTAL_COST","RESET_SALE_STATE","SET_SALE_JUST_ENDED","CLEAR_SALE_DATA","SET_HOUSE_AD_CAMPAIGN_HOMEPAGE","houseAdCampaignForHomepage","SET_HOUSE_AD_CAMPAIGN_PRICING","houseAdCampaignForPricing","SET_HOUSE_AD_CAMPAIGN_STRIPE","houseAdCampaignForStripe","errorReducer","cartReducer","REMOVE_FROM_CART","filteredCart","updatedCart","seats","CLEAR_CART","Web","analytics","signup","purchase","planFetch","billingInfoFetch","invoicesFetch","transactionsFetch","projectsFetch","adSettings","userState","currentReducer","SET_BILLING_INFO_FETCH_STATE","UNREGISTERED","verificationStatus","REQUIRED","accountInfo","firstName","lastName","dateOfBirth","paymentHistory","transactions","projects","games","adboxReport","monthToDateEarnings","earnings","NaN","filters","networks","os","adboxDailyMetrics","dailyMetrics","monetizationReducer","monetization","SET_HW_ACCOUNT_STATE","accountState","SET_HW_ACCOUNT_INFO","SET_PAYMENT_TRANSACTIONS","SET_PROJECTS","SET_MONTH_TO_DATE_EARNINGS","SET_ADBOX_REPORT","SET_NETWORK_FILTER","SET_BUNDLE_FILTER_WORD","bundleFilterWord","SET_PLATFORM_OS_FILTER","SET_FILTERED_TABLE","SET_DAILY_METRICS","sessionStorageStoryGamePersistConfig","storage","createBrowserHistory","currentBrowser","persistConfig","whitelist","blacklist","storageSession","stripePromise","loadStripe","Amplify","configure","mandatorySignIn","region","userPoolId","userPoolWebClientId","Storage","bucket","BUCKET","endpoints","_configureStore","middlewares","routerMiddleware","thunk","enhancers","applyMiddleware","composeEnhancer","compose","reducers","combineReducers","connectRouter","persistReducer","persistedReducer","store","createStore","persistor","persistStore","configureStore","ReactDOM","PersistGate","ConnectedRouter","Elements","stripe","getElementById","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.31d74be2.chunk.js","sourcesContent":["import { IStoryGameState } from \"../reducers/storyGameReducer\";\n\nexport default (state: { storyGame: IStoryGameState}) => {\n  return state.storyGame;\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"socialLinkVertical\":\"SocialIcons_socialLinkVertical__1Mihf\",\"socialIconsContainer\":\"SocialIcons_socialIconsContainer__2hQpX\",\"socialLink\":\"SocialIcons_socialLink__k2KWr\"};","import { BBVersions } from \"../reducers/models\";\n\nexport function getRandomColor() {\n  var letters = \"0123456789ABCDEF\";\n  var color = \"#\";\n  for (var i = 0; i < 6; i++) {\n    color += letters[Math.floor(Math.random() * 16)];\n  }\n  return color;\n}\n\nexport function formatUNIXTimestamp(timestamp, hyperWalletStyle) {\n  if (timestamp) {\n    const dateObject = new Date(timestamp);\n    let month = dateObject.toLocaleString(\"en-US\", { month: \"short\" });\n    let day = dateObject.toLocaleString(\"en-US\", { day: \"numeric\" });\n    let year = dateObject.toLocaleString(\"en-US\", { year: \"numeric\" });\n    if (hyperWalletStyle) {\n      month = dateObject.toLocaleString(\"en-US\", { month: \"2-digit\" });\n      day = dateObject.toLocaleString(\"en-US\", { day: \"2-digit\" });\n      year = dateObject.toLocaleString(\"en-US\", { year: \"numeric\" });\n\n      return `${year}-${month}-${day}`;\n    }\n    return `${month} ${day}, ${year}`;\n  }\n  return \"\";\n}\n\nexport function getBBVersion(productType) {\n  switch (productType) {\n    case \"BB2\":\n    case \"Buildbox Classic\":\n      return BBVersions.BUILDBOX2;\n    case \"BB3\":\n    case \"Buildbox 3\":\n      return BBVersions.BUILDBOX3;\n    case \"BB4\":\n    case \"Buildbox 4\":\n      return BBVersions.BUILDBOX4;\n    case \"BBWorld\":\n      return BBVersions.BUILDBOXWORLD;\n    case \"Soundbox\":\n      return BBVersions.SOUNDBOX;\n    case \"generic\":\n      return BBVersions.GENERIC;\n    default:\n      return BBVersions.GENERIC;\n  }\n}\n\nexport function openNewWindow(url, writeToWindow) {\n  var y = window.outerHeight / 2 + window.screenY - 500 / 2;\n  var x = window.outerWidth / 2 + window.screenX - 500 / 2;\n  let newwindow = window.open(\n    url,\n    \"\",\n    `height=1000,width=1000, top=${y},left=${x}`\n  );\n  if (window.focus) {\n    if (writeToWindow) {\n      newwindow.document.write(\n        `\n        <iframe src=\"https://docs.google.com/gview?url=${url}&embedded=true\" style=\"width:1000px; height:1000px;\" frameborder=\"0\"></iframe>\n  `\n      );\n    }\n    newwindow.focus();\n  }\n  return false;\n}\n","import Log from \"./Log\";\nimport Auth from \"@aws-amplify/auth\";\nimport API from \"@aws-amplify/api\";\nimport { findCookieValue } from \"./referralUtils\";\n\nexport const checkTokenExpiration = async (token) => {\n  if (token) {\n    try {\n      const parseJwt = JSON.parse(atob(token.split(\".\")[1]));\n\n      const { exp } = await parseJwt;\n\n      // get current epoch time\n      const currentTimeStamp = new Date().getTime() / 1000;\n\n      if (currentTimeStamp >= exp) {\n        return true;\n      } else {\n        return false;\n      }\n    } catch (error) {\n      Log.error(error, \"error caught in checkTokenExpiration\");\n      return null;\n    }\n  }\n};\n\nexport const getCognitoUser = async () => {\n  try {\n    const isSocialSignReferral = sessionStorage.getItem(\"socialSignReferral\");\n\n    let refCodeId = null;\n\n    if (isSocialSignReferral === \"true\") {\n      refCodeId = await updateCustomField();\n      sessionStorage.setItem(\"socialSignReferral\", \"\");\n    }\n\n    const user = await Auth.currentAuthenticatedUser();\n    const token = user.signInUserSession.accessToken.jwtToken;\n    const refreshToken = user.signInUserSession.refreshToken.token;\n    const { email, name } = user.attributes;\n    refCodeId =\n      refCodeId === null\n        ? user.attributes[\"custom:referralTrackingId\"]\n        : refCodeId;\n\n    const userObject = {\n      email,\n      name,\n      accessToken: token,\n      refreshToken,\n      referralTrackingId: refCodeId,\n    };\n    return userObject;\n  } catch (e) {\n    Log.info(\"error getting cognito user\", e);\n  }\n};\n\nasync function updateCustomField() {\n  let xsollaTrackingId = findCookieValue(\"tracking_id=\");\n\n  Log.info(\"checking for xsollaTrakcingId: \", xsollaTrackingId);\n\n  if (xsollaTrackingId) {\n    const user = await Auth.currentAuthenticatedUser();\n\n    Log.info(\"adding custom attr -> \");\n\n    try {\n      await Auth.updateUserAttributes(user, {\n        \"custom:referralTrackingId\": xsollaTrackingId,\n      });\n    } catch (err) {\n      Log.info(\" failed adding custom attr-> :( \", err);\n    }\n\n    Log.info(\n      \"added custom attr -> custom:referralTrackingId \",\n\n      xsollaTrackingId\n    );\n\n    return xsollaTrackingId;\n  } else {\n    return null;\n  }\n}\n\nexport const getUserAttributes = async (accessToken) => {\n  return new Promise((resolve, reject) => {\n    fetch(\n      `https://cognito-idp.${process.env.REACT_APP_REGION}.amazonaws.com/`,\n      {\n        headers: {\n          \"X-Amz-Target\": \"AWSCognitoIdentityProviderService.GetUser\",\n          \"Content-Type\": \"application/x-amz-json-1.1\",\n        },\n        mode: \"cors\",\n        cache: \"no-cache\",\n        method: \"POST\",\n        body: JSON.stringify({\n          AccessToken: accessToken,\n        }),\n      }\n    )\n      .then((response) => response.json())\n      .then((data) => {\n        Log.info(\"data from getUserAttributes\", data);\n        const newObj = {};\n\n        data.UserAttributes.forEach((obj) => {\n          const values = Object.values(obj);\n          const key = values[0];\n          newObj[key] = values[1];\n        });\n\n        resolve({ username: data.Username, ...newObj });\n      })\n      .catch((error) => {\n        Log.error(error, \"error caught in while calling getUserAttributes\");\n        reject(error);\n      });\n  });\n};\n\nexport const getRefreshedCognitoTokens = async (\n  refreshToken,\n  cognitoClientId,\n  clientSecretHash\n) => {\n  return new Promise((resolve, reject) => {\n    fetch(\n      `https://cognito-idp.${process.env.REACT_APP_REGION}.amazonaws.com/`,\n      {\n        headers: {\n          \"X-Amz-Target\": \"AWSCognitoIdentityProviderService.InitiateAuth\",\n          \"Content-Type\": \"application/x-amz-json-1.1\",\n        },\n        mode: \"cors\",\n        cache: \"no-cache\",\n        method: \"POST\",\n        body: JSON.stringify({\n          ClientId: cognitoClientId,\n          AuthFlow: \"REFRESH_TOKEN_AUTH\",\n          AuthParameters: {\n            REFRESH_TOKEN: refreshToken,\n            SECRET_HASH: clientSecretHash, // add client secret if there is one\n          },\n        }),\n      }\n    )\n      .then((response) => response.json())\n      .then((data) => {\n        Log.info(\"data from get refresh cognito tokens\", data);\n\n        if (!data.AuthenticationResult) {\n          reject(data);\n        }\n\n        resolve(data.AuthenticationResult.AccessToken);\n      })\n      .catch((error) => {\n        Log.error(error, \"error caught in while calling REFRESH_TOKEN_AUTH\");\n        reject(error);\n      });\n  });\n};\nexport const cognitoLogin = async (username, password, cognitoClientId) => {\n  return new Promise((resolve, reject) => {\n    fetch(\n      `https://cognito-idp.${process.env.REACT_APP_REGION}.amazonaws.com/`,\n      {\n        headers: {\n          \"X-Amz-Target\": \"AWSCognitoIdentityProviderService.InitiateAuth\",\n          \"Content-Type\": \"application/x-amz-json-1.1\",\n        },\n        mode: \"cors\",\n        cache: \"no-cache\",\n        method: \"POST\",\n        body: JSON.stringify({\n          ClientId: process.env.REACT_APP_COGNITO_APP_CLIENT_ID,\n          AuthFlow: \"USER_PASSWORD_AUTH\",\n          AuthParameters: {\n            PASSWORD: password,\n            USERNAME: username,\n          },\n        }),\n      }\n    )\n      .then((response) => response.json())\n      .then((data) => {\n        Log.info(\"data from cognitoLogin\", data);\n\n        if (!data.AuthenticationResult) {\n          reject(data);\n        }\n        resolve(data.AuthenticationResult);\n      })\n      .catch((error) => {\n        Log.error(error, \"error caught in while calling USER_PASSWORD_AUTH\");\n        reject(error);\n      });\n  });\n};\n\nexport const updateUserAttributes = async (accessToken, userAttributes) => {\n  const cognitoAttributesList = [];\n  for (const key in userAttributes) {\n    cognitoAttributesList.push({\n      Name: key,\n      Value: userAttributes[key],\n    });\n  }\n\n  return new Promise((resolve, reject) => {\n    fetch(\n      `https://cognito-idp.${process.env.REACT_APP_REGION}.amazonaws.com/`,\n      {\n        headers: {\n          \"X-Amz-Target\":\n            \"AWSCognitoIdentityProviderService.UpdateUserAttributes\",\n          \"Content-Type\": \"application/x-amz-json-1.1\",\n        },\n        mode: \"cors\",\n        cache: \"no-cache\",\n        method: \"POST\",\n        body: JSON.stringify({\n          AccessToken: accessToken,\n          UserAttributes: cognitoAttributesList,\n        }),\n      }\n    )\n      .then((response) => {\n        if (response.status !== 200) {\n          throw new Error({\n            status: response.status,\n            message: response.statusText,\n          });\n        }\n        return response.json();\n      })\n      .then((data) => {\n        resolve({ status: 200, body: cognitoAttributesList });\n      })\n      .catch((error) => {\n        Log.error(error, \"error caught in while calling updateUserAttributes\");\n        reject(error);\n      });\n  });\n};\n\nexport const changeCognitoPassword = async (\n  accessToken,\n  previousPassword,\n  newPassword\n) => {\n  return new Promise((resolve, reject) => {\n    fetch(\n      `https://cognito-idp.${process.env.REACT_APP_REGION}.amazonaws.com/`,\n      {\n        headers: {\n          \"X-Amz-Target\": \"AWSCognitoIdentityProviderService.ChangePassword\",\n          \"Content-Type\": \"application/x-amz-json-1.1\",\n        },\n        mode: \"cors\",\n        cache: \"no-cache\",\n        method: \"POST\",\n        body: JSON.stringify({\n          AccessToken: accessToken,\n          PreviousPassword: previousPassword,\n          ProposedPassword: newPassword,\n        }),\n      }\n    )\n      .then((response) => {\n        if (response.status !== 200) {\n          throw new Error({\n            status: response.status,\n            message: response.statusText,\n          });\n        }\n        return response.json();\n      })\n      .then((data) => {\n        resolve({ status: 200, body: \"password successfully changed!\" });\n      })\n      .catch((error) => {\n        Log.error(error, \"error caught in while calling changeCognitoPassword\");\n        reject(error);\n      });\n  });\n};\nexport const refreshWebAccessToken = async () => {\n  Log.info(\"\", \"refreshWebAccessToken called\");\n\n  const cognitoUser = await Auth.currentAuthenticatedUser();\n  const currentSession = await Auth.currentSession();\n\n  return new Promise((resolve, reject) => {\n    cognitoUser.refreshSession(\n      currentSession.refreshToken,\n      (error, session) => {\n        if (error) {\n          Log.error(error, \"error caught in while refreshing web client token\");\n          reject(error);\n        }\n        const accessToken = session.accessToken.jwtToken;\n        //console.log(\"accessToken\", accessToken);\n\n        resolve(accessToken);\n      }\n    );\n  });\n};\n\nexport const confirmAccount = (cognitoClientId, userName, confirmationCode) => {\n  return new Promise((resolve, reject) => {\n    API.post(\"userAccountManagementURL\", \"/confirmCognitoAccount\", {\n      body: {\n        clientId: cognitoClientId,\n        userName: userName,\n        confirmationCode: confirmationCode,\n      },\n      headers: {\n        \"Content-Type\": \"application/json\",\n      },\n      response: true,\n    })\n      .then((res) => {\n        if (res.status === 200) {\n          resolve(res.data);\n        }\n      })\n      .catch((error) => {\n        reject(error);\n      });\n  });\n};\n\nexport const getUserSessionTokens = async () => {\n  try {\n    const currentSession = await Auth.currentSession();\n\n    if (currentSession) {\n      return true;\n    }\n\n    return false;\n  } catch (e) {\n    Log.error(e, \"error: getUserSessionTokens\");\n    throw e;\n  }\n};\n","import { WorkState } from \"./../reducers/models\";\nimport { DefaultThunkAction } from \"./shared\";\nimport { AnyAction } from \"redux\";\nimport actions from \"../constants/actions.json\";\nimport { waitForGAClientId } from \"../utils/analyticsUtils\";\nimport {\n  createUserRegistrationRequest,\n  createUserPurchaseRequest,\n} from \"../api/analytics\";\nimport { setAnalyticsWorkState } from \"./current\";\nimport Log from \"../utils/Log\";\n\nexport function setAnalyticsRegistrationEvent(\n  email: string,\n  uuid: string,\n  clientId: string | null,\n  productType: string | null,\n  deviceType: string | null\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch) => {\n    dispatch(setAnalyticsWorkState(WorkState.Loading));\n\n    try {\n      await waitForGAClientId((googleClientId: string | null) =>\n        createUserRegistrationRequest(\n          email,\n          googleClientId,\n          uuid,\n          productType,\n          deviceType\n        )\n      );\n      dispatch(setAnalyticsWorkState(WorkState.None));\n    } catch (error:any) {\n      Log.error(error, \"error caught in setAnalyticsRegistrationEvent\");\n      dispatch(setAnalyticsWorkState(WorkState.Error));\n      throw error;\n    }\n  };\n}\n\nexport function setAnalyticsPurchaseEvent(\n  email: string,\n  uuid: string,\n  planType: string,\n  planInterval: string,\n  product: string\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch) => {\n    dispatch(setAnalyticsWorkState(WorkState.Loading));\n\n    try {\n      await waitForGAClientId((googleClientId: string | null) =>\n        createUserPurchaseRequest(\n          email,\n          googleClientId,\n          uuid,\n          planType,\n          planInterval,\n          product\n        )\n      );\n\n      const dataLayer = (window.dataLayer = window.dataLayer || []);\n      dataLayer.push({\n        event: \"successfulPayment\",\n        payload: true,\n      });\n      dispatch(setAnalyticsWorkState(WorkState.None));\n    } catch (error:any) {\n      Log.error(error, \"error caught in setAnalyticsPurchaseEvent\");\n      dispatch(setAnalyticsWorkState(WorkState.Error));\n\n      throw error;\n    }\n  };\n}\n\nexport function setGAClientId(gaClientId: string | null): AnyAction {\n  return {\n    type: actions.auth.SET_GA_CLIENT_ID,\n    gaClientId,\n  };\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"PreviewBit_container__C5M9e\",\"previewBitContainer\":\"PreviewBit_previewBitContainer__20S7h\",\"bgInfoBase\":\"PreviewBit_bgInfoBase__TRj2c\",\"textInfoTitle\":\"PreviewBit_textInfoTitle__3Fdee\",\"textInfoMission\":\"PreviewBit_textInfoMission__2-wgm\",\"startImgContainer\":\"PreviewBit_startImgContainer__3lTWT\",\"startImg\":\"PreviewBit_startImg__3ekQi\"};","import API from \"@aws-amplify/api\";\nimport Log from \"../utils/Log\";\n\n/**\n * creates user and returns active subscription information\n * @param {token}: string\n * @param {email}: string\n * @param {referralInfo}: object, network (string) and info (string)\n */\n\nexport const createUser = (token, referralInfo) => {\n  return new Promise((resolve, reject) => {\n    API.post(\"userAccountManagementURL\", \"/webclientlogin\", {\n      body: {\n        referralInfo: referralInfo,\n      },\n      headers: {\n        \"Access-Control-Allow-Origin\": \"*\",\n        \"Content-Type\": \"application/json\",\n        Token: token,\n      },\n      response: true, //needs this to get the whole response object\n    })\n      .then((res) => {\n        //200 indicates a returning user\n\n        if (res.status === 200) {\n          resolve({ ...res.data, newUser: false });\n        }\n        //201 indicates a new registration so we need to hit GA\n        else if (res.status === 201) {\n          resolve({ ...res.data, newUser: true });\n          //send registration event\n          window.dataLayer.push({\n            event: \"account-creation\",\n          });\n        }\n      })\n      .catch((error) => {\n        if (error.response) {\n          reject(error.response.data.error);\n        }\n      });\n  });\n};\n\n/**\n * Returns object containing information about BB client user\n * @param {token}: string\n * \n    userId: cognitoSSO.UserId,\n    userName: user.CognitoUserName,\n    email: email,\n    clientId: cognitoSSO.ClientId,\n    clientSecret: cognitoSSO.ClientSecret\n    accessToken: cognitoSSO.AccessToken,\n    refreshToken: cognitoSSO.RefreshToken\n    username: user.CognitoUserName\n */\n\nexport const fetchTokensforCode = (token) => {\n  return new Promise((resolve, reject) => {\n    API.get(`userAccountManagementURL`, `/tokenLogin?token=${token}`, {\n      headers: {\n        \"Content-Type\": \"application/json\",\n      },\n      response: true,\n    })\n      .then((res) => {\n        if (res.status === 200) {\n          const ssoTokenResponse = res.data;\n\n          Log.info(ssoTokenResponse, \"got sso token response\");\n\n          resolve(ssoTokenResponse);\n        }\n      })\n      .catch((error) => {\n        Log.error(error, \"error caught in fetchTokensforCode\");\n\n        reject(error);\n      });\n  });\n};\n\n/**\n * Generates an SSO token as an id in the DB for client retrieval\n *  * @response id: string\n */\nexport const storeSSOTokens = (\n  clientId,\n  clientSecret,\n  accessToken,\n  refreshToken\n) => {\n  return new Promise((resolve, reject) => {\n    API.post(`userAccountManagementURL`, \"/ssoTokens\", {\n      body: {\n        clientId: clientId,\n        clientSecret: clientSecret,\n        accessToken: accessToken,\n        refreshToken: refreshToken,\n      },\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Token: accessToken,\n      },\n      response: true,\n    })\n      .then((res) => {\n        if (res.status === 200 || res.status === 201) {\n          const ssoTokenResponse = res.data.payload;\n\n          Log.info(ssoTokenResponse, \"storeSSOTokens response\");\n\n          const { id } = ssoTokenResponse;\n\n          resolve(id);\n        }\n      })\n      .catch((error) => {\n        Log.error(error, \"error caught in storeSSOTokens\");\n\n        reject(error);\n      });\n  });\n};\n\nexport const updateUserScreenName = (accessToken, screenName) => {\n  return new Promise((resolve, reject) => {\n    API.post(`bbworldUrl`, \"/account/screenname\", {\n      body: {\n        screenName: screenName,\n      },\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Token: accessToken,\n      },\n      response: true,\n    })\n      .then((res) => {\n        resolve(res.data.payload.screenName);\n      })\n      .catch((error) => {\n        Log.error(error, \"error caught getting user screen name\");\n        reject(error.response.data);\n      });\n  });\n};\n\nexport const fetchUserScreenName = (accessToken) => {\n  return new Promise((resolve, reject) => {\n    API.get(`bbworldUrl`, \"/account\", {\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Token: accessToken,\n      },\n      response: true,\n    })\n      .then((res) => {\n        resolve(res.data.screenName);\n      })\n      .catch((error) => {\n        Log.error(error, \"error caught getting user screen name\");\n        reject(error.response);\n      });\n  });\n};\n","import Log from \"./Log\";\n\n//used to grab google client id to track users for analytic events\n\nexport const getGAClientId = () => {\n  return new Promise((resolve, reject) => {\n    if (\"ga\" in window && window.ga && window.ga.getAll) {\n      try {\n        const trackers = window.ga.getAll();\n        const trackingId = window.ga.getAll()[0].get(\"trackingId\");\n        for (let i = 0; i < trackers.length; i++) {\n          if (trackers[i].get(\"trackingId\") === trackingId) {\n            const googleClientId = trackers[i].get(\"clientId\");\n            Log.info(googleClientId, \"got GA client id\");\n\n            localStorage.setItem(\"googleClientId\", googleClientId);\n            resolve(googleClientId);\n          }\n        }\n      } catch (e) {\n        resolve(null);\n      }\n    } else {\n      resolve(null);\n    }\n  });\n};\n\nlet gaCheckInterval = 100; // milliseconds\nlet gaTimeElapsed = -1 * gaCheckInterval; // first check comes for free\nlet gaMaxWait = 10000; // milliseconds\nexport const waitForGAClientId = async (cb) => {\n  try {\n    const googleClientId = await getGAClientId();\n\n    if (!googleClientId) {\n      gaTimeElapsed += gaCheckInterval;\n      if (gaTimeElapsed >= gaMaxWait) {\n        Log.trace(\"waited too long for GA client id\");\n        cb(null);\n      } else {\n        setTimeout(() => waitForGAClientId(cb), gaCheckInterval);\n      }\n    } else {\n      await cb(googleClientId);\n    }\n  } catch (e) {\n    console.warn(e, \"waitforGAclientID()\");\n  }\n};\n","import API from \"@aws-amplify/api\";\nimport Log from \"../utils/Log\";\n\n/**\n * fetches users plans\n * @param {token}: string\n * @returns {ICurrentPlan[]}\n */\n\n/**\n * \n * @param {string} accessToken \n * @returns {Promise<bb.model.account.IStripePlans}\n */\nexport const fetchUserPlan = (accessToken) => {\n  return new Promise((resolve, reject) => {\n    API.get(\"plansURL\", \"/users/plans\", {\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Token: accessToken,\n      },\n      response: true,\n    })\n      .then((res) => {\n        if (res.status === 200 || res.status === 201) {\n          Log.info(res.data, \"SUCCESS - fetchUserPlan response:\");\n          resolve(res.data.payload);\n        }\n      })\n      .catch((error) => {\n        if (error) {\n          Log.error(error, \"error caught in fetchUserPlan\");\n          reject(error);\n        }\n      });\n  });\n};\n\n/**\n * fetches user billing info\n * @param {token}: string\n * @returns {ISubscriptionInfo[]}\n */\n\nexport const fetchBillingInfo = (accessToken) => {\n  return new Promise((resolve, reject) => {\n    API.get(\"userAccountManagementURL\", \"/billing/info\", {\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Token: accessToken,\n      },\n      response: true,\n    })\n      .then((res) => {\n        if (res.status === 200 || res.status === 201) {\n          Log.info(res.data, \"SUCCESS - fetchBillingInfo response:\");\n          resolve(res.data.payload.payload);\n        }\n      })\n      .catch((error) => {\n        if (error) {\n          Log.error(error, \"error caught in fetchBillingInfo\");\n          reject(error);\n        }\n      });\n  });\n};\n\n/**\n * check if user is eligible for a trial upsell\n * @param {accessToken}: string\n * @returns {UpsellData}\n */\n\nexport const fetchTrialUpsellInfo = (accessToken, product, planType) => {\n  return new Promise((resolve, reject) => {\n    let endpoint\n    let headers\n    if(accessToken){\n      if(planType === \"Pro\") {\n        endpoint = `/trialUpsellInfo/ProToBundle`;        \n      }\n      else {\n        endpoint = `/trialUpsellInfo/${product}`;\n      }\n      headers = {\n        \"Content-Type\": \"application/json\",\n        Token: accessToken,\n      }\n    }\n    else {\n      if(planType === \"Pro\") {\n        endpoint = `/trialUpsellInfoGuest/ProToBundle`;\n      }\n      else {\n        endpoint = `/trialUpsellInfoGuest/${product}`;\n      }\n      headers = {\n        \"Content-Type\": \"application/json\",\n      }\n    }\n    API.get(\"userAccountManagementURL\", endpoint, {\n        headers: headers,\n        response: true,\n    })\n      .then((res) => {\n        if (res.status === 200 || res.status === 201) {\n          Log.info(res.data, \"SUCCESS - fetchTrialUpsellInfo response:\");\n          resolve(res.data.payload);\n        }\n      })\n      .catch((error) => {\n        if (error) {\n          Log.error(error, \"error caught in fetchTrialUpsellInfo\");\n          reject(error);\n        }\n      });\n  });\n};\n\n/**\n * updates user billing info\n * @param {token}: string\n * @param {paymentProcessor}: string\n * @param {subscriptionId}: string\n * @param {stripePaymentId}: string\n */\n\nexport const updateBillingInfo = (\n  accessToken,\n  paymentProcessor,\n  subscriptionId,\n  stripePaymentId\n) => {\n  return new Promise((resolve, reject) => {\n    API.put(\"userAccountManagementURL\", `/billing/${paymentProcessor}/update`, {\n      body: {\n        subscriptionId: subscriptionId,\n        stripePaymentId: stripePaymentId,\n      },\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Token: accessToken,\n      },\n      response: true,\n    })\n      .then((res) => {\n        if (res.status === 200 || res.status === 201) {\n          Log.info(res.data, \"SUCCESS - updateBillingInfo response:\");\n          resolve(res.data.payload);\n        }\n      })\n      .catch((error) => {\n        if (error) {\n          Log.error(error, \"error caught in updateBillingInfo\");\n          reject(error);\n        }\n      });\n  });\n};\n\n/**\n * fetches user devices\n * @param {accessToken}: string\n * @param {userId}: string\n * @returns {Promise<{ [key: string]: bb.model.account.IDevices[] }>}\n */\nexport const fetchUserDevices = (accessToken, userId) => {\n  return new Promise((resolve, reject) => {\n    API.get(\"userAccountManagementURL\", `/users/${userId}/allmachines`, {\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Token: accessToken,\n      },\n      response: true,\n    })\n      .then((res) => {\n        if (res.status === 200 || res.status === 201) {\n          Log.info(res.data, \"SUCCESS - fetchUserDevices response:\");\n          resolve(res.data.payload);\n        }\n      })\n      .catch((error) => {\n        if (error) {\n          Log.error(error, \"error caught in fetchUserDevices\");\n          reject(error);\n        }\n      });\n  });\n};\n\n/**\n * updates user device status\n * @param {accessToken}: string\n * @param {userId}: string\n * @param {macHash}: string\n * @returns {ISubscriptionInfo[]}\n */\n\nexport const updateDeviceStatus = (accessToken, userId, active, macHash, productId) => {\n  return new Promise((resolve, reject) => {\n    API.put(\"userAccountManagementURL\", `/users/${userId}/updateMachineStatus`, {\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Token: accessToken,\n      },\n      body: {\n        Active: active,\n        MACHash: macHash,\n        ProductId: productId,\n      },\n      response: true,\n    })\n      .then((res) => {\n        if (res.status === 200 || res.status === 201) {\n          Log.info(res.data, \"SUCCESS - updateDeviceStatus response:\");\n          resolve(res.data.payload);\n        }\n      })\n      .catch((error) => {\n        if (error) {\n          Log.error(error, \"error caught in updateDeviceStatus\");\n          reject(error);\n        }\n      });\n  });\n};\n\n/**\n * \n * @param {string} accessToken \n *  @param {string } userId\n * @returns {Promise<bb.model.account.IEligibleRenewal>}\n */\nexport const fetchUserEligibleRenewal = (accessToken, userId) => {\n  return new Promise((resolve, reject) => {\n    API.get(\"plansURL\", `/renewEligibility/${userId}`, {\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Token: accessToken,\n      },\n      response: true,\n    })\n      .then((res) => {\n        if (res.status === 200) {\n          resolve(res.data.payload);\n        }\n      })\n      .catch((error) => {\n        if (error) {\n          Log.error(error, \"error when finding eligible renewal plans\");\n          reject(error);\n        }\n      });\n  });\n};\n\nexport const addUserToWaitlist = (userInfo) => {\n  return new Promise((resolve, reject) => {\n    API.post(\"userAccountManagementURL\", \"/waitlist\", {\n      headers: {\n        \"Content-Type\": \"application/json\",\n      },\n      body: userInfo,\n      response: true,\n    })\n      .then((res) => {\n        if (res.status === 200 || res.status === 201) {\n          Log.info(res.data, \"SUCCESS - addUserToWaitlist response:\");\n          resolve(res.data);\n        }\n      })\n      .catch((error) => {\n        if (error) {\n          Log.error(error, \"error caught in addUserToWaitlist\");\n          reject(error);\n        }\n      });\n  });\n}\n","import Log from \"../utils/Log\";\nimport { isTablet, isMobileOnly } from \"react-device-detect\";\nimport { ProductType } from \"../reducers/models\";\n\n/**\n * Note about the setTimeout - calling federatedSignIn results in 2 calls to the redirect causing the app to lost context of the correct route.\n * Fix when issue is resolved here: https://github.com/aws-amplify/amplify-js/issues/4822\n */\nexport const redirectToDownloads = (props, version) => {\n    props.history.push(`/downloads/${version.toLowerCase()}`);\n};\n\n// TODO: make an enum for the products? I tried but it basically said it was typescript only\n/**\n *\n * @param {*} props\n * @param {*} productName\n * @param {string|undefined|null} promoCode\n */\nexport const redirectToPreferredPaymentPlatformForProduct = (\n  props,\n  productName,\n  referralInfo = null,\n  promoCode = null\n) => {\n  if (productName === ProductType.BB2 || productName === ProductType.BB3 || \n    productName === ProductType.BBBundle || productName === ProductType.Soundbox || productName === ProductType.BB4) {\n    if (referralInfo?.Network?.toLowerCase() === \"xsolla\") {\n      redirectToXsollaCheckout(props, promoCode);\n    } else {\n      redirectToStripeCheckout(props, promoCode);\n    }\n  } else {\n    // AP: now what? throw error? redirect to 404?\n    console.error(\"unexpected product name: \", productName);\n    props.history.push(\"/plans\");\n    // Why throw error?\n    // throw(new Error(\"Unexpected product name: \", productName))\n  }\n};\n\nexport const redirectToStripeCheckout = (props, promoCode) => {\n  if (promoCode) {\n    props.history.push(`/purchaseThroughStripe?promo=${promoCode}`);\n  } else {\n    props.history.push(\"/purchaseThroughStripe\");\n  }\n};\n\nexport const redirectToXsollaCheckout = (props, promoCode) => {\n  if (promoCode) {\n    props.history.push(`/purchaseThroughXsolla?promo=${promoCode}`);\n  } else {\n    props.history.push(\"/purchaseThroughXsolla\");\n  }\n};\n\n\nexport const redirectToPlans = (props, url, loc, promoCode) => {\n  if (url) {\n    props.history.push(`/plans/${url.toLowerCase()}`);\n  } else if (promoCode) {\n    props.history.push(`/plans?promo=${promoCode}`);\n  } else {\n    props.history.push(\"/plans\");\n  }\n  Log.trace(loc, \"redirecting to plans\");\n};\n\nexport const redirectToHome = (props) => {\n  Log.trace(\"user not logged in - redirecting back to home\");\n\n  props.history.push(\"/\");\n  // window.location.href = \"http://buildbox.com\";\n};\n\nexport const redirectToAuthUI = (props, error) => {\n  Log.trace(\"error logging in - redirecting to error page\");\n\n  const errorURLString = error.message.toLowerCase();\n  let errorQuery = \"\";\n  if (errorURLString.includes(\"presignup\")) {\n    errorQuery = \"presignup-error\";\n  }\n  Log.error(\"heard sign in error\", \"redirectToAuthUI - routes.js\");\n\n  props.history.replace(`/error?${errorQuery}`);\n};\n\nexport const redirectToThankYouPage = (props) => {\n  props.history.push(\"/thankyou\");\n};\n\nexport const redirectToThankYouRenewalPage = (props) => {\n  props.history.push(\"/renewalthankyou\")\n}\n\nexport const redirectToPreviousPage = (props) => {\n  const route = sessionStorage.getItem(\"previousRoute\");\n\n  Log.trace(route, \"redirecting to previousRoute:\");\n\n  if (route !== null) {\n    props.history.push(route);\n  } else {\n    props.history.push(\"/\");\n  }\n};\n\nexport const redirectToLoginPage = (props) => {\n  props.history.push(\"/login\");\n};\n\nexport const redirectToDeviceDownloadPage = (props, version, currentUser) => {\n  Log.trace(version, \"SETTING VERSION: \");\n\n  sessionStorage.setItem(\"productType\", version);\n  sessionStorage.setItem(\"websocket-product\", version);\n\n  if (isMobileOnly || isTablet) {\n    if (currentUser) {\n      redirectToThankYouPage(props);\n    } else {\n      redirectToLoginPage(props);\n    }\n  } else {\n    redirectToDownloads(props, version);\n  }\n};\n\nexport const redirectToDeviceDownloadPageSimple = (props, version) => {\n  if (isMobileOnly || isTablet) {\n    redirectToThankYouPage(props);\n  } \n  else {\n    redirectToDownloads(props, version);\n  }\n};\n\nexport const redirectToTrialUpsellPage = (props, productType, paymentPlatform, planType) => {\n  props.history.push({\n    pathname: '/trialSignupComplete',\n    state: { productType, paymentPlatform, planType }\n  });\n};\n","import {\n  isIE,\n  isChrome,\n  isSafari,\n  isFirefox,\n  isMobileOnly,\n  isTablet,\n  isBrowser,\n} from \"react-device-detect\";\n\nexport const isUnsupportedBrowser = () => {\n  if (isIE) {\n    return true;\n  } else {\n    return false;\n  }\n};\n\nexport const getBrowser = () => {\n  if (isIE) {\n    return \"IE\";\n  } else if (isFirefox){\n    return \"Firefox\"\n  } else if (isSafari) {\n    return \"Safari\";\n  } else if (isChrome) {\n    return \"Chrome\";\n  }\n};\n\nexport const getDeviceType = () => {\n  if (isMobileOnly) {\n    return \"mobile\";\n  } else if (isTablet) {\n    return \"tablet\";\n  } else if (isBrowser) {\n    return \"desktop\";\n  }\n  return null;\n};\n\nexport const isMobileDevice = () => {\n  return isMobileOnly;\n};\n","export const findCookieValue = (cookieName) => {\n  const foundCookie = document.cookie\n    .split(\"; \")\n    .find((row) => row.startsWith(cookieName));\n  //console.log(\"foundCookie\", foundCookie);\n  if (foundCookie?.length) {\n    return foundCookie.split(\"=\")[1];\n  }\n  return false;\n};\n\nexport const setXsollaCookie = async (referralCode) => {\n  let daysUntilExp = 365;\n  const cookieName = \"tracking_id\";\n\n  let date = new Date();\n  date.setTime(date.getTime() + daysUntilExp * 24 * 60 * 60 * 1000);\n\n  document.cookie =\n    cookieName + \"=\" + referralCode + \"; expires=\" + date.toUTCString() + \";\";\n};\n","// take in reducer values\n// take in the values that mateter\n// intake params for the old arry, new filter settings,\n// return the filter arry for the valu\n\n//reduce the normal state athat fits the reudcer conditions\n// need to break it up\n\ntype osPlatformFilter = bb.model.monetization.osPlatformFilter;\ntype INetworkReport = bb.model.monetization.INetworkReport;\ntype INetworkFilter = bb.model.monetization.INetworkFilter;\ntype IAdBoxNetworkReportItem = bb.model.monetization.IAdBoxNetworkReportItem;\n\n// TODO: refactor this later?!\n// export const networkArrayfilterReducer = (networks:INetworkReport[] | undefined, platformFilter:osPlatformFilter, word:string ):INetworkReport[] => {\n\n//   if (undefined === networks)\n//     return [];\n    \n//   const filterNetworkReports:INetworkReport[] = [];\n\n//   // TODO:  filter neworks, \n\n//   networks.forEach((network) => {\n//     let reducedData = filterReducerAdboxReportItem(network.reports, platformFilter, word )\n//     filterNetworkReports.push({\n//       networkName: network.networkName,\n//       reports: reducedData\n//     })\n//   })\n\n//   return filterNetworkReports;\n// }\n\nexport const combineNetworks = (networkReports: INetworkReport[] ): IAdBoxNetworkReportItem[] => {\n\n  if (undefined === networkReports ||  networkReports.length === 0)\n    return [];\n\n  return networkReports\n    .map(({networkName, reports}) => reports.map(item => ({networkName, ...item})))\n    .flat()\n  // let combinedNetwork:IAdBoxNetworkReportItem[] = [];\n\n  // networkReports.forEach((network: INetworkReport) => {\n  //   const networkName = network.networkName;\n\n  //   network.reports?.map((report: IAdboxReportItem) => {\n  //     const addedNetworkName = (report.results as any[]).map((result: IAppLovinReportItem | IVungleReportItem) => {\n  //       return {\n  //         ...result,\n  //         network: networkName,\n  //       }\n  //     })\n  //     combinedNetwork = [...combinedNetwork, ...addedNetworkName as any]; \n  //   });\n  // })\n\n  // return combinedNetwork;\n}\n\nexport const filterReducerAdboxReportItem = (reportItems:IAdBoxNetworkReportItem[] | undefined, platformFilter:osPlatformFilter, networkFilter: INetworkFilter ,word:string ):IAdBoxNetworkReportItem[] => {\n\n  if (undefined === reportItems)\n    return [];\n    \n  const newReportItems:IAdBoxNetworkReportItem[] = (reportItems as any[]).filter((reportItem:IAdBoxNetworkReportItem)=> {\n\n    if( reportItem.platform ===  \"ios\" && platformFilter.ios){\n      return true;\n    }\n    if( reportItem.platform === \"android\" && platformFilter.android) {\n      return true\n    }\n\n    return false;\n  });\n\n  const reducedNetworks:IAdBoxNetworkReportItem[] = (newReportItems as any[]).filter((reportItem:IAdBoxNetworkReportItem)=> {\n\n    if( (reportItem.networkName ===  \"applovin\" && networkFilter.appLovin) || (reportItem.networkName === 'vungle' && networkFilter.vungle)){\n      return true;\n    }\n\n    return false;\n  });\n\n  const finalReduced:IAdBoxNetworkReportItem[] = (reducedNetworks as any[]).filter((reportItem:IAdBoxNetworkReportItem) => {\n    \n    const bundleID = reportItem.package_name.split(\".\");\n\n    if( bundleID[0].includes(word)) return true;\n    if( bundleID[1] !== undefined && bundleID[1].includes(word)) return true;\n    if( bundleID[2] !== undefined && bundleID[2].includes(word)) return true;\n    return false;\n  })\n\n  return finalReduced;\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"downloadLink\":\"DownloadLink_downloadLink__2GaZX\",\"downloadLinkIcon\":\"DownloadLink_downloadLinkIcon__1CuJw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonShared\":\"GenericLogoLander_buttonShared__1IyDD\",\"buttonVerticalGradientOrangeYellow\":\"GenericLogoLander_buttonVerticalGradientOrangeYellow__18mfk\",\"buttonVerticalGradientOrange\":\"GenericLogoLander_buttonVerticalGradientOrange__CItcg\",\"buttonReglarDarkGrey\":\"GenericLogoLander_buttonReglarDarkGrey__3gL9i\",\"buttonReglarGrey\":\"GenericLogoLander_buttonReglarGrey__1mD4D\",\"buttonGradientOrange\":\"GenericLogoLander_buttonGradientOrange__3D424\",\"buttonRegularYellow\":\"GenericLogoLander_buttonRegularYellow__2KWl8\",\"buttonRegularOrange\":\"GenericLogoLander_buttonRegularOrange__3-5dJ\",\"buttonGhost\":\"GenericLogoLander_buttonGhost__1LJmj\",\"buttonGhostDisabled\":\"GenericLogoLander_buttonGhostDisabled__2xSDh\",\"buttonGhostGreen\":\"GenericLogoLander_buttonGhostGreen__1sT9_\",\"buttonGhostGradientOrange\":\"GenericLogoLander_buttonGhostGradientOrange__kVb_N\",\"buttonGhostOrange\":\"GenericLogoLander_buttonGhostOrange__2vdky\",\"buttonGhostDarkBlue\":\"GenericLogoLander_buttonGhostDarkBlue__1HYt0\",\"buttonGhostBlue\":\"GenericLogoLander_buttonGhostBlue__3qCv_\",\"buttonGhostGrey\":\"GenericLogoLander_buttonGhostGrey__2va7N\",\"buttonDisabled\":\"GenericLogoLander_buttonDisabled__2ek2U\",\"clientLoginText\":\"GenericLogoLander_clientLoginText__2bTST\",\"returnToSignIn\":\"GenericLogoLander_returnToSignIn__3_OqD\",\"error\":\"GenericLogoLander_error__2_Woy\",\"link\":\"GenericLogoLander_link__tzU5A\",\"arrow\":\"GenericLogoLander_arrow__28BXs\",\"signOut\":\"GenericLogoLander_signOut__1bj0w\",\"signOutText\":\"GenericLogoLander_signOutText__1_bBL\",\"container\":\"GenericLogoLander_container__2kubk\",\"header\":\"GenericLogoLander_header__5oYeY\",\"errorMessage\":\"GenericLogoLander_errorMessage__1TDLI\",\"BBLogo\":\"GenericLogoLander_BBLogo__2oMQI\",\"redirectButton\":\"GenericLogoLander_redirectButton__2zeIu\",\"reloadBtn\":\"GenericLogoLander_reloadBtn__1ihHs\",\"specialClientConnectionContainer\":\"GenericLogoLander_specialClientConnectionContainer__zZtg4\"};","import { PlanType, PlanIds, ProductType, ProductCategory, PlanInterval } from \"../reducers/models\";\nimport { analyticProductTierNames } from \"../shared/utility\";\n\nconst PLANS_JSON: bb.model.PlanJSON = {\n  BB4Free: {\n    id: PlanIds.BB4Free,\n    productType: ProductType.BB4,\n    planType: PlanType.Free,\n    planInterval: PlanInterval.Lifetime,\n    productCategory: ProductCategory.BB4,\n    planName: \"Free\",\n    analyticsTierName: analyticProductTierNames.Free,\n    discountsAllowed: true,\n    trialDays: 0,\n    monthlyCost: 0,\n    annualCost: 0,\n    lifetimeCost: 0,\n    yearCommitmentCost: 0,\n    features: [\n      \"2D+3D Games\",\n      \"1 World\",\n      \"20 Scenes\",\n      \"Buildbox Shop Access\",\n    ],\n    downloadUrl: \"/downloads/bb4\",\n  },\n  // AP: if this is brought back it should probably be a 'Beginner' plan not 'Weekly'\n  // [PlanIds.BB4Weekly]: {\n  //   id: PlanIds.BB4Weekly,\n  //   productType: ProductType.BB4,\n  //   planType: PlanType.Weekly,\n  //   planInterval: PlanInterval.Weekly,\n  //   productCategory: ProductCategory.BB4,\n  //   planName: \"Beginner\",\n  //   analyticsTierName: analyticProductTierNames.Weekly, // should probably be/become 'Beginner'\n  //   stripeId: {\n  //     Weekly: \"BB4Weekly3_99\",\n  //   },   \n  //   stripeIdDev: {\n  //     Weekly: \"BB4Weekly3_99\",\n  //   },\n  //   xsollaProductId: 11565942,\n  //   xsollaId: {\n  //     Weekly: \"6ksFTWCU\",\n  //   },\n  //   xsollaProductIdDev: 11561953,\n  //   xsollaIdDev: {\n  //     Weekly: \"LaxgtzZv\",\n  //   },\n  //   trialDays: 5,\n  //   weeklyCost: 3.99,    \n  //   features: [\n  //     \"Mac and Windows Client\",\n  //     \"3D Games\",\n  //     \"Unlimited Worlds & Scenes\",\n  //     \"Unlimited Preview Usage\",\n  //     \"50 AI Tokens/week\",\n  //     \"AI Assistant\",\n  //     \"Preview Only\",\n  //     \"Customizable Buildbox Splash Screen\",\n  //     \"You keep 100% of the Sales Revenue\"\n  //   ],\n  //   downloadUrl: \"/downloads/bb4\",\n  // },\n  BB4Basic: {\n    id: PlanIds.BB4Basic,\n    productType: ProductType.BB4,\n    planType: PlanType.Basic,\n    planInterval: PlanInterval.Yearly,\n    productCategory: ProductCategory.BB4,\n    planName: \"Basic\",\n    analyticsTierName: analyticProductTierNames.Plus,\n    discountsAllowed: true,\n    stripeId: {\n      Yearly: \"BB4Basic180\",\n    },   \n    stripeIdDev: {\n      Yearly: \"BB4Basic180\",\n    },\n    xsollaProductId: 11565942,\n    xsollaId: {\n      Yearly: \"BtH7NNso\",\n    },\n    xsollaProductIdDev: 11561953,\n    xsollaIdDev: {\n      Yearly: \"J5RclsiM\",\n    },    \n    trialDays: 0,\n    annualCost: 180.00,\n    features: [\n      \"3D Games\",\n      \"5 Worlds\",\n      \"50 Scenes\",\n      \"Unlimited Exports to Android and PC\",\n      \"200 AI Tokens/month\",\n      \"AI Assistant\",\n      \"Customizable Buildbox Splash Screen\",\n      \"You keep 100% of the Sales Revenue\"\n    ],\n  },\n  BB4Pro: {\n    id: PlanIds.BB4Pro,\n    productType: ProductType.BB4,\n    planType: PlanType.Pro,\n    planInterval: PlanInterval.Yearly,\n    productCategory: ProductCategory.BB4,\n    planName: \"Pro\",\n    analyticsTierName: analyticProductTierNames.Pro,\n    discountsAllowed: true,\n    stripeId: {\n      Yearly: \"Buildbox4ProOct2024_79800\",\n    },\n    stripeIdDev: {\n      Yearly: \"Buildbox4ProOct2024_79800\",\n    },\n    xsollaProductId: 11565942,\n    xsollaId: {\n      Yearly: \"JzYYOeRL\",\n    },\n    xsollaProductIdDev: 11561953,\n    xsollaIdDev: {\n      Yearly: \"FHyLKpdq\",\n    },     \n    trialDays: 0,\n    annualCost: 798.00,\n    //badgeText: \"MOST POPULAR\",\n    featured: false,\n    features: [\n      \"3D Games\",\n      \"Unlimited Worlds\",\n      \"Unlimited Scenes\",\n      \"Exports to Android and PC\",\n      \"Unlimited Android and PC Exports\",\n      \"350 AI Tokens/month\",\n      \"AI Assistant, AI Code Edit, & Advance Placement Tools\",\n      \"Customizable Buildbox Splash Screen\",\n      \"You keep 100% of the Sales Revenue\",\n      \"Controller Support\",\n    ],\n    simplifiedFeatures: [\n      \"3D Games\",\n      \"Unlimited Worlds & Scenes\",\n      \"Unlimited Exports to Android and PC\",\n      \"350 AI Tokens/month\",\n      \"You keep 100% of all App Store Revenue\",\n      \"Controller Support\",\n    ],\n    bannerText: \"AI Driven!\",\n  },\n  BB4TrialUpsell: {\n    id: PlanIds.BB4TrialUpsell,\n    productType: ProductType.BB4,\n    planInterval: PlanInterval.Yearly,\n    planType: PlanType.Pro,\n    productCategory: ProductCategory.BB4,\n    planName: \"Pro\",\n    analyticsTierName: analyticProductTierNames.Pro,\n    discountsAllowed: false,\n    stripeId: {\n      Yearly: \"Buildbox4UpsellOct2024_31700\",\n    },\n    stripeIdDev: {\n      Yearly: \"Buildbox4UpsellOct2024_31700\",\n    },\n    xsollaProductId: 11565942,\n    xsollaId: {\n      Yearly: \"NnO7M1HX\",\n    },\n    xsollaProductIdDev: 11561953,\n    xsollaIdDev: {\n      Yearly: \"RGAhE7P3\",\n    },     \n    trialDays: 0,\n    annualCost: 317.00,\n    features: [\n      \"3D Games\",\n      \"Unlimited Worlds & Scenes\",\n      \"Unlimited Exports to Android and PC\",\n      \"350 AI Tokens/month\",\n      \"AI Assistant, AI Code Edit, & Advanced Placement Tools\",\n      \"Customizable Buildbox Splash Screen\",\n      \"You keep 100% of the Sales Revenue\"\n    ],\n  },\n  [PlanIds.BB4Beginner]: {\n    id: PlanIds.BB4Beginner,\n    productType: ProductType.BB4,\n    planType: PlanType.Beginner,\n    planInterval: PlanInterval.Monthly,\n    productCategory: ProductCategory.BB4,\n    planName: \"Beginner\",\n    analyticsTierName: analyticProductTierNames.Beginner,\n    discountsAllowed: true,\n    stripeId: {\n      Monthly: \"Buildbox4BeginnerOct2024_5998\",\n    },   \n    stripeIdDev: {\n      Monthly: \"Buildbox4BeginnerOct2024_5998\",\n    },\n    xsollaProductId: 11565942,\n    xsollaId: {\n      Monthly: \"ntySHdcq\",\n    },\n    xsollaProductIdDev: 11561953,\n    xsollaIdDev: {\n      Monthly: \"R2zKGSb2\",\n    },\n    trialDays: 5,\n    monthlyCost: 59.98,\n    features: [\n      \"3D Games\",\n      \"1 World\",\n      \"20 Scenes\",\n      \"Preview Only\",\n      \"Unlimited Preview Usage\",\n      \"200 AI Tokens/week\",\n      \"AI Assistant\",\n    ],\n    downloadUrl: \"/downloads/bb4\",\n  },  \n  \n\n\n\n  SoundboxFree: {\n    id: PlanIds.SoundboxFree,\n    productType: ProductType.Soundbox,\n    planType: PlanType.Free,\n    planInterval: PlanInterval.Lifetime,\n    productCategory: ProductCategory.Soundbox,\n    planName: \"Free\",\n    analyticsTierName: analyticProductTierNames.Free,\n    discountsAllowed: true,\n    trialDays: 0,\n    monthlyCost: 0,\n    annualCost: 0,\n    lifetimeCost: 0,    \n    yearCommitmentCost: 0,\n    features: [\n      \"\"\n    ],\n    downloadUrl: \"/downloads/soundbox\",\n  },\n  SoundboxPro: {\n    id: PlanIds.SoundboxPro,\n    productType: ProductType.Soundbox,\n    planType: PlanType.Pro,\n    planInterval: PlanInterval.Yearly,\n    productCategory: ProductCategory.Soundbox,\n    planName: \"Pro\",\n    analyticsTierName: analyticProductTierNames.Pro,\n    discountsAllowed: true,\n    trialDays: 0,\n    annualCost: 254.00,\n    stripeId: {\n      Yearly: \"SoundboxProOct2024_25400\",\n    },\n    stripeIdDev: {\n      Yearly: \"SoundboxProOct2024_25400\",\n    },\n    xsollaProductId: 9556929,\n    xsollaId: {\n      Yearly: \"RjSXQSkH\",\n    },\n    xsollaProductIdDev: 9556922,\n    xsollaIdDev: {\n      Yearly: \"M1ty9K4o\",\n    },\n    //badgeText: \"MOST POPULAR\",\n    featured: false,\n    features: [\n      \"Unlimited Access\",\n      \"Unlimited Editing\",\n`Library of 7,500+ Audio Clips \n(Valued at over $10,000!)`,\n      \"Both Music & SFX files included\",\n      \"Import & Edit your own Audio Files\",\n      \"Export your files to .aif, .flac, .mp3, or .wav\"\n    ],\n    downloadUrl: \"/downloads/soundbox\",\n  },  \n\n\n  BB3Free: {\n    id: PlanIds.BB3Free,\n    productType: ProductType.BB3,\n    planType: PlanType.Free,\n    planInterval: PlanInterval.Lifetime,\n    productCategory: ProductCategory.BB3,\n    planName: \"Free\",\n    analyticsTierName: analyticProductTierNames.Free,\n    discountsAllowed: true,\n    trialDays: 0,\n    monthlyCost: 0,\n    annualCost: 0,\n    lifetimeCost: 0,    \n    yearCommitmentCost: 0,\n    features: [\n      \"2D+3D Games\",\n      \"1 World\",\n      \"20 Scenes\",\n      \"Buildbox Shop Access\",\n      \"Easy Game Wizard\",\n      \"5 Exports to Buildbox World\",\n      \"2 Story Game Creations in Buildbox World\",\n    ],\n    downloadUrl: \"/downloads/bb3\",\n  },\n  [PlanIds.BB3Monthly]: {\n    id: PlanIds.BB3Monthly,\n    productType: ProductType.BB3,\n    planType: PlanType.Monthly,\n    planInterval: PlanInterval.Monthly,\n    productCategory: ProductCategory.Monthly,\n    planName: \"Monthly\",\n    analyticsTierName: analyticProductTierNames.Monthly,\n    discountsAllowed: false,\n    trialDays: 0,\n    monthlyCost: 19.99,\n    stripeIdDev: {\n      Monthly: \"BB3Monthly1999_Feb2023_product\"\n    },\n    stripeId: {\n      Monthly: \"BB3Monthly1999_Feb2023_product\"\n    },\n    xsollaProductId: 8667190,\n    xsollaId: {\n      Monthly: \"B4Ayhwyd\"\n    },    \n    xsollaProductIdDev: 6861430,\n    xsollaIdDev: {\n      Monthly: \"v0y3BAIw\"\n    },\n    features: [\n      \"Unlimited Worlds\",\n      \"Unlimited Scenes\",\n      \"Customizable Splash Screen\",\n      \"Unlimited exports to Buildbox World\",\n      \"100 Story Game Creations in Buildbox World\"\n    ],\n    nonGridFeatures: [\n      \"People can play your games inside the Buildbox World App available on both the Apple App Store and Google Play\"\n    ],\n    downloadUrl: \"/downloads/bb3\",\n    featured: false,\n    badgeText: \"Buildbox 3\"\n  },\n  BB3Plus: {\n    id: PlanIds.BB3Plus,\n    productType: ProductType.BB3,\n    planType: PlanType.Plus,\n    planInterval: PlanInterval.Yearly,\n    productCategory: ProductCategory.BB3,\n    planName: \"Plus\",\n    analyticsTierName: analyticProductTierNames.Plus,\n    discountsAllowed: true,\n    stripeId: {\n      Yearly: \"BB3PlusYearly97_Jul2023\",\n    },   \n    stripeIdDev: {\n      Yearly: \"BB3PlusYearly97_Jul2023\",\n    },\n    xsollaProductId: 8667190,\n    xsollaId: {\n      Yearly: \"3XUFoDk2\",\n    },\n    xsollaProductIdDev: 6861430,\n    xsollaIdDev: {\n      Yearly: \"0LDcGy99\",\n    },    \n    trialDays: 0,\n    annualCost: 97.99,\n    features: [\n      \"2D+3D Games\",\n      \"5 Worlds\",\n      \"50 Scenes\",\n      \"Buildbox Shop Access\",\n      \"Easy Game Wizard\",\n      \"Unlimited Buildbox World Exports\",\n      \"Export to iOS, Android, and PC\",\n      \"Customizable Splash Screen\",\n      \"You keep 100% of all Apple App Store Revenue\",\n      \"You keep 100% of all Google Play Store Revenue\",\n      \"You keep 100% of all App Store Revenue\",\n      \"You keep 70% of all Adbox Revenue\",\n       \"100 Story Game Creations in Buildbox World\"\n    ],\n  },\n  BB3Pro: {\n    id: PlanIds.BB3Pro,\n    productType: ProductType.BB3,\n    planType: PlanType.Pro,\n    planInterval: PlanInterval.Yearly,\n    productCategory: ProductCategory.BB3,\n    planName: \"Pro\",\n    analyticsTierName: analyticProductTierNames.Pro,\n    discountsAllowed: true,\n    stripeId: {\n      Yearly: \"Buildbox3ProOct2024_39800\",\n    },\n    stripeIdDev: {\n      Yearly: \"Buildbox3ProOct2024_39800\",\n    },\n    xsollaProductId: 8667190,\n    xsollaId: {\n      Yearly: \"fjXnL4cZ\",\n    },\n    xsollaProductIdDev: 6861430,\n    xsollaIdDev: {\n      Yearly: \"a1kQBZzz\",\n    },     \n    trialDays: 0,\n    annualCost: 398.00,\n    //badgeText: \"MOST POPULAR\",\n    featured: false,\n    features: [\n      \"2D+3D Games\",\n      \"Unlimited Worlds\",\n      \"Unlimited Scenes\",\n      \"Buildbox Shop Access\",\n      \"Easy Game Wizard\",\n      \"Unlimited Buildbox World Exports\",\n      \"Export to iOS, Android, and PC\",\n      \"Customizable Splash Screen\",\n      \"You keep 100% of all Apple App Store Revenue\",\n      \"You keep 100% of all Google Play Store Revenue\",\n      \"You keep 100% of all App Store Revenue\",\n      \"You keep 90% of all Adbox Revenue\",\n      \"You keep 100% of all Custom Ad Network Revenue\",\n      \"100 Story Game Creations in Buildbox World\"\n    ],\n    simplifiedFeatures: [\n      \"2D+3D Games\",\n      \"Unlimited Worlds & Scenes\",\n      \"Unlimited Exports to iOS, Android, PC, and Buildbox World\",\n      \"100 Story Game Creations in Buildbox World\",\n      \"You keep 100% of all App Store & Custom Ad Revenue\",\n      \"You keep 90% of all Adbox Revenue\",\n      \"Features Customizable Splash Screen, Game Wizard, and Buildbox Shop\"\n    ],\n    bannerText: \"Most Popular!\",\n  },\n  BB3TrialUpsell: {\n    id: PlanIds.BB3TrialUpsell,\n    productType: ProductType.BB3,\n    planType: PlanType.Pro,\n    planInterval: PlanInterval.Yearly,\n    productCategory: ProductCategory.BB3,\n    planName: \"Pro\",\n    analyticsTierName: analyticProductTierNames.Pro,\n    discountsAllowed: false,\n    stripeId: {\n      Yearly: \"Buildbox3UpsellOct2024_15700\",\n    },\n    stripeIdDev: {\n      Yearly: \"Buildbox3UpsellOct2024_15700\",\n    },\n    xsollaProductId: 8667190,\n    xsollaId: {\n      Yearly: \"IC6lRybc\",\n    },\n    xsollaProductIdDev: 6861430,\n    xsollaIdDev: {\n      Yearly: \"VxLYmkDF\",\n    },     \n    trialDays: 0,\n    annualCost: 157.00,\n    features: [\n      \"2D+3D Games\",\n      \"Unlimited Worlds\",\n      \"Unlimited Scenes\",\n      \"Buildbox Shop Access\",\n      \"Easy Game Wizard\",\n      \"Unlimited Buildbox World Exports\",\n      \"Export to iOS, Android, and PC\",\n      \"Customizable Splash Screen\",\n      \"You keep 100% of all Apple App Store Revenue\",\n      \"You keep 100% of all Google Play Store Revenue\",\n      \"You keep 100% of all App Store Revenue\",\n      \"You keep 90% of all Adbox Revenue\",\n      \"You keep 100% of all Custom Ad Network Revenue\",\n      \"100 Story Game Creations in Buildbox World\"\n    ],\n    simplifiedFeatures: [\n      \"2D+3D Games\",\n      \"Unlimited Worlds & Scenes\",\n      \"Unlimited Exports to iOS, Android, PC, and Buildbox World\",\n      \"100 Story Game Creations in Buildbox World\",\n      \"You keep 100% of all App Store & Custom Ad Revenue\",\n      \"You keep 90% of all Adbox Revenue\",\n      \"Features Customizable Splash Screen, Game Wizard, and Buildbox Shop\"\n    ],\n  },    \n  [PlanIds.BB3Beginner]: {\n    id: PlanIds.BB3Beginner,\n    productType: ProductType.BB3,\n    planType: PlanType.Beginner,\n    planInterval: PlanInterval.Monthly,\n    productCategory: ProductCategory.BB3,\n    planName: \"Beginner\",\n    analyticsTierName: analyticProductTierNames.Beginner,\n    discountsAllowed: true,\n    stripeId: {\n      Monthly: \"Buildbox3BeginnerOct2024_2998\",\n    },   \n    stripeIdDev: {\n      Monthly: \"Buildbox3BeginnerOct2024_2998\",\n    },\n    xsollaProductId: 8667190,\n    xsollaId: {\n      Monthly: \"mOHsHliu\",\n    },\n    xsollaProductIdDev: 6861430,\n    xsollaIdDev: {\n      Monthly: \"tNtC7xJ1\",\n    },\n    trialDays: 5,\n    monthlyCost: 29.98,\n    features: [\n      \"2D+3D Games\",\n      \"1 World\",\n      \"20 Scenes\",\n      \"Customizable Splash Screen\",\n      \"Buildbox Shop Access\",\n      \"Easy Game Wizard\",\n      \"Unlimited Exports to iOS, Android, PC, and Buildbox World\",\n    ],\n  },  \n\n  BB2Free: {\n    id: PlanIds.BB2Free,\n    productType: ProductType.BB2,\n    planType: PlanType.Free,\n    planInterval: PlanInterval.Lifetime,\n    productCategory: ProductCategory.BB2,\n    planName: \"Free\",\n    analyticsTierName: analyticProductTierNames.Free,\n    discountsAllowed: true,\n    trialDays: 0,\n    annualCost: 0,\n    lifetimeCost: 0,    \n    features: [\n      \"2D Games\",\n      \"1 World\",\n      \"20 Scenes\",\n      \"5 Exports to Buildbox World\",\n      \"2 Story Game Creations\"\n    ],\n    downloadUrl: \"/downloads/bb2\",\n  },\n  [PlanIds.BB2Monthly]: {\n    id: PlanIds.BB2Monthly,\n    productType: ProductType.BB2,\n    planType: PlanType.Monthly,\n    planInterval: PlanInterval.Monthly,\n    productCategory: ProductCategory.Monthly,\n    planName: \"Monthly\",\n    analyticsTierName: analyticProductTierNames.Monthly,\n    discountsAllowed: false,\n    trialDays: 0,\n    monthlyCost: 9.99,\n    stripeIdDev: {\n      Monthly: \"BBClassicMonthly999_Feb2023\"\n    },\n    stripeId: {\n      Monthly: \"BBClassicMonthly999_Feb2023\"\n    },\n    xsollaProductId: 8667189,\n    xsollaId: {\n      Monthly: \"Xu1FUltl\"\n    },\n    xsollaProductIdDev: 8629752,\n    xsollaIdDev: {\n      Monthly: \"fVyLnLbJ\"\n    },\n    features: [\n      \"AI Access\",\n      \"Unlimited Worlds\",\n      \"Unlimited Scenes\",\n      \"Customizable Splash Screen\",\n      \"Unlimited exports to Buildbox World\",\n       \"100 Story Game Creations\"\n    ],\n    nonGridFeatures: [\n      \"People can play your games inside the Buildbox World App available on both the Apple App Store and Google Play\"\n    ],\n    downloadUrl: \"/downloads/bb2\",\n    featured: false,\n    badgeText: \"Buildbox Classic\"\n  },\n  BB2Plus: {\n    id: PlanIds.BB2Plus,\n    productType: ProductType.BB2,\n    planType: PlanType.Plus,\n    planInterval: PlanInterval.Yearly,\n    productCategory: ProductCategory.BB2,\n    planName: \"Plus\",\n    analyticsTierName: analyticProductTierNames.Plus,\n    discountsAllowed: true,\n    stripeId: {\n      Yearly: \"BB2PlusYearly57_Jul2023\",\n    },  \n    stripeIdDev: {\n      Yearly: \"BB2PlusYearly57_Jul2023\",\n    },\n    xsollaProductId: 8667189,\n    xsollaId: {\n      Yearly: \"ZEgygGn0\",\n    },\n    xsollaProductIdDev: 8629752,\n    xsollaIdDev: {\n      Yearly: \"6d9v8BiM\",\n    },     \n    trialDays: 0,\n    annualCost: 57.99,\n    features: [\n      \"2D Games\",\n      \"5 Worlds\",\n      \"50 Scenes\",\n      \"Unlimited Buildbox World Exports\",\n      \"100 Story Game Creations\",\n      \"AI Access\",\n      \"Export to iOS, Android, and PC\",\n      \"Customizable Splash Screen\",\n      \"You keep 100% of all Apple App Store Revenue\",\n      \"You keep 100% of all Google Play Store Revenue\",\n      \"You keep 100% of all In-App Purchases\",\n      \"You keep 70% of all Adbox Revenue\",\n    ],\n  },\n  BB2Pro: {\n    id: PlanIds.BB2Pro,\n    productType: ProductType.BB2,\n    planType: PlanType.Pro,\n    planInterval: PlanInterval.Yearly,\n    productCategory: ProductCategory.BB2,\n    planName: \"Pro\",\n    analyticsTierName: analyticProductTierNames.Pro,\n    discountsAllowed: true,\n    stripeId: {\n      Yearly: \"BuildboxClassicProOct2024_49800\",\n    },\n    stripeIdDev: {\n      Yearly: \"BuildboxClassicProOct2024_49800\",\n    },\n    xsollaProductId: 8667189,\n    xsollaId: {\n      Yearly: \"EdHOCc0Z\",\n    },\n    xsollaProductIdDev: 8629752,\n    xsollaIdDev: {\n      Yearly: \"IxGUjWSp\",\n    },   \n    trialDays: 0,\n    annualCost: 498.00,\n    //badgeText: \"MOST POPULAR\",\n    featured: false,\n    features: [\n      \"2D Games\",\n      \"Unlimited Worlds\",\n      \"Unlimited Scenes\",\n      \"Unlimited Buildbox World Exports\",\n      \"100 Story Game Creations\",\n      \"AI Access\",\n      \"Export to iOS, Android, and PC\",\n      \"Customizable Splash Screen\",\n      \"You keep 100% of all Apple App Store Revenue\",\n      \"You keep 100% of all Google Play Store Revenue\",\n      \"You keep 100% of all In-App Purchases\",\n      \"You keep 90% of all Adbox Revenue\",\n      \"You keep 100% of all Custom Ad Network Revenue\",\n    ],\n    simplifiedFeatures: [\n      \"2D Games\",\n      \"Unlimited Worlds & Scenes\",\n      \"Unlimited Exports to iOS, Android, PC, and Buildbox World\",\n      \"100 Story Game Creations\",\n      \"You keep 100% of all App Store & Custom Ad Revenue\",\n      \"You keep 90% of all Adbox Revenue\",\n    ],\n    bannerText: \"Easiest!\",\n  },\n  [PlanIds.BB2Beginner]: {\n    id: PlanIds.BB2Beginner,\n    productType: ProductType.BB2,\n    planType: PlanType.Beginner,\n    planInterval: PlanInterval.Monthly,\n    productCategory: ProductCategory.BB2,\n    planName: \"Beginner\",\n    analyticsTierName: analyticProductTierNames.Beginner,\n    discountsAllowed: true,\n    stripeId: {\n      Monthly: \"BuildboxClassicBeginnerOct2024_3998\",\n    },\n    stripeIdDev: {\n      Monthly: \"BuildboxClassicBeginnerOct2024_3998\",\n    },\n    xsollaProductId: 8667189,\n    xsollaId: {\n      Monthly: \"Stp68TgM\",\n    },\n    xsollaProductIdDev: 8629752,\n    xsollaIdDev: {\n      Monthly: \"8L3jTrMn\",\n    },       \n    trialDays: 5,\n    monthlyCost: 39.98,\n    features: [\n      \"2D Games\",\n      \"1 World\",\n      \"20 Scenes\",\n      \"5 Exports to Buildbox World\",\n      \"2 Story Game Creations\"\n    ],\n    downloadUrl: \"/downloads/bb2\",\n  },\n  BB2TrialUpsell: {\n    id: PlanIds.BB2TrialUpsell,\n    productType: ProductType.BB2,\n    planType: PlanType.Pro,\n    planInterval: PlanInterval.Yearly,\n    productCategory: ProductCategory.BB2,\n    planName: \"Pro\",\n    analyticsTierName: analyticProductTierNames.Pro,\n    discountsAllowed: false,\n    stripeId: {\n      Yearly: \"BuildboxClassicUpsellOct2024_19700\",\n    },\n    stripeIdDev: {\n      Yearly: \"BuildboxClassicUpsellOct2024_19700\",\n    },\n    xsollaProductId: 8667189,\n    xsollaId: {\n      Yearly: \"loW1sxmW\",\n    },\n    xsollaProductIdDev: 8629752,\n    xsollaIdDev: {\n      Yearly: \"07zdqsA1\",\n    },     \n    trialDays: 0,\n    annualCost: 197.00,\n    features: [\n      \"2D Games\",\n      \"Unlimited Worlds\",\n      \"Unlimited Scenes\",\n      \"Unlimited Buildbox World Exports\",\n      \"AI Access\",\n      \"Export to iOS, Android, and PC\",\n      \"Customizable Splash Screen\",\n      \"You keep 100% of all Apple App Store Revenue\",\n      \"You keep 100% of all Google Play Store Revenue\",\n      \"You keep 100% of all In-App Purchases\",\n      \"You keep 90% of all Adbox Revenue\",\n      \"You keep 100% of all Custom Ad Network Revenue\",\n      \"100 Story Game Creations\"\n    ],\n  },  \n  \n  \n  BBBundle: {\n    id: PlanIds.BBBundle,\n    planType: PlanType.Bundle,\n    planInterval: PlanInterval.Yearly,\n    planName: \"Ultimate Bundle\",\n    analyticsTierName: analyticProductTierNames.Bundle,\n    discountsAllowed: true,\n    productType: ProductType.BBBundle,\n    productCategory: ProductCategory.BBBundle,\n    xsollaProductId: 9247097,\n    xsollaId: {\n      Yearly: \"sTgpWNWl\"\n    }, \n    xsollaProductIdDev: 9247069,\n    xsollaIdDev: {\n      Yearly: \"ns4jAJh2\"\n    },\n    stripeId: {\n      Yearly: \"UltimateBundleOct2024_159400\"\n    },\n    stripeIdDev: {\n      Yearly: \"UltimateBundleOct2024_159400\"\n    },\n    trialDays: 0,\n    annualCost: 1594.00,\n    preBundleCost: 1948.00,\n    //badgeText: \"BEST VALUE\",\n    featured: false,\n    features: [\n      \"Buildbox Classic Pro\",\n      \"Buildbox 3 Pro\",\n      \"Buildbox 4 Pro\",\n      \"Soundbox\",\n    ],\n    simplifiedFeatures: [\n      \"Buildbox Classic Pro\",\n      \"Buildbox 3 Pro\",\n      \"Buildbox 4 Pro\",\n      \"Soundbox\",\n    ],\n    bannerText: \"Best Value!\",\n  },\n  BBBundleUpsell: {\n    id: PlanIds.BBBundleUpsell,\n    planType: PlanType.Bundle,\n    planInterval: PlanInterval.Yearly,\n    planName: \"Ultimate Bundle\",\n    analyticsTierName: analyticProductTierNames.Bundle,\n    discountsAllowed: false,\n    productType: ProductType.BBBundle,\n    productCategory: ProductCategory.BBBundle,\n    xsollaProductId: 9247097,\n    xsollaId: {\n      Yearly: \"ex2GrQrE\"\n    }, \n    xsollaProductIdDev: 9247069,\n    xsollaIdDev: {\n      Yearly: \"nFzIT3Sk\"\n    },\n    stripeId: {\n      Yearly: \"UltimateBundleUpsellOct2024_59700\"\n    },\n    stripeIdDev: {\n      Yearly: \"UltimateBundleUpsellOct2024_59700\"\n    },\n    trialDays: 0,\n    annualCost: 597.00,\n    preBundleCost: 1948.00,\n    //badgeText: \"BEST VALUE\",\n    featured: false,\n    features: [\n      \"Buildbox Classic Pro\",\n      \"Buildbox 3 Pro\",\n      \"Buildbox 4 Pro\",\n      \"Soundbox\",\n    ],\n    simplifiedFeatures: [\n      \"Buildbox Classic Pro\",\n      \"Buildbox 3 Pro\",\n      \"Buildbox 4 Pro\",\n      \"Soundbox\",\n    ],\n    bannerText: \"Best Value!\",\n  },\n};\n\nexport default PLANS_JSON;\n\nexport const PLAN_MAP: Record<ProductCategory,bb.model.ISubscription[]> = {\n  // the order the plans are in these arrays is the order that they'll appear on the pricing/plans page\n  Monthly: [\n    PLANS_JSON.BB2Monthly,\n    // PLANS_JSON.BB3Monthly,\n    // PLANS_JSON.BB4Monthly,\n    PLANS_JSON.BBBundle,\n  ],\n  BB4: [\n    // PLANS_JSON.BB4Free,\n    //PLANS_JSON.BB4Weekly,\n    PLANS_JSON.BB4Beginner,\n    //PLANS_JSON.BB4Basic,\n    PLANS_JSON.BB4Pro,\n    PLANS_JSON.BBBundle,\n  ],  \n  BB3: [\n    //PLANS_JSON.BB3Free,\n    PLANS_JSON.BB3Beginner,\n    //PLANS_JSON.BB3Plus,\n    PLANS_JSON.BB3Pro,\n    PLANS_JSON.BBBundle,\n  ],\n  BB2: [\n    //PLANS_JSON.BB2Free,\n    PLANS_JSON.BB2Beginner,\n    //PLANS_JSON.BB2Plus,\n    PLANS_JSON.BB2Pro,\n    PLANS_JSON.BBBundle,\n  ],\n  Soundbox: [\n    PLANS_JSON.SoundboxPro,\n    PLANS_JSON.BBBundle,\n  ],\n  BBBundle: [\n    PLANS_JSON.BBBundle\n  ]\n}\n","import {useEffect, useState} from 'react'\n\nconst useIsMobile = () => {\n\n  const [width, setWidth] = useState<number>(window.innerWidth);\n\n  function handleWindowSizeChange() {\n      setWidth(window.innerWidth);\n  }\n  useEffect(() => {\n      window.addEventListener('resize', handleWindowSizeChange);\n      return () => {\n          window.removeEventListener('resize', handleWindowSizeChange);\n      }\n  }, []);\n\n  const isMobile = width <= 991;\n\n  return {isMobile, width}\n}\n\nexport default useIsMobile","import { PlanType, WorkState } from \"./../reducers/models\";\nimport Log from \"../utils/Log\";\nimport actions from \"../constants/actions.json\";\nimport { push } from \"connected-react-router\";\nimport { DefaultThunkAction } from \"./shared\";\nimport { AnyAction } from \"redux\";\nimport routes from \"../constants/routes.json\";\nimport {\n  redirectToPreferredPaymentPlatformForProduct,\n  redirectToPreviousPage,\n} from \"../utils/routes\";\nimport { LoginClientType, LoginState, ProductType } from \"../reducers/models\";\nimport { cognitoLogin } from \"../utils/CognitoUtils\";\nimport { createUser } from \"../api/auth\";\nimport { findCookieValue } from \"../utils/referralUtils\";\n\n//used to login users into Buildbox client by opening s3 page to intiate websocket token transfer\n\nexport function clientLoginRedirect(\n  username?: string,\n  password?: string\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch, getState) => {\n    const { router } = getState();\n\n    const currentUrl = router.location;\n\n    try {\n      //manual client login\n      if (username && password) {\n        const { AccessToken, RefreshToken } = await cognitoLogin(\n          username,\n          password\n        );\n\n        //if we detect a referral cookie on login include it for user creation\n        const xsollaTrackingId = findCookieValue(\"tracking_id=\");\n        let ReferralInfo = null;\n        if (xsollaTrackingId) {\n          ReferralInfo = {\n            Network: \"Xsolla\",\n            Info: xsollaTrackingId,\n          };\n        }\n        const response = await createUser(AccessToken, ReferralInfo);\n        Log.info(response, \"createUser response:\");\n        const { Email } = response.payload.user;\n\n        sessionStorage.setItem(\"websocket-accessToken\", AccessToken);\n        sessionStorage.setItem(\"websocket-refreshToken\", RefreshToken);\n        sessionStorage.setItem(\"websocket-email\", Email);\n        sessionStorage.setItem(\"websocket-username\", username);\n      }\n\n      const reactDomain = process.env.REACT_APP_DOMAIN_URL;\n      const websocketDomain = process.env.REACT_APP_S3_WEBSOCKET_DOMAIN;\n      const websocketPage = process.env.REACT_APP_S3_WEBSOCKET_PAGE;\n\n      //   const urlQuery = QueryString.parse(currentUrl.search);\n      const urlQuery = currentUrl.search;\n      Log.trace(\"url query: \", urlQuery);\n\n      let websocketPort;\n      if (urlQuery[\"port\"]) {\n        websocketPort = urlQuery[\"port\"];\n      } else {\n        websocketPort = sessionStorage.getItem(\"websocketPort\");\n      }\n\n      let showLinkback = \"0\";\n      let provider = sessionStorage.getItem(\"websocket-provider\");\n      if(provider === \"Google\" || provider === \"Facebook\" || provider === \"SignInWithApple\") { // social sign in may need deeplink fallback\n        console.log(\"will show linkbacks\");\n        showLinkback = \"1\";\n      }\n\n      const destUrl =\n        websocketDomain +\n        \"/\" +\n        websocketPage +\n        \"?port=\" +\n        websocketPort +\n        \"&d=\" +\n        reactDomain +\n        \"&lb=\" + \n        showLinkback +\n        \"&n=\" + Date.now();\n      Log.trace(\"dest url: \", destUrl);\n      Log.trace(sessionStorage, \"sessionStorage\");\n      //redirects to s3 client login redirect page with iframe component /clientpostmessageconnection\n      window.open(destUrl, \"_self\");\n    } catch (e:any) {\n      Log.error(e, \"caught error in clientLoginRedirect\");\n      throw new Error(e.message);\n    }\n  };\n}\n\n// Website user login redirect\n\nexport function webLoginRedirect(\n  props: any\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch, getState) => {\n    // first casting to unknown because I could not figure out the right Thunk type parameter to use to get getState to have a return type\n    const { cart, auth } = (getState() as unknown as {cart:bb.state.ICart, auth:bb.state.IAuth});\n\n    const planType = sessionStorage.getItem(\"planType\");\n    const isDeprecated = sessionStorage.getItem(\"isDeprecated\");\n\n    if (isDeprecated === \"true\") {\n      console.log(\"not redirecting deprecated plan\")\n      return;\n    }\n\n    if (planType) {\n      //redirecting users to download page when clicking \"Download Now\" on /plans page\n      console.log(\"plantype: \", typeof planType, planType);\n      if (planType.toLowerCase() === \"free\") {\n        const cartItem = cart.items[0].item;\n\n        if (cartItem.planType === PlanType.Free) {\n          dispatch(push(cartItem.downloadUrl));\n        }\n      } else if (planType.toLowerCase() === \"thankyoupage\") {\n        dispatch(push(routes.THANK_YOU));\n      } else {\n        // AP: will I need a redirect entry around here about 'choose payment platform'?\n        // AP: I am not confident in this bit. how do we get to this state and what can we expect to happen?\n        const promoCode = sessionStorage.getItem(\"promoCode\");\n        if (cart && cart.items && cart.items.length > 0) {\n          const cartItem = cart.items[0].item;\n          const productName = cartItem.productType;\n          //redirectToCheckout(props, promoCode);\n\n          // AP: had to hack this 'any' in here because it was coming up as a new typescript error,\n          //  routes is a plain .js file so I guess we need a .d or something\n          let referralInfo : any = null\n          if(auth?.user?.referralInfo) {\n            referralInfo = auth?.user?.referralInfo\n          }\n          redirectToPreferredPaymentPlatformForProduct(\n            props,\n            productName,\n            referralInfo,\n            promoCode\n          );\n        } else {\n          // TODO: this is probably an error situation?\n          console.error(\"plan type set with no plan info available\");\n          redirectToPreviousPage(props);\n        }\n      }\n    } else {\n      redirectToPreviousPage(props);\n    }\n  };\n}\n\nexport function setPlanFetchWorkState(workState: WorkState): AnyAction {\n  return {\n    type: actions.current.SET_PLAN_FETCH_STATE,\n    workState,\n  };\n}\nexport function setBillingInfoFetchWorkState(workState: WorkState): AnyAction {\n  return {\n    type: actions.current.SET_BILLING_INFO_FETCH_STATE,\n    workState,\n  };\n}\nexport function setInvoicesFetchWorkState(workState: WorkState): AnyAction {\n  return {\n    type: actions.current.SET_INVOICES_FETCH_STATE,\n    workState,\n  };\n}\nexport function setPlanInfoFetchWorkState(workState: WorkState): AnyAction {\n  return {\n    type: actions.current.SET_PLAN_INFO_FETCH_STATE,\n    workState,\n  };\n}\nexport function setLoginWorkState(loginState: LoginState): AnyAction {\n  return {\n    type: actions.current.SET_LOGIN_STATE,\n    loginState,\n  };\n}\nexport function setPurchaseState(workState: WorkState): AnyAction {\n  return {\n    type: actions.current.SET_PURCHASE_STATE,\n    workState,\n  };\n}\n\nexport function setSignUpWorkState(workState: WorkState): AnyAction {\n  return {\n    type: actions.current.SET_SIGNUP_STATE,\n    workState,\n  };\n}\nexport function setLoggingInfromClient(client: LoginClientType): AnyAction {\n  return {\n    type: actions.current.SET_LOGIN_TYPE,\n    client,\n  };\n}\n\nexport function setFromSSORedirect(fromSSORedirect: boolean): AnyAction {\n  return {\n    type: actions.current.SET_FROM_SSO_REDIRECT,\n    fromSSORedirect,\n  };\n}\n\nexport function resetCurrentState(): AnyAction {\n  return {\n    type: actions.current.RESET_CURRENT_STATE,\n  };\n}\n\nexport function setAnalyticsWorkState(workState: WorkState): AnyAction {\n  return {\n    type: actions.current.SET_ANALYTICS_WORKSTATE,\n    workState,\n  };\n}\n\nexport function setAdSettingsWorkState(\n  adSettingsWorkState: WorkState\n): AnyAction {\n  return {\n    type: actions.current.SET_AD_SETTINGS_WORKSTATE,\n    adSettingsWorkState,\n  };\n}\n\nexport function setProductType(productType: ProductType | string): AnyAction {\n  return {\n    type: actions.current.SET_PRODUCT_TYPE,\n    productType,\n  };\n}\n\nexport function setTransactionsFetchWorkState(workState: WorkState): AnyAction {\n  return {\n    type: actions.current.SET_TRANSACTIONS_FETCH_WORKSTATE,\n    workState,\n  };\n}\n\nexport function setProjectsFetchWorkState(workState: WorkState): AnyAction {\n  return {\n    type: actions.current.SET_PROJECTS_FETCH_WORKSTATE,\n    workState,\n  };\n}\n","\nimport TagManager from \"react-gtm-module\";\nimport Env from \"../Env\";\n\nexport type AnalyticDataDTO = {\n  UserID: string;\n  genai_question: string;\n  genai_user_response: string;\n  genai_skipped: boolean;\n}\n\nexport const customEventDataLayerTrigger = (eventName: string, userId: string, otherData: Partial<AnalyticDataDTO> = {}) => {\n  const prePendEventName = Env.AOB_ENV.toUpperCase() === \"PROD\" ? \"\" :  Env.AOB_ENV.toUpperCase() + \"_\";\n\n  const customEventName =  `${prePendEventName}${eventName}`;\n\n  console.log(\"customEventDataLayerTrigger\", customEventName, userId, otherData);\n  TagManager.dataLayer({\n    dataLayer: {\n        event: customEventName,\n        UserId: userId,\n        ...otherData\n    },\n  });\n\n}","import React from \"react\"\nimport { Progress } from \"antd\";\nimport { FunctionComponent } from \"react\";\n\ninterface CircularProgressProps {\n    progress?: number;\n}\n \nconst CircularProgress: FunctionComponent<CircularProgressProps> = ({progress = 75}) => {\n    \n    return (\n        <Progress type=\"circle\" percent={progress} strokeWidth={10} size={50} strokeColor={{\n            '0%': '#F9AA30',\n            '100%': '#F9AA30',\n          }} />\n    );\n}\n \nexport default CircularProgress;\n","import {useEffect, useState} from 'react'\n\ntype Props = {\n  successReport: boolean;\n}\nconst useInfiniteProgress = (props: Props) => {\n\n  const { successReport } = props;\n  const [progress, setProgress] = useState<number>(0);\n\n  useEffect(() => {\n    let interval: any;\n    interval = setInterval(() => {\n      setProgress((prev) => {\n        if (successReport || prev >= 100) {\n          clearInterval(interval);\n          return 100\n        }else if (prev > 90){\n\n          return 98\n        }else if(!prev) {\n          // clearInterval(interval);\n          return randomeNumberIncrement();\n        } else if (prev >= 100) {\n          clearInterval(interval);\n          return 100;\n        }\n        return prev + randomeNumberIncrement();\n      });\n    }, 3000); // increment every 3 seconds\n\n    return () => {\n      clearInterval(interval);\n    }\n\n  }, [successReport ]);\n\n  const randomeNumberIncrement = ():number => {\n    // number between 1 and 5, don't wanna return zero just in case\n    return Math.floor(Math.random() * 5) + 1;\n  }\n\n  return progress\n}\n\nexport default useInfiniteProgress","import React, { FunctionComponent, useEffect} from \"react\";\nimport styles from \"../../../styles/PromptMessage.module.css\";\nimport { Row, Col } from \"antd\";\n// import { LazyLoadImage } from 'react-lazy-load-image-component';\nimport {\n  AssetType,\n  bbaiStoryGamePromptStepStatus,\n} from \"../constants/bbai.prompts\";\nimport CircularProgress from \"./CircularProgress\";\nimport useInfiniteProgress from \"../../../hooks/useInfiniteProgress\";\nimport { TypeAnimation } from 'react-type-animation';\n\nexport interface MessageProps {\n  message: string;\n  user: {\n    id: string;\n    pic: string;\n  };\n  // handleSelectedAsset?: (img: string, assetType: string, idx: number) => void;\n  assetType?: AssetType | bbaiStoryGamePromptStepStatus;\n  promptStage:  bbaiStoryGamePromptStepStatus;\n  handleDoneTyping?: () => void;\n  loading?: boolean | null;\n  successReport?: boolean\n  component?: JSX.Element;\n  error?: boolean\n  completed?: boolean\n}\n\nconst PromptMessage: FunctionComponent<MessageProps> = ({\n  message = \"\",\n  user,\n  promptStage,\n  loading = false,\n  successReport = false,\n  component,\n  error = false,\n  handleDoneTyping,\n  completed = false,\n}) => {\n\n  const progressValue = useInfiniteProgress({successReport})\n  useEffect(() => {\n\n  }, [message, user]);\n\n  const checkDoneTypingShowLoad = () => {\n  return !error && loading\n  }\n\n  return (\n    <>\n      <Row\n        className={`${styles.promptMessage} ${\n          user.id === \"1\"\n            ? styles.promptFeedbackBBAI\n            : styles.promptFeedbackUser\n        }`}\n      >\n        <Col xs={4} sm={3} md={3} lg={2} xl={2}>\n          <img className={styles.senderImg} src={user.pic} alt=\"sender\" />\n        </Col>\n        <Col xs={20} sm={21} md={21} lg={22} xl={22}>\n          { component? component :  <> \n           {user.id === \"1\" ? <TypeAnimation sequence={[`${message}`]}  wrapper=\"span\"  speed={50} cursor={false}/> : <>{message}</>} {\"\"} {checkDoneTypingShowLoad()  &&  <CircularProgress progress={progressValue} />} </>\n          }\n        </Col>\n      </Row>\n    </>\n  );\n};\n\nexport default PromptMessage;\n","import React, { useEffect, useRef } from 'react'\nimport { useDispatch, useSelector } from 'react-redux';\n// import { BBPlatformClient } from '../../../api/BBPlatform'\n// import { handlePromptStepAnalytics } from '../../../api/GoogleAnalyticsWrapper'\nimport { customEventDataLayerTrigger } from '../../../api/GoogleTagManager'\nimport { bbaiStoryGamePromptOptions, bbaiStoryGamePromptStepStatus, bbaiUser } from '../constants/bbai.prompts'\n// import ClaimLoginSkipOptions, { ClaimLoginSkipOptionsType } from './ClaimLoginSkipOptions'\nimport PromptMessage from './PromptMessage'\nimport currentUserInfo from \"../../../selectors/currentUserInfo\";\nimport currentStoryGame from \"../../../selectors/currentStoryGame\";\nimport { nextStage, setBBWorldBBDocId, setConfirmComplete, setErrorState } from '../../../actions/storyGame';\nimport { createCYOABBDoc, cyoaConfirmComplete } from '../../../api/storyGame';\nimport { validateToken } from '../../../actions/auth';\n\nconst BuildBBDocCYOA = () => {\n  const bbaiStore = useSelector(currentStoryGame)\n  const userStore = useSelector(currentUserInfo);\n  const dispatch = useDispatch()\n  ///TODO: make sure the the bbdoc is ready to download \n  const generateBBDoc = useRef<boolean>(false) // make sure the useFfect fetch call only runs once\n\n  useEffect(() => {\n\n    if(generateBBDoc.current === false && bbaiStore.allAssetsGenerated && !bbaiStore.completed){\n      generateBBDOC();\n      generateBBDoc.current = true;\n    }\n\n    if(bbaiStore.completed){\n      dispatch(nextStage())\n    }\n\n    // if(generateBBDoc.current === false){\n    //   generateBBDOC();\n    //   generateBBDoc.current = true;\n    // }\n    // eslint-disable-next-line\n  }, [] )\n\n\n  // const handleClaimLoginSkip = (e: ClaimLoginSkipOptionsType) => {\n  //   if (e === ClaimLoginSkipOptionsType.CLAIM) {\n  //     console.debug(`[handleClaimLoginSkip] CLAIM`);\n  //     handlePromptStepAnalytics(bbaiStoryGamePromptStepStatus.CLAIM_ACCOUNT);\n  //     // bbaiStore.setPromptStepState(bbaiStoryGamePromptStepStatus.CLAIM_ACCOUNT);\n  //   } else if (e === ClaimLoginSkipOptionsType.LOGIN) {\n  //     console.debug(`[handleClaimLoginSkip] LOGIN`);\n  //     handlePromptStepAnalytics(bbaiStoryGamePromptStepStatus.LOGIN_ACCOUNT);\n  //     // bbaiStore.setPromptStepState(bbaiStoryGamePromptStepStatus.LOGIN_ACCOUNT);\n  //   } else if(e === ClaimLoginSkipOptionsType.SKIP) {\n  //     console.debug(`[handleClaimLoginSkip] DOWNLOAD aka SKIP`);\n  //     handlePromptStepAnalytics(bbaiStoryGamePromptStepStatus.DOWNLOAD_BBDOC);\n  //     // bbaiStore.setPromptStepState(bbaiStoryGamePromptStepStatus.DOWNLOAD_BBDOC);\n  //   }\n  //   else {\n  //     console.error(\"ERROR: unexpected state for claim/login/skip click\")\n  //   }\n  // };\n\n  const generateBBDOC = async (): Promise<void> => {\n    try{\n        console.log(\"CYOA ask platform to generate bbdoc...\", \"Game Data:\", bbaiStore.generatedCYOAGameData )\n        const refreshedToken = await dispatch(validateToken());\n\n        const res = await createCYOABBDoc(refreshedToken, bbaiStore.projectId, bbaiStore.generatedCYOAGameData);\n\n        customEventDataLayerTrigger(\"Web GenAI BBDoc Complete \", userStore.uuid)\n\n        if (res.projectBBDocUrl === undefined) {\n          console.error(\"BBDOC URL is undefined\");\n          throw new Error(\"BBDOC URL is undefined\");\n        }\n\n        console.debug(\"generated bbdoc download link: \", res.projectBBDocUrl);\n        console.log(\"generated bbdoc id: \"+ res.bbdocId)\n        dispatch(setBBWorldBBDocId(res.bbdocId));\n\n        await cyoaConfirmComplete(refreshedToken, bbaiStore.projectId)\n        customEventDataLayerTrigger(\"Web GenAI Complete\", userStore.uuid)\n        dispatch(setConfirmComplete())\n        dispatch(nextStage())\n        // setBBDoc(res.projectBBDocUrl);\n    } catch(error){\n      // TODO: handle error!!! I even added this console message, it was just empty here!\n      console.error(\"Unexpected error while generating bbdoc: \", error)\n      // throw error\n      dispatch(setErrorState({\n        title: \"Error generating Story Game download\",\n        message: bbaiStoryGamePromptOptions[bbaiStore.promptStepStatus]?.errPrompt,\n      }))\n      // bbaiStore.setPromptStepState(bbaiStoryGamePromptStepStatus.ERROR_RESTART_REGENERATE)\n    }\n  }\n\n  \n  return (\n    <>\n      {<PromptMessage promptStage={bbaiStoryGamePromptStepStatus.BUILD_BBDOC} message={bbaiStoryGamePromptOptions.BUILD_BBDOC.prompt} user={bbaiUser}\n        completed={bbaiStore.completed}\n      /> }\n      {/* { bbaiStore.isGuest && <ClaimLoginSkipOptions handleClick={handleClaimLoginSkip}/>} */}\n    </>\n  )\n}\n\nexport default BuildBBDocCYOA","import { AuthResult,  } from \"../constants/GenPrompTypes\";\nimport { BasicUserInfo } from \"../constants/BBPlatform.types\";\nimport {\n  BBDocResponseObj,\n  BBDownloadVersion,\n  ChooseYourOwnAdventureChapterData,\n  ChooseYourOwnAdventureChoiceData,\n  ChooseYourOwnAdventureCustomizationData,\n  CreateTxt2ImgGenerationJobDTO,\n  DownloadPlatforms,\n  ImageGenerationJobCreationResultDTO,\n  PostSSOTokensDTO,\n  templateType,\n  Txt2ImgGenerationJobCreationResultDTO,\n} from \"../constants/GenPrompTypes\";\nimport Env from \"../Env\";\n\nconst UUID_REGEX = /^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$/\n\nexport interface BBPlatformResponse<T> {\n  metadata: any; // TODO - fill this out\n  payload: T;\n}\n\nexport class BBPlatformClientError extends Error {}\n\n/**\n * Indicates that validation failed for our request\n */\nexport class BBPlatform4XXError extends Error {\n  constructor(\n    readonly url: string,\n    readonly status: number,\n    readonly metadata: any\n  ) {\n    super(`Received ${status} from ${url}`);\n  }\n}\n\n/**\n * Indicates that either the user couldn't be authenticated or is not authorized\n */\nexport class BBPlatformClientNotAuthorizedError extends Error {}\n\n/**\n * A simple extending class of BBPlatform4XXError - simply indicates that 500 error was recieved\n */\nexport class BBPlatformServerError extends BBPlatform4XXError {}\n\nexport interface RequestProps {\n  url: string;\n  headers?: {};\n  body?: {};\n  publicEndpoint?: boolean;\n  isAuthRetry?: boolean;\n}\n\nexport type LoginPayload = {\n  user: {\n    Id: string;\n    Email: string;\n    ReferralInfo: any;\n  };\n  userCreated: boolean;\n};\n\nexport interface TimestampedTokens extends AuthResult {\n  timestamp: number;\n}\n\n/** ************************************************************************************************\n * Wrapper class for BBPlatform service endpoints\n *\n * This class is designed to be a static-only/singleton class to avoid needing\n * to pass it down the react component tree\n * and avoid needint to put it in some kind of data store\n * We can revisit this if the singleton pattern presents issues\n ************************************************************************************************* */\nexport class BBPlatformClient {\n  static tokens: TimestampedTokens | null = null;\n\n  /* ***************************************************************************\n   * generic platform-API functions below\n   ************************************************************************** */\n  static setTokens(tokens: (AuthResult & { timestamp: number }) | null): void {\n    if (tokens !== null) {\n      BBPlatformClient.tokens = tokens;\n    } else {\n      BBPlatformClient.tokens = null;\n    }\n  }\n\n  static getUnexpiredTokens(): TimestampedTokens | null {\n    if (BBPlatformClient.isBBWorldMode()) {\n      let injectedToken: string | undefined | null;\n      if (BBPlatformClient.isAndroidJSInterface()) {\n        // Android BBWorld has a magic javascript injector that creates this function\n        // typescript will never be happy about it because it doesn't know\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore\n        injectedToken = Android.fetchBBToken();\n        console.debug(\"Android token injection got token: \", injectedToken);\n      } else {\n        injectedToken = (window as any).BBWorldAccessToken;\n        console.debug(\n          \"Android token injection not available; using window.BBWorldAccessToken: \",\n          injectedToken\n        );\n      }\n\n      if (typeof injectedToken === \"string\") {\n        return {\n          timestamp: Date.now() + 24 * 60 * 60 * 1000,\n          AccessToken: injectedToken,\n        } as TimestampedTokens; // TODO - fix the AuthResult definition in bb-auth-frame to allow for nulls on Refresh and Id tokens\n      } else {\n        console.error(\n          `[BBPlatformClient].getUnexpiredTokens] in bbworld mode, but BBWorldAccessToken tokens not found`\n        );\n        return null;\n      }\n    }\n    if (\n      BBPlatformClient.tokens !== null &&\n      Date.now() - BBPlatformClient.tokens.timestamp < Env.ACCESS_TIMEOUT_MS\n    ) {\n      return BBPlatformClient.tokens;\n    } else {\n      return null;\n    }\n  }\n\n  static isBBWorldMode(): boolean {\n    const bbworldModeValue = new URLSearchParams(\n      (window as any).location.search\n    ).get(\"bbworld_mode\");\n    return (\n      bbworldModeValue !== null && bbworldModeValue.toLowerCase() === \"true\"\n    );\n  }\n\n  // AP: can't be named \"useAndroidJSInterface\" like the param because React (or eslint?) will think it's a hook\n  static isAndroidJSInterface(): boolean {\n    const androidJSInterfaceValue = new URLSearchParams(\n      (window as any).location.search\n    ).get(\"use_android_js_interface\");\n    return (\n      androidJSInterfaceValue !== null &&\n      androidJSInterfaceValue.toLowerCase() === \"true\"\n    );\n  }\n\n  static async apiRequest<T = any>(\n    method: \"get\" | \"post\" | \"put\",\n    props: RequestProps\n  ): Promise<BBPlatformResponse<T>> {\n    const {\n      url,\n      headers: providedHeaders = {\n        \"Content-Type\": \"application/json\",\n        \"webgenai-client-version\": true,\n      },\n      body: bodyJSON,\n      publicEndpoint = false,\n      isAuthRetry = false,\n    } = props;\n    let headers = providedHeaders;\n    if (!publicEndpoint) {\n      const tokens = BBPlatformClient.getUnexpiredTokens();\n      if (tokens !== null) {\n        headers = { ...headers, Token: tokens.AccessToken };\n      } else {\n        throw new BBPlatformClientNotAuthorizedError();\n      }\n    }\n    const body = bodyJSON !== undefined ? JSON.stringify(bodyJSON) : undefined;\n\n    const response = await fetch(url, {\n      method,\n      headers,\n      body,\n    });\n\n    const responseBody = await response.json();\n    // TODO - handle network or parse errors via catch?\n\n    if (response.status >= 200 && response.status < 300) {\n      // a wee bit of validation before we commit this \"any\" to TS land\n      if (\n        typeof responseBody.payload !== \"object\" ||\n        typeof responseBody.metadata !== \"object\"\n      ) {\n        const message = `Unexpected response body format from ${method} ${url}.`;\n        console.error(message);\n        console.error(responseBody);\n        throw new BBPlatformClientError(message);\n      }\n\n      return responseBody;\n    } else if (response.status === 403 || response.status === 401) {\n      BBPlatformClient.tokens = null;\n      if (!isAuthRetry) {\n        // try again - nulling out the accessToken should trigger a token refresh if possible\n        // make sure isAuthRetry is true so we don't end up in an endless loop\n        return await BBPlatformClient.apiRequest(method, {\n          ...props,\n          isAuthRetry: true,\n        });\n      } else {\n        console.error(\n          `[BBPlatformClient] not authorized: ${url} ${response.status} ${responseBody.metadata}`\n        );\n        throw new BBPlatformClientNotAuthorizedError();\n      }\n    } else if (response.status >= 400 && response.status < 500) {\n      throw new BBPlatform4XXError(url, response.status, responseBody.metadata);\n    } else if (response.status >= 500 && response.status < 600) {\n      throw new BBPlatformServerError(\n        url,\n        response.status,\n        responseBody.metadata\n      );\n    } else {\n      const message = `Received unexpected status code from ${method} ${url}: ${response.status}`;\n      throw new BBPlatformClientError(message);\n    }\n  }\n\n  static async apiGet<T = any>(props: RequestProps): Promise<T> {\n    return (await BBPlatformClient.apiRequest<T>(\"get\", props)).payload;\n  }\n\n  static async apiPost<T = any>(props: RequestProps): Promise<T> {\n    return (await BBPlatformClient.apiRequest<T>(\"post\", props)).payload;\n  }\n\n  static async apiPut<T = any>(props: RequestProps): Promise<T> {\n    return (await BBPlatformClient.apiRequest<T>(\"put\", props)).payload;\n  }\n\n  // static async isAuthorized():Promise<boolean> {\n  // let authed = false\n  // try {\n  //   await BBPlatformClient.updateAccessToken()\n  //   authed = true\n  // }\n  // catch (e) {\n  //   console.error(`Got error while checking updating auth tokens`)\n  //   console.error(e)\n  // }\n  // return authed\n  // }\n\n  /* ***************************************************************************\n   * endpoint methods below\n   ************************************************************************** */\n\n  static async login(): Promise<LoginPayload> {\n    return await BBPlatformClient.apiPost<LoginPayload>({\n      url: `${Env.UAM_BASE_URL}/webclientLogin`,\n      body: {},\n    });\n  }\n\n  static async getUserInfo(): Promise<{basicUserInfo: BasicUserInfo, userId: string}> {\n    return await BBPlatformClient.apiGet<{basicUserInfo: BasicUserInfo, userId: string}>({\n      url: `${Env.UAM_BASE_URL}/basicUserInfo`,\n    });\n  }\n\n  static async getGenerateAsset(\n    body: CreateTxt2ImgGenerationJobDTO\n  ): Promise<Txt2ImgGenerationJobCreationResultDTO> {\n    return this.apiPost<any>({\n      url: `${Env.BB2D_BASE_URL}/assetgeneration/txt2img`,\n      body,\n    });\n  }\n\n  static async getAssetGenerationProgress(\n    jobId: string\n  ): Promise<ImageGenerationJobCreationResultDTO> {\n    return await this.apiGet<any>({\n      url: `${Env.BB2D_BASE_URL}/assetgeneration/job/${jobId}/progress`,\n    });\n  }\n\n  // Clipdrop returns an image sync; it doesn't have progress or completion calls\n  static async generateClipdropAsset(\n    body: CreateTxt2ImgGenerationJobDTO\n  ): Promise<Txt2ImgGenerationJobCreationResultDTO> {\n    return this.apiPost<any>({\n      url: `${Env.BB2D_BASE_URL}/assetgeneration/clipdrop/txt2img`,\n      body,\n    });\n  }\n\n  // sorry for the hardcoded image names and other hackery in CYOA\n  static convertBBAICYOADataToPlatformFormat(projectId: string, input: any) : ChooseYourOwnAdventureCustomizationData {\n    console.debug(\"convert to platform format for cyoa data: \", input)\n    // AP: a little hacky but really this whole thing is \n    let output: ChooseYourOwnAdventureCustomizationData = {} as ChooseYourOwnAdventureCustomizationData\n\n    output.projectId = projectId;\n    output.badEndText = input.lose.chapterContent;\n    output.goodEndText = input.win.chapterContent;\n    output.badEndImageFilename = \"lose.png\";\n    output.goodEndImageFilename = \"win.png\";\n    output.title = input.title.title;\n    output.subtitle = input.title.mission;\n    output.titleImageFilename = \"title.png\";\n    output.iconFilename = \"icon.png\";\n    output.backgroundMusicFilename = \"background_music.mp3\"; // TODO: figure this out, it's actually NYI\n\n    // make some chapters...\n    let chapters : ChooseYourOwnAdventureChapterData[] = []\n    for(let ii = 0; ii < input.chapters.length; ii++) {\n      let chapter = input.chapters[ii]\n      console.debug(\"chapter looks like: \", chapter)\n      chapter.description = chapter.chapterContent;\n      chapter.imageFilename = `chapter${ii}.png`\n      let choicesData = chapter.choices\n      let choices : ChooseYourOwnAdventureChoiceData[] = []\n      for(let jj = 0; jj < choicesData.length; jj++) {\n        let choiceData = choicesData[jj]\n        let choice : ChooseYourOwnAdventureChoiceData = {\n          choiceDescription: choiceData.choiceDescription,\n          coinsDelta: choiceData.coinsDelta,\n          healthDelta: choiceData.healthDelta,\n          resultDescription: choiceData.resultDescription,\n        }\n        choices.push(choice)\n      }\n      chapter.choices = choices\n      chapters.push(chapter)\n    }\n    output.chapters = chapters\n\n\n    return output\n  }\n\n  static async emplaceCYOAResource(\n    projectId: string,\n    filename: string,\n    url: string\n  ): Promise<any> {\n    let data = {\n      projectId: projectId,\n      filename: filename,\n      url: url,\n    }\n    return await this.apiPost<any>({\n      url: `${Env.BB2D_BASE_URL}/cyoa/emplace`,\n      body: data\n    });    \n  }\n\n  static async createCYOABBDoc(\n    projectId: string,\n    gameData: any\n  ): Promise<any> {\n    let data = BBPlatformClient.convertBBAICYOADataToPlatformFormat(projectId, gameData)\n    return await this.apiPost<any>({\n      url: `${Env.BB2D_BASE_URL}/cyoa/cyoa`, // yes, two cyoas\n      body: data\n    });    \n  }\n\n  static async createBBDocRandomFile(body: {\n    characterImage: string;\n    obstacleImage: string;\n    backgroundImage: string;\n  }): Promise<any> {\n    const index = Math.floor(Math.random() * Object.keys(templateType).length);\n    const randomTemplateType = Object.values(templateType)[index];\n\n    // will return URL of the generated file os s3 bucket\n    return await this.apiPost<any>({\n      url: `${Env.BB2D_BASE_URL}/assetgeneration/createbbdoc`,\n      body: {\n        ...body,\n        templateType: templateType[randomTemplateType],\n        //templateType: templateType[\"WORLD\"]\n      },\n    });\n  }\n\n  static async getAssetImages(\n    jobId: string\n  ): Promise<{ jobId: string; presignedUrls: string[] }> {\n    return await this.apiGet<any>({\n      url: `${Env.BB2D_BASE_URL}/assetgeneration/job/${jobId}/result`,\n    });\n  }\n\n  static async downloadBuildboxClient(\n    platformDesired: any,\n    version: keyof typeof BBDownloadVersion\n  ) {\n    return new Promise((resolve) => {\n      if (!platformDesired) {\n        // try to auto detect platform from browser\n        const platform = (window as any).navigator.platform;\n\n        if (platform) {\n          const macosPlatforms = [\"Macintosh\", \"MacIntel\", \"MacPPC\", \"Mac68K\"];\n          const windowsPlatforms = [\"Win32\", \"Win64\", \"Windows\", \"WinCE\"];\n\n          const foundMatch = (str: string) => str.includes(platform);\n          if (windowsPlatforms.some(foundMatch)) {\n            platformDesired = DownloadPlatforms.WINDOWS;\n          } else if (macosPlatforms.some(foundMatch)) {\n            platformDesired = DownloadPlatforms.MAC;\n          } else {\n            console.debug(\n              \"unable to automatically determine download platform from \",\n              platform\n            );\n            platformDesired = DownloadPlatforms.UNKNOWN;\n\n            const dataLayer =\n              ((window as any)[\"dataLayer\"] && (window as any)[\"dataLayer\"]) ||\n              [];\n            dataLayer.push({\n              event: \"couldNotDeterminePlatformDownload\",\n              payload: true,\n            });\n          }\n        } else {\n          console.debug(\"unable to automatically determine download platform\");\n          platformDesired = DownloadPlatforms.UNKNOWN;\n\n          const dataLayer = ((window as any).dataLayer =\n            (window as any).dataLayer || []);\n          dataLayer.push({\n            event: \"platformInfoNotAvailableDownload\",\n            payload: true,\n          });\n        }\n      }\n\n      // download!\n      if (platformDesired === DownloadPlatforms.MAC) {\n        console.debug(\"auto downloading for mac!!!!!!\");\n\n        //TODO: Update GTM tags to track BB2\n\n        const downloadLink = BBDownloadVersion[version].MAC;\n        // const downloadType = BBDownloadVersion[version].APP;\n\n        (window as any).location.href = downloadLink;\n\n        const dataLayer = ((window as any).dataLayer =\n          (window as any).dataLayer || []);\n        dataLayer.push({\n          event: \"macDownload\",\n          payload: true,\n        });\n\n        // const savedGoogleClientId = localStorage.getItem(\"googleClientId\");\n        // BBPlatformClient.sendDownloadAnalytics(savedGoogleClientId, downloadType);\n\n        resolve(downloadLink);\n      } else if (platformDesired === DownloadPlatforms.WINDOWS) {\n        console.debug(\"auto downloading for windows!!!!!!\");\n\n        //TODO: Update GTM tags to track BB2\n\n        const downloadLink = BBDownloadVersion[version].WIN;\n        // const downloadType = BBDownloadVersion[version].APP;\n\n        (window as any).location.href = downloadLink;\n\n        const dataLayer = ((window as any).dataLayer =\n          (window as any).dataLayer || []);\n        dataLayer.push({\n          event: \"winDownload\",\n          payload: true,\n        });\n\n        // const savedGoogleClientId = localStorage.getItem(\"googleClientId\");\n\n        // BBPlatformClient.sendDownloadAnalytics(savedGoogleClientId, downloadType);\n\n        resolve(downloadLink);\n      } else {\n        console.debug(\"attempted download on non-mac/win platform\");\n\n        const dataLayer = ((window as any).dataLayer =\n          (window as any).dataLayer || []);\n        dataLayer.push({\n          event: \"unknownPlatformDownload\",\n          payload: true,\n        });\n\n        resolve(false);\n      }\n    }); // end of promise wrapper\n  }\n\n  // Now handleed at the createBBDocRandomFile myabe need in the future for another set of steps\n  // static async uploadBBDocFile(body: UploadBBDocDTO):Promise<any> {\n  //   return await this.apiPost<any>({\n  //     url: `${Env.BB2D_BASE_URL}/bbdoc/upload`,\n  //     body\n  //   })\n  // }\n\n  static async createUserDownloadsRequest(clientId: any, version: string) {\n    let error;\n    for (let ii = 0; ii < 5; ii++) {\n      try {\n        let resp = await BBPlatformClient.sendUserDownloadRequestAnalytics(\n          clientId,\n          version\n        );\n        console.debug(\"cudr result on try \", ii, resp);\n        return resp;\n      } catch (err) {\n        console.error(\"cudr error: \", err);\n        error = err;\n      }\n    }\n\n    console.debug(\"throw cudr error: \", error);\n    throw error;\n  }\n  static async sendUserDownloadRequestAnalytics(\n    clientId: any,\n    version: string\n  ): Promise<any> {\n    return new Promise((resolve, reject) => {\n      this.apiPost<any>({\n        url: `${Env.UAM_BASE_URL}/analytics/download`,\n        body: {\n          clientId: clientId,\n          app: version,\n        },\n        headers: {\n          \"Content-Type\": \"application/json\",\n        },\n      })\n        .then((res: any) => {\n          if (res.status === 200 || res.status === 201) {\n            resolve(res.data);\n          }\n        })\n        .catch((error: any) => {\n          if (error) {\n            console.debug(\n              error,\n              \"error caught in createUserDownloadsRequest: \",\n              error\n            );\n            console.debug(\"errrrrrorrrrr \", error);\n            reject(error);\n          }\n        });\n    });\n  }\n\n  static async sendDownloadAnalytics(googleClientId: any, version: any) {\n    try {\n      console.debug(googleClientId, \"Downloads Component: send client id\");\n      console.debug(version, \"Downloads Component: app:\", version);\n\n      const analyticsResponse =\n        await BBPlatformClient.createUserDownloadsRequest(\n          googleClientId,\n          version\n        );\n      console.debug(\n        analyticsResponse,\n        \"Downloads Component: Response from /createUserDownloadsRequest\"\n      );\n    } catch (error) {\n      console.error(\n        error,\n        \"Downloads Component: Error caught from sendDownloadAnalytics\"\n      );\n    }\n  }\n\n  static async getUserBBDocs(limit:number=10,offset:number=0): Promise<BBDocResponseObj[]> {\n    const result = await this.apiGet<{bits:BBDocResponseObj[]}>({\n      url: `${Env.BB_WORLD_BASE_URL}/bbdoc/owned?runtime=BBClassic&limit=10&offset=0`\n    })\n    return result.bits\n  }\n\n  static async getBBDocDownloadLink(bbdocId:string):Promise<string> {\n    const validUUID = UUID_REGEX.test(bbdocId) // make sure it's a UUID and not some sill XSS attack\n    if (!validUUID) {\n      throw new BBPlatformClientError(\"Invalid BBDoc ID\")\n    }\n    const result = await this.apiGet<{url:string}>({\n      url: `${Env.BB2D_BASE_URL}/assetgeneration/bbdoc/download/${bbdocId}`\n    })\n    console.warn(result)\n    return result.url\n  }\n\n  static openBBWorld(bbDocId:string=\"\"):void {\n    console.debug(\"play bit\", `${Env.BB_DEEP_LINK}${bbDocId}`)\n\n    window.location.replace(`${Env.BB_DEEP_LINK}${bbDocId}`);\n  }\n\n  static async testError(): Promise<any> {\n    throw new BBPlatformClientError(\"test error\");\n  }\n\n  static async getSSOToken( ssoTokenDTO:PostSSOTokensDTO ): Promise<string> {\n    const result = await this.apiPost<{ id: string }>({\n      url: `${Env.UAM_BASE_URL}/ssoTokens`,\n      body: {\n        ...ssoTokenDTO\n      },\n    })\n\n    return result.id\n  }\n\n  static async cyoaNewId (): Promise<string> {\n    const result =  await this.apiPost<any>({\n      url: `${Env.BB2D_BASE_URL}/cyoa/newId`,\n    })\n\n    return result.projectId\n  }\n\n  static async cyoaConfirmComplete  (projectId:string): Promise<any> {\n    return await this.apiPost<any>({\n      url: `${Env.BB2D_BASE_URL}/cyoa/complete`,\n      body: {\n        projectId\n      }\n    })\n  }\n\n\n  static async getCYOABBDocDownloadLink(projectId:string):Promise<{url:string, expiresIn:string}> {\n    const validUUID = UUID_REGEX.test(projectId) // make sure it's a UUID and not some sill XSS attack\n    if (!validUUID) {\n      throw new BBPlatformClientError(\"Invalid BBDoc ID\")\n    }\n    const result = await this.apiGet<{url:string, expiresIn:string}>({\n      url: `${Env.BB2D_BASE_URL}/cyoa/bbdoc/download/${projectId}`\n    })\n    console.warn(result)\n\n    return {url: result.url, expiresIn: result.expiresIn}\n  }\n\n  static async getUserData(): Promise<any>{\n    const result = await this.apiPost<any>({\n      url: `${Env.UAM_BASE_URL}/webclientLogin`,\n    })\n\n    return result\n  }\n\n  static async getBalance(): Promise<{ balance: number,  creditsUsed: number}>{\n    const result = await this.apiGet<{ balance: number,  creditsUsed: number}>({\n      url: `${Env.BB2D_BASE_URL}/cyoa/balance`,\n    })\n\n    return result\n  }\n  \n  static async getFirebaseShortenDeepLink(bitId:string): Promise<string> {\n    const result =  await this.apiGet<{url:string}>({\n      url: `${Env.BB_WORLD_BASE_URL}/firebaseShortLink/${bitId}`,\n    })\n\n    console.log(\"here is the result\", result)\n    return result.url\n  }\n}\n","import React, { FunctionComponent, useState } from 'react';\nimport { Button } from 'antd';\nimport styles from '../../../styles/AnimatedButton.module.css';\n\nexport interface AnimatedButtonProps {\n    handleClick?: () => void;\n    text: string;\n}\n\nconst AnimatedButton: FunctionComponent<AnimatedButtonProps> = ({text, handleClick}) => {\n  const [isAnimating] = useState(true);\n  const [buttonRadius] = useState(100);\n\n  return (\n    <Button\n      className={isAnimating ? `${styles.animatedButton}` : ''}\n      shape=\"circle\"\n      style={{ width: buttonRadius, height: buttonRadius }}\n      onClick={handleClick}\n      type=\"primary\"\n    >\n      {text}\n    </Button>\n  );\n};\n\nexport default AnimatedButton;\n","import React from 'react'\nimport { useSelector } from 'react-redux';\nimport currentStoryGame from '../../../selectors/currentStoryGame';\nimport styles from '../../../styles/PreviewBit.module.scss'\n\nconst PreviewBit = () => {\n  const bbaiStore = useSelector(currentStoryGame);\n\n  const css = {\n    backgroundImage: `url(\"data:image/gif;base64,${bbaiStore.titleImage}\")`, // index change\n    backgroundPosition: \"center\",\n    backgroundSize: \"cover\",\n  };\n\n  return (\n    <>\n      <div className={styles.container} style={bbaiStore.titleImage ? css : {}}>\n        <div className={styles.previewBitContainer}>\n          <div>\n            <div className={styles.bgInfoBase}>\n              <p className={styles.textInfoTitle} >{bbaiStore.generatedCYOAGameData.title.title}</p>\n            </div>\n            <div className={styles.bgInfoBase}>\n              <p className={styles.textInfoMission}>{bbaiStore.generatedCYOAGameData.title.mission}</p>\n            </div>\n          </div>\n          <div className={styles.startImgContainer}>\n            <img src={\"https://frontend-assets.buildbox.com/Start.png\"} alt=\"start\" className={styles.startImg}/>\n          </div>\n        </div>\n      </div>\n    </>\n  )\n}\n\nexport default PreviewBit\n","import React, {ReactElement, useEffect, useState} from 'react';\nimport { BBPlatformClient } from '../../../api/BBPlatform';\nimport currentStoryGame from \"../../../selectors/currentStoryGame\";\nimport { Col, QRCode, Row } from 'antd';\nimport styles from \"../../../styles/PromptMessage.module.css\";\nimport { bbaiStoryGamePromptOptions, bbaiUser } from '../constants/bbai.prompts';\nimport AnimatedButton from './AnimatedButton';\nimport downloadStyles from \"../../../styles/DownloadLink.module.css\";\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setBBDocUrl, setErrorState } from '../../../actions/storyGame';\nimport useIsMobile  from '../../../hooks/useIsMobile';\nimport Env from '../../../Env';\nimport { validateToken } from '../../../actions/auth';\nimport { getCYOABBDocDownloadLink, getFirebaseShortenDeepLink } from '../../../api/storyGame';\nimport PreviewBit from './PreviewBit';\n\nenum FileType {\n    BBCLASSIC_INSTALLER = \"bbclassic_installer\",\n    BBDOC = \"bbdoc\",\n}\n\nexport const DownloadBBDocCYOA = (): ReactElement => {\n  const [bbdoc, setBBDoc] = useState<string | null>(null)\n  // const [urlExpireTime, setUrlExpireTime] = useState<number>(0)\n  const {isMobile} = useIsMobile()\n  const bbaiStore = useSelector(currentStoryGame)\n  const dispatch = useDispatch()\n  const [dynamicLink, setDynamicLink] = useState<string | null>(null)\n\n  useEffect(() => {\n    getBBDOC()\n    // eslint-disable-next-line\n  }, [])\n\n  const downloadBBDOC = async () => {\n    // console.log(\"testing date logic\", urlExpireTime < (new Date().getTime() ))\n    if (!bbdoc) {\n      console.log(\"bbdoc no longer exists, regenerating\", bbdoc)\n      // unauthorizedErrorHandler?.();\n      await getBBDOC();\n      return;\n\n    }\n    const a = document.createElement(\"a\");\n    a.download = \"StoryGame.bbdoc\";\n    a.href = bbdoc;\n    const clickEvt = new MouseEvent(\"click\", {\n      view: window,\n      bubbles: true,\n      cancelable: true,\n    });\n    a.dispatchEvent(clickEvt);\n    a.remove();\n  };\n\n  const getBBDOC = async (): Promise<void> => {\n    try {\n      if( bbaiStore.bbworldBBDocId !== \"\"){\n      const refreshedToken = await dispatch(validateToken());\n\n        const res = await getCYOABBDocDownloadLink(refreshedToken, bbaiStore.projectId)\n        const deepLink = await getFirebaseShortenDeepLink(refreshedToken, bbaiStore.bbworldBBDocId)\n        console.debug(\"firebase shorten deepLink: \", deepLink)\n        setBBDoc(res.url)\n        setDynamicLink(deepLink)\n        dispatch(setBBDocUrl(res.url))\n      } else {\n        console.error(\"error: bbdoc id is empty\")\n\n      }\n    } catch (error) {\n      console.error(\"Error: \", error);\n    }\n  };\n\n  const handleClickDownloadBBDOC = async (fileType: FileType) => {\n    try{\n\n      if (isMobile) {\n        if(dynamicLink){\n          window.location.replace(dynamicLink)\n        } else {\n          BBPlatformClient.openBBWorld(bbaiStore.bbworldBBDocId)\n        }\n        \n      } else if (fileType === FileType.BBDOC) {\n        downloadBBDOC();\n      } else if (fileType === FileType.BBCLASSIC_INSTALLER) {\n        await BBPlatformClient.downloadBuildboxClient(null, \"BB2\");\n      }\n      else {\n        console.error(\"error: unexpected state for download click\")\n      }\n    } catch(error){\n      console.error(\"error: \", error)\n      // TODO: handle error\n      dispatch(setErrorState({\n        title: \"Error generating Story Game download\",\n        message: bbaiStoryGamePromptOptions[bbaiStore.promptStepStatus]?.errPrompt,\n      }));\n    }\n  };\n\n  const MobileRender = () => {\n    return (\n      <div>\n        <p>{bbaiStoryGamePromptOptions[\"COMPLETE_MOBILE\"].prompt}</p>\n        <AnimatedButton text={\"Play Bit!\"} handleClick={playBit} />\n      </div>\n    );\n  };\n\n  const playBit = () => {\n    // sendCustomEvent(\"play_bit\")\n    handleClickDownloadBBDOC(FileType.BBDOC);\n    // window.location.replace( `${Env.BB_DEEP_LINK}${bbdocBitId ? bbdocBitId : \"\"}`);\n  }\n\n  const DesktopRender = () => {\n    return (\n      <div>\n        <div style={{ textAlign: \"center\"}}>\n          With Buildbox World you can explore and play exciting bits…\n          <div style={{margin: \"12px\"}}/>\n          <div  className={styles.qrContainer}>\n           { dynamicLink ? <QRCode value={dynamicLink} bgColor={\"white\"}/>  :  <img src={Env.QR_BB_WORLD} alt=\"buildbox world qr\"/> }\n          </div>\n        </div>\n        <p>{bbaiStoryGamePromptOptions[\"COMPLETE\"].prompt}</p>\n        <ol style={{textAlign: \"left\", padding: \".5em\", marginTop: \"1em\"}}>\n          <li>\n            Download and install Buildbox Classic:\n            <br />{\" \"}\n            <div className={downloadStyles.downloadLink}>\n              <img className={downloadStyles.downloadLinkIcon} width={18} src={\"https://frontend-assets.buildbox.com/web-gen-ai/BuildboxClassicLogo.svg\"} alt=\"Buildbox Classic Installer\" /> <span className={styles.fancyText} onClick={() => handleClickDownloadBBDOC(FileType.BBCLASSIC_INSTALLER)}>Buildbox Classic Installer</span>\n            </div>\n          </li>\n          <li>\n            Download your project file:\n            <br />{\" \"}\n            <div className={downloadStyles.downloadLink}>\n              <img className={downloadStyles.downloadLinkIcon} width={18} src={\"https://frontend-assets.buildbox.com/web-gen-ai/bbdoc@2x.png\"} alt=\"StoryGame.bbdoc\" /> <span  className={styles.fancyText} onClick={() => handleClickDownloadBBDOC(FileType.BBDOC)}>Your game.bbdoc</span>\n            </div>\n          </li>\n          <li>Open the .bbdoc file in Buildbox Classic to edit it today!</li>\n        </ol>\n      </div>\n    );\n  };\n  \n  return (\n    <>\n     <Row\n        className={`${styles.promptMessage} ${styles.promptFeedbackBBAI}`}\n      >\n        <Col xs={4} sm={3} md={3} lg={2} xl={2}>\n          <img className={styles.senderImg} src={bbaiUser.pic} alt=\"sender\" />\n        </Col>\n        <Col xs={20} sm={21} md={21} lg={22} xl={22}>\n           <PreviewBit/>\n          {isMobile ? <MobileRender /> : <DesktopRender/>}\n        </Col>\n      </Row>\n    </>\n  )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { bbaiStoryGamePromptOptions, bbaiStoryGamePromptStepStatus, bbaiUser } from '../constants/bbai.prompts'\nimport currentStoryGame from \"../../../selectors/currentStoryGame\";\nimport PromptMessage from './PromptMessage'\nimport { v4 as uuidv4 } from \"uuid\";\nimport currentUserInfo from \"../../../selectors/currentUserInfo\";\nimport { customEventDataLayerTrigger } from '../../../api/GoogleTagManager'\nimport { useDispatch, useSelector } from 'react-redux';\n// import { BBPlatformClient } from '../../../api/BBPlatform';\nimport { nextStage, setAllAssetsGenerated, setErrorState, setGeneratedCYOAGameData, setProjectId, setTitleImage } from '../../../actions/storyGame';\nimport { validateToken } from '../../../actions/auth';\nimport { cyoaNewId, emplaceCYOAResource, generateClipdropAsset, getBalance } from '../../../api/storyGame';\n\nexport const GeneratingGameAssetsCYOA = () => {\n\n  const bbaiStore = useSelector(currentStoryGame)\n  const userStore = useSelector(currentUserInfo);\n  const dispatch = useDispatch()\n  // const userStore = useSelector(currentUserInfo);\n  const genAssetsRan = useRef(false) // make sure the useFfect fetch call only \n  const startTimer = useRef(false)\n  const [generatedDataSuccess, setGeneratedDataSucesss] = useState<boolean>(false)\n\n  useEffect(() => {\n    if (bbaiStore.generatedCYOAGameData === null) {\n      return;\n    }\n    if(!genAssetsRan.current && !bbaiStore.completed) {\n      startTimer.current = true\n      generateCYOAGameAssets();\n\n    }\n\n    if(bbaiStore.completed){\n      dispatch(nextStage())\n    }\n    return () => {\n      // allow the items to run once here\n      genAssetsRan.current = true\n    }\n    // eslint-disable-next-line\n  }, [ bbaiStore.generatedCYOAGameData ]);  \n\n  const generateCYOAGameAssets = async() => {\n    // TODO: remove debug\n    let skipGenerate = false\n    try {\n      const refreshedToken = await dispatch(validateToken());\n      const userCreditsInfo = await getBalance(refreshedToken)\n\n      if (userCreditsInfo.balance < 1) {\n        skipGenerate = true;\n\n        // bbaiStore.setPromptStepState(bbaiStoryGamePromptStepStatus.ERROR_RESTART_REGENERATE)\n      }\n\n    if (bbaiStore.generatedCYOAGameData === null) { \n      console.error(\"ERROR: no game data to generate assets from\")\n    }\n\n    if(skipGenerate) {\n      console.log(\"skipping generating CYOA game assets\")\n    }\n    else {\n      console.log(\"generating CYOA game assets\")\n      const refreshedToken = await dispatch(validateToken());\n\n      const newProjectID = await cyoaNewId(refreshedToken)\n      dispatch(setProjectId(newProjectID))\n      //TODO: remove the project id from the known state.\n\n      // things to do...\n      let jobRequest = {\n        prompt: \"\",\n        costInVC: 0,\n        disableSuggestedOptimizations: true,\n        jobId: uuidv4(),\n        width: 512,\n        height: 896,\n        removeBackground: false,\n        seed: Math.floor(Math.random() * 1000000),\n        webCYOASaveCopyToS3Filename: \"\",\n        webCYOAProjectId: newProjectID,\n        projectId: newProjectID,\n      }\n\n      let promisesImages:any[] = []\n\n      console.log(\"generating CYOA game assets\", bbaiStore.generatedCYOAGameData)\n      // create title screen image\n      jobRequest.jobId = uuidv4()\n      jobRequest.webCYOASaveCopyToS3Filename = \"title.png\"    \n      jobRequest.prompt = bbaiStore.generatedCYOAGameData.title.imageDescription\n      promisesImages.push(generateClipdropAsset(refreshedToken, jobRequest))\n\n      // create win screen image\n      jobRequest.jobId = uuidv4()\n      jobRequest.webCYOASaveCopyToS3Filename = \"win.png\"    \n      jobRequest.prompt = bbaiStore.generatedCYOAGameData.win.imageDescription\n      promisesImages.push(generateClipdropAsset(refreshedToken, jobRequest))\n\n      // create lose screen image\n      jobRequest.jobId = uuidv4()\n      jobRequest.webCYOASaveCopyToS3Filename = \"lose.png\"    \n      jobRequest.prompt = bbaiStore.generatedCYOAGameData.lose.imageDescription\n      promisesImages.push(generateClipdropAsset(refreshedToken, jobRequest))\n\n      // create all chapter images\n      let chapterInfo: any[] = bbaiStore.generatedCYOAGameData.chapters\n      for(let ii = 0; ii < chapterInfo.length; ii++) {\n        const chapter : any = chapterInfo[ii]\n        jobRequest.jobId = uuidv4()\n        jobRequest.webCYOASaveCopyToS3Filename = `chapter${ii}.png`    \n        jobRequest.prompt = chapter.imageDescription\n        promisesImages.push(generateClipdropAsset(refreshedToken, jobRequest))\n      }\n\n      // create icon? NYFI\n      jobRequest.jobId = uuidv4()\n      jobRequest.webCYOASaveCopyToS3Filename = \"icon.png\"\n      jobRequest.width = 512\n      jobRequest.height = 512\n      jobRequest.prompt = \"Make an app icon for a game: \" + bbaiStore.generatedCYOAGameData.title.title + \" \" + bbaiStore.generatedCYOAGameData.title.mission //bbaiStore.generatedCYOAGameData.iconImageDescription\n      promisesImages.push(generateClipdropAsset(refreshedToken, jobRequest))   \n\n      // TODO: get music?\n      // for now let's hardcode it since I'm missing a prompt to send to our system to get a url\n      // until then, we'll just put a url manually\n      let musicUrl = \"https://frontend-assets.dev.8cell.com/bg.mp3\"\n      await emplaceCYOAResource( refreshedToken, newProjectID, \"background_music.mp3\", musicUrl)\n\n      const values = await Promise.all(promisesImages)\n    \n      customEventDataLayerTrigger(\"Web GenAI Images Complete\", userStore.uuid)\n\n      await emplaceCYOAResource(refreshedToken, newProjectID, \"background_music.mp3\", musicUrl)\n      customEventDataLayerTrigger(\"Web GenAI Sound Complete\", userStore.uuid)\n\n\n      // console.debug(\"asset generation complete!\", values)\n      // await BBPlatformClient.cyoaConfirmComplete(newProjectID)\n\n      dispatch(setTitleImage(values[0].image))\n      \n      setGeneratedDataSucesss(true)\n      dispatch(setAllAssetsGenerated(true))\n      // bbaiStore.setPromptStepState(bbaiStoryGamePromptStepStatus.BUILD_BBDOC);\n      \n      dispatch(nextStage())\n    }\n    } catch (err) {\n      console.error(\"ERROR: while generating game assets: \", err)\n      skipGenerate = true\n        dispatch(setErrorState({\n          title: \"Error generating Story Game assets\",\n          message: bbaiStoryGamePromptOptions[bbaiStore.promptStepStatus]?.errPrompt,\n        }));     \n        dispatch(setGeneratedCYOAGameData(null))\n        // bbaiStore.setPromptStepState(bbaiStoryGamePromptStepStatus.ERROR_RESTART_REGENERATE)\n    }\n  }\n   return (\n    <>\n      <PromptMessage promptStage={bbaiStoryGamePromptStepStatus.GENERATING_GAME_ASSETS} message={bbaiStoryGamePromptOptions.GENERATING_GAME_ASSETS.prompt} user={bbaiUser}\n      loading={startTimer.current} successReport={generatedDataSuccess}\n      error={bbaiStore.error !== undefined}\n      completed={bbaiStore.completed}\n      /> \n    </>\n  )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { bbaiStoryGamePromptOptions, bbaiStoryGamePromptStepStatus, bbaiUser } from '../constants/bbai.prompts'\nimport PromptMessage from './PromptMessage'\nimport currentStoryGame from \"../../../selectors/currentStoryGame\";\n// import { BBAIPlatformClient } from '../../../api/BBAIPlatform'\nimport { customEventDataLayerTrigger } from '../../../api/GoogleTagManager'\nimport currentUserInfo from \"../../../selectors/currentUserInfo\";\nimport { useDispatch, useSelector } from 'react-redux';\nimport { nextStage, setErrorState, setGeneratedCYOAGameData, setPromptStepState } from '../../../actions/storyGame';\nimport { validateToken } from '../../../actions/auth';\nimport { cyoaGameAsJson } from '../../../api/storyGame';\n\nconst GeneratingGameDataCYOA = () => {\n\n  const bbaiStore = useSelector(currentStoryGame)\n  const userStore = useSelector(currentUserInfo);\n  const generateDataCYOA = useRef<boolean>(false) // make sure the useFfect fetch call only runs once\n  const startTimer = useRef(false)\n  const [generatedDataSuccess, setGeneratedDataSucesss] = useState<boolean>(false)\n  const dispatch = useDispatch()\n\n  useEffect(() => { \n    let interval: any;\n    /// TODO: generate the game data here, then next step\n    \n    if(bbaiStore.userStoryPrompt.length > 0 && generateDataCYOA.current === false && !bbaiStore.completed){\n      const bodyGenAI = {\n        UserID: userStore.uuid,\n        genai_question: bbaiStoryGamePromptOptions[\"INITIAL\"].prompt,\n        genai_user_response: bbaiStore.userStoryPrompt,\n        genai_skipped: false,\n      }\n      customEventDataLayerTrigger(\"Web GenAI Prompt\", userStore.uuid, bodyGenAI)\n      startTimer.current = true\n      generateCYOAGameData(bbaiStore.userStoryPrompt)\n      \n    }\n\n    if(bbaiStore.completed){\n      console.log(\"is it completed? \", bbaiStore.completed)\n      dispatch(nextStage())\n    }\n\n    return () => {\n      generateDataCYOA.current = true\n      clearInterval(interval);\n    }\n    // eslint-disable-next-line\n  }, [])\n\n  const generateCYOAGameData = async(\n    userPrompt: string,\n  ) => {\n      \n    dispatch(setPromptStepState(bbaiStoryGamePromptStepStatus.GENERATING_GAME_DATA))\n    const numberOfChapters = 10\n    // even this request can take awhile, I'm nervous to await it... ?\n    // console.log(\"request cyoa with user input: \", userPrompt, \" and \", numberOfChapters, \" chapters\")\n    // TODO: catch and handle error?\n\n    try{\n      const refreshedToken = await dispatch(validateToken());\n      const genJob = await cyoaGameAsJson(refreshedToken, userPrompt, numberOfChapters)\n      console.log(\"got game data: \", genJob)\n      dispatch(setGeneratedCYOAGameData(genJob))\n      \n      customEventDataLayerTrigger(\"Web GenAI Generate\", userStore.uuid)\n      \n      setGeneratedDataSucesss(true)\n      dispatch(nextStage())  \n      // AP: move on to generate assets automatically? how?\n      console.log(\"got game data; TODO: generate assets from it\")  \n    } catch(err) {\n      console.error(\"ERROR: \", err)\n      dispatch(setErrorState({\n        title: \"Error Generating Story Game Data\",\n        message: \"There was an error generating your Story game data. Please try again later.\",\n      }));\n      startTimer.current = false\n      // unauthorizedErrorHandler?.();\n      // bbaiStore.setPromptStepState(bbaiStoryGamePromptStepStatus.ERROR_RESTART_REGENERATE)\n    }\n  }\n  return (\n    <>\n     <PromptMessage promptStage={bbaiStoryGamePromptStepStatus.GENERATING_GAME_DATA} message={bbaiStoryGamePromptOptions.GENERATING_GAME_DATA.prompt} user={bbaiUser}\n      loading={startTimer.current} successReport={generatedDataSuccess}\n      error={bbaiStore.error !== undefined}\n      completed={bbaiStore.completed}\n      />\n    </>\n  )\n}\n\nexport default GeneratingGameDataCYOA","import React, { FunctionComponent } from \"react\";\n// import useNewCYOAStore from \"../../../newCYOAStore\";\nimport styles from \"../../../styles/PromptMessage.module.css\";\nimport { useHistory } from \"react-router-dom\";\n\ninterface LoginPromptProps {\n}\nconst LoginPrompt: FunctionComponent<LoginPromptProps> = () => {\n    const history = useHistory();\n    const handleLogin = () => {\n\n        history.push(\"/login\")\n    }\n    return (\n        <>\n            <p>\n                To continue, <span className={styles.fancyText} onClick={() => handleLogin()}>Create an Account</span> or <span className={styles.fancyText} onClick={() => handleLogin()}>Log-In</span>\n            </p>\n        </>\n    );\n}\n\nexport default LoginPrompt;","// import { BBPlatformClient } from \"../api/BBPlatform\";\n// import { PostSSOTokensDTO } from \"../constants/GenPrompTypes\";\n// import jwt, { JwtPayload }  from 'jwt-decode'\n// import Env from \"../Env\";\n\n\nexport const generateTokenForSSO = async (): Promise<string> => {\n\n  // const tokens = BBPlatformClient.getUnexpiredTokens()\n\n  const tokens = \"\"\n\n  if(!tokens){\n    console.debug(\"No tokens founds\")\n    return \"\"\n  }\n\n  // const decodedToken = jwt<JwtPayload>(tokens.AccessToken)\n\n  // if(decodedToken.exp === undefined || decodedToken.exp > (new Date().getTime())){\n  //   console.debug(\"Access token expired, generating new token\")\n  //   return \"\"\n  // }\n\n  // const reqBody:PostSSOTokensDTO = {\n  //   clientId: Env.APP_CLIENT_ID,\n  //   clientSecret: \"\",\n  //   refreshToken: tokens.RefreshToken,\n  //   accessToken: tokens.AccessToken,\n  // }\n  \n  // const token = await BBPlatformClient.getSSOToken(reqBody);\n  \n  const token = \"\"\n  return token\n}\n","import React from 'react'\nimport { Col, Row } from 'antd'\nimport { bbaiUser } from '../constants/bbai.prompts'\nimport styles from \"../../../styles/PromptMessage.module.css\";\n// import currentStoryGame from \"../../../selectors/currentStoryGame\";\nimport { generateTokenForSSO } from '../../../utils/CognitoHelper';\nimport Env from '../../../Env';\n\nconst ErrorOutOfCreditsCYOA = () => {\n\n  const navigateTo = (url: string) => {\n     window.location.replace(url);\n  }\n\n  const setTokenQuery = async (baseUrl: string) => {\n\n    console.log(\"WE are here lets goo\")\n    const token = await generateTokenForSSO()\n    \n    const urltoken = token === \"\"? baseUrl : `${baseUrl}?token=${token}`\n\n    console.debug(\"setTokenQuery\", urltoken)\n    navigateTo(urltoken);\n  }\n  \n  return (\n    <>\n      <Row\n        className={`${styles.promptMessage} ${ styles.promptFeedbackBBAI}`}\n      >\n        <Col xs={4} sm={3} md={3} lg={2} xl={2}>\n          <img className={styles.senderImg} src={bbaiUser.pic} alt=\"sender\" />\n        </Col>\n        <Col xs={20} sm={21} md={21} lg={22} xl={22}>\n          <p>\n            Our AI loved making free StoryGames for you! They are ready to make more for you once you upgrade to any paid plan by tapping <a href='/#' onClick={() => setTokenQuery(Env.VIEW_PLANS_URL as string)}>HERE</a>\n          </p>\n        </Col>\n      </Row>\n    </>\n  )\n}\n\nexport default ErrorOutOfCreditsCYOA","import React,{ ReactElement, useEffect, useState } from 'react'\nimport { bbaiStoryGamePromptOptions, bbaiStoryGamePromptStepStatus, bbaiUser, defaultUser } from '../constants/bbai.prompts'\nimport PromptMessage from './PromptMessage'\nimport currentStoryGame from \"../../../selectors/currentStoryGame\";\nimport LoginPrompt from './LoginPrompt'\n// import { BBPlatformClient } from '../../../api/BBPlatform'\nimport ErrorOutOfCreditsCYOA from './ErrorOutOfCreditsCYOA'\nimport { useDispatch, useSelector } from 'react-redux';\nimport { nextStage, setErrorState } from '../../../actions/storyGame';\nimport { validateToken } from '../../../actions/auth';\nimport { getBalance } from '../../../api/storyGame';\nimport currentUserInfo from '../../../selectors/currentUserInfo';\n\nconst InitialCYOAPrompt = (): ReactElement  => {\n  const [userStoryPrompt, setUserStoryPrompt] = useState<string>(\"\")\n  const [notEnoughCreditsError, setNotEnoughCreditsError] = useState<boolean>(false)\n\n  const bbaiStore = useSelector(currentStoryGame)\n  const userStore = useSelector(currentUserInfo)\n\n  const dispatch = useDispatch()\n  \n  useEffect(() => {\n    if(bbaiStore.userStoryPrompt.length > 0){\n      setUserStoryPrompt(bbaiStore.userStoryPrompt)\n      if( userStore && !bbaiStore.completed){\n        CheckIfUserHasEnoughCredits()\n      }\n    } else {\n      setUserStoryPrompt(\"\")\n    }\n    // eslint-disable-next-line\n  }, [bbaiStore.userStoryPrompt, notEnoughCreditsError, bbaiStore.gameDataRestartID])\n\n  const CheckIfUserHasEnoughCredits = async() => {\n    try{\n      \n      const refreshedToken = await dispatch(validateToken());\n      const userCreditsInfo = await getBalance(refreshedToken)\n      console.log(\"userCreditsInfo\", userCreditsInfo )\n      if (userCreditsInfo.balance < 1) {\n        setNotEnoughCreditsError(true)\n  \n        // bbaiStore.setPromptStepState(bbaiStoryGamePromptStepStatus.ERROR_RESTART_REGENERATE)  \n      }\n  \n      dispatch(nextStage())\n\n    }catch(error){\n      console.error(\"error checking user credits\", error)\n       dispatch(setErrorState({\n          title: \"Error ran out of Story Game credts\",\n          message: \"You have run out of Story Game credits. Please purchase more credits to continue.\",\n        }));\n    }\n  }\n\n  return (\n    <>\n    <PromptMessage promptStage={bbaiStoryGamePromptStepStatus.INITIAL} message={bbaiStoryGamePromptOptions.INITIAL.prompt} user={bbaiUser}\n    completed={bbaiStore.completed}\n    />\n\n    { userStoryPrompt.length > 0 && <PromptMessage promptStage={bbaiStoryGamePromptStepStatus.INITIAL} message={userStoryPrompt} user={defaultUser} completed={bbaiStore.completed}\n      />\n      \n    }\n    {notEnoughCreditsError && <ErrorOutOfCreditsCYOA/> }\n\n    { userStoryPrompt.length > 0 && !userStore && <PromptMessage promptStage={bbaiStoryGamePromptStepStatus.INITIAL} component={<LoginPrompt />} message={\"\"} user={bbaiUser}\n    completed={bbaiStore.completed}\n    /> }\n    </>\n  )\n}\n\nexport default InitialCYOAPrompt","import React from \"react\";\nimport BuildBBDocCYOA from \"../components/BuildBBDocCYOA\";\nimport { DownloadBBDocCYOA } from \"../components/DownloadBBDocCYOA\";\nimport { GeneratingGameAssetsCYOA } from \"../components/GeneratingGameAssetsCYOA\";\nimport GeneratingGameDataCYOA from \"../components/GeneratingGameDataCYOA\";\nimport InitialCYOAPrompt from \"../components/InitialCYOAPrompt\";\nimport { Display } from \"./bbai.prompts\";\n\nexport const mapPromptToDisplay: Record<string, Display> = {\n  \"INITIAL\": {\n    Component: <InitialCYOAPrompt/>,\n    stage: 0,\n    nextStage: \"GENERATING_GAME_DATA\"\n  },\n  \"GENERATING_GAME_DATA\": {\n    Component: <GeneratingGameDataCYOA/>,\n    stage: 1,\n    nextStage: \"GENERATING_GAME_ASSETS\"\n  },\n  \"GENERATING_GAME_ASSETS\": {\n    Component: <GeneratingGameAssetsCYOA/>,\n    stage: 2,\n    nextStage: \"BUILD_BBDOC\"\n  },\n  \"BUILD_BBDOC\": {\n    Component: <BuildBBDocCYOA/>,\n    stage: 3,\n    nextStage: \"DOWNLOAD_BBDOC\"\n  }, \n  \"DOWNLOAD_BBDOC\": {\n    Component: <DownloadBBDocCYOA/>,\n    stage: 4,\n    nextStage: \"\"\n  }\n};","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMcAAAAyCAYAAADoWs9sAAAACXBIWXMAAC4jAAAuIwF4pT92AAAGmmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjEgKE1hY2ludG9zaCkiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTAzLTMxVDE2OjU1OjU5LTA3OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wMy0zMVQxNjo1Njo0NC0wNzowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wMy0zMVQxNjo1Njo0NC0wNzowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjYjRjZGEwZC0wNmI3LTQ1MzEtYTQ2YS01NjgyNDcyY2NmNWQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Y2I0Y2RhMGQtMDZiNy00NTMxLWE0NmEtNTY4MjQ3MmNjZjVkIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6Y2I0Y2RhMGQtMDZiNy00NTMxLWE0NmEtNTY4MjQ3MmNjZjVkIj4gPHhtcE1NOkluZ3JlZGllbnRzPiA8cmRmOkJhZz4gPHJkZjpsaSBzdFJlZjpsaW5rRm9ybT0iUmVmZXJlbmNlU3RyZWFtIiBzdFJlZjpmaWxlUGF0aD0iY2xvdWQtYXNzZXQ6Ly9jYy1hcGktc3RvcmFnZS5hZG9iZS5pby9hc3NldHMvYWRvYmUtbGlicmFyaWVzL2NkM2NmOTdjLTNmZTEtNGYzYi1hM2UyLTk0NTdmODIyNDcxMjtub2RlPTE1ZjdhYTI2LTg2ZTctNDlhZS05Zjk3LTk2MzVmNjRmMjc3ZiIgc3RSZWY6RG9jdW1lbnRJRD0idXVpZDowMDJjMzIwNy1jNDYwLWFhNDAtOWVhYy01MDNhZDFkZjJlNTIiLz4gPC9yZGY6QmFnPiA8L3htcE1NOkluZ3JlZGllbnRzPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmNiNGNkYTBkLTA2YjctNDUzMS1hNDZhLTU2ODI0NzJjY2Y1ZCIgc3RFdnQ6d2hlbj0iMjAyMC0wMy0zMVQxNjo1NTo1OS0wNzowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjEgKE1hY2ludG9zaCkiLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NR+QggAACkpJREFUeJztnXuQXEUVh7+zCWyIPJaHEMuALIJREDMihSIYtRBEipDIomh4VXBRUYqHJhJBSnkIQSktoQhQbkBRLAWGh8pLDAkaKaRQ1qDUisAGUlBBkjABkzAhyc8/em7ouTP3zt07k8xu0l/VVm33PX265+6c7nP69L1rkggEArV0tHsAgcBwJRhHIJBAMI5AIIFgHIFAAsE4AoEEgnEEAgkE4wgEErA8jUq93bsB5wCTgfcCncBS4GHgp119g/NaNsJAoE0M2ThKvd3TgWuAt6WI3QOc0tU3+GregQUC7WZIxlHq7Z4FXJFRfBFweFff4OtDHlUgMAzIHHMM0TAAPgD8aMgjCgSGCZlWjhyGEbEemNDVN/hsjraBQFtpuHI0YRgAo4ATcrYNBNrK6LSLpd7uK4BZTfbxwSbbBwJtIdE4Sr3ds4HzK8UbgSdz9vFCznapSJqF20bOQgl4BrjfzJ5J0HcJsFeluNrMvpZhDL3A4V7VDDNblqBzmZnNiLWfA4ytFAfMbHaGz1JvHGcDBzUQWwOsAJYAjwD/NLMNDfT6408Vreh+GrjXzJZkaBP1sSvwaWASMAHYDdgWWO6N9UEze6pO2z2BS6gOD642s7836HMscBVv3XuAX+K+IwVgHfBy3cal3u7Zpd5ueT9TG3/MzYukBcrHLZJ2qqOv35MpZRzDz2K6907RubhO+5J3fUG+OwGS7spxH5ZIOl9SZ4re/gY66rFe0nWSxjQY8+6SrpdUzqh3vqSP1NHz/Zjc85LentKvSbq1ju5tJE2VdLak2ZKm1MQcsRVjS2QacI+kUe0eSJsZD8wGHpe0Twv1dgBfBW5LEpD0ceAp4Cu4VSILnwAekXRRrP4iXF4tYi/gdknbJOi5APicV34eOMHM3sStgNtWPkO1W7WpDaNcLIwDTsMtv/M6e/pfa6H6uxPqR+GW6/28usOALwC3tLD/4cS9wJuxulHAONwWu/+FfD/wsKSDzay+K+FYA/wh4dpo4ABgb6/uWElHmtmDvqCkScD9QHxleRKYh/uyloE9gEOBIypjB+c+XSJpjJldCGBmGyRNAx7D/Z3BuWg/Bs6K9X0ccKlXtQo4zsyWV8r/ATYAA8DKjcaxmVaMcbjZCuCNcrEwB7i4FUZiZlPTrku6FPiOV3UUW65xnGRmpXoX5Pzt6cDlwI6V6vHA9cBnU3T+N+0eS+oArsWtGhGfAh70ZHYGbqXaMJ4DzjCzhxL07gVcDUzxqi+QtCAyPDN7TdJU4FEgcpm/LukJM5tb0bM/Lq7w45NTzWxRVKjENRtjmw5omys1BvgG8Hi5WBi/Gfq7OlauiTu2BsxstZldi5uV/UlpqqTcO4uV4P4nsepdYuWZuBUh4l/AIUmGUdH7QsUor49d+mFMbgA4GTfzR8yRdKikXYDfAjt4175nZnck9QvQUertnkN7Y4z9gAfKxcLYhpLNsWes/PQm7m9YU5klvxurntak2u5YeSD6RZLhVqyNVcDJnkvTiHNwbk/EREmH+AJm9ntcDBKxLXAHUATe7dXfidvlSmU01bNHu9gf9+HzJhtRbKfIYyzwPqp9zbXA3Lx9bUHcjDviE7kah6XIjk65x9sDB1I9m79Otdt6AM6tjphnZv1ZB2pmayVdQ7UHcAQu1vC5ArcdGwXd42L9Polzpxq+dmd0V9/grFJvN7R/h+qccrFwZWdPf+reewqDGeXWAtPN7N85+9liMLMVkgaBaLcqzb19J9nv8WrgRDNb6tVNiMnMz6jLZ0GsvG9cwMwkaTouB3Zg7PJyXAD+vyyddQB09Q3OAq4c8lBbyx7UfphWswG3nP56E/czkljp/d6KOGwdMAO3I+WzQ6yctjOWRLzNrvWEzGwVcFmdSzeZ2eKsnW3McwwTA4nHBa2mA3fT5kuK/7G2VvxYb1UL9I0G5uByDf6WcTkmt3MO3fE2dVcAucx5fAMG4DxJn8zaWVUScBgYSF6XClwwWO9nH+BjwE2e7CRq45v1TfQd0cz4NzuVLPbeXtXSBFGAF0m+x/viknR+4u94qs/lxU9mH5xjyPE2i+MCkrbDBdx7xK/h8iW3pcROVdRkyNtsIM/lbWhmixN+Bs1soZmdDiz0mpwem9mWeb/vJGn7DN2+I1ZeVldq+DIZ94hzxBMpsutS7vGzZvYwLrE64LU50/u9n+qVabIkP1DOQm+svLCOzFzgQ175T8AvvPKuwF2S0p5kBRKOrFcM5MJGjVvMc509/QONxZrCn722o/pQXTzYPCZNkaQu4KNe1ctmtrqp0W1GKuO/PFZ9ezM6K7kOf4IbF00yZraW6pVlLHBD1mM8ks7ArU4RS3EZdV/mW8AXvaoXcI9MnEH1rtZE4MbK9nIiic9zdPUNXg58O8vAW8QmXa0qh9GOilX7j/A+ELv2g6SZrfIHvQa3hRkRD0CHLZIm4l6G4e/2LKL2HgxV7544FzZiA/CGV76M6tjjOOBOuZO5STo7JM2kNgl4WeU8VCR3DNWu8hpgipm9YmZlnJvnu42fp8H3O/V5jq6+wdmVbd5NzZ9pMu8g6dyESx24QP9Eqt2ggdhZot/hVpYoWfQuYJGka3FbiCtxSaWJwJep9n9FLGObg/Epn6Eer5hZ0vGXMyWtidV14vzww4BDYtfWAKc3OMK+Y8r4RuFil2lU70otNLN1UcHMnpV0Hi5gj5gMPC/p57iVYAnuXNjulXGeRu2W7X3AdVFB0gTgV1RP9tP9PIqZvSjpeNykEB1KvFTSokryMB+l3u7tcjf2KBcLhXKxoNjPX8vFwpC3EJX/yHrElDo6Py5pbQ5d8UxzpG8oR9aHSr+nJ8+R9YjXJX0mw/iHynpJhyfonVG5nof75M6HRbq6JA3EZOLuot/3l2KyJUl1nwvK9IKFrr7B+CzUKh4Djurs6V/ZULJ1rMLNKjWneCtB5dG4nZksvAHMNLOLWzi+zcndwEFmdl+L9a4AesysXsCMmV2Fy27XPMCUwkrgm8CxUWwn597eQnWC8R6qD5jG+55L9cq1Ey5Ar5mgU92qOOViYRvSjxg0wl8emzWMZ4CujLICXsK5bzelHc02s4ck7QucBPQAH6b6AN1a4G+4GOOGBse8/Sz8S3WuP0ltciwrvu5B4B8Z2ryKM/yFuKfrGr34YiinCDbgXKL5wM1mtiJN2MwWSDoQOBJ34nYS8B7ecnmojPUvwB+B35hZ/KjTybjMffTZlwPTGj3hCJyLczH97+NMYkY15Je6lYuFZl64ENGOFSM3ck/L7Yh7fLYVibJAAnLJ2THA8gxf8k1KrteBlouFs3C7NXkYUYYR2HrJZRwA5WLhTKp9tyw8ChwdDCMwEsj9lvXOnv7rgIZv6PCYDxwRDCMwUsi9ckRkXEHmA8d29vSPmAxyINC0cUBDAwmGERiRtMQ4INFAgmEERiwtMw6oMZBgGIERTUuNA6BcLJwKnAJMCYYRGMmY1PA580BgqyT8w8xAIIFgHIFAAsE4AoEEgnEEAgkE4wgEEgjGEQgk8H/WlkcA7o17/QAAAABJRU5ErkJggg==\"","import Log from \"../utils/Log\";\nimport { v4 } from \"uuid\";\nimport actions from \"../constants/actions.json\";\nimport { DefaultThunkAction } from \"./shared\";\nimport { AnyAction } from \"redux\";\nimport PLANS_JSON from \"../constants/planMetadata\";\nimport { showError } from \"./error\";\nimport { setProductType } from \"./current\";\nimport { PlanIds } from \"../reducers/models\";\n\nexport function addPlanToCart(\n  planId: PlanIds,\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch, getState) => {\n    //TODO: Currently cart processes one item at a time - should be more dynamic as we add in more inventory/assets\n\n    try {\n      const subscriptionPlan: bb.model.ISubscription = PLANS_JSON[planId];\n\n      if (subscriptionPlan.productType) {\n        dispatch(setProductType(subscriptionPlan.productType))\n      }\n      else {\n        throw new Error(\"Can't purchase right now, we lost track of the cart. Please try again.\")\n      }\n\n      //maybe move this into analytics action?\n      sessionStorage.setItem(\"planType\", subscriptionPlan.planType);\n\n      const planPurchaseObject = {\n        cartId: v4(),\n        item: subscriptionPlan,\n        seatQuantity: 1,\n      };\n\n      await dispatch(addToCart([planPurchaseObject]));\n    } catch (e:any) {\n      dispatch(\n        showError(\n          \"Sorry something went wrong while adding your item to cart. Please try again.\"\n        )\n      );\n      Log.error(e, \"error dispatching addPlanToCart:\");\n    }\n  };\n}\n\nexport function addToCart(items: bb.model.IPurchaseItem[]): AnyAction {\n  return {\n    type: actions.cart.ADD_TO_CART,\n    items,\n  };\n}\n\nexport function clearCart(): AnyAction {\n  return {\n    type: actions.cart.CLEAR_CART,\n  };\n}\n\nexport function removeFromCart(cartId: string): AnyAction {\n  return {\n    type: actions.cart.REMOVE_FROM_CART,\n    cartId,\n  };\n}\n\nexport function updateSeatQuantity(cartId: string, quantity: number) {\n  return {\n    type: actions.cart.UPDATE_SEAT_QUANTITY,\n    cartId,\n    quantity,\n  };\n}\n","import API from \"@aws-amplify/api\";\nimport Log from \"../utils/Log\";\n\nexport const createUserRegistrationRequest = (\n  email,\n  clientId,\n  userId,\n  productType,\n  deviceType\n) => {\n  return new Promise((resolve, reject) => {\n    API.post(\"userAccountManagementURL\", \"/analytics/register\", {\n      body: {\n        customerId: userId,\n        clientId: clientId,\n        email: email,\n        app: productType,\n        platform: deviceType,\n      },\n      headers: {\n        \"Content-Type\": \"application/json\",\n      },\n      response: true,\n    })\n      .then((res) => {\n        if (res.status === 200 || res.status === 201) {\n          Log.info(\n            res.data,\n            \"SUCCESS - createUserRegistrationRequest response:\"\n          );\n          resolve(res.data);\n        }\n      })\n      .catch((error) => {\n        if (error) {\n          Log.error(error, \"error caught in createUserRegistrationRequest\");\n          reject(error);\n        }\n      });\n  });\n};\n\nexport const createUserPurchaseRequest = (\n  email,\n  clientId,\n  userId,\n  planType,\n  planInterval,\n  product\n) => {\n  return new Promise((resolve, reject) => {\n    API.post(\"userAccountManagementURL\", \"/analytics/purchase\", {\n      body: {\n        customerId: userId || email,\n        clientId: clientId,\n        email: email,\n        plan: planType,\n        planInterval: planInterval,\n        app: product,\n      },\n      headers: {\n        \"Content-Type\": \"application/json\",\n      },\n      response: true,\n    })\n      .then((res) => {\n        if (res.status === 200 || res.status === 201) {\n          Log.info(res.data, \"SUCCESS - createUserPurchaseRequest response:\");\n          resolve(res.data);\n        }\n      })\n      .catch((error) => {\n        if (error) {\n          Log.error(error, \"error caught in createUserPurchaseRequest\");\n          reject(error);\n        }\n      });\n  });\n};\n\nexport const createUserDownloadsRequest = async (clientId, version) => {\n  let error;\n  for (let ii = 0; ii < 5; ii++) {\n    try {\n      let resp = await sendUserDownloadRequestAnalytics(clientId, version);\n      console.log(\"cudr result on try \", ii, resp);\n      return resp;\n    } catch (err) {\n      console.log(\"cudr error: \", err);\n      error = err;\n    }\n  }\n\n  console.log(\"throw cudr error: \", error);\n  throw error;\n};\n\nexport const sendUserDownloadRequestAnalytics = (clientId, version) => {\n  return new Promise((resolve, reject) => {\n    API.post(\"userAccountManagementURL\", \"/analytics/download\", {\n      body: {\n        clientId: clientId,\n        app: version,\n      },\n      headers: {\n        \"Content-Type\": \"application/json\",\n      },\n      response: true,\n    })\n      .then((res) => {\n        if (res.status === 200 || res.status === 201) {\n          resolve(res.data);\n        }\n      })\n      .catch((error) => {\n        if (error) {\n          Log.error(\n            error,\n            \"error caught in createUserDownloadsRequest: \",\n            error\n          );\n          console.log(\"errrrrrorrrrr \", error);\n          reject(error);\n        }\n      });\n  });\n};\n","import API from \"@aws-amplify/api\";\nimport Log from \"../utils/Log\";\n\n/**\n * Attempts to charge a user and change their subscription type\n * If the charge is successful they will then be rebilled via stripe.\n * @param {stripePaymentId}: string\n * @param {stripePlanId}: string\n * @param {token}: string\n * @param {totalSeats}: number\n * @param {totalCost}: number\n * @param {saleCode}: string\n */\n\nexport async function updateSubscription (\n  token: string,\n  productType: string,\n  stripePaymentId: string,\n  stripePlanId: string,\n  totalSeats: number ,\n  totalCost: number | null ,\n  saleCode: string | null,\n  name: string,\n  email: string\n): Promise<any> {\n\n  try{\n    const params = {\n      stripePaymentId: stripePaymentId,\n      stripePlanId: stripePlanId,\n      totalSeats: totalSeats,\n      totalCost: totalCost,\n      saleCode: saleCode,\n      name,\n      userEmail: email\n    };\n\n    //const productType = sessionStorage.getItem(\"productType\");\n\n    if(productType === null){\n      throw Error(\"productType is not defined\")\n    }\n    console.log(\"updateSubscription productType\", productType)\n    const endpoint = getProductEndpoint(productType.toUpperCase())\n\n    const res = await API.put(\"plansURL\", endpoint, {\n        body: params,\n        headers: {\n          \"Content-Type\": \"application/json\",\n          Token: token,\n        },\n        response: true,\n      })\n\n    return res.data;\n\n  } catch(error: any){\n\n    if (error.response) {\n      console.error(\"error has been hit when updating subscription\", error.response.data.error)\n      throw Error(error.response.data.error);\n    }else {\n      console.error(\"error has been hit when updating subscription\", error)\n      throw Error(error);\n    }\n  }\n\n};\n\n/**\n * Returns list of all of the subscription types and their features\n * @param {token}: string\n */\n\nexport async function getPlans(token:string):Promise<any> {\n  try{\n    const res = await API.get(\"userAccountManagementURL\", \"/subscriptiontypes\", {\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Token: token,\n      },\n      response: true,\n    })\n\n    return res.data\n  } catch(error: any) {\n    if (error.response) {\n      console.error(\"error has been hit when getting plans\", error.response.data.error)\n      throw Error(error.response.data.error);\n    }\n    else{\n       console.error(\"error has been hit when getting plans\", error)\n      throw Error(error);\n    }\n  }\n};\n\n/**\n * Returns information about specific subscription plan\n * @param {subscriptionTypeId}: number\n * Not ready yet\n */\n\nexport async function getPlanInfo (token: string, subscriptionTypeId:string):Promise<any> {\n  try{\n    const res = await API.get(\"userAccountManagementURL\", `subscription/${subscriptionTypeId}`, {\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Token: token,\n      },\n      response: true,\n    })\n\n    return res.data\n  }catch(error: any){\n    if(error.response){\n      Log.error(\"error has been hit when getting plan info\", error.response.data.error)\n      throw Error(error.response.data.error)\n    } else {\n      Log.error(\"error has been hit when getting plan info\", error)\n      throw Error(error)\n    }\n  }\n};\n\n/**\n * Returns list of all of the subscription types and their features\n * @param {token}: string\n */\nexport async function getUserSubscriptionProviders (token: string): Promise<bb.model.account.IUserPlanProviders>{\n  try{\n    const res = await API.get(\"plansURL\", \"/user/planProviders\", {\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Token: token,\n      },\n      response: true,\n    })\n    \n    return res.data.payload\n  }catch(error:any) {\n    if(error.response){\n      Log.error(\"error has been hit when checking user plan\", error.response.data.error)\n      return error.response.data.error\n    } else {\n      // fatal error...\n      Log.error(\"error has been hit when checking user plan\", error)\n      // return error\n      throw error\n    }\n  }\n};\n\n/**\n * reNews the subscription\n * @param {stripePaymentId}: string\n * @param {stripePlanId}: string\n * @param {token}: string\n * @param {totalSeats}: number\n * @param {totalCost}: number\n * @param {saleCode}: string\n */\nexport async function renewSubscription (\n  token: string,\n  productType: string,\n  stripePaymentId: string,\n): Promise<any>{\n  try{\n    const renewPaymentBody = {\n       stripePaymentId: stripePaymentId,\n    }\n    \n    //const productType = sessionStorage.getItem(\"productType\");\n\n    if(productType === null){\n      throw Error(\"productType is not defined\")\n    }\n    const endpoint =  getProductEndpoint(productType.toUpperCase())\n\n    const res = await API.post(\"plansURL\", `${endpoint}/renew`, {\n        body: renewPaymentBody,\n        headers: {\n          \"Content-Type\": \"application/json\",\n          Token: token,\n        },\n        response: true,\n      }) \n\n    return res.data;  \n\n  } catch(error: any){\n\n    if (error.response) {\n      Log.error(\"error has been hit when renewing subscription\", error.response.data.error)\n      throw Error(error.response.data.error);\n    }\n    else {\n      Log.error(\"error has been hit when renewing subscription\", error)\n      throw Error(error);\n    }\n  }\n};\n\n/**\n * reNews the subscription\n * @param {stripePaymentId}: string\n * @param {stripePlanId}: string\n * @param {token}: string\n * @param {totalSeats}: number\n * @param {totalCost}: number\n * @param {saleCode}: string\n */\nexport async function accountlessUpdateSubscription (\n  productType: string,\n  stripePaymentId: string,\n  stripePlanId: string,\n  totalSeats: number,\n  totalCost: number | null,\n  saleCode: string | null,\n  name: string,\n  email: string\n): Promise<any> {\n\n  try{\n    const params = {\n      stripePaymentId: stripePaymentId,\n      stripePlanId: stripePlanId,\n      totalSeats: totalSeats,\n      totalCost: totalCost,\n      saleCode: saleCode,\n      name,\n      userEmail: email\n    };\n\n    //const productType = sessionStorage.getItem(\"productType\");\n\n    if(productType === null){\n      throw Error(\"productType is not defined\")\n    }\n    console.log(\"updateAccountlessSubscription productType\", productType)\n    const endpoint =  getProductEndpoint(productType.toUpperCase())\n\n    const res = await API.post(\"plansURL\", endpoint, {\n        body: params,\n        headers: {\n          \"Content-Type\": \"application/json\",\n        },\n        response: true,\n      })\n\n    return res.data;  \n\n  } catch(error: any){\n\n    if (error.response) {\n     Log.error(\"error has been hit when accountless subscription update\", error.response.data.error)\n      throw Error(error.response.data.error);\n    }\n    else {\n     Log.error(\"error has been hit when accountless subscription update\", error)\n      throw error;\n    }\n  }\n    \n};\n\n\nfunction getProductEndpoint(productType: string): string {\n  let endpoint = \"\"\n\n  switch (productType) {\n    case 'BB2':\n      endpoint = `/users/planbb2`\n      break\n    case 'BB3':\n      endpoint = `/users/planbb3`\n      break\n    case 'BB4':\n      endpoint = `/users/planbb4`\n      break\n    case 'BBBUNDLE':\n      endpoint = `/users/bundleplan`\n      break\n    case 'SOUNDBOX':\n      endpoint = `/users/plansoundbox`\n      break\n    default:\n      throw Error(`[stripe purchase] Unknown product type ${productType}`)\n  }\n\n  return endpoint\n}","import { formatUNIXTimestamp } from \"../utils/helperUtils\";\n\n//used to format plan information for user account subscription pages\n\nexport function mapToPlan(\n  subscriptions: bb.model.account.ISubscriptionInfo[],\n  plans: bb.model.account.IStripePlans,\n  invoices: bb.model.account.IStripeInvoice[],\n  devices: bb.model.account.IDevices[]\n): bb.model.account.ICurrentPlan[] {\n  const hasSameIds = hasDuplicateIds(subscriptions);\n\n  return subscriptions.map((subscription) => {\n    let billing;\n    let checkStr = subscription.planInfo.product?.toLowerCase()\n    let foundPlan: bb.model.account.IStripePlan | null | undefined\n    let planName: string | undefined\n\n    if (subscription.billingInfo) {\n      billing = {\n        brand: subscription.billingInfo.cardInfo.brand?.toUpperCase(),\n        expiryMonth: subscription.billingInfo.cardInfo.expMonth,\n        expiryYear: subscription.billingInfo.cardInfo.expYear,\n        lastFour: `**** **** **** ${subscription.billingInfo.cardInfo.last4}`,\n      };\n    }\n\n    // soundbox comes in here for account subscription tab, but it's different\n    if(checkStr === \"soundbox\") {\n      foundPlan = plans[\"SoundboxPlan\"]\n      // TODO BUILDBOX4 Release, this used to say 'Buildbox 3' instead of 'Soundbox' but that was probably wrong, right?\n      planName = \"Soundbox \" + foundPlan?.name\n      return {\n        subscriptionId: subscription.id,\n        product: subscription.planInfo.product,\n        planName: planName,\n        seatQuantity: \"0\",\n        totalSeats: \"0\",\n        status:\n          subscription.planInfo.status[0].toUpperCase() +\n          subscription.planInfo.status.substring(1),\n        billingInterval: mapBillingInterval(subscription.planInfo.interval),\n        nextPaymentDate: formatUNIXTimestamp(\n          subscription.currentPeriodEnd * 1000\n        ),\n        paymentAmount: ((subscription.planInfo.amount || 0) / 100).toString(),\n        billingInfo: billing,\n        selectedPlanSpecs: {\n          // supportedModules: mapSupportedModules(foundPlan),\n          // availableWorlds: foundPlan?.worlds,\n          // availableSections: foundPlan?.sections,\n          // brandedSplashScreen: foundPlan?.isCustomSplashScreenAllowed,\n        },\n        devices: devices,\n        upgradeAvailable: foundPlan?.isPlanUpgradeAvailable,\n        duplicateIds: hasSameIds,\n        subscriptionTier: foundPlan?.name,\n      };\n    }\n\n    // handle Buildbox products similarly, since they have plan feature lists\n    if(checkStr === \"bb4\") {\n      foundPlan = plans[\"BB4Plan\"]\n      planName = \"Buildbox 4 \" + foundPlan?.name\n    }    \n    else if(checkStr === \"bb3\") {\n      foundPlan = plans[\"BB3Plan\"]\n      planName = \"Buildbox 3 \" + foundPlan?.name\n    }\n    else if(checkStr === \"bb2\") {\n      foundPlan = plans[\"BB2Plan\"]\n      planName = \"Buildbox Classic \" + foundPlan?.name\n    }\n    else {\n      let errMsg = \"unrecognized product in plan info: \" + subscription.planInfo.product\n      console.error(errMsg)\n      throw new Error(errMsg)\n    }\n    \n    return {\n      subscriptionId: subscription.id,\n      product: subscription.planInfo.product,\n      planName: planName,\n      seatQuantity: \"0\",\n      totalSeats: \"0\",\n      status:\n        subscription.planInfo.status[0].toUpperCase() +\n        subscription.planInfo.status.substring(1),\n      billingInterval: mapBillingInterval(subscription.planInfo.interval),\n      nextPaymentDate: formatUNIXTimestamp(\n        subscription.currentPeriodEnd * 1000\n      ),\n      paymentAmount:\n        hasSameIds && subscription.planInfo.product === \"BB2\"\n          ? \"0.00\"\n          : ((subscription.planInfo.amount || 0) / 100).toString(),\n      billingInfo: billing,\n      selectedPlanSpecs: {\n        supportedModules: mapSupportedModules(foundPlan),\n        availableWorlds: foundPlan?.worlds,\n        availableSections: foundPlan?.sections,\n        brandedSplashScreen: foundPlan?.isCustomSplashScreenAllowed,\n      },\n      devices: devices,\n      upgradeAvailable: foundPlan?.isPlanUpgradeAvailable,\n      duplicateIds: hasSameIds,\n      subscriptionTier: foundPlan?.name,\n    };\n  });\n}\n\n/*\n * devices payload from backend has been updated:\n    const payloadBB2: UserMachineInfo[] = await this.machineInfoBB2.retrieveMachines(userId, activeBool)\n    const payloadBB3: UserMachineInfo[] = await this.machineInfoBB3.retrieveMachines(userId, activeBool)\n    const payloadBB4: UserMachineInfo[] = await this.machineInfoBB4.retrieveMachines(userId, activeBool)\n    const payloadSoundbox: UserMachineInfo[] = await this.machineInfoSoundbox.retrieveMachines(userId, activeBool)\n    const fullPayload = {\n      BB2: payloadBB2,\n      BB3: payloadBB3,\n      BB4: payloadBB4,\n      Soundbox: payloadSoundbox,\n    }\n  */\nexport function mapToFreePlan(\n  plans: bb.model.account.IStripePlans,\n  devices: { [key: string]: bb.model.account.IDevices[] }\n): bb.model.account.ICurrentPlan[] {\n  // filter out \"Soundbox Free\" plan since it doesn't actually confer any benefit\n  const plansArray = Object.entries(plans).filter((plan) => plan[1] && !(plan[0] === \"SoundboxPlan\" && plan[1].name.toLowerCase().includes(\"free\")));\n\n  const billing = {\n    brand: \"\",\n    expiryMonth: 0,\n    expiryYear: 0,\n    lastFour: \"N/A\",\n  };\n\n  return plansArray.map((plan) => {\n    const planDetail = plan[1];\n\n    let planType = plan[0]\n    let product: string | undefined\n    let planName: string | undefined\n    if(planType === \"BB4Plan\") {\n      product = \"BB4\"      \n      planName = \"Buildbox 4 \" + planDetail.name\n    }    \n    else if(planType === \"BB3Plan\") {\n      product = \"BB3\"      \n      planName = \"Buildbox 3 \" + planDetail.name\n    }\n    else if(planType === \"BB2Plan\") {\n      product = \"BB2\"\n      planName = \"Buildbox Classic \" + planDetail.name\n    }\n    else if(planType === \"SoundboxPlan\") {\n      product = \"Soundbox\"\n      planName = \"Soundbox \" + planDetail.name\n    }\n    else {\n      console.error(\"unexpected plan info: \", plan)\n      product = \"Unknown\"\n      planName = \"\" + planDetail.name\n    }\n    let planDevices : bb.model.account.IDevices[] = []\n    if(devices[product]) {\n      planDevices = devices[product]\n    }\n\n    return {\n      subscriptionId: \"\",\n      product: product,\n      planName: planName,\n      seatQuantity: \"0\",\n      totalSeats: \"0\",\n      status: \"Active\",\n      billingInterval: \"-\",\n      nextPaymentDate: \"-\",\n      paymentAmount: \"0\",\n      billingInfo: billing,\n      selectedPlanSpecs: {\n        supportedModules: mapSupportedModules(planDetail),\n        availableWorlds: planDetail.worlds,\n        availableSections: planDetail.sections,\n        brandedSplashScreen: planDetail.isCustomSplashScreenAllowed,\n      },\n      devices: planDevices,\n      upgradeAvailable: planDetail.isPlanUpgradeAvailable,\n      subscriptionTier: planDetail.name,\n    };\n  });\n}\n\nexport function mapBillingInterval(interval: string): string {\n  switch (interval) {\n    case \"year\":\n      return \"Annual\";\n    case \"month\":\n      return \"Monthly\";\n    default:\n      return interval;\n  }\n}\n\nexport function mapSupportedModules(plans: any | null): string[] {\n  const modules = [];\n  for (let supportedMod in plans) {\n    if (plans[supportedMod]) {\n      switch (supportedMod) {\n        case \"exportIOS\":\n          modules.push(\"IOS\");\n          break;\n        case \"exportOSX\":\n          modules.push(\"OSX\");\n          break;\n        case \"exportWin32exe\":\n          modules.push(\"Windows EXE\");\n          break;\n        case \"exportAndroid\":\n          modules.push(\"Android\");\n          break;\n        case \"exportAmazon\":\n          modules.push(\"Amazon\");\n          break;\n      }\n    }\n  }\n\n  return modules;\n}\n\nexport function hasDuplicateIds(\n  subscriptions: bb.model.account.ISubscriptionInfo[]\n) {\n  const idArray = subscriptions.map((sub) => sub.planInfo.id);\n  return new Set(idArray).size !== idArray.length;\n}\n","import { WorkState } from \"./../reducers/models\";\nimport {\n  setPurchaseState,\n  setPlanFetchWorkState,\n  setInvoicesFetchWorkState,\n} from \"./current\";\nimport Log from \"../utils/Log\";\nimport actions from \"../constants/actions.json\";\nimport { DefaultThunkAction } from \"./shared\";\nimport { AnyAction } from \"redux\";\nimport { showError } from \"./error\";\nimport { \n  accountlessUpdateSubscription, \n  getUserSubscriptionProviders, \n  renewSubscription, \n  updateSubscription \n} from \"../api/subscription\";\nimport {\n  fetchUserPlan,\n  // fetchBillingInfo,\n  updateBillingInfo,\n  fetchUserDevices,\n  fetchUserEligibleRenewal,\n  addUserToWaitlist\n} from \"../api/account\";\nimport { validateToken } from \"./auth\";\nimport { setAnalyticsPurchaseEvent } from \"./analytics\";\nimport { mapToFreePlan } from \"../utils/accountUtils\";\nimport { formatUNIXTimestamp } from \"../utils/helperUtils\";\nimport { analyticProductTypes } from \"../shared/utility\";\nimport { WaitlistFormFields } from \"../components/home/WaitlistForm\";\n\n// AP: kinda weird that apparently Stripe purchases come here but Xsolla purchases don't\nexport function purchasePlan(\n  stripePaymentId: string,\n  quantity: number,\n  purchaseCost: number | null,\n  saleCode: string | null,\n  name: string,\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch, getState) => {\n    const { auth } = getState();\n    const { cart } = getState();\n\n    dispatch(setPurchaseState(WorkState.Loading));\n    try {\n      let email\n      let uuid\n      \n      if(!auth?.user?.uuid ){\n        email = auth.accountlessPurchaseEmail\n      } \n      else {\n        email = auth?.user?.email;\n        uuid = auth?.user?.uuid;\n      }\n\n      if(cart.items.length !== 1) {\n        throw new Error(\"Plans must be purchased one at a time and your cart contains \" + cart.items.length + \" items, if this is unexpected please contact support.\");\n      }\n\n      const { item } = cart.items[0];\n      let stripePlanId;\n      if (process.env.REACT_APP_STAGE === \"production\") {\n        stripePlanId = item.stripeId[item.planInterval];\n      }\n      else {\n        stripePlanId = item.stripeIdDev[item.planInterval];\n      }\n\n      const { productType, analyticsTierName } = item;\n\n      // AP: quickfix try for an error where productType wasn't available in sessionStorage;\n      //  more importantly though I'm adding productType just into the function params, duh\n      const sessionProductType = sessionStorage.getItem(\"productType\");\n      if(productType && !sessionProductType) {\n        sessionStorage.setItem(\"productType\", productType);\n      }\n\n      if(uuid) {\n        const refreshedToken =  await dispatch(validateToken()) \n        await updateSubscription(\n          refreshedToken,\n          productType,\n          stripePaymentId,\n          stripePlanId,\n          quantity,\n          purchaseCost,\n          saleCode,\n          name,\n          email\n        );\n      }\n      else {\n        await accountlessUpdateSubscription(\n          productType,\n          stripePaymentId,\n          stripePlanId,\n          quantity,\n          purchaseCost,\n          saleCode,\n          name,\n          email\n        );\n      }\n\n      const product = analyticProductTypes[productType];\n\n      //send analytics purchase request\n      await dispatch(\n        setAnalyticsPurchaseEvent(email, uuid, analyticsTierName, item.planInterval, product)\n      );\n\n      dispatch(setPurchaseState(WorkState.Success));\n    } catch (error:any) {\n      Log.error(error, \"Error dispatching action: purchasePlan\");\n      dispatch(setPurchaseState(WorkState.Error));\n\n      throw error;\n    }\n  };\n}\n\nexport function renewPlan(\n  stripePaymentId: string,\n  quantity: number,\n  purchaseCost: number | null,\n  saleCode: string | null,\n  name: string,\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch, getState) => {\n    const { auth } = getState();\n    const { cart } = getState();\n\n    dispatch(setPurchaseState(WorkState.Loading));\n    try {\n      //TODO: how do we handle multiple plan versions in one cart in the future\n      let email = \"\"\n      let uuid = \"\"\n      \n      if(!auth?.user?.uuid ){\n        email = auth.accountlessPurchaseEmail\n      } else {\n        email = auth?.user?.email;\n        uuid = auth?.user?.uuid;\n\n      }\n\n      const { item } = cart.items[0];\n      let stripePlanId;\n      if (process.env.REACT_APP_STAGE === \"production\") {\n        stripePlanId = item.stripeId[item.planInterval];\n      }\n      else {\n        stripePlanId = item.stripeIdDev[item.planInterval];\n      }\n\n      const { productType, analyticsTierName } = item;\n\n      if (!uuid || !stripePaymentId || !item || !item.planInterval || !stripePlanId) {\n        dispatch(setPurchaseState(WorkState.Error));\n\n        Log.error(\n          `Found empty value for: id: ${stripePaymentId}, uuid: ${uuid}, plan interval: ${item.planInterval}, item: ${item}, stripeplanid: ${stripePlanId}`,\n          \"Missing values in renew Plan action\"\n        );\n        throw new Error(\n          \"Sorry, something went wrong. You have not been charged. Please return to signup.buildbox.com/login and try again.\"\n        );\n      }\n\n      const refreshedToken = await dispatch(validateToken());\n\n      const subscriptionUpdateResponse = await renewSubscription(\n          refreshedToken,\n          productType,\n          stripePaymentId,\n        );\n     \n      const product = analyticProductTypes[productType];\n\n      dispatch(setUpcomingInvoice(subscriptionUpdateResponse.payload))\n    \n      //send analytics purchase request\n      await dispatch(\n        setAnalyticsPurchaseEvent(email, uuid, analyticsTierName, item.planInterval, product)\n      );\n\n      dispatch(setPurchaseState(WorkState.Success));\n    } catch (error:any) {\n      Log.error(error, \"Error dispatching action: purchasePlan\");\n      dispatch(setPurchaseState(WorkState.Error));\n\n      throw error;\n    }\n  };\n}\n\nexport function fetchAccountData(): DefaultThunkAction<Promise<void>> {\n  return async (dispatch) => {\n    await dispatch(fetchCurrentPlans());\n  };\n}\n\n//fetches the current user plan info and sets it into account reducer\nexport function fetchCurrentPlans(): DefaultThunkAction<Promise<void>> {\n  // accessToken: string\n  return async (dispatch, getState) => {\n    const { auth } = getState();\n    dispatch(setPlanFetchWorkState(WorkState.Loading));\n    try {\n      if (auth == null) {\n        throw new Error(\n          \"We can't get your plan info because you are not logged in.\"\n        );\n      }\n\n      const refreshedToken = ((await dispatch(\n        validateToken()\n      )) as unknown) as string;\n\n      let planData: bb.model.account.IStripePlans;\n      // let subs;\n      let devices: { [key: string]: bb.model.account.IDevices[] } = {};\n      let eligibleRenewal: bb.model.account.IEligibleRenewal = {\n        bb2: false,\n        bb3: false,\n        bb4: false,\n        bbbundle: false,\n        soundbox: false\n      };\n\n      try {\n        planData = await fetchUserPlan(refreshedToken);\n      } catch (error:any) {\n        Log.trace(error, \"Error fetching billing info\");\n        throw new Error(\"We had an issue with looking up your plan info.\");\n      }\n\n      // TODO re-enable this when the endpoint is fixed to account for Xsolla\n      //      it can be ommitted for now because we don't currently display any of this info\n      // try {\n      //   // @ts-ignore\n      //   subs = await fetchBillingInfo(refreshedToken);\n      // } catch (error:any) {\n      //   Log.trace(error, \"Error fetching billing info\");\n      // }\n\n      try {\n        devices = await fetchUserDevices(refreshedToken, auth.user.uuid);\n      } catch (error:any) {\n        Log.trace(error, \"Error fetching machine data\");\n        throw new Error(\n          \"We had an issue with looking up your subscription seat usage.\"\n        );\n      }\n\n      try {\n        eligibleRenewal = await fetchUserEligibleRenewal(refreshedToken, auth.user.uuid)\n      }catch (error) {\n        Log.trace(error, \"Error fetch User Eligible Renewal\");\n        throw new Error(\n          \"We had an issue with looking up your renewal eligibility.\"\n        );\n      }\n      // const invoices = subs.invoices;\n      let planInfo: bb.model.account.ICurrentPlan[];\n      // TODO re-enable this when the endpoint is fixed to account for Xsolla\n      //      it can be ommitted for now because we don't currently display any of this info\n      // if (subs.subscriptionInfo.length === 0) {\n      planInfo = mapToFreePlan(planData, devices);\n      // } else {\n      //   planInfo = mapToPlan(\n      //     subs.subscriptionInfo,\n      //     planData,\n      //     invoices,\n      //     devices\n      //   );\n      // }\n\n      dispatch(setCurrentPlans(planInfo));\n\n      dispatch(setEligibleRenewal(eligibleRenewal))\n\n      // await dispatch(fetchInvoices(invoices));\n      dispatch(setPlanFetchWorkState(WorkState.None));\n    } catch (e:any) {\n      Log.error(e, \"Error dispatching: fetchCurrentPlan\");\n      dispatch(setPlanFetchWorkState(WorkState.Error));\n\n      if (e) {\n        let message = e.message\n        dispatch(showError(message));\n      } else {\n        dispatch(\n          showError(\"There was an error fetching your current plan information\")\n        );\n      }\n    }\n  };\n}\n\n//fetches invoices on /account/subscription page\n\nexport function fetchInvoices(\n  invoices: bb.model.account.IStripeInvoice[]\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch, getState) => {\n    dispatch(setInvoicesFetchWorkState(WorkState.Loading));\n    try {\n      //TODO: call real invoices endpoint here\n\n      const invoicesInfo: bb.model.account.IInvoice[] = invoices.map(\n        (invoice) => {\n          return {\n            id: invoice.id,\n            description: invoice.description,\n            paidAt: formatUNIXTimestamp(invoice.paidAt * 1000),\n            currency: invoice.currency.toUpperCase(),\n            amountPaid: (invoice.amountPaid / 100).toString(),\n            pdfUrl: invoice.pdfUrl,\n          };\n        }\n      );\n\n      dispatch(setInvoices(invoicesInfo));\n\n      dispatch(setInvoicesFetchWorkState(WorkState.None));\n    } catch (e:any) {\n      dispatch(setInvoices([]));\n      dispatch(setInvoicesFetchWorkState(WorkState.Error));\n    }\n  };\n}\n\n// updates billing info on /account/subscription/billing page\n\nexport function updateBilling(\n  subscriptionId: string,\n  paymentId: string\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch, getState) => {\n    getState();\n    dispatch(setPlanFetchWorkState(WorkState.Loading));\n    try {\n      const refreshedToken = await dispatch(validateToken());\n\n      await updateBillingInfo(\n        refreshedToken,\n        \"stripe\",\n        subscriptionId,\n        paymentId\n      );\n    } catch (error:any) {\n      let message = error.message\n      dispatch(showError(message));\n    }\n  };\n}\n\n// add user to waitlist\nexport function addWaitlistUser(\n  userInfo: WaitlistFormFields\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch) => {\n    // const refreshedToken = ((await dispatch(\n    //   validateToken()\n    // )) as unknown) as string;\n\n    try {\n      await addUserToWaitlist(userInfo);\n    } catch (error:any) {\n      Log.error(error, \"Error dispatching: addWaitlistUser\");\n      dispatch(showError(\"There was an error adding you to the waitlist\"));\n    }\n  }\n}\n\nexport function fetchPlanProvider (): DefaultThunkAction<Promise<void>> {\n  return async (dispatch) => {\n    try{ \n      const refreshedToken = await dispatch(validateToken());\n\n      const planData = await fetchUserPlan(refreshedToken);\n      const userPlanProviders = await getUserSubscriptionProviders(\n        refreshedToken\n      );\n\n      const plansAndProviders: bb.model.account.IPlans = {\n        bb2: {\n          plan: planData.BB2Plan,\n          provider: userPlanProviders.bb2\n        },\n        bb3: {\n          plan: planData.BB3Plan,\n          provider: userPlanProviders.bb3\n        },\n        bb4: {\n          plan: planData.BB4Plan,\n          provider: userPlanProviders.bb4\n        },\n        bbbundle: {\n          plan: null, // not sure if need or want\n          provider: userPlanProviders.bbbundle\n        },\n        soundbox: {\n          plan: planData.SoundboxPlan,\n          provider: userPlanProviders.soundbox\n        }\n      }\n      \n      dispatch(setUserPlanProviders(userPlanProviders));\n      dispatch(setUserPlans(plansAndProviders));\n\n    } catch(error: any) {\n      Log.error(error, \"Error dispatching: fetchPlanProvider\");\n      dispatch(showError(\"There was an error fetching the plan provider\"));\n    }\n  }\n}\n\nexport function setCurrentPlans(\n  plans: bb.model.account.ICurrentPlan[]\n): AnyAction {\n  return {\n    type: actions.account.SET_CURRENT_PLANS,\n    plans,\n  };\n}\n\nexport function setInvoices(invoices: bb.model.account.IInvoice[]): AnyAction {\n  return {\n    type: actions.account.SET_INVOICES,\n    invoices,\n  };\n}\n\nexport function clearAccount() {\n  return {\n    type: actions.account.CLEAR_ACCOUNT,\n  };\n}\n\nexport function setUpcomingInvoice(upcomingInvoice: bb.model.account.IUpcomingInvoice): AnyAction {\n  return {\n    type: actions.account.SET_UPCOMING_INVOICE,\n    upcomingInvoice,\n  };\n}\n\nexport function setBundleSubscription(bundleSubscription: boolean ) {\n  return {\n    type: actions.account.SET_BUNDLE_SUBSCRIPTION,\n    bundleSubscription\n  };\n}\n\nexport function setEligibleRenewal(eligibleRenewal: bb.model.account.IEligibleRenewal) {\n  return {\n    type: actions.account.SET_ELIGIBLE_RENEWAL,\n    eligibleRenewal\n  }\n}\n\nexport function setUserPlanProviders(planProviders: bb.model.account.IUserPlanProviders) {\n  return {\n    type: actions.account.SET_PLAN_PROVIDERS,\n    planProviders\n  }\n}\n\nexport function setUserPlans(plans: bb.model.account.IPlans) {\n  return {\n    type: actions.account.SET_USER_PLANS,\n    plans\n  }\n}","export function getRequiredEnvVar(envVarName: string, defaultVal?:string): string {\n  const varName = `REACT_APP_${envVarName}`\n  const val = process.env[varName]\n  if (val === undefined) {\n    if (defaultVal !== undefined) {\n      return defaultVal\n    }\n    else {\n      throw new Error(`[Env] config setting: ${varName} NOT FOUND`)\n    }\n  }\n  return val\n}\n\nexport function getRequiredIntEnvVal(envVarName:string, defaultVal:number): number {\n  const strVal = getRequiredEnvVar(envVarName, defaultVal.toString(10))\n  const numVal = parseInt(strVal, 10)\n  if (isNaN(numVal)) {\n    throw new Error(`[Env] config setting: REACT_APP_${envVarName} must be an integer value.`)\n  }\n  return numVal\n}\n\nexport function getRequiredFloatEnvVal(envVarName:string, defaultVal:number): number {\n  const strVal = getRequiredEnvVar(envVarName, defaultVal.toString(10))\n  const numVal = parseFloat(strVal)\n  if (isNaN(numVal)) {\n    throw new Error(`[Env] config setting: REACT_APP_${envVarName} must be an integer value.`)\n  }\n  return numVal\n}\n\nexport function getRequiredBoolEnvVal(envVarName:string, defaultVal:boolean): boolean {\n  const strVal = getRequiredEnvVar(envVarName, \"\"+!!defaultVal).toLowerCase()\n  if (strVal === \"true\" || strVal === \"on\" || strVal === \"1\" || strVal === \"yes\") {\n    return true\n  }\n  else if (strVal === \"false\" || strVal === \"off\" || strVal === \"0\" || strVal === \"no\") {\n    return false\n  }\n  else {\n    throw new Error(`[Env] config setting: REACT_APP_${envVarName} must be a boolean value. got \"${strVal}\"`)\n  }\n}\n\n/**\n * Return the appropriate value based on the existence of an env var with that name OR\n * one of the passed-in values depending on the value of AOB_ENV\n * \n * @param overrideEnvVarName the name of the environment variable that would contain an override value WITHOUT the REACT_APP_ prefix. If a value is found, that value will be used instead of any values passed into this function\n * @param prodValue will be used if there is no environment variable found AND AOB_ENV === PROD OR AOB_ENV is not recognized\n * @param {string} devValue will be used if there is no environment variable found AND (AOB_ENV === DEV OR (AOB_ENV === LOCAL AND no localValue provided))\n * @param {string?} localValue optional - will be used if defined AND there is no environment variable found AND AOB_ENV === LOCAL\n * @returns \n */\nexport function getEnvVarForEnvironment(overrideEnvVarName:string|null, prodValue:string, devValue:string, localValue?:string):string {\n  let defaultVal:string\n  const AOB_ENV = getRequiredEnvVar(\"AOB_ENV\", \"PROD\").toUpperCase()\n  if (AOB_ENV === \"LOCAL\") {\n    if (localValue !== undefined) {\n      defaultVal = localValue\n    }\n    else {\n      defaultVal = devValue\n    }\n  }\n  else if (AOB_ENV === \"DEV\") {\n    defaultVal = devValue\n  }\n  else {\n    if (AOB_ENV !== \"PROD\") {\n      console.error(`[Env] Unrecognized environment name ${AOB_ENV} defaulting to PROD value`)\n    }\n    defaultVal = prodValue\n  }\n  if (overrideEnvVarName !== null) {\n    return getRequiredEnvVar(overrideEnvVarName, defaultVal)\n  }\n  else {\n    return defaultVal\n  }\n}\n\n/**\n * A map of all the config / environment variables that this web app uses\n */\nexport const Env = {\n  AOB_ENV: getRequiredEnvVar(\"AOB_ENV\", \"PROD\"),\n\n  // URLS\n  BBAI_BASE_URL: getEnvVarForEnvironment(\"BBAI_BASE_URL\", \"https://ai.8cell.com\", \"https://ai.dev.8cell.com\"),\n  UAM_BASE_URL: getEnvVarForEnvironment(\"UAM_BASE_URL\", \"https://platform.buildbox.com\", \"https://useraccountmanagement.dev.8cell.com\"),\n  ASSET_MANAGER_BASE_URL: getEnvVarForEnvironment(\"ASSET_MANAGER_BASE_URL\", \"https://assetmanagementapi.buildbox.com\", \"https://assetmanagementservice.dev.8cell.com\"),\n  BB2D_BASE_URL: getEnvVarForEnvironment(\"BB2D_BASE_URL\", \"https://buildbox2service.buildbox.com\", \"https://buildbox2service.dev.8cell.com\"),\n//  BB2D_BASE_URL: getEnvVarForEnvironment(\"BB2D_BASE_URL\", \"https://buildbox2service.buildbox.com\", \"http://adam.dev.8cell.com:8102\"),\n  BB_WORLD_BASE_URL: getEnvVarForEnvironment(\"BB_WORLD_BASE_URL\", \"https://buildboxworldservice.buildbox.com\", \"https://buildboxworldservice.dev.8cell.com\"),\n  BB_DEEP_LINK: getEnvVarForEnvironment(\"BB_DEEP_LINK\", \"https://bbworld.page.link/bits?bit_id=\",\"https://bbworlddev.page.link/bits?bit_id=\"),\n  LEARN_MORE_URL: getEnvVarForEnvironment(\"LEARN_MORE_URL\",  \"https://signup.buildbox.com\", \"https://bbregister.dev.8cell.com\",),\n  VIEW_PLANS_URL: getEnvVarForEnvironment(\"VIEW_PLANS_URL\", \"https://signup.buildbox.com/plans\", \"https://bbregister.dev.8cell.com/plans\" ),\n  MY_ACCOUNT_URL: getEnvVarForEnvironment(\"MY_ACCOUNT_URL\", \"https://signup.buildbox.com/account/profile\", \"https://bbregister.dev.8cell.com/account/profile\" ),\n  BB4_DOWNLOAD_LINK_WIN: getEnvVarForEnvironment(\"BB4_DOWNLOAD_LINK_WIN\", \"https://releases.buildbox.com/buildbox/current/Buildbox4.exe\", \"https://releases.buildbox.com/buildbox/current/Buildbox4.exe\"),\n  BB4_DOWNLOAD_LINK_MAC: getEnvVarForEnvironment(\"BB4_DOWNLOAD_LINK_MAC\", \"https://releases.buildbox.com/buildbox/current/Buildbox4.dmg\", \"https://releases.buildbox.com/buildbox/current/Buildbox4.dmg\"),\n  BB3_DOWNLOAD_LINK_WIN: getEnvVarForEnvironment(\"BB3_DOWNLOAD_LINK_WIN\", \"https://releases.buildbox.com/buildbox/current/Buildbox3.exe\", \"https://releases.buildbox.com/buildbox/current/Buildbox3.exe\"),\n  BB3_DOWNLOAD_LINK_MAC: getEnvVarForEnvironment(\"BB3_DOWNLOAD_LINK_MAC\", \"https://releases.buildbox.com/buildbox/current/Buildbox3.dmg\", \"https://releases.buildbox.com/buildbox/current/Buildbox3.dmg\"),\n  BB2_DOWNLOAD_LINK_WIN: getEnvVarForEnvironment(\"BB2_DOWNLOAD_LINK_WIN\", \"https://releases.buildbox.com/buildbox/current/Buildbox2.exe\", \"https://releases.buildbox.com/buildbox/current/Buildbox2.exe\"),\n  BB2_DOWNLOAD_LINK_MAC: getEnvVarForEnvironment(\"BB2_DOWNLOAD_LINK_MAC\", \"https://releases.buildbox.com/buildbox/current/Buildbox2.dmg\", \"https://releases.buildbox.com/buildbox/current/Buildbox2.dmg\"),\n  SOUNDBOX_DOWNLOAD_LINK_WIN: getEnvVarForEnvironment(\"SOUNDBOX_DOWNLOAD_LINK_WIN\", \"https://downloads.buildbox.com/soundbox/current/Soundbox.exe\", \"https://downloads.buildbox.com/soundbox/current/Soundbox.exe\"),\n  SOUNDBOX_DOWNLOAD_LINK_MAC: getEnvVarForEnvironment(\"SOUNDBOX_DOWNLOAD_LINK_WIN\", \"https://downloads.buildbox.com/soundbox/current/Soundbox.dmg\", \"https://downloads.buildbox.com/soundbox/current/Soundbox.dmg\"),\n  APP_CLIENT_ID: getEnvVarForEnvironment(\"APP_CLIENT_ID\", \"5tamhcn07jpk28maluh9ss6hq2\", \"5gqatunj3j4o2j2tntk4t1ja4n\"),\n  GTM_ID: getEnvVarForEnvironment(\"GTM_ID\", \"GTM-K9XRLKZ\", \"GTM-K9XRLKZ\"),\n  QR_BB_WORLD: getEnvVarForEnvironment(\"QR_BB_WORLD\", \"https://frontend-assets.buildbox.com/deeplink-qr-bbworld.png\", \"https://frontend-assets.buildbox.com/deeplink-qr-bbworld-dev.png\"),\n  // config / settings\n  ACCESS_TIMEOUT_MS: getRequiredIntEnvVal(\"ACCESS_TIMEOUT_MS\", 60*60*1000), // 60 minutes *60 converts to seconds *1000 converts to ms\n  DEBUG_MODE: getRequiredBoolEnvVal(\"DEBUG_MODE\", false),\n  CYOA_OPENAI_MODEL: getRequiredEnvVar(\"CYOA_OPENAI_MODEL\", \"gpt-4\"),\n  CYOA_OPENAI_TEMPERATURE: getRequiredFloatEnvVal(\"CYOA_OPENAI_TEMPERATURE\", 0.7),\n\n  // convenience methods\n  get isLocal() {\n    return this.AOB_ENV.toUpperCase() === \"LOCAL\"\n  },\n  get isDev() {\n    return this.AOB_ENV.toUpperCase() === \"DEV\"\n  },\n  get isProd() {\n    return this.AOB_ENV.toUpperCase() === \"PROD\"\n  }\n}\n\nexport default Env\n","export default (state: { current: bb.state.ICurrent }) => state.current;","import { createSelector } from \"reselect\";\nimport { LoginClientType } from \"../reducers/models\";\nimport current from \"./selectCurrentState\";\n\nexport default createSelector(current, (currentState: bb.state.ICurrent) => {\n  if (currentState.workState.client === LoginClientType.Client) {    \n    return true;\n  }\n  return false;\n});\n","import API from \"@aws-amplify/api\";\n\n/**\n * Returns user email as md5 hash\n * @param {emailAddress}: string\n */\n\nexport const md5Hash = (emailAddress) => {\n  var md5 = require(\"md5\");\n  return md5(emailAddress);\n};\n\n/**\n * Send an email containing download links for a mobile signup\n *\n * @param {accessToken}: string\n */\n\nexport const sendDownloadEmail = (accessToken, hashedEmail, productType) => {\n  return new Promise((resolve, reject) => {\n    API.post(\"userAccountManagementURL\", \"/mailchimp/emailers/download\", {\n      body: {\n        app: productType,\n        hashedEmail: hashedEmail,\n      },\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Token: accessToken,\n      },\n      response: true,\n    })\n      .then((res) => {\n        if (res.status === 200 || res.status === 201) {\n          resolve(res.data);\n        }\n      })\n      .catch((error) => {\n        if (error.response) {\n          reject(error.response);\n        }\n      });\n  });\n};\n\nconst getMailchimpTag = (productType) => {\n  const GENERIC_BB_TAGS = {\n    name: \"buildbox-generic\",\n    status: \"active\",\n  };\n  const BB2_TAGS = {\n    name: \"buildbox2-free\",\n    status: \"active\",\n  };\n  const BB3_TAGS = {\n    name: \"buildbox3-free\",\n    status: \"active\",\n  };\n  const BB4_TAGS = {\n    name: \"buildbox4-free\",\n    status: \"active\",\n  };  \n  const BBWORLD_TAGS = {\n    name: \"buildbox-world\",\n    status: \"active\",\n  };\n  // AP: TODO SOUNDBOX what mailchimp tags?\n  const SOUNDBOX_TAGS = {\n    name: \"soundbox-free\",\n    status: \"active\",\n  }\n\n  switch (productType) {\n    case \"BB2\":\n      return BB2_TAGS;\n    case \"BB3\":\n      return BB3_TAGS;\n    case \"BB4\":\n      return BB4_TAGS;\n    case \"BBWorld\":\n      return BBWORLD_TAGS;\n    case \"generic\":\n      return GENERIC_BB_TAGS;\n    case \"BBBundle\":\n      return GENERIC_BB_TAGS;\n    case \"Soundbox\":\n      return SOUNDBOX_TAGS;\n    default:\n      return GENERIC_BB_TAGS;\n  }\n};\n/**\n * Tags an subscriber with a buildbox2-free or buildbox3-free MC audience tag\n *\n * @param {hashedEmail}: MD5 Hash\n * @param {mailchimpTagName}: Mailchimp tag name\n * @param {isTagActive}: Mailchimp tag status\n */\n\nexport const addMailchimpAudienceTags = (emailAddress, productType) => {\n  const email = emailAddress.toLowerCase();\n  const hashedEmail = md5Hash(email);\n  const { name, status } = getMailchimpTag(productType);\n\n  return new Promise((resolve, reject) => {\n    API.post(\"userAccountManagementURL\", \"/mailchimp/tags\", {\n      body: {\n        isTagActive: status,\n        mailchimpTagName: name,\n        hashedEmail: hashedEmail,\n      },\n      headers: {\n        \"Content-Type\": \"application/json\",\n      },\n      response: true,\n    })\n      .then((res) => {\n        if (res.status === 200 || res.status === 201) {\n          resolve(res.data);\n        }\n      })\n      .catch((error) => {\n        if (error.response) {\n          reject(error.response);\n        }\n      });\n  });\n};\n","export function validateLength (str: string): boolean {\n    if (str.length < 3) {\n      return false\n    }\n    return true\n}\n\nexport const validateEmail = (email:string):boolean => {\n  const  valid = String(email)\n    .toLowerCase()\n    .match(\n      /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|.(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n    );\n\n  if (!valid) {\n    return false\n  }\n  return true\n};\n\n// more validations ","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonShared\":\"Header_buttonShared__3tcSt\",\"buttonVerticalGradientOrangeYellow\":\"Header_buttonVerticalGradientOrangeYellow__kWzUy\",\"buttonVerticalGradientOrange\":\"Header_buttonVerticalGradientOrange__5Mju4\",\"buttonReglarDarkGrey\":\"Header_buttonReglarDarkGrey__3i1HU\",\"buttonReglarGrey\":\"Header_buttonReglarGrey__JvLhN\",\"buttonGradientOrange\":\"Header_buttonGradientOrange__rt6FI\",\"buttonRegularYellow\":\"Header_buttonRegularYellow__ZWR8M\",\"buttonRegularOrange\":\"Header_buttonRegularOrange__NNKw_\",\"header\":\"Header_header__1LeQS\",\"getStartedButton\":\"Header_getStartedButton__LUB15\",\"buttonGhost\":\"Header_buttonGhost__31UyZ\",\"buttonGhostDisabled\":\"Header_buttonGhostDisabled__2rl3J\",\"buttonGhostGreen\":\"Header_buttonGhostGreen__3NXt3\",\"buttonGhostGradientOrange\":\"Header_buttonGhostGradientOrange__1GlN-\",\"buttonGhostOrange\":\"Header_buttonGhostOrange__ltJgb\",\"buttonGhostDarkBlue\":\"Header_buttonGhostDarkBlue__x2R-h\",\"buttonGhostBlue\":\"Header_buttonGhostBlue__23aEG\",\"buttonGhostGrey\":\"Header_buttonGhostGrey__22VzI\",\"buttonDisabled\":\"Header_buttonDisabled__33UP8\",\"clientLoginText\":\"Header_clientLoginText__-Bn4t\",\"returnToSignIn\":\"Header_returnToSignIn__2RjPD\",\"error\":\"Header_error__143Uq\",\"link\":\"Header_link__2_OJa\",\"arrow\":\"Header_arrow__38MIy\",\"signOut\":\"Header_signOut__2o-8Q\",\"signOutText\":\"Header_signOutText__3PD4t\",\"profileBtn\":\"Header_profileBtn__1REOq\",\"activeTab\":\"Header_activeTab__3877u\",\"socialIcons\":\"Header_socialIcons__2tHuo\",\"linkListDesktop\":\"Header_linkListDesktop__1F94g\",\"parentMenuTitle\":\"Header_parentMenuTitle__2G_3o\",\"profileDropdown\":\"Header_profileDropdown__1QMi_\",\"linkListMobile\":\"Header_linkListMobile__1FBfv\",\"dropDownContent\":\"Header_dropDownContent__2qyId\",\"menuIconContainer\":\"Header_menuIconContainer__254Jt\",\"menuIcon\":\"Header_menuIcon__14d21\",\"signout\":\"Header_signout__1q31Y\",\"selected\":\"Header_selected__3s4Be\",\"hidden\":\"Header_hidden__VSXNV\",\"listContainer\":\"Header_listContainer__1r0WJ\",\"loginNavLink\":\"Header_loginNavLink__2EnmG\",\"signInWrapper\":\"Header_signInWrapper__wYbe3\",\"menuTitleContainer\":\"Header_menuTitleContainer__28EAP\",\"button\":\"Header_button__2zTFD\",\"dropDown\":\"Header_dropDown__1HEc8\",\"logoWrapper\":\"Header_logoWrapper__2HaYU\",\"logo\":\"Header_logo__euief\",\"signingInLoaderContainer\":\"Header_signingInLoaderContainer__2oHOh\",\"signInContainer\":\"Header_signInContainer__Fe1nj\",\"welcomeMessage\":\"Header_welcomeMessage__3YSUp\"};","export enum SignUpWorkState {\n  Loading = \"Loading\",\n  Conflict = \"Conflict\",\n  None = \"None\",\n  ServerError = \"ServerError\",\n}\n\nexport enum LoginState {\n  Loading = \"Loading\",\n  Unauthorized = \"Unauthorized\",\n  None = \"None\",\n  ServerError = \"ServerError\",\n}\n\nexport enum LoginClientType {\n  Web = \"Web\",\n  Client = \"Client\",\n}\n\nexport enum WorkState {\n  Loading = \"Loading\",\n  Error = \"Error\",\n  None = \"None\",\n  Success = \"Success\",\n}\n\nexport enum Toast {\n  HIDE_ERROR = \"HIDE_ERROR\",\n  SHOW_ERROR = \"SHOW_ERROR\",\n}\n\nexport enum DownloadPlatforms {\n  WINDOWS = \"win\",\n  MAC = \"mac\",\n  UNKNOWN = \"unknown\",\n}\n\nexport enum ProductCategory {\n  Monthly = \"Monthly\",\n  BB2 = \"BB2\",\n  BB3 = \"BB3\",\n  BB4 = \"BB4\",\n  BBBundle = \"BBBundle\",\n  Soundbox = \"Soundbox\"\n}\nexport function stringToProductCategory(str:string|undefined):ProductCategory|null {\n  if (str === undefined) {\n    return null\n  }\n  switch(str.toLowerCase()) {\n    case ProductCategory.Monthly.toLowerCase():\n      return ProductCategory.Monthly\n    case ProductCategory.BB2.toLowerCase():\n      return ProductCategory.BB2\n    case ProductCategory.BB3.toLowerCase():\n      return ProductCategory.BB3\n    case ProductCategory.BB4.toLowerCase():\n      return ProductCategory.BB4\n    case ProductCategory.Soundbox.toLowerCase():\n      return ProductCategory.Soundbox\n    case ProductCategory.BBBundle.toLowerCase():\n      return ProductCategory.BBBundle\n    default:\n      return null\n  }\n}\n\nexport enum ProductType {\n  BB2 = \"BB2\",\n  BB3 = \"BB3\",\n  BB4 = \"BB4\",\n  BBBundle = \"BBBundle\",\n  Soundbox = \"Soundbox\",\n}\n\nexport enum PlanType {\n  Monthly = \"Monthly\", // this one is weird but legit since there's a specific \"Monthly\" tier for BB2\n  Free = \"Free\",\n  Plus = \"Plus\",\n  Pro = \"Pro\",\n  Bundle = \"Bundle\",\n  //Weekly = \"Weekly\", // fixed/migrated to 'Beginner'\n  Beginner = \"Beginner\",\n  Basic = \"Basic\",\n}\n\nexport enum PlanIds {\n  BB4Free = \"BB4Free\",\n  //BB4Weekly = \"BB4Weekly\",\n  BB4Basic = \"BB4Basic\",\n  BB4Pro = \"BB4Pro\",\n  BB4TrialUpsell = \"BB4TrialUpsell\",\n  BB4Beginner = \"BB4Beginner\",\n  BB3Free = \"BB3Free\",\n  BB3Monthly = \"BB3Monthly\",\n  BB3Plus = \"BB3Plus\",\n  BB3Pro = \"BB3Pro\",\n  BB3TrialUpsell = \"BB3TrialUpsell\",\n  BB3Beginner = \"BB3Beginner\",\n  BB2Free = \"BB2Free\",\n  BB2Monthly = \"BB2Monthly\",\n  BB2Plus = \"BB2Plus\",\n  BB2Pro = \"BB2Pro\",\n  BB2Beginner = \"BB2Beginner\",\n  BB2TrialUpsell = \"BB2TrialUpsell\",\n  BBBundle = \"BBBundle\",\n  BBBundleUpsell = \"BBBundleUpsell\",\n  SoundboxFree = \"SoundboxFree\",\n  SoundboxPro = \"SoundboxPro\",\n}\n\nexport enum PlanInterval {\n  Monthly = \"Monthly\",\n  Yearly = \"Yearly\",\n  Weekly = \"Weekly\",\n  Lifetime = \"Lifetime\",\n}\n\nexport enum PaymentPlatforms {\n  Stripe = \"stripe\",\n  Xsolla = \"xsolla\"\n}\n\nexport enum AppPlatforms {\n  iOS = \"iOS\",\n  Android = \"Android\",\n}\n\nexport enum AdPaymentDescription {\n  AUTOMATED = \"AUTOMATED\",\n  CUSTOMER_SUPPORT = \"CUSTOMER_SUPPORT\",\n}\n\nexport enum HWAccountStatus {\n  UNREGISTERED = \"UNREGISTERED\",\n  PRE_ACTIVATED = \"PRE_ACTIVATED\",\n  ACTIVATED = \"ACTIVATED\",\n  LOCKED = \"LOCKED\",\n  FROZEN = \"FROZEN\",\n  DE_ACTIVATED = \"DE_ACTIVATED\",\n}\n\nexport enum HWVerificationStatus {\n  NOT_REQUIRED = \"NOT_REQUIRED\",\n  REQUIRED = \"REQUIRED\",\n  FAILED = \"FAILED\",\n  UNDER_REVIEW = \"UNDER_REVIEW\",\n  VERIFIED = \"VERIFIED\",\n}\n\nexport enum BBVersions {\n  BUILDBOX2 = \"BB2\",\n  BUILDBOX3 = \"BB3\",\n  BUILDBOX4 = \"BB4\",\n  BUILDBOXWORLD = \"BBWorld\",  \n  GENERIC = \"generic\", \n  SOUNDBOX = \"Soundbox\",\n}\n\nexport const PlanNameToPlanIds: Record<string, PlanIds> = {\n  \"Buildbox 4 Free\": PlanIds.BB4Free,\n  //\"Buildbox 4 Weekly\": PlanIds.BB4Weekly,\n  \"Buildbox 4 Basic\": PlanIds.BB4Basic,\n  \"Buildbox 4 Pro\": PlanIds.BB4Pro,\n  \"Buildbox 4 Beginner\": PlanIds.BB4Beginner,\n  \"Buildbox 3 Free\": PlanIds.BB3Free,\n  \"Buildbox 3 Plus\": PlanIds.BB3Plus,\n  \"Buildbox 3 Pro\": PlanIds.BB3Pro,\n  \"Buildbox Classic Free\": PlanIds.BB2Free,\n  \"Buildbox Classic Plus\": PlanIds.BB2Plus,\n  \"Buildbox Classic Pro\": PlanIds.BB2Pro,\n  \"Buildbox Classic Beginner\": PlanIds.BB2Beginner,\n  \"Buildbox Bundle\": PlanIds.BBBundle,\n  \"Soundbox Free\": PlanIds.SoundboxFree,\n  \"Soundbox Pro\": PlanIds.SoundboxPro,\n}\n","export const bbaiUser = {\n  id: \"1\",\n  pic: \"https://frontend-assets.buildbox.com/web-gen-ai/boxy_avatar.svg\",\n};\n\nexport const defaultUser = {\n  id: \"2\",\n  pic: \"https://frontend-assets.buildbox.com/web-gen-ai/user_avatar.svg\",\n};\n\n\nexport enum bbaiStoryGamePromptStepStatus {\n  INITIAL = \"INITIAL\",\n  GENERATING_GAME_DATA = \"GENERATING_GAME_DATA\",\n  GENERATING_GAME_ASSETS = \"GENERATING_GAME_ASSETS\",\n  BUILD_BBDOC = \"BUILD_BBDOC\",\n  DOWNLOAD_BBDOC = \"DOWNLOAD_BBDOC\",\n  CLAIM_ACCOUNT = \"CLAIM_ACCOUNT\",\n  COMPLETE = \"COMPLETE\",\n  CLAIM_LOGIN_SKIP = \"CLAIM_LOGIN_SKIP\",\n  LOGIN_ACCOUNT = \"LOGIN_ACCOUNT\",\n  DONE = \"DONE\",\n  GAME_DATA = \"GAME_DATA\",\n  ERROR_RESTART_REGENERATE = \"ERROR_RESTART_REGENERATE\",\n}\n\n\nexport const bbaiStoryGamePromptOptions: Record<\n  string,\n  { prompt: string; errPrompt: string }\n> = {\n  INITIAL: {\n    prompt: \"Hello, I'm BBAI from Buildbox, and I'm here to help you make your first game! What story do you want to tell?\",\n    errPrompt: \"I'm sorry, I didn't quite get that. Could you tell me more about your story?\",\n  },\n  GAME_DATA: {\n    prompt: \"What story do you want to tell?\",\n    errPrompt: \"I'm sorry, I was unable to generate your game (something went wrong). Please try again.\",\n  },  \n  GENERATING_GAME_DATA: {\n    prompt: \"That's a great idea! I'm writing your Story Game now, this will take a minute or two...\",\n    errPrompt: \"I'm sorry, I was unable to generate your game (something went wrong). Please try again.\",\n  },  \n  GENERATING_GAME_ASSETS: {\n    prompt: \"I finished writing your Story Game! Now I'm working on adding graphics and sounds. This will take a minute or two...\",\n    errPrompt: \"I'm sorry, I was unable to generate your game (something went wrong). Please try again.\",\n  },\n  BUILD_BBDOC: {\n    prompt: \"Just one more moment, I'm putting the full game together!\",\n    errPrompt: \"I'm sorry, I was unable to construct your game (something went wrong). Please try again.\"\n  },\n  CLAIM_LOGIN_SKIP: {\n    prompt: \"\",\n    errPrompt: \"Error: I'm sorry, I didn't quite get that. Please select CLAIM, LOGIN, or SKIP.\",\n  },\n  COMPLETE: {\n    prompt: \"You can also download your game project as well as Buildbox to start modding it!\",\n    errPrompt: \"Error while trying to download BBDoc\",\n  },\n  COMPLETE_MOBILE: {\n    prompt: \"Play your bit now on Buildbox World!\",\n    errPrompt: \"something went wrong when completing the game\",\n  },\n  DOWNLOAD_BBDOC: {\n    prompt: \"I have finished uploading your game and it is now ready to play on the Buildbox World app!\",\n    errPrompt: \"Error while trying to download BBDoc\",\n  },\n  CLAIM_ACCOUNT: {\n    prompt: \"I have finished uploading your game and it is now ready to play on the Buildbox World app!\",\n    errPrompt: \"We were unable to claim your account and bbdoc, try skipping and manually claiming your game!\",\n  },\n};\n\nexport enum AssetType {\n  CHARACTER = \"CHARACTER\",\n  ENEMY = \"ENEMY\",\n  BACKGROUND = \"BACKGROUND\",\n}\n\nexport type Display = {\n  Component: React.ReactElement\n  stage: number// maybe make this string avlue?\n  nextStage: string\n}","import Env from \"../Env\";\n\nexport interface CreateTxt2ImgGenerationJobDTO{\n  prompt: string ;\n  costInVC:number ;\n  disableSuggestedOptimizations: boolean ;\n  jobId: string ;\n  width: number ;\n  height: number ;\n  seed: number;\n  removeBackground: boolean;\n  webCYOASaveCopyToS3Filename?: string|undefined\n  webCYOAProjectId?: string|undefined\n  projectId?:string | undefined,\n\n  // note that development has consistently been adding more potential params here, see bb-platform AssetGenerationDTO for the full list\n}\n\n\nexport interface Txt2ImgGenerationJobCreationResultDTO {\n  job: Txt2ImgGenerationJobDTO\n  buildbux: {\n    newBalance: number;\n    oldBalance: number;\n  };\n  uploadUrl?: string;\n}\n\nexport interface Txt2ImgGenerationJobDTO {\n  jobId:string\n  userId:string\n  prompt:string\n  userPrompt:string\n  userNegativePrompt:string\n  userDisableSuggestedOptimizations:boolean\n  userRemoveBackground:boolean\n  costInVC:number\n  status: ImageGenerationJobStatus\n  progress:number\n  createdAt:string\n  updatedAt:string\n  hasInputImage:boolean\n  originalRequest: object|null\n}\n\n\nexport enum ImageGenerationJobStatus {\n  CREATED = \"CREATED\",\n  IN_PROGRESS = \"IN_PROGRESS\",\n  COMPLETE = \"COMPLETE\",\n  ERROR = \"ERROR\",\n  CANCELLED = \"CANCELLED\",\n}\n\nexport interface GenAssetsStateDTO {\n  charAsset: Txt2ImgGenerationJobCreationResultDTO | null;\n  enemyAsset: Txt2ImgGenerationJobCreationResultDTO | null;\n  bgAsset: Txt2ImgGenerationJobCreationResultDTO | null;\n}\n\nexport interface ImageGenerationJobDTO {\n  Id: string\n  UserId: string;\n  Status: ImageGenerationJobStatus;\n  Progress: number;\n  Prompt: string;\n  CostInVC: number;\n  Phase: string;\n  ProgressInPhase: number;\n  ErrorCode: string;\n  Extra: string;\n  TimeToComplete: number;\n  UserMessage: string;  \n  Finalized: boolean\n  CreatedAt: Date;\n  UpdatedAt: Date;\n  UserPrompt: string;\n  UserNegativePrompt: string;\n  UserRemoveBackground: boolean  \n  UserDisableSuggestedOptimizations: boolean\n  JobRequestJson: string\n  HasInputImage: boolean  \n  IsSoftDeleted: boolean    \n}\n\nexport interface ImageGenerationJobCreationResultDTO {\n  ETA: number;\n  ImageGenerationJob: ImageGenerationJobDTO;\n  Queue: number\n}\n\nexport enum templateType {\n    SHOOTER = \"SHOOTER\",\n    WORLD = \"WORLD\",\n    PORTAL = \"PORTAL\",\n    JETPACK = \"JETPACK\"\n}\n\n\nexport type NotificationType = 'success' | 'info' | 'warning' | 'error';\n\nexport enum BBDocBackButtonPosition {\n  TOP_LEFT = \"TopLeft\",\n  TOP_CENTER = \"TopCenter\",\n  TOP_RIGHT = \"TopRight\",\n  LEFT = \"Left\",\n  CENTER = \"Center\",\n  RIGHT = \"Right\",\n  BOTTOM_LEFT = \"BottomLeft\",\n  BOTTOM_CENTER = \"BottomCenter\",\n  BOTTOM_RIGHT = \"BottomRight\",\n}\n\nexport enum BBDocRuntime {\n  BBCLASSIC = \"BBClassic\",\n  BB3 = \"BB3\",\n  BB4 = \"BB4\",\n}\nexport interface UploadBBDocDTO {\n  displayName: string\n  bytes: number\n  shareGlobally?: string\n  shareAsPremiumBit?: string\n  runtime?: BBDocRuntime | undefined\n  backButtonPosition?: BBDocBackButtonPosition | undefined \n  description?: string  \n}\nexport enum DownloadPlatforms {\n  WINDOWS = \"win\",\n  MAC = \"mac\",\n  UNKNOWN = \"unknown\",\n}\n\nexport interface BBDocResponseObj {\n  id: string\n  displayName: string\n  bytes: number\n  createdAt: number\n  updatedAt: number\n}\n\nexport interface IBBDownloadVersions {\n  BB4: {\n    WIN: string | undefined;\n    MAC: string | undefined;\n    APP: string;\n  };\n  BB3: {\n    WIN: string | undefined;\n    MAC: string | undefined;\n    APP: string;\n  };\n  BB2: {\n    WIN: string | undefined;\n    MAC: string | undefined;\n    APP: string;\n  };\n  Soundbox: {\n    WIN: string | undefined;\n    MAC: string | undefined;\n    APP: string;\n  }\n}\n\nexport const BBDownloadVersion: IBBDownloadVersions = {\n  BB4: {\n    WIN: Env.BB4_DOWNLOAD_LINK_WIN,\n    MAC: Env.BB4_DOWNLOAD_LINK_MAC,\n    APP: \"buildbox4\",\n  },\n  BB3: {\n    WIN: Env.BB3_DOWNLOAD_LINK_WIN,\n    MAC: Env.BB3_DOWNLOAD_LINK_MAC,\n    APP: \"buildbox3\",\n  },\n  BB2: {\n    WIN: Env.BB2_DOWNLOAD_LINK_WIN,\n    MAC: Env.BB2_DOWNLOAD_LINK_MAC,\n    APP: \"buildbox2\",\n  },\n  Soundbox: {\n    WIN: Env.SOUNDBOX_DOWNLOAD_LINK_WIN,\n    MAC: Env.SOUNDBOX_DOWNLOAD_LINK_MAC,\n    APP: \"soundbox\",\n  }\n};\n\n  export interface PostSSOTokensDTO {\n  accessToken: string\n  refreshToken: string\n  clientId: string\n  clientSecret: string\n}\n\nexport interface ChooseYourOwnAdventureChoiceData {\n  choiceDescription: string\n  coinsDelta: number\n  healthDelta: number\n  resultDescription: string\n}\n\nexport interface ChooseYourOwnAdventureChapterData {\n  description: string\n  imageFilename: string\n  choices: ChooseYourOwnAdventureChoiceData[]\n}\n\nexport interface ChooseYourOwnAdventureCustomizationData {\n  projectId: string\n  badEndText: string\n  goodEndText: string\n  badEndImageFilename: string\n  goodEndImageFilename: string\n  title: string\n  subtitle: string\n  titleImageFilename: string\n  backgroundMusicFilename: string\n  iconFilename: string\n  chapters: ChooseYourOwnAdventureChapterData[]\n}\n\nexport enum AuthOption {\n  LOGIN,\n  SIGNUP,\n}\n \n export enum bbaiStoryGamePromptStepStatus {\n    INITIAL = \"INITIAL\",\n    GENERATING_GAME_DATA = \"GENERATING_GAME_DATA\",\n    GENERATING_GAME_ASSETS = \"GENERATING_GAME_ASSETS\",\n    BUILD_BBDOC = \"BUILD_BBDOC\",\n    DOWNLOAD_BBDOC = \"DOWNLOAD_BBDOC\",\n    CLAIM_ACCOUNT = \"CLAIM_ACCOUNT\",\n    COMPLETE = \"COMPLETE\",\n    CLAIM_LOGIN_SKIP = \"CLAIM_LOGIN_SKIP\",\n    LOGIN_ACCOUNT = \"LOGIN_ACCOUNT\",\n    DONE = \"DONE\",\n    GAME_DATA = \"GAME_DATA\",\n    ERROR_RESTART_REGENERATE = \"ERROR_RESTART_REGENERATE\",\n  }\n\nexport type AuthResult = {\n  IdToken: string;\n  AccessToken: string;\n  RefreshToken: string;\n  isGuest: boolean;\n}","export default (state: { auth: bb.state.IAuth }) => {\n  return state.auth.gaClientId;\n};\n","export type SubMenu = {\n  key: string,\n  title: string,\n  link: string,\n  externalURL: string\n}\n\nexport type HeaderItem = {\n  title: string,\n  route: string,\n  externalURL: string,\n  subMenu?: SubMenu[]\n}\n\nexport const headerItems: HeaderItem[] = [\n    {\n      title: \"Plans\",\n      route: \"/plans\",\n      externalURL: \"\"\n    },\n    {\n      \"title\": \"Downloads\",\n      \"route\": \"\",\n      \"externalURL\": \"\",\n      \"subMenu\": [\n        {\n          \"key\": \"BB2\",\n          \"title\": \"Buildbox Classic\",\n          \"link\": \"/downloads/bb2\",\n          \"externalURL\": \"\"\n        },\n        {\n          \"key\": \"BB3\",\n          \"title\": \"Buildbox 3\",\n          \"link\": \"/downloads/bb3\",\n          \"externalURL\": \"\"\n        },\n        {\n          \"key\": \"BB4\",\n          \"title\": \"Buildbox 4\",\n          \"link\": \"/downloads/bb4\",\n          \"externalURL\": \"\"\n        },                \n        {\n          \"key\": \"Soundbox\",\n          \"title\": \"Soundbox\",\n          \"link\": \"/downloads/soundbox\",\n          \"externalURL\": \"\"\n        },\n        {\n          \"key\": \"Bundle\",\n          \"title\": \"Bundle\",\n          \"link\": \"/downloads/bbbundle\",\n          \"externalURL\": \"\"\n        }\n      ]\n    },\n    {\n      \"title\": \"Products\",\n      \"route\": \"\",\n      \"externalURL\": \"\",\n      \"subMenu\": [\n        {\n          \"key\": \"BB2\",\n          \"title\": \"Buildbox Classic\",\n          \"link\": \"/product/bb2\",\n          \"externalURL\": \"\"\n        },\n        {\n          \"key\": \"BB3\",\n          \"title\": \"Buildbox 3\",\n          \"link\": \"/product/bb3\",\n          \"externalURL\": \"\"\n        },\n        {\"key\": \"BB4\",\n          \"title\": \"Buildbox 4\",     \n          \"link\": \"/product/bb4\", \n          \"externalURL\": \"\" \n        },    \n        {\n          \"key\": \"BBWorld\",\n          \"title\": \"Buildbox World\",\n          \"link\": \"/product/buildboxworld\",\n          \"externalURL\": \"https://buildboxworld.com/\" \n        },      \n        {\n          \"key\": \"Soundbox\",\n          \"title\": \"Soundbox\",\n          \"link\": \"/product/soundbox\",\n          \"externalURL\": \"\"\n        },\n        {\n          \"key\": \"StoryGames\",\n          \"title\": \"Story Games\",\n          \"link\": \"/product/storygames\",\n          \"externalURL\": \"\"\n        }\n      ]\n    },\n    // {\n    //   \"title\": \"Learning Center\",\n    //   \"route\": \"\",\n    //   \"externalURL\": \"\",\n    //   \"subMenu\": [\n    //     {\n    //       \"key\": \"BB2Tutorials\",\n    //       \"title\": \"Buildbox Classic\",\n    //       \"link\": \"\",\n    //       \"externalURL\": \"https://www.buildbox.com/tutorials-buildbox-classic\"\n    //     },\n    //     {\n    //       \"key\": \"BB3Tutorials\",\n    //       \"title\": \"Buildbox 3\",\n    //       \"link\": \"\",\n    //       \"externalURL\": \"https://www.buildbox.com/tutorials-buildbox-3\"\n    //     }     \n    //   ]\n    // },\n    {\n      \"title\": \"Community\",\n      \"route\": \"\",\n      \"externalURL\": \"\",\n      \"subMenu\": [\n        {\n          \"key\": \"productfeedback\",\n          \"title\": \"Product Feedback\",\n          \"link\": \"\",\n          \"externalURL\": \"http://productboard.buildbox.com\"\n        },\n        {\n          \"key\": \"gamejam\",\n          \"title\": \"Game Jam\",\n          \"link\": \"\",\n          \"externalURL\": \"https://www.buildbox.com/gamejam\"\n        },\n        {\n          \"key\": \"blog\",\n          \"title\": \"Buildbox Blog\",\n          \"link\": \"\",\n          \"externalURL\": \"https://www.buildbox.com/blog/\"\n        },\n        {\n          \"key\": \"forum\",\n          \"title\": \"Buildbox Forum\",\n          \"link\": \"\",\n          \"externalURL\": \"https://www.buildbox.com/forum/index.php\"\n        },\n        {\n          \"key\": \"discord\",\n          \"title\": \"Buildbox Discord\",\n          \"link\": \"\",\n          \"externalURL\": \"https://discord.com/invite/buildbox\"\n        }\n      ]\n    },\n    // {\n    //   \"title\": \"Pricing\",\n    //   \"route\": \"/plans\",\n    //   \"externalURL\": \"\"\n    // },\n    {\n      \"title\": \"Help\",\n      \"route\": \"\",\n      \"externalURL\": \"\",\n      \"subMenu\": [\n        {\n          \"key\": \"reportissue\",\n          \"title\": \"Report an Issue\",\n          \"link\": \"/reportAnIssue\",\n          \"externalURL\": \"\"\n        },\n        {\n          \"key\": \"contact\",\n          \"title\": \"Contact Support\",\n          \"link\": \"/contactSupport\",\n          \"externalURL\": \"\" \n        },\n        {\n          \"key\": \"manual\",\n          \"title\": \"Buildbox Manual\",\n          \"link\": \"\",\n          \"externalURL\": \"https://www.buildbox.com/help/buildbox-3-manual\"\n        },\n        {\n          \"key\": \"api\",\n          \"title\": \"API Reference\",\n          \"link\": \"\",\n          \"externalURL\": \"https://www.buildbox.com/help/buildbox-3-api-reference/\"\n        },\n        {\n          \"key\": \"howto\",\n          \"title\": \"How To/FAQs\",\n          \"link\": \"\",\n          \"externalURL\": \"https://www.buildbox.com/help/how-to-faqs/\"\n        }\n      ]\n    }\n  ]\n\nexport const profileHeaderItems: HeaderItem[] = [\n      {\n        \"title\": \"Profile\",\n        \"route\": \"\",\n        \"externalURL\": \"\",\n        \"subMenu\": [\n          {\n            \"key\": \"profileInformation\",\n            \"title\": \"Profile Information\",\n            \"link\": \"/account/profile\",\n            \"externalURL\": \"\"\n          },\n          {\n            \"key\": \"subscription\",\n            \"title\": \"Device Management\",\n            \"link\": \"/account/subscription\",\n            \"externalURL\": \"\"\n          },\n          {\n            \"key\": \"monetization\",\n            \"title\": \"Adbox\",\n            \"link\": \"/account/ads/earnings\",\n            \"externalURL\": \"\"\n          },\n          {\n            \"key\": \"support\",\n            \"title\": \"Profile Support\",\n            \"link\": \"/account/support\",\n            \"externalURL\": \"\"\n          }\n        ]\n      }\n    ]\n","import React, { useState, useEffect } from \"react\";\nimport styles from \"../styles/Header.module.scss\";\nimport { Link } from \"react-router-dom\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faAngleDown } from \"@fortawesome/free-solid-svg-icons/faAngleDown\";\nimport { faAngleUp } from \"@fortawesome/free-solid-svg-icons/faAngleUp\";\nimport classnames from \"classnames\";\n\nexport const MenuItem = (props) => {\n  const [menuOpenState, toggleMenuState] = useState(false);\n  const [windowWidth, setWindowWidth] = useState(window.innerWidth);\n  const isDesktop = windowWidth >= 650;\n  const { menuItem } = props;\n\n  useEffect(() => {\n    const handleWindowResize = () => {\n      setWindowWidth(window.innerWidth);\n    };\n\n    window.addEventListener(\"resize\", handleWindowResize);\n\n    return () => {\n      window.removeEventListener(\"resize\", handleWindowResize);\n    };\n  }, []);\n\n  function toggleTab(path) {\n    if (props.activeTab) {\n      return props.activeTab === path ? styles.activeTab : \"\";\n    }\n  }\n\n  const toggleMenu = (event) => {\n    event.stopPropagation();\n    toggleMenuState(!menuOpenState);\n  };\n\n  const renderSubMenuItems = (submenus) => {\n    return (\n      <div\n        className={\n          menuOpenState\n            ? styles.dropDownContent\n            : classnames(styles.dropDownContent, styles.hidden)\n        }\n      >\n        {submenus.map((submenu, i) => {\n          return submenu.link !== \"\" ? (\n            <Link to={submenu.link} key={submenu.title}>\n              {submenu.title}\n            </Link>\n          ) : (\n            <a\n              key={submenu.key}\n              href={submenu.externalURL}\n              target=\"_blank\"\n              rel=\"noopener noreferrer\"\n            >\n              {submenu.title}\n            </a>\n          );\n        })}\n      </div>\n    );\n  };\n\n  const { title } = menuItem;\n\n  const renderParentMenu = () => {\n    if (menuItem.route.length) {\n      return (\n        <Link to={menuItem.route} key={title}>\n          <p className={toggleTab(menuItem.route)}>{title}</p>\n        </Link>\n      );\n    } else if (menuItem.externalURL.length) {\n      return (\n        <a\n          href={menuItem.externalURL}\n          target=\"_blank\"\n          rel=\"noopener noreferrer\"\n        >\n          <p>{title}</p>\n        </a>\n      );\n    } else {\n      return (\n        <p onClick={toggleMenu} className={styles.parentMenuTitle}>\n          {title}\n        </p>\n      );\n    }\n  };\n\n  return (\n    <div key={title} className={styles.dropDown}>\n      <div className={styles.menuTitleContainer}>\n        {renderParentMenu()}\n\n        {menuItem.subMenu && (\n          <FontAwesomeIcon\n            className={styles.menuIcon}\n            icon={menuOpenState && !isDesktop ? faAngleUp : faAngleDown}\n            onClick={toggleMenu}\n          />\n        )}\n      </div>\n\n      {menuItem.subMenu && renderSubMenuItems(menuItem.subMenu)}\n    </div>\n  );\n};\n","import classnames from \"classnames\"\nimport React, { ReactElement } from \"react\"\n\nimport styles from \"../styles/SocialIcons.module.scss\"\n\nexport function SocialIcons(props:{className?:string}): ReactElement {\n  return (\n    <div className={classnames(styles.socialIconsContainer, props.className)}>\n      <a\n        className={styles.socialLink}\n        href=\"https://www.facebook.com/buildboxofficial\"\n        target=\"_blank\"\n        rel=\"noopener noreferrer\"\n      >\n        <img\n          src={\"https://frontend-assets.buildbox.com/Facebook.svg\"}\n          alt=\"Buildbox Logo\"\n        />\n      </a>\n      <a\n        className={styles.socialLink}\n        href=\"https://twitter.com/buildbox\"\n        target=\"_blank\"\n        rel=\"noopener noreferrer\"\n      >\n        <img\n          src={\"https://frontend-assets.buildbox.com/Twitter.svg\"}\n          alt=\"Buildbox Logo\"\n        />\n      </a>\n      <a\n        className={styles.socialLink}\n        href=\"https://www.youtube.com/c/buildbox?sub_confirmation=1\"\n        target=\"_blank\"\n        rel=\"noopener noreferrer\"\n      >\n        <img\n          src={\"https://frontend-assets.buildbox.com/YouTube.svg\"}\n          alt=\"Buildbox Logo\"\n        />\n      </a>\n      <a\n        className={styles.socialLink}\n        href=\"https://www.instagram.com/buildbox/\"\n        target=\"_blank\"\n        rel=\"noopener noreferrer\"\n      >\n        <img\n          src={\"https://frontend-assets.buildbox.com/Instagram.svg\"}\n          alt=\"Buildbox Logo\"\n        />\n      </a>\n      <a\n        className={styles.socialLink}\n        href=\"https://discord.com/invite/buildbox\"\n        target=\"_blank\"\n        rel=\"noopener noreferrer\"\n      >\n        <img\n          src={\"https://frontend-assets.buildbox.com/Discord.svg\"}\n          alt=\"Buildbox Logo\"\n        />\n      </a>\n    </div>\n  )\n}\n\n\nexport function SocialText(props:{className?:string}): ReactElement {\n  return (\n    <div className={classnames(props.className)}>\n      <a\n        className={styles.socialLinkVertical}\n        href=\"https://www.facebook.com/buildboxofficial\"\n        target=\"_blank\"\n        rel=\"noopener noreferrer\"\n      >\n        Facebook\n      </a>\n      <a\n        className={styles.socialLinkVertical}\n        href=\"https://twitter.com/buildbox\"\n        target=\"_blank\"\n        rel=\"noopener noreferrer\"\n      >\n       Twitter\n      </a>\n      <a\n        className={styles.socialLinkVertical}\n        href=\"https://www.youtube.com/c/buildbox?sub_confirmation=1\"\n        target=\"_blank\"\n        rel=\"noopener noreferrer\"\n      >\n        Youtube\n      </a>\n      <a\n        className={styles.socialLinkVertical}\n        href=\"https://www.instagram.com/buildbox/\"\n        target=\"_blank\"\n        rel=\"noopener noreferrer\"\n      >\n        Instagram\n      </a>\n      <a\n        className={styles.socialLinkVertical}\n        href=\"https://discord.com/invite/buildbox\"\n        target=\"_blank\"\n        rel=\"noopener noreferrer\"\n      >\n        Discord\n      </a>\n    </div>\n  )\n}","import React, { useContext, useState, useEffect } from \"react\";\nimport { NavLink, useHistory } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { UserContext } from \"../App\";\nimport { Link } from \"react-router-dom\";\nimport { useLocation } from \"react-router-dom\";\nimport Log from \"../utils/Log\";\nimport { logout } from \"../actions/auth\";\nimport { showError } from \"../actions/error\";\nimport currentUserInfo from \"../selectors/currentUserInfo\";\nimport styles from \"../styles/Header.module.scss\";\nimport imgBuildboxLogo from \"../img/LogoBB_Normal.png\";\nimport imgBuildbox4Logo from \"../img/BB4_Logo_Wordmark_Wht.png\";\nimport routes from \"../constants/routes.json\";\nimport classnames from \"classnames\"\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faBars } from \"@fortawesome/free-solid-svg-icons/faBars\";\nimport { faTimes } from \"@fortawesome/free-solid-svg-icons/faTimes\";\n\nimport {HeaderItem, headerItems, profileHeaderItems} from \"../constants/HeaderItems\";\nimport { MenuItem } from \"../components/MenuItem\";\nimport setCssVariables from \"../utils/setCssVariables\";\nimport { SocialIcons } from \"../components/SocialIcons\";\nimport useIsMobile from \"../hooks/useIsMobile\";\nimport { addPlanToCart } from \"../actions/cart\";\nimport { PlanIds } from \"../reducers/models\";\n\n// controls the \"Try Buildbox X\" button in upper right\nconst defaultHomepage = process.env.REACT_APP_MAIN_HOME_PAGE;\n\nexport default function Header() {\n  const dispatch = useDispatch();\n  const location = useLocation();\n  const currentUser = useSelector(currentUserInfo);\n  const { session } = useContext(UserContext);\n  const {isMobile} = useIsMobile()\n  const history = useHistory()\n  \n  const [menuOpenState, toggleMenuState] = useState(false);\n  const [activeTab, setActiveTab] = useState(null);\n  const [toggleDropdown, setToggleDropdown] = useState(false);\n\n  const color1 = sessionStorage.getItem(\"profileColor1\");\n  const color2 = sessionStorage.getItem(\"profileColor2\");\n\n  async function onLoad() {\n    try {\n      if (currentUser) {\n        // Log.trace(\"got current user!\", currentUser);\n      }\n\n      setActiveTab(location.pathname);\n    } catch (e) {\n      console.log(\"e\", e);\n    }\n  }\n\n  useEffect(() => {\n    onLoad(); //eslint-disable-next-line\n  }, [location.pathname, currentUser, session]);\n\n  function handleSignIn() {\n    console.log(\"clicked\");\n\n    try {\n      // save path name to redirect after successful login\n      sessionStorage.setItem(\n        \"previousRoute\",\n        location.pathname + location.search\n      );\n\n      // redirectToLoginPage(props);\n    } catch (e) {\n      Log.error(e, \"Header component: error signing in\");\n    }\n  }\n\n  async function handleLogout() {\n    try {\n      await dispatch(logout());\n    } catch (e: any) {\n      Log.error(e, \"App Component: error caught logging out\");\n      dispatch(showError(e.message));\n    }\n  }\n\n  function renderAuthState() {\n    // if (workState.loginState === LoginState.Loading) {\n    //   return (\n    //     <div className={styles.signingInLoaderContainer}>\n    //       <img\n    //         className={styles.loadingGif}\n    //         src=\"https://frontend-assets.buildbox.com/bb_logo_new_morph_black.gif\"\n    //         alt={\"Buildbox Logo\"}\n    //       />\n    //       <p style={{ padding: \"0.5em\", color: \"white\" }}>SIGNING IN...</p>\n    //     </div>\n    //   );\n    // }\n\n    if (currentUser && currentUser.username) {\n      const userNameLetter = currentUser.name.charAt(0).toUpperCase();\n      const background = {\n        \"background\": `linear-gradient(to bottom, ${color1}, ${color2})`,\n      };\n      setCssVariables(background);\n      return (\n        <>\n          <p\n            className={styles.profileBtn}\n            style={background}\n            onClick={() => setToggleDropdown(!toggleDropdown)}\n          >\n            {userNameLetter}\n          </p>\n          {toggleDropdown && (\n            <div className={styles.profileDropdown}>\n              <ul>\n                <NavLink\n                  to=\"/account/profile\"\n                  activeClassName={styles.selected}\n                  onClick={() => setToggleDropdown(!toggleDropdown)}\n                >\n                  <span>Profile</span>\n                </NavLink>\n                <NavLink\n                  to=\"/account/subscription\"\n                  activeClassName={styles.selected}\n                  onClick={() => setToggleDropdown(!toggleDropdown)}\n                >\n                  <span>Device Management</span>\n                </NavLink>\n                <NavLink\n                  to=\"/account/ads/earnings\"\n                  activeClassName={styles.selected}\n                  onClick={() => setToggleDropdown(!toggleDropdown)}\n                >\n                  <span>Adbox</span>\n                </NavLink>\n                <NavLink\n                  to=\"/account/support\"\n                  activeClassName={styles.selected}\n                  onClick={() => setToggleDropdown(!toggleDropdown)}\n                >\n                  <span>Support</span>\n                </NavLink>\n                <li>\n                  <p onClick={handleLogout}>Sign out</p>\n                </li>\n              </ul>\n            </div>\n          )}\n        </>\n      );\n    } else {\n      return (\n        <React.Fragment>\n          <Link className={classnames(styles.signInContainer, styles.button)} to={routes.LOGIN} onClick={handleSignIn}>\n              Sign In\n          </Link>\n        </React.Fragment>\n      );\n    }\n  }\n\n  function getMobileMenu() {\n    const animStyle = {\n      overflow: \"hidden\",\n      transition: \"max-height 0.25s cubic-bezier(0.65, 0.05, 0.36, 1) 0s\",\n      height: \"height: calc( 100vh - 100px )\",\n      maxHeight: \"0px\",\n    };\n\n    const linkHeaderItems = {\n      gridTemplateRows: `repeat( ${headerItems.length}, 35px )`,\n    };\n\n    if (menuOpenState) {\n      animStyle.maxHeight = \"100vh\"; // Value doesn't seem to really matter, as long as its not auto and larger than content height\n    }\n\n    return (\n      <div\n        onClick={toggleMenu}\n        className={styles.linkListMobile}\n        style={animStyle}\n      >\n        <div className={styles.listContainer} style={linkHeaderItems}>\n          {renderMenuItems(headerItems)}\n          {renderMobileAuth()}\n        </div>\n      </div>\n    );\n  }\n\n  function renderMenuItems(headerItemsArray: HeaderItem[]) {\n    return headerItemsArray.map((headerItem) => {\n      if(headerItem.title === \"Downloads\" && isMobile) return null\n      return (\n      <MenuItem\n        key={headerItem.title}\n        menuItem={headerItem}\n        activeTab={activeTab}\n      />\n    )});\n  }\n\n  function renderMobileAuth() {\n    if (currentUser && currentUser.username) {\n      return (\n        <>\n          <>{renderMenuItems(profileHeaderItems)}</>\n          <div className={styles.menuTitleContainer}>\n            <p onClick={handleLogout} className={styles.parentMenuTitle}>\n              Sign out\n            </p>\n          </div>\n        </>\n      );\n    } else {\n      return (\n        <Link\n          to={routes.LOGIN}\n          onClick={handleSignIn}\n          className={styles.loginNavLink}\n        >\n          <div className={styles.signInWrapper}>\n            <p className={styles.parentMenuTitle}>Sign In</p>\n          </div>\n        </Link>\n      );\n    }\n  }\n\n  function toggleMenu() {\n    toggleMenuState(!menuOpenState);\n  }\n\n\n  function handlePurchaseClick(): void {\n\n    if(defaultHomepage === \"BBCLASSIC\") {\n      dispatch(addPlanToCart(PlanIds.BB2Beginner));\n    }\n    else {\n      dispatch(addPlanToCart(PlanIds.BB4Beginner));\n    }\n\n    const promoCode = sessionStorage.getItem(\"promoCode\");\n    if (currentUser?.referralInfo?.Network?.toLowerCase() === \"xsolla\") {\n      if (promoCode) {\n        history.push(`/purchaseThroughXsolla?promo=${promoCode}`);\n      } else {\n        history.push(\"/purchaseThroughXsolla\");\n      }\n    } else {\n      if (promoCode) {\n        history.push(`/purchaseThroughStripe?promo=${promoCode}`);\n      } else {\n        history.push(\"/purchaseThroughStripe\");\n      }\n    }\n  }\n\n  function logoElement() {\n    let logoUrl\n    if(defaultHomepage === \"BBCLASSIC\") {\n      logoUrl = imgBuildboxLogo\n    }\n    else {\n      logoUrl = imgBuildbox4Logo\n    }\n    return (\n      <a className={styles.logoWrapper} href=\"/\">\n        <img\n          src={logoUrl}\n          alt=\"logo\"\n          className={styles.logo}\n        />\n      </a>\n    )\n  }\n\n  return (\n    <div className={styles.header}>\n      {logoElement()}\n      <SocialIcons className={styles.socialIcons} />\n      <div className={styles.linkListDesktop}>\n        {renderMenuItems(headerItems)}\n        {renderAuthState()}\n        {/* TODO: Double check if this is where we want to land */}\n        <button onClick={handlePurchaseClick} className={classnames(styles.getStartedButton, styles.button)}>Try Buildbox {defaultHomepage === \"BBCLASSIC\" ? \"Classic\" : 4}</button>\n      </div>\n      <div onClick={toggleMenu} className={styles.menuIconContainer}>\n        <FontAwesomeIcon\n          className={styles.menuIcon}\n          icon={menuOpenState ? faTimes : faBars}\n        />\n      </div>\n      {getMobileMenu()}\n    </div>\n  );\n}\n","export default function setCssVariables(variableObj) {\n  Object.keys(variableObj).map((key) => {\n    const value = variableObj[key];\n    return document.documentElement.style.setProperty(key, value);\n  });\n}\n","import React from \"react\";\nimport styles from \"../styles/Footer.module.scss\";\nimport classnames from \"classnames\"\nimport img from \"../img/LogoBB_Normal.png\";\n// import { SocialText } from \"../components/SocialIcons\"\n\nexport default function Footer() {\n\n  return (\n    <div className={styles.footer}>\n      <div className={styles.wrapper}>\n        <div className={styles.linksContainer}>\n          <div className={styles.linksWrapper}>\n            <div className={styles.linkItems}>\n              <a className={styles.logoWrapper} href=\"/\">\n                <img src={img} alt=\"logo\" />\n              </a>\n              <label>STAY UP TO DATE</label>\n              <form action=\"https://buildbox.us17.list-manage.com/subscribe/post?u=a8d5a261ccc1b19b96a0cde40&amp;id=e3bc94a36f&amp;f_id=0000c2e1f0\" method=\"post\" id=\"mc-embedded-subscribe-form\" name=\"mc-embedded-subscribe-form\" className=\"validate\" target=\"_self\">\n                <div id=\"mc_embed_signup_scroll\">\n\n                  <div className={classnames(\"mc-field-group\", styles.formInputs)}>\n                    <input type=\"email\" name=\"EMAIL\" className=\"required email\" id=\"mce-EMAIL\" required placeholder=\"Email Address\" />\n                    <button type=\"submit\" value=\"Subscribe\">Subscribe</button>\n                  </div>\n                  <div className=\"mc-field-group input-group\">\n                    <ul className={styles.interestsList}>\n                      <li>\n                        <input type=\"checkbox\" value=\"4096\" name=\"group[2156][4096]\" id=\"mce-group[2156]-2156-0\" />\n                        <label htmlFor=\"mce-group[2156]-2156-0\">Aspiring Game Developer</label>\n                      </li>\n                      <li>\n                        <input type=\"checkbox\" value=\"8192\" name=\"group[2156][8192]\" id=\"mce-group[2156]-2156-1\" />\n                        <label htmlFor=\"mce-group[2156]-2156-1\">Creator</label>\n                      </li>\n                      <li>\n                        <input type=\"checkbox\" value=\"16384\" name=\"group[2156][16384]\" id=\"mce-group[2156]-2156-2\" />\n                        <label htmlFor=\"mce-group[2156]-2156-2\">(Indie) Developer</label>\n                      </li>\n                      <li>\n                        <input type=\"checkbox\" value=\"32768\" name=\"group[2156][32768]\" id=\"mce-group[2156]-2156-3\" />\n                        <label htmlFor=\"mce-group[2156]-2156-3\">New to Game Design</label>\n                      </li>\n                    </ul>\n                    <span id=\"mce-group[2156]-HELPERTEXT\" className=\"helper_text\"></span>\n                  </div>\n                  <div hidden><input hidden name=\"tags\" value=\"527\" readOnly /></div>\n                  <div id=\"mce-responses\" className=\"clear\">\n                    <div className=\"response\" id=\"mce-error-response\" style={{display:\"none\"}}></div>\n                    <div className=\"response\" id=\"mce-success-response\" style={{display:\"none\"}}></div>\n                  </div>\n                  <div style={{position: \"absolute\", left: \"-5000px\"}} aria-hidden><input type=\"text\" name=\"b_a8d5a261ccc1b19b96a0cde40_e3bc94a36f\"  readOnly  /></div>\n                  <div className=\"clear\"></div>\n                </div>\n              </form>\n            </div>  \n          </div>\n          <div className={styles.linkItemsSocial}>\n            <div className={classnames(styles.socialText)}>\n                <a href=\"https://www.buildbox.com/blog/\"   target=\"_blank\"\n            rel=\"noopener noreferrer\">About Us</a>\n                <a href=\"/product/bb3\">Products</a>\n                <a href=\"/plans\">Pricing</a>\n                <a href=\"https://www.buildbox.com/contact/\" target=\"_blank\"\n            rel=\"noopener noreferrer\">Contact Us</a>\n                {/*<a href=\"https://apponboard.com/careers/\"  target=\"_blank\"\n            rel=\"noopener noreferrer\">Careers</a>*/}\n\n            </div>\n            <div className={classnames(styles.socialText)}>\n              <a\n                href=\"https://www.facebook.com/buildboxofficial\"\n                target=\"_blank\"\n                rel=\"noopener noreferrer\"\n              >\n                Facebook\n              </a>\n              <a\n                href=\"https://twitter.com/buildbox\"\n                target=\"_blank\"\n                rel=\"noopener noreferrer\"\n              >\n              Twitter\n              </a>\n              <a\n                href=\"https://www.youtube.com/c/buildbox?sub_confirmation=1\"\n                target=\"_blank\"\n                rel=\"noopener noreferrer\"\n              >\n                Youtube\n              </a>\n              <a\n                href=\"https://www.instagram.com/buildbox/\"\n                target=\"_blank\"\n                rel=\"noopener noreferrer\"\n              >\n                Instagram\n              </a>\n              <a\n                href=\"https://discord.com/invite/buildbox\"\n                target=\"_blank\"\n                rel=\"noopener noreferrer\"\n              >\n                Discord\n              </a>\n            </div>\n          </div>\n        </div>\n        <div className={styles.termsContainer}>\n          <p>©2021-2024 AppOnboard, Inc</p>\n          <span>|</span>\n          <a href=\"https://www.buildbox.com/privacy-policy/\">Privacy Policy</a>\n          <span>|</span>\n          <a href=\"https://www.buildbox.com/terms/\"> Terms</a>\n        </div>\n      </div>\n    </div>\n  );\n}\n","import React, { useEffect, Suspense } from \"react\";\nimport { Route } from \"react-router-dom\";\n\nexport default function AppliedRoute({ component: C, appProps, ...rest }) {\n  useEffect(() => {\n    //to bring to top of page since react-router remembers your scroll pos?\n    window.scrollTo(0, 0);\n\n    //TODO: this may need to include title ie below, pass informatin through the props\n    // window.dataLayer.push({\n    //   event: \"pageview\",\n    //   page: {\n    //     url: location,\n    //     title: title,\n    //   },\n    // });\n    window.dataLayer.push({\n      event: \"pageview\",\n    });\n  });\n  return (\n    <Route\n      {...rest}\n      render={(props) => (\n        <Suspense fallback={<div style={{ height: \"100vh\" }}>Loading...</div>}>\n          <C {...props} {...appProps} />\n        </Suspense>\n      )}\n    />\n  );\n}\n","import React, { lazy } from \"react\";\nimport { Redirect, Switch } from \"react-router-dom\";\nimport AppliedRoute from \"./components/AppliedRoute\";\nimport routes from \"./constants/routes.json\";\n\n// const NewHome = lazy(() => import(\"./containers/home/NewHome\"));\nconst NewBB4Home = lazy(() => import(\"./containers/home/NewBB4Home\"));\nconst NewClassicStoryGamesHome = lazy(() => import(\"./containers/home/NewClassicStoryGamesHome\"));\nconst BB4Product = lazy(() => import(\"./containers/product/BB4Product.jsx\"));\nconst BB3Product = lazy(() => import(\"./containers/product/BB3Product.jsx\"));\nconst BB2Product = lazy(() => import(\"./containers/product/BB2Product.jsx\"));\nconst SoundboxProduct = lazy(() => import(\"./containers/product/SoundboxProduct.jsx\"));\nconst Plans = lazy(() => import(\"./containers/plans/Plans\"));\nconst NotFound = lazy(() => import(\"./containers/NotFound\"));\nconst Downloads = lazy(() => import(\"./containers/Downloads\"));\nconst BillingFormStripe = lazy(() => import(\"./containers/CheckoutStripe.tsx\"));\nconst BillingFormXsolla = lazy(() => import(\"./containers/CheckoutXsolla.tsx\"));\nconst AuthUI = lazy(() => import(\"./containers/AuthUI\"));\nconst ConfirmAccount = lazy(() => import(\"./containers/ConfirmAccount\"));\nconst ThankYou = lazy(() => import(\"./containers/ThankYou\"));\nconst Login = lazy(() => import(\"./containers/LoginPage\"));\nconst Loader = lazy(() => import(\"./containers/Loader\"));\nconst ClientUpgradeRedirect = lazy(() =>\n  import(\"./containers/client/ClientUpgradeRedirect\")\n);\nconst ClientLoginRedirect = lazy(() =>\n  import(\"./containers/client/ClientLoginRedirect\")\n);\nconst ClientLogoutRedirect = lazy(() =>\n  import(\"./containers/client/ClientLogoutRedirect\")\n);\nconst ClientPostmessageConnection = lazy(() =>\n  import(\"./containers/client/ClientPostmessageConnection\")\n);\nconst ClientGoogleLogin = lazy(() =>\n  import(\"./containers/client/ClientGoogleLogin\")\n);\nconst ClientFacebookLogin = lazy(() =>\n  import(\"./containers/client/ClientFacebookLogin\")\n);\nconst ClientAppleLogin = lazy(() =>\n  import(\"./containers/client/ClientAppleLogin\")\n);\nconst ClientDeeplinkLogin = lazy(() =>\n  import(\"./containers/client/ClientDeeplinkLogin\")\n);\nconst ClientAwaitingFacebookLogin = lazy(() =>\n  import(\"./containers/client/ClientAwaitingFacebookLogin\")\n);\nconst ClientAwaitingAppleLogin = lazy(() =>\n  import(\"./containers/client/ClientAwaitingAppleLogin\")\n);\nconst ClientAwaitingGoogleLogin = lazy(() =>\n  import(\"./containers/client/ClientAwaitingGoogleLogin\")\n);\nconst ReportAnIssue = lazy(() => import(\"./containers/ReportAnIssue.jsx\"));\nconst ContactSupport = lazy(() => import(\"./containers/ContactSupport.jsx\"));\nconst NewFeature = lazy(() => import(\"./containers/NewFeature.jsx\"));\nconst FeatureThankYou = lazy(() => import(\"./containers/FeatureThankYou.jsx\"));\nconst FeaturePostMessage = lazy(() =>\n  import(\"./containers/FeaturePostMessage.jsx\")\n);\nconst UserAccount = lazy(() => import(\"./containers/UserAccount.jsx\"));\nconst BuildBoxWorld = lazy(() => import(\"./containers/BuildBoxWorld.js\"));\nconst ReferralLandingPage = lazy(() =>\n  import(\"./containers/ReferralLandingPage.jsx\")\n);\n\nconst GenAIPrompt = lazy(() => import(\"./containers/genai/GenAIPrompt.tsx\"));\nconst RenewalThankYou = lazy(() => import(\"./containers/RenewalThankYou\"))\nconst BB4AlphaPreviewNotes = lazy(() => import(\"./containers/BB4AlphaPreviewNotes\"));\nconst BB4CheckoutRedirect = lazy(() => import(\"./containers/BB4CheckoutRedirect\"));\nconst BB2CheckoutRedirect = lazy(() => import(\"./containers/BB2CheckoutRedirect\"));\n\nconst UpsellAfterTrial = lazy(() => import(\"./containers/trialUpsell/UpsellAfterTrial\"));\n\nconst BB2Campaign = lazy(() => import(\"./containers/landing/BB2Campaign\"));\n\nexport default function Routes({ appProps }) {\n  const homePage = process.env.REACT_APP_MAIN_HOME_PAGE;\n  return (\n    <Switch>\n      <AppliedRoute\n        path={routes.SPLASH}\n        exact\n        component={homePage === \"BBCLASSIC\" ? NewClassicStoryGamesHome : NewBB4Home}\n        appProps={appProps}\n      />\n      {/* homePage === \"BBCLASSIC\" ? <Redirect from=\"/plans/bb4\" to=\"/plans/classic\" /> : <Redirect from=\"/plans/bb3\" to=\"/plans/bb4\" /> */}\n      <AppliedRoute\n        path={routes.PURCHASE_PLANS}\n        component={Plans}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={`${routes.DOWNLOADS}/:version`}\n        exact\n        component={Downloads}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.CHECKOUT_STRIPE}\n        exact\n        component={BillingFormStripe}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.CHECKOUT_XSOLLA}\n        exact\n        component={BillingFormXsolla}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.UPSELL_AFTER_TRIAL}\n        exact\n        component={UpsellAfterTrial}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.REDIRECT}\n        exact\n        component={ClientUpgradeRedirect}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.CONFIRM_ACCOUNT}\n        exact\n        component={ConfirmAccount}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.ERROR}\n        exact\n        component={AuthUI}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.LOADING}\n        exact\n        component={Loader}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.THANK_YOU}\n        exact\n        component={ThankYou}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.LOGIN}\n        exact\n        component={Login}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.CLIENT_REDIRECT}\n        exact\n        component={ClientLoginRedirect}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.CLIENT_LOGOUT_REDIRECT}\n        exact\n        component={ClientLogoutRedirect}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.CLIENT_POSTMESSAGE_CONNECTION}\n        exact\n        component={ClientPostmessageConnection}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.CLIENT_GOOGLE_LOGIN}\n        exact\n        component={ClientGoogleLogin}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.CLIENT_FACEBOOK_LOGIN}\n        exact\n        component={ClientFacebookLogin}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.CLIENT_APPLE_LOGIN}\n        exact\n        component={ClientAppleLogin}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.CLIENT_DEEPLINK_LOGIN}\n        exact\n        component={ClientDeeplinkLogin}\n        appProps={appProps}\n      />      \n      <AppliedRoute\n        path={routes.CLIENT_AWAITING_GOOGLE_LOGIN}\n        exact\n        component={ClientAwaitingGoogleLogin}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.CLIENT_AWAITING_FACEBOOK_LOGIN}\n        exact\n        component={ClientAwaitingFacebookLogin}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.CLIENT_AWAITING_APPLE_LOGIN}\n        exact\n        component={ClientAwaitingAppleLogin}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.REPORT_AN_ISSUE}\n        exact\n        component={ReportAnIssue}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.CONTACT_SUPPORT}\n        exact\n        component={ContactSupport}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.CONTACT_SUPPORT}\n        exact\n        component={ContactSupport}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.SUBMIT_NEW_FEATURE}\n        exact\n        component={NewFeature}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.REPORTING_THANK_YOU}\n        exact\n        component={FeatureThankYou}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.FEATURE_POST_MESSAGE}\n        exact\n        component={FeaturePostMessage}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.BB4_PRODUCT}\n        exact\n        component={BB4Product}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.BB3_PRODUCT}\n        exact\n        component={BB3Product}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.BB2_PRODUCT}\n        exact\n        component={BB2Product}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.BB2_LANDING}\n        exact\n        component={BB2Campaign}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.SOUNDBOX_PRODUCT}\n        exact\n        component={SoundboxProduct}\n        appProps={appProps}\n      />      \n      <AppliedRoute\n        path={routes.BuildBoxWorld}\n        exact\n        component={BuildBoxWorld}\n        appProps\n      />\n      <AppliedRoute\n        path={`${routes.USER_ACCOUNT}/:accountPage`}\n        exact\n        component={UserAccount}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={`${routes.USER_SUBSCRIPTION}/:subscriptionSubPage`}\n        exact\n        component={UserAccount}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={`${routes.USER_AD_MANAGEMENT}/:adManagementSubPage`}\n        exact\n        component={UserAccount}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.REFERRAL_LANDING_PAGE}\n        exact\n        component={ReferralLandingPage}\n        appProps={appProps}\n      />\n      <AppliedRoute\n        path={routes.RENEWAL_THANK_YOU}\n        exact \n        component={RenewalThankYou} \n        appProps={appProps}\n      />\n      <AppliedRoute path={routes.STORY_GAME} \n        exact \n        component={ () => {\n          window.location.href = process.env.REACT_APP_STAGE === \"production\" ? \"https://storygames.buildbox.com/\": \"https://genai-fe.dev.8cell.com/\";\n          return null;\n        }}\n        appProps={appProps}\n\n      />\n       <AppliedRoute path={routes.BuildBoxWorldProduct} \n        exact \n        component={ () => {\n          window.location.href = process.env.REACT_APP_STAGE === \"production\" ? \"https://buildboxworld.com/\": \"https://buildboxworld.com/\";\n          return null;\n        }}\n        appProps={appProps}\n\n      />\n      <AppliedRoute path={routes.STORY_GAME_GENERATE} \n        exact\n        component={ GenAIPrompt}\n        appProps={appProps}\n      />\n      <AppliedRoute path={routes.BB4_ALPHA_PREVIEW_NOTES} \n        exact\n        component={BB4AlphaPreviewNotes}\n        appProps={appProps}\n      />\n      <AppliedRoute \n        path={routes.BB4_CHECKOUT_REDIRECT} \n        exact \n        component={BB4CheckoutRedirect} \n        appProps={appProps}\n      />\n      <AppliedRoute \n        path={routes.BB2_CHECKOUT_REDIRECT} \n        exact \n        component={BB2CheckoutRedirect} \n        appProps={appProps}\n      />      \n      <AppliedRoute \n        path={routes.APPLE_PAY_SITE_VERIFICATION} \n        exact \n        component={ () => {\n          console.log('apple pay site verification route...');\n          window.location.href = '/.well-known/apple-developer-merchantid-domain-association.dat';\n          return null;          \n        }}\n        appProps={appProps}\n      />     \n      <Redirect from=\"/account\" to=\"/account/profile\" />\n      <AppliedRoute component={NotFound} />\n    </Switch>\n  );\n}\n","import React, { useState, useEffect } from \"react\";\nimport styles from \"../styles/GenericLogoLander.module.scss\";\nimport { isUnsupportedBrowser } from \"../utils/browserUtils\";\n\nexport const RoadblockUI = (props) => {\n  return (\n    <div className={styles.container}>\n      <div className={styles.header}>\n        <img\n          src={\"https://frontend-assets.buildbox.com/Buildbox__Icon_Only.png\"}\n          className={styles.BBLogo}\n          alt=\"Buildbox Logo\"\n        />\n        <h3>\n          Your browser is deprecated. Please use the latest version of Chrome,\n          Firefox, Microsoft Edge, or Safari for an optimal experience.\n        </h3>\n      </div>\n    </div>\n  );\n};\n\nexport default function BrowserRoadblock({ children }) {\n  const [isDeprecated, setRoadblock] = useState(false);\n\n  const detectBrowser = () => {\n    const isIE = isUnsupportedBrowser();\n\n    if (isIE) {\n      setRoadblock(true);\n      sessionStorage.setItem(\"isDeprecated\", true);\n    } else {\n      setRoadblock(false);\n      sessionStorage.setItem(\"isDeprecated\", false);\n    }\n  };\n\n  useEffect(() => {\n    detectBrowser();\n  }, [isDeprecated]);\n\n  return <>{isDeprecated ? <RoadblockUI /> : children}</>;\n}\n","import React from 'react';\nimport { Helmet } from 'react-helmet';\n\nconst OneTrust = () => {\n  return (\n    <>\n      {process.env.REACT_APP_STAGE === \"production\" ? \n      null\n      // (\n      //   <Helmet>\n      //     <script type=\"text/javascript\" src=\"https://cdn.cookielaw.org/consent/018e3ec4-2c2c-76fa-8247-8fcfe4448488\"></script>\n      //     <script src=\"https://cdn.cookielaw.org/scripttemplates/otSDKStub.js\" type=\"text/javascript\" data-domain-script=\"018e3ec4-2c2c-76fa-8247-8fcfe4448488\"></script>\n      //     <script type=\"text/javascript\">\n      //       {`function OptanonWrapper() { }`}\n      //     </script>\n      //   </Helmet>\n      // ) \n      : \n      (\n        <Helmet>\n          <script type=\"text/javascript\" src=\"https://cdn.cookielaw.org/consent/018e3ec4-2c2c-76fa-8247-8fcfe4448488-test\"></script>\n          <script src=\"https://cdn.cookielaw.org/scripttemplates/otSDKStub.js\" type=\"text/javascript\" data-domain-script=\"018e3ec4-2c2c-76fa-8247-8fcfe4448488-test\"></script>\n          <script type=\"text/javascript\">\n            {`function OptanonWrapper() { }`}\n          </script>\n        </Helmet>\n      )\n      }\n    </>\n  );\n};\n\nexport default OneTrust;\n","import React, { useState, useEffect } from \"react\";\nimport Log from \"../src/utils/Log\";\nimport { push } from \"connected-react-router\";\nimport QueryString from \"query-string\";\nimport routes from \"./constants/routes.json\";\nimport { Hub } from \"@aws-amplify/core\";\nimport { withRouter } from \"react-router-dom\";\nimport { redirectToLoginPage } from \"./utils/routes\";\n\nimport Header from \"./containers/Header\";\nimport Footer from \"./containers/Footer\";\nimport Routes from \"./Routes\";\nimport styles from \"./styles/App.module.scss\";\n\nimport BrowserRoadblock from \"./containers/BrowserRoadblock\";\n//REDUX STUFF\nimport currentUserInfo from \"./selectors/currentUserInfo\";\nimport { login, logout } from \"./actions/auth\";\nimport { clientLoginRedirect, webLoginRedirect } from \"./actions/current\";\nimport { dispatchError } from \"./actions/error\";\nimport { showError } from \"./actions/error\";\nimport { setGAClientId } from \"./actions/analytics\";\nimport isLoggingInFromClient from \"./selectors/isLoggingInFromClient\";\n\nimport selectGAClientId from \"./selectors/selectGAClientId\";\nimport { waitForGAClientId } from \"./utils/analyticsUtils\";\nimport { setXsollaCookie } from \"./utils/referralUtils\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { ToastContainer } from \"react-toastify\";\nimport OneTrust from \"./OneTrust\";\nimport \"react-toastify/dist/ReactToastify.css\";\n\n//use UserContext only for passing around methods:\nexport const UserContext = React.createContext();\n\nfunction App(props) {\n  const dispatch = useDispatch();\n\n  const currentUser = useSelector(currentUserInfo);\n\n  const [authError, setAuthError] = useState(null);\n\n  const [isAuthenticated, setIsAuthenticated] = useState(false);\n\n  const errorState = useSelector((state) => state.error.error);\n  const clientLoginState = useSelector(isLoggingInFromClient);\n  const selectGoogleClientId = useSelector(selectGAClientId);\n\n  useEffect(() => {\n    onLoad();\n    //eslint-disable-next-line\n  }, []);\n\n  useEffect(() => {\n    if (errorState) {\n      Log.error(errorState, \"App.js -- dispatching error\");\n      dispatch(dispatchError(errorState));\n    }\n    //eslint-disable-next-line\n  }, [errorState]);\n\n  // Subscribe to auth events\n  useEffect(() => {\n    const handler = async ({ payload }) => {\n      switch (payload.event) {\n        case \"signIn\":\n          Log.info(\"\", \"sign in heard\");\n          try {\n            await dispatch(login(props));\n            const isFromBBClient = sessionStorage.getItem(\"fromBBClient\");\n\n            if (isFromBBClient === \"true\") {\n              await dispatch(clientLoginRedirect());\n            } else {\n              await dispatch(webLoginRedirect(props));\n            }\n\n            setIsAuthenticated(true);\n          } catch (e) {\n            Log.error(e, \"App.js: error caught signing in!!!\");\n            setAuthError(e);\n            dispatch(showError(e.message));\n          }\n          break;\n\n        case \"signIn_failure\":\n          Log.error(payload.data, \"App Component - error caught on signIn\");\n\n          if (payload.data.message.includes(\"invalid_grant\") && !currentUser) {\n            dispatch(\n              showError(\"Something went wrong. Please sign out and log in.\")\n            );\n            redirectToLoginPage(props);\n          } else {\n            // redirectToAuthUI(props, payload.data);\n          }\n\n          break;\n        case \"signOut\":\n          dispatch(push(routes.CLIENT_LOGOUT_REDIRECT));\n          break;\n\n        default:\n          break;\n      }\n    };\n\n    Hub.listen(\"auth\", handler);\n    \n    //clean up any events\n    return () => {\n      Hub.remove(\"auth\", handler);\n    };\n    //eslint-disable-next-line\n  }, []);\n\n  async function onLoad() {\n    try {\n      const currentUrl = new URL(window.location);\n      const urlQuery = QueryString.parse(currentUrl.search);\n      const referralShortCode = urlQuery[\"tracking_id\"];\n\n      if (referralShortCode) {\n        setXsollaCookie(referralShortCode);\n      }\n\n      if (currentUser !== null) {\n        Log.trace(\"user is already logged in\");\n      }\n      if (!selectGoogleClientId) {\n        await waitForGAClientId((googleClientId) =>\n          dispatch(setGAClientId(googleClientId))\n        );\n      }\n    } catch (e) {\n      if (e !== \"No current user\") {\n        Log.error(e, \"App Component: error caught on load\");\n      }\n    }\n  }\n\n  // window.onload = function () {\n  //   console.log(\"hi\");\n  //   let sdk = document.getElementById(\"onetrust-consent-sdk\");\n  //   console.log(\"onetrust-consent-sdk\", sdk);\n  //   sdk.remove();\n  // };\n\n  async function handleLogout(url) {\n    try {\n      await dispatch(logout(url));\n    } catch (e) {\n      Log.error(e, \"App Component: error caught logging out\");\n      dispatch(showError(e.message));\n    }\n  }\n\n  const UserContextValue = {\n    handleLogout: handleLogout,\n    authError: authError,\n    session: sessionStorage,\n  };\n\n  const hideHeaderAndFooter =\n    props.location.pathname.includes(\"login\") ||\n    props.location.pathname === \"/clientAwaitingGoogleLogin\" ||\n    props.location.pathname === \"/clientAwaitingFacebookLogin\" ||\n    props.location.pathname === \"/clientAwaitingAppleLogin\" ||\n    props.location.pathname === \"/clientredirect\" ||\n    props.location.pathname === \"/featurePostMessage\" ||\n    props.location.pathname === \"/clientconnection\" ||\n    (props.location.pathname.includes(\"/account/\") && clientLoginState) ||\n    props.location.pathname === routes.REFERRAL_LANDING_PAGE;\n\n  return (\n    <div className={styles.App} id=\"App\">\n      <BrowserRoadblock>\n        {!hideHeaderAndFooter && <OneTrust />}\n        \n        <ToastContainer autoClose={4000} />\n\n        <UserContext.Provider value={UserContextValue}>\n          {!hideHeaderAndFooter && (\n            <Header appProps={{ isAuthenticated, props }} />\n          )}\n          <Routes appProps={{ isAuthenticated }} />\n          {!hideHeaderAndFooter && <Footer />}\n        </UserContext.Provider>\n      </BrowserRoadblock>\n    </div>\n  );\n}\n\nexport default withRouter(App);\n","import { AnyAction } from \"redux\";\nimport actions from \"../constants/actions.json\";\nimport { bbaiStoryGamePromptStepStatus, BBDocResponseObj } from \"../constants/GenPrompTypes\";\nimport { BBAI_STORE_VERSION, storeStorageVersion } from \"../utils/StorageVersion\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { mapPromptToDisplay } from \"../containers/genai/constants/mapPromptToDisplay\";\n\nexport const CYOAProjectType = \"cyoa\";\n\nconst BBAI_STORAGE_KEY = \"bbaiCyoa-Store\";\n\n\nstoreStorageVersion(BBAI_STORE_VERSION, BBAI_STORAGE_KEY);\n\n// localStorage.removeItem(BBAI_STORAGE_KEY);\n\nexport interface errorBody {\n  title: string;\n  message: string;\n}\n\nexport interface IStoryGameState {\n  projectType: string;\n  version: number;\n  isLoading: boolean; \n  completed?: boolean; \n  error?: errorBody; \n  promptStepStatus: bbaiStoryGamePromptStepStatus;\n  userStoryPrompt: string;\n  generatedCYOAGameData: any | null;\n  projectId: string;\n  allAssetsGenerated: boolean;\n  bbworldBBDocId: string; \n  isGuest: boolean;\n  bbDocHistory: BBDocResponseObj[]|null\n  // promptComponents: Display[] //React.ReactNode[]; //\n  showAuthFrame: boolean;\n  isAuthed: boolean;\n  createAccountMode: boolean;\n  userId: string | null;\n  bbDocUrl: string | null;\n  gameDataRestartID: string | null;\n  titleImage: File | null;\n}\n\nexport const initialStoryGameState: IStoryGameState = {\n  projectType: CYOAProjectType,\n  version: BBAI_STORE_VERSION,\n  isLoading: false,\n  error: undefined,\n  promptStepStatus: bbaiStoryGamePromptStepStatus.INITIAL,\n  userStoryPrompt: \"\",\n  generatedCYOAGameData: null,\n  allAssetsGenerated: false,\n  projectId: uuidv4(), // doesn't seeem to generate correctly\n  bbworldBBDocId: \"\",\n  completed: false,\n  isGuest: false,\n  bbDocHistory: null,\n  // promptComponents: [mapPromptToDisplay[\"INITIAL\"]],\n  showAuthFrame: false,\n  isAuthed: false,\n  createAccountMode: false,\n  userId: null,\n  bbDocUrl: null,\n  gameDataRestartID: null,\n  titleImage: null\n}; \n\n\nconst storyGameReducer = (\n  state: IStoryGameState = initialStoryGameState,\n  action: AnyAction\n):IStoryGameState => {\n   switch (action.type) {\n    case actions.storyGame.SET_LOADING: \n      return {\n        ...state,\n        isLoading: action.loading\n      }\n    case actions.storyGame.INITIAL:\n      return {\n        ...initialStoryGameState\n      }\n    case actions.storyGame.SET_ERROR:\n      return {\n        ...state,\n        error: action.error\n      }\n    case actions.storyGame.SET_PROMPT_STEP:\n      return {\n        ...state,\n        promptStepStatus: action.stepStatus\n      }\n    case actions.storyGame.SET_USER_STORY_PROMPT:\n      return {\n        ...state,\n        userStoryPrompt: action.prompt\n      }\n    case actions.storyGame.SET_GENERATED_STORY_GAME_DATA:\n      return {\n        ...state,\n        generatedCYOAGameData: action.data\n      }\n    case actions.storyGame.SET_PROJECT_ID:\n      return {\n        ...state,\n        projectId: action.id\n      }\n    case actions.storyGame.SET_ALL_ASSETS_GENERATED:\n      return {\n        ...state,\n        allAssetsGenerated: action.allAssetsGenerated\n      }\n    case actions.storyGame.SET_BBWORLD_BBDOC_ID:\n      return {\n        ...state,\n        bbworldBBDocId: action.id\n      }\n    case actions.storyGame.SET_BBDOC_HISTORY:\n      return {\n        ...state,\n        bbDocHistory: action.history\n      }\n    case actions.storyGame.SET_GUEST: \n      return { \n        ...state,\n        isGuest: action.isGuest\n      }\n    case actions.storyGame.NEXT_STAGE:\n      const currentStage = state.promptStepStatus\n      const nextStage = mapPromptToDisplay[bbaiStoryGamePromptStepStatus[currentStage]]?.nextStage\n      return {\n        ...state,\n        promptStepStatus: bbaiStoryGamePromptStepStatus[nextStage as bbaiStoryGamePromptStepStatus],\n      }\n    case actions.storyGame.SET_STAGE: \n      return {\n        ...state,\n        promptStepStatus: action.stage\n      }\n    case actions.storyGame.SET_SHOW_AUTH_FRAME:\n      return {\n        ...state,\n        showAuthFrame: action.showAuthFrame\n      }\n    case actions.storyGame.SET_IS_AUTH: \n      return {\n        ...state,\n        isAuthed: action.isAuthed\n      }\n    case actions.storyGame.SET_CREATE_ACCOUNT_MODE:\n      return {\n        ...state,\n        createAccountMode: action.createAccountMode\n      }\n    case actions.storyGame.SET_USER_ID: \n      return {\n        ...state,\n        userId: action.userId\n      }\n    case actions.storyGame.SET_BBDOC_URL:\n      return {\n        ...state,\n        bbDocUrl: action.url\n      }\n    case actions.storyGame.START_OVER:\n      return {\n        ...initialStoryGameState,\n        isAuthed: state.isAuthed,\n      }\n    case actions.storyGame.SET_RETRY_ID:\n      return {\n        ...state,\n        gameDataRestartID: action.id\n      }\n    case actions.storyGame.SET_CONFIRM_COMPLETE:\n      return {\n        ...state,\n        completed: true,\n      }\n    case actions.storyGame.GET_COMPONENTS_ARRAY: \n      return {\n        ...state,\n      }\n    case actions.storyGame.SET_TITLE_IMAGE:\n      return {\n        ...state,\n        titleImage: action.titleImage\n      }\n    default:\n      return state;\n  }\n}\n\n\n\nexport default storyGameReducer;\n\n","\n\nexport const BBAI_STORE_VERSION = 6;\n\nexport const storeStorageVersion = (storeVersion: number, storageKey: string ) => {\n  const BBAI_STORE_VERSION_KEY = `${storageKey}-version`;\n  \n  const storedVersionStr = localStorage.getItem(BBAI_STORE_VERSION_KEY);\n  const storedVersion: number =\n    storedVersionStr !== null ? parseInt(storedVersionStr) : 0;\n  if (isNaN(storedVersion) || storedVersion < storeVersion) {\n    console.warn(\n      `[store.ts] Detected older version of prompt storage schema - clearing existing state`\n    );\n    localStorage.removeItem(storageKey);\n    localStorage.setItem(BBAI_STORE_VERSION_KEY, storeVersion.toString(10));\n  } else {\n    console.debug(\n      `[store.ts] bbai-storage-version is valid. found: ${storedVersion}, minimum: ${storeVersion}`\n    );\n  }\n\n}\n\n","module.exports = __webpack_public_path__ + \"static/media/BB4_Logo_Wordmark_Wht.e14e4e57.png\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"App\":\"App_App__2Fx1V\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"animatedButton\":\"AnimatedButton_animatedButton__17jzF\",\"dance\":\"AnimatedButton_dance__3wA4q\"};","// import { showError } from \"./error\";\nimport { AnyAction } from \"redux\";\n// import { PlanType, WorkState } from \"../reducers/models\";\nimport actions from \"../constants/actions.json\";\n// import { getHouseAdCampaign, getSaleData } from \"../utils/saleUtils\";\nimport { errorBody } from \"../reducers/storyGameReducer\";\nimport { bbaiStoryGamePromptStepStatus, BBDocResponseObj } from \"../constants/GenPrompTypes\";\nimport { Display } from \"../containers/genai/constants/bbai.prompts\";\nimport { mapPromptToDisplay } from \"../containers/genai/constants/mapPromptToDisplay\";\n// import { getDiscountedPlanPricing } from \"../utils/saleUtils\";\n\n// export function resetSaleState(): DefaultThunkAction<Promise<void>> {\n//   return async (dispatch) => {\n//     Log.trace(\"\", \"clearing sale state\");\n//     sessionStorage.removeItem(\"promoCode\");\n//     window.history.replaceState(null, window.location.pathname);\n\n//     dispatch(clearSaleState());\n//   };\n// }\n\nexport function loadingState(loading: boolean): AnyAction {\n  return {\n    type: actions.storyGame.SET_LOADING,\n    loading,\n  };\n}\n\nexport function setPolling(polling: boolean): AnyAction {\n  return {\n    type: actions.storyGame.SET_POLLING,\n    polling,\n  };\n}\n\nexport function initial(): AnyAction {\n  return {\n    type: actions.storyGame.INITIAL,\n    // showSaleUI,\n  };\n}\n\nexport function setErrorState(error: errorBody | undefined): AnyAction {\n  return {\n    type: actions.storyGame.SET_ERROR,\n    error,\n  };\n}\n\nexport function setPromptStepState(stepStatus: bbaiStoryGamePromptStepStatus): AnyAction {\n  return {\n    type: actions.storyGame.SET_PROMPT_STEP,\n    stepStatus,\n  };\n}\n\nexport function setUserStoryPrompt(prompt: string): AnyAction {\n  return {\n    type: actions.storyGame.SET_USER_STORY_PROMPT,\n    prompt,\n  };\n}\n\nexport function setGeneratedCYOAGameData(data: object | null): AnyAction {\n  return {\n    type: actions.storyGame.SET_GENERATED_STORY_GAME_DATA,\n    data,\n  };\n}\n\nexport function setProjectId(id: string): AnyAction {\n  return {\n    type: actions.storyGame.SET_PROJECT_ID,\n    id\n  };\n}\n\nexport function setAllAssetsGenerated(allAssetsGenerated: boolean): AnyAction {\n  return {\n    type: actions.storyGame.SET_ALL_ASSETS_GENERATED,\n    allAssetsGenerated\n  };\n}\n\nexport function setBBWorldBBDocId(id:string ): AnyAction {\n  return {\n    type: actions.storyGame.SET_BBWORLD_BBDOC_ID,\n    id\n  }\n}\n\nexport function setBBDocHistory(history:BBDocResponseObj[]|null): AnyAction {\n  return {\n    type: actions.storyGame.SET_BBDOC_HISTORY,\n    history\n  }\n}\n\nexport function setGuest(isGuest: boolean): AnyAction {\n  return {\n    type: actions.storyGame.SET_GUEST,\n    isGuest\n  }\n}\n\nexport function nextStage(): AnyAction {\n  return {\n    type: actions.storyGame.NEXT_STAGE,\n  }\n}\n\nexport function setStage(stage: bbaiStoryGamePromptStepStatus): AnyAction {\n  return {\n    type: actions.storyGame.SET_STAGE,\n    stage\n  }\n}\n\nexport function setShowAuthFrame(showAuthFrame: boolean): AnyAction {\n  return {\n    type: actions.storyGame.SET_SHOW_AUTH_FRAME,\n    showAuthFrame\n  }\n}\n\nexport function setIsAuthed(isAuthed: boolean): AnyAction {\n  return {\n    type: actions.storyGame.SET_IS_AUTH,\n    isAuthed\n  }\n}\n\nexport function setCreateAccountMode(createAccountMode: boolean): AnyAction {\n  return {\n    type: actions.storyGame.SET_CREATE_ACCOUNT_MODE,\n    createAccountMode\n  }\n}\n\nexport function setUserId(userId: string): AnyAction {\n  return {\n    type: actions.storyGame.SET_USER_ID,\n    userId\n  }\n}\n\nexport function setBBDocUrl(url: string): AnyAction {\n  return {\n    type: actions.storyGame.SET_BBDOC_URL,\n    url\n  }\n}\n\nexport function startOver(): AnyAction {\n  return {\n    type: actions.storyGame.START_OVER,\n  }\n}\n\nexport function setRetryID(id: string | null): AnyAction {\n\n  //  console.log(\"setRestartID\", id);\n  let newComponentArray:Display[] = []\n\n  for (const [key, value] of Object.entries(mapPromptToDisplay)) {\n    newComponentArray.push(value)\n    if(key === bbaiStoryGamePromptStepStatus.INITIAL) {\n      break;\n    }    \n  }\n          \n  return {\n    type: actions.storyGame.SET_RETRY_ID,\n    id\n  }\n}\n\nexport function getComponentsArray(id: string | null): AnyAction {\n  return {\n    type: actions.storyGame.GET_COMPONENTS_ARRAY,\n    id\n  }\n}\n\nexport function setConfirmComplete(): AnyAction {\n  return {\n    type: actions.storyGame.SET_CONFIRM_COMPLETE,\n  }\n}\n\nexport function setTitleImage(titleImage: File | null): AnyAction {\n  return {\n    type: actions.storyGame.SET_TITLE_IMAGE,\n    titleImage\n  }\n}","import { PlanType } from \"../reducers/models\";\n\nexport const BBDownloadVersion: bb.utility.IBBDownloadVersions = {\n  BB4: {\n    WIN: process.env.REACT_APP_BB4_DOWNLOAD_LINK_WIN,\n    MAC: process.env.REACT_APP_BB4_DOWNLOAD_LINK_MAC,\n    APP: \"buildbox4\",\n  },  \n  BB3: {\n    WIN: process.env.REACT_APP_BB3_DOWNLOAD_LINK_WIN,\n    MAC: process.env.REACT_APP_BB3_DOWNLOAD_LINK_MAC,\n    APP: \"buildbox3\",\n  },\n  BB2: {\n    WIN: process.env.REACT_APP_BB2_DOWNLOAD_LINK_WIN,\n    MAC: process.env.REACT_APP_BB2_DOWNLOAD_LINK_MAC,\n    APP: \"buildbox2\",\n  },\n  Soundbox: {\n    WIN: process.env.REACT_APP_SOUNDBOX_DOWNLOAD_LINK_WIN,\n    MAC: process.env.REACT_APP_SOUNDBOX_DOWNLOAD_LINK_MAC,\n    APP: \"soundbox\",\n  }\n};\n\nexport const downloadPaths: bb.utility.DownloadPaths = {\n  BB4: \"downloads/bb4\",\n  BB3: \"downloads/bb3\",\n  BB2: \"downloads/bb2\",\n  BBBundle: \"downloads/bbbundle\",\n  Soundbox: \"downloads/soundbox\",\n};\n\nexport const analyticProductTypes: bb.utility.BBProductTypes = {\n  BB4: \"buildbox4\",\n  BB3: \"buildbox3\",\n  BB2: \"buildbox2\",\n  BBBundle: \"buildboxbundle\",\n  Soundbox: \"soundbox\",\n};\n\ntype AnalyticsProductTierNames<PlanType extends string, U> = {\n  [K in PlanType]: U;\n};\n\nexport const analyticProductTierNames: AnalyticsProductTierNames<PlanType, string> = {\n  Monthly: \"Monthly\",\n  Free: \"Free\",\n  Plus: \"Plus\",\n  Pro: \"Pro\",\n  Bundle: \"Pro\",\n  //Weekly: \"Weekly\",\n  Beginner: \"Beginner\",\n  Basic: \"Plus\",\n}\n\n","import API from \"@aws-amplify/api\";\nimport Log from \"../utils/Log\";\n\n//NK: We decided to keep this in case we want to implement Xsolla referral program in the future\n/**\n * fires a referral signup event\n *\n * @param {trackingId}: tracking id string from the referrer\n * @param {userId}: uuid of the signed up user in our server\n */\n\nexport const sendReferralTrackingId = (trackingId, userId) => {\n  return new Promise((resolve, reject) => {\n    API.post(\"assetsURL\", \"/assetmanagement/referralEvent\", {\n      body: {\n        trackingId: trackingId,\n        userId: userId,\n      },\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Token: \"\", //TODO: add access token here\n      },\n      response: true,\n    })\n      .then((res) => {\n        console.log(\"res ======>\", res);\n        Log.info(res.data, \"Referral Signup Credited:\");\n        resolve(res);\n      })\n      .catch((e) => {\n        Log.info(e.response?.data?.metadata?.message, \"Non-referral signup:\");\n        if (e.response && e.response.status === 422) {\n          resolve(e.response.data);\n        } else {\n          reject(e);\n        }\n      });\n  });\n};\n","import Log from \"../utils/Log\";\nimport { push, replace } from \"connected-react-router\";\nimport Auth from \"@aws-amplify/auth\";\nimport { DefaultThunkAction } from \"./shared\";\nimport { AnyAction } from \"redux\";\nimport actions from \"../constants/actions.json\";\nimport routes from \"../constants/routes.json\";\nimport {\n  createUser,\n  fetchTokensforCode,\n  fetchUserScreenName,\n  updateUserScreenName,\n} from \"../api/auth\";\nimport { sendReferralTrackingId } from \"../api/referralprogram\";\nimport { addMailchimpAudienceTags } from \"../api/mailchimp\";\nimport { showError } from \"./error\";\nimport { LoginClientType, LoginState, WorkState } from \"../reducers/models\";\nimport {\n  setFromSSORedirect,\n  resetCurrentState,\n  setLoginWorkState,\n  setSignUpWorkState,\n  setProductType,\n  setLoggingInfromClient,\n} from \"./current\";\nimport {\n  getCognitoUser,\n  checkTokenExpiration,\n  getRefreshedCognitoTokens,\n  refreshWebAccessToken,\n  getUserAttributes,\n} from \"../utils/CognitoUtils\";\nimport { setGAClientId, setAnalyticsRegistrationEvent } from \"./analytics\";\nimport { getGAClientId } from \"../utils/analyticsUtils\";\n// import { findCookieValue } from \"../utils/referralUtils\";\nimport { clearAccount } from \"./account\";\nimport { getDeviceType } from \"../utils/browserUtils\";\nimport { getRandomColor, getBBVersion } from \"../utils/helperUtils\";\nimport { validateEmail } from \"../utils/validationForm\";\nexport function login(props: any): DefaultThunkAction<Promise<void>> {\n  return async (dispatch) => {\n    dispatch(setLoginWorkState(LoginState.Loading));\n    try {\n      const cognitoUserInfo:\n        | bb.model.ICognitoUser\n        | any = await getCognitoUser();\n      const { accessToken, refreshToken, referralTrackingId } = cognitoUserInfo;\n      // console.log(cognitoUserInfo);\n      //if we detect a referral cookie on login include it for user creation\n      const xsollaTrackingId = referralTrackingId;\n\n      //console.log(\"login referral link\", referralTrackingId);\n      let ReferralInfo = null;\n      if (xsollaTrackingId) {\n        ReferralInfo = {\n          Network: \"Xsolla\",\n          Info: xsollaTrackingId,\n        };\n      }\n\n      const response = await createUser(accessToken, ReferralInfo);\n\n      const { user, userCreated } = response.payload;\n\n      const userAttributes = await getUserAttributes(accessToken);\n\n      const { email, name, username, locale } = userAttributes;\n\n      const userScreenName = await fetchUserScreenName(accessToken);\n\n      dispatch(setUserScreenName(userScreenName));\n      const userObject = {\n        username: username,\n        name: name,\n        uuid: user.Id,\n        email: email,\n        // screenName: \"\",\n        screenName: userScreenName || \"\",\n        country: locale ? userAttributes.locale : \"United States of America\",\n        isNewUser: userCreated,\n        referralInfo: user.ReferralInfo,\n      };\n\n      const tokenObject = {\n        refreshToken,\n        accessToken,\n      };\n      const productType = sessionStorage.getItem(\"websocket-product\")\n        ? sessionStorage.getItem(\"websocket-product\")\n        : sessionStorage.getItem(\"productType\");\n\n      sessionStorage.setItem(\"websocket-accessToken\", accessToken);\n      sessionStorage.setItem(\"websocket-refreshToken\", refreshToken);\n      sessionStorage.setItem(\"websocket-email\", email);\n      sessionStorage.setItem(\"websocket-username\", username);\n\n      sessionStorage.setItem(\"profileColor1\", getRandomColor());\n      sessionStorage.setItem(\"profileColor2\", getRandomColor());\n\n      dispatch(setUser(userObject));\n\n      dispatch(setAuthTokens(tokenObject));\n\n      const clientId = await getGAClientId();\n\n      await dispatch(setGAClientId(clientId));\n\n      //if we detect a cookie on login fire referral attribution\n      // note this has to come after create user so we have the user id\n      // maybe we could move it to platform side in the future.\n      if (xsollaTrackingId) {\n        await sendReferralTrackingId(xsollaTrackingId, user.Id);\n      }\n\n      if (userCreated) {\n        await dispatch(handleNewUserRegistration(userObject, clientId));\n        if (!email) return;\n        await dispatch(setMailchimpMarketingTags(email, productType));\n      } else {\n        Log.info(email, \"not a new user\");\n      }\n      dispatch(setLoginWorkState(LoginState.None));\n    } catch (e:any) {\n      Log.error(e, \"Error dispatching: login\");\n\n      //show a global toast error for server errors on our end after Cognito signin\n      dispatch(showError(e.message));\n\n      if (e.response && e.response.status === 401) {\n        dispatch(setLoginWorkState(LoginState.Unauthorized));\n      } else {\n        dispatch(setLoginWorkState(LoginState.ServerError));\n      }\n    }\n  };\n}\n\nexport function logout(url?: string): DefaultThunkAction<Promise<void>> {\n  const previousRoute = sessionStorage.getItem(\"previousRoute\");\n\n  return async (dispatch) => {\n    try {\n      await Auth.signOut();\n      dispatch(clearUser());\n      dispatch(resetCurrentState());\n      dispatch(clearAccount());\n\n      localStorage.clear();\n      sessionStorage.clear();\n\n      sessionStorage.setItem(\"previousRoute\", previousRoute || \"\");\n\n      if (url && url.length) {\n        window.location.href = url;\n      }\n      //else if (previousRoute) {\n      //   dispatch(push(previousRoute));\n      // } else {\n      //   dispatch(push(routes.LOGIN));\n      // }\n    } catch (e:any) {\n      Log.error(e, \"Error dispatching: logout\");\n      let message = e.message\n      dispatch(showError(message));\n    }\n  };\n}\n\nexport function ssoTokenLogin(\n  token: string,\n  goToPlansPage: boolean,\n  planView?: string\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch) => {\n    dispatch(setLoginWorkState(LoginState.Loading));\n    try {\n      const response = await fetchTokensforCode(token);\n\n      Log.info(response, \"Response from fetchTokensforCode\");\n      const {\n        userId,\n        email,\n        accessToken,\n        clientId,\n        refreshToken,\n        clientSecret,\n        referralInfo,\n      } = response;\n      const userAttributes = await getUserAttributes(accessToken);\n      Log.info(userAttributes, \"Response from userAttributes\");\n\n      const userScreenName = await fetchUserScreenName(accessToken);\n\n      const userObject = {\n        username: userAttributes.username,\n        name: userAttributes.name || email,\n        uuid: userId,\n        screenName: userScreenName || \"\",\n        email: userAttributes.email || email,\n        isNewUser: false,\n        referralInfo: referralInfo,\n      };\n\n      const tokenObject = {\n        refreshToken,\n        accessToken,\n      };\n\n      Log.info(response, \"fetchTokensforCode response\");\n\n      const gaClientId = await getGAClientId();\n\n      dispatch(setGAClientId(gaClientId));\n\n      //set the user object here\n      dispatch(setUserScreenName(userScreenName));\n      dispatch(setUser(userObject));\n\n      dispatch(setCognitoClientInfo(clientId, clientSecret));\n      dispatch(setAuthTokens(tokenObject));\n\n      dispatch(setFromSSORedirect(true));\n      dispatch(setLoggingInfromClient(LoginClientType.Client));\n      dispatch(setLoginWorkState(LoginState.None));\n\n      if (goToPlansPage) {\n        if (planView && planView.length) {\n          dispatch(setProductType(planView));\n          dispatch(replace(`${routes.PURCHASE_PLANS}/${planView}`));\n        } else {\n          dispatch(push(routes.PURCHASE_PLANS));\n        }\n      }\n    } catch (e:any) {\n      Log.error(e, \"Error dispatching: ssoTokenLogin\");\n\n      if (e.response && e.response.status === 401) {\n        dispatch(setLoginWorkState(LoginState.Unauthorized));\n      } else {\n        dispatch(setLoginWorkState(LoginState.ServerError));\n      }\n      console.log(\"redirecting in sso token login!!\");\n\n      //redirect user to web login\n      dispatch(push(routes.LOGIN));\n    }\n  };\n}\n\nexport function handleNewUserRegistration(\n  user: bb.model.IUser,\n  clientId: string\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch) => {\n    try {\n      const { email, uuid } = user;\n      let productName = sessionStorage.getItem(\"productType\")?.toLowerCase()\n      let productType\n      if(productName?.includes(\"bb2\")) {\n        productType = \"buildbox2\"\n      }\n      else if(productName?.includes(\"bb3\")) {\n        productType = \"buildbox3\"\n      }\n      else if(productName?.includes(\"bb4\")) {\n        productType = \"buildbox4\"\n      }      \n      else if(productName?.includes(\"soundbox\")) {\n        productType = \"soundbox\"\n      }\n      else {\n        //console.error(\"unrecognized product: \", productName)\n        //throw new Error(\"unrecognized product during user registration \" + productName)\n\n        // TODO: should this be 'generic' or something?\n        //  throwing an error doesn't seem great\n        console.log(\"no product selected on signup, defaulting to buildbox4\")\n        productType = \"buildbox4\"\n      }\n      const deviceType = getDeviceType();\n\n      Log.trace(deviceType, \"User is signing up on:\");\n      await dispatch(\n        setAnalyticsRegistrationEvent(\n          email,\n          uuid,\n          clientId,\n          productType,\n          deviceType\n        )\n      );\n\n      setSignUpWorkState(WorkState.None);\n    } catch (error:any) {\n      Log.error(error, \"Error dispatching: handleNewUserRegistration\");\n      setSignUpWorkState(WorkState.Error);\n      throw error;\n    }\n  };\n}\n\n//used to set mailchimp tags by product type for signed up user\nexport function setMailchimpMarketingTags(\n  email: string,\n  productType: string | null\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch) => {\n    dispatch(setSignUpWorkState(WorkState.Loading));\n    try {\n      const product = getBBVersion(productType);\n      const response = await addMailchimpAudienceTags(email, product);\n      Log.info(\n        response,\n        `new user - adding Mailchimp Tags for product type: ${product}`\n      );\n      dispatch(setSignUpWorkState(WorkState.None));\n    } catch (error:any) {\n      //Log.error(error, \"error caught in setAnalyticsRegistrationEvent\");\n      //dispatch(setSignUpWorkState(WorkState.Error));\n      //throw error;\n\n      // mailchimp gives too many unimportant errors, let's catch this and move on\n      console.log(\"error adding mailchimp tags\", error);\n      dispatch(setSignUpWorkState(WorkState.None));\n    }\n  };\n}\n\n//validates and refreshes cognito auth tokens\n\nexport function validateToken(): DefaultThunkAction<Promise<any>> {\n  return async (dispatch, getState) => {\n    dispatch(setLoginWorkState(LoginState.Loading));\n\n    try {\n      const { auth } = getState();\n      if(!auth || !auth.authTokens) {\n        dispatch(setLoginWorkState(LoginState.Unauthorized));\n        throw new Error(\"Please log in\")\n      }\n\n      const { accessToken, refreshToken } = auth.authTokens;\n      if(!accessToken || !refreshToken) {\n        dispatch(setLoginWorkState(LoginState.Unauthorized));\n        throw new Error(\"Please log in\")\n      }\n\n      let tokenIsExpired = await checkTokenExpiration(accessToken);\n      Log.trace(tokenIsExpired, \"Validate token: is token expired?\");\n\n      if (tokenIsExpired || !accessToken) {\n        const refreshedToken = await dispatch(refreshTokens(refreshToken));\n        return refreshedToken;\n      } else {\n        dispatch(setLoginWorkState(LoginState.None));\n        Log.info(\"\", \"access token is looking ok\");\n        return accessToken;\n      }\n    } catch (error:any) {\n      Log.error(error, \"Error dispatching: validateToken\");\n      dispatch(setLoginWorkState(LoginState.Unauthorized));\n\n      throw error;\n    }\n  };\n}\n\nexport function refreshTokens(\n  refreshToken: string\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch, getState) => {\n    dispatch(setLoginWorkState(LoginState.Loading));\n\n    try {\n      const { auth } = getState();\n      const { cognitoClientId, clientSecret } = auth;\n      let newToken = null;\n\n      // refreshing with client tokens\n      if (cognitoClientId && clientSecret) {\n        newToken = await getRefreshedCognitoTokens(\n          refreshToken,\n          cognitoClientId,\n          clientSecret\n        );\n      } else {\n        newToken = await refreshWebAccessToken();\n      }\n\n      const tokenObject = {\n        accessToken: newToken,\n        refreshToken: refreshToken,\n      };\n      dispatch(setAuthTokens(tokenObject));\n      dispatch(setLoginWorkState(LoginState.None));\n      return newToken;\n    } catch (error:any) {\n      Log.error(error, \"Error dispatching: refreshTokens\");\n      dispatch(setLoginWorkState(LoginState.Unauthorized));\n\n      let message = error.message\n      if (message) {\n        throw new Error(message);\n      } \n      else {\n        let newError = error;\n        if (error === \"not authenticated\") {\n          newError = new Error(\n            `Your session has expired. Please sign in and try again`\n          );\n          // manual forced logout to prevent potential infinite loop\n          await Auth.signOut();\n          dispatch(clearUser());\n          dispatch(resetCurrentState());\n          dispatch(clearAccount());\n    \n          localStorage.clear();\n          sessionStorage.clear();    \n        }\n        dispatch(push(routes.LOGIN));\n        throw newError;\n      }\n    }\n  };\n}\n\nexport function handleUpdateUserScreenName(\n  screenName: string\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch) => {\n    const accessToken = await dispatch<Promise<string>>(validateToken());\n    try {\n      const newScreenName = await updateUserScreenName(accessToken, screenName);\n      console.log(newScreenName);\n      dispatch(setUserScreenName(newScreenName));\n\n      return newScreenName;\n    } catch (error:any) {\n      console.log(\"error: \", error);\n      // let err\n      // if ( error.metadata.errorcode === 'ERROR_SCREEN_NAME_IN_USE'){\n      //   err = 'This Creator Name is already taken. Please choose a different one.'\n      // }\n      // if (error.metadata.errorcode  === 'ERROR_SCREEN_NAME_INAPPROPRIATE' ){\n      //   err = error.metadata.message\n      // }\n      // if ( error.metadata.errorcode  === 'ERROR_INVALID_SCREEN_NAME' ){\n      //   err = 'Creator Name must: be 3-25 characters long, only contain letters, numbers, dashes, periods, or underscores'\n      // }\n\n      let errorcode = error.metadata.errorcode\n      throw errorcode;\n    }\n  };\n}\nexport function setCognitoClientInfo(\n  cognitoClientId: string,\n  clientSecret: string\n) {\n  return {\n    type: actions.auth.SET_COGNITO_CLIENT_INFO,\n    cognitoClientId,\n    clientSecret,\n  };\n}\n\nexport function setUserScreenName(screenName: string): AnyAction {\n  return {\n    type: actions.auth.SET_SCREEN_NAME,\n    screenName,\n  };\n}\n\nexport function setAuthTokens(tokens: bb.model.ITokens): AnyAction {\n  return {\n    type: actions.auth.SET_AUTH_TOKENS,\n    tokens,\n  };\n}\n\nexport function setUser(user: bb.model.IUser): AnyAction {\n  return {\n    type: actions.auth.SET_USER,\n    user,\n  };\n}\n\nexport function clearUser(): AnyAction {\n  return {\n    type: actions.auth.CLEAR_USER,\n  };\n}\n\nexport function setAccountlessPurchaseEmail(email: string | undefined): AnyAction {\n  let actionBody: { \n    type: string,\n    email: string | undefined\n  } = {\n    type: actions.auth.SET_ACCOUNTLESS_PURCHASE_EMAIL,\n    email: undefined\n  }\n  if(!email) return actionBody\n  \n  if(validateEmail(email)){\n    console.debug(\"email is valid\")\n    actionBody.email = email\n  }\n  return actionBody\n}","import API from \"@aws-amplify/api\";\nimport Log from \"../utils/Log\";\nimport {\n  BBDocResponseObj,\n  BBDownloadVersion,\n  ChooseYourOwnAdventureChapterData,\n  ChooseYourOwnAdventureChoiceData,\n  ChooseYourOwnAdventureCustomizationData,\n  CreateTxt2ImgGenerationJobDTO,\n  DownloadPlatforms,\n  ImageGenerationJobCreationResultDTO,\n  PostSSOTokensDTO,\n  templateType,\n  Txt2ImgGenerationJobCreationResultDTO,\n} from \"../constants/GenPrompTypes\";\nimport Env from \"../Env\";\nimport { SharedBit } from \"../constants/BBPlatform.types\";\nconst UUID_REGEX = /^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$/\nexport class BBPlatformClientError extends Error {}\n\n\nfunction convertBBAICYOADataToPlatformFormat(projectId: string, input: any) : ChooseYourOwnAdventureCustomizationData {\n    console.debug(\"convert to platform format for cyoa data: \", input)\n    // AP: a little hacky but really this whole thing is \n    let output: ChooseYourOwnAdventureCustomizationData = {} as ChooseYourOwnAdventureCustomizationData\n\n    output.projectId = projectId;\n    output.badEndText = input.lose.chapterContent;\n    output.goodEndText = input.win.chapterContent;\n    output.badEndImageFilename = \"lose.png\";\n    output.goodEndImageFilename = \"win.png\";\n    output.title = input.title.title;\n    output.subtitle = input.title.mission;\n    output.titleImageFilename = \"title.png\";\n    output.iconFilename = \"icon.png\";\n    output.backgroundMusicFilename = \"background_music.mp3\"; // TODO: figure this out, it's actually NYI\n\n    // make some chapters...\n    let chapters : ChooseYourOwnAdventureChapterData[] = []\n    for(let ii = 0; ii < input.chapters.length; ii++) {\n      let chapter = input.chapters[ii]\n      // console.debug(\"chapter looks like: \", chapter)\n      chapter.description = chapter.chapterContent;\n      chapter.imageFilename = `chapter${ii}.png`\n      let choicesData = chapter.choices\n      let choices : ChooseYourOwnAdventureChoiceData[] = []\n      for(let jj = 0; jj < choicesData.length; jj++) {\n        let choiceData = choicesData[jj]\n        let choice : ChooseYourOwnAdventureChoiceData = {\n          choiceDescription: choiceData.choiceDescription,\n          coinsDelta: choiceData.coinsDelta,\n          healthDelta: choiceData.healthDelta,\n          resultDescription: choiceData.resultDescription,\n        }\n        choices.push(choice)\n      }\n      chapter.choices = choices\n      chapters.push(chapter)\n    }\n    output.chapters = chapters\n\n\n    return output\n  }\n\n// export const fancyTokenFunction = (): DefaultThunkAction<Promise<void>> => {\n//   return async (dispatch) => {\n//     return  await dispatch(validateToken());\n//   }\n// }\n\nexport const getGenerateAsset = async (\n    accessToken:any,\n    body: CreateTxt2ImgGenerationJobDTO\n  ): Promise<Txt2ImgGenerationJobCreationResultDTO> => {\n  try{ \n    const res = await API.post(\"bb2URL\", \"/assetgeneration/txt2img\", {\n      body: body,\n      headers: {\n\"webgenai-client-version\": true,\n      \"Content-Type\": \"application/json\",\n      Token: accessToken\n      },\n      response: true\n    })\n\n    return res.data.payload;\n  } catch (error) {\n    Log.error(error, \"error caught in getGenerateAsset\");\n    throw error;\n  }\n}\n\nexport const getAssetGenerationProgress = async (\n    accessToken:any,\n    jobId: string\n  ): Promise<ImageGenerationJobCreationResultDTO> => {\n  try{ \n    \n    const res = await API.get(\"bb2URL\", `/assetgeneration/job/${jobId}/progress`, {\n      headers: {\n\"webgenai-client-version\": true,\n      \"Content-Type\": \"application/json\",\n      Token: accessToken\n      },\n      response: true\n    })\n\n    return res.data.payload;\n\n  } catch(error) {\n    Log.error(error, \"error caught in getAssetGenerationProgress\");\n    throw error\n  }\n}\n\nexport const generateClipdropAsset = async ( \n    accessToken:any,\n     body: CreateTxt2ImgGenerationJobDTO\n  ): Promise<Txt2ImgGenerationJobCreationResultDTO> =>  {\n\n  try { \n    const res = await API.post(\"bb2URL\", \"/assetgeneration/clipdrop/txt2img\", {\n      body: body,\n      headers: {\n\"webgenai-client-version\": true,\n        \"Content-Type\": \"application/json\",\n        Token: accessToken\n      },\n      response: true\n    })\n\n    return res.data.payload;\n  } catch(error){ \n    Log.error(error, \"error caught in generateClipdropAsset\"\n    )\n    throw error\n  }\n}\n\nexport const emplaceCYOAResource = async ( \n  accessToken:any,\n  projectId: string,\n  filename: string,\n  url: string):  Promise<any> => {\n  let data = {\n      projectId: projectId,\n      filename: filename,\n      url: url,\n  }\n\n  try{\n    const res = await API.post(\"bb2URL\", `/cyoa/emplace`, {\n      body: data,\n      headers: {\n\"webgenai-client-version\": true,\n      \"Content-Type\": \"application/json\",\n      Token: accessToken\n      },\n      response: true\n    })\n\n    return res.data.payload;\n\n  }catch(error){\n    Log.error(error, \"error caught in emplaceCYOAResource\")\n    throw error\n  }\n}\n\nexport const createCYOABBDoc = async (\n    accessToken:any,\n    projectId: string,\n    gameData: any\n  ): Promise<any>  => {\n    let data = convertBBAICYOADataToPlatformFormat(projectId, gameData)\n\n  try{ \n    const res = await API.post(\"bb2URL\", `/cyoa/cyoa`, {\n      body: data,\n      headers: {\n\"webgenai-client-version\": true,\n      \"Content-Type\": \"application/json\",\n      Token: accessToken\n      },\n      response: true\n    })\n\n    return res.data.payload;\n  } catch(error) {\n    Log.error(error, \"error caught in createCYOABBDoc\")\n    throw error\n  }\n}\n\nexport const createBBDocRandomFile = async (body: {\n    accessToken:any;\n    characterImage: string;\n    obstacleImage: string;\n    backgroundImage: string;\n  }): Promise<any>  => {\n  const index = Math.floor(Math.random() * Object.keys(templateType).length);\n  const randomTemplateType = Object.values(templateType)[index];\n\n  try{\n    const res = await API.post(\"bb2URL\", `/assetgeneration/createbbdoc`, {\n      body: {\n        ...body,\n        templateType: templateType[randomTemplateType],\n        //templateType: templateType[\"WORLD\"]\n      },\n      headers: {\n\"webgenai-client-version\": true,\n        \"Content-Type\": \"application/json\",\n        Token: body.accessToken\n      },\n      response: true\n    })\n\n    return res.data.payload;\n\n  }catch(error) {\n    Log.error(error, \"error caught in createBBDocRandomFile\")\n    throw error\n  }\n}\n\nexport const getAssetImages = async (\n    accessToken:any,\n    jobId: string\n  ): Promise<{ jobId: string; presignedUrls: string[] }> =>  {\n    try{\n      const res = await API.get(\"bb2URL\", `/assetgeneration/job/${jobId}/result`, {\n        headers: {\n\"webgenai-client-version\": true,\n          \"Content-Type\": \"application/json\",\n          Token: accessToken\n        },\n        response: true\n      })\n\n      return res.data.payload;\n    } catch(error) {\n      Log.error(error, \"error caught in getAssetImages\")\n      throw error\n    }\n  }\n\nexport const downloadBuildboxClient = async ( \n    accessToken:any,\n     platformDesired: any,\n    version: keyof typeof BBDownloadVersion\n  ) => {\n\n  try{ \n    if (!platformDesired) {\n      // try to auto detect platform from browser\n      const platform = (window as any).navigator.platform;\n\n      if (platform) {\n        const macosPlatforms = [\"Macintosh\", \"MacIntel\", \"MacPPC\", \"Mac68K\"];\n        const windowsPlatforms = [\"Win32\", \"Win64\", \"Windows\", \"WinCE\"];\n\n        const foundMatch = (str: string) => str.includes(platform);\n        if (windowsPlatforms.some(foundMatch)) {\n          platformDesired = DownloadPlatforms.WINDOWS;\n        } else if (macosPlatforms.some(foundMatch)) {\n          platformDesired = DownloadPlatforms.MAC;\n        } else {\n          console.debug(\n            \"unable to automatically determine download platform from \",\n            platform\n          );\n          platformDesired = DownloadPlatforms.UNKNOWN;\n\n          const dataLayer =\n            ((window as any)[\"dataLayer\"] && (window as any)[\"dataLayer\"]) ||\n            [];\n          dataLayer.push({\n            event: \"couldNotDeterminePlatformDownload\",\n            payload: true,\n          });\n        }\n      } else {\n        console.debug(\"unable to automatically determine download platform\");\n        platformDesired = DownloadPlatforms.UNKNOWN;\n\n        const dataLayer = ((window as any).dataLayer =\n          (window as any).dataLayer || []);\n        dataLayer.push({\n          event: \"platformInfoNotAvailableDownload\",\n          payload: true,\n        });\n      }\n    }\n\n    // download!\n    if (platformDesired === DownloadPlatforms.MAC) {\n      console.debug(\"auto downloading for mac!!!!!!\");\n\n      //TODO: Update GTM tags to track BB2\n\n      const downloadLink = BBDownloadVersion[version].MAC;\n      // const downloadType = BBDownloadVersion[version].APP;\n\n      (window as any).location.href = downloadLink;\n\n      const dataLayer = ((window as any).dataLayer =\n        (window as any).dataLayer || []);\n      dataLayer.push({\n        event: \"macDownload\",\n        payload: true,\n      });\n\n      // const savedGoogleClientId = localStorage.getItem(\"googleClientId\");\n      // BBPlatformClient.sendDownloadAnalytics(savedGoogleClientId, downloadType);\n\n      return(downloadLink);\n    } else if (platformDesired === DownloadPlatforms.WINDOWS) {\n      console.debug(\"auto downloading for windows!!!!!!\");\n\n      //TODO: Update GTM tags to track BB2\n\n      const downloadLink = BBDownloadVersion[version].WIN;\n      // const downloadType = BBDownloadVersion[version].APP;\n\n      (window as any).location.href = downloadLink;\n\n      const dataLayer = ((window as any).dataLayer =\n        (window as any).dataLayer || []);\n      dataLayer.push({\n        event: \"winDownload\",\n        payload: true,\n      });\n\n      return (downloadLink);\n    } else {\n      console.debug(\"attempted download on non-mac/win platform\");\n\n      const dataLayer = ((window as any).dataLayer =\n        (window as any).dataLayer || []);\n      dataLayer.push({\n        event: \"unknownPlatformDownload\",\n        payload: true,\n      });\n\n      return (false);\n    }\n  } catch( error) {\n    Log.error(error, \"error caught in downloadBuildboxClient\")\n    throw error\n  } \n\n} \n    \nexport const createUserDownloadsRequest = async (\n    accessToken:any,\n    clientId: any, version: string) => {\n    let error;\n    for (let ii = 0; ii < 5; ii++) {\n      try {\n        let resp = await sendUserDownloadRequestAnalytics(\n          accessToken,\n          clientId,\n          version\n        );\n        console.debug(\"cudr result on try \", ii, resp);\n        return resp;\n      } catch (err) {\n        console.error(\"cudr error: \", err);\n        error = err;\n      }\n    }\n\n    console.debug(\"throw cudr error: \", error);\n    throw error;\n  }\n\nexport const sendUserDownloadRequestAnalytics = async(\n    accessToken:any,\n    clientId: any,\n    version: string\n  ): Promise<any> => {\n  try{\n    const res = await API.post(\"userAccountManagementURL\", `/analytics/download`, {\n      body: {\n        clientId: clientId,\n        app: version,\n      },\n      headers: {\n\"webgenai-client-version\": true,\n        \"Content-Type\": \"application/json\",\n        Token: accessToken\n      },\n      response: true\n    })\n\n    return res.data.data;\n      \n  }catch(error) {\n    Log.error(error, \"error caught in sendUserDownloadRequestAnalytics\")\n    throw error\n  }\n}\n\n\nexport const sendDownloadAnalytics = async ( accesssToken:string, googleClientId: any, version: any) => {\n    try {\n      console.debug(googleClientId, \"Downloads Component: send client id\");\n      console.debug(version, \"Downloads Component: app:\", version);\n\n      const analyticsResponse =\n        await createUserDownloadsRequest(\n          accesssToken,\n          googleClientId,\n          version\n        );\n      console.debug(\n        analyticsResponse,\n        \"Downloads Component: Response from /createUserDownloadsRequest\"\n      );\n    } catch (error) {\n      console.error(\n        error,\n        \"Downloads Component: Error caught from sendDownloadAnalytics\"\n      );\n    }\n  }\n\nexport const getUserBBDocs = async (accessToken:any, limit:number=10,offset:number=0): Promise<BBDocResponseObj[]> =>  {\n  try{ \n    const res = await API.get(\"bbworldUrl\", `/bbdoc/owned?runtime=BBClassic&limit=${limit}&offset=${offset}`, {\n      headers: {\n\"webgenai-client-version\": true,\n        \"Content-Type\": \"application/json\",\n        Token: accessToken\n      },\n      response: true\n    })\n\n    return res.data.payload.bits;\n\n  }catch(error) {\n    Log.error(error, \"error caught in getUserBBDocs\")\n    throw error\n  }\n}\n\nexport const getBBDocDownloadLink = async (accessToken: any, bbdocId:string):Promise<string> =>  {\n  const validUUID = UUID_REGEX.test(bbdocId) // make sure it's a UUID and not some sill XSS attack\n  if (!validUUID) {\n    throw new BBPlatformClientError(\"Invalid BBDoc ID\")\n  }\n  try{ \n    const res =  await API.get(\"bb2URL\", `/assetgeneration/bbdoc/download/${bbdocId}`, {\n      headers: {\n\"webgenai-client-version\": true,\n        \"Content-Type\": \"application/json\",\n        Tokoen: accessToken\n      },\n      response: true\n    })\n\n    return res.data.payload.url;\n\n  } catch (error) {\n    Log.error(error, \"error caught in getBBDocDownloadLink\")\n    throw error\n  }\n}\n\n\nexport const openBBWorld= (bbDocId:string=\"\"):void => {\n  console.debug(\"play bit\", `${Env.BB_DEEP_LINK}${bbDocId}`)\n  window.location.replace(`${Env.BB_DEEP_LINK}${bbDocId}`);\n}\n\nexport const getSSOToken = async ( accessToken:any, ssoTokenDTO:PostSSOTokensDTO ): Promise<string> => {\n  try{ \n    const res = await API.post(\"userAccountManagementURL\", `/ssoTokens`, {\n      body: {\n        ...ssoTokenDTO\n      },\n      headers: {\n\"webgenai-client-version\": true,\n        \"Content-Type\": \"application/json\",\n        Token: accessToken\n      },\n      response: true\n    })\n\n    return res.data.payload.id;\n  } catch(error){\n    Log.error(error, \"error caught in getSSOToken\")\n    throw error\n  }\n}\n\n\nexport const cyoaNewId = async (accessToken:any):  Promise<string> =>\n{\n  try{\n    const res = await API.post(\"bb2URL\", `/cyoa/newId`, {\n      headers: {\n\"webgenai-client-version\": true,\n        \"Content-Type\": \"application/json\",\n        Token: accessToken\n      },\n      response: true\n    })\n\n    return res.data.payload.projectId;\n\n  } catch(error) {\n    Log.error(error, \"error caught in cyoaNewId\")\n    throw error\n  }\n}\n\nexport const cyoaConfirmComplete = async (accessToken:any, projectId:string): Promise<any> => {\n  try{\n    const res = await API.post(\"bb2URL\", `/cyoa/complete`, {\n      body: {\n        projectId\n      },\n      headers: {\n        \"webgenai-client-version\": true,\n        \"Content-Type\": \"application/json\",\n        Token: accessToken\n      },\n      response: true\n    })\n\n    return res.data.payload;\n\n  } catch(error) {\n    Log.error(error, \"error caught in cyoaConfirmation\")\n    throw error\n  }\n}\n\nexport const  getCYOABBDocDownloadLink = async ( accessToken:any, projectId:string):Promise<{url:string, expiresIn:string}> => {\n  const validUUID = UUID_REGEX.test(projectId) // make sure it's a UUID and not some sill XSS attack\n  if (!validUUID) {\n    throw new BBPlatformClientError(\"Invalid BBDoc ID\")\n  }\n\n  try{ \n    const res = await API.get(\"bb2URL\", `/cyoa/bbdoc/download/${projectId}`, {\n      headers: {\n\"webgenai-client-version\": true,\n        \"Content-Type\": \"application/json\",\n        Token: accessToken\n      },\n      response: true\n    })\n\n    return { url: res.data.payload.url, expiresIn: res.data.payload.expiresIn };\n\n  } catch(error) {\n    Log.error(error, \"error caught in getCYOABBDocDownloadLink\")\n    throw error\n  }\n}\n\nexport const getUserData = async (accessToken:any ): Promise<any> => {\n\n  try{ \n    const res = await API.post(\"userAccountManagementURL\", `/webclientLogin`, {\n      headers: {\n\"webgenai-client-version\": true,\n        \"Content-Type\": \"application/json\",\n        Token: accessToken\n      },\n      response: true\n    })\n\n    return res.data.payload;\n\n  } catch(error) {\n    Log.error(error, \"error caught in getUserData\")\n    throw error\n  }\n}\nexport const getBalance = async (accessToken:any): Promise<{ balance: number,  creditsUsed: number}> => {\n  try{ \n\n    const res = await API.get(\"bb2URL\", `/cyoa/balance`, {\n      headers: {\n\"webgenai-client-version\": true,\n        \"Content-Type\": \"application/json\",\n        Token: accessToken\n      },\n      response: true\n    })\n\n    return res.data.payload;\n\n  } catch(error) {\n    console.error(error, \"error caught in getBalance\")\n    throw error\n  }\n}\n  \nexport const getFirebaseShortenDeepLink = async ( accessToken:any, bitId:string): Promise<string> => {\n  try{ \n    const res = await API.get(\"bbworldUrl\", `/firebaseShortLink/${bitId}`, {\n      headers: {\n\"webgenai-client-version\": true,\n        \"Content-Type\": \"application/json\",\n        Token: accessToken\n        },\n        response: true\n      })\n\n    return res.data.payload.url;\n  } catch(error) {\n    // Log.error(error, \"error caught in getFirebaseShortenDeepLink\")\n    throw error\n\n  }\n}\n\nexport const cyoaGameAsJson = async (accessToken: any, userInput: string, numberOfChapters: number = 10): Promise<any> => {\n\n  try{ \n    const res = await API.post(\"bbaiURL\", `/cyoa/game_as_json`, {\n      body: {\n        \"openai_configs\": {\n          \"model_name\": Env.CYOA_OPENAI_MODEL,\n          \"temperature\": Env.CYOA_OPENAI_TEMPERATURE,\n        },\n        \"user_input\": userInput,\n        \"number_of_chapters\": numberOfChapters\n      },\n      headers: {\n\"webgenai-client-version\": true,\n        \"Content-Type\": \"application/json\",\n        Token: accessToken\n      },\n      response: true\n    })\n\n    return res.data;\n\n  }catch(error) {\n    Log.error(error, \"error caught in cyoaGameAsJson\")\n    throw error\n  }\n}\n\nexport const getAllSharedBits = async ( offset: number = 0):Promise<SharedBit[]> => {\n  try {\n    const res = await API.get(\"bbworldUrl\", `/globalBits?offset=${offset}&limit=100`, {\n      headers: {\n        \"Content-Type\": \"application/json\"\n      }\n    })\n    // console.log(res.payload)\n    return res.payload.bits\n  }catch(error) {\n    Log.error(error, \"error caught in getAllSharedBits\")\n    throw error\n  }\n}","import actions from \"../constants/actions.json\";\nimport { toast } from \"react-toastify\";\nimport { v4 } from \"uuid\";\nimport { DefaultThunkAction } from \"./shared\";\n\n//for global toast errors\nexport function dispatchError(\n  error: string\n): DefaultThunkAction<Promise<void>> {\n  return async (dispatch, getState) => {\n    setTimeout(() => {\n      toast.error(error, {\n        toastId: v4(),\n        onClose: () => dispatch(clearError()),\n      });\n    }, 100);\n\n    await dispatch(clearError());\n  };\n}\n\nexport function clearError() {\n  toast.dismiss();\n  return {\n    type: actions.error.HIDE_ERROR,\n  };\n}\n//for global errors\nexport function showError(error: string) {\n  return {\n    type: actions.error.SHOW_ERROR,\n    error,\n  };\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"promptMessage\":\"PromptMessage_promptMessage__3fses\",\"senderImg\":\"PromptMessage_senderImg__2M8Bg\",\"promptImgContainer\":\"PromptMessage_promptImgContainer__2N-zq\",\"promptImg\":\"PromptMessage_promptImg__3SdU0\",\"promptImgActive\":\"PromptMessage_promptImgActive__31nPq\",\"promptDownload\":\"PromptMessage_promptDownload__XWiwr\",\"promptFeedbackUser\":\"PromptMessage_promptFeedbackUser__WRoag\",\"promptFeedbackBBAI\":\"PromptMessage_promptFeedbackBBAI__16hC9\",\"fancyText\":\"PromptMessage_fancyText__1hl0e\",\"promptImgLandscape\":\"PromptMessage_promptImgLandscape__1aGet\",\"qrContainer\":\"PromptMessage_qrContainer__1Lmcc\"};","import debug from \"debug\";\n\n// we use this to be able to see logs only for dev in the dev tools console\n//Format Log.info(response object/\"my message\", \"some general info about where it came from\")\n//Format Log.error(error object/\"my message\", \"registration error event:\")\n\nconst BASE = \"bb-frontend-dev\";\nconst COLOURS = {\n  trace: \"lightblue\",\n  info: \"blue\",\n  warn: \"pink\",\n  error: \"red\",\n}; // choose better colours :)\n\nclass Log {\n  generateMessage(level, message, source) {\n    // Set the prefix which will cause debug to enable the message\n    const namespace = `${BASE}:${level}`;\n    const createDebug = debug(namespace);\n\n    createDebug.enabled = true;\n\n    // Set the colour of the message based on the level\n    createDebug.color = COLOURS[level];\n\n    //only show logs in dev environment\n\n    if (\n      process.env.REACT_APP_STAGE !== \"production\" &&\n      process.env.NODE_ENV !== \"test\"\n    ) {\n      if (source) {\n        createDebug(source, message);\n      } else {\n        createDebug(message);\n      }\n    }\n  }\n\n  trace(message, source) {\n    return this.generateMessage(\"trace\", message, source);\n  }\n\n  info(message, source) {\n    return this.generateMessage(\"info\", message, source);\n  }\n\n  warn(message, source) {\n    return this.generateMessage(\"warn\", message, source);\n  }\n\n  error(message, source) {\n    return this.generateMessage(\"error\", message, source);\n  }\n}\n\nexport default new Log();\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n  window.location.hostname === \"localhost\" ||\n    // [::1] is the IPv6 localhost address.\n    window.location.hostname === \"[::1]\" ||\n    // 127.0.0.0/8 are considered localhost for IPv4.\n    window.location.hostname.match(\n      /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n    )\n);\n\nexport function register(config) {\n  if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n    // The URL constructor is available in all browsers that support SW.\n    const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n    if (publicUrl.origin !== window.location.origin) {\n      // Our service worker won't work if PUBLIC_URL is on a different origin\n      // from what our page is served on. This might happen if a CDN is used to\n      // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n      return;\n    }\n\n    window.addEventListener(\"load\", () => {\n      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n      if (isLocalhost) {\n        // This is running on localhost. Let's check if a service worker still exists or not.\n        checkValidServiceWorker(swUrl, config);\n\n        // Add some additional logging to localhost, pointing developers to the\n        // service worker/PWA documentation.\n        navigator.serviceWorker.ready.then(() => {\n          console.log(\n            \"This web app is being served cache-first by a service \" +\n              \"worker. To learn more, visit https://bit.ly/CRA-PWA\"\n          );\n        });\n      } else {\n        // Is not localhost. Just register service worker\n        registerValidSW(swUrl, config);\n      }\n    });\n  }\n}\n\nfunction registerValidSW(swUrl, config) {\n  navigator.serviceWorker\n    .register(swUrl)\n    .then((registration) => {\n      registration.onupdatefound = () => {\n        const installingWorker = registration.installing;\n        if (installingWorker==null) {\n          return;\n        }\n        installingWorker.onstatechange = () => {\n          if (installingWorker.state === \"installed\") {\n            if (navigator.serviceWorker.controller) {\n              // At this point, the updated precached content has been fetched,\n              // but the previous service worker will still serve the older\n              // content until all client tabs are closed.\n              console.log(\n                \"New content is available and will be used when all \" +\n                  \"tabs for this page are closed. See https://bit.ly/CRA-PWA.\"\n              );\n\n              // Execute callback\n              if (config && config.onUpdate) {\n                config.onUpdate(registration);\n              }\n            } else {\n              // At this point, everything has been precached.\n              // It's the perfect time to display a\n              // \"Content is cached for offline use.\" message.\n              console.log(\"Content is cached for offline use.\");\n\n              // Execute callback\n              if (config && config.onSuccess) {\n                config.onSuccess(registration);\n              }\n            }\n          }\n        };\n      };\n    })\n    .catch((error) => {\n      console.error(\"Error during service worker registration:\", error);\n    });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n  // Check if the service worker can be found. If it can't reload the page.\n  fetch(swUrl, {\n    headers: { \"Service-Worker\": \"script\" },\n  })\n    .then((response) => {\n      // Ensure service worker exists, and that we really are getting a JS file.\n      const contentType = response.headers.get(\"content-type\");\n      if (\n        response.status === 404 ||\n        (contentType != null && contentType.indexOf(\"javascript\") === -1)\n      ) {\n        // No service worker found. Probably a different app. Reload the page.\n        navigator.serviceWorker.ready.then((registration) => {\n          registration.unregister().then(() => {\n            window.location.reload();\n          });\n        });\n      } else {\n        // Service worker found. Proceed as normal.\n        registerValidSW(swUrl, config);\n      }\n    })\n    .catch(() => {\n      console.log(\n        \"No internet connection found. App is running in offline mode.\"\n      );\n    });\n}\n\nexport function unregister() {\n  if (\"serviceWorker\" in navigator) {\n    navigator.serviceWorker.ready\n      .then((registration) => {\n        registration.unregister();\n      })\n      .catch((error) => {\n        console.error(error.message);\n      });\n  }\n}\n","//add keys for dev and prod environments here:\n//adding just dev keys for now:\nimport Env from \"../Env\";\n\nexport const aws_config = {\n  s3: {\n    REGION: process.env.REACT_APP_REGION,\n  },\n  apiGateway: {\n    REGION: process.env.REACT_APP_REGION,\n    URL: process.env.REACT_APP_API_GATEWAY_URL,\n  },\n  analyticsGateway: {\n    URL: process.env.REACT_APP_API_ANALYTICS_URL,\n  },\n  plansGateway: {\n    URL: process.env.REACT_APP_API_PLAN_MANAGEMENT_URL,\n    // URL: process.env.REACT_APP_LOCAL_PLANMGT_URL\n  },\n  adManagerGateway: {\n    URL: process.env.REACT_APP_API_AD_MANAGER_URL,\n  },\n  assetManagementGateway: {\n    URL: process.env.REACT_APP_ASSET_MANAGEMENT_GATEWAY_URL,\n  },\n  bbworldGetway: {\n    URL: process.env.REACT_APP_BUILD_BOX_WORLD_GATEWAY_URL,\n  },\n  pseudo: {\n    URL: process.env.REACT_APP_PSEUDO_URL,\n  },\n  bb2Gateway: {\n    URL: Env.BB2D_BASE_URL,\n  },\n  bbaiGateway: {\n    URL: Env.BBAI_BASE_URL,\n  },\n  assetMangerGateway: {\n    URL: Env.ASSET_MANAGER_BASE_URL,\n  },\n  cognito: {\n    REGION: process.env.REACT_APP_REGION,\n    USER_POOL_ID: process.env.REACT_APP_USER_POOL_ID,\n    APP_CLIENT_ID: process.env.REACT_APP_COGNITO_APP_CLIENT_ID,\n    COOKIE_DOMAIN: process.env.REACT_APP_COGNITO_COOKIE_DOMAIN || \"localhost\",\n  },\n  oauth: {\n    domain: process.env.REACT_APP_COGNITO_DOMAIN_URL,\n    scope: [\"email\", \"profile\", \"openid\", \"aws.cognito.signin.user.admin\"],\n    redirectSignIn: process.env.REACT_APP_REDIRECT_SIGN_IN_URL,\n    redirectSignOut: process.env.REACT_APP_REDIRECT_SIGN_OUT_URL,\n    responseType: \"code\",\n  },\n};\n","import { AnyAction } from \"redux\";\nimport actions from \"../constants/actions.json\";\n\nconst initialState: bb.state.IAuth = {\n  user: null,\n  gaClientId: null,\n  fromBBClient: false,\n  cognitoClientId: null,\n  clientSecret: null,\n  authTokens: null,\n  screenName: null,\n};\n\nconst authReducer = (\n  state: bb.state.IAuth = initialState,\n  action: AnyAction\n): bb.state.IAuth => {\n  switch (action.type) {\n    case actions.auth.SET_USER:\n      return {\n        ...state,\n        user: action.user,\n      };\n    case actions.auth.SET_SCREEN_NAME: \n      return {\n        ...state,\n        screenName: action.screenName\n      };\n    case actions.auth.SET_GA_CLIENT_ID:\n      return {\n        ...state,\n        gaClientId: action.gaClientId,\n      };\n    case actions.auth.SET_AUTH_TOKENS:\n      return {\n        ...state,\n        authTokens: action.tokens,\n      };\n    case actions.auth.SET_COGNITO_CLIENT_INFO:\n      return {\n        ...state,\n        cognitoClientId: action.cognitoClientId,\n        clientSecret: action.clientSecret,\n      };\n    case actions.auth.CLEAR_USER:\n      return initialState;\n    case actions.auth.SET_ACCOUNTLESS_PURCHASE_EMAIL: \n      return {\n        ...state,\n        accountlessPurchaseEmail: action.email\n      }\n    default:\n      return state;\n  }\n};\n\nexport default authReducer;\n","import { AnyAction } from \"redux\";\nimport actions from \"../constants/actions.json\";\n\n\nconst initialState: bb.state.IAccount = {\n  subscriptions: [],\n  invoices: [],\n  planInfo: [],\n  upcomingInvoice: null,\n  bundleSubscription: false,\n  eligibleRenewal: {\n    bb2: false,\n    bb3: false,\n    bb4: false,\n    bbbundle: false,\n    soundbox: false,\n  },\n  planProviders: {\n    bb2: null,\n    bb3: null,\n    bb4: null,\n    bbbundle: null,\n    soundbox: null,\n  },\n  plans: {\n    bb2: null,\n    bb3: null,\n    bb4: null,\n    bbbundle: null,\n    soundbox: null,\n  },\n};\n\nconst accountReducer = (\n  state: bb.state.IAccount = initialState,\n  action: AnyAction\n): bb.state.IAccount => {\n  switch (action.type) {\n    case actions.account.SET_CURRENT_PLANS:\n      return {\n        ...state,\n        subscriptions: [...action.plans],\n      };\n    case actions.account.SET_INVOICES:\n      return {\n        ...state,\n        invoices: [...action.invoices],\n      };\n    case actions.account.SET_UPCOMING_INVOICE:\n      return {\n        ...state,\n        upcomingInvoice: action.upcomingInvoice\n      };\n    case actions.account.SET_BUNDLE_SUBSCRIPTION:\n      return {\n        ...state,\n        bundleSubscription: action.bundleSubscription\n      };\n    case actions.account.SET_ELIGIBLE_RENEWAL:\n      return {\n        ...state,\n        eligibleRenewal: action.eligibleRenewal\n      }\n    case actions.account.CLEAR_ACCOUNT:\n      return initialState;\n    case actions.account.SET_PLAN_PROVIDERS:\n      return {\n        ...state,\n        planProviders: action.planProviders\n      }\n    case actions.account.SET_USER_PLANS:\n      return {\n        ...state,\n        plans: action.plans\n      }\n    default:\n      return state;\n  }\n};\n\nexport default accountReducer;\n","import { WorkState } from \"../reducers/models\";\nimport { AnyAction } from \"redux\";\nimport actions from \"../constants/actions.json\";\nimport PLANS_JSON from \"../constants/planMetadata\";\n\nconst initialState: bb.state.ISale = {\n  houseAdCampaign: {\n    website_homepage: null,\n    website_pricing: null,\n    website_stripe: null\n  },\n  saleData: {},\n  saleContext: {\n    showSaleUI: false,\n    showSalesLoader: false,\n    discountedCost: PLANS_JSON, //discounted copy of plans json\n    totalCost: null,\n    saleJustEnded: false,\n  },\n  workState: {\n    saleState: WorkState.None,\n  },\n};\n\nconst saleReducer = (\n  state: bb.state.ISale = initialState,\n  action: AnyAction\n): bb.state.ISale => {\n  switch (action.type) {\n    case actions.sale.SET_SALE_STATE:\n      return {\n        ...state,\n        workState: {\n          ...state.workState,\n          saleState: action.saleState,\n        },\n      };\n    case actions.sale.SET_SALE_DATA:\n      return {\n        ...state,\n        saleData: Object.assign({}, { ...action.saleData }),\n      };\n    case actions.sale.SET_SALE_UI:\n      return {\n        ...state,\n        saleContext: {\n          ...state.saleContext,\n          showSaleUI: action.showSaleUI,\n        },\n      };\n    case actions.sale.SET_SALE_LOADER:\n      return {\n        ...state,\n        saleContext: {\n          ...state.saleContext,\n          showSalesLoader: action.showSalesLoader,\n        },\n      };\n    case actions.sale.SET_DISCOUNTED_COST:\n      return {\n        ...state,\n        saleContext: {\n          ...state.saleContext,\n          discountedCost: action.discountedCost,\n        },\n      };\n    case actions.sale.SET_TOTAL_COST:\n      return {\n        ...state,\n        saleContext: {\n          ...state.saleContext,\n          totalCost: action.totalCost,\n        },\n      };\n    case actions.sale.RESET_SALE_STATE:\n      return {\n        ...state,\n        saleData: {},\n        saleContext: {\n          ...state.saleContext,\n          showSaleUI: false,\n          showSalesLoader: false,\n        },\n      };\n    case actions.sale.SET_SALE_JUST_ENDED:\n      return {\n        ...state,\n        saleContext: {\n          ...state.saleContext,\n          saleJustEnded: action.saleJustEnded,\n        },\n      };\n    case actions.sale.CLEAR_SALE_DATA:\n      return initialState;\n    case actions.sale.SET_HOUSE_AD_CAMPAIGN_HOMEPAGE:\n      const houseAdCampaignForHomepage = action.houseAdCampaign !== null? {...action.houseAdCampaign} : null\n      return {\n        ...state,\n        houseAdCampaign: {\n          ...state.houseAdCampaign,\n          website_homepage: houseAdCampaignForHomepage\n        }\n      }\n    case actions.sale.SET_HOUSE_AD_CAMPAIGN_PRICING:\n      const houseAdCampaignForPricing = action.houseAdCampaign !== null? {...action.houseAdCampaign} : null\n      return {\n        ...state,\n        houseAdCampaign: {\n          ...state.houseAdCampaign,\n          website_pricing: houseAdCampaignForPricing\n        }\n      }\n    case actions.sale.SET_HOUSE_AD_CAMPAIGN_STRIPE:\n      const houseAdCampaignForStripe = action.houseAdCampaign !== null? {...action.houseAdCampaign} : null\n      return {\n        ...state,\n        houseAdCampaign: {\n          ...state.houseAdCampaign,\n          website_stripe: houseAdCampaignForStripe\n        }\n      }\n    default:\n      return state;\n  }\n};\n\nexport default saleReducer;\n","import { AnyAction } from \"redux\";\nimport actions from \"../constants/actions.json\";\n\nconst initialState: bb.state.IError = {\n  error: null,\n};\n\nconst errorReducer = (\n  state: bb.state.IError = initialState,\n  action: AnyAction\n) => {\n  switch (action.type) {\n    case actions.error.SHOW_ERROR:\n      return {\n        error: action.error,\n      };\n    case actions.error.HIDE_ERROR:\n      return {\n        error: null,\n      };\n    default:\n      return state;\n  }\n};\n\nexport default errorReducer;\n","import { AnyAction } from \"redux\";\nimport actions from \"../constants/actions.json\";\n\nconst initialState: bb.state.ICart = {\n  quantity: 0,\n  items: [],\n};\nconst cartReducer = (\n  state: bb.state.ICart = initialState,\n  action: AnyAction\n): bb.state.ICart => {\n  switch (action.type) {\n    case actions.cart.ADD_TO_CART:\n      return {\n        quantity: action.items.length,\n        items: action.items,\n      };\n    case actions.cart.REMOVE_FROM_CART:\n      const filteredCart = state.items.filter(\n        (item) => item.cartId !== action.cartId\n      );\n      return {\n        ...state,\n        items: filteredCart,\n        quantity: filteredCart.length,\n      };\n    case actions.cart.UPDATE_SEAT_QUANTITY:\n      let plan = state.items.find((item) => item.cartId === action.cartId);\n      let updatedCart = state.items.filter(\n        (item) => item.cartId !== action.cartId\n      );\n\n      if (plan) {\n        let seats = action.quantity;\n        if (seats < 1 || seats === \"\") {\n          seats = 1;\n        }\n        plan.seatQuantity = seats;\n        updatedCart.push(plan);\n      }\n\n      return {\n        ...state,\n        items: updatedCart,\n      };\n    case actions.cart.CLEAR_CART:\n      return initialState;\n    default:\n      return state;\n  }\n};\n\nexport default cartReducer;\n","import { LoginClientType, LoginState, WorkState, ProductType } from \"./models\";\nimport { AnyAction } from \"redux\";\nimport actions from \"../constants/actions.json\";\n\nconst initialState: bb.state.ICurrent = {\n  fromSSORedirect: false,\n  workState: {\n    client: LoginClientType.Web,\n    loginState: LoginState.None,\n    analytics: WorkState.None,\n    signup: WorkState.None,\n    purchase: WorkState.None,\n    planFetch: WorkState.None,\n    billingInfoFetch: WorkState.None,\n    invoicesFetch: WorkState.None,\n    transactionsFetch: WorkState.None,\n    projectsFetch: WorkState.None,\n    adSettings: WorkState.None,\n  },\n  userState: {\n    productType: ProductType.BB4,\n  },\n};\n\nconst currentReducer = (\n  state: bb.state.ICurrent = initialState,\n  action: AnyAction\n): bb.state.ICurrent => {\n  switch (action.type) {\n    case actions.current.SET_LOGIN_STATE:\n      return {\n        ...state,\n        workState: {\n          ...state.workState,\n          loginState: action.loginState,\n        },\n      };\n    case actions.current.SET_SIGNUP_STATE:\n      return {\n        ...state,\n        workState: {\n          ...state.workState,\n          signup: action.workState,\n        },\n      };\n    case actions.current.SET_ANALYTICS_WORKSTATE:\n      return {\n        ...state,\n        workState: {\n          ...state.workState,\n          analytics: action.workState,\n        },\n      };\n    case actions.current.SET_PURCHASE_STATE:\n      return {\n        ...state,\n        workState: {\n          ...state.workState,\n          purchase: action.workState,\n        },\n      };\n    case actions.current.SET_PLAN_FETCH_STATE:\n      return {\n        ...state,\n        workState: {\n          ...state.workState,\n          planFetch: action.workState,\n        },\n      };\n    case actions.current.SET_BILLING_INFO_FETCH_STATE:\n      return {\n        ...state,\n        workState: {\n          ...state.workState,\n          billingInfoFetch: action.workState,\n        },\n      };\n    case actions.current.SET_INVOICES_FETCH_STATE:\n      return {\n        ...state,\n        workState: {\n          ...state.workState,\n          invoicesFetch: action.workState,\n        },\n      };\n    case actions.current.SET_TRANSACTIONS_FETCH_WORKSTATE:\n      return {\n        ...state,\n        workState: {\n          ...state.workState,\n          transactionsFetch: action.workState,\n        },\n      };\n    case actions.current.SET_PROJECTS_FETCH_WORKSTATE:\n      return {\n        ...state,\n        workState: {\n          ...state.workState,\n          projectsFetch: action.workState,\n        },\n      };\n    case actions.current.SET_AD_SETTINGS_WORKSTATE:\n      return {\n        ...state,\n        workState: {\n          ...state.workState,\n          adSettings: action.adSettingsWorkState,\n        },\n      };\n    case actions.current.SET_LOGIN_TYPE:\n      return {\n        ...state,\n        workState: {\n          ...state.workState,\n          client: action.client,\n        },\n      };\n    case actions.current.SET_FROM_SSO_REDIRECT:\n      return {\n        ...state,\n        fromSSORedirect: action.fromSSORedirect,\n      };\n    case actions.current.SET_PRODUCT_TYPE:\n      const productType = action.productType.toUpperCase();\n      sessionStorage.setItem(\"productType\", productType);\n      sessionStorage.setItem(\"websocket-product\", productType);\n\n      return {\n        ...state,\n        userState: {\n          ...state.userState,\n          productType: productType,\n        },\n      };\n    case actions.current.RESET_CURRENT_STATE:\n      return initialState;\n    default:\n      return state;\n  }\n};\n\nexport default currentReducer;\n","import { AnyAction } from \"redux\";\nimport { HWAccountStatus, HWVerificationStatus, WorkState } from \"../reducers/models\";\nimport actions from \"../constants/actions.json\";\nimport { filterReducerAdboxReportItem } from \"../utils/reducerHelperUtils\";\n\nconst initialState: bb.state.IMonetization = {\n  workState: {\n    status: HWAccountStatus.UNREGISTERED,\n    verificationStatus: HWVerificationStatus.REQUIRED,\n  },\n  accountInfo: {\n    firstName: \"\",\n    lastName: \"\",\n    dateOfBirth: \"\",\n    country: \"\",\n    email: \"\",\n  },\n  paymentHistory: {\n    transactions: [],\n  },\n  projects: {\n    games: [],\n  },\n  adboxReport: {\n    workState: WorkState.None,\n    networkReports: undefined \n  },\n  monthToDateEarnings: {\n    workState: WorkState.None,\n    earnings: NaN,\n  },\n  filters: {\n    networks: {\n      appLovin: true,\n      vungle: true\n    },\n    word: \"\",\n    os: { ios: true, \n      android: true},\n      networkReports: [] \n  },\n  adboxDailyMetrics: {\n    workState: WorkState.None,\n    dailyMetrics: undefined,\n  },\n};\nconst monetizationReducer = (\n  state: bb.state.IMonetization = initialState,\n  action: AnyAction\n): bb.state.IMonetization => {\n  switch (action.type) {\n    case actions.monetization.SET_HW_ACCOUNT_STATE:\n      return {\n        ...state,\n        workState: action.accountState,\n      };\n    case actions.monetization.SET_HW_ACCOUNT_INFO:\n      return {\n        ...state,\n        accountInfo: action.accountInfo,\n      };\n    case actions.monetization.SET_PAYMENT_TRANSACTIONS:\n      return {\n        ...state,\n        paymentHistory: {\n          ...state.paymentHistory,\n          transactions: [...action.transactions],\n        },\n      };\n    case actions.monetization.SET_PROJECTS:\n      return {\n        ...state,\n        projects: {\n          ...state.projects,\n          games: [...action.projects],\n        },\n      };\n     case actions.monetization.SET_MONTH_TO_DATE_EARNINGS:\n      return{\n        ...state,\n        monthToDateEarnings: action.monthToDateEarnings\n      }\n    case actions.account.CLEAR_ACCOUNT:\n      return initialState;\n    case actions.monetization.SET_ADBOX_REPORT:\n      return {\n        ...state,\n        adboxReport: action.adboxReport,\n        filters: {\n          ...state.filters,\n          networkReports: filterReducerAdboxReportItem(action.adboxReport.networkReports, state.filters.os, state.filters.networks, state.filters.word),\n        }\n      }\n    case actions.monetization.SET_NETWORK_FILTER:\n      return {\n        ...state,\n        filters:{\n          ...state.filters,\n          networks: action.filters,\n          networkReports: filterReducerAdboxReportItem(state.adboxReport.networkReports, state.filters.os, action.filters, state.filters.word),\n        }\n      }\n    case actions.monetization.SET_BUNDLE_FILTER_WORD:\n      return {\n      ...state,\n       filters: {\n         ...state.filters,\n         word: action.bundleFilterWord,\n         networkReports: filterReducerAdboxReportItem(state.adboxReport.networkReports, state.filters.os, state.filters.networks, action.bundleFilterWord),\n       }  \n    }\n    case actions.monetization.SET_PLATFORM_OS_FILTER:\n      return {\n        ...state,\n        filters:{\n          ...state.filters,\n          os: action.filters,\n          networkReports:  filterReducerAdboxReportItem(state.adboxReport.networkReports, action.filters, state.filters.networks, state.filters.word),\n        }\n      }\n    case actions.monetization.SET_FILTERED_TABLE:{ \n      return {\n        ...state,\n        filters:{\n          ...state.filters,\n          networkReports:  filterReducerAdboxReportItem(state.adboxReport.networkReports, state.filters.os, state.filters.networks, state.filters.word),\n        }\n      }\n    }\n    case actions.monetization.SET_DAILY_METRICS:\n      return {\n        ...state,\n        adboxDailyMetrics: action.adboxDailyMetrics,\n      }\n    default:\n      return state;\n  }\n};\n\nexport default monetizationReducer;\n","import { connectRouter } from \"connected-react-router\";\nimport { combineReducers } from \"redux\";\n\nimport auth from \"./authReducer\";\nimport account from \"./accountReducer\";\nimport sale from \"./saleReducer\";\nimport error from \"./errorReducer\";\nimport cart from \"./cartReducer\";\nimport current from \"./currentReducer\";\nimport monetization from \"./monetizationReducer\";\nimport  storyGame from \"./storyGameReducer\";\nimport { persistReducer } from \"redux-persist\";\nimport sessionStorage from 'redux-persist/lib/storage/session'\n\nconst sessionStorageStoryGamePersistConfig = {\n  key: 'storygame',\n  storage: sessionStorage,\n}\n\nexport default function createRootReducer(history: History) {\n  return combineReducers({\n    auth: auth,\n    account: account,\n    cart: cart,\n    sale: sale,\n    error: error,\n    current: current,\n    monetization: monetization,\n    router: connectRouter(history),\n    storyGame: persistReducer(sessionStorageStoryGamePersistConfig, storyGame),\n    // storyGame: storyGame,\n  });\n}\n","import { createBrowserHistory, History } from \"history\";\nimport { applyMiddleware, compose, createStore } from \"redux\";\nimport { routerMiddleware } from \"connected-react-router\";\nimport createRootReducer from \"./reducers/\";\nimport thunk from \"redux-thunk\";\nimport storage from \"redux-persist/lib/storage\";\nimport storageSession from \"redux-persist/lib/storage/session\";\nimport { getBrowser } from \"./utils/browserUtils\";\nimport { persistStore, persistReducer } from \"redux-persist\";\n\nexport const history: History = createBrowserHistory();\n\nconst currentBrowser = getBrowser();\n\nlet persistConfig = {\n  key: \"root\",\n  storage,\n  whitelist: [\"auth\", \"account\", \"cart\", \"current\", \"error\"],\n  blacklist: [\"sale\", \"router\"],\n};\n\nif (currentBrowser === \"Safari\") {\n  persistConfig = {\n    key: \"root\",\n    storage: storageSession,\n    whitelist: [\"auth\", \"account\", \"cart\", \"current\", \"error\"],\n    blacklist: [\"sale\", \"router\", ],\n  };\n}\n\nexport default function configureStore(initialState?: bb.state.IRedux) {\n  const middlewares = [routerMiddleware(history), thunk];\n\n  const enhancers = [applyMiddleware(...middlewares)];\n\n  let composeEnhancer = compose;\n\n  if (process.env.REACT_APP_STAGE === \"dev\") {\n    composeEnhancer =\n      (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n  }\n\n  const reducers = createRootReducer(history);\n\n  // Middleware: Redux Persist Persisted Reducer\n  const persistedReducer = persistReducer(persistConfig, reducers);\n\n  const store = createStore(\n    persistedReducer,\n    initialState,\n    composeEnhancer(...enhancers) as any \n  );\n\n  // Middleware: Redux Persist Persisted Store\n  const persistor = persistStore(store);\n\n  // Hot reloading\n  if (module.hot) {\n    // Enable Webpack hot module replacement for reducers\n    module.hot.accept(\"./reducers\", () => {\n      store.replaceReducer(require(\"./reducers\").default);\n    });\n  }\n\n  return { store, persistor };\n}\n","import \"react-app-polyfill/ie11\";\nimport \"react-app-polyfill/stable\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./styles/index.scss\";\nimport App from \"./App\";\nimport { Provider } from \"react-redux\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport { ConnectedRouter } from \"connected-react-router\";\nimport Amplify from \"@aws-amplify/core\";\n\nimport { aws_config } from \"./constants/amplify_config\";\n// import TagManager from \"react-gtm-module\";\n\nimport { Elements } from \"@stripe/react-stripe-js\";\nimport { loadStripe } from \"@stripe/stripe-js\";\nimport { PersistGate } from \"redux-persist/integration/react\";\n\nimport configureStore, { history } from \"./configureStore\";\n\nconst stripePromise = loadStripe(process.env.REACT_APP_STRIPE_KEY);\n\n// const tagManagerArgs = {\n//   gtmId: \"GTM-K8KCBNX\", // Google Tag Manager ID gets injected into react pages\n// };\n\n// TagManager.initialize(tagManagerArgs);\n\nAmplify.configure({\n  Auth: {\n    mandatorySignIn: false,\n    region: aws_config.cognito.REGION,\n    userPoolId: aws_config.cognito.USER_POOL_ID,\n    userPoolWebClientId: aws_config.cognito.APP_CLIENT_ID,\n  },\n  Storage: {\n    region: aws_config.s3.REGION,\n    bucket: aws_config.s3.BUCKET,\n  },\n  API: {\n    endpoints: [\n      {\n        name: \"userAccountManagementURL\",\n        endpoint: aws_config.apiGateway.URL,\n        region: aws_config.apiGateway.REGION,\n      },\n      {\n        name: \"plansURL\",\n        endpoint: aws_config.plansGateway.URL,\n      },\n      {\n        name: \"adsURL\",\n        endpoint: aws_config.adManagerGateway.URL,\n      },\n      {\n        name: \"assetsURL\",\n        endpoint: aws_config.assetManagementGateway.URL,\n      },\n      {\n        name: \"bbworldUrl\",\n        endpoint: aws_config.bbworldGetway.URL,\n        region: aws_config.apiGateway.REGION,\n      },\n      {\n        name: \"pseudoURL\",\n        endpoint: aws_config.pseudo.URL,\n      },\n      {\n        name: \"bb2URL\",\n        endpoint: aws_config.bb2Gateway.URL,\n      },\n      {\n        name: \"bbaiURL\",\n        endpoint: aws_config.bbaiGateway.URL,\n      },\n      {\n        name: \"assetManagerURL\",\n        endpoint: aws_config.assetMangerGateway.URL,\n      }\n    ],\n  },\n  oauth: {\n    domain: aws_config.oauth.domain,\n    scope: aws_config.oauth.scope,\n    redirectSignIn: aws_config.oauth.redirectSignIn,\n    redirectSignOut: aws_config.oauth.redirectSignOut,\n    responseType: aws_config.oauth.responseType,\n  },\n});\n\nconst { store, persistor } = configureStore();\n\nReactDOM.render(\n  <Provider store={store}>\n    <PersistGate loading={null} persistor={persistor}>\n      <ConnectedRouter history={history}>\n        <Elements stripe={stripePromise}>\n          <App />\n        </Elements>\n      </ConnectedRouter>\n    </PersistGate>\n  </Provider>,\n  document.getElementById(\"root\")\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"linkRegular\":\"Footer_linkRegular__2e5ki\",\"footer\":\"Footer_footer__2SqrG\",\"clientDefaultText\":\"Footer_clientDefaultText__KOuoe\",\"wrapper\":\"Footer_wrapper__3idgI\",\"linksContainer\":\"Footer_linksContainer__YwJnh\",\"linksWrapper\":\"Footer_linksWrapper__siqd9\",\"socialText\":\"Footer_socialText__2QZs2\",\"linkItems\":\"Footer_linkItems__19I1z\",\"privacyTerms\":\"Footer_privacyTerms__T3hG8\",\"linkTitle\":\"Footer_linkTitle__3LtkK\",\"ot-sdk-btn\":\"Footer_ot-sdk-btn__2JQV5\",\"blogLinks\":\"Footer_blogLinks__1tQtv\",\"interestsList\":\"Footer_interestsList__KTqNx\",\"termsContainer\":\"Footer_termsContainer__2ejWa\",\"formInputs\":\"Footer_formInputs__RQPt0\",\"socialIcons\":\"Footer_socialIcons__1xJqE\",\"socialLinkVertical\":\"Footer_socialLinkVertical__34BTn\",\"textSection\":\"Footer_textSection__3dRUU\",\"linkItemsSocial\":\"Footer_linkItemsSocial__2T95o\"};","export default (state: { auth: { user: bb.model.IUser } }) => {\n  return state.auth.user;\n};\n"],"sourceRoot":""}