1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[403],{115:(e,r,t)=>{t.d(r,{J:()=>s,e:()=>a});let a=(e,r,t,a)=>{if(!e?.relationships?.lists?.data?.find(e=>e.id===t))return null;let s=r.find(e=>"lists"===e.type&&e.id===t);return s?.relationships?.[a]?.data?s.relationships[a].data:null},s=(e,r="40X40",t="120X80")=>e?e.replace(`/${r}/`,`/${t}/`):e},44867:(e,r,t)=>{let a,s;t.d(r,{D:()=>G,U:()=>X});var i=t(90924),n=t(66208),o=t(4573),l=t(38206);let c=()=>(s||(s=new o._(window.localStorage,{namespace:"raise-com-search",onError:e=>console.warn("[Search] Cache error:",e)})),s),d=async e=>{try{let r=await l.YE.searchBrands(e),t=u(r);return{success:!0,query:e,results:t,total:t.length}}catch(r){console.error("Brand search API error:",r);let e=r instanceof Error?r.message:String(r);throw Error(`Brand search failed: ${e}`,{cause:r})}},u=e=>{try{let r=[];if(!e.data||!Array.isArray(e.data))return console.warn("No data array found in search response"),r;return e.data.forEach(e=>{if("brand_minis"===e.type&&e.attributes){let t=e.attributes;r.push({id:e.id,name:t.name||"Unknown Brand",category:t.categories&&t.categories.length>0?t.categories[0]:"General",cashbackRate:t.subtitle||"0% back",logo:t.icon_url||null,isFavorite:!1,isInactive:t.inactive||!1,slug:t.slug||""})}}),r}catch(e){return console.error("Error transforming search API response:",e),[]}},g=()=>{try{return c()?.get("raise_search_history")??[]}catch(e){return console.warn("Failed to retrieve search terms:",e),[]}},h=()=>{try{c()?.remove("raise_search_history")}catch(e){console.warn("Failed to clear search terms:",e)}},m=e=>{if(!e.trim())return!1;try{let r=c();if(!r)return!1;let t=r.get("raise_search_history")??[],a=e.trim();if(!t.some(e=>e.term===a))return!1;return r.set("raise_search_history",t.filter(e=>e.term!==a)),!0}catch(e){return console.warn("Failed to remove search term:",e),!1}},f=(e,r)=>new Promise((t,s)=>{if(a&&clearTimeout(a),!e||!e.trim()){let e={success:!0,query:"",results:[],total:0};r&&r(e),t(e);return}a=setTimeout(()=>{d(e).then(a=>{var s;a.success&&a.results.length>0&&(s=a.results.length,e.trim()&&0!==s&&setTimeout(()=>{let r=c();if(r)try{let t=r.get("raise_search_history")??[],a={term:e.trim(),timestamp:new Date().toISOString(),resultsCount:s},i=[a,...t.filter(e=>e.term!==a.term)].slice(0,5);r.set("raise_search_history",i)}catch(e){console.warn("Failed to save search term:",e)}},2e3)),r&&r(a),t(a)}).catch(t=>{let a={success:!1,query:e,results:[],total:0,error:t instanceof Error?t.message:"Search failed"};r&&r(a),s(t)})},750)}),p={isLoggedIn:!1,userName:{firstName:"Guest",lastName:"User",fullName:"Guest User"},userInitials:"GU",userEmail:null,appToken:null,flagUrl:null,featureToggles:{isZendeskEnabled:!0}},_={data:[],isLoading:!1,isLoaded:!1,error:null},y={data:[],isLoading:!1,isLoaded:!1,error:null},L={data:[],isLoading:!1,isLoaded:!1,error:null};var b=t(115),w=t(44735),k=t(1707),T=t(72783);let v=async()=>{try{let e=(0,w.A)(),r=(0,w.A)(),t=(()=>{let e=navigator.userAgent,r=navigator.platform,t="Unknown";if(e.includes("Mac")){let r=e.match(/Mac OS X (\d+_\d+_\d+)/);t=r?`MacOS ${r[1].replace(/_/g,".")}`:"MacOS"}else if(e.includes("Windows")){let r=e.match(/Windows NT (\d+\.\d+)/);t=r?`Windows ${r[1]}`:"Windows"}else e.includes("Linux")&&(t="Linux");let a="Unknown";return a=e.includes("Mac")?e.includes("Intel")?"MacBook Pro":"MacBook":e.includes("Windows")?"Windows PC":r||"Desktop",{userAgent:e,osVersion:t,model:a}})(),a=await l.oy.createClient({data:{type:"clients",attributes:{platform:"WEB",idfv:e,userAgent:t.userAgent,osVersion:t.osVersion,model:t.model,installationId:r,appVersion:"3.4.2"}}});return{success:!0,clientId:a.data.id,data:a.data}}catch(e){return{success:!1,error:e instanceof Error?e.message:String(e),clientId:null}}},E=null,S=async e=>{try{let r,{clientId:t,usingStaticClient:a}=await ((r=(0,k.RO)(k.d5.CLIENT_PROFILE_ID))?((0,T.lF)(r),Promise.resolve({clientId:r,usingStaticClient:!1})):(!E&&(E=v().then(e=>e.success&&e.clientId?((0,k.kx)(k.d5.CLIENT_PROFILE_ID,e.clientId),(0,T.lF)(e.clientId),{clientId:e.clientId,usingStaticClient:!1}):{clientId:void 0,usingStaticClient:!0}
1).catch(()=>({clientId:void 0,usingStaticClient:!0})).finally(()=>{E=null})),E)),s=await e(t);return{success:!0,data:s,clientId:t,usingStaticClient:a}}catch(e){return{success:!1,error:e instanceof Error?e.message:String(e),data:null}}},C=async()=>S(e=>l.RU.getHomepage(e)),I=async()=>S(e=>l.RU.getTrendingBrands(e));class A{async getHomepageData(){return this.isLoaded&&this.cachedData?this.cachedData:(this.apiPromise||(this.apiPromise=this.fetchAndCacheData()),this.apiPromise)}async fetchAndCacheData(){try{let e=await C();return e.success&&(this.cachedData=e,this.isLoaded=!0),e}catch(e){throw console.error(e),this.apiPromise=null,e}}async getCategories(e={}){let r={filterInvalidNames:!0,simplified:!0,...e};try{let e=await this.getHomepageData();if(!e.success)return[];return((e,r={})=>{let{filterInvalidNames:t=!1,simplified:a=!1}=r;try{let{data:r,included:s=[]}=e,i=(0,b.e)(Array.isArray(r)?r[0]:r,s,"categories","categories");if(!i)return[];return i.map(e=>{let r,t=s.find(r=>"categories"===r.type&&r.id===e.id),i=t?.attributes,n=i?.title||e.id,o=e.meta?.position||0;return a?{id:e.id,name:n,slug:e.id,position:o}:{id:e.id,name:n,slug:e.id,targetUrl:(r=i?.target_url||`/categories/${e.id}`).startsWith("/gift-cards")?r:`/gift-cards${r}`,logoUrl:i?.logo_url,backgroundColor:i?.background_color,backgroundImageUrl:i?.background_image_url,position:o}}).filter(e=>!t||e.name!==e.id).slice().sort((e,r)=>e.position-r.position)}catch(e){return console.error("Error transforming categories response:",e),[]}})(e.data,r)}catch(e){return console.error(e),[]}}async getTopEarners(e={}){let r={transformLogo:!0,simplified:!0,...e};try{let e=await this.getHomepageData();if(!e.success)return[];return((e,r={})=>{let{transformLogo:t=!1,simplified:a=!1}=r;try{let{data:r,included:s=[]}=e,i=(0,b.e)(Array.isArray(r)?r[0]:r,s,"trending_brands","brand_minis");if(!i)return[];return i.map(e=>{let r=e.meta,s=r?.icon_url,i=t?(0,b.J)(s):s;return a?{id:e.id,name:r?.title||"Unknown Brand",logo:i,cashbackRate:r?.subtitle||"0%",isInactive:r?.inactive||!1,targetUrl:r?.target_url}:{id:e.id,name:r?.title||"Unknown Brand",logo:i,cashbackRate:r?.subtitle||"0%",targetUrl:r?.target_url,isFavorite:r?.favorite||!1,isInactive:r?.inactive||!1}}).filter(e=>!e.isInactive)}
1catch(e){return console.error("Error transforming top earners response:",e),[]}})(e.data,r)}catch(e){return console.error(e),[]}}clearCache(){this.cachedData=null,this.isLoaded=!1,this.apiPromise=null}isLoading(){return!!this.apiPromise&&!this.isLoaded}constructor(){this.apiPromise=null,this.cachedData=null,this.isLoaded=!1}}let B=new A;var D=t(35386);let P=(0,D.h)("useCategories");var U=t(99491),N=t(61056);let $=(0,D.h)("useSessionInfo"),F=(0,D.h)("useTopEarners");class O{async getTrendingBrandsData(){return this.isLoaded&&this.cachedData?this.cachedData:(this.apiPromise||(this.apiPromise=this.fetchAndCacheData()),this.apiPromise)}async fetchAndCacheData(){try{let e=await I();return e.success&&(this.cachedData=e,this.isLoaded=!0),e}catch(e){throw console.error(e),this.apiPromise=null,e}}async getTrendingBrands(e={}){let r={transformLogo:!0,...e};try{let e=await this.getTrendingBrandsData();if(!e.success)return[];return((e,r={})=>{let{transformLogo:t=!0}=r;try{let{data:r}=e,a=Array.isArray(r)?r[0]:r;if(!a?.relationships?.brand_minis?.data)return[];return a.relationships.brand_minis.data.map(e=>{let r=e.meta||{},a=r.icon_url,s=a;t&&a&&(s=(0,b.J)(a,"40X40","120X80"));let i=r.target_url||null;return i&&i.startsWith("/")&&(i=`https://raise.com${i}`),{id:e.id,name:r.title||"Unknown Brand",logo:s,cashbackRate:r.subtitle||"0%",isFavorite:r.favorite||!1,isInactive:r.inactive||!1,targetUrl:r.target_url||null}}).filter(e=>!e.isInactive)}
1catch(e){return console.error("Error transforming trending brands response:",e),[]}})(e.data,r)}catch(e){return console.error(e),[]}}clearCache(){this.cachedData=null,this.isLoaded=!1,this.apiPromise=null}isLoading(){return!!this.apiPromise&&!this.isLoaded}constructor(){this.apiPromise=null,this.cachedData=null,this.isLoaded=!1}}let R=new O,W=(0,D.h)("useTrendingBrands"),M={getSessionInfo:async()=>{},sessionInfo:{...p},categories:[],getCategories:async()=>null,isCategoriesLoading:!1,categoriesError:null,topEarners:[],getTopEarners:async()=>null,isTopEarnersLoading:!1,topEarnersError:null,trendingBrands:[],getTrendingBrands:async()=>null,isTrendingBrandsLoading:!1,trendingBrandsError:null,searchBrands:()=>Promise.resolve({success:!1,query:"",results:[],total:0}),getStoredSearchTerms:()=>[],clearStoredSearchTerms:()=>{},removeStoredSearchTerm:()=>!1},x=(0,n.createContext)(M),G=({children:e})=>{let{sessionInfo:r,getSessionInfo:t,clearSessionInfo:a}=(e=>{let[r,t]=(0,n.useState)(e);return{sessionInfo:r,getSessionInfo:(0,n.useCallback)(async()=>{try{let e=(0,U.C3)(),r={userName:e?.firstName&&e?.lastName?`${e.firstName}_${e.lastName}`:(0,N.RO)("flutter.user_name"),userEmail:e?.email??(0,N.RO)("flutter.user_email"),appToken:e?.accessToken??(0,N.RO)("flutter.access_token"),flagUrl:e?.countryCode?`https://flagcdn.com/w40/${e.countryCode.toLowerCase()}.png`:(0,N.RO)("flutter.country_flag_url"),featureToggles:{zendeskEnabled:!0}},a=(e=>{let{featureToggles:{zendeskEnabled:r},userName:t,userEmail:a,appToken:s,flagUrl:i}=e,n=t?.split("_");return{isLoggedIn:!!(t&&s),hasSession:!!s,userName:{firstName:n?.[0]??"Guest",lastName:n?.[1]??"User",fullName:t?.replace("_"," ")},userInitials:(n??[]).map(e=>e[0]).join("").toUpperCase(),userEmail:a??null,appToken:s??null,flagUrl:i??null,featureToggles:{isZendeskEnabled:r}}})(r);t({...a,isInitialLoading:!1})}catch{$.info("No session info found in storage")}},[]),clearSessionInfo:(0,n.useCallback)(async()=>{try{(0,U.BO)(),t({...p,isInitialLoading:!1})}catch{$.error("Unable to clear session info from storage")}},[])}})(M.sessionInfo),{categories:s,getCategories:o,isCategoriesLoading:l,categoriesError:c}=(()=>{let[e,r]=(0,n.useState)(_),t=(0,n.useCallback)(async()=>{if(e.isLoaded)return e.data;if(e.isLoading)return null;r(e=>({...e,isLoading:!0,error:null}));try{let e=await B.getCategories(void 0);return r({data:e,isLoading:!1,isLoaded:!0,error:null}),e}catch(e){return r(r=>({...r,isLoading:!1,error:e instanceof Error?e.message:"Failed to fetch categories"})),P.error("Fetching categories failed",e),null}},[e.isLoaded,e.isLoading]),a=(0,n.useCallback)(()=>{r(_)},[]);return{categories:e.data,categoriesState:e,getCategories:t,clearCategories:a,isCategoriesLoading:e.isLoading,categoriesError:e.error}})(),{topEarners:d,getTopEarners:u,isTopEarnersLoading:b,topEarnersError:w}=(()=>{let[e,r]=(0,n.useState)(y),t=(0,n.useCallback)(async()=>{if(e.isLoaded)return e.data;if(e.isLoading)return null;r(e=>({...e,isLoading:!0,error:null}));try{let e=await B.getTopEarners(void 0);return r({data:e,isLoading:!1,isLoaded:!0,error:null}),e}catch(e){return r(r=>({...r,isLoading:!1,error:e instanceof Error?e.message:"Failed to fetch top earners"})),F.error("Fetching top earners failed",e),null}},[e.isLoaded,e.isLoading]),a=(0,n.useCallback)(()=>{r(y)},[]);return{topEarners:e.data,topEarnersState:e,getTopEarners:t,clearTopEarners:a,isTopEarnersLoading:e.isLoading,topEarnersError:e.error}})(),{trendingBrands:k,getTrendingBrands:T,isTrendingBrandsLoading:v,trendingBrandsError:E}=(()=>{let[e,r]=(0,n.useState)(L),t=(0,n.useCallback)(async()=>{if(e.isLoaded)return e.data;if(e.isLoading)return null;r(e=>({...e,isLoading:!0,error:null}));try{let e=await R.getTrendingBrands(void 0);return r({data:e,isLoading:!1,isLoaded:!0,error:null}),e}catch(e){return r(r=>({...r,isLoading:!1,error:e instanceof Error?e.message:"Failed to fetch trending brands"})),W.error("Fetching trending brands failed",e),null}},[e.isLoaded,e.isLoading]),a=(0,n.useCallback)(()=>{r(L)},[]);return{trendingBrands:e.data,trendingBrandsState:e,getTrendingBrands:t,clearTrendingBrands:a,isTrendingBrandsLoading:e.isLoading,trendingBrandsError:e.error}})(),S=(0,n.useMemo)(()=>({sessionInfo:r,getSessionInfo:t,clearSessionInfo:a,categories:s,getCategories:o,isCategoriesLoading:l,categoriesError:c,topEarners:d,getTopEarners:u,isTopEarnersLoading:b,topEarnersError:w,trendingBrands:k,getTrendingBrands:T,isTrendingBrandsLoading:v,trendingBrandsError:E,searchBrands:f,getStoredSearchTerms:g,clearStoredSearchTerms:h,removeStoredSearchTerm:m}),[r,t,a,s,o,l,c,d,u,b,w,k,T,v,E]);return(0,i.jsx)(x.Provider,{value:S,children:e})},X=()=>(0,n.useContext)(x)},56846:(e,r,t)=>{let a;t.d(r,{NB:()=>o,cE:()=>l,xz:()=>c});var s=t(4573);let i=()=>(a||(a=new s._(window.localStorage,{namespace:"raise-com-meta-click-ids"})),a);function n(e){if("u"<typeof document)return;let r=`${e}=`,t=document.cookie.split("; ").find(e=>e.startsWith(r));if(t)try{return decodeURIComponent(t.slice(r.length))}catch{return t.slice(r.length)}}function o(e){let r=i();if(!r)return;let t=e.get("fbclid")?.trim();t&&r.set("click",{fbclid:t,fbc:n("_fbc")||function(e,r=Date.now()){let t=e.trim();return t?t.startsWith("fb.1.")?t:`fb.1.${r}.${t}`:""}(t),capturedAt:new Date().toISOString()})}function l(){let e=i();if(!e)return;let r=e.get("signup");if(r?.fbc&&r?.fbp)return;let t=e.get("click"),a=r?.fbc||n("_fbc")||t?.fbc,s=r?.fbp||n("_fbp");(a||s)&&e.set("signup",{...a?{fbc:a}:{},...s?{fbp:s}:{},capturedAt:r?.capturedAt??new Date().toISOString()})}function c(){let e=i(),r=e?.get("signup"),t=e?.get("click"),a=r?.fbc||n("_fbc")||t?.fbc,s=r?.fbp||n("_fbp");return{...a?{fbc:a}:{},...s?{fbp:s}:{}}}},89862:(e,r,t)=>{let a;t.d(r,{F:()=>d,Y:()=>l});var s=t(4573);let i={gclid:"google_ads",fbclid:"meta_ads",ttclid:"tiktok_ads",msclkid:"microsoft_ads",twclid:"x_ads",li_fat_id:"linkedin_ads",irclickid:"impact"},n=()=>(a||(a=new s._(window.localStorage,{namespace:"raise-com-gtm-attribution"})),a),o=(e,r)=>e.get(r)??null;function l(e,r){let t,a,s,o,l,c,d=n();if(!d)return;let u=(t=e.get("utm_source")??void 0,a=e.get("utm_medium")??void 0,s=e.get("utm_campaign")??void 0,o=e.get("utm_content")??void 0,l=e.get("utm_term")??void 0,c=(e=>{for(let[r,t]of Object.entries(i))if(e.get(r))return t})(e),t||a||s||o||l||c?{...t?{utmSource:t}:{},...a?{utmMedium:a}:{},...s?{utmCampaign:s}:{},...o?{utmContent:o}:{},...l?{utmTerm:l}:{},...c?{channel:c}:{},...r?{landingPage:r}:{},capturedAt:new Date().toISOString()}:null);u&&(d.get("firstTouch")||d.set("firstTouch",u),d.set("lastTouch",u))}let c=(e,r={})=>{let t=r.asLastTouch?"last_":"",a=[[`${t}utm_source`,e.utmSource,r.dedupeAgainst?.utmSource],[`${t}utm_medium`,e.utmMedium,r.dedupeAgainst?.utmMedium],[`${t}utm_campaign`,e.utmCampaign,r.dedupeAgainst?.utmCampaign],[`${t}utm_content`,e.utmContent,r.dedupeAgainst?.utmContent],[`${t}utm_term`,e.utmTerm,r.dedupeAgainst?.utmTerm],[`${t}
1channel`,e.channel,r.dedupeAgainst?.channel]],s={};for(let[e,r,t]of a)null!=r&&r!==t&&(s[e]=r);return!r.asLastTouch&&e.landingPage&&(s.landing_page=e.landingPage),s};function d(){let e=n();if(!e)return{};let r=o(e,"firstTouch"),t=o(e,"lastTouch");return{...r?c(r):{},...t?c(t,{asLastTouch:!0,dedupeAgainst:r??void 0}):{}}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.