// Metro module 6499 (f6500). import StorefrontPromotionOverrideStore from "../modules/storefront/StorefrontPromotionOverrideStore"; import SKUStore from "../stores/game_store/SKUStore"; import { Endpoints, ADYEN_PAYMENT_SOURCES } from "../Constants"; import Dispatcher from "../Dispatcher"; import { httpGetWithCountryCodeQuery } from "../utils/StoreUtils"; import { rejectWithMigratedError, HTTP, getAPIBaseURL } from "../_bundle/sendRequest"; import V6OrEarlierAPIError from "../errors/V6OrEarlierAPIError"; import * as _TestModeUtils from "../modules/game_store/TestModeUtils"; import { ShopVariantsReturnStyle } from "../_bundle/Module5847"; import { BillingError } from "../errors/index"; import { ErrorCodes } from "../errors/BillingError"; import { createGatewayCheckoutContext } from "../utils/BillingUtils"; import { createPaymentSourceToken, popupBridgeState, dispatchConfirmationError, handlePaymentConfirmation } from "../modules/billing/actions/BillingActionCreators"; import { getPurchaseToken } from "../utils/PurchaseTokenUtils"; import { isNotNullish } from "../utils/GlobalUtils"; import { HermesBuiltin } from "../_hermes/prelude"; let env4192 = {}; const c4192_13 = { isGift: false }; export async function fetchSKU(skuId) { let c25898_4 = 0; let c29783_0, c29783_1; L13: { try { c29783_0 = skuId; c29783_1 = void 0; if (SKUStore.get(skuId) == null) { Dispatcher.dispatch({ type: "SKU_FETCH_START", skuId }); c25898_4 = 1; c29783_1 = await httpGetWithCountryCodeQuery({ url: Endpoints.STORE_SKU(skuId), rejectWithError: rejectWithMigratedError() }); Dispatcher.dispatch({ type: "SKU_FETCH_SUCCESS", sku: c29783_1.body }); c25898_4 = 0; break L13; } } catch ($e) { let r8 = $e; if (c25898_4 !== 0) { while (true) { try { c25898_4 = 0; Dispatcher.dispatch({ type: "SKU_FETCH_FAIL", skuId: c29783_0 }); throw new V6OrEarlierAPIError(`Failed to fetch SKU ${c29783_0}`); } catch ($e) { r8 = $e; if (c25898_4 === 0) { break; } } } } throw r8; } return void 0; } } export async function fetchPublishedSKU(c25899_0, skuId2, variants_return_style, c25899_3) { let c25899_7 = 0; let c29784_0, c29784_1, c29784_2; L27: { try { c29784_0 = skuId2; c29784_1 = void 0; c29784_2 = void 0; if (SKUStore.get(skuId2) == null) { Dispatcher.dispatch({ type: "SKU_FETCH_START", skuId: skuId2 }); c25899_7 = 1; const isTestModeForApplication = _TestModeUtils.isTestModeForApplication(c25899_0); c29784_1 = isTestModeForApplication; const r53 = { url: isTestModeForApplication ? Endpoints.STORE_SKU(skuId2) : Endpoints.STORE_PUBLISHED_LISTINGS_SKU(skuId2), rejectWithError: rejectWithMigratedError() }; const query = {}; if (variants_return_style === ShopVariantsReturnStyle.VARIANTS_GROUP) { query.variants_return_style = variants_return_style; } if (c25899_3) { query.include_unpublished = true; } if (Object.keys(query).length > 0) { r53.query = query; } c29784_2 = await httpGetWithCountryCodeQuery(r53); const r100 = c29784_1; const body = c29784_2.body; Dispatcher.dispatch({ type: "SKU_FETCH_SUCCESS", sku: r100 ? body : body.sku }); if (!c29784_1) { Dispatcher.dispatch({ type: "STORE_LISTING_FETCH_SUCCESS", storeListing: c29784_2.body }); } c25899_7 = 0; break L27; } } catch ($e) { let r8 = $e; if (c25899_7 !== 0) { while (true) { try { c25899_7 = 0; Dispatcher.dispatch({ type: "SKU_FETCH_FAIL", skuId: c29784_0 }); throw new V6OrEarlierAPIError(`Failed to fetch SKU ${c29784_0}`); } catch ($e) { r8 = $e; if (c25899_7 === 0) { break; } } } } throw r8; } return void 0; } } export async function fetchTestSKUsForApplication(c25900_0, c25900_1) { let c29785_1, c29785_2; c29785_1 = void 0; let c29785_0 = c25900_0; if (c25900_1 !== void 0) { c29785_1 = c25900_1; c29785_2 = void 0; } else { c29785_1 = true; c29785_2 = void 0; } await void 0; if (!_TestModeUtils.isTestModeForApplication(c29785_0) && c29785_1) { throw new Error("this should only be used in test mode"); } c29785_2 = (await httpGetWithCountryCodeQuery({ url: Endpoints.APPLICATION_SKUS(c29785_0), rejectWithError: rejectWithMigratedError() })).body; Dispatcher.dispatch({ type: "SKUS_FETCH_SUCCESS", skus: c29785_2 }); return c29785_2; } export async function previewPurchaseSku(c25901_0) { let body; let c25901_3; let c25901_4 = 0; let c29786_0, c29786_1, c29786_2, c29786_3, c29786_4, c29786_5, c29786_6, c29786_7, c29786_8; try { c29786_0 = void 0; c29786_1 = void 0; c29786_2 = void 0; c29786_3 = void 0; c29786_4 = void 0; c29786_0 = c25901_0.applicationId; c29786_1 = c25901_0.skuId; c29786_2 = c25901_0.paymentSourceId; c29786_3 = c25901_0.isGift; c29786_4 = c25901_0.currency; c29786_5 = void 0; c29786_6 = void 0; c29786_7 = void 0; await void 0; c29786_5 = { payment_source_id: c29786_2, gift: c29786_3, currency: c29786_4 }; if (_TestModeUtils.isTestModeForApplication(c29786_0)) { c29786_5.test_mode = true; } c29786_6 = StorefrontPromotionOverrideStore.getPromotionIdOverride(); if (c29786_6 != null) { c29786_5.promotion_id_override = c29786_6; } c25901_4 = 1; body = (await httpGetWithCountryCodeQuery({ url: Endpoints.STORE_SKU_PURCHASE(c29786_1), query: c29786_5, oldFormErrors: true, rejectWithError: rejectWithMigratedError() })).body; c25901_4 = 0; } catch ($e) { const r32 = $e; let r8 = r32; c25901_3 = r32; if (c25901_4 !== 0) { while (true) { L30: { try { const r121 = c25901_3; c25901_4 = 0; c29786_8 = r121; c29786_7 = c29786_8 instanceof BillingError ? c29786_8 : new BillingError(c29786_8); if (c29786_7.code !== ErrorCodes.BILLING_BUNDLE_ALREADY_PURCHASED) { if (c29786_7.code !== ErrorCodes.BILLING_BUNDLE_PARTIALLY_OWNED) { if (c29786_7.code !== ErrorCodes.INVALID_BILLING_ADDRESS) { break L30; } } } throw c29786_7; } catch (r117) { r8 = r117; c25901_3 = r117; if (c25901_4 === 0) { break; } continue; } } return null; } } throw r8; } return body; } export async function grantChannelBranchEntitlement(applicationId, c25902_1, skuId3) { let body; let c25902_5; let c25902_6 = 0; let c29787_0, c29787_1, c29787_2, c29787_3, c29787_4; try { c29787_0 = applicationId; c29787_1 = skuId3; c29787_2 = void 0; c29787_3 = void 0; Dispatcher.dispatch({ type: "SKU_PURCHASE_START", applicationId, skuId: skuId3 }); c25902_6 = 1; c29787_2 = await HTTP.post({ url: Endpoints.CHANNEL_ENTITLEMENT_GRANT(c25902_1), oldFormErrors: true, rejectWithError: rejectWithMigratedError() }); Dispatcher.dispatch({ type: "SKU_PURCHASE_SUCCESS", skuId: c29787_1, entitlements: c29787_2.body, libraryApplications: [] }); body = c29787_2.body; c25902_6 = 0; } catch ($e) { const r26 = $e; let r8 = r26; c25902_5 = r26; if (c25902_6 !== 0) { while (true) { try { const r89 = c25902_5; c25902_6 = 0; c29787_4 = r89; c29787_3 = new BillingError(c29787_4); Dispatcher.dispatch({ type: "SKU_PURCHASE_FAIL", applicationId: c29787_0, skuId: c29787_1, error: c29787_3 }); throw c29787_3; } catch (r85) { r8 = r85; c25902_5 = r85; if (c25902_6 === 0) { break; } } } } throw r8; } return body; } export async function orderSKU(sku_id, payment_source_id, request_gateway_country_code, c25903_3, c25903_4) { let r99; let c25903_7; let c25903_8 = 0; let c29788_0, c29788_1, c29788_2; try { c29788_0 = void 0; c29788_1 = void 0; Dispatcher.dispatch({ type: "ORDER_CREATE_START" }); c25903_8 = 1; const body = { order_line_items: [{ sku_id, quantity: 1, purchase_type: 1 }], billing_facet: { payment_source_id }, location_facet: { request_gateway_country_code } }; if (c25903_3) { body.gifting_facet = { is_gift: true, gift_customization: { recipient_id: c25903_4.recipient_id, gift_style: c25903_4.gift_style, emoji_id: c25903_4.emoji_id, emoji_name: c25903_4.emoji_name, sound_id: c25903_4.sound_id, reward_sku_ids: c25903_4.reward_sku_ids, custom_message_contents: c25903_4.custom_message } }; } c29788_0 = (await HTTP.post({ url: Endpoints.ORDER_CREATE, body, rejectWithError: rejectWithMigratedError() })).body; c29788_1 = c29788_0.id; Dispatcher.dispatch({ type: "ORDER_CREATE_SUCCESS", orderId: c29788_1, order: c29788_0 }); r99 = c29788_1; c25903_8 = 0; } catch ($e) { const r30 = $e; let r8 = r30; c25903_7 = r30; if (c25903_8 !== 0) { while (true) { try { const r108 = c25903_7; c25903_8 = 0; c29788_2 = r108; Dispatcher.dispatch({ type: "ORDER_CREATE_FAIL" }); throw new BillingError(`Failed to create order: ${c29788_2}`); } catch (r104) { r8 = r104; c25903_7 = r104; if (c25903_8 === 0) { break; } } } } throw r8; } return r99; } export async function purchaseSKU(c25904_0, c25904_1, c25904_2) { let r177, r235, r519; let c25904_3, c25904_4, c25904_5, c25904_6, c25904_7, c25904_9; let c25904_8 = 0; const r19 = env4192; let r17 = "payment id cannot be null on redirected confirmations."; try { let env29789; c25904_7 = r19; const r25 = env29789 = { $parent: r19 }; c25904_6 = r25; env29789[0] = c25904_0; env29789[1] = c25904_1; env29789[2] = void 0; env29789[3] = void 0; env29789[4] = void 0; env29789[5] = void 0; env29789[6] = void 0; env29789[7] = void 0; env29789[8] = void 0; env29789[9] = void 0; env29789[10] = void 0; env29789[11] = void 0; env29789[12] = void 0; env29789[13] = void 0; env29789[14] = void 0; env29789[15] = void 0; env29789[16] = void 0; const r47 = { ...c4192_13, ...c25904_2 }; const paymentSource = r47.paymentSource; env29789[2] = paymentSource; env29789[3] = r47.expectedAmount; env29789[4] = r47.expectedCurrency; env29789[5] = r47.analyticsLoadId; const isGift = r47.isGift; env29789[6] = isGift; env29789[7] = r47.giftInfoOptions; const subscriptionPlanId = r47.subscriptionPlanId; env29789[8] = r47.loadId; env29789[9] = r47.countryCode; env29789[10] = r47.quantity; Dispatcher.wait(() => { Dispatcher.dispatch({ type: "SKU_PURCHASE_START", applicationId: env29789[0], skuId: env29789[1] }); }); env29789[11] = _TestModeUtils.isTestModeForApplication(c25904_0); c25904_8 = 1; const r71 = {}; c25904_5 = r71; r71.gift = isGift; r71.sku_subscription_plan_id = subscriptionPlanId; const gatewayCheckoutContext = await createGatewayCheckoutContext(paymentSource); r17 = "payment id cannot be null on redirected confirmations."; const r100 = c25904_5; r100.gateway_checkout_context = gatewayCheckoutContext; r100.load_id = env29789[8]; r100.gift_info_options = env29789[7]; env29789[12] = r100; env29789[13] = StorefrontPromotionOverrideStore.getPromotionIdOverride(); if (env29789[13] != null) { env29789[12].promotion_id_override = env29789[13]; } L23: { if (env29789[11]) { env29789[12].test_mode = true; } else { if (env29789[2] != null) { env29789[12].payment_source_id = env29789[2].id; c25904_4 = env29789[12]; const paymentSourceToken = await createPaymentSourceToken(env29789[2]); r17 = "payment id cannot be null on redirected confirmations."; c25904_4.payment_source_token = paymentSourceToken; if (!ADYEN_PAYMENT_SOURCES.has(env29789[2].type)) { if (env29789[9] != null) { env29789[12].country_code = env29789[9]; } if (env29789[3] != null) { env29789[12].expected_amount = env29789[3]; } if (env29789[4] != null) { env29789[12].expected_currency = env29789[4]; } env29789[12].purchase_token = getPurchaseToken(); if (env29789[10] != null) { env29789[12].quantity = env29789[10]; } r177 = HTTP.post({ url: Endpoints.STORE_SKU_PURCHASE(env29789[1]), body: env29789[12], context: { load_id: env29789[5] }, oldFormErrors: true, rejectWithError: rejectWithMigratedError() }); break L23; } const r40 = await popupBridgeState(env29789[2].type); r17 = "payment id cannot be null on redirected confirmations."; env29789[14] = r40; const r309 = env29789[12]; const aPIBaseURL = getAPIBaseURL(); const type = env29789[2].type; const r320 = env29789[14]; c25904_3 = r320; if (r320 == null) { c25904_3 = ""; } r309.return_url = aPIBaseURL + Endpoints.BILLING_POPUP_BRIDGE_CALLBACK_REDIRECT_PREFIX(type, c25904_3, "success"); if (env29789[9] != null) { env29789[12].country_code = env29789[9]; } if (env29789[3] != null) { env29789[12].expected_amount = env29789[3]; } if (env29789[4] != null) { env29789[12].expected_currency = env29789[4]; } env29789[12].purchase_token = getPurchaseToken(); if (env29789[10] != null) { env29789[12].quantity = env29789[10]; } r177 = HTTP.post({ url: Endpoints.STORE_SKU_PURCHASE(env29789[1]), body: env29789[12], context: { load_id: env29789[5] }, oldFormErrors: true, rejectWithError: rejectWithMigratedError() }); break L23; } if (env29789[9] != null) { env29789[12].country_code = env29789[9]; } } if (env29789[3] != null) { env29789[12].expected_amount = env29789[3]; } if (env29789[4] != null) { env29789[12].expected_currency = env29789[4]; } env29789[12].purchase_token = getPurchaseToken(); if (env29789[10] != null) { env29789[12].quantity = env29789[10]; } r177 = HTTP.post({ url: Endpoints.STORE_SKU_PURCHASE(env29789[1]), body: env29789[12], context: { load_id: env29789[5] }, oldFormErrors: true, rejectWithError: rejectWithMigratedError() }); } const r36 = await r177; r17 = "payment id cannot be null on redirected confirmations."; env29789[15] = r36; Dispatcher.dispatch({ type: "SKU_PURCHASE_SUCCESS", skuId: env29789[1], libraryApplications: env29789[15].body.library_applications != null ? env29789[15].body.library_applications.filter(isNotNullish) : [], entitlements: env29789[15].body.entitlements, giftCode: env29789[15].body.gift_code }); r235 = { ...env29789[15].body, appliedUserDiscounts: env29789[15].body.applied_user_discounts, redirectConfirmation: false }; c25904_8 = 0; } catch ($e) { const r44 = $e; let r8 = r44; c25904_9 = r44; if (c25904_8 !== 0) { while (true) { try { const r431 = c25904_9; c25904_8 = 0; env29789[17] = r431; env29789[16] = env29789[17] instanceof BillingError ? env29789[17] : new BillingError(env29789[17]); if (!(env29789[16].code !== ErrorCodes.CONFIRMATION_REQUIRED && env29789[16].code !== ErrorCodes.AUTHENTICATION_REQUIRED)) { Dispatcher.dispatch({ type: "SKU_PURCHASE_AWAIT_CONFIRMATION", skuId: env29789[1], isGift: env29789[6] }); } Dispatcher.dispatch({ type: "SKU_PURCHASE_FAIL", applicationId: env29789[0], skuId: env29789[1], error: env29789[16] }); if (env29789[16].code !== ErrorCodes.CONFIRMATION_REQUIRED) { throw env29789[16]; } if (!env29789[17].body.payment_id) { throw dispatchConfirmationError(r17); } r519 = handlePaymentConfirmation(env29789[17].body, env29789[2]); } catch (r427) { r8 = r427; c25904_9 = r427; if (c25904_8 === 0) { break; } continue; } return r519; } } throw r8; } return r235; } export async function resendPaymentVerificationEmail() { let value, c25905_4; let c25905_3 = 0; let c29790_0; try { c25905_3 = 1; const body = { purchase_token: getPurchaseToken() }; value = {}; HermesBuiltin.copyDataProperties(value, (await HTTP.post({ url: Endpoints.STORE_EMAIL_RESEND_PAYMENT_VERIFICATION, body, oldFormErrors: true, rejectWithError: rejectWithMigratedError() })).body); c25905_3 = 0; } catch ($e) { const r26 = $e; let r8 = r26; c25905_4 = r26; if (c25905_3 !== 0) { while (true) { try { const r74 = c25905_4; c25905_3 = 0; c29790_0 = r74; throw c29790_0 instanceof BillingError ? c29790_0 : new BillingError(c29790_0); } catch (r70) { r8 = r70; c25905_4 = r70; if (c25905_3 === 0) { break; } } } } throw r8; } return value; } export function clearPurchaseError() { Dispatcher.dispatch({ type: "SKU_PURCHASE_CLEAR_ERROR" }); } export function showPurchaseConfirmationStep() { Dispatcher.wait(() => Dispatcher.dispatch({ type: "SKU_PURCHASE_SHOW_CONFIRMATION_STEP" })); } export function updateSKUPaymentIsGift(a0) { Dispatcher.dispatch({ type: "SKU_PURCHASE_UPDATE_IS_GIFT", isGift: a0 }); }