1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{347:()=>{},1762:(e,t,a)=>{"use strict";function s(e){var t,a;let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"We couldn't complete your request. Please try again.";if(e.payload){if("string"==typeof e.payload)return e.payload;if("object"==typeof e.payload&&null!==e.payload){let t=e.payload;if("error"in t&&"object"==typeof t.error&&null!==t.error){let e=t.error;if("message"in e&&"string"==typeof e.message)return e.message}if("message"in t&&"string"==typeof t.message)return t.message}}switch(null==(t=e.error)?void 0:t.message){case"Network Error":return"Network connection problem. Please check your internet and try again.";case"Rejected":return"Request was rejected. Please try again.";case"Timeout":return"Request timed out. Please try again."}if(null==(a=e.error)?void 0:a.status)switch(e.error.status){case 401:return"Session expired. Please log in again.";case 403:return"You don't have permission to perform this action.";case 404:return"The requested resource was not found.";case 500:return"Server error. Please try again later."}return s}a.d(t,{u:()=>s})},1913:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>_,Fo:()=>o,qH:()=>i});var s=a(6439),r=a(5075),n=a(9362);class c{static async getBaseCurrencies(){return this.makeRequest("base/currencies")}static async getQuoteCurrencies(){return this.makeRequest("quote/currencies")}static async makeRequest(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0,n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],c=arguments.length>5&&void 0!==arguments[5]&&arguments[5];try{return await (0,r.DH)(e,t,a,s,n,c)}catch(e){return this.handleError(e)}}static handleError(e){if(e instanceof n.pe){var t,a,s,r;return{success:!1,message:(null==(a=e.response)||null==(t=a.data)?void 0:t.message)||e.message,statusCode:(null==(s=e.response)?void 0:s.status)||500,data:null==(r=e.response)?void 0:r.data}}return{success:!1,message:e instanceof Error?e.message:"Unknown error",statusCode:500}}}var u=a(1762);let o=(0,s.zD)("get_base_currencies",async(e,t)=>{let{rejectWithValue:a}=t;try{return await c.getBaseCurrencies()}catch(e){return a(null==e?void 0:e.message)}}),i=(0,s.zD)("get_quote_currencies",async(e,t)=>{let{rejectWithValue:a}=t;try{return await c.getQuoteCurrencies()}catch(e){return a(null==e?void 0:e.message)}}),l=(0,s.Z0)({name:"currency",initialState:{base_currencies_state:{loading:!1,tag:"base_currencies",error:!1,success:!1,data:null,message:null},quote_currencies_state:{loading:!1,tag:"quote_currencies",error:!1,success:!1,data:null,message:null}},reducers:{reset_base_currency_state:e=>{e.base_currencies_state.loading=!1,e.base_currencies_state.error=!1,e.base_currencies_state.success=!1,e.base_currencies_state.message=null,e.base_currencies_state.tag=null},reset_quote_currency_state:e=>{e.quote_currencies_state.loading=!1,e.quote_currencies_state.error=!1,e.quote_currencies_state.success=!1,e.quote_currencies_state.message=null,e.quote_currencies_state.tag=null}},extraReducers:e=>{e.addCase(o.pending,e=>{e.base_currencies_state.loading=!0,e.base_currencies_state.error=!1,e.base_currencies_state.tag="get_base_currencies_pending"}).addCase(o.fulfilled,(e,t)=>{var a;e.base_currencies_state.loading=!1,e.base_currencies_state.success=!0,e.base_currencies_state.data=null==(a=t.payload)?void 0:a.data,e.base_currencies_state.message=t.payload.message,e.base_currencies_state.tag="get_base_currencies_fulfilled"}).addCase(o.rejected,(e,t)=>{e.base_currencies_state.loading=!1,e.base_currencies_state.error=!0,e.base_currencies_state.tag="get_base_currencies_rejected",e.base_currencies_state.message=(0,u.u)(t)}).addCase(i.pending,e=>{e.quote_currencies_state.loading=!0,e.quote_currencies_state.error=!1,e.quote_currencies_state.tag="get_quote_currencies_pending"}).addCase(i.fulfilled,(e,t)=>{e.quote_currencies_state.loading=!1,e.quote_currencies_state.success=!0,e.quote_currencies_state.data=t.payload.data,e.quote_currencies_state.message=t.payload.message,e.quote_currencies_state.tag="get_quote_currencies_fulfilled"}).addCase(i.rejected,(e,t)=>{e.quote_currencies_state.loading=!1,e.quote_currencies_state.error=!0,e.quote_currencies_state.tag="get_quote_currencies_rejected",e.quote_currencies_state.message=(0,u.u)(t)})}}),{reset_base_currency_state:d,reset_quote_currency_state:g}=l.actions,_=l.reducer},2302:(e,t,a)=>{"use strict";a.d(t,{E:()=>u});var s,r=a(3464);let n=(null==(s=a(9509).env.NEXT_PUBLIC_API_BASE_URL)?void 0:s.trim())||"https://api.ubupay.ca/v1/",c=r.A.create({baseURL:n,timeout:3e4,withCredentials:!1,headers:{"Content-Type":"application/json",Accept:"application/json"}}),u=async function(e,t,a,s){arguments.length>4&&void 0!==arguments[4]&&arguments[4];let r=arguments.length>5&&void 0!==arguments[5]&&arguments[5];try{let n={url:e,method:t,data:a,params:s};return r&&(n.headers={"Content-Type":"multipart/form-data"}),await c.request(n)}catch(e){throw Error(e.response?"API request failed (".concat(e.response.status,")"):"Network error while calling API")}}},2743:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>d,ZU:()=>o});var s=a(6439),r=a(5075),n=a(9362);
1class c{static async getExchangeRates(){return this.makeRequest("exchange/rates")}static async makeRequest(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0,n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],c=arguments.length>5&&void 0!==arguments[5]&&arguments[5];try{return await (0,r.DH)(e,t,a,s,n,c)}catch(e){return this.handleError(e)}}static handleError(e){if(e instanceof n.pe){var t,a,s,r;return{success:!1,message:(null==(a=e.response)||null==(t=a.data)?void 0:t.message)||e.message,statusCode:(null==(s=e.response)?void 0:s.status)||500,data:null==(r=e.response)?void 0:r.data}}return{success:!1,message:e instanceof Error?e.message:"Unknown error",statusCode:500}}}var u=a(1762);let o=(0,s.zD)("get_exchange_rates",async(e,t)=>{let{rejectWithValue:a}=t;try{let e=await c.getExchangeRates();return console.log(e),e}catch(e){return a(null==e?void 0:e.message)}}),i=(0,s.Z0)({name:"exchange_rates",initialState:{exchange_rates_state:{loading:!1,tag:"exchange_rates",error:!1,success:!1,data:null,message:null}},reducers:{reset_exchange_rates_state:e=>{e.exchange_rates_state.loading=!1,e.exchange_rates_state.error=!1,e.exchange_rates_state.success=!1,e.exchange_rates_state.message=null,e.exchange_rates_state.tag=null}},extraReducers:e=>{e.addCase(o.pending,e=>{e.exchange_rates_state.loading=!0,e.exchange_rates_state.error=!1,e.exchange_rates_state.tag="get_exchange_rates_pending"}).addCase(o.fulfilled,(e,t)=>{e.exchange_rates_state.loading=!1,e.exchange_rates_state.success=!0,e.exchange_rates_state.message=t.payload.message,e.exchange_rates_state.data=t.payload.data,e.exchange_rates_state.tag="get_exchange_rates_fulfilled"}).addCase(o.rejected,(e,t)=>{e.exchange_rates_state.loading=!1,e.exchange_rates_state.error=!0,e.exchange_rates_state.tag="get_exchange_rates_rejected",e.exchange_rates_state.message=(0,u.u)(t)})}}),{reset_exchange_rates_state:l}=i.actions,d=i.reducer},2767:(e,t,a)=>{Promise.resolve().then(a.bind(a,4425))},4425:(e,t,a)=>{"use strict";let s,r;a.r(t),a.d(t,{default:()=>x});var n=a(5155);a(347);var c=a(73),u=a.n(c),o=a(2115),i=a(4540),l=a(7730),d=a(1328),g=a(6439),_=a(52),h=a(2743),m=a(1913),p=a(8986);let y=(0,_.HY)({exchange_reducer_state:h.Ay,currency_reducer_state:m.Ay,language_reducer_state:p.Ay});{let e,t=a(8091).A;e=(0,d.rL)({key:"root",version:1,storage:t,whitelist:["exchange"]},y),s=(0,g.U1)({reducer:e,middleware:e=>e({serializableCheck:!1}),devTools:!1}),r=(0,d.GM)(s)}function f(e){let{children:t}=e,[a,c]=(0,o.useState)(!1);return((0,o.useEffect)(()=>{s&&r&&c(!0)},[]),a&&s&&r)?(0,n.jsx)(i.Kq,{store:s,children:(0,n.jsx)(l.Q,{loading:null,persistor:r,children:t})}):null}var v=a(3016);function x(e){let{children:t}=e;return(0,n.jsxs)("html",{lang:"en",suppressHydrationWarning:!0,className:u().variable,children:[(0,n.jsxs)("head",{children:[(0,n.jsx)("title",{children:"UbuPay - The Future of Cross-Border Remittance"}),(0,n.jsx)("meta",{name:"description",content:"Send money fast and securely to loved ones and businesses across Africa, Canada, Europe, and the USA with UbuPay."}),(0,n.jsx)("meta",{name:"keywords",content:"UbuPay, money transfer, fast remittance, international payments, cross-border transfer, secure money send, Canada to Africa transfer"}),(0,n.jsx)("meta",{name:"author",content:"UbuPay"})]}),(0,n.jsx)("body",{className:"".concat(u().className," overflow-x-hidden"),children:(0,n.jsx)(f,{children:(0,n.jsx)(v.Is,{children:t})})})]})}},5075:(e,t,a)=>{"use strict";a.d(t,{DH:()=>l});var s=a(3464),r=a(9362);let n="https://api.ubupay.ca/v1/",c=s.A.create({baseURL:n,timeout:3e4,withCredentials:!1,headers:{"Content-Type":"application/json",Accept:"application/json"}}),u=null,o=!1,i=[];c.interceptors.request.use(e=>{let t=new r.$t(e.headers),a=(()=>{let e=document.cookie.match(/XSRF-TOKEN=([^;]+)/);return e?decodeURIComponent(e[1]):void 0})();return a&&t.set("X-XSRF-TOKEN",a),u&&t.set("Authorization","Bearer ".concat(u)),{...e,headers:t}},e=>Promise.reject(e)),c.interceptors.response.use(e=>e,async e=>{var t;let a=e.config;if(!a||(null==(t=e.response)?void 0:t.status)!==401||a._retry)return Promise.reject(e);
1if(o)return new Promise(e=>{i.push(t=>{a.headers.set("Authorization","Bearer ".concat(t)),e(c(a))})});a._retry=!0,o=!0;try{let{data:e}=await s.A.post("".concat(n,"/auth/refresh"),{},{withCredentials:!0});return u=e.accessToken,i.forEach(t=>t(e.accessToken)),i=[],a.headers.set("Authorization","Bearer ".concat(e.accessToken)),c(a)}catch(e){return u=null,window.location.href="/login?redirect=".concat(encodeURIComponent(window.location.pathname)),Promise.reject(e)}finally{o=!1}});let l=async function(e,t,a,s){let r=arguments.length>4&&void 0!==arguments[4]&&arguments[4],n=arguments.length>5&&void 0!==arguments[5]&&arguments[5];try{let o={url:e,method:t,data:a,params:s};if(r&&!u)throw Error("No access token available for secured request");return n&&(o.headers={"Content-Type":"multipart/form-data"}),(await c.request(o)).data}catch(t){var o;throw console.error("API Request Failed:",{endpoint:e,status:null==(o=t.response)?void 0:o.status,message:t.message}),t}}},8986:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>d,dP:()=>o});var s=a(6439),r=a(2302);let n={languages:async()=>{try{let e=await (0,r.E)("languages","GET",void 0,void 0,!1,!1);return e.data?e.data:e}catch(e){if(e.response)throw e.response.data;throw e}}};var c=a(1762);let u={loading:!1,tag:"languages",error:!1,success:!1,data:null,message:null},o=(0,s.zD)("get_languages",async(e,t)=>{let{rejectWithValue:a}=t;try{return await n.languages()}catch(e){return a(null==e?void 0:e.message)}}),i=(0,s.Z0)({name:"language",initialState:{languages_state:u},reducers:{reset_languages_state:e=>{e.languages_state=u}},extraReducers:e=>{e.addCase(o.pending,e=>{e.languages_state={...e.languages_state,loading:!0,error:!1,success:!1,message:null}}).addCase(o.fulfilled,(e,t)=>{e.languages_state={...e.languages_state,loading:!1,error:!1,success:!0,data:t.payload,message:null}}).addCase(o.rejected,(e,t)=>{e.languages_state={...e.languages_state,loading:!1,error:!0,success:!1,data:null,message:(0,c.u)(t)}})}}),{reset_languages_state:l}=i.actions,d=i.reducer}},e=>{e.O(0,[295,863,886,16,441,964,358],()=>e(e.s=2767)),_N_E=e.O()}]);
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.