This commit is contained in:
janisslsm committed 2026-11-01 12:12:55 +02:00
1 parent 1781d25a15
commit 732c0ad767
33051 files changed
+2591613 -3019689

No files matched your search

+558
View File
@@ -0,0 +1,558 @@
// Metro module 5810 (f5811).
import { isAvatarDecorationRecord } from "./records/AvatarDecorationRecord";
import { isNameplateRecord } from "./records/NameplateRecord";
import { isProfileEffectRecord } from "./records/ProfileEffectRecord";
import { isProfileFrameRecord } from "./records/ProfileFrameRecord";
import { AssetDisplayConfigRecord } from "./records/ShopAssetConfigRecord";
import { LIMITED_TIME_BADGE_DAYS_THRESHOLD, SHOP_CARD_PER_PRODUCT_NEW_BADGE_EXPIRY_SETTINGS, EXTERNAL_PRODUCT_SKU_IDS } from "./CollectiblesShopConstants";
import { EntitlementTypes, PriceSetAssignmentPurchaseTypes, COLLECTIBLES_APPLICATION_ID } from "../../Constants";
import { CurrencyCodes } from "../../_bundle/Module505";
import PremiumUtils from "../../utils/PremiumUtils";
import { getPerkSource } from "../premium/perks_state/PerksStateUtils";
import { Perk, PerkSource } from "../../_bundle/Module1892";
import { getIsCrepeEnabled } from "../croissant/crepe/CrepeExperiment";
import { formatPrice } from "../../utils/PriceUtils";
import { isAndroid, isIOS } from "../../utils/PlatformUtils";
import { CollectiblesItemType } from "../../_bundle/Module1901";
import { concat, uniqBy, flatMap } from "../../_bundle/Module12";
import { intl, t } from "../../intl/index.native";
import { getProductOrbPrice } from "./utils/CollectiblesProductUtils";
function $mk77182($env) {
return (a0, a1) => {
let env25626;
const r3 = $env;
const r4 = r3[1];
const r7 = r3[0];
const r5 = env25626 = {};
env25626[0] = r7;
const r10 = a1.prices[r4];
const r6 = r10 == null ? void 0 : r10.countryPrices?.prices;
const r13 = r6 == null;
let r14 = null;
if (!r13) {
let r17 = r7 == null ? r6[0] : r6.find($mk77183(r5));
if (r17 == null) {
r17 = null;
}
r14 = r17;
}
let r19 = r14?.amount;
if (r19 == null) {
r19 = 0;
}
return a0 + r19;
};
}
function $mk77183($env) {
return (a0) => a0.currency === $env[0];
}
let getItemRecordsFromCategories, c3623_15, c3623_16, c3623_17, c3623_20;
let $mk77184 = function() {
return (a0, a1) => {
let r16;
if (a1 != null) {
if (a1.type === CollectiblesItemType.VARIANTS_GROUP && a1.variants != null) {
r16 = concat(a0, a1.variants.map((variant) => ({
...variant,
variantGroupStoreListingId: a1.storeListingId,
eligibleOffers: a1.eligibleOffers
})));
} else {
a0.push(a1);
r16 = a0;
}
} else {
a0.push(a1);
r16 = a0;
}
return r16;
};
};
let env3623 = {};
export function getItemRecordsFromPurchases(a0, a1) {
if (a1 === CollectiblesItemType.AVATAR_DECORATION) {
return uniqBy(flatMap([...a0.values()], "items").filter(isAvatarDecorationRecord), "skuId");
}
if (a1 === CollectiblesItemType.NAMEPLATE) {
return uniqBy(flatMap([...a0.values()], "items").filter(isNameplateRecord), "skuId");
}
if (a1 === CollectiblesItemType.PROFILE_EFFECT) {
return uniqBy(flatMap([...a0.values()], "items").filter(isProfileEffectRecord), "skuId");
}
if (a1 === CollectiblesItemType.PROFILE_FRAME) {
return uniqBy(flatMap([...a0.values()], "items").filter(isProfileFrameRecord), "skuId");
}
return [];
}
getItemRecordsFromCategories = function getItemRecordsFromCategories(a0, a1) {
const r25 = uniqBy(flatMap([...a0.values()], "products").reduce($mk77184(), []), "storeListingId");
if (a1 === CollectiblesItemType.AVATAR_DECORATION) {
return uniqBy(flatMap(r25, "items").filter(isAvatarDecorationRecord), "skuId");
}
if (a1 === CollectiblesItemType.NAMEPLATE) {
return uniqBy(flatMap(r25, "items").filter(isNameplateRecord), "skuId");
}
if (a1 === CollectiblesItemType.PROFILE_EFFECT) {
return uniqBy(flatMap(r25, "items").filter(isProfileEffectRecord), "skuId");
}
if (a1 === CollectiblesItemType.PROFILE_FRAME) {
return uniqBy(flatMap(r25, "items").filter(isProfileFrameRecord), "skuId");
}
return [];
};
c3623_15 = {
NITRO: "nitro",
THIRDPARTY: "thirdparty"
};
const r46 = {};
r46[c3623_15.NITRO] = "nitro";
r46[c3623_15.THIRDPARTY] = "xbox";
c3623_16 = r46;
c3623_17 = {
original: -1,
discountPercentage: -1
};
c3623_20 = [CurrencyCodes.KZT, CurrencyCodes.NGN, CurrencyCodes.EGP];
export { c3623_15 as ShopDiscountSource };
export function getAnalyticsShopDiscountSource(a0) {
return a0 != null ? c3623_16[a0] : null;
}
export function getShopDiscountSource(a0) {
if (PremiumUtils.canUseShopDiscounts(a0)) {
if (PremiumUtils.canUseCollectibles(a0)) {
return c3623_15.NITRO;
}
const perkSource = getPerkSource(a0?.perks, Perk.SHOP_DISCOUNTS);
return (perkSource == null ? void 0 : perkSource.includes(PerkSource.SOURCE_NITRO)) ? c3623_15.NITRO : getIsCrepeEnabled("getShopDiscountSource") ? (perkSource == null ? void 0 : perkSource.includes(PerkSource.SOURCE_THIRDPARTY_CROISSANT)) ? c3623_15.THIRDPARTY : null : null;
}
return null;
}
export function isPremiumCollectiblesProduct(a0) {
return a0?.premiumType != null;
}
export function isPremiumCollectiblesPurchase(a0) {
return a0?.purchaseType === EntitlementTypes.PREMIUM_PURCHASE;
}
export function getAssetForAvatarDecorationProduct(a0) {
return a0.items.find(isAvatarDecorationRecord)?.asset;
}
export function getPriceForCollectiblesProduct(a0, a1, a2) {
const r11 = a0.prices[a2 ? a1 ? PriceSetAssignmentPurchaseTypes.MOBILE_PREMIUM_TIER_2 : PriceSetAssignmentPurchaseTypes.MOBILE : a1 ? PriceSetAssignmentPurchaseTypes.PREMIUM_TIER_2 : PriceSetAssignmentPurchaseTypes.DEFAULT];
const r12 = r11 == null ? void 0 : r11.countryPrices?.prices;
const r15 = r12 == null;
let r16 = null;
if (!r15) {
let r17 = r12[0];
if (r17 == null) {
r17 = null;
}
r16 = r17;
}
return r16;
}
export function getFormattedPriceForCollectiblesProduct(a0, a1, a2) {
const r13 = a0.prices[a2 ? a1 ? PriceSetAssignmentPurchaseTypes.MOBILE_PREMIUM_TIER_2 : PriceSetAssignmentPurchaseTypes.MOBILE : a1 ? PriceSetAssignmentPurchaseTypes.PREMIUM_TIER_2 : PriceSetAssignmentPurchaseTypes.DEFAULT];
const r14 = r13 == null ? void 0 : r13.countryPrices?.prices;
const r17 = r14 == null;
let r8 = null;
if (!r17) {
let r18 = r14[0];
if (r18 == null) {
r18 = null;
}
r8 = r18;
}
return r8 == null ? "" : formatPrice(r8?.amount, r8?.currency);
}
export function getDefaultPriceSetAssignmentPurchaseType(a0, a1) {
return !(!isAndroid() && !isIOS()) && a1 !== CurrencyCodes.DISCORD_ORB ? a0 ? PriceSetAssignmentPurchaseTypes.MOBILE_PREMIUM_TIER_2 : PriceSetAssignmentPurchaseTypes.MOBILE : a0 ? PriceSetAssignmentPurchaseTypes.PREMIUM_TIER_2 : PriceSetAssignmentPurchaseTypes.DEFAULT;
}
export function getBundleItemsPriceSum(a0, a1) {
let env15193;
const r2 = env15193 = {
$parent: env3623
};
env15193[0] = a1;
const bundledProducts = a0.bundledProducts;
if (bundledProducts == null) {
return 0;
}
env15193[1] = !(!isAndroid() && !isIOS()) && a1 !== CurrencyCodes.DISCORD_ORB ? PriceSetAssignmentPurchaseTypes.MOBILE : PriceSetAssignmentPurchaseTypes.DEFAULT;
return bundledProducts.reduce($mk77182(r2), 0);
}
export function extractPriceByPurchaseTypes(a0, a1, a2) {
let env15194;
const r4 = env15194 = {};
env15194[0] = a2;
const r8 = a0.prices[a1];
const r9 = r8 == null ? void 0 : r8.countryPrices?.prices;
const r12 = r9 == null;
let r13 = null;
if (!r12) {
let r16 = a2 == null ? r9[0] : r9.find($mk77183(r4));
if (r16 == null) {
r16 = null;
}
r13 = r16;
}
return r13;
}
export { c3623_17 as NoDiscount };
export const DISCOUNT_DISPLAY_MINIMUM_THRESHOLD = 5;
export function getProductDiscount(a0, a1, a2) {
if (a0 == null) {
return c3623_17;
}
let env15195;
const r5 = env15195 = {
$parent: env3623
};
env15195[0] = a2;
const bundledProducts = a0.bundledProducts;
const r1 = bundledProducts == null;
let original = 0;
if (!r1) {
env15195[1] = !(!isAndroid() && !isIOS()) && a2 !== CurrencyCodes.DISCORD_ORB ? PriceSetAssignmentPurchaseTypes.MOBILE : PriceSetAssignmentPurchaseTypes.DEFAULT;
original = bundledProducts.reduce($mk77182(r5), 0);
}
if (original <= 0) {
return c3623_17;
}
const r42 = !(!isAndroid() && !isIOS()) && a2 !== CurrencyCodes.DISCORD_ORB ? a1 ? PriceSetAssignmentPurchaseTypes.MOBILE_PREMIUM_TIER_2 : PriceSetAssignmentPurchaseTypes.MOBILE : a1 ? PriceSetAssignmentPurchaseTypes.PREMIUM_TIER_2 : PriceSetAssignmentPurchaseTypes.DEFAULT;
let env15196;
const r45 = env15196 = {};
env15196[0] = a2;
const r47 = a0.prices[r42];
const r49 = r47 == null ? void 0 : r47.countryPrices?.prices;
const r52 = r49 == null;
let r53 = null;
if (!r52) {
let r56 = a2 == null ? r49[0] : r49.find($mk77183(r45));
if (r56 == null) {
r56 = null;
}
r53 = r56;
}
return r53 == null ? c3623_17 : {
original,
discountPercentage: Math.round((original - r53.amount) / original * 100)
};
}
export function getCollectiblesProductPriceComparisons(a0, a1) {
let hasShopDiscount2 = a1.hasShopDiscount;
const discount = a1.discount;
const r15 = a0.prices[PriceSetAssignmentPurchaseTypes.DEFAULT];
const r16 = r15 == null ? void 0 : r15.countryPrices?.prices;
const r19 = r16 == null;
let defaultPrice = null;
if (!r19) {
let r21 = r16[0];
if (r21 == null) {
r21 = null;
}
defaultPrice = r21;
}
if (defaultPrice == null) {
return null;
}
if (defaultPrice.amount <= 0) {
return {
defaultPrice,
showDefaultPriceOnly: true
};
}
const r26 = a0.prices[PriceSetAssignmentPurchaseTypes.PREMIUM_TIER_2];
const r28 = r26 == null ? void 0 : r26.countryPrices?.prices;
const r31 = r28 == null;
let premiumPrice = null;
if (!r31) {
let r33 = r28[0];
if (r33 == null) {
r33 = null;
}
premiumPrice = r33;
}
const originalPrice = a0?.type === CollectiblesItemType.BUNDLE ? hasShopDiscount2 ? {
...defaultPrice,
amount: discount.original
} : defaultPrice : defaultPrice;
if (hasShopDiscount2) {
hasShopDiscount2 = premiumPrice != null;
}
const finalPrice = hasShopDiscount2 ? premiumPrice : originalPrice;
return {
defaultPrice,
originalPrice,
premiumPrice,
finalPrice,
showDiscountPrice: hasShopDiscount2,
finalPriceIsDifferent: finalPrice.amount !== originalPrice.amount,
showDefaultPriceOnly: false
};
}
export function isFreeCollectiblesProduct(a0) {
const r10 = a0.prices[PriceSetAssignmentPurchaseTypes.DEFAULT];
const r11 = r10 == null ? void 0 : r10.countryPrices?.prices;
const r14 = r11 == null;
let r15 = null;
if (!r14) {
let r16 = r11[0];
if (r16 == null) {
r16 = null;
}
r15 = r16;
}
return r15?.amount === 0;
}
export function extendVariantsProducts(a0) {
return a0.reduce($mk77184(), []);
}
export function getProductsFromCategories(a0, a1) {
const r15 = flatMap([...a0.values()], "products");
return uniqBy(a1 ? r15.reduce($mk77184(), []) : r15, "storeListingId");
}
export { getItemRecordsFromCategories };
export function getCollectibleTypeLabel(a0) {
if (CollectiblesItemType.AVATAR_DECORATION === a0) {
return intl.string(t["7v0T9P"]);
}
if (CollectiblesItemType.PROFILE_EFFECT === a0) {
return intl.string(t.wR5wOo);
}
if (CollectiblesItemType.NAMEPLATE === a0) {
return intl.string(t.x5CoXR);
}
if (CollectiblesItemType.PROFILE_FRAME === a0) {
return intl.string(t.GWrZOd);
}
return null;
}
export function getAssetDisplayConfig(a0) {
return a0 != null ? AssetDisplayConfigRecord.fromServer(a0) : void 0;
}
export function getAvatarDecorationsFromPurchases(a0) {
return getItemRecordsFromPurchases(a0, CollectiblesItemType.AVATAR_DECORATION);
}
export function getAvatarDecorationsFromCategories(a0) {
return getItemRecordsFromCategories(a0, CollectiblesItemType.AVATAR_DECORATION);
}
export function getAvatarDecorations(a0, a1) {
return uniqBy([...getItemRecordsFromPurchases(a0, CollectiblesItemType.AVATAR_DECORATION), ...getItemRecordsFromCategories(a1, CollectiblesItemType.AVATAR_DECORATION)], "skuId");
}
export function getNameplatesFromPurchases(a0) {
return getItemRecordsFromPurchases(a0, CollectiblesItemType.NAMEPLATE);
}
export function getNameplatesFromCategories(a0) {
return getItemRecordsFromCategories(a0, CollectiblesItemType.NAMEPLATE);
}
export function getNameplates(a0, a1) {
return uniqBy([...getItemRecordsFromPurchases(a0, CollectiblesItemType.NAMEPLATE), ...getItemRecordsFromCategories(a1, CollectiblesItemType.NAMEPLATE)], "skuId");
}
export function getProfileEffectsFromPurchases(a0) {
return getItemRecordsFromPurchases(a0, CollectiblesItemType.PROFILE_EFFECT);
}
export function getProfileEffectsFromCategories(a0) {
return getItemRecordsFromCategories(a0, CollectiblesItemType.PROFILE_EFFECT);
}
export function getProfileEffects(a0, a1) {
return uniqBy([...getItemRecordsFromPurchases(a0, CollectiblesItemType.PROFILE_EFFECT), ...getItemRecordsFromCategories(a1, CollectiblesItemType.PROFILE_EFFECT)], "skuId");
}
export function groupProfileEffects(a0, a1) {
const itemRecordsFromPurchases = getItemRecordsFromPurchases(a1, CollectiblesItemType.PROFILE_EFFECT);
let c15200_0 = itemRecordsFromPurchases;
return {
purchased: itemRecordsFromPurchases,
shopPreviews: getItemRecordsFromCategories(a0, CollectiblesItemType.PROFILE_EFFECT).filter(({ skuId }) => !c15200_0.some((item) => item.skuId === skuId))
};
}
export function getProfileFramesFromPurchases(a0) {
return getItemRecordsFromPurchases(a0, CollectiblesItemType.PROFILE_FRAME);
}
export function getProfileFramesFromCategories(a0) {
return getItemRecordsFromCategories(a0, CollectiblesItemType.PROFILE_FRAME);
}
export function getProfileFrames(a0, a1) {
return uniqBy([...getItemRecordsFromPurchases(a0, CollectiblesItemType.PROFILE_FRAME), ...getItemRecordsFromCategories(a1, CollectiblesItemType.PROFILE_FRAME)], "skuId");
}
export function isCollectiblesGiftCode(a0) {
return a0.applicationId === COLLECTIBLES_APPLICATION_ID;
}
export const LOGO_ASPECT_RATIO = 3.8;
export function getLogoSize(a0) {
return 3.8 * a0;
}
export function getDaysRemaining(a0) {
const date = new Date();
const r19 = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate());
return Math.floor((Date.UTC(a0.getFullYear(), a0.getMonth(), a0.getDate()) - r19) / 86400000);
}
export function shouldShowLimitedTimeBadge(a0) {
let r16 = a0 != null;
if (r16) {
const date = new Date();
const r23 = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate());
r16 = Math.floor((Date.UTC(a0.getFullYear(), a0.getMonth(), a0.getDate()) - r23) / 86400000) <= LIMITED_TIME_BADGE_DAYS_THRESHOLD;
}
return r16;
}
export function isProductNew(a0) {
const r7 = SHOP_CARD_PER_PRODUCT_NEW_BADGE_EXPIRY_SETTINGS[a0];
return r7 != null && new Date().getTime() < r7;
}
export function isBundleProduct(a0) {
return a0?.type === CollectiblesItemType.BUNDLE;
}
export function getCollectiblesItemTypeForDisplay(a0) {
let BUNDLE;
if (a0 != null) {
if (a0.type === CollectiblesItemType.BUNDLE) {
BUNDLE = CollectiblesItemType.BUNDLE;
} else {
const items = a0.items;
BUNDLE = items == null ? void 0 : items[0]?.type;
}
return BUNDLE;
}
}
export function getCollectiblesPrice({ invoicePreview, selectedSkuId, skusById }) {
const r1 = invoicePreview == null;
let r7 = void 0;
if (!r1) {
const invoiceItems = invoicePreview.invoiceItems;
r7 = invoiceItems == null ? void 0 : invoiceItems[0]?.unitPrice;
}
const r5 = r7 != null ? {
amount: r7.amount,
currency: r7.currency
} : void 0;
let r16 = r5;
if (r16 == null) {
r16 = r5;
if (selectedSkuId != null) {
const r17 = skusById[selectedSkuId];
r16 = r17?.price != null ? {
amount: r17.price.amount,
currency: r17.price.currency
} : r5;
}
}
return r16;
}
export function shouldHideGiftingForCurrency(a0) {
return a0 != null && c3623_20.includes(a0);
}
export function getStrikeThroughPriceAmountForCollectiblesProduct(a0, a1, a2) {
if (a0?.type === CollectiblesItemType.BUNDLE) {
const bundledProducts = a0.bundledProducts;
const r30 = bundledProducts == null;
let r31 = 0;
if (!r30) {
const r43 = !(!isAndroid() && !isIOS()) && CurrencyCodes.DISCORD_ORB !== void 0 ? PriceSetAssignmentPurchaseTypes.MOBILE : PriceSetAssignmentPurchaseTypes.DEFAULT;
let env15201;
const r45 = env15201 = {
$parent: env3623
};
env15201[1] = r43;
r31 = bundledProducts.reduce($mk77182(r45), 0);
}
return r31;
}
const r19 = a0.prices[a1 ? a2 ? PriceSetAssignmentPurchaseTypes.MOBILE : PriceSetAssignmentPurchaseTypes.DEFAULT : a2 ? PriceSetAssignmentPurchaseTypes.MOBILE_PREMIUM_TIER_2 : PriceSetAssignmentPurchaseTypes.PREMIUM_TIER_2];
const r21 = r19 == null ? void 0 : r19.countryPrices?.prices;
const r24 = r21 == null;
let r25 = null;
if (!r24) {
let r26 = r21[0];
if (r26 == null) {
r26 = null;
}
r25 = r26;
}
return r25?.amount;
}
export function canActionOnProduct(a0) {
const product = a0.product;
let isPartiallyOwnedBundle = a0.isPartiallyOwnedBundle;
const isPurchased = a0.isPurchased;
if (!isPartiallyOwnedBundle) {
isPartiallyOwnedBundle = EXTERNAL_PRODUCT_SKU_IDS.ORB_PROFILE_BADGE === product?.skuId && isPurchased;
}
return !isPartiallyOwnedBundle;
}
export function getProductTypeNameForLogging(a0, a1) {
if (CollectiblesItemType.AVATAR_DECORATION === a0) {
return "avatar decoration";
}
if (CollectiblesItemType.PROFILE_EFFECT === a0) {
return "profile effect";
}
if (CollectiblesItemType.NAMEPLATE === a0) {
return "nameplate";
}
if (CollectiblesItemType.PROFILE_FRAME === a0) {
return "profile frame";
}
if (CollectiblesItemType.BUNDLE === a0) {
return "bundle";
}
if (CollectiblesItemType.EXTERNAL_SKU === a0) {
return a1 !== EXTERNAL_PRODUCT_SKU_IDS.FRACTIONAL_PREMIUM ? a1 !== EXTERNAL_PRODUCT_SKU_IDS.FRACTIONAL_PREMIUM_1_DAY ? a1 === EXTERNAL_PRODUCT_SKU_IDS.ORB_PROFILE_BADGE ? "orb profile badge" : "unknown" : "1-day nitro credit" : "3-day nitro credit";
}
if (CollectiblesItemType.VARIANTS_GROUP === a0) {
return "variants group";
}
return "unknown";
}
export function sortProductsByPrice(a0, hasShopDiscount, c15202_1) {
return a0.sort((a, b) => {
let r19, r39;
if (c15202_1) {
r19 = getProductOrbPrice({
product: a,
hasShopDiscount
});
} else {
const r14 = a.prices[hasShopDiscount ? PriceSetAssignmentPurchaseTypes.MOBILE_PREMIUM_TIER_2 : PriceSetAssignmentPurchaseTypes.MOBILE];
const r15 = r14 == null ? void 0 : r14.countryPrices?.prices;
const r18 = r15 == null;
r19 = null;
if (!r18) {
let r20 = r15[0];
if (r20 == null) {
r20 = null;
}
r19 = r20;
}
}
if (c15202_1) {
r39 = getProductOrbPrice({
product: b,
hasShopDiscount
});
} else {
const r32 = b.prices[hasShopDiscount ? PriceSetAssignmentPurchaseTypes.MOBILE_PREMIUM_TIER_2 : PriceSetAssignmentPurchaseTypes.MOBILE];
const r35 = r32 == null ? void 0 : r32.countryPrices?.prices;
const r38 = r35 == null;
r39 = null;
if (!r38) {
let r40 = r35[0];
if (r40 == null) {
r40 = null;
}
r39 = r40;
}
}
let r50 = r19?.amount;
if (r50 == null) {
r50 = 0;
}
let r52 = r39?.amount;
if (r52 == null) {
r52 = 0;
}
return r50 - r52;
});
}
export function removeRewardProductsFilter(a0) {
return a0.filter((item) => !item.isCategoryReward);
}