PageSourceSearch

https://mrbee.ai/_next/static/chunks/3648-19425cea2ea0eda8.js

js mrbee.ai collected 2026-10-05 13:47:31 UTC 22,653 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3648],{27914:(e,r,t)=>{t.d(r,{$d:()=>_,Ab:()=>i,BF:()=>p,Ek:()=>o,J4:()=>b,Kl:()=>y,Ov:()=>c,Rp:()=>a,bQ:()=>u,cN:()=>f,f1:()=>g,nq:()=>l,oS:()=>m,px:()=>h,t5:()=>d});let n={card_declined:{code:"card_declined",message:"Card was declined",userMessageKey:"payments:errorMessages.cardDeclined",userMessage:"Your card was declined. Please try a different payment method.",type:"card_error",actionable:!0,suggestedActionKey:"payments:errorMessages.tryAnotherCard",suggestedAction:"Try another card or contact your bank"},expired_card:{code:"expired_card",message:"Card has expired",userMessageKey:"payments:errorMessages.expiredCard",userMessage:"Your card has expired. Please use a different card.",type:"card_error",actionable:!0,suggestedActionKey:"payments:errorMessages.updateCardInfo",suggestedAction:"Update your card information"},insufficient_funds:{code:"insufficient_funds",message:"Insufficient funds",userMessageKey:"payments:errorMessages.insufficientFunds",userMessage:"Your card has insufficient funds. Please try a different payment method.",type:"card_error",actionable:!0,suggestedActionKey:"payments:errorMessages.useAnotherCard",suggestedAction:"Use another card or add funds to your account"},incorrect_cvc:{code:"incorrect_cvc",message:"CVC code is incorrect",userMessageKey:"payments:errorMessages.incorrectCvc",userMessage:"The CVC code you entered is incorrect. Please check and try again.",type:"card_error",actionable:!0,suggestedActionKey:"payments:errorMessages.reenterCvc",suggestedAction:"Re-enter the 3-digit security code on the back of your card"},processing_error:{code:"processing_error",message:"Processing error occurred",userMessageKey:"payments:errorMessages.processingError",userMessage:"An error occurred while processing your payment. Please try again.",type:"card_error",actionable:!0,suggestedActionKey:"payments:errorMessages.tryAgainLater",suggestedAction:"Try again in a few moments"},incorrect_number:{code:"incorrect_number",message:"Card number is incorrect",userMessageKey:"payments:errorMessages.incorrectNumber",userMessage:"The card number you entered is invalid. Please check and try again.",type:"card_error",actionable:!0,suggestedActionKey:"payments:errorMessages.verifyCardNumber",suggestedAction:"Verify your card number"},invalid_expiry_month:{code:"invalid_expiry_month",message:"Invalid expiry month",userMessageKey:"payments:errorMessages.invalidExpiryMonth",userMessage:"The expiry month is invalid. Please check your card details.",type:"card_error",actionable:!0,suggestedActionKey:"payments:errorMessages.enterValidMonth",suggestedAction:"Enter a valid month (01-12)"},invalid_expiry_year:{code:"invalid_expiry_year",message:"Invalid expiry year",userMessageKey:"payments:errorMessages.invalidExpiryYear",userMessage:"The expiry year is invalid. Please check your card details.",type:"card_error",actionable:!0,suggestedActionKey:"payments:errorMessages.enterValidYear",suggestedAction:"Enter a valid year"},authentication_required:{code:"authentication_required",message:"Authentication required",userMessageKey:"payments:errorMessages.authenticationRequired",userMessage:"Your card requires authentication. Please complete the verification process.",type:"authentication_error",actionable:!0,suggestedActionKey:"payments:errorMessages.complete3DSecure",suggestedAction:"Complete 3D Secure verification"},card_not_supported:{code:"card_not_supported",message:"Card not supported",userMessageKey:"payments:errorMessages.cardNotSupported",userMessage:"This card is not supported. Please try a different payment method.",type:"card_error",actionable:!0,suggestedActionKey:"payments:errorMessages.useDifferentCard",suggestedAction:"Use a different card"},api_error:{code:"api_error",message:"API error",userMessageKey:"payments:errorMessages.apiError",userMessage:"A technical error occurred. Please try again later.",type:"api_error",actionable:!1,suggestedActionKey:"payments:errorMessages.contactSupport",suggestedAction:"Contact support if the problem persists"},rate_limit_error:{code:"rate_limit_error",message:"Too many requests",userMessageKey:"payments:errorMessages.rateLimitError",userMe
1ssage:"Too many payment attempts. Please wait a moment and try again.",type:"rate_limit_error",actionable:!0,suggestedActionKey:"payments:errorMessages.waitAndRetry",suggestedAction:"Wait a few minutes before trying again"},travel_policy_refused:{code:"travel_policy_refused",message:"Booking refused by the company travel policy",userMessageKey:"payments:errorMessages.travelPolicyRefused",userMessage:"Your company's travel policy does not allow this booking.",type:"validation_error",actionable:!0,suggestedActionKey:"payments:errorMessages.travelPolicyAction",suggestedAction:"Pick an option within the policy, or ask a manager to make an exception."},company_membership_required:{code:"company_membership_required",message:"Not an active member of the company being charged",userMessageKey:"payments:errorMessages.companyMembershipRequired",userMessage:"This booking is charged to a company you are not an active member of.",type:"validation_error",actionable:!0,suggestedActionKey:"payments:errorMessages.companyMembershipRequiredAction",suggestedAction:"Switch workspace or contact your manager."},policy_check_unavailable:{code:"policy_check_unavailable",message:"Travel-policy gate could not be reached",userMessageKey:"payments:errorMessages.policyCheckUnavailable",userMessage:"Your company's travel policy could not be checked right now.",type:"api_error",actionable:!1,suggestedActionKey:"payments:errorMessages.policyCheckUnavailableAction",suggestedAction:"Please try again in a moment."},budget_exceeded:{code:"budget_exceeded",message:"Company budget exceeded",userMessageKey:"payments:errorMessages.budgetExceeded",userMessage:"This booking exceeds your company travel budget for this month.",type:"validation_error",actionable:!0,suggestedActionKey:"payments:errorMessages.requestBudgetIncrease",suggestedAction:"Ask your company admin to raise the budget or lower the amount."},network_error:{code:"network_error",message:"Network error",userMessageKey:"payments:errorMessages.networkError",userMessage:"Unable to connect. Please check your internet connection and try again.",type:"generic",actionable:!0,suggestedActionKey:"payments:errorMessages.checkConnection",suggestedAction:"Check your internet connection"},server_error:{code:"server_error",message:"Server error",userMessageKey:"payments:errorMessages.serverError",userMessage:"Something went wrong on our side and the payment was not completed. No money has been taken.",type:"api_error",actionable:!1,suggestedActionKey:"payments:errorMessages.tryAgainOrContact",suggestedAction:"Try again or contact support"},server_error_charge_unknown:{code:"server_error_charge_unknown",message:"Server error, payment outcome unknown",userMessageKey:"payments:errorMessages.serverErrorChargeUnknown",userMessage:"Something went wrong on our side while your payment was being processed. We do not yet know whether it went through, so please do not pay again — check your bookings in a moment.",type:"api_error",actionable:!1,suggestedActionKey:"payments:errorMessages.contactSupport",suggestedAction:"Contact support if the problem persists"},payment_outcome_unknown:{code:"payment_outcome_unknown",message:"No answer from the payment/booking backend — outcome unknown",userMessageKey:"payments:errorMessages.serverErrorChargeUnknown",userMessage:"We did not get an answer while your payment was being processed. We do not yet know whether it went through, so please do not pay again — check your bookings in a moment.",type:"api_error",actionable:!1,suggestedActionKey:"payments:errorMessages.contactSupport",suggestedAction:"Contact support if the problem persists"}};for(let[e,r]of(n.request_timeout=n.payment_outcome_unknown,n.connection_lost=n.payment_outcome_unknown,Object.entries({cabin_not_allowed:"travel_policy_refused",hotel_stars_not_allowed:"travel_policy_refused",policy_gate_unavailable:"policy_check_unavailable"})))n[e]=n[r];let s=new Set(["travel_policy_refused","cabin_not_allowed","hotel_stars_not_allowed","company_membership_required","policy_check_unavailable","policy_gate_unavailable"]);function a(e){var r,t,n,s,a,o;if(!e||"object"!=typeof e)return[];let i=[e.code,e.decline_code,null==(r=e.details)?void 0:r.code,null==(t=e.details)?void 0:t.error,e.error,null==(s=e.response)||null==(n=s.data)?void 0:n.code,null==(o=e.response)||null==(a=o.data)?void 0:a.error],c=[];for(let e of i){if("string"!=typeof e)continue;let r=e.trim().toLowerCase();r&&!c.includes(r)&&c.push(r)}return c}function o(e){return a(e).find(e=>!!n[e])}function i(e){var r,t,n,s,a,o;if(!e||"object"!=typeof e)return!1;let i=Number(null!=(o=null!=(a=null!=(s=null!=(n=e.status)?n:e.statusCode)?s:null==(r=e.details)?void 0:r.status)?a:null==(t=e.response)?void 0:t.status)?o:NaN);return Number.isFinite(i)&&i>=500&&i<=599}function c(e){var r,t,n,s,a;
1if(!e||"object"!=typeof e)return;let o=null!=(a=null!=(s=e.paymentState)?s:null==(r=e.details)?void 0:r.paymentState)?a:null==(n=e.response)||null==(t=n.data)?void 0:t.paymentState;return"unknown"===o||"not_charged"===o?o:void 0}function u(e){return"not_charged"!==c(e)}function d(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=Error(e);return r.code&&(t.code=r.code),void 0!==r.statusCode&&(t.statusCode=r.statusCode),r.paymentState&&(t.paymentState=r.paymentState),t}function l(e){return d(e,{code:"payment_outcome_unknown",paymentState:"unknown"})}function p(e){let r=m(e);return"server_error_charge_unknown"===r.code||"payment_outcome_unknown"===r.code}function y(e){let r=m(e);return"travel_policy_refused"===r.code||"company_membership_required"===r.code}function m(e){let r=o(e);if(r&&s.has(r))return n[r];if(i(e))return u(e)?n.server_error_charge_unknown:n.server_error;let t=o(e);if(t)return n[t];if("string"==typeof e){let r=e.toLowerCase();if(r.includes("budget_exceeded")||r.includes("budget exceeded"))return n.budget_exceeded;if(r.includes("declined"))return n.card_declined;if(r.includes("insufficient"))return n.insufficient_funds;if(r.includes("expired"))return n.expired_card;if(r.includes("cvc")||r.includes("cvv"))return n.incorrect_cvc;if(r.includes("authentication"))return n.authentication_required}return(null==e?void 0:e.error)==="budget_exceeded"||(null==e?void 0:e.budgetExceeded)===!0||(null==e?void 0:e.message)&&"string"==typeof e.message&&e.message.toLowerCase().includes("budget_exceeded")?n.budget_exceeded:{code:"generic_error",message:(null==e?void 0:e.message)||"Unknown error",userMessageKey:"payments:errorMessages.genericError",userMessage:"An unexpected error occurred. Please try again or contact support.",type:"generic",actionable:!0,suggestedActionKey:"payments:errorMessages.tryAgainOrContact",suggestedAction:"Try again or contact support"}}function g(e){return(null==e?void 0:e.status)==="requires_action"||(null==e?void 0:e.status)==="requires_source_action"}function h(e){return({requires_payment_method:"payments:statusMessages.requiresPaymentMethod",requires_confirmation:"payments:statusMessages.requiresConfirmation",requires_action:"payments:statusMessages.requiresAction",processing:"payments:statusMessages.processing",requires_capture:"payments:statusMessages.requiresCapture",canceled:"payments:statusMessages.canceled",succeeded:"payments:statusMessages.succeeded"})[e]||"payments:statusMessages.unknown"}function f(e){return({requires_payment_method:"Waiting for payment method",requires_confirmation:"Payment requires confirmation",requires_action:"Authentication required - please complete verification",processing:"Processing payment...",requires_capture:"Payment authorized - awaiting capture",canceled:"Payment was canceled",succeeded:"Payment successful!"})[e]||"Payment status: ".concat(e)}function _(e){let r=["processing_error","api_error","rate_limit_error","network_error"];return r.includes(null==e?void 0:e.code)||r.includes(null==e?void 0:e.decline_code)}function b(e,r){console.error("[Payment Error - ".concat(r,"]:"),{code:null==e?void 0:e.code,type:null==e?void 0:e.type,decline_code:null==e?void 0:e.decline_code,message:null==e?void 0:e.message,param:null==e?void 0:e.param,full_error:e})}},58149:(e,r,t)=>{t.d(r,{$g:()=>l,$w:()=>d,Jc:()=>v,OS:()=>a,Qn:()=>_,T:()=>o,U1:()=>u,UV:()=>p,V0:()=>g,XQ:()=>b,Z1:()=>k,ZM:()=>M,aO:()=>f,cD:()=>h,dS:()=>y,g0:()=>m,rx:()=>c});var n=t(59014);function s(e){let r=(e||"").trim();return r.length>=2?r:(0,n.r6)()||n.a3}let a="usd",o=[{code:"usd",name:"US Dollar",symbol:"$"},{code:"eur",name:"Euro",symbol:"€"},{code:"gbp",name:"British Pound",symbol:"\xa3"},{code:"chf",name:"Swiss Franc",symbol:"CHF"},{code:"cad",name:"Canadian Dollar",symbol:"CA$"},{code:"aud",name:"Australian Dollar",symbol:"A$"},{code:"nzd",name:"New Zealand Dollar",symbol:"NZ$"},{code:"sek",name:"Swedish Krona",symbol:"kr"},{code:"nok",name:"Norwegian Krone",symbol:"kr"},{code:"dkk",name:"Danish Krone",symbol:"kr"},{code:"jpy",name:"Japanese Yen",symbol:"\xa5"}
1,{code:"sgd",name:"Singapore Dollar",symbol:"S$"},{code:"hkd",name:"Hong Kong Dollar",symbol:"HK$"},{code:"inr",name:"Indian Rupee",symbol:"₹"},{code:"thb",name:"Thai Baht",symbol:"฿"},{code:"myr",name:"Malaysian Ringgit",symbol:"RM"},{code:"aed",name:"UAE Dirham",symbol:"د.إ"},{code:"sar",name:"Saudi Riyal",symbol:"﷼"},{code:"pln",name:"Polish Zloty",symbol:"zł"},{code:"czk",name:"Czech Koruna",symbol:"Kč"},{code:"huf",name:"Hungarian Forint",symbol:"Ft"},{code:"ron",name:"Romanian Leu",symbol:"lei"},{code:"try",name:"Turkish Lira",symbol:"₺"},{code:"brl",name:"Brazilian Real",symbol:"R$"},{code:"mxn",name:"Mexican Peso",symbol:"MX$"},{code:"ils",name:"Israeli Shekel",symbol:"₪"},{code:"zar",name:"South African Rand",symbol:"R"},{code:"krw",name:"South Korean Won",symbol:"₩"}],i=new Set(["jpy","krw","bif","clp","djf","gnf","kmf","mga","pyg","rwf","ugx","vnd","vuv","xaf","xof","xpf"]);function c(e){return i.has(e.toLowerCase())}function u(e,r){return 0===r||1===r?e:Math.round(e/r)}function d(e,r){return 0===r||1===r?e:e/r}function l(e,r,t){try{return new Intl.NumberFormat(s(t),{style:"currency",currency:r.toUpperCase(),minimumFractionDigits:2*!c(r),maximumFractionDigits:2*!c(r)}).format(e)}catch(t){return"".concat(e.toFixed(2)," ").concat(r.toUpperCase())}}function p(e,r,t,n){return l(u(e,r)/100,t,n)}function y(e,r,t,n){let s="string"==typeof e?parseFloat(e):e;return isNaN(s)?"".concat(e):p(function(e){let r=100*e;return r<0?-Math.round(-r):Math.round(r)}(s),r,t,n)}function m(e,r,t,n){var s,o;if(!Number.isFinite(e))return null;let i=(r||"").toLowerCase(),c=(t||"").toLowerCase();if(!i||!c)return null;if(i===c)return e;let u=i===a?1:null==n||null==(s=n[i])?void 0:s.exchangeRate,d=c===a?1:null==n||null==(o=n[c])?void 0:o.exchangeRate;return u&&d&&Number.isFinite(u)&&Number.isFinite(d)?e*u/d:null}function g(e,r,t){try{return new Intl.NumberFormat(s(t),{style:"currency",currency:r.toUpperCase(),currencyDisplay:"code",minimumFractionDigits:2*!c(r),maximumFractionDigits:2*!c(r)}).format(e)}catch(t){return"".concat(e.toFixed(2*!c(r))," ").concat(r.toUpperCase())}}function h(e,r,t,n,s){let o="string"==typeof e?parseFloat(e):e;if(!Number.isFinite(o))return"".concat(e);let i=(r||a).toLowerCase(),c=(t||a).toLowerCase(),u=m(o,i,c,n);return null===u?g(o,i,s):l(u,c,s)}function f(e,r){var t;let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=(e||a).toLowerCase();if(s===a)return{preferredCurrency:s,displayCurrency:a,exchangeRate:1,status:"ok",isFallback:!1};let o=null==r||null==(t=r[s])?void 0:t.exchangeRate;return"number"==typeof o&&Number.isFinite(o)&&o>0?{preferredCurrency:s,displayCurrency:s,exchangeRate:o,status:"ok",isFallback:!1}:{preferredCurrency:s,displayCurrency:a,exchangeRate:1,status:n?"pending":"unavailable",isFallback:!0}}function _(e){let r=o.find(r=>r.code===e.toLowerCase());return(null==r?void 0:r.symbol)||e.toUpperCase()}let b={US:"usd",GB:"gbp",DE:"eur",FR:"eur",IT:"eur",ES:"eur",NL:"eur",BE:"eur",AT:"eur",PT:"eur",IE:"eur",FI:"eur",GR:"eur",CH:"chf",SE:"sek",NO:"nok",DK:"dkk",PL:"pln",CZ:"czk",HU:"huf",RO:"ron",HR:"eur",RS:"eur",CA:"cad",AU:"aud",NZ:"nzd",JP:"jpy",SG:"sgd",HK:"hkd",IN:"inr",TH:"thb",MY:"myr",AE:"aed",SA:"sar",TR:"try",BR:"brl",MX:"mxn",IL:"ils",ZA:"zar",KR:"krw"},v={en:"usd",de:"eur",fr:"eur",it:"eur",es:"eur",pt:"eur",nl:"eur",el:"eur",hr:"eur",sr:"eur",ar:"aed",ru:"usd",ja:"jpy",ko:"krw",zh:"usd",hi:"inr",th:"thb",sv:"sek",nb:"nok",da:"dkk",pl:"pln",cs:"czk",hu:"huf",ro:"ron",tr:"try"};function k(e){var r,t;if(!e)return a;let n=null==(r=e.split("-")[0])?void 0:r.toLowerCase(),s=null==(t=e.split("-")[1])?void 0:t.toUpperCase();return s&&b[s]?b[s]:n&&v[n]||a}function M(e,r){let t=(e||"").trim().toUpperCase();return t&&b[t]?b[t]:k(r||void 0)}},66476:(e,r,t)=>{t.d(r,{AD:()=>i,MV:()=>c,WG:()=>o});var n=t(49601),s=t(56548),a=t(27914);class o extends n.dD{async getAuthHeader(){return{}}async initializePayment(e){return this.makeRequest("/api/payment/initialize",{method:"POST",body:JSON.stringify(e)})}async processStripePayment(e){return this.makeRequest("/api/payment/stripe",{method:"POST",body:JSON.stringify(e)})}async setupStripeIntent(e){throw console.warn("[PaymentService] setupStripeIntent is deprecated. Use profileService.createSetupIntent() instead."),Error("setupStripeIntent is deprecated. Use profileService.createSetupIntent() instead.")}async getPaymentDetails(e){let r=this.buildQueryString({referenceId:e});
1return this.makeRequest("/api/payment/details".concat(r))}async getPaymentState(e){let r=this.buildQueryString({referenceId:e});return this.makeRequest("/api/payment/state".concat(r))}async getPayments(){return this.makeRequest("/api/payment/payments")}async requestRefund(e,r){return this.makeRequest("/api/payment/refund-request",{method:"POST",body:JSON.stringify({paymentId:e,reason:r})})}async getPaymentLogs(e){let r=e?this.buildQueryString({referenceId:e}):"";return this.makeRequest("/api/payment/logs".concat(r))}async confirmStripePayment(e,r){return this.makeRequest("/api/payment/stripe/confirm",{method:"POST",body:JSON.stringify({referenceId:e,paymentMethodId:r})})}async createCardSetupIntent(e){throw console.warn("[PaymentService] createCardSetupIntent is deprecated. Use profileService.createSetupIntent() instead."),Error("createCardSetupIntent is deprecated. Use profileService.createSetupIntent() instead.")}async finalizeCardAddition(e,r){throw console.warn("[PaymentService] finalizeCardAddition is deprecated. Use profileService.setDefaultPaymentMethod() instead."),Error("finalizeCardAddition is deprecated. Use profileService.setDefaultPaymentMethod() instead.")}async addStripeCard(e){throw console.warn("[PaymentService] addStripeCard is deprecated. Use profileService.createSetupIntent() instead."),Error("addStripeCard is deprecated. Use profileService.createSetupIntent() instead.")}async getPaymentMethodsStripe(e){try{let r=await this.makeRequest("/api/payment/details",{method:"POST",body:JSON.stringify({email:e})});if(console.log(r),!r.error&&r.paymentMethods)return r.paymentMethods;return null}catch(e){return console.log(e),null}}async payStripeIntent(e,r,t){try{let n=await this.makeRequest("/api/payment/stripe/confirm",{method:"POST",body:JSON.stringify({referenceId:e,paymentIntentId:r,paymentMethodId:t})});if(console.log(n),!n.error&&n.success)return n.success;return!1}catch(e){return console.log(e),!1}}async createAndPayStripeIntent(e,r,t,n,s){try{let a={referenceId:e,paymentMethodId:r};t&&(a.companyId=t),n&&(a.useCredits=!0),s&&!t&&(a.donation=s);let o=await this.makeRequest("/api/payment/stripe",{method:"POST",body:JSON.stringify(a)});if(o.requiresApproval&&o.approvalId)return{success:!1,requiresApproval:!0,approvalId:o.approvalId,expiresAt:o.expiresAt,message:o.message};if(o.requiresAction&&o.clientSecret)return{success:!0,requiresAction:!0,clientSecret:o.clientSecret,paymentIntentId:o.paymentIntentId};if(!o.error&&o.success)return{success:!0,paidWithCredit:o.paidWithCredit,creditApplied:o.creditApplied};return{success:!1,error:o.error||"Payment failed",budgetExceeded:o.budgetExceeded,remainingBudgetCents:o.remainingBudgetCents,budgetCents:o.budgetCents,spentCents:o.spentCents}}catch(e){var o,i,c,u;return console.error("[PaymentService] createAndPayStripeIntent error:",e),{success:!1,error:(null==e?void 0:e.message)||"Payment request failed",..."number"==typeof(null==e?void 0:e.statusCode)?{statusCode:e.statusCode}:{},..."number"==typeof(null==e?void 0:e.status)?{statusCode:e.status}:{},...(0,a.Ov)(e)?{paymentState:(0,a.Ov)(e)}:{},...(null==e?void 0:e.code)||(null==e||null==(o=e.details)?void 0:o.code)?{code:null!=(u=e.code)?u:null==(i=e.details)?void 0:i.code}:{},...(null==e||null==(c=e.details)?void 0:c.budgetExceeded)?{budgetExceeded:!0}:{}}}}async getApprovalStatus(e){return this.makeRequest("/api/payment/approve?id=".concat(encodeURIComponent(e)))}async confirmApproval(e){return this.makeRequest("/api/payment/approve",{method:"POST",body:JSON.stringify({approvalId:e})})}async getExchangeRates(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"locked",t=new URLSearchParams;return e&&t.set("currency",e),r&&t.set("mode",r),this.makeRequest("/api/payment/exchange-rate?".concat(t.toString()))}async getCreditBalance(){return this.makeRequest("/api/credit/balance")}async getCreditTransactions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=this.buildQueryString({limit:e,offset:r});return this.makeRequest("/api/credit/transactions".concat(t))}
1async purchaseVoucher(e){return this.makeRequest("/api/voucher/purchase",{method:"POST",body:JSON.stringify(e)})}async getPurchasedVouchers(){return this.makeRequest("/api/voucher/purchased")}async revealVoucherCode(e){return this.makeRequest("/api/voucher/".concat(e,"/reveal"))}async redeemVoucher(e){return this.makeRequest("/api/voucher/redeem",{method:"POST",body:JSON.stringify({code:e})})}async getFxRate(e,r){let t=this.buildQueryString({from:e.toLowerCase(),to:r.toLowerCase()});return this.makeRequest("/api/payment/internal/fx".concat(t))}async convertCents(e){return this.makeRequest("/api/payment/internal/fx/convert",{method:"POST",body:JSON.stringify({from:e.from.toLowerCase(),to:e.to.toLowerCase(),amountCents:e.amountCents})})}constructor(e){super({...e,useApiClient:!0})}}function i(e,r){return new o({baseUrl:e,getBaseUrl:e?void 0:()=>s.cA.VACABEE_PAYMENT_API_URL,defaultHeaders:{"Content-Type":"application/json"}})}let c=i()}}]);

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.