{"version":3,"sources":["utils/Interfaces.tsx","../../common/src/components/EnhancedButton.tsx","analytics/Analytics.tsx","components/ApiErrorHandler.tsx","../../common/src/utils/Snackbar.tsx","../../common/src/utils/Interfaces.tsx","../../common/src/analytics/Analytics.tsx","../../common/src/interfaces/ContentGeneration.tsx","../../common/src/hooks/UseIsMobile.tsx","../../common/src/api/Analytics.tsx","../../common/src/api/LanguageModel.tsx","../../common/src/hooks/useGenerationAPI.tsx","../../common/src/utils/ApiClient.tsx","../../common/src/integrations/HelpScout/BeaconProvider.tsx","../../common/src/integrations/HelpScout/useBeacon.tsx","components/UnauthorizedError.tsx","../../common/src/hooks/hocify.tsx","../../common/src/interfaces/Tutorial.tsx","utils/Constants.tsx","utils/Functions.tsx","../../common/src/utils/Theme.tsx","../../common/src/utils/Products.tsx","../../common/src/components/mobileWarningBanner/useMobileWarningBanner.tsx","../../common/src/components/mobileWarningBanner/MobileWarningBanner.tsx","../../common/src/components/advertising/form/AdTextFormHeader.tsx","../../common/src/components/GeneralModal.tsx","../../common/src/integrations/HelpScout/components/BeaconArticleLink.tsx","../../common/src/integrations/HelpScout/Constants.ts","api/Analytics.tsx","../../common/src/components/Loaders.tsx","../../common/src/hooks/useLocalStorage.tsx","../../common/src/hooks/useConfirmationDialog.tsx","utils/context/ProductStateContext.tsx","components/UnexpectedError.tsx","components/GeneralError.tsx","../public/logos/TakoSidebarLogoColored.svg","components/ImportProductsButton.tsx","components/SlimDrawer.tsx","../../common/src/components/MarketingCopyCard.tsx","../../common/src/components/MarketingCardList.tsx","../../common/src/assets/marketing/facebook.svg","../../common/src/assets/marketing/linkedin.svg","../../common/src/assets/marketing/google.svg","../../common/src/assets/marketing/instagram.svg","../../common/src/assets/marketing/headlines.svg","../../common/src/assets/marketing/question.svg","../../common/src/assets/marketing/rewriter.svg","../../common/src/assets/marketing/category_page.svg","../../common/src/assets/marketing/landing_page.svg","../../common/src/assets/marketing/eli5.svg","../../common/src/assets/marketing/email.svg","../../common/src/assets/marketing/video_script.svg","../../common/src/assets/marketing/meta_desc.svg","../../common/src/assets/marketing/marketing_angles.svg","../../common/src/assets/marketing/press_release.svg","../../common/src/assets/marketing/summarise.svg","../../common/src/assets/marketing/youtube.svg","../../common/src/assets/marketing/bio_writer.svg","../../common/src/pages/MarketingDashboard.tsx","../../common/src/utils/Constants.tsx","components/ChatSupport.tsx","utils/Theme.tsx","../../common/src/utils/ProtectedRoute.tsx","../../common/src/hooks/useBroadcast.tsx","../../common/src/components/ReloadPageOnNewLogin.tsx","../../common/src/pages/public/ArticlePreviewRedirect.tsx","../../common/src/components/molecules/SimpleDialog.tsx","../../common/src/components/InsufficientCreditsModal.tsx","components/TakoInsufficientCreditsModal.tsx","App.tsx","serviceWorker.ts","index.tsx","../../common/src/utils/Functions.tsx","../../common/src/interfaces/Blog.tsx","../../common/src/interfaces/AdvertisingText.tsx","../../common/src/components/atoms/Stack.tsx"],"names":["PlanTierLogicForBulkPurchaseDuringTrialMode","PlanType","Currency","PlanTierSegment","PaymentHistoryStatus","TransactionReason","JobStatus","ProductTabType","WriterLength","ApiError","FeedbackType","ReportType","KeywordStrength","useStyles","makeStyles","theme","createStyles","outlinedSuccess","borderColor","palette","success","main","color","outlinedError","error","outlinedWarning","warning","outlinedInfo","info","containedSuccess","backgroundColor","contrastText","dark","containedError","containedWarning","containedInfo","Button","props","children","endIcon","loading","restProps","className","variant","capitalize","colorProp","indexOf","undefined","size","displayName","ApiErrorHandler","useState","setError","useEffect","apiClient","interceptors","response","use","res","status","unauthorized","Promise","reject","ApiErrorCatcher","func","openChat","useSnackbarRef","InnerSnackbarUtilsConfigurator","setUseSnackbarRef","useSnackbar","useSnackbarRefProp","SnackbarConfigurator","defaultVariantOptions","autoHideDuration","action","key","onClick","closeSnackbar","style","fontWeight","SnackbarContentEllipsisDiv","styled","div","snackbar","show","msg","options","variantOptions","mergedOptions","enqueueSnackbar","close","ServerErrorType","DescribeErrorType","TimePeriod","ActionPointSeverity","PlanCreditProvisionType","PlatformType","SocialShareMedia","useAnalyticsRef","AnalyticsContext","React","createContext","AnalyticsProvider","initialUsername","username","disableTracking","logRocketAppId","logRocketExcludedUsernamePatterns","googleAnalyticsTrackingCode","setUsername","isIdentifiedAnalyticsInitialized","setIsIdentifiedAnalyticsInitialized","isLogRocketInit","setIsLogRocketInit","identify","useCallback","a","LogRocket","name","ReactGA","set","userId","Sentry","email","id","ip_address","level","isUsernameExcludedFromLogRocketTracking","map","pattern","test","some","v","initializeAnalyticsAnonymous","initialize","initializeAnalyticsWithUsername","init","setupLogRocketReact","checkIfLogRocketInitAndThrowSentryError","then","trackEvent","category","event","params","track","isError","trackPageView","path","handleTrackPageVisit","pageview","Provider","value","useAnalytics","context","useContext","Error","InnerAnalyticsConfigurator","setUseAnalyticsRef","useAnalyticsRefProp","AnalyticsConfigurator","notConfiguredError","Analytics","ContentGenerationType","FeedbackContentGenerationType","ContentGenerationCategory","GenerationStatusFilterKey","getMobileBreakpoint","breakpoints","down","useIsMobile","useTheme","useMediaQuery","handleTrackAdvertisingTextAdvancedOptionsClick","isOpen","post","is_open","trackCustomerSupportMessageReceived","message","messageReceived","body","JSON","stringify","handleTrackDescriptionSelect","description","product_id","data","handleTrackInsightsActionPointClick","action_point","pathname","_resp","catch","console","log","handleTrackExportBlogPosts","blogId","blog_id","export_type","handleTrackWriteMoreAction","blogWriteMoreAction","blog_write_more_action","handleTrackSocialPostLinkSubmitted","shareUrl","share_url","apiGenerateContent","requestConfig","config","apiRewriteText","apiWriteMore","GenerationAPIContext","GenerationAPIProvider","onRateLimitExceeded","showInsufficientCreditsModal","setShowInsufficientCreditsModal","handleKnownGenerationErrors","axios","isAxiosError","detail","outOfCredits","apiGenerateRewrittenText","text","original_content","apiGenerateAdvertisingText","productId","adTextType","generationType","generationTypeMap","generation_type","apiGenerateBlog","blogStepper","subSteps","BlogStepper","TITLE","blog_title","OUTLINE","blog_outline","INTRO","blog_introduction","FULL_ARTICLE","blog_paragraph","PARAGRAPH","CONCLUSION","blog_conclusion","payload","apiGenerateProductDescription","product_descriptions","apiCancelGenerateContent","encodeURIComponent","apiGenerateContextualBlog","blog_write_more","rewriteText","apiCancelDescribeProduct","useGenerationAPI","_props","withGenerationAPI","Component","componentProps","generationAPIHookResult","create","baseURL","SERVER","withCredentials","originalResponse","handleDates","BeaconContext","InnerBeaconProvider","disableBeaconLinks","useChat","state","loadChat","open","isBeaconLoaded","setIsBeaconLoaded","beacon","window","Beacon","BeaconProvider","beaconId","provider","providerKey","useBeacon","beaconContext","makePropInjectorHOCFromHook","UnauthorizedError","authUrl","setAuthUrl","setTimeout","url","SHOPIFY_API_KEY","SHOPIFY_ACCESS_SCOPES","join","APP_LAUNCHED_REDIRECT_URL","location","href","display","flexDirection","justifyContent","alignItems","minHeight","src","textAlign","padding","hook","WrapperComponent","hookResult","TourType","PRODUCT_TAGS_MAX_CHARS","STAGE","process","IS_PRODUCTION","IS_DEPLOYED","REACT_APP_SERVER","SHOPIFY_ADD_PRODUCT_URL","SUPPORT_EMAIL","SUPPORT_SUBJECT","SUPPORT_BODY","LOGO_SHORT_SRC","GENERATE_WITHOUT_TAGS_DIALOG_ID","DEFAULT_DELAY_TIMING","HELPSCOUT_BEACON_ID","DISABLE_BEACON_LINKS","PAPERCUPS_PRIMARY_COLOR","getComputedStyle","document","documentElement","getPropertyValue","PAPERCUPS_ACCOUNT_ID","PAPERCUPS_CHAT_TITLE","PAPERCUPS_CHAT_SUBTITLE","PAPERCUPS_CHAT_PLACEHOLDER","PAPERCUPS_CHAT_GREETING","PAPERCUPS_CHAT_COLOR","PAPERCUPS_BASE_URL","SENTRY_DSN","SENTRY_TRACE_SAMPLE_RATE","GOOGLE_ANALYTICS_TRACK_CODE","LOGROCKET_APP_ID","CIO_APP_ID","CALENDLY_URL","SHOPIFY_HELPHERO_TUTORIAL_TOUR","type","helphero","MIN_NUM_STRONG_KEYWORDS","KEYWORD_BAR_COLOR","weak","average","strong","TAKO_ENABLE_ARTICLE_PUBLIC_SHARING","TAKO_ENABLE_NEW_REFERRALS","titleCase","splitStr","toLowerCase","split","i","length","charAt","toUpperCase","substring","replacePeriodWithUnderscore","replace","downloadFile","filename","link","createElement","setAttribute","appendChild","click","removeChild","paginate","list","currentPage","pageSize","slice","isValidDate","date","Date","isNaN","getTime","getIsTutorialComplete","user","completedToursIds","includes","getNameFromShopifyUserName","shopifySubdomainIndex","search","createMuiTheme","primary","shape","borderRadius","overrides","MuiButton","root","textTransform","fontFamily","MuiInputBase","input","shadows","canShowRetryingMessage","currentDate","expiredAt","loadingAt","minTimeAfterGenerate","canShowCancelButton","useMobileWarningBanner","isMobile","useLocalStorage","dismissed","setDismissed","hidden","onClose","divider","icon","grey","paddingTop","spacing","MobileWarningBanner","classes","Alert","severity","IconButton","AlertTitle","adHeaders","AdTextType","google","instagram","facebook","headline","linkedin","rewriter","category_page","landing_page","eli5","video_intro","meta_desc","marketing_angles","press_release","summarise","youtube_title","bio_writer","adSubHeaders","spanContent","noBottomMargin","marginBottom","AdTextFormHeader","beaconArticleIds","headerContent","adsGenerationBeaconLink","adsGeneration","articleId","GeneralModal","primaryColor","primaryVariant","secondaryColor","secondaryVariant","header","modalProps","closeIcon","disabled","headerStyle","content","noBodyPadding","Content","primaryText","secondaryText","Actions","container","justify","item","secondaryDisabled","startIcon","secondaryIcon","secondaryFunc","primaryDisabled","primaryIcon","primaryFunc","defaultProps","dimmer","BeaconArticleLink","openMode","verticalAlign","component","ArticleName","TakoBeaconArticleName","beaconArticles","keywords","productImage","welcome","adTextTargetAudience","import","catalogs","products","blog","ads","plagiarismChecker","imageGen","takoBeaconArticles","productFeatures","googleAdsTips","facebookAdsTips","generatingDescriptions","generatingAds","handleTrackUserSession","handleTrackDescriptionEdit","handleTrackDescriptionCopy","handleTrackDescriptionPaste","handleTrackReviewPopupOpen","handleTrackSettingsButtonClick","handleDownloadMixpanelData","report_type","toDate","fromDate","setDate","getDate","get","from_date","toISOString","to_date","resp","SpinnerOnDimmer","active","inverted","ResponsiveLoader","height","width","in","timeout","animation","useBlurredBackgroundLoaderStyles","_theme","backdropRoot","backdropFilter","loadingText","BlurredBackgroundLoader","loaderHeight","loaderWidth","zIndex","appBar","AnimatedLoadingStep","onCompleteLoading","timeToCompleteStep","neverShowCompleted","showCompletedAsFailure","showCompleted","setShowCompleted","showCompletedTimer","clearTimeout","direction","mountOnEnter","unmountOnExit","margin","animationData","failureAnimation","successAnimation","onLoopComplete","AnimatedGenerationLoader","memo","loadingTexts","isLoading","lottieAnimation","mainLoadingHeader","retryOrCancelGenerationConfig","loadingStepIndex","setLoadingStepIndex","isDimmerOpen","setIsDimmerOpen","isPendingCancel","setIsPendingCancel","cancelledGeneration","setCancelledGeneration","currDateTime","setCurrDateTime","useInterval","handleLoadingStepCompleted","nextStep","position","modal","marginTop","generationExpiredAt","generationLoadingAt","handleCancelGeneration","initialValue","localStorage","getItem","parse","storedValue","setStoredValue","setValue","valueToStore","Function","setItem","AlertDialog","title","cancelText","confirmText","dontShowAgain","setDontShowAgain","disableDontShowAgain","onCancel","onConfirm","control","checked","onChange","_","label","useConfirmationDialog","onShow","setIsOpen","closeModal","resolveCallback","useRef","alertDialogProps","current","isConfirmed","getUserConfirmation","resolve","alertDialog","ProductStateContext","ProductStateProvider","isSearching","hasError","resultText","_searchStatus","setSearchStatus","searchStatus","useMemo","useProductState","withProductState","UnexpectedError","textHeader","textBody","textCta","handleCta","box","flexGrow","ctaButton","ctaButtonInner","centreText","fontSize","lineHeight","letterSpacing","maxWidth","GeneralError","ImportProductsButton","productSyncStatus","onImportProducts","getImportConfirmation","handleImportProducts","Popup","popperModifiers","SEMANTIC_POPUP_OVERFLOW_PREVENTION_PROPS","trigger","EnhancedButton","drawerWidth","hide","redirectOnClick","cursor","toolbarClosedLogo","marginLeft","marginRight","toolbarOpenLogo","drawer","flexShrink","whiteSpace","drawerOpen","transition","transitions","easing","sharp","duration","enteringScreen","drawerClose","leavingScreen","overflowX","up","drawerListItemIcon","minWidth","drawerListItem","drawerListItemActive","borderRight","borderStyle","boxShadow","appBarShift","menuButtonClosed","mobileMenuButtonClosed","bottom","left","menuButtonOpen","toolbar","mixins","toolbarOpen","toolbarGrow","toolbarRightSectionDesktop","toolbarRightSectionMobile","welcomeUserText","verticalAlignCenter","syncButtonInner","syncButtonInnerIcon","row","ExtraSmallChip","withStyles","Chip","checkIfStringContainsVoucher","voucherDisplay","creditValue","match","SlimDrawer","feature","interview","service_configs","useLocation","history","useHistory","setOpen","closedByDefault","handleDrawerClose","redirectToPath","push","CssBaseline","AppBar","clsx","Toolbar","edge","fill","admin","Link","to","importProducts","creditsLeft","creditProvisionType","reset","inTrial","monthlyCreditAmount","currentCount","totalCount","LinearProgress","computeLoadPercentage","Drawer","paper","alt","TakoSidebarLogo","List","blog_gen_config","beta","feature_flags","enable_insights_page","obj","ListItem","button","hasAccess","ListItemIcon","ListItemText","credits","Box","renderInterviewDrawer","Divider","hlp","startTour","tour","mainCard","common","white","MarketingCopyCard","subtitle","logoSrc","Stack","top","Image","mt","Typography","MarketingCardList","copyTypes","Grid","adCardDetails","xs","sm","md","gap","marketingRoutes","marketingDashboardLogos","facebook_logo","linkedin_logo","google_ads_logo","instagram_logo","headlines_logo","rewriter_logo","category_page_logo","landing_page_logo","eli5_logo","email_logo","video_intro_logo","meta_desc_logo","marketing_angles_logo","press_release_logo","summarise_logo","youtube_title_logo","bio_writer_logo","tabs","filter","_copy","MarketingDashboard","banners","onOpenChat","mobileWarningBannerProps","COPY_TYPES","Object","keys","ad","adType","suggestion_logo","currentTabIndex","setCurrentTabIndex","currentTab","Container","SHOW_MARKETING_TABS","Tabs","_event","newValue","indicatorColor","scrollButtons","marketingTab","Tab","copy","SIZES","HAS_SEEN_PAPERCUPS","HAS_SUBMITTED_LINKEDIN_POST_LINK","PAPERCUPS_POPUP_DELAY","preventOverflow","boundariesElement","BRAND_BACKGROUND_MAX_LIMIT","TOPIC_CHAR_MAX_LIMIT","KEYWORDS_MAX_LIMIT","TOTAL_KEYWORDS_CHAR_MAX_LIMIT","TITLE_CHAR_MAX_LIMIT","TARGET_AUDIENCE_MAX_CHARS","PRODUCT_DETAILS_MAX_CHARS","OUTLINE_CHAR_MAX_LIMIT","NON_SELECTED_INDEX","ORIGINAL_TITLE_INDEX","MIN_EXPECTED_OUTLINES","BLOG_MAX_OUTLINES","MAX_OUTLINE_DETAILS","OUTLINE_DETAILS_MAX_LIMIT","BLOG_MIN_REWRITE_CHARS","BLOG_MAX_REWRITE_CHARS","GOOGLE_HEADLINE_CHAR_MAX_LIMIT","GOOGLE_DESCRIPTION_CHAR_MAX_LIMIT","LINKEDIN_POST_CHAR_MAX_LIMIT","BLOG_PREVIEW_BASE_PATH","DEFAULT_REFERRAL_CREDITS","DEFAULT_LINK_SHARING_CREDITS","months","DEBOUNCED_TIMING","ENABLE_BLOG_BUBBLE_MENU","ENABLE_FLOATING_MENU","ICON_SIZE","ICON_STROKE","ChatSupport","customer","shouldPopupChat","isChatLoaded","setIsChatLoaded","isStorytimeInitialized","customerObj","domain","external_id","metadata","last_name","current_staff","first_name","Storytime","accountId","baseUrl","popupTimeoutRef","Papercups","newMessagePlaceholder","greeting","onChatOpened","setHasSeenPapercups","onChatLoaded","onMessageSent","secondary","typography","h1","h2","h3","h5","h6","caption","outlined","ProtectedRouteWithRedirect","redirectUrl","ProtectedRouteWithFallbackComponent","fallbackComponent","useBroadcast","channelName","onMessage","channel","BroadcastChannel","onmessage","postMessage","ReloadPageOnNewLogin","currentTabUsername","newUsername","warn","showWithSnackbar","onExit","reload","buttonText","snackbarOptions","preventDuplicate","ArticlePreviewRedirect","useQueryParam","StringParam","articlePreviewId","DialogTransition","forwardRef","ref","Fade","SimpleDialog","topDivider","closeButtonSize","disableTopBox","dialogProps","Dialog","TransitionComponent","p","light","InsufficientCreditsModal","modalMessage","redirectTo","disableRedirectButton","loop","humanHandsUpErrorAnimation","str","align","isRedirect","setIsRedirect","DialogContent","py","DialogActions","disableSpacing","rel","target","TakoInsufficientCreditsModal","ShopifyDashboard","lazy","Products","Account","PricingPlan","Support","PageNotFound","Tutorial","AdminPanel","Feedback","Interview","Insights","AdvertisingText","BlogGenerator","BlogOverviewPage","ShopifyReferrals","FreeCredits","ReviewModal","App","productStatusPoller","detectedProductLanguagePoller","initHelpHero","componentDidMount","fetchUser","fetchShopData","pollProductSyncStatus","redirectToLogin","callback","setState","prevState","prevUserState","anonymous","finally","scope","setUser","setLevel","shopDisplay","setIsImporting","err","setImportError","fetchProductSyncStatus","clearInterval","setInterval","hasShopifyProducts","hasInternalProducts","setProductSyncStatus","setTutorialComplete","setDetectedProductLanguageConfig","detected_language","renderSwitchFallback","render","isTutorialComplete","isInTutorial","getHasSeenPapercups","ReactRouterRoute","Route","ThemeProvider","maxSnack","anchorOrigin","vertical","horizontal","Snackbar","fallback","exact","Dimmer","Loader","fetchImportStatus","handleUpdateProductSyncStatus","setWasShownDetectedLanguageConfig","was_detected","was_shown","language","enableShare","userFeatureFlags","interviewConfig","adTextTabs","tab","refreshUser","platformType","shopify","enableLinkedInShare","dashboard_incentive_options","linkedin_post","withRouter","Boolean","hostname","dsn","autoSessionTracking","environment","tracesSampleRate","createBrowserHistory","listen","_location","ReactDOM","StrictMode","getElementById","navigator","serviceWorker","ready","registration","unregister","constructAdDescription","parseAdDescription","desc","trimStart","result","onEnter","_node","_key","reason","snackbarKey","hasSeen","toString","argSort","unsortedArr","compareFn","index","sort","b","stripHtml","s","countCharacters","trimEnd","numberWithCommas","x","isoDateFormat","isIsoDateString","parseISO","getDatetimeSince","currDate","diffDays","diffMonths","getMonth","getFullYear","moment","fromNow","format","formatDateString","delay","savedCallback","scrollToElementById","elementId","element","scrollIntoView","behavior","useNonInitialEffect","effect","deps","initialRender","trimNewlineAndWhitespace","BlogCurrStep","BlogTheme","BlogPOVs","OutlineDetailCreationType","BlogOverviewSortBy","BlogWriteMoreAction","AdTextFormField","GenerateAdTextErrorType","entries","advertising_text_instagram","advertising_text_google","advertising_text_facebook","advertising_text_headline","advertising_text_linkedin","advertising_text_rewriter","advertising_text_category_page","advertising_text_landing_page","advertising_text_eli5","advertising_text_email","advertising_text_video_intro","advertising_text_meta_desc","advertising_text_marketing_angles","advertising_text_press_release","advertising_text_summarise","advertising_text_youtube_title","advertising_text_bio_writer","AD_TEXT_TYPES_WITH_LONG_FORM_PRODUCT_TYPE_FIELD","Set","AD_TEXT_TYPES_WITH_REQUIRED_PRODUCT_TYPE_FIELD","AdvertisementTextActions","BeaconArticleIdSlots","errorToFieldMap","empty_fields","target_audience_too_long","targetAudience","brand_too_long","brand","keywords_too_long","product_type_too_long","product","formExceptionMap","moreDescriptions","tone","advancedOptions","requiredFieldMap"],"mappings":"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","file":"static/js/main.b54349ee.chunk.js","sourcesContent":["import {\n AdTextConfigEntry,\n DashboardIncentiveOptions,\n FeatureFlags,\n PlanCreditProvisionType\n} from '@hypotenuse/common/src/utils/Interfaces'\n\nexport interface Credits {\n left: number\n total: number\n}\n\nexport interface CatalogueIdName {\n catalogueId: string\n catalogueName: string\n}\n\nexport interface InterviewConfig {\n show: boolean\n credits?: number\n voucherDisplay?: string\n}\n\nexport interface InterviewConfigUpdateRequest {\n show?: boolean\n credits?: number\n voucherDisplay?: string\n}\n\nexport interface BulkProductDescriptionsConfig {\n show: boolean\n}\n\nexport interface CouponConfig {\n show: boolean\n}\n\nexport interface DetectedProductLanguageConfig {\n was_detected: boolean\n was_shown: boolean\n language?: string\n}\n\nexport interface BlogGenConfig {\n show: boolean\n}\n\nexport interface ServiceConfigs {\n coupons: CouponConfig\n review_popup: ReviewPopupConfig\n interview: InterviewConfig\n bulk_product_descriptions: BulkProductDescriptionsConfig\n detected_language: DetectedProductLanguageConfig\n feature_flags?: FeatureFlags\n blog_gen_config: BlogGenConfig\n dashboard_incentive_options?: DashboardIncentiveOptions\n}\n\nexport enum PlanTierLogicForBulkPurchaseDuringTrialMode {\n cheapest = 'cheapest'\n}\n\nexport interface User {\n username: string\n displayName?: string\n admin: boolean\n creditsLeft: number\n creditsTotal: number\n monthlyCreditAmount: number\n creditProvisionType: PlanCreditProvisionType\n hasAccess: boolean\n inTrial: boolean\n startTrialDate: string\n completedToursIds: string[]\n dialogs: Dialog[]\n ad_text: AdTextConfigEntry[]\n service_configs: ServiceConfigs\n}\n\nexport interface Dialog {\n id: string\n show: boolean\n}\n\nexport interface ShopStaff {\n last_name: string\n first_name: string\n email: string\n}\n\nexport interface ShopDisplay {\n name: string\n email: string\n domain: string\n currency: string\n country_name: string\n plan_name: string\n}\n\nexport interface ShopDisplayDataAndStaffResponse extends ShopDisplay {\n current_staff?: ShopStaff\n}\n\nexport enum PlanType {\n free = 'free',\n starter = 'starter',\n member = 'member',\n enterprise = 'enterprise'\n}\n\nexport enum Currency {\n usd = 'usd'\n}\n\nexport interface PriceInfo {\n price: number\n credit_amount: number\n}\n\nexport interface PlanTier {\n plan_id: string\n plan_type: PlanType\n plan_display_name: string\n plan_description: string\n plan_price: number\n plan_monthly_credit_amount: number\n plan_incentives: string[]\n pay_as_you_go_prices: PriceInfo[]\n currency: Currency\n credit_provision_type: PlanCreditProvisionType\n discounted_plan_price?: number\n discounted_pay_as_you_go_prices?: PriceInfo[]\n boosted_plan_monthly_credit_amount?: number\n}\n\nexport interface Coupon {\n coupon_id: string\n redemption_expiry_date: string\n coupon_total: number\n coupon_left: number\n maximum_redemption_per_user: number\n applicable_plan_types: PlanType[]\n coupon_benefits: CouponBenefits\n}\n\nexport interface CouponBenefits {\n plan_price_discount_percentage: number\n plan_monthly_credits_boost_percentage: number\n credits_bundle_price_discount_percentage: number\n credits_bundle_amount_boost_percentage: number\n}\n\nexport enum PlanTierSegment {\n top,\n bottom,\n both,\n legacy\n}\n\nexport enum PaymentHistoryStatus {\n active = 'active',\n cancelled = 'cancelled' //This status is only applicable for recurring application charge when user cancel subscription bar\n}\n\nexport interface PaymentHistory {\n id: string\n user: string\n description: string\n currency: Currency\n price: number\n created_at: Date\n status: PaymentHistoryStatus\n}\n\nexport enum TransactionReason {\n charge_product_tagging = 'charge_product_tagging',\n charge_product_descriptions = 'charge_product_descriptions',\n refund_product_tagging = 'refund_product_tagging',\n refund_product_descriptions = 'refund_product_descriptions',\n refund_blog_descriptions = 'refund_blog_descriptions',\n purchase_credits_bundle = 'purchase_credits_bundle',\n purchase_subscription = 'purchase_subscription',\n free_first_time_user = 'free_first_time_user',\n admin_add_credit = 'admin_add_credit',\n admin_deduct_credit = 'admin_deduct_credit'\n}\n\nexport interface CreditTransaction {\n username: string\n createdAt: string\n transactionId: string\n creditsChange: number\n creditsLeftBefore: number\n creditsTotalBefore: number\n reason: TransactionReason\n}\n\nexport interface FilterStatus {\n possibleFilters: FilterTermsGroup[]\n selectedFilters: FilterTermsGroup[]\n}\n\nexport interface FilterTermsGroup {\n text: string\n key: string\n values: string[]\n}\n\nexport interface SearchStatus {\n text: string\n isSearching: boolean\n hasError: boolean\n resultText: string\n}\n\nexport interface SortStatus {\n key: string\n reverse: boolean\n}\n\nexport enum JobStatus {\n loading = 'loading',\n success = 'success',\n new = 'new',\n failed = 'failed',\n notLoaded = 'not-loaded',\n error = 'error'\n}\n\nexport interface ProductSyncStatus {\n currentCount?: number\n totalCount?: number\n status: 'loading' | 'success' | 'new' | 'failed' | 'not-loaded' | 'error'\n message: string\n hasShopifyProducts?: boolean\n hasInternalProducts?: boolean\n}\n\nexport interface DescribeError {\n product_id: string\n error: string\n}\n\nexport interface Job {\n jobId: number\n totalCount?: number\n currentCount: number\n status: JobStatus\n message?: string\n expiryStatus?: JobStatus\n expiryMessage?: string\n updatedAt: string\n metadata?: DescribeError[]\n}\n\nexport enum ProductTabType {\n all = 'all',\n generated = 'generated',\n new = 'new',\n published = 'published',\n archived = 'archived'\n}\nexport interface TabStatus {\n deleteProductOnExport: boolean\n key: ProductTabType\n}\n\nexport interface Tab {\n label: string\n deleteProductOnExport: boolean\n key: ProductTabType\n count?: number\n}\n\nexport interface AppNotification {\n color:\n | 'green'\n | 'red'\n | 'orange'\n | 'yellow'\n | 'olive'\n | 'teal'\n | 'blue'\n | 'violet'\n | 'purple'\n | 'pink'\n | 'brown'\n | 'grey'\n | 'black'\n | undefined\n size:\n | 'large'\n | 'big'\n | 'small'\n | 'mini'\n | 'tiny'\n | 'huge'\n | 'massive'\n | undefined\n header: string\n content: string\n}\n\nexport type NotificationSeverity = 'success' | 'info' | 'warning' | 'error'\n\nexport interface Notification {\n severity?: NotificationSeverity\n content: string\n dateKey: Date // Since Material UI Toast only allow 1 toastbar per component, we need to set a unique key to have multiple toastBar\n duration: number\n renderAction?: Function // For toast bar with action(e.g. undo when clicked)\n}\n\nexport enum WriterLength {\n 'regular',\n 'extended'\n}\n\nexport interface WriterChoice {\n writer: string\n number_selected: number\n}\n\nexport interface DescriptionStyle {\n writer: string\n length: WriterLength\n category: string\n display: string\n disabled: boolean\n count: number\n}\n\nexport interface TranslationConfig {\n language_from: string\n language_to: string\n}\n\nexport enum ApiError {\n unauthorized\n}\n\nexport enum FeedbackType {\n shopifyFeatureRequest = 'shopify_feature_request'\n}\n\nexport interface RedeemedReferral {\n referral_code: string\n redeemed_username: string\n datetime_redeemed: Date\n}\n\nexport interface ReviewTemplateInRequest {\n template_text: string\n selected: boolean\n}\n\nexport interface ReviewTemplate {\n template_id: string\n template_text: string\n selected: boolean\n num_generated?: number\n created_at?: string\n edited?: boolean\n}\n\nexport interface ReviewPopupConfig {\n show: boolean\n total_leave_review_button_clicked: number\n total_review_popup_closed: number\n total_generate_review_template: number\n generated_review_template: string\n}\n\nexport enum ReportType {\n generate = 'generate',\n payment = 'payment'\n}\n\nexport interface ShopifyFAQ {\n question: string\n answer: string\n}\n\nexport interface ShopifyPricingCopy {\n howCreditsWork: string\n subscription: string\n additionalCredits: string\n}\n\nexport interface ShopifyUserPricingDetailsInResponse {\n pricing_copy: ShopifyPricingCopy\n plan_tier_list: PlanTier[]\n active_plan_tier: PlanTier\n subscribed_plan_tier: PlanTier\n trial_days: number\n plan_tier_logic_for_bulk_purchase_during_trial_mode?: PlanTierLogicForBulkPurchaseDuringTrialMode\n credit_provision_type: PlanCreditProvisionType\n next_credit_provision_date: Date\n override_expiry_date?: Date\n}\n\nexport interface ServerError {\n error: string\n error_message: string\n}\n\nexport interface UserPlanTierDetailsUpdateForm {\n key_attr_name: string\n user: string\n override_plan_id?: string\n override_should_give_monthly_credits?: boolean\n override_expiry_date?: Date\n}\n\nexport interface UserPlanTierDetails {\n user: string\n plan_id: string\n plan_list_id: string\n active_subscription_id: string\n last_subscription_credit_transaction_id: string\n subscription_coupon_id?: string\n override_plan_id?: string\n override_should_give_monthly_credits?: boolean\n override_expiry_date?: Date\n}\n\n/* Strength bar component interfaces */\n\n// decalre strength levels\nexport enum KeywordStrength {\n weak = 2,\n average = 4,\n strong = 8\n}\n\n// map strength to color\nexport interface KeywordBarStyle {\n [KeywordStrength.weak]: string\n [KeywordStrength.average]: string\n [KeywordStrength.strong]: string\n}\n\n// props to be passed to strength bar component\nexport interface StrengthBarProps {\n numBars: number\n numColored: number\n color: string\n message: string\n}\n\nexport interface PlanCardProps {\n planTierList?: PlanTier[]\n activePlanTier?: PlanTier\n subscribedPlanTier?: PlanTier\n user?: User\n appliedCouponCode: string\n setNotification: Function\n setLoading: Function\n resetAppliedCouponAndFetchPlanList: Function\n fetchUser: Function\n}\n\nexport interface ShopifyTrialPlanDetailsResponse {\n plan_display_name: string\n plan_description: string\n plan_incentives: string[]\n plan_free_credits: number\n}\n","import React from 'react'\nimport { createStyles, Theme, makeStyles } from '@material-ui/core/styles'\nimport { capitalize } from 'lodash-es'\n\nimport MuiButton, {\n ButtonProps as MuiButtonProps\n} from '@material-ui/core/Button'\nimport { CircularProgress } from '@material-ui/core'\n\n// Import this if you need coloured outlined or contained that is\n// not within MUI's default primary, secondary or default color.\n// To customize the respective colors, declare them in your theme.\n// Adapted off: https://stackoverflow.com/a/64560059.\nexport type ButtonColor =\n | 'primary'\n | 'secondary'\n | 'error'\n | 'success'\n | 'warning'\n | 'default'\n | 'inherit'\n | 'info'\n\nexport type ButtonVariant = 'contained' | 'outlined'\n\ninterface ButtonProps extends Omit {\n color: ButtonColor\n loading?: boolean\n}\n\nconst useStyles = makeStyles((theme) =>\n createStyles({\n outlinedSuccess: {\n borderColor: theme.palette.success.main,\n color: theme.palette.success.main\n },\n outlinedError: {\n borderColor: theme.palette.error.main,\n color: theme.palette.error.main\n },\n outlinedWarning: {\n borderColor: theme.palette.warning.main,\n color: theme.palette.warning.main\n },\n outlinedInfo: {\n borderColor: theme.palette.info.main,\n color: theme.palette.info.main\n },\n containedSuccess: {\n backgroundColor: theme.palette.success.main,\n color: theme.palette.success.contrastText,\n '&:hover': {\n backgroundColor: theme.palette.success.dark\n }\n },\n containedError: {\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText,\n '&:hover': {\n backgroundColor: theme.palette.error.dark\n }\n },\n containedWarning: {\n backgroundColor: theme.palette.warning.main,\n color: theme.palette.warning.contrastText,\n '&:hover': {\n backgroundColor: theme.palette.warning.dark\n }\n },\n containedInfo: {\n backgroundColor: theme.palette.info.main,\n color: theme.palette.info.contrastText,\n '&:hover': {\n backgroundColor: theme.palette.info.dark\n }\n }\n })\n)\n\nconst Button: React.FC = (props) => {\n const { children, color, endIcon, loading, ...restProps } = props\n const classes = useStyles()\n const className = classes[`${restProps.variant}${capitalize(color)}`]\n const colorProp =\n ['default', 'inherit', 'primary', 'secondary'].indexOf(color) > -1\n ? (color as 'default' | 'inherit' | 'primary' | 'secondary')\n : undefined\n return (\n ) || endIcon\n }\n >\n {children}\n \n )\n}\n\nButton.displayName = 'Button'\n\nexport default Button\n","export { Analytics as default } from '@hypotenuse/common/src/analytics/Analytics'\n","import React, { useEffect, useState } from 'react'\nimport { apiClient } from '@hypotenuse/common/src/utils/ApiClient'\nimport UnauthorizedError from './UnauthorizedError'\nimport { ApiError } from '../utils/Interfaces'\nimport { AxiosError } from 'axios'\n\ninterface Props {\n children: JSX.Element\n}\n\nexport function ApiErrorHandler(props: Props) {\n const [error, setError] = useState()\n\n useEffect(() => {\n apiClient.interceptors.response.use(\n (res) => res,\n (error) => {\n const { status } = error.response\n if (status === 401) {\n setError(ApiError.unauthorized)\n }\n return Promise.reject(error)\n }\n )\n }, [])\n\n return error === ApiError.unauthorized ? (\n \n ) : (\n props.children\n )\n}\n\nexport function ApiErrorCatcher(\n func: (error: AxiosError) => void\n): (error: AxiosError) => void {\n return (error) => {\n if (error.response?.status === 401) {\n // This occurs when unauthorized happens, we don't want to do anything as the browser\n // will redirect for authorization.\n return\n }\n return func(error)\n }\n}\n","/**\n * Utility function to enable using Notistack's `useSnackbar` outside React components.\n * Reference: https://github.com/iamhosseindhv/notistack/issues/30#issuecomment-542863653\n *\n * The core of this workaround: We create a placeholder for the result of `useSnackbar()`.\n * When mounted as a child of a `SnackbarProvider`, the `SnackbarUtilsConfigurator` sets `useSnackbarRef`, giving us\n * access to all of Notistack's functionality without explicitly calling the `useSnackbar` hook\n */\nimport {\n useSnackbar,\n WithSnackbarProps,\n OptionsObject,\n SnackbarKey,\n SnackbarMessage,\n VariantType\n} from 'notistack'\nimport { Button } from '@material-ui/core'\nimport React from 'react'\nimport styled from '@emotion/styled'\n\nlet openChat: () => void\ninterface InnerConfiguratorProps {\n setUseSnackbarRef: (showSnackbar: WithSnackbarProps) => void\n openChat: () => void\n}\n\nconst InnerSnackbarUtilsConfigurator: React.FC = (\n props: InnerConfiguratorProps\n) => {\n props.setUseSnackbarRef(useSnackbar())\n openChat = props.openChat\n return null\n}\n\nlet useSnackbarRef: WithSnackbarProps\nconst setUseSnackbarRef = (useSnackbarRefProp: WithSnackbarProps) => {\n useSnackbarRef = useSnackbarRefProp\n}\n\ninterface SnackbarConfiguratorProps {\n openChat: () => void\n}\n\nexport const SnackbarConfigurator = (props: SnackbarConfiguratorProps) => (\n \n)\n\n// region Per-variant options\nexport type VariantOptions = {\n [key in VariantType]?: OptionsObject\n}\n\n/**\n * Defines default options for each snackbar variant, overriding the global default snackbar options\n * @type {{error: {action: (key) => JSX.Element, autoHideDuration: null}}}\n */\nconst defaultVariantOptions: VariantOptions = {\n error: {\n autoHideDuration: 30000,\n action: (key) => (\n <>\n useSnackbarRef.closeSnackbar(key)}\n style={{ fontWeight: 'bold' }}\n >\n Dismiss\n \n {\n openChat()\n useSnackbarRef.closeSnackbar(key)\n }}\n style={{ fontWeight: 'bold' }}\n >\n Get Help\n \n \n )\n }\n}\n// endregion\n\n// Wrapper around snackbar content to prevent overflow by truncating using ellipses\nconst SnackbarContentEllipsisDiv = styled.div`\n // Limit width of snackbar content to prevent horizontal overflow.\n max-width: 90vw;\n max-height: 30vh;\n\n // Vertical scroll\n overflow-y: auto;\n\n font-size: 16px;\n\n // Prevent horizontal scrolling\n overflow-x: hidden;\n\n // Not sure if this is necessary\n text-overflow: ellipsis;\n`\n\nexport const snackbar = {\n show(msg: SnackbarMessage, options?: OptionsObject): SnackbarKey {\n const variant = options?.variant\n const variantOptions = defaultVariantOptions[variant ?? 'default'] ?? {}\n const mergedOptions = { ...variantOptions, ...options }\n return useSnackbarRef.enqueueSnackbar(\n {msg},\n mergedOptions\n )\n },\n close(key?: SnackbarKey) {\n useSnackbarRef.closeSnackbar(key)\n }\n}\n\nexport default snackbar\n","export interface PageStatus {\n totalItems: number\n currentPage: number\n pageSize: number\n}\n\n/**\n * This enum stores all common error types that are\n * shared between shopify and premium app.\n */\nexport enum ServerErrorType {\n outOfCredits = 'Out of credits',\n tooManyProductsSpecified = 'Too many products specified',\n noPermissionsDescribe = 'Describe Permission Error'\n}\n\nexport enum DescribeErrorType {\n adTextFieldsError = 'Ad text fields error',\n blogFieldsError = 'Blog fields error',\n productFieldsError = 'Product fields error'\n}\n\nexport interface DescribeError {\n product_id: string\n error: string\n}\n\nexport enum JobStatus {\n loading = 'loading',\n success = 'success',\n new = 'new',\n failed = 'failed',\n notLoaded = 'not-loaded',\n error = 'error'\n}\n\nexport interface Job {\n jobId: string\n totalCount: number\n currentCount: number\n status: JobStatus\n message?: string\n expiryStatus?: JobStatus\n expiryMessage?: string\n updatedAt: string\n createdAt: string\n metadata?: DescribeError[]\n jobName: string\n catalogueId?: string\n}\n\nexport interface DashboardIncentiveOptions {\n /**\n * This interface contains the feature flags to show on the dashboard.\n */\n linkedin_post?: boolean\n}\n\nexport interface FeatureFlags {\n // TODO: These probably don't need to be optional (they all have defaults on the backend)\n /**\n * Users with this flag set to True should see no Hypotenuse branding on the UI\n */\n white_label_ui: boolean\n multi_step_products: boolean\n add_import_export_products: boolean\n add_single_product: boolean\n minimize_product_card: boolean\n hide_navbar_logo: boolean\n show_import_template: boolean\n show_export_advanced_options: boolean\n enable_insights_page: boolean\n product_card_brand_text: string\n catalogue_tags_input_placeholder_text: string\n select_description_style_text?: string\n bubble_selected_descriptions_on_done_tab: boolean\n enable_seo_keywords_highlighting: boolean\n enable_catalogue_lvl_keywords_to_avoid: boolean\n enable_product_lvl_seo_keywords: boolean\n enable_product_lvl_keywords_to_avoid: boolean\n enable_image_import: boolean\n enable_review: boolean\n show_hershey_copy_type: boolean\n show_ubs_copy_type: boolean\n disable_add_product_if_no_products: boolean\n enable_image_generation: boolean\n enable_write_more: boolean\n}\n\n/**\n * This is an interface from globalappdata pulled from the backend misc table\n * that allows us to dynamically set global-level feature flags.\n * TODO: the feature flags in Constants.tsx should be moved here.\n */\nexport interface GlobalFeatureFlags {\n enable_image_superresolution?: boolean\n enable_linkedin_share?: boolean\n enable_bulk_workflows?: boolean\n}\n\n// region Charts & Chart Data\nexport interface Scalar {\n value: number | string\n label: string\n}\n\nexport type LineDatum = string | number\n\nexport interface Point2D {\n x: LineDatum\n y: LineDatum\n}\n\ninterface LineData {\n id: string\n data: Point2D[]\n}\n\nexport interface LineChartData {\n lines: LineData[]\n}\n\nexport interface PieSector {\n id: string\n label: string\n value: number\n color?: string\n}\n\nexport interface PieChartData {\n sectors: PieSector[]\n}\n\nexport enum TimePeriod {\n week = 'week',\n month = 'month',\n year = 'year'\n}\n\nexport interface CreditsHistoryLineChartData {\n xLabel: string\n yLabel: string\n lines: LineData[]\n}\n\nexport interface CreditsHistory {\n timePeriod: TimePeriod\n // TODO: Refactor LineChart on Account page to use the LineChartData interface\n lineChart: CreditsHistoryLineChartData\n}\n// endregion\n\n// region Action Points\nexport enum ActionPointSeverity {\n info = 'Info',\n warning = 'Warning',\n severe = 'Severe'\n}\n\n/**\n * The entity that an action point refers to (e.g. product, store, etc.)\n */\nexport interface ActionPointSubject {\n /**\n * Unique identifier for the entity\n */\n id: string\n /**\n * Human-readable name for the entity\n */\n display_name?: string\n}\n\nexport interface ActionPoint {\n /**\n * Short description of the action point\n */\n issue: string\n /**\n * The numeric score assigned to the action point\n */\n score: number\n severity: ActionPointSeverity\n /**\n * The entity that the action point refers to\n */\n subject: ActionPointSubject\n /**\n * URL for the action point to lead to\n */\n url?: string\n /**\n * Additional information about the action point\n */\n detail?: string\n}\n// endregion\n\nexport interface OrganizationUpdateForm {\n displayName: string\n}\n\nexport enum PlanCreditProvisionType {\n add = 'add',\n reset = 'reset'\n}\n\nexport enum PlatformType {\n shopify = 'shopify',\n premium = 'premium'\n}\n\n/**\n * Ad text Config Interface\n */\nexport interface AdTextConfigEntry {\n type: string\n product_id: string\n}\n\nexport interface BlogGenHelperText {\n accordionSubtitleOneText?: string\n accordionSubtitleTwoText?: string\n accordionSubtitleThreeText?: string\n brandBackgroundHelperText?: string\n brandBackgroundPlaceholder?: string\n productDetailsHelperText?: string\n productDetailsPlaceholder?: string\n titleHelperText?: string\n titlePlaceholder?: string\n topicHelperText?: string\n topicPlaceholder?: string\n targetAudienceHelperText?: string\n targetAudiencePlaceholder?: string\n outlineHelperText?: string\n outlinePlaceholders?: string[]\n outlineDetailsPlaceholder?: string\n outlineHeadingPlaceholder?: string\n keywordsHelperText?: string\n keywordsPlaceholder?: string\n}\nexport interface GlobalAppData {\n default_description_downvote_reasons: string[]\n blog_gen_helper_text: BlogGenHelperText\n blog_tone_options: string[]\n global_feature_flags: GlobalFeatureFlags\n}\n\nexport interface LanguageDetail {\n code: string\n name: string\n}\n\nexport interface TranslationLanguages {\n input: LanguageDetail[]\n output: LanguageDetail[]\n}\n\nexport interface TranslationConfig {\n readonly show?: boolean\n language_from?: string\n language_to?: string\n}\n\nexport interface TranslationConfigUpdateForm {\n language_from?: string\n language_to?: string\n}\n\nexport interface PaginateableEntity {\n last_key: K\n}\n\n/**\n * Social share\n */\n\nexport enum SocialShareMedia {\n facebook = 'Facebook',\n twitter = 'Twitter',\n linkedin = 'LinkedIn'\n}\n\n//============= Useful Abstract Types =============\n\n/**\n * Extract a type containing un-assignable properties of T not assignable to U\n * e.g. Without<{a: number, b: string}, {a: number}> = {b: never}\n *\n * Source: https://stackoverflow.com/a/53229567\n */\nexport type Without = { [P in Exclude]?: never }\n/**\n * Extract a type containing either properties of T or U but not both and at least one of T or U\n *\n * e.g.\n *\n * const foo: XOR<{a: number}, {c: number}> = {a: 1} // OK\n *\n * const bar: XOR<{a: number}, {c: number}> = {c: 2} // OK\n *\n * const foobar: XOR<{a: number}, {c: number}> = {a: 1, c: 2} // Error\n *\n * const barfoo: XOR<{a: number}, {c: number}> = {} // Error\n *\n * Source: https://stackoverflow.com/a/53229567\n */\nexport type XOR = T | U extends object\n ? (Without & U) | (Without & T)\n : T | U\n\n/**\n * Extract a type containing union of keys of T\n *\n * Source: https://tsplay.dev/wgLpBN\n */\nexport type UnionKeys = T extends T ? keyof T : never\n\n/**\n * Expand T to help intellisense.\n *\n * Source: https://tsplay.dev/wgLpBN\n */\nexport type Expand = T extends T ? { [K in keyof T]: T[K] } : never\n\n/**\n * Extract a type allowing exactly one type passed in the generic types array.\n *\n * e.g.\n *\n * const foo: OneOf<[{a: number}, {b: string}, {c: boolean}]> = {a: 1} // OK\n *\n * const bar: OneOf<[{a: number}, {b: string}, {c: boolean}]> = {b: '1'} // OK\n *\n * const foobar: OneOf<[{a: number}, {b: string}, {c: boolean}]> = {a: 1, b: '1'} // Error\n *\n * const barfoo: OneOf<[{a: number}, {b: string}, {c: boolean}]> = {} // Error\n */\nexport type OneOf = {\n [K in keyof T]: Expand<\n T[K] & Partial, keyof T[K]>, never>>\n >\n}[number]\n","import React, { useCallback, useEffect, useState } from 'react'\nimport LogRocket from 'logrocket'\nimport setupLogRocketReact from 'logrocket-react'\nimport * as Sentry from '@sentry/browser'\nimport ReactGA from 'react-ga'\nimport { handleTrackPageVisit } from '../api/Analytics'\n\nexport interface TrackEventParams {\n isError: boolean\n}\n\nexport interface AnalyticsInterface {\n setUsername: (username?: string) => void\n /**\n * Interface derived from Google Analytics SDK\n * @param {string} category Broad category of the event\n * @param {string} event Specific event\n * @param {TrackEventParams} params Additional info about the even that affects how the event is handled/tracked\n */\n trackEvent: (\n category: string,\n event: string,\n params?: TrackEventParams\n ) => Promise\n trackPageView: (path: string) => void\n}\n\nexport const AnalyticsContext = React.createContext<\n AnalyticsInterface | undefined\n>(undefined)\n\nexport interface AnalyticsProviderProps {\n disableTracking?: boolean\n username?: string\n logRocketAppId: string\n logRocketExcludedUsernamePatterns?: RegExp[]\n googleAnalyticsTrackingCode: string\n}\n\nexport const AnalyticsProvider: React.FC = (props) => {\n // region Props\n const {\n children,\n username: initialUsername,\n disableTracking,\n logRocketAppId,\n logRocketExcludedUsernamePatterns,\n googleAnalyticsTrackingCode\n } = props\n // endregion\n\n // region State\n const [username, setUsername] = useState(initialUsername)\n const [\n isIdentifiedAnalyticsInitialized,\n setIsIdentifiedAnalyticsInitialized\n ] = useState(false)\n // This state is used to alert us about potentially missing LogRocket sessions\n const [isLogRocketInit, setIsLogRocketInit] = useState(false)\n // endregion\n\n // region Private handler functions\n /**\n * Set the active user for analytics services\n */\n const identify = useCallback(\n async (username: string): Promise => {\n if (disableTracking) return\n\n try {\n LogRocket.identify(username, { name: username })\n ReactGA.set({ userId: username })\n Sentry.setUser({\n username,\n email: username,\n id: username,\n ip_address: '{{auto}}'\n })\n } catch (error) {\n Sentry.captureException(error, { level: 'error' })\n }\n },\n [disableTracking]\n )\n /**\n * Check whether a given user is excluded from LogRocket tracking\n */\n const isUsernameExcludedFromLogRocketTracking = useCallback(\n (username: string): boolean => {\n return (\n logRocketExcludedUsernamePatterns\n ?.map((pattern) => pattern.test(username))\n ?.some((v) => v) || false\n )\n },\n [logRocketExcludedUsernamePatterns]\n )\n /**\n * Initialize analytics services anonymously i.e. without attaching to a user\n */\n const initializeAnalyticsAnonymous = useCallback(async (): Promise => {\n if (disableTracking) return\n\n try {\n // Google Analytics (GA) for platform analytics\n ReactGA.initialize(googleAnalyticsTrackingCode)\n } catch (error) {\n if (error) {\n Sentry.captureException(error, { level: 'error' })\n }\n }\n }, [disableTracking, googleAnalyticsTrackingCode])\n /**\n * Initialize analytics services that require user identification\n */\n const initializeAnalyticsWithUsername = useCallback(\n async (username: string): Promise => {\n if (disableTracking) return\n\n // TODO: Implement anonymous LogRocket tracking when user is not available (how would we know?)\n // Initialize LogRocket & Identify user.\n // We try to catch any missing LogRocket sessions by first checking if there was any error thrown from the init\n // methods, or whether the methods were even run properly.\n if (!isUsernameExcludedFromLogRocketTracking(username)) {\n LogRocket.init(logRocketAppId)\n setupLogRocketReact(LogRocket)\n setIsLogRocketInit(true)\n }\n\n // Attach user to analytics services after they've been initialized\n await identify(username)\n },\n [\n disableTracking,\n identify,\n isUsernameExcludedFromLogRocketTracking,\n logRocketAppId\n ]\n )\n const checkIfLogRocketInitAndThrowSentryError = useCallback(async (): Promise => {\n if (!isLogRocketInit) {\n Sentry.captureMessage(\n 'A tracking function was called without being initialised',\n { level: 'error' }\n )\n }\n }, [isLogRocketInit])\n // endregion\n\n // region Effects\n useEffect(() => {\n // When the username prop passed to the provider changes, update the local copy\n setUsername(initialUsername)\n }, [initialUsername])\n useEffect(() => {\n // Initialize anonymous analytics services immediately on load\n void initializeAnalyticsAnonymous()\n }, [initializeAnalyticsAnonymous])\n useEffect(() => {\n if (!username) return\n\n // If analytics services are not already initialized, do so and attach the current user\n if (!isIdentifiedAnalyticsInitialized) {\n initializeAnalyticsWithUsername(username).then(() => {\n setIsIdentifiedAnalyticsInitialized(true)\n })\n }\n // Otherwise, just attach the current user to analytics services\n else {\n void identify(username)\n }\n }, [\n identify,\n initializeAnalyticsWithUsername,\n isIdentifiedAnalyticsInitialized,\n username\n ])\n // endregion\n\n // region Public handler functions\n const trackEvent = useCallback(\n async (\n category: string,\n event: string,\n params?: TrackEventParams\n ): Promise => {\n if (disableTracking) return\n\n if (!(username && isUsernameExcludedFromLogRocketTracking(username))) {\n await checkIfLogRocketInitAndThrowSentryError()\n LogRocket.track(event)\n }\n if (params?.isError) Sentry.captureMessage(event)\n\n ReactGA.event({ category: category, action: event })\n },\n [\n username,\n disableTracking,\n isUsernameExcludedFromLogRocketTracking,\n checkIfLogRocketInitAndThrowSentryError\n ]\n )\n const trackPageView = async (path: string): Promise => {\n // TODO: Use router/history(?) to automatically track route changes\n if (disableTracking) return\n\n await handleTrackPageVisit(path)\n ReactGA.pageview(path)\n }\n // endregion\n\n return (\n \n {children}\n \n )\n}\n\nexport const useAnalytics = () => {\n const context = React.useContext(AnalyticsContext)\n if (context === undefined) {\n throw new Error('useAnalytics must be used within a AnalyticsProvider')\n }\n return context\n}\n\n// region Backward compatibility\n/**\n * This section provides backward compatibility with the static `Analytics` class interface.\n * Prefer using the `useAnalytics` hook directly where possible.\n */\n\ninterface ConfiguratorProps {\n setUseAnalyticsRef: (analytics: AnalyticsInterface) => void\n}\n\nconst InnerAnalyticsConfigurator: React.FC = (\n props: ConfiguratorProps\n) => {\n props.setUseAnalyticsRef(useAnalytics())\n return null\n}\n\nlet useAnalyticsRef: AnalyticsInterface | undefined\nconst setUseAnalyticsRef = (useAnalyticsRefProp: AnalyticsInterface) => {\n useAnalyticsRef = useAnalyticsRefProp\n}\n\n/**\n * This component exposes the functionality of the `useAnalytics` hook to be usable outside React function components.\n * @example\n * \n * \n * \n * \n *\n * Elsewhere, use `Analytics` to access the props returned by\n */\nexport const AnalyticsConfigurator = () => (\n \n)\n\nconst notConfiguredError = new Error(\n 'Attempted to call a method of the static Analytics instance, but either AnalyticsProvider or ' +\n 'AnalyticsConfigurator is not present in the component hierarchy.'\n)\n/**\n * Convenience wrapper to expose the contents of the `useAnalytics` hook to be usable outside React function components.\n * @deprecated This wrapper is present for backward compatibility and its use in new components should be limited.\n * Prefer using the hook directly so that React can correctly handle re-rendering on state/prop updates.\n */\nexport const Analytics = {\n trackEvent: (category: string, event: string, params?: TrackEventParams) => {\n if (useAnalyticsRef === undefined) {\n throw notConfiguredError\n }\n return useAnalyticsRef.trackEvent(category, event, params)\n },\n trackPageView: (path: string) => {\n if (useAnalyticsRef === undefined) {\n throw notConfiguredError\n }\n return useAnalyticsRef.trackPageView(path)\n }\n}\n// endregion\n","/**\n * Cost info for generating content for a single product\n */\nexport interface ContentGenerationCreditCostInfo {\n product_id: string\n cost: number\n is_free_regenerate: boolean\n}\n\n/**\n * Cost info for generating content for a batch of products\n */\nexport interface BatchContentGenerationCreditCostInfo {\n total_cost: number\n product_id_cost_info_map: { string: ContentGenerationCreditCostInfo }\n}\n\n/**\n * 'Legacy' interface (still technically in use on the backend) for cost info\n * for generating content for products.\n *\n * @deprecated Use {@link BatchContentGenerationCreditCostInfo} or\n * {@link ContentGenerationCreditCostInfo} instead\n */\nexport interface ProductDescribeCostInResponse {\n describe_cost: number\n is_free_regenerate?: boolean\n product_ids: string[]\n error_message?: string\n}\n\n/**\n * Granular content generation subtypes\n */\nexport enum ContentGenerationType {\n // Product descriptions\n product_descriptions = 'product_descriptions',\n\n // Blog\n blog_title = 'blog_title',\n blog_outline = 'blog_outline',\n blog_introduction = 'blog_introduction',\n blog_paragraph = 'blog_paragraph',\n blog_conclusion = 'blog_conclusion',\n blog_write_more = 'blog_write_more',\n\n // Ads\n advertising_text_instagram = 'advertising_text_instagram',\n advertising_text_google = 'advertising_text_google',\n advertising_text_facebook = 'advertising_text_facebook',\n advertising_text_headline = 'advertising_text_headline',\n advertising_text_linkedin = 'advertising_text_linkedin',\n advertising_text_rewriter = 'advertising_text_rewriter',\n advertising_text_category_page = 'advertising_text_category_page',\n advertising_text_landing_page = 'advertising_text_landing_page',\n advertising_text_eli5 = 'advertising_text_eli5',\n advertising_text_email = 'advertising_text_email',\n advertising_text_video_intro = 'advertising_text_video_intro',\n advertising_text_meta_desc = 'advertising_text_meta_desc',\n advertising_text_marketing_angles = 'advertising_text_marketing_angles',\n advertising_text_press_release = 'advertising_text_press_release',\n advertising_text_summarise = 'advertising_text_summarise',\n advertising_text_youtube_title = 'advertising_text_youtube_title',\n advertising_text_bio_writer = 'advertising_text_bio_writer',\n\n // Image generation\n text_to_image_generation = 'text_to_image_generation'\n}\n\nexport enum FeedbackContentGenerationType {\n // Blog\n blog_write_more = 'blog_write_more',\n\n // Image generation\n text_to_image_generation = 'text_to_image_generation',\n text_to_image_generation_batch = 'text_to_image_generation_batch',\n\n // Ads\n advertising_text_instagram = 'advertising_text_instagram',\n advertising_text_google = 'advertising_text_google',\n advertising_text_facebook = 'advertising_text_facebook',\n advertising_text_headline = 'advertising_text_headline',\n advertising_text_linkedin = 'advertising_text_linkedin',\n advertising_text_rewriter = 'advertising_text_rewriter',\n advertising_text_category_page = 'advertising_text_category_page',\n advertising_text_landing_page = 'advertising_text_landing_page',\n advertising_text_eli5 = 'advertising_text_eli5',\n advertising_text_email = 'advertising_text_email',\n advertising_text_video_intro = 'advertising_text_video_intro',\n advertising_text_meta_desc = 'advertising_text_meta_desc',\n advertising_text_marketing_angles = 'advertising_text_marketing_angles',\n advertising_text_press_release = 'advertising_text_press_release',\n advertising_text_summarise = 'advertising_text_summarise',\n advertising_text_youtube_title = 'advertising_text_youtube_title',\n advertising_text_bio_writer = 'advertising_text_bio_writer'\n}\n\n/**\n * Top-level content generation types\n */\nexport enum ContentGenerationCategory {\n product_descriptions = 'product_descriptions',\n blog = 'blog',\n advertising = 'advertising'\n}\n\n/**\n * Generation status filter key\n */\nexport enum GenerationStatusFilterKey {\n all = 'all',\n generated = 'generated',\n not_generated = 'not_generated',\n generation_error = 'generation_error',\n marked_as_done = 'marked_as_done'\n}\n","import { useTheme } from '@material-ui/core/styles'\nimport { Theme, useMediaQuery } from '@material-ui/core'\n\n/**\n * Definition of the mobile breakpoint.\n * @param {Theme} theme\n * @return {string}\n */\nexport const getMobileBreakpoint = (theme: Theme) =>\n theme.breakpoints.down('sm')\n\n/**\n * Centralized utility hook for checking whether the viewport width\n * is equal to or smaller than the 'mobile' breakpoint.\n */\nexport const useIsMobile = (): boolean => {\n const theme = useTheme()\n return useMediaQuery(getMobileBreakpoint(theme))\n}\n","import { Message } from '@papercups-io/chat-widget/dist/api'\nimport { BlogWriteMoreAction } from '../interfaces/Blog'\nimport { Description } from '../interfaces/Products'\nimport { apiClient } from '../utils/ApiClient'\nimport { ActionPoint } from '../utils/Interfaces'\n\nexport const handleTrackAdvertisingTextAdvancedOptionsClick = (\n isOpen: boolean\n) => {\n return apiClient.post('/analytics/advertising/advanced_options', null, {\n params: {\n is_open: isOpen\n }\n })\n}\n\nexport const trackCustomerSupportMessageReceived = (message: Message) => {\n const messageReceived = message.body\n return apiClient.post(\n '/analytics/customer_support_message',\n JSON.stringify(messageReceived)\n )\n}\n\nexport const handleTrackDescriptionSelect = (\n description: Description,\n product_id: string\n) => {\n const data = {\n description: description,\n product_id: product_id\n }\n return apiClient.post('/analytics/product/description_select', data)\n}\n\nexport const handleTrackDescriptionCopy = (\n description: Description,\n productId: string\n) => {\n return apiClient.post('/analytics/product/description_copy', {\n description: description,\n product_id: productId\n })\n}\n\nexport const handleTrackDescriptionDelete = (\n description: Description,\n productId: string\n) => {\n return apiClient.post('/analytics/product/description_delete', {\n description: description,\n product_id: productId\n })\n}\n\nexport const handleTrackCustomerContactUs = () => {\n return apiClient.post('/analytics/customer_contact_us')\n}\n\n/**\n * Log to analytics that a user clicked 'learn more' on a feature.\n * @param {string} feature The feature the user clicked 'learn more' on\n */\nexport const handleTrackCustomerLearnMore = (feature?: string) => {\n return apiClient.post('/analytics/customer_learn_more', null, {\n params: { feature }\n })\n}\n\nexport const handleTrackCustomerWantsCustomImportFile = () => {\n return apiClient.post('/analytics/customer_custom_file_import')\n}\n\nexport const handleTrackCustomerViewApiDocs = () => {\n return apiClient.post('/analytics/customer_view_api_docs')\n}\n\nexport const handleTrackEnterprisePlanContactUs = () => {\n return apiClient.post('/analytics/customer_enterprise_plan_contact_us')\n}\n\n// ===== Insights dashboard analytics =====\n/**\n * To be invoked when the action button on an action point is clicked\n * @param {ActionPoint} action_point The action point that was clicked\n */\nexport const handleTrackInsightsActionPointClick = async (\n action_point: ActionPoint\n) => {\n return apiClient.post(\n '/analytics/insights_action_point_click',\n action_point\n )\n}\n\n// ===== General Analytics =====\nexport const handleTrackPageVisit = async (pathname: string) => {\n return apiClient\n .post('/analytics/page_visit', null, {\n params: {\n pathname: pathname\n }\n })\n .then((_resp) => {})\n .catch((error) => {\n console.log(error)\n })\n}\n\n// ===== Blog Analytics =====\nexport const handleTrackExportBlogPosts = async (\n blogId: string\n): Promise => {\n await apiClient.post(\n '/analytics/blog/export_posts',\n {},\n {\n params: { blog_id: blogId, export_type: 'docx' }\n }\n )\n}\n\nexport const handleTrackWriteMoreAction = async (\n blogId: string,\n blogWriteMoreAction: BlogWriteMoreAction\n): Promise => {\n await apiClient.post(\n '/analytics/blog/blog_write_more_action',\n {},\n {\n params: { blog_id: blogId, blog_write_more_action: blogWriteMoreAction }\n }\n )\n}\n\n// ===== Text to Image Generation Analytics =====\nexport const handleTrackTextToImageDownload = async (\n text_prompt: string,\n imageId: string\n): Promise => {\n await apiClient.post(\n '/analytics/text_to_image/text_to_image_download',\n {},\n {\n params: { text_prompt, image_id: imageId }\n }\n )\n}\n\n// ===== Referral Analytics =====\nexport const handleTrackSocialPostLinkSubmitted = async (\n shareUrl: string\n): Promise => {\n await apiClient.post(\n '/analytics/blog/blog_social_post_link_submitted',\n {},\n {\n params: { share_url: shareUrl }\n }\n )\n}\n","/**\n * Low-level interface to the content generation API.\n * Avoid using these functions directly. Instead, prefer the higher\n * level generation API hook or HOC.\n */\nimport { apiClient } from '../utils/ApiClient'\nimport { AxiosRequestConfig } from 'axios'\nimport {\n AdTextFolderSearchQuery,\n AdTextType\n} from '../interfaces/AdvertisingText'\nimport { ContentGenerationType } from '../interfaces/ContentGeneration'\nimport { Description } from '../interfaces/Products'\n\n/**\n * Wrapper around AxiosRequestConfig to add typing for the `params` property\n */\nexport interface IGenerationAPIRequestConfig\n extends Omit, 'params'> {\n params?: Params\n}\n\n// ===== Generation API =====\n/**\n * URL Query params for the content generation API endpoint\n */\nexport interface IGenerationAPIParams {\n // TODO: Specifying both generation_type and copy_type is redundant - unify.\n /**\n * The type of content to generate\n */\n generation_type?: ContentGenerationType\n /**\n * Ad text copy type (to be deprecated)\n * @deprecated\n */\n copy_type?: AdTextType\n /**\n * Product ID to be sent as query parameter to escape (starlette's) FastAPI's issue with escape sequencing\n * See: https://github.com/encode/starlette/issues/826\n */\n productId: string\n}\n\n/**\n * Request body for the content generation API endpoint\n */\nexport type IGenerationAPIPayload = [number, number][]\n\n/**\n * Call the content generation API.\n * Take note that this function doesn't handle any errors that the endpoint may return.\n * Errors are currently handled in the GenerationAPIProvider hook where this fn is used. If you're\n * calling this function directly, make sure you handle errors such as rate-limiting, credit exhaustion, etc.\n */\nexport const apiGenerateContent = async (\n requestConfig: IGenerationAPIRequestConfig<\n IGenerationAPIPayload,\n IGenerationAPIParams\n >\n) => {\n const { data, ...config } = requestConfig\n return await apiClient.post(\n '/describe/product/', // productId as a query parameter in finalConfig.params\n data,\n config\n )\n}\n\n// ===== Rewrite API =====\n/**\n * Common options for all generation API handlers\n * URL Query params for the rewrite API endpoint\n */\nexport interface IRewriteAPIParams {\n // Nothing here for now\n}\n\n/**\n * Request body for the rewrite API endpoint\n */\nexport interface IRewriteAPIPayload {\n /**\n * Original content to be rewritten\n */\n original_content: string\n}\n\n/**\n * Call the rewrite API.\n * Take note that this function doesn't handle any errors that the endpoint may return.\n * Errors are currently handled in the GenerationAPIProvider hook where this fn is used. If you're\n * calling this function directly, make sure you handle errors such as rate-limiting, credit exhaustion, etc.\n */\nexport const apiRewriteText = async (\n requestConfig: IGenerationAPIRequestConfig<\n IRewriteAPIParams,\n IRewriteAPIPayload\n >\n) => {\n const { data, ...config } = requestConfig\n return await apiClient.post(\n '/rewrite', // productId as a query parameter in finalConfig.params\n data,\n config\n )\n}\n\n// ==== Write more API =====\n/**\n * Context for content generation endpoint\n */\nexport interface WriteMoreGenerationContext {\n prefix: string\n suffix?: string\n should_continue_line: boolean\n}\n\n/**\n * Body for the write more API endpoint\n */\nexport type IWriteMoreAPIPayload = WriteMoreGenerationContext\n\n/**\n * Axios request config for the write more API endpoint. Has a different payload\n * from the normal request config.\n */\nexport interface IWriteMoreAPIRequestConfig\n extends AxiosRequestConfig {\n params: IGenerationAPIParams\n}\n\n// /**\n// * Options specific to the immediate root generation API caller function\n// */\n// export interface GenerateImmediateContentRootOptions\n// extends GenerateContentHandlerOptions {\n// /**\n// * Config passed to the underlying axios request function\n// */\n// requestConfig: IImmediateGenerationAPIRequestConfig\n// }\n\n/**\n * Call the immediate generation API. We keep it distinct from the\n * normal generation API due to different return types.\n */\nexport const apiWriteMore = async (\n requestConfig: IWriteMoreAPIRequestConfig\n) => {\n const { data, ...config } = requestConfig\n return await apiClient.post(\n '/write_more/product', // productId as a query parameter in finalConfig.params\n data,\n config\n )\n}\n\n// TODO: Standardize batch generation across Phoenix & Tako.\n\nexport interface GenerateBatchInRequest {\n productIds: string[]\n // TODO: add in prodDescQuery here. need to move ProductSearchQuery to common\n // prodDescQuery: ProductSearchQuery\n adTextQuery?: AdTextFolderSearchQuery\n jobName: string | undefined\n generationType: ContentGenerationType\n}\n\n// Currently blocked by differing interfaces/flows.\nexport const apiGenerateBatch = async (\n requestConfig: GenerateBatchInRequest\n) => {\n let body = {\n product_ids: requestConfig.productIds,\n ad_text_query: requestConfig.adTextQuery,\n job_name: requestConfig.jobName,\n generation_type: requestConfig.generationType\n }\n return apiClient.post('/describe/products', body)\n}\n","import React, { useContext, useState } from 'react'\nimport {\n apiGenerateContent,\n apiRewriteText,\n apiWriteMore,\n WriteMoreGenerationContext\n} from '../api/LanguageModel'\nimport { Subtract } from 'utility-types'\nimport axios, { AxiosResponse } from 'axios'\nimport { BlogStepper } from '../interfaces/Blog'\nimport { AdTextType, generationTypeMap } from '../interfaces/AdvertisingText'\nimport { apiClient } from '../utils/ApiClient'\nimport { ServerErrorType } from '../utils/Interfaces'\nimport { ContentGenerationType } from '../interfaces/ContentGeneration'\nimport { Description } from '../interfaces/Products'\n\n// ===== Types & Interfaces =====\n/**\n * This defines the type of the object returned by the useGenerationAPI hook.\n * NOTE: we have inconsistent naming for interfaces. Can consider abandoning the \"I\" prefix?\n * See https://softwareengineering.stackexchange.com/questions/117348/should-interface-names-begin-with-an-i-prefix\n */\nexport interface IGenerationAPIContext {\n /**\n * Rewrite a piece of text\n */\n rewriteText: (text: string) => Promise\n // LM generation methods\n apiGenerateAdvertisingText: (\n productId: string,\n adTextType: AdTextType\n ) => Promise | undefined>\n apiGenerateBlog: (\n productId: string,\n blogStepper: BlogStepper,\n subSteps?: [number, number][]\n ) => Promise | undefined>\n apiGenerateContextualBlog: (\n productId: string,\n context: WriteMoreGenerationContext\n ) => Promise | undefined>\n apiGenerateProductDescription: (\n productId: string\n ) => Promise | undefined>\n apiCancelDescribeProduct: (productId: string) => Promise>\n\n // Credit-related methods\n showInsufficientCreditsModal: boolean\n setShowInsufficientCreditsModal: (show: boolean) => void\n}\n\n/**\n * Props that are common to the generation API hook and provider\n */\nexport interface GenerationAPIHookAndProviderProps {}\n\n/**\n * Props that are exclusive to the generation API context provider\n */\nexport interface GenerationAPIProviderProps\n extends GenerationAPIHookAndProviderProps {\n /**\n * Callback when a rate-limit is exceeded\n */\n onRateLimitExceeded: () => void\n}\n\n/**\n * Props that are exclusive to the generation API hook\n */\nexport interface GenerationAPIHookProps\n extends GenerationAPIHookAndProviderProps {}\n\n// ===== Context & Provider =====\n/**\n * Generation API context\n */\nexport const GenerationAPIContext = React.createContext<\n IGenerationAPIContext | undefined\n>(undefined)\n\n/**\n * Generation API Context Provider\n */\nexport const GenerationAPIProvider: React.FC = (\n props\n) => {\n const { children, onRateLimitExceeded } = props\n\n // Controls display of CTA modal when user runs out of credits\n // TODO: Move this out so this provider can deal purely with the REST API\n const [\n showInsufficientCreditsModal,\n setShowInsufficientCreditsModal\n ] = useState(false)\n\n /**\n * Handle known errors from generation API endpoints\n */\n const handleKnownGenerationErrors = async (error: unknown) => {\n // Check if it's an Axios error first\n if (axios.isAxiosError(error)) {\n if (error.response?.status === 429) {\n // If a rate-limit error is exceeded, this callback should notify the user\n await onRateLimitExceeded()\n } else if (\n error.response?.data.detail?.error === ServerErrorType.outOfCredits\n ) {\n // If not enough credits, show the modal\n setShowInsufficientCreditsModal(true)\n } else {\n // Not a known Axios error; rethrow\n throw error\n }\n } else {\n // Not an Axios error; rethrow\n throw error\n }\n // Return undefined to keep TypeScript happy\n return undefined\n }\n\n /**\n * Rewrite a given piece of text\n */\n const apiGenerateRewrittenText = async (text: string) => {\n const response = await apiRewriteText({\n data: { original_content: text }\n }).catch(handleKnownGenerationErrors)\n return response?.data\n }\n\n /**\n * Generate an advertisement\n * @param productId\n * @param {AdTextType} adTextType The type of ad to generate (instagram, google, etc)\n */\n const apiGenerateAdvertisingText = async (\n productId: string,\n adTextType: AdTextType\n ) => {\n // Compute generationType based on adTextType (this is a shim until we directly accept generationType as a param)\n const generationType: ContentGenerationType = generationTypeMap[adTextType]\n\n return await apiGenerateContent({\n params: {\n productId,\n generation_type: generationType\n }\n }).catch(handleKnownGenerationErrors)\n }\n\n /**\n * Generate content for (one step of) a blog\n * @param {string} productId\n * @param {BlogStepper} blogStepper Which step of the blog to generate for\n * @param {[number, number][]} subSteps Only for blogStepper.FULL_ARTICLE; payload for which parts of article to generate\n */\n const apiGenerateBlog = async (\n productId: string,\n blogStepper: BlogStepper,\n subSteps?: [number, number][]\n ) => {\n // Compute generationType based on blogStepper (this is a shim until we directly accept generationType as a param)\n const generationTypeMap: { [key in BlogStepper]: ContentGenerationType } = {\n [BlogStepper.TITLE]: ContentGenerationType.blog_title,\n [BlogStepper.OUTLINE]: ContentGenerationType.blog_outline,\n [BlogStepper.INTRO]: ContentGenerationType.blog_introduction,\n // Note this duplicate is intentional\n [BlogStepper.FULL_ARTICLE]: ContentGenerationType.blog_paragraph,\n [BlogStepper.PARAGRAPH]: ContentGenerationType.blog_paragraph,\n [BlogStepper.CONCLUSION]: ContentGenerationType.blog_conclusion\n }\n const generationType: ContentGenerationType = generationTypeMap[blogStepper]\n\n let payload: [number, number][] = [[blogStepper, -1]] // [[step, subStep], ...]\n\n // For full article, specify whether to generate intro, any number of paras, and conclusion\n if (\n blogStepper === BlogStepper.FULL_ARTICLE ||\n blogStepper === BlogStepper.PARAGRAPH\n ) {\n if (subSteps === undefined) {\n throw new Error('subSteps must be specified when generating paragraphs')\n }\n payload = subSteps\n }\n\n return await apiGenerateContent({\n data: payload,\n params: {\n productId,\n generation_type: generationType\n }\n }).catch(handleKnownGenerationErrors)\n }\n\n /**\n * Request the generation API to generate descriptions for a product\n * @param {string} productId\n */\n const apiGenerateProductDescription = async (productId: string) => {\n return await apiGenerateContent({\n params: {\n productId,\n generation_type: ContentGenerationType.product_descriptions\n }\n }).catch(handleKnownGenerationErrors)\n }\n\n /**\n * Cancel content generation\n * @param {string} productId\n */\n const apiCancelGenerateContent = async (productId: string) => {\n const config = {\n params: {\n productId: encodeURIComponent(productId)\n }\n }\n const data = {}\n return apiClient.post(\n '/describe/cancel/',\n data, // Can be just 'null'\n config\n )\n }\n\n /**\n * Request the contextual generation API to generate content and return it\n * immediately as a Description object.\n *\n * @param productId Product ID\n * @param context Context required for generation. e.g. prefix, -> ..., suffix -> ...\n * @returns Trivial list of Description objects with generated content\n */\n const apiGenerateContextualBlog = async (\n productId: string,\n context: WriteMoreGenerationContext\n ) => {\n // Compute generationType\n const generationType: ContentGenerationType =\n ContentGenerationType.blog_write_more\n\n return await apiWriteMore({\n data: context,\n params: {\n productId: productId,\n generation_type: generationType\n }\n }).catch(handleKnownGenerationErrors)\n }\n\n return (\n \n {children}\n \n )\n}\n\n// ===== Hook & HOC =====\n/**\n * Hook for requesting various content types from the Generation API.\n */\nexport const useGenerationAPI = (_props?: GenerationAPIHookProps) => {\n // NOTE: props currently unused, but can be used to override the provider's defaults in the future\n const context = useContext(GenerationAPIContext)\n if (context === undefined) {\n throw new Error(\n 'useGenerationAPI must be used within a GenerationAPIProvider'\n )\n }\n return context\n}\n\nexport const withGenerationAPI = (props?: GenerationAPIHookProps) => {\n return (\n Component: React.ComponentType\n ) => {\n const Wrapper: React.FC> = (\n componentProps\n ) => {\n const generationAPIHookResult = useGenerationAPI(props)\n return (\n \n )\n }\n return Wrapper\n }\n}\n","import axios from 'axios'\nimport { handleDates } from '@hypotenuse/common/src/utils/Functions'\nimport { SERVER } from './Constants'\n\nexport const apiClient = axios.create({\n baseURL: SERVER,\n // Send browser cookies to the server\n withCredentials: true\n})\n\n/**\n * This interceptor casts valid date strings into the `Date` class.\n */\napiClient.interceptors.response.use((originalResponse) => {\n handleDates(originalResponse.data)\n return originalResponse\n})\n","/**\n * This module provides Help Scout's Beacon script via a hook.\n */\nimport React, { useEffect, useState } from 'react'\nimport { LiveChatLoaderProvider, useChat } from 'react-live-chat-loader'\nimport { Beacon } from './types'\n\nexport interface BeaconProps {\n /**\n * The window.Beacon object - this should be undefined until the script is fully loaded.\n */\n beacon?: Beacon\n isBeaconLoaded: boolean\n disableBeaconLinks?: boolean\n}\n\n/**\n * Default value in the context is undefined.\n * Once the global Beacon script in the