// Metro module 4509 (f4510). import PaymentSourceRecord from "../../../records/PaymentSourceRecord"; import BillingInfoStore from "../../../stores/billing/BillingInfoStore"; import SubscriptionStore from "../../../stores/billing/SubscriptionStore"; import { Endpoints, REDIRECTED_PAYMENT_SOURCES, PaymentGateways, SubscriptionStatusTypes, AnalyticEvents } from "../../../Constants"; import { UserLazyPerkSyncLevels } from "../../../components/billing/BillingConstants"; import { ADYEN_PAYMENT_SOURCES, SubscriptionTypes, CurrencyCodes, PREPAID_PAYMENT_SOURCES, PaymentStatusTypes } from "../../../_bundle/Module505"; import Dispatcher from "../../../Dispatcher"; import * as _sendRequest from "../../../_bundle/sendRequest"; import { getAPIBaseURL } from "../../../_bundle/sendRequest"; import { BillingError } from "../../../errors/index"; import { ErrorCodes, parseV8BillingAddressSkemaErrorToBillingError } from "../../../errors/BillingError"; import Module3771 from "../../../_bundle/Module3771"; import { coerceExistingItemsToNewItemInterval, getItemPlansTotalServerPrice, getItemsWithUpsertedPremiumPlanId } from "../../../utils/PremiumUtils"; import * as _BillingSharedActionCreators from "./BillingSharedActionCreators"; import { popupBridgeState, dispatchConfirmationError } from "./BillingSharedActionCreators"; import * as _BillingPaymentGatewayActionCreators from "./BillingPaymentGatewayActionCreators"; import { createPaymentSourceToken, paymentIntentSucceeded } from "./BillingPaymentGatewayActionCreators"; import { createGatewayCheckoutContext } from "../../../utils/BillingUtils"; import { getPurchaseToken } from "../../../utils/PurchaseTokenUtils"; import { AdyenPaymentConfirmationHandler, StripePaymentConfirmationHandler } from "./HandleConfirmPaymentRegistry"; import AnalyticsUtils from "../../../utils/AnalyticsUtils"; function $mk114557($env) { return () => Dispatcher.dispatch({ type: "BILLING_IP_COUNTRY_CODE_FETCH_START", request: $env[1] }); } function $mk114558($env) { return () => Dispatcher.dispatch({ type: "BILLING_IP_LOCATION_FETCH_START", request: $env[1] }); } let handlePaymentConfirmation, updateSubscription, _excluded; let env2720 = {}; export async function fetchPayment(c25180_0) { let c29344_0 = await _sendRequest.HTTP.get({ url: Endpoints.BILLING_PAYMENT(c25180_0), rejectWithError: true }); Dispatcher.dispatch({ type: "BILLING_PAYMENT_FETCH_SUCCESS", payment: c29344_0.body }); return c29344_0; } handlePaymentConfirmation = function handlePaymentConfirmation(a0, a1) { return a1 != null && ADYEN_PAYMENT_SOURCES.has(a1.type) ? new AdyenPaymentConfirmationHandler(a1, a0).confirmPayment() : new StripePaymentConfirmationHandler(a1, a0).confirmPayment(); }; updateSubscription = async function updateSubscription(c25189_0, c25189_1, c25189_2, c25189_3, c25189_4, c25189_5, c25189_6) { let r141, r200, r248, r464; let c25189_7, c25189_8, c25189_9, c25189_10, c25189_12; let c25189_11 = 0; const r15 = env2720; let r14 = "payment id cannot be null on redirected confirmations."; try { let env29353; c25189_10 = r15; const r20 = env29353 = {}; c25189_9 = r20; env29353[0] = c25189_0; env29353[1] = c25189_1; env29353[2] = c25189_2; env29353[3] = c25189_3; env29353[4] = c25189_4; env29353[5] = c25189_5; env29353[6] = c25189_6; env29353[7] = void 0; env29353[8] = void 0; env29353[9] = void 0; env29353[10] = void 0; Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_UPDATE_START" }); c25189_11 = 1; const r57 = {}; c25189_8 = r57; r57.status = c25189_1.status; const id = c25189_1.paymentSource?.id; L23: { L16: { r57.payment_source_id = id; const r62 = c25189_1.paymentSource != null; const payment_source_token = null; if (r62) { const paymentSourceToken = await createPaymentSourceToken(c25189_1.paymentSource); r14 = "payment id cannot be null on redirected confirmations."; const r303 = c25189_8; r303.payment_source_token = paymentSourceToken; r303.currency = env29353[1].currency; const gatewayCheckoutContext2 = await createGatewayCheckoutContext(env29353[1].paymentSource); r14 = "payment id cannot be null on redirected confirmations."; const r336 = c25189_8; r336.gateway_checkout_context = gatewayCheckoutContext2; r336.load_id = env29353[6]; r336.pause_duration = env29353[1].pauseDuration; r336.purchase_token = getPurchaseToken(); r336.expected_invoice_price = env29353[2]; r336.expected_renewal_price = env29353[3]; env29353[7] = r336; if (env29353[1].paymentSource != null && ADYEN_PAYMENT_SOURCES.has(env29353[1].paymentSource.type)) { r141 = popupBridgeState(env29353[1].paymentSource.type); break L16; } if (env29353[1].items != null) { env29353[7].items = coerceExistingItemsToNewItemInterval(env29353[1].items).map(({ planId, ...rest }) => ({ ...rest, plan_id: planId })); } r200 = _sendRequest.HTTP.patch({ url: Endpoints.BILLING_SUBSCRIPTION(env29353[0].id), query: { location: env29353[5], location_stack: env29353[4] }, body: env29353[7], oldFormErrors: true, rejectWithError: false }); break L23; } const r71 = c25189_8; r71.payment_source_token = payment_source_token; r71.currency = env29353[1].currency; const gatewayCheckoutContext = await createGatewayCheckoutContext(env29353[1].paymentSource); r14 = "payment id cannot be null on redirected confirmations."; const r104 = c25189_8; r104.gateway_checkout_context = gatewayCheckoutContext; r104.load_id = env29353[6]; r104.pause_duration = env29353[1].pauseDuration; r104.purchase_token = getPurchaseToken(); r104.expected_invoice_price = env29353[2]; r104.expected_renewal_price = env29353[3]; env29353[7] = r104; if (!(env29353[1].paymentSource != null && ADYEN_PAYMENT_SOURCES.has(env29353[1].paymentSource.type))) { if (env29353[1].items != null) { env29353[7].items = coerceExistingItemsToNewItemInterval(env29353[1].items).map(({ planId, ...rest }) => ({ ...rest, plan_id: planId })); } r200 = _sendRequest.HTTP.patch({ url: Endpoints.BILLING_SUBSCRIPTION(env29353[0].id), query: { location: env29353[5], location_stack: env29353[4] }, body: env29353[7], oldFormErrors: true, rejectWithError: false }); break L23; } r141 = popupBridgeState(env29353[1].paymentSource.type); } const r33 = await r141; r14 = "payment id cannot be null on redirected confirmations."; env29353[8] = r33; const r164 = env29353[7]; const aPIBaseURL = getAPIBaseURL(); const type = env29353[1].paymentSource.type; const r176 = env29353[8]; c25189_7 = r176; if (r176 == null) { c25189_7 = ""; } r164.return_url = aPIBaseURL + Endpoints.BILLING_POPUP_BRIDGE_CALLBACK_REDIRECT_PREFIX(type, c25189_7, "success"); if (env29353[1].items != null) { env29353[7].items = coerceExistingItemsToNewItemInterval(env29353[1].items).map(({ planId, ...rest }) => ({ ...rest, plan_id: planId })); } r200 = _sendRequest.HTTP.patch({ url: Endpoints.BILLING_SUBSCRIPTION(env29353[0].id), query: { location: env29353[5], location_stack: env29353[4] }, body: env29353[7], oldFormErrors: true, rejectWithError: false }); } const r35 = await r200; r14 = "payment id cannot be null on redirected confirmations."; env29353[9] = r35; Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_UPDATE_SUCCESS", subscription: env29353[9].body }); r248 = { subscription: env29353[9].body, redirectConfirmation: false }; c25189_11 = 0; } catch ($e) { const r43 = $e; let r8 = r43; c25189_12 = r43; if (c25189_11 !== 0) { while (true) { try { const r414 = c25189_12; c25189_11 = 0; env29353[11] = r414; env29353[10] = env29353[11] instanceof BillingError ? env29353[11] : new BillingError(env29353[11]); Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_UPDATE_FAIL", error: env29353[10] }); if (env29353[10].code !== ErrorCodes.CONFIRMATION_REQUIRED) { throw env29353[10]; } if (!env29353[11].body.payment_id) { throw dispatchConfirmationError(r14); } r464 = (0, handlePaymentConfirmation)(env29353[11].body, env29353[1].paymentSource); } catch (r410) { r8 = r410; c25189_12 = r410; if (c25189_11 === 0) { break; } continue; } return r464; } } throw r8; } return r248; }; _excluded = ["line1", "line2", "postalCode"]; for (const key in _BillingPaymentGatewayActionCreators) { exports[key] = _BillingPaymentGatewayActionCreators[key]; } for (const key2 in _BillingSharedActionCreators) { exports[key2] = _BillingSharedActionCreators[key2]; } export function fetchPaymentSourceCreationContext() { return _sendRequest.HTTP.get({ url: Endpoints.BILLING_PAYMENT_SOURCE_CREATION_CONTEXT, oldFormErrors: true, rejectWithError: false }); } export async function deletePaymentSource(c25175_0) { let c25175_3; let c25175_4 = 0; let c29339_0, c29339_1, c29339_2; try { c29339_0 = c25175_0; c29339_1 = void 0; Dispatcher.dispatch({ type: "BILLING_PAYMENT_SOURCE_REMOVE_START" }); c25175_4 = 1; await _sendRequest.HTTP.del({ url: Endpoints.BILLING_PAYMENT_SOURCE(c25175_0), oldFormErrors: true, rejectWithError: false }); Dispatcher.dispatch({ type: "BILLING_PAYMENT_SOURCE_REMOVE_SUCCESS", id: c29339_0 }); c25175_4 = 0; } catch ($e) { const r26 = $e; let r8 = r26; c25175_3 = r26; if (c25175_4 !== 0) { while (true) { try { const r76 = c25175_3; c25175_4 = 0; c29339_2 = r76; c29339_1 = new BillingError(c29339_2); Dispatcher.dispatch({ type: "BILLING_PAYMENT_SOURCE_REMOVE_FAIL", error: c29339_1 }); throw c29339_1; } catch (r72) { r8 = r72; c25175_3 = r72; if (c25175_4 === 0) { break; } } } } throw r8; } } export async function updatePaymentSource(c25176_0, c25176_1) { let c25176_4; let c25176_5 = 0; let c29340_0, c29340_1, c29340_2, c29340_3; try { c29340_0 = void 0; c29340_1 = void 0; c29340_2 = void 0; Dispatcher.dispatch({ type: "BILLING_PAYMENT_SOURCE_UPDATE_START" }); c25176_5 = 1; const billingAddress = c25176_1.billingAddress; const { line1, line2, postalCode, ...rest } = billingAddress; c29340_0 = await _sendRequest.HTTP.patch({ url: Endpoints.BILLING_PAYMENT_SOURCE(c25176_0), body: { billing_address: { ...rest, line_1: line1, line_2: line2, postal_code: postalCode }, expires_month: c25176_1.expiresMonth, expires_year: c25176_1.expiresYear, default: c25176_1.isDefault }, rejectWithError: false }); c29340_1 = PaymentSourceRecord.createFromServer(c29340_0.body); Dispatcher.dispatch({ type: "BILLING_PAYMENT_SOURCE_UPDATE_SUCCESS", paymentSource: c29340_1 }); c25176_5 = 0; } catch ($e) { const r31 = $e; let r8 = r31; c25176_4 = r31; if (c25176_5 !== 0) { while (true) { try { const r94 = c25176_4; c25176_5 = 0; c29340_3 = r94; c29340_2 = parseV8BillingAddressSkemaErrorToBillingError(c29340_3); Dispatcher.dispatch({ type: "BILLING_PAYMENT_SOURCE_UPDATE_FAIL", error: c29340_2 }); throw c29340_2; } catch (r90) { r8 = r90; c25176_4 = r90; if (c25176_5 === 0) { break; } } } } throw r8; } } export async function fetchPaymentSources() { let r69; let c25177_0, c25177_1, c25177_2; let c25177_3 = 0; const r10 = env2720; L12: { try { let env29341; c25177_1 = r10; const r26 = env29341 = { $parent: r10 }; c25177_0 = r26; env29341[0] = void 0; env29341[1] = void 0; if (BillingInfoStore.isPaymentSourceFetching) { break L12; } c25177_3 = 1; const r35 = _sendRequest.HTTP.get({ url: Endpoints.BILLING_PAYMENT_SOURCES, oldFormErrors: true, rejectWithError: false }); env29341[0] = r35; Dispatcher.wait(() => Dispatcher.dispatch({ type: "BILLING_PAYMENT_SOURCES_FETCH_START", request: env29341[0] })); env29341[1] = await r35; Dispatcher.dispatch({ type: "BILLING_PAYMENT_SOURCES_FETCH_SUCCESS", paymentSources: env29341[1].body }); r69 = env29341[1]; c25177_3 = 0; } catch ($e) { const r24 = $e; let r8 = r24; c25177_2 = r24; if (c25177_3 !== 0) { while (true) { try { c25177_3 = 0; Dispatcher.dispatch({ type: "BILLING_PAYMENT_SOURCES_FETCH_FAIL" }); } catch (r74) { r8 = r74; c25177_2 = r74; if (c25177_3 === 0) { break; } continue; } return null; } } throw r8; } return r69; } } export async function fetchPaymentSource(c25178_0) { let r65; let c25178_3; let c25178_4 = 0; let c29342_0, c29342_1, c29342_2; try { c29342_0 = void 0; c29342_1 = void 0; c25178_4 = 1; c29342_0 = await _sendRequest.HTTP.get({ url: Endpoints.BILLING_PAYMENT_SOURCE(c25178_0), oldFormErrors: true, rejectWithError: false }); c29342_1 = PaymentSourceRecord.createFromServer(c29342_0.body); Dispatcher.dispatch({ type: "BILLING_PAYMENT_SOURCE_FETCH_SUCCESS", paymentSource: c29342_1 }); r65 = c29342_0; c25178_4 = 0; } catch ($e) { const r25 = $e; let r8 = r25; c25178_3 = r25; if (c25178_4 !== 0) { while (true) { try { const r74 = c25178_3; c25178_4 = 0; c29342_2 = r74; Dispatcher.dispatch({ type: "BILLING_PAYMENT_SOURCE_FETCH_FAIL" }); throw c29342_2; } catch (r70) { r8 = r70; c25178_3 = r70; if (c25178_4 === 0) { break; } } } } throw r8; } return r65; } export async function fetchWalletInformation(paymentSourceId) { let r79; let c25179_4 = 0; let c29343_0, c29343_1, c29343_2; try { c29343_0 = paymentSourceId; c29343_1 = void 0; c29343_2 = void 0; Dispatcher.dispatch({ type: "BILLING_WALLET_BALANCE_FETCH_START", paymentSourceId }); c25179_4 = 1; c29343_1 = await _sendRequest.HTTP.get({ url: Endpoints.BILLING_WALLET_INFORMATION(paymentSourceId), query: { get_history: false }, rejectWithError: true }); c29343_2 = { currency: c29343_1.body.currency, amount: c29343_1.body.balance }; Dispatcher.dispatch({ type: "BILLING_WALLET_BALANCE_FETCH_SUCCESS", paymentSourceId: c29343_0, currency: c29343_2.currency, amount: c29343_2.amount }); r79 = c29343_2; c25179_4 = 0; } catch ($e) { let r8 = $e; if (c25179_4 !== 0) { while (true) { try { c25179_4 = 0; Dispatcher.dispatch({ type: "BILLING_WALLET_BALANCE_FETCH_FAIL", paymentSourceId: c29343_0 }); } catch ($e) { r8 = $e; if (c25179_4 === 0) { break; } continue; } return null; } } throw r8; } return r79; } export async function fetchPayments(c25181_0, c25181_1) { let r97; let c25181_4; let c25181_5 = 0; let c29345_0, c29345_1, c29345_2, c29345_3; try { c29345_0 = void 0; c29345_1 = void 0; if (c25181_0 !== void 0) { c29345_0 = c25181_0; c29345_1 = c25181_1; c29345_2 = void 0; } else { c29345_0 = 10; c29345_1 = c25181_1; c29345_2 = void 0; } await void 0; Dispatcher.dispatch({ type: "BILLING_PAYMENTS_FETCH_START" }); c25181_5 = 1; c29345_2 = await _sendRequest.HTTP.get({ url: Endpoints.BILLING_PAYMENTS, query: { limit: c29345_0, before: c29345_1 }, oldFormErrors: true, rejectWithError: false }); Dispatcher.dispatch({ type: "BILLING_PAYMENTS_FETCH_SUCCESS", payments: c29345_2.body }); r97 = c29345_2; c25181_5 = 0; } catch ($e) { const r28 = $e; let r8 = r28; c25181_4 = r28; if (c25181_5 !== 0) { while (true) { try { const r106 = c25181_4; c25181_5 = 0; c29345_3 = r106; Dispatcher.dispatch({ type: "BILLING_PAYMENTS_FETCH_FAIL" }); throw c29345_3; } catch (r102) { r8 = r102; c25181_4 = r102; if (c25181_5 === 0) { break; } } } } throw r8; } return r97; } export async function fetchSubscriptions() { let r116; let c25182_0, c25182_1, c25182_2; let c25182_3 = 0; const r13 = env2720; try { let env29346; c25182_1 = r13; const r19 = env29346 = { $parent: r13 }; c25182_0 = r19; env29346[0] = void 0; env29346[1] = void 0; Dispatcher.wait(() => { Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_FETCH_START" }); }); c25182_3 = 1; let ADD_PERKS_IF_DETECTED = UserLazyPerkSyncLevels.ADD_PERKS_IF_DETECTED; const lastLazyPerkSync = SubscriptionStore.getLastLazyPerkSync(); env29346[0] = lastLazyPerkSync; if (lastLazyPerkSync == null || Module3771().diff(lastLazyPerkSync, "hours") >= 1) { ADD_PERKS_IF_DETECTED = UserLazyPerkSyncLevels.FULL_RESYNC; env29346[0] = Module3771(); } env29346[1] = await _sendRequest.HTTP.get({ url: Endpoints.BILLING_SUBSCRIPTIONS, oldFormErrors: true, rejectWithError: false, query: { sync_level: ADD_PERKS_IF_DETECTED } }); if (env29346[1].body == null) { throw new BillingError(`response body is null, response: ${JSON.stringify(env29346[1])}`, env29346[1].status); } Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_FETCH_SUCCESS", subscriptions: env29346[1].body, lastLazyPerkSync: env29346[0] }); r116 = env29346[1]; c25182_3 = 0; } catch ($e) { const r32 = $e; let r8 = r32; c25182_2 = r32; if (c25182_3 !== 0) { while (true) { try { const r125 = c25182_2; c25182_3 = 0; env29346[2] = r125; Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_FETCH_FAIL" }); throw env29346[2]; } catch (r121) { r8 = r121; c25182_2 = r121; if (c25182_3 === 0) { break; } } } } throw r8; } return r116; } export async function getPerksRelevance() { let c25183_0, c25183_1, c25183_2; let c25183_3 = 0; const r11 = env2720; L10: { try { let env29347; c25183_1 = r11; const r25 = env29347 = { $parent: r11 }; c25183_0 = r25; env29347[0] = void 0; Dispatcher.wait(() => { Dispatcher.dispatch({ type: "BILLING_PERKS_RELEVANCE_FETCH_START" }); }); c25183_3 = 1; env29347[0] = await _sendRequest.HTTP.get({ url: Endpoints.BILLING_PERKS_RELEVANCE, rejectWithError: true }); Dispatcher.dispatch({ type: "BILLING_PERKS_RELEVANCE_FETCH_SUCCESS", res: env29347[0].body }); c25183_3 = 0; } catch ($e) { const r23 = $e; let r8 = r23; c25183_2 = r23; if (c25183_3 !== 0) { while (true) { try { c25183_3 = 0; Dispatcher.dispatch({ type: "BILLING_PERKS_RELEVANCE_FETCH_FAIL" }); break L10; } catch (r70) { r8 = r70; c25183_2 = r70; if (c25183_3 === 0) { break; } } } } throw r8; } } } export async function fetchMostRecentSubscription() { let r83; let c25184_0, c25184_1, c25184_2; let c25184_3 = 0; const r12 = env2720; try { let env29348; c25184_1 = r12; const r28 = env29348 = { $parent: r12 }; c25184_0 = r28; env29348[0] = void 0; Dispatcher.wait(() => { Dispatcher.dispatch({ type: "BILLING_MOST_RECENT_SUBSCRIPTION_FETCH_START" }); }); c25184_3 = 1; env29348[0] = await _sendRequest.HTTP.get({ url: Endpoints.BILLING_SUBSCRIPTIONS, query: { include_inactive: true, limit: 2, exclude_unpaid_statuses: true, subscription_type: SubscriptionTypes.PREMIUM }, oldFormErrors: true, rejectWithError: true }); if (env29348[0].ok) { Dispatcher.dispatch({ type: "BILLING_MOST_RECENT_SUBSCRIPTION_FETCH_SUCCESS", subscription: env29348[0].body.length > 0 ? env29348[0].body[0] : null }); Dispatcher.dispatch({ type: "BILLING_PREVIOUS_PREMIUM_SUBSCRIPTION_FETCH_SUCCESS", subscription: env29348[0].body.length > 1 ? env29348[0].body[1] : null }); } else { Dispatcher.dispatch({ type: "BILLING_MOST_RECENT_SUBSCRIPTION_FETCH_FAIL" }); } r83 = env29348[0]; c25184_3 = 0; } catch ($e) { const r26 = $e; let r8 = r26; c25184_2 = r26; if (c25184_3 !== 0) { while (true) { try { c25184_3 = 0; Dispatcher.dispatch({ type: "BILLING_MOST_RECENT_SUBSCRIPTION_FETCH_FAIL" }); } catch (r110) { r8 = r110; c25184_2 = r110; if (c25184_3 === 0) { break; } continue; } return void 0; } } throw r8; } return r83; } export async function createSubscription(c25185_0) { let r283, r363; let c25185_1, body, c25185_3, post, HTTP, c25185_6, c25185_7, c25185_9; let c25185_8 = 0; const r20 = env2720; let r13 = "payment id cannot be null on redirected confirmations."; try { let env29349; c25185_6 = r20; const r48 = env29349 = {}; c25185_7 = r48; env29349[0] = void 0; env29349[1] = void 0; env29349[2] = void 0; env29349[3] = void 0; env29349[4] = void 0; env29349[5] = void 0; env29349[6] = void 0; env29349[7] = void 0; env29349[8] = void 0; env29349[9] = void 0; env29349[0] = c25185_0.items; env29349[1] = c25185_0.paymentSource; env29349[2] = c25185_0.trialId; env29349[3] = c25185_0.code; env29349[4] = c25185_0.currency; env29349[5] = c25185_0.metadata; env29349[6] = c25185_0.referralCode; env29349[7] = c25185_0.loadId; env29349[8] = c25185_0.expectedInvoicePrice; env29349[9] = c25185_0.expectedRenewalPrice; env29349[10] = void 0; env29349[11] = void 0; env29349[12] = void 0; env29349[13] = void 0; await void 0; r13 = "payment id cannot be null on redirected confirmations."; Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_UPDATE_START" }); env29349[0] = coerceExistingItemsToNewItemInterval(env29349[0]); env29349[10] = null; if (env29349[1] != null && ADYEN_PAYMENT_SOURCES.has(env29349[1].type)) { const r136 = await popupBridgeState(env29349[1].type); r13 = "payment id cannot be null on redirected confirmations."; env29349[11] = r136; const aPIBaseURL = getAPIBaseURL(); const type = env29349[1].type; const r165 = env29349[11]; c25185_1 = r165; if (r165 == null) { c25185_1 = ""; } env29349[10] = aPIBaseURL + Endpoints.BILLING_POPUP_BRIDGE_CALLBACK_REDIRECT_PREFIX(type, c25185_1, "success"); } c25185_8 = 1; HTTP = _sendRequest.HTTP; post = HTTP.post; const r103 = {}; c25185_3 = r103; r103.url = Endpoints.BILLING_SUBSCRIPTIONS; body = {}; body.items = env29349[0].map((item) => ({ plan_id: item.planId, quantity: item.quantity })); body.payment_source_id = env29349[1] != null ? env29349[1].id : null; const r172 = env29349[1] != null; let payment_source_token = null; if (r172) { const paymentSourceToken = await createPaymentSourceToken(env29349[1]); r13 = "payment id cannot be null on redirected confirmations."; payment_source_token = paymentSourceToken; } body.payment_source_token = payment_source_token; body.trial_id = env29349[2]; body.return_url = env29349[10]; body.code = env29349[3]; const currency = env29349[1] != null ? env29349[4] : CurrencyCodes.USD; body.currency = currency; body.metadata = env29349[5]; const gatewayCheckoutContext = await createGatewayCheckoutContext(env29349[1]); r13 = "payment id cannot be null on redirected confirmations."; const r231 = c25185_3; body.gateway_checkout_context = gatewayCheckoutContext; body.purchase_token = getPurchaseToken(); body.referral_code = env29349[6]; body.load_id = env29349[7]; body.expected_invoice_price = env29349[8]; body.expected_renewal_price = env29349[9]; r231.body = body; r231.oldFormErrors = true; r231.rejectWithError = false; const r252 = await post.call(HTTP, r231); r13 = "payment id cannot be null on redirected confirmations."; env29349[12] = r252; Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_UPDATE_SUCCESS", subscription: env29349[12].body }); r283 = { subscription: env29349[12].body, redirectConfirmation: false }; c25185_8 = 0; } catch ($e) { const r46 = $e; let r8 = r46; c25185_9 = r46; if (c25185_8 !== 0) { while (true) { try { const r314 = c25185_9; c25185_8 = 0; env29349[14] = r314; env29349[13] = env29349[14] instanceof BillingError ? env29349[14] : new BillingError(env29349[14]); Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_UPDATE_FAIL", error: env29349[13] }); if (env29349[13].code !== ErrorCodes.CONFIRMATION_REQUIRED) { throw env29349[13]; } if (!env29349[14].body.payment_id) { throw dispatchConfirmationError(r13); } r363 = (0, handlePaymentConfirmation)(env29349[14].body, env29349[1]); } catch (r310) { r8 = r310; c25185_9 = r310; if (c25185_8 === 0) { break; } continue; } return r363; } } throw r8; } return r283; } export async function payInvoiceManually(c25186_0, c25186_1, c25186_2, c25186_3, c25186_4) { let r164, r199, r409; let c25186_5, body2, c25186_7, post2, HTTP2, c25186_13; let c25186_12 = 0; let c29350_0, c29350_1, c29350_2, c29350_3, c29350_4, c29350_6, c29350_7, c29350_8, c29350_5, c29350_9; let r10 = "payment id cannot be null on redirected confirmations."; L21: { try { L19: { c29350_0 = c25186_0; c29350_1 = c25186_1; c29350_2 = c25186_2; c29350_3 = c25186_3; c29350_4 = c25186_4; c29350_6 = void 0; c29350_7 = void 0; c29350_8 = void 0; c29350_5 = null; if (c25186_2 != null && PREPAID_PAYMENT_SOURCES.has(c25186_2.type)) { const r33 = await popupBridgeState(c25186_2.type); r10 = "payment id cannot be null on redirected confirmations."; c29350_6 = r33; const aPIBaseURL = getAPIBaseURL(); const type = c29350_2.type; const r110 = c29350_6; c25186_5 = r110; if (r110 == null) { c25186_5 = ""; } c29350_5 = aPIBaseURL + Endpoints.BILLING_POPUP_BRIDGE_CALLBACK_REDIRECT_PREFIX(type, c25186_5, "success"); c25186_12 = 1; HTTP2 = _sendRequest.HTTP; post2 = HTTP2.post; const r123 = {}; c25186_7 = r123; r123.url = Endpoints.BILLING_INVOICE_MANUAL_PAYMENT(c29350_0.id, c29350_1); body2 = {}; body2.payment_source_id = c29350_2 != null ? c29350_2.id : null; const r136 = c29350_2 != null; const payment_source_token = null; if (r136) { const paymentSourceToken = await createPaymentSourceToken(c29350_2); r10 = "payment id cannot be null on redirected confirmations."; const r228 = c25186_7; body2.payment_source_token = paymentSourceToken; body2.return_url = c29350_5; body2.currency = c29350_3; body2.purchase_token = getPurchaseToken(); body2.load_id = c29350_4; r228.body = body2; r228.oldFormErrors = true; r228.rejectWithError = false; r164 = post2.call(HTTP2, r228); break L19; } const r150 = c25186_7; body2.payment_source_token = payment_source_token; body2.return_url = c29350_5; body2.currency = c29350_3; body2.purchase_token = getPurchaseToken(); body2.load_id = c29350_4; r150.body = body2; r150.oldFormErrors = true; r150.rejectWithError = false; r164 = post2.call(HTTP2, r150); } else { c25186_12 = 1; HTTP2 = _sendRequest.HTTP; post2 = HTTP2.post; const r57 = {}; c25186_7 = r57; r57.url = Endpoints.BILLING_INVOICE_MANUAL_PAYMENT(c29350_0.id, c29350_1); body2 = {}; body2.payment_source_id = c29350_2 != null ? c29350_2.id : null; const r245 = c29350_2 != null; const payment_source_token3 = null; if (!r245) { const r260 = c25186_7; body2.payment_source_token = payment_source_token3; body2.return_url = c29350_5; body2.currency = c29350_3; body2.purchase_token = getPurchaseToken(); body2.load_id = c29350_4; r260.body = body2; r260.oldFormErrors = true; r260.rejectWithError = false; const r39 = await post2.call(HTTP2, r260); r10 = "payment id cannot be null on redirected confirmations."; c29350_7 = r39; Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_UPDATE_SUCCESS", subscription: c29350_7.body }); r199 = { subscription: c29350_7.body, redirectConfirmation: REDIRECTED_PAYMENT_SOURCES.has(c29350_2.type) }; c25186_12 = 0; break L21; } const paymentSourceToken2 = await createPaymentSourceToken(c29350_2); r10 = "payment id cannot be null on redirected confirmations."; const r337 = c25186_7; body2.payment_source_token = paymentSourceToken2; body2.return_url = c29350_5; body2.currency = c29350_3; body2.purchase_token = getPurchaseToken(); body2.load_id = c29350_4; r337.body = body2; r337.oldFormErrors = true; r337.rejectWithError = false; r164 = post2.call(HTTP2, r337); } } const r35 = await r164; r10 = "payment id cannot be null on redirected confirmations."; c29350_7 = r35; Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_UPDATE_SUCCESS", subscription: c29350_7.body }); r199 = { subscription: c29350_7.body, redirectConfirmation: REDIRECTED_PAYMENT_SOURCES.has(c29350_2.type) }; c25186_12 = 0; } catch ($e) { const r45 = $e; let r8 = r45; c25186_13 = r45; if (c25186_12 !== 0) { while (true) { try { const r359 = c25186_13; c25186_12 = 0; c29350_9 = r359; c29350_8 = c29350_9 instanceof BillingError ? c29350_9 : new BillingError(c29350_9); if (c29350_8.code !== ErrorCodes.CONFIRMATION_REQUIRED) { Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_UPDATE_FAIL", error: c29350_8 }); throw c29350_8; } if (!c29350_9.body.payment_id) { throw dispatchConfirmationError(r10); } r409 = (0, handlePaymentConfirmation)(c29350_9.body, c29350_2); } catch (r355) { r8 = r355; c25186_13 = r355; if (c25186_12 === 0) { break; } continue; } return r409; } } throw r8; } } return r199; } export { handlePaymentConfirmation }; export async function redirectedPaymentSucceeded(c25187_0) { let c29351_0 = c25187_0; let c29351_1 = await fetchPayment(c25187_0); if (c29351_1?.body == null) { throw dispatchConfirmationError("could not fetch payment"); } let c29351_2 = PaymentSourceRecord.createFromServer(c29351_1.body.payment_source); if (!REDIRECTED_PAYMENT_SOURCES.has(c29351_2.type)) { throw dispatchConfirmationError("unsupported redirect payment source"); } if ((c29351_1 == null ? void 0 : c29351_1.body?.status) === PaymentStatusTypes.FAILED) { throw dispatchConfirmationError("payment failed"); } return c29351_2.paymentGateway !== PaymentGateways.STRIPE || paymentIntentSucceeded(c29351_0); } export async function cancelSubscription(c25188_0, location_stack, location2) { let r70; let c25188_5; let c25188_6 = 0; let c29352_0, c29352_1, c29352_2; try { c29352_0 = void 0; c29352_1 = void 0; Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_CANCEL_START" }); c25188_6 = 1; c29352_0 = await _sendRequest.HTTP.del({ url: Endpoints.BILLING_SUBSCRIPTION(c25188_0), query: { location: location2, location_stack }, oldFormErrors: true, rejectWithError: false }); Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_CANCEL_SUCCESS" }); r70 = c29352_0; c25188_6 = 0; } catch ($e) { const r28 = $e; let r8 = r28; c25188_5 = r28; if (c25188_6 !== 0) { while (true) { try { const r79 = c25188_5; c25188_6 = 0; c29352_2 = r79; c29352_1 = new BillingError(c29352_2); Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_CANCEL_FAIL", error: c29352_1 }); throw c29352_1; } catch (r75) { r8 = r75; c25188_5 = r75; if (c25188_6 === 0) { break; } } } } throw r8; } return r70; } export function deleteRenewalMutation(a0, a1) { return updateSubscription(a0, { items: a0.items }, { amount: 0, currency: a0.currency }, getItemPlansTotalServerPrice(a0.items, a0.currency, a0.paymentSourceId), a1); } export { updateSubscription }; export function resubscribeToSubscription(a0, a1, a2, a3, a4) { return updateSubscription(a0, { status: SubscriptionStatusTypes.ACTIVE, paymentSource: a2, currency: a3 }, { amount: 0, currency: a0.currency }, getItemPlansTotalServerPrice(a0.items, a0.currency, a2?.id), a1, a4); } export function upgradeSubscription(a0, a1, a2, a3, a4, a5) { return updateSubscription(a0, { status: SubscriptionStatusTypes.ACTIVE, items: getItemsWithUpsertedPremiumPlanId(a0, a1) }, a2, a3, a4, a5); } export function changeSubscriptionCurrency(a0, a1, a2, a3, a4) { return updateSubscription(a0, { currency: a1 }, { amount: 0, currency: a1.toLowerCase() }, a2, a3, a4); } export function changePaymentSource(a0, a1, a2, a3, a4) { return updateSubscription(a0, { paymentSource: a1 }, { amount: 0, currency: a2.currency }, a2, a3, a4); } export function clearUpdatePaymentSourceError() { Dispatcher.dispatch({ type: "BILLING_PAYMENT_SOURCE_UPDATE_CLEAR_ERROR" }); } export function clearRemovePaymentSourceError() { Dispatcher.dispatch({ type: "BILLING_PAYMENT_SOURCE_REMOVE_CLEAR_ERROR" }); } export function clearPaymentAuthenticationError() { Dispatcher.dispatch({ type: "PAYMENT_AUTHENTICATION_CLEAR_ERROR" }); } export function cancelPaymentAuthentication() { Dispatcher.dispatch({ type: "PAYMENT_AUTHENTICATION_CANCEL" }); } export async function voidPendingPayment(c25190_0) { await _sendRequest.HTTP.post({ url: Endpoints.BILLING_PAYMENTS_VOID(c25190_0), oldFormErrors: true, rejectWithError: false }); } export function popupBridgeCallback({ paymentSourceType, state, path, query, insecure }) { Dispatcher.dispatch({ type: "BILLING_POPUP_BRIDGE_CALLBACK_START", paymentSourceType }); return _sendRequest.HTTP.post({ url: Endpoints.BILLING_POPUP_BRIDGE_CALLBACK(paymentSourceType), body: { state, path, query, insecure }, oldFormErrors: true, rejectWithError: false }).then((result) => { Dispatcher.dispatch({ type: "BILLING_POPUP_BRIDGE_CALLBACK_END", paymentSourceType }); return result; }); } export async function fetchIpCountryCode(c25191_0) { let r104, r122; let c25191_1, c25191_2, c25191_3; let c25191_4 = 0; const r11 = env2720; L18: { L15: { try { let env29354; c25191_2 = r11; const r31 = env29354 = { $parent: r11 }; c25191_1 = r31; env29354[0] = void 0; if (c25191_0 !== void 0) { env29354[0] = c25191_0; env29354[1] = void 0; env29354[2] = void 0; env29354[3] = void 0; } else { env29354[0] = false; env29354[1] = void 0; env29354[2] = void 0; env29354[3] = void 0; } await void 0; if (!env29354[0] && BillingInfoStore.ipCountryCodeRequest != null) { break L15; } const r52 = c25191_1; c25191_4 = 1; env29354[1] = _sendRequest.HTTP.get({ url: Endpoints.BILLING_COUNTRY_CODE, rejectWithError: false }); Dispatcher.wait($mk114557(r52)); env29354[2] = await env29354[1]; env29354[3] = env29354[2].body.country_code; Dispatcher.dispatch({ type: "BILLING_SET_IP_COUNTRY_CODE", countryCode: env29354[3] }); r104 = env29354[2]; c25191_4 = 0; break L18; } catch ($e) { const r29 = $e; let r8 = r29; c25191_3 = r29; if (c25191_4 !== 0) { while (true) { try { const r113 = c25191_3; c25191_4 = 0; env29354[4] = r113; Dispatcher.dispatch({ type: "BILLING_IP_COUNTRY_CODE_FAILURE" }); r122 = env29354[4]; } catch (r109) { r8 = r109; c25191_3 = r109; if (c25191_4 === 0) { break; } continue; } return r122; } } throw r8; } } return BillingInfoStore.ipCountryCodeRequest; } return r104; } export function clearAndFetchPaymentSourceCreationContext() { Dispatcher.dispatch({ type: "PAYMENT_SOURCE_CREATION_CONTEXT_FETCH_START" }); _sendRequest.HTTP.get({ url: Endpoints.BILLING_PAYMENT_SOURCE_CREATION_CONTEXT, oldFormErrors: true, rejectWithError: false }).then(({ body: body3 }) => { if (body3 != null) { let store_country = body3.store_country; if (store_country == null) { store_country = null; } let allowed_payment_source_types = body3.allowed_payment_source_types; if (allowed_payment_source_types == null) { allowed_payment_source_types = []; } let allowed_billing_address_countries = body3.allowed_billing_address_countries; if (allowed_billing_address_countries == null) { allowed_billing_address_countries = []; } Dispatcher.dispatch({ type: "PAYMENT_SOURCE_CREATION_CONTEXT_FETCH_SUCCESS", data: { store_country, allowed_payment_source_types, allowed_billing_address_countries } }); } else { Dispatcher.dispatch({ type: "PAYMENT_SOURCE_CREATION_CONTEXT_FETCH_FAIL", error: new Error("Missing response body") }); } }).catch((a0) => { Dispatcher.dispatch({ type: "PAYMENT_SOURCE_CREATION_CONTEXT_FETCH_FAIL", error: a0 instanceof Error ? a0 : new Error(String(a0)) }); }); } export async function fetchIpLocation(c25192_0) { let r118, r147; let c25192_1, c25192_2, c25192_3; let c25192_4 = 0; const r11 = env2720; L18: { L15: { try { let env29355; c25192_2 = r11; const r33 = env29355 = { $parent: r11 }; c25192_1 = r33; env29355[0] = void 0; if (c25192_0 !== void 0) { env29355[0] = c25192_0; env29355[1] = void 0; env29355[2] = void 0; env29355[3] = void 0; env29355[4] = void 0; } else { env29355[0] = false; env29355[1] = void 0; env29355[2] = void 0; env29355[3] = void 0; env29355[4] = void 0; } await void 0; if (!env29355[0] && BillingInfoStore.ipLocationRequest != null) { break L15; } const r54 = c25192_1; c25192_4 = 1; env29355[1] = _sendRequest.HTTP.get({ url: Endpoints.BILLING_LOCATION, rejectWithError: false }); Dispatcher.wait($mk114558(r54)); env29355[2] = await env29355[1]; env29355[3] = env29355[2].body.country_code; env29355[4] = env29355[2].body.subdivision_code; Dispatcher.dispatch({ type: "BILLING_SET_IP_LOCATION", location: { countryCode: env29355[3], subdivisionCode: env29355[4] } }); Dispatcher.dispatch({ type: "BILLING_SET_IP_COUNTRY_CODE", countryCode: env29355[3] }); r118 = env29355[2]; c25192_4 = 0; break L18; } catch ($e) { const r31 = $e; let r8 = r31; c25192_3 = r31; if (c25192_4 !== 0) { while (true) { try { const r127 = c25192_3; c25192_4 = 0; env29355[5] = r127; AnalyticsUtils.track(AnalyticEvents.BILLING_IP_LOCATION_FETCH_ERROR, { error_message: env29355[5].message }); Dispatcher.dispatch({ type: "BILLING_IP_LOCATION_FAILURE" }); r147 = env29355[5]; } catch (r123) { r8 = r123; c25192_3 = r123; if (c25192_4 === 0) { break; } continue; } return r147; } } throw r8; } } return BillingInfoStore.ipLocationRequest; } return r118; } export function resetPaymentIntentId() { Dispatcher.dispatch({ type: "RESET_PAYMENT_ID" }); } export function resetSubscriptionStore() { Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_RESET" }); } export function startBrowserCheckout(a0) { Dispatcher.dispatch({ type: "USER_PAYMENT_BROWSER_CHECKOUT_STARTED", loadId: a0 }); } export async function redeemReactivationOffer(c25193_0, c25193_1) { let c25193_4; let c25193_5 = 0; let c29356_0, c29356_1, c29356_2, c29356_3; try { c29356_0 = c25193_1; c29356_1 = void 0; c29356_2 = void 0; c25193_5 = 1; c29356_1 = await _sendRequest.HTTP.post({ url: Endpoints.REACTIVATION_OFFER_REDEEM(c25193_0.id, c25193_1.id), rejectWithError: false }); Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_UPDATE_SUCCESS", subscription: c29356_1.body }); Dispatcher.dispatch({ type: "BILLING_USER_OFFER_REDEEMED", offerId: c29356_0.id }); c25193_5 = 0; } catch ($e) { const r28 = $e; let r8 = r28; c25193_4 = r28; if (c25193_5 !== 0) { while (true) { try { const r83 = c25193_4; c25193_5 = 0; c29356_3 = r83; c29356_2 = c29356_3 instanceof BillingError ? c29356_3 : new BillingError(c29356_3); Dispatcher.dispatch({ type: "BILLING_SUBSCRIPTION_UPDATE_FAIL", error: c29356_2 }); throw c29356_2; } catch (r79) { r8 = r79; c25193_4 = r79; if (c25193_5 === 0) { break; } } } } throw r8; } } export async function redeemUserDiscountOffer(c25194_0) { let c25194_3; let c25194_4 = 0; let c29357_0, c29357_1; try { c29357_0 = c25194_0; c25194_4 = 1; await _sendRequest.HTTP.post({ url: Endpoints.USER_OFFER_REDEEM, body: { user_discount_offer_id: c25194_0.id }, rejectWithError: true }); Dispatcher.dispatch({ type: "BILLING_USER_OFFER_REDEEMED", offerId: c29357_0.id }); c25194_4 = 0; } catch ($e) { const r25 = $e; let r8 = r25; c25194_3 = r25; if (c25194_4 !== 0) { while (true) { try { const r71 = c25194_3; c25194_4 = 0; c29357_1 = r71; throw c29357_1 instanceof BillingError ? c29357_1 : new BillingError(c29357_1); } catch (r67) { r8 = r67; c25194_3 = r67; if (c25194_4 === 0) { break; } } } } throw r8; } }