// Metro module 13551 (f13552). import * as _Constants from "../../Constants"; import { RPCCommands, SKUTypes, RPCErrors } from "../../../../Constants"; import { fetchAllSubscriptionListingsDataForApplication } from "../../../premium_apps/ApplicationSubscriptionsActionCreators"; import { validateTransportType } from "../../helpers/validateTransportType"; import RPCError from "../../RPCError"; import { isTestModeForApplication } from "../../../game_store/TestModeUtils"; import { fetchTestSKUsForApplication } from "../../../../actions/SKUActionCreators"; import { fetchAllStoreListingsForApplication } from "../../../../actions/StoreListingActionCreators"; import { fetchUserEntitlementsForApplication } from "../../../../actions/EntitlementActionCreators"; import { HermesBuiltin } from "../../../../_hermes/prelude"; function $mk116539($env) { return (a0) => { if (a0 == null) { return null; } const subscription_listings = a0.subscription_listings; if (subscription_listings == null) { return null; } const r7 = $env; let env31692 = { $parent: $env }; const r5 = []; env31692[0] = r5; subscription_listings.forEach((subscription_listing) => { subscription_listing.subscription_plans.forEach((subscription_plan) => { const price = subscription_plan?.price; const r10 = env31692.$parent[1].find((item) => item.id === subscription_plan.sku_id); if (r10 != null) { let release_date = r10.release_date; if (release_date == null) { release_date = null; } env31692[0].push({ id: subscription_plan.sku_id, name: r10.name, type: r10.type, price: { amount: price, currency: env31692.$parent.$parent[5].USD }, application_id: subscription_listing.application_id, flags: subscription_listing.sku_flags, release_date }); } }); }); r5.filter((item) => item?.price != null).forEach($mk118395(r7)); }; } function $mk116541($env) { return (a0) => a0.sku.type !== SKUTypes.SUBSCRIPTION_GROUP; } function $mk118395($env) { return (a0) => $env[3].push(a0); } let getSkusHandler, getEntitlementsHandler; let env9410 = {}; const getSubscriptionSkusViaListings = async function getSubscriptionSkusViaListings(c27503_0, c27503_1) { let env30640; const r9 = env30640 = { $parent: env9410 }; let c27503_2 = r9; env30640[0] = c27503_0; env30640[1] = c27503_1; env30640[2] = void 0; env30640[3] = void 0; const r17 = await Promise.all(c27503_1.filter((item) => item.type === SKUTypes.SUBSCRIPTION_GROUP).map((function() { let c31691_0 = async (c32048_0) => await fetchAllSubscriptionListingsDataForApplication(env30640[0], c32048_0.id); return function() { return c31691_0.apply(this, arguments); }; })())); env30640[2] = r17; env30640[3] = []; env30640[2].forEach($mk116539(c27503_2)); return env30640[3]; }; getSkusHandler = async function getSkusHandler(c27504_0) { let r198; let c27504_1, c27504_2, value, c27504_4, c27504_5; L22: { let env30641; const r9 = env9410; c27504_5 = r9; const r35 = env30641 = { $parent: r9 }; c27504_4 = r35; env30641[0] = void 0; env30641[0] = c27504_0.socket; env30641[1] = void 0; env30641[2] = void 0; env30641[3] = void 0; env30641[4] = void 0; await void 0; validateTransportType(env30641[0].transport); env30641[1] = env30641[0].application.id; if (env30641[1] == null) { throw new RPCError({ errorCode: RPCErrors.INVALID_COMMAND }, "No application."); } if (isTestModeForApplication(env30641[1])) { env30641[2] = await fetchTestSKUsForApplication(env30641[1], false); env30641[3] = await (0, getSubscriptionSkusViaListings)(env30641[1], env30641[2]); c27504_1 = 0; const r197 = env30641[2].filter((item) => item.price != null); r198 = []; const r201 = HermesBuiltin.arraySpread(r198, r197, c27504_1); c27504_1 = r201; c27504_1 = HermesBuiltin.arraySpread(r198, env30641[3], r201); break L22; } env30641[4] = await fetchAllStoreListingsForApplication(env30641[1]); c27504_2 = 0; const r126 = env30641[4].filter($mk116541(env9410)).map((item) => item.sku).filter((item) => item.price != null); value = []; c27504_2 = HermesBuiltin.arraySpread(value, r126, c27504_2); c27504_2 = HermesBuiltin.arraySpread(value, await (0, getSubscriptionSkusViaListings)(env30641[1], env30641[4].map((item) => item.sku)), c27504_2); return value; } return r198; }; getEntitlementsHandler = function getEntitlementsHandler({ socket }) { validateTransportType(socket.transport); const id = socket.application.id; if (id == null) { throw new RPCError({ errorCode: RPCErrors.INVALID_COMMAND }, "No application."); } return fetchUserEntitlementsForApplication(id); }; const { RPC_AUTHENTICATED_SCOPE, RPC_LOCAL_SCOPE, RPC_SCOPE_CONFIG } = _Constants; const r33 = {}; const GET_SKUS = RPCCommands.GET_SKUS; const r35 = {}; r35[RPC_SCOPE_CONFIG.ANY] = [RPC_AUTHENTICATED_SCOPE, RPC_LOCAL_SCOPE]; r35.handler = getSkusHandler; r33[GET_SKUS] = r35; const GET_ENTITLEMENTS = RPCCommands.GET_ENTITLEMENTS; const r37 = {}; r37[RPC_SCOPE_CONFIG.ANY] = [RPC_AUTHENTICATED_SCOPE, RPC_LOCAL_SCOPE]; r37.handler = getEntitlementsHandler; r33[GET_ENTITLEMENTS] = r37; const GET_SKUS_EMBEDDED = RPCCommands.GET_SKUS_EMBEDDED; const r41 = {}; r41[RPC_SCOPE_CONFIG.ANY] = [RPC_AUTHENTICATED_SCOPE, RPC_LOCAL_SCOPE]; r41.handler = async (c20529_0) => { const value2 = {}; value2.skus = await getSkusHandler(c20529_0); return value2; }; r33[GET_SKUS_EMBEDDED] = r41; const GET_ENTITLEMENTS_EMBEDDED = RPCCommands.GET_ENTITLEMENTS_EMBEDDED; const r46 = {}; r46[RPC_SCOPE_CONFIG.ANY] = [RPC_AUTHENTICATED_SCOPE, RPC_LOCAL_SCOPE]; r46.handler = async (c20530_0) => { const value3 = {}; value3.entitlements = await getEntitlementsHandler(c20530_0); return value3; }; r33[GET_ENTITLEMENTS_EMBEDDED] = r46; export default r33;