2339 lines
90 KiB
TypeScript
2339 lines
90 KiB
TypeScript
// Metro module 3835 (f3836).
|
|
import _slicedToArray from "../_bundle/_slicedToArray";
|
|
import { useMemo } from "react";
|
|
import * as _SubscriptionPlanRecord from "../records/SubscriptionPlanRecord";
|
|
import UserStore from "../stores/UserStore";
|
|
import BillingInfoStore from "../stores/billing/BillingInfoStore";
|
|
import PaymentSourceStore from "../stores/billing/PaymentSourceStore";
|
|
import SubscriptionPlanStore from "../stores/billing/SubscriptionPlanStore";
|
|
import SubscriptionStore from "../stores/billing/SubscriptionStore";
|
|
import { PriceSetAssignmentPurchaseTypes, SubscriptionStatusTypes, InvoiceStatusTypes, PaymentGateways } from "../Constants";
|
|
import { PREMIUM_PLANS, PREMIUM_GUILD_SUBSCRIPTION_PLANS, FRACTIONAL_PREMIUM_SKU_INTERVAL_COUNTS, FractionalPremiumIntervalTypes, SubscriptionPlanInfo, PremiumTypes, SubscriptionIntervalTypes, SubscriptionPlans, PREMIUM_TYPE_DISPLAY_NAME, PremiumSubscriptionSKUs, NUM_FREE_GUILD_BOOSTS_WITH_PREMIUM, PAID_SUBSCRIPTION_MAX_BILLING_RETRY_DAYS, ANNUAL_DISCOUNT_PERCENTAGE_FALLBACK, DISCOUNT_PERCENTAGE_FALLBACK, DISCOUNT_DURATION_FALLBACK, DEFAULT_APPLE_GRACE_PERIOD_DAYS, DEFAULT_GOOGLE_GRACE_PERIOD_DAYS, DEFAULT_MAX_GRACE_PERIOD_DAYS, PAID_SUBSCRIPTION_MAX_GRACE_PERIOD_DAYS, FractionalPremiumStates, PREMIUM_TIER_2_PLANS, MAX_ACCOUNT_HOLD_DAYS, MAX_PAYMENT_PROCESSING_TIME_DAYS, PREMIUM_SKU_TO_MONTHLY_PLAN, DiscountUserUsageLimitIntervalTypes, PremiumUserLimits, PREMIUM_TIER_2_REVERSE_FOLLOWUP_TRIAL_ID, USER_PREMIUM_OFFER_EXPIRES_APPROACHING_4_DAY_THRESHOLD, PREMIUM_TIER_2_TRIAL_FOR_EVERYONE_TRIAL_ID, TRIAL_FOR_EVERYONE_OFFER_EXPIRES_APPROACHING_THRESHOLD, USER_PREMIUM_OFFER_EXPIRES_APPROACHING_7_DAY_THRESHOLD, DISCOUNTS } from "../modules/premium/PremiumConstants";
|
|
import { getPremiumGroupProductName } from "../modules/premium/premium_group/PremiumGroupConstants";
|
|
import { PaymentGatewayToFriendlyName, PREPAID_PAYMENT_SOURCES, CurrencyCodes } from "../_bundle/Module505";
|
|
import Logger from "../modules/debug/Logger";
|
|
import { captureBillingException } from "./BillingUtils";
|
|
import { getBaseSubscriptionItemForSubscriptionItems } from "../modules/premium/PremiumSubscription";
|
|
import * as _PremiumTypeUtils from "./PremiumTypeUtils";
|
|
import Module38 from "../_bundle/Module38";
|
|
import * as _index_native from "../intl/index.native";
|
|
import PremiumGroup_messages from "../modules/premium/premium_group/PremiumGroup.messages";
|
|
import Module3771 from "../_bundle/Module3771";
|
|
import { dateFormat, unitsAsStrings, diffAsUnits, differenceInCalendarDays, differenceInDays } from "./DateUtils";
|
|
import openURL from "../lib/openURL";
|
|
import { formatPrice, formatRate } from "./PriceUtils";
|
|
import { roundFPCountdownUnits } from "../modules/billing/hooks/useFPDurationLeft";
|
|
import Durations from "./Durations";
|
|
import { useStateFromStores } from "../_bundle/Module589";
|
|
import { CheckoutError } from "../modules/checkout/CheckoutError";
|
|
import { formatSize } from "./FileSizeUtils";
|
|
import { canUserUse, ANIMATED_EMOJIS, EMOJIS_EVERYWHERE, SOUNDBOARD_EVERYWHERE, CUSTOM_CALL_SOUNDS, UPLOAD_LARGE_FILES, PROFILE_BADGES, INCREASED_VIDEO_UPLOAD_QUALITY, CUSTOM_DISCRIMINATOR, BOOST_DISCOUNT, ANIMATED_AVATAR, INSTALL_PREMIUM_APPLICATIONS, INCREASED_MESSAGE_LENGTH, INCREASED_GUILD_LIMIT, REDEEM_PREMIUM_PERKS, PROFILE_PREMIUM_FEATURES, APP_ICONS, PREMIUM_GUILD_MEMBER_PROFILE, CLIENT_THEMES, STREAM_HIGH_QUALITY, STREAM_MID_QUALITY, QUEST_ORB_MULTIPLIER, FREE_BOOSTS, STICKERS_EVERYWHERE, VIDEO_FILTER_ASSETS, COLLECTIBLES } from "../modules/premium/ProductCatalog";
|
|
import { getIsCrepeEnabled } from "../modules/croissant/crepe/CrepeExperiment";
|
|
import { hasPerk } from "../modules/premium/perks_state/PerksStateUtils";
|
|
import { Perk } from "../_bundle/Module1892";
|
|
import * as _PremiumFeatureUtils from "./PremiumFeatureUtils";
|
|
function $mk72812() {
|
|
return (a0) => [a0.id, a0.price];
|
|
}
|
|
function $mk72813($env) {
|
|
return (a0) => a0.currency === $env[0].toLowerCase();
|
|
}
|
|
function $mk72814($env) {
|
|
return (a0) => a0.currency === $env[0].toLowerCase();
|
|
}
|
|
function $mk72818($env) {
|
|
return (a0) => $env[0].includes(a0.planId);
|
|
}
|
|
function $mk72825($env) {
|
|
return (a0) => {
|
|
for (const item of $env[0].items) {
|
|
if (a0.planId !== item.planId) {
|
|
continue;
|
|
}
|
|
return {
|
|
...item,
|
|
...a0
|
|
};
|
|
}
|
|
return a0;
|
|
};
|
|
}
|
|
function $mk72831() {
|
|
return (a0) => a0.skuId;
|
|
}
|
|
let getDefaultPrice, getPrice, getPurchaseTypePrices, experimentalGetPrices, getServerPriceFromClientPrice, getItemPlansTotalServerPrice, getDisplayName, getPlanDescription, getNumPremiumGuildSubscriptions, getBillingGracePeriodDaysAndExpiresDate, getExpectedRenewalDate, getCoercedPremiumGuildSubscriptionStatus, isPremiumGuildSubscriptionCanceled, getFormattedPriceForPlan, getPremiumGuildIntervalPrice, getDefaultCurrency, formatTrialCtaIntervalDuration, getItemsWithUpsertedPlanIdForGroup, getMonthlyPrice, calculateMonthlyPriceEquivalentTotal, calculateDiscountPercentageForYearlyPlan, c2169_51, c2169_52, c2169_53, c2169_54, c2169_55, c2169_65;
|
|
let $mk72811 = function() {
|
|
return (a0) => PREMIUM_PLANS.has(a0.planId);
|
|
}, $mk72824 = function() {
|
|
return (a0) => PREMIUM_PLANS.has(a0.planId);
|
|
}, $mk72826 = function() {
|
|
return (a0) => !PREMIUM_PLANS.has(a0.planId);
|
|
}, $mk72830 = function() {
|
|
return (a0) => PREMIUM_GUILD_SUBSCRIPTION_PLANS.has(a0.planId);
|
|
}, $mk72832 = function() {
|
|
return (a0, a1) => {
|
|
const r8 = _slicedToArray(FRACTIONAL_PREMIUM_SKU_INTERVAL_COUNTS[a1], 2);
|
|
const r9 = r8[0];
|
|
return a0 + (FractionalPremiumIntervalTypes.HOUR !== r9 ? FractionalPremiumIntervalTypes.DAY === r9 ? 24 : 1 : 1) * r8[1];
|
|
};
|
|
};
|
|
let env2169 = {};
|
|
export function getPremiumPlanItem(a0) {
|
|
return a0.items.find($mk72811());
|
|
}
|
|
getDefaultPrice = function getDefaultPrice(a0, r8 = false, r7 = false, currency = void 0, r6 = true) {
|
|
let defaultPaymentSourceId = PaymentSourceStore.defaultPaymentSourceId;
|
|
if (defaultPaymentSourceId == null) {
|
|
defaultPaymentSourceId = void 0;
|
|
}
|
|
const premiumTypeSubscription = SubscriptionStore.getPremiumTypeSubscription();
|
|
if (premiumTypeSubscription != null && premiumTypeSubscription.paymentSourceId != null) {
|
|
defaultPaymentSourceId = premiumTypeSubscription.paymentSourceId;
|
|
}
|
|
return getPrice(a0, r8, r7, {
|
|
paymentSourceId: defaultPaymentSourceId,
|
|
currency
|
|
}, r6);
|
|
};
|
|
getPrice = function getPrice(a0, r8 = false, isGift = false, r17 = {}, r7 = true) {
|
|
let r69;
|
|
const paymentSourceId = r17.paymentSourceId;
|
|
let currency = r17.currency;
|
|
const contextPlanPrices = r17.contextPlanPrices;
|
|
if (contextPlanPrices != null) {
|
|
const r6 = contextPlanPrices[a0];
|
|
const r1 = currency != null && r6 != null && r6.currency !== currency;
|
|
if (r6 != null && !r1) {
|
|
return {
|
|
amount: r6.amount,
|
|
currency: r6.currency,
|
|
exponent: r6.exponent,
|
|
tax: 0,
|
|
taxInclusive: false
|
|
};
|
|
}
|
|
}
|
|
if (SubscriptionPlanStore.get(a0) != null) {
|
|
let DEFAULT = PriceSetAssignmentPurchaseTypes.DEFAULT;
|
|
if (isGift) {
|
|
DEFAULT = PriceSetAssignmentPurchaseTypes.GIFT;
|
|
} else if (r8) {
|
|
DEFAULT = PriceSetAssignmentPurchaseTypes.PREMIUM_TIER_1;
|
|
}
|
|
let env13648;
|
|
const r52 = {
|
|
paymentSourceId,
|
|
purchaseType: DEFAULT,
|
|
currency
|
|
};
|
|
const r53 = env13648 = {};
|
|
const { paymentSourceId: paymentSourceId2, purchaseType, currency: currency2 } = r52;
|
|
env13648[0] = currency2;
|
|
const r59 = experimentalGetPrices(a0, {
|
|
paymentSourceId: paymentSourceId2,
|
|
purchaseType
|
|
});
|
|
if (r59.length === 0) {
|
|
c2169_53.warn(`No prices found for planId: ${a0}, paymentSourceId: ${paymentSourceId2}, purchaseType: ${purchaseType}`);
|
|
}
|
|
if (currency2 != null) {
|
|
let r72 = r59.find($mk72813(r53));
|
|
if (r72 == null) {
|
|
r72 = paymentSourceId2 != null ? experimentalGetPrices(a0, {
|
|
purchaseType
|
|
}).find($mk72814(r53)) : void 0;
|
|
}
|
|
r69 = r72;
|
|
} else {
|
|
r69 = r59[0];
|
|
}
|
|
if (r69 == null) {
|
|
const error2 = new Error("Couldn't find price");
|
|
if (r7) {
|
|
const tags = {
|
|
purchaseType: DEFAULT.toString(),
|
|
planId: a0,
|
|
currency: null
|
|
};
|
|
if (currency == null) {
|
|
currency = "unknown";
|
|
}
|
|
tags.currency = currency;
|
|
captureBillingException(error2, {
|
|
extra: {
|
|
paymentSourceId
|
|
},
|
|
tags
|
|
});
|
|
}
|
|
throw error2;
|
|
}
|
|
return r69;
|
|
}
|
|
const error = new Error("Plan not found");
|
|
if (r7) {
|
|
captureBillingException(error, {
|
|
tags: {
|
|
planId: a0,
|
|
currency: currency == null ? "unknown" : currency
|
|
},
|
|
extra: {
|
|
...r17,
|
|
isGift
|
|
}
|
|
});
|
|
}
|
|
throw error;
|
|
};
|
|
getPurchaseTypePrices = function getPurchaseTypePrices(a0, a1) {
|
|
const r16 = SubscriptionPlanStore.get(a0);
|
|
if (r16 == null) {
|
|
const error = new Error("Plan not found");
|
|
captureBillingException(error, {
|
|
tags: {
|
|
planId: a0,
|
|
purchaseType: a1.toString()
|
|
}
|
|
});
|
|
throw error;
|
|
}
|
|
if (r16.prices == null) {
|
|
throw new Error(`No prices returned for ${a0}, is your user in the experiment?`);
|
|
}
|
|
const r19 = r16.prices[a1];
|
|
if (r19 == null) {
|
|
c2169_53.info(`Purchase types: ${JSON.stringify(Object.keys(r16.prices))}`);
|
|
throw new Error(`No prices returned for purchase type ${a1} for plan ${a0}`);
|
|
}
|
|
return r19;
|
|
};
|
|
experimentalGetPrices = function experimentalGetPrices(a0, r3 = {
|
|
purchaseType: PriceSetAssignmentPurchaseTypes.DEFAULT
|
|
}) {
|
|
const { paymentSourceId, purchaseType } = r3;
|
|
const purchaseTypePrices = getPurchaseTypePrices(a0, purchaseType);
|
|
if (paymentSourceId != null) {
|
|
const r11 = purchaseTypePrices.paymentSourcePrices[paymentSourceId];
|
|
if (r11 == null) {
|
|
c2169_53.info(`Payment sources IDs: ${JSON.stringify(Object.keys(purchaseTypePrices.paymentSourcePrices))}`);
|
|
c2169_53.info(`prices: ${r11}`);
|
|
captureBillingException(new Error("Missing prices for payment source on subscription plan"), {
|
|
extra: {
|
|
paymentSourceId
|
|
},
|
|
tags: {
|
|
purchaseType: purchaseType.toString(),
|
|
planId: a0
|
|
}
|
|
});
|
|
} else if (r11.length !== 0) {
|
|
return r11;
|
|
}
|
|
}
|
|
if (purchaseTypePrices.countryPrices.prices == null) {
|
|
c2169_53.info(`countryPrices: ${JSON.stringify(purchaseTypePrices.countryPrices)}`);
|
|
const error = new Error("Missing prices for country");
|
|
captureBillingException(error, {
|
|
tags: {
|
|
countryCode: purchaseTypePrices.countryPrices.countryCode,
|
|
planId: a0
|
|
}
|
|
});
|
|
throw error;
|
|
}
|
|
return purchaseTypePrices.countryPrices.prices;
|
|
};
|
|
getServerPriceFromClientPrice = function getServerPriceFromClientPrice(a0) {
|
|
return {
|
|
amount: a0.amount,
|
|
currency: a0.currency,
|
|
exponent: a0.exponent
|
|
};
|
|
};
|
|
getItemPlansTotalServerPrice = function getItemPlansTotalServerPrice(a0, a1, a2) {
|
|
const r1 = {
|
|
currency: a1,
|
|
amount: 0,
|
|
tax: 0,
|
|
taxInclusive: false
|
|
};
|
|
const baseSubscriptionItemForSubscriptionItems = getBaseSubscriptionItemForSubscriptionItems(a0);
|
|
const r12 = baseSubscriptionItemForSubscriptionItems != null ? SubscriptionPlanInfo[baseSubscriptionItemForSubscriptionItems.planId].premiumType : void 0;
|
|
const isPremiumAtLeast = _PremiumTypeUtils.isPremiumAtLeast(r12, PremiumTypes.TIER_0);
|
|
const isPremiumAtLeast2 = _PremiumTypeUtils.isPremiumAtLeast(r12, PremiumTypes.TIER_2);
|
|
for (const item of a0) {
|
|
const r56 = PREMIUM_GUILD_SUBSCRIPTION_PLANS.has(item.planId);
|
|
let r57 = isPremiumAtLeast2;
|
|
if (!r56) {
|
|
const r61 = PREMIUM_PLANS.has(item.planId);
|
|
r57 = r61 ? !r61 : isPremiumAtLeast;
|
|
}
|
|
const r63 = r57;
|
|
r1.amount = r1.amount + (a2 === void 0 ? getDefaultPrice(item.planId, r63, false, a1) : getPrice(item.planId, r63, false, {
|
|
paymentSourceId: a2,
|
|
currency: a1
|
|
})).amount * item.quantity;
|
|
}
|
|
return getServerPriceFromClientPrice(r1);
|
|
};
|
|
export function getInterval(a0) {
|
|
const r2 = SubscriptionPlanInfo[a0];
|
|
if (r2 != null) {
|
|
return {
|
|
intervalType: r2.interval,
|
|
intervalCount: r2.intervalCount
|
|
};
|
|
}
|
|
const error = new Error("Unsupported plan");
|
|
captureBillingException(error, {
|
|
tags: {
|
|
planId: a0
|
|
}
|
|
});
|
|
throw error;
|
|
}
|
|
export function getIntervalString(a0, a1, a2, intervalCount = 1, r5 = false, r6 = PremiumTypes.TIER_2) {
|
|
if (!a1 && !a2) {
|
|
if (SubscriptionIntervalTypes.MONTH === a0) {
|
|
return intervalCount !== 1 ? _index_native.intl.formatToPlainString(_index_native.t["0UlZnH"], {
|
|
intervalCount
|
|
}) : _index_native.intl.string(_index_native.t.DKzs96);
|
|
}
|
|
if (SubscriptionIntervalTypes.YEAR === a0) {
|
|
return _index_native.intl.string(_index_native.t["/Q4HRN"]);
|
|
}
|
|
throw new Error("Unexpected interval");
|
|
}
|
|
if (SubscriptionIntervalTypes.MONTH === a0) {
|
|
let r124 = _index_native.intl.formatToPlainString(r6 === PremiumTypes.TIER_0 ? _index_native.t.NPKsLz : _index_native.t.poEovT, {
|
|
timeInterval: _index_native.intl.string(_index_native.t.FPybU7)
|
|
});
|
|
if (!r5) {
|
|
r124 = _index_native.intl.string(_index_native.t.Mh9bTt);
|
|
}
|
|
return r124;
|
|
}
|
|
if (SubscriptionIntervalTypes.YEAR === a0) {
|
|
let r90 = _index_native.intl.formatToPlainString(r6 === PremiumTypes.TIER_0 ? _index_native.t.NPKsLz : _index_native.t.poEovT, {
|
|
timeInterval: _index_native.intl.string(_index_native.t.tfqrhj)
|
|
});
|
|
if (!r5) {
|
|
r90 = _index_native.intl.string(_index_native.t.DRgqMo);
|
|
}
|
|
return r90;
|
|
}
|
|
throw new Error("Unexpected interval");
|
|
}
|
|
export function getIntervalStringAsNoun(a0) {
|
|
if (SubscriptionIntervalTypes.MONTH === a0) {
|
|
return _index_native.intl.string(_index_native.t.FPybU7);
|
|
}
|
|
if (SubscriptionIntervalTypes.YEAR === a0) {
|
|
return _index_native.intl.string(_index_native.t.tfqrhj);
|
|
}
|
|
throw new Error("Unexpected interval");
|
|
}
|
|
export function getPremiumType(a0) {
|
|
const r11 = SubscriptionPlanInfo[a0];
|
|
if (r11 != null) {
|
|
return r11.premiumType;
|
|
}
|
|
const error = new Error("Unsupported plan");
|
|
captureBillingException(error, {
|
|
tags: {
|
|
planId: a0
|
|
}
|
|
});
|
|
throw error;
|
|
}
|
|
getDisplayName = function getDisplayName(a0, r5 = false, r2 = false, duration) {
|
|
if (SubscriptionPlans.PREMIUM_MONTH_TIER_0 === a0) {
|
|
return r5 ? _index_native.intl.format(_index_native.t.TZXHNj, {
|
|
duration
|
|
}) : r2 ? _index_native.intl.string(_index_native.t["81iAgs"]) : _index_native.intl.string(_index_native.t["0efVPy"]);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_YEAR_TIER_0 === a0) {
|
|
return r5 ? _index_native.intl.format(_index_native.t.eqRhC7, {
|
|
duration
|
|
}) : r2 ? _index_native.intl.string(_index_native.t.UvzqY1) : _index_native.intl.string(_index_native.t.eoVuBn);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_MONTH_TIER_1 === a0) {
|
|
return r2 ? _index_native.intl.string(_index_native.t["g/dH5g"]) : _index_native.intl.string(_index_native.t["7O6qSq"]);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_YEAR_TIER_1 === a0) {
|
|
return r2 ? _index_native.intl.string(_index_native.t.pdZJaq) : _index_native.intl.string(_index_native.t.Md5xbi);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_MONTH_TIER_2 === a0) {
|
|
return r5 ? _index_native.intl.format(_index_native.t.aI6QXz, {
|
|
duration
|
|
}) : r2 ? _index_native.intl.string(_index_native.t.SmVbHc) : _index_native.intl.string(_index_native.t.FKYNC6);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_GROUP_MONTH === a0) {
|
|
return r2 ? _index_native.intl.string(_index_native.t.SmVbHc) : _index_native.intl.formatToPlainString(PremiumGroup_messages["8bPDtb"], {
|
|
premiumGroupProductName: (0, getPremiumGroupProductName)()
|
|
});
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_YEAR_TIER_2 === a0) {
|
|
return r5 ? _index_native.intl.format(_index_native.t["1wBcPi"], {
|
|
duration
|
|
}) : r2 ? _index_native.intl.string(_index_native.t.JIq4O1) : _index_native.intl.string(_index_native.t["cfu/5d"]);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_3_MONTH_TIER_2 === a0) {
|
|
return _index_native.intl.string(_index_native.t.wCbINr);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_6_MONTH_TIER_2 === a0) {
|
|
return _index_native.intl.string(_index_native.t["e3/ArU"]);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_MONTH_GUILD === a0) {
|
|
return r2 ? _index_native.intl.string(_index_native.t["6ZR3By"]) : _index_native.intl.string(_index_native.t["h80cx/"]);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_YEAR_GUILD === a0) {
|
|
return r2 ? _index_native.intl.string(_index_native.t.YDpAzZ) : _index_native.intl.string(_index_native.t.ZHkls0);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_3_MONTH_GUILD === a0) {
|
|
return _index_native.intl.string(_index_native.t.EZHHB6);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_6_MONTH_GUILD === a0) {
|
|
return _index_native.intl.string(_index_native.t.X2KDO2);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_MONTH_LEGACY === a0) {
|
|
return _index_native.intl.string(_index_native.t.PD6k79);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_YEAR_LEGACY === a0) {
|
|
return _index_native.intl.string(_index_native.t.LtJgTC);
|
|
}
|
|
const error = new Error("Unsupported plan");
|
|
captureBillingException(error, {
|
|
tags: {
|
|
planId: a0
|
|
}
|
|
});
|
|
throw error;
|
|
};
|
|
export function getTierDisplayNameByPlanId(a0) {
|
|
const premiumType = SubscriptionPlanInfo[a0]?.premiumType;
|
|
const r5 = premiumType != null ? PREMIUM_TYPE_DISPLAY_NAME[premiumType] : null;
|
|
if (r5 != null) {
|
|
return _index_native.intl.string(r5);
|
|
}
|
|
const error = new Error("Unsupported plan");
|
|
captureBillingException(error, {
|
|
tags: {
|
|
planId: a0
|
|
}
|
|
});
|
|
throw error;
|
|
}
|
|
getPlanDescription = function getPlanDescription({ subscription, planId: planId2, price, includePremiumGuilds, hasDiscountApplied, activeDiscountInfo, renewalInvoiceWithoutEntitlementsPreview, renewalInvoiceWithEntitlementsPreview, hasFractionalPremiumWithSub, fractionalPremiumInfo }) {
|
|
let r70, r227;
|
|
const r38 = SubscriptionPlanInfo[planId2];
|
|
const id = r38.id;
|
|
let defaultPaymentSourceId = PaymentSourceStore.defaultPaymentSourceId;
|
|
if (defaultPaymentSourceId == null) {
|
|
defaultPaymentSourceId = void 0;
|
|
}
|
|
const premiumTypeSubscription = SubscriptionStore.getPremiumTypeSubscription();
|
|
if (premiumTypeSubscription != null && premiumTypeSubscription.paymentSourceId != null) {
|
|
defaultPaymentSourceId = premiumTypeSubscription.paymentSourceId;
|
|
}
|
|
const price2 = getPrice(id, false, false, {
|
|
paymentSourceId: defaultPaymentSourceId,
|
|
currency: void 0
|
|
}, true);
|
|
const interval = r38.interval;
|
|
const r24 = formatPrice(price2.amount, price2.currency);
|
|
if (SubscriptionIntervalTypes.MONTH === interval) {
|
|
r70 = _index_native.intl.string(_index_native.t.FPybU7);
|
|
} else {
|
|
if (SubscriptionIntervalTypes.YEAR !== interval) {
|
|
throw new Error("Unexpected interval");
|
|
}
|
|
r70 = _index_native.intl.string(_index_native.t.tfqrhj);
|
|
}
|
|
const regularPrice = `${r24}/${r70}`;
|
|
const r3 = renewalInvoiceWithEntitlementsPreview != null && renewalInvoiceWithEntitlementsPreview.subtotal === 0;
|
|
const { status, renewalMutations } = subscription;
|
|
let r89 = status === SubscriptionStatusTypes.CANCELED || renewalMutations != null && (0, _SubscriptionPlanRecord.isNoneSubscription)(renewalMutations.planId) && !subscription.isPurchasedExternally;
|
|
if (!r89) {
|
|
let r2 = subscription.paymentSourceId == null && !subscription.isPurchasedExternally;
|
|
if (r2) {
|
|
const currentUser = UserStore.getCurrentUser();
|
|
r2 = !(currentUser == null ? void 0 : currentUser.hasFreePremium());
|
|
}
|
|
if (r2) {
|
|
r2 = !r3;
|
|
}
|
|
r89 = r2;
|
|
}
|
|
const r101 = price != null && subscription.paymentGateway == null;
|
|
const r105 = subscription.status === SubscriptionStatusTypes.UNPAID && subscription.latestInvoice !== null && subscription.latestInvoice?.status === InvoiceStatusTypes.OPEN;
|
|
const r112 = r89 ? SubscriptionStatusTypes.CANCELED : r105 ? SubscriptionStatusTypes.UNPAID : subscription.status;
|
|
let r114 = renewalInvoiceWithoutEntitlementsPreview?.taxInclusive;
|
|
if (r114 == null) {
|
|
r114 = subscription.latestInvoice?.taxInclusive;
|
|
}
|
|
if (r114 == null) {
|
|
r114 = true;
|
|
}
|
|
let r119 = 0;
|
|
if (includePremiumGuilds) {
|
|
let env13650;
|
|
const additionalPlans = subscription.additionalPlans;
|
|
const r120 = env13650 = {};
|
|
env13650[0] = void 0;
|
|
const planIdsForSkus = SubscriptionPlanStore.getPlanIdsForSkus([PremiumSubscriptionSKUs.GUILD]);
|
|
env13650[0] = planIdsForSkus;
|
|
Module38(planIdsForSkus != null, "Missing guildSubscriptionPlanIds");
|
|
const r131 = additionalPlans.find($mk72818(r120));
|
|
r119 = r131 != null ? r131.quantity : 0;
|
|
}
|
|
const num = NUM_FREE_GUILD_BOOSTS_WITH_PREMIUM + r119;
|
|
let r143 = r101 ? r114 ? _index_native.intl.format(_index_native.t["cd+hqB"], {
|
|
price
|
|
}) : _index_native.intl.format(_index_native.t.NUkcpF, {
|
|
price
|
|
}) : _index_native.intl.string(_index_native.t.zYx3Y6);
|
|
let r161 = r101 ? r114 ? _index_native.intl.format(_index_native.t.VsKcFB, {
|
|
price
|
|
}) : _index_native.intl.format(_index_native.t.hJ5xEX, {
|
|
price
|
|
}) : _index_native.intl.string(_index_native.t["8rSipI"]);
|
|
let r180 = r101 ? r114 ? _index_native.intl.format(_index_native.t["jRy6/J"], {
|
|
price,
|
|
num
|
|
}) : _index_native.intl.format(_index_native.t.tTNE8M, {
|
|
price,
|
|
num
|
|
}) : _index_native.intl.format(_index_native.t["U+z/HJ"], {
|
|
num
|
|
});
|
|
if (SubscriptionPlans.PREMIUM_MONTH_TIER_0 !== planId2 && SubscriptionPlans.PREMIUM_YEAR_TIER_0 !== planId2) {
|
|
if (SubscriptionPlans.PREMIUM_MONTH_TIER_1 !== planId2 && SubscriptionPlans.PREMIUM_YEAR_TIER_1 !== planId2) {
|
|
if (SubscriptionPlans.PREMIUM_MONTH_TIER_2 !== planId2 && SubscriptionPlans.PREMIUM_YEAR_TIER_2 !== planId2 && SubscriptionPlans.PREMIUM_3_MONTH_TIER_2 !== planId2 && SubscriptionPlans.PREMIUM_6_MONTH_TIER_2 !== planId2 && SubscriptionPlans.PREMIUM_GROUP_MONTH !== planId2) {
|
|
throw new Error(`Invalid planId ${planId2}`);
|
|
}
|
|
if (SubscriptionStatusTypes.CANCELED === r112) {
|
|
return r101 ? r114 ? _index_native.intl.format(_index_native.t.xoFgRh, {
|
|
price,
|
|
num
|
|
}) : _index_native.intl.format(_index_native.t.nXdbKo, {
|
|
price,
|
|
num
|
|
}) : _index_native.intl.format(_index_native.t.EcSdRH, {
|
|
num
|
|
});
|
|
}
|
|
if (SubscriptionStatusTypes.ACCOUNT_HOLD === r112) {
|
|
return r101 ? r114 ? _index_native.intl.format(_index_native.t["5C/0QG"], {
|
|
price,
|
|
num
|
|
}) : _index_native.intl.format(_index_native.t.xfYkhu, {
|
|
price,
|
|
num
|
|
}) : _index_native.intl.format(_index_native.t.ivjxcn, {
|
|
num
|
|
});
|
|
}
|
|
if (SubscriptionStatusTypes.UNPAID === r112) {
|
|
return _index_native.intl.format(_index_native.t["0HopYf"], {
|
|
num
|
|
});
|
|
}
|
|
if (SubscriptionStatusTypes.PAUSE_PENDING === r112) {
|
|
const pauseDuration = subscription.pauseEndsAt != null ? Module3771(subscription.pauseEndsAt).diff(subscription.currentPeriodEnd, "days") : null;
|
|
return pauseDuration != null ? _index_native.intl.format(_index_native.t.WUfOD5, {
|
|
pauseDate: subscription.currentPeriodEnd,
|
|
pauseDuration
|
|
}) : _index_native.intl.format(_index_native.t.VlWufv, {
|
|
pauseDate: subscription.currentPeriodEnd
|
|
});
|
|
}
|
|
if (SubscriptionStatusTypes.PAUSED === r112) {
|
|
if (!hasFractionalPremiumWithSub) {
|
|
r180 = _index_native.intl.format(_index_native.t["6RTdZA"], {
|
|
resumeDate: subscription.pauseEndsAt
|
|
});
|
|
}
|
|
return r180;
|
|
}
|
|
if (SubscriptionStatusTypes.BILLING_RETRY === r112) {
|
|
return _index_native.intl.format(_index_native.t["IlJ/HV"], {
|
|
endDate: Module3771(subscription.currentPeriodStart).add(PAID_SUBSCRIPTION_MAX_BILLING_RETRY_DAYS, "days").toDate()
|
|
});
|
|
}
|
|
if (SubscriptionStatusTypes.PAST_DUE === r112) {
|
|
return _index_native.intl.format(_index_native.t["d+0vwo"], {
|
|
endDate: dateFormat(getBillingGracePeriodDaysAndExpiresDate(subscription).expiresDate, "LL"),
|
|
onClick: () => {
|
|
openURL("https://support.discord.com/hc/articles/23082866222871");
|
|
}
|
|
});
|
|
}
|
|
let r212 = r180;
|
|
if (hasDiscountApplied) {
|
|
if (planId2 === SubscriptionPlans.PREMIUM_YEAR_TIER_2) {
|
|
const z2oQtA = _index_native.t.z2oQtA;
|
|
let percent3 = activeDiscountInfo?.percentage;
|
|
if (percent3 == null) {
|
|
percent3 = ANNUAL_DISCOUNT_PERCENTAGE_FALLBACK;
|
|
}
|
|
r227 = _index_native.intl.format(z2oQtA, {
|
|
percent: percent3,
|
|
regularPrice,
|
|
renewalDate: getExpectedRenewalDate(subscription, fractionalPremiumInfo)
|
|
});
|
|
} else if (r114) {
|
|
const r228 = _index_native.t["3ZiutU"];
|
|
let percent2 = activeDiscountInfo?.percentage;
|
|
if (percent2 == null) {
|
|
percent2 = DISCOUNT_PERCENTAGE_FALLBACK;
|
|
}
|
|
let numMonths2 = activeDiscountInfo?.duration;
|
|
if (numMonths2 == null) {
|
|
numMonths2 = DISCOUNT_DURATION_FALLBACK;
|
|
}
|
|
r227 = _index_native.intl.formatToPlainString(r228, {
|
|
percent: percent2,
|
|
regularPrice,
|
|
numMonths: numMonths2
|
|
});
|
|
} else {
|
|
const r221 = _index_native.t["G6+XOT"];
|
|
let percent = activeDiscountInfo?.percentage;
|
|
if (percent == null) {
|
|
percent = DISCOUNT_PERCENTAGE_FALLBACK;
|
|
}
|
|
let numMonths = activeDiscountInfo?.duration;
|
|
if (numMonths == null) {
|
|
numMonths = DISCOUNT_DURATION_FALLBACK;
|
|
}
|
|
r227 = _index_native.intl.formatToPlainString(r221, {
|
|
percent,
|
|
regularPrice,
|
|
numMonths
|
|
});
|
|
}
|
|
r212 = r227;
|
|
}
|
|
return r212;
|
|
}
|
|
if (SubscriptionStatusTypes.CANCELED === r112) {
|
|
return r101 ? r114 ? _index_native.intl.format(_index_native.t.cXy8Bp, {
|
|
price
|
|
}) : _index_native.intl.format(_index_native.t["C/XsHt"], {
|
|
price
|
|
}) : _index_native.intl.string(_index_native.t.K6tYFa);
|
|
}
|
|
if (SubscriptionStatusTypes.ACCOUNT_HOLD === r112) {
|
|
return r101 ? r114 ? _index_native.intl.format(_index_native.t.HBkIBi, {
|
|
price
|
|
}) : _index_native.intl.format(_index_native.t.ZsO1Sx, {
|
|
price
|
|
}) : _index_native.intl.format(_index_native.t["0+/WH7"], {});
|
|
}
|
|
if (SubscriptionStatusTypes.UNPAID === r112) {
|
|
return _index_native.intl.format(_index_native.t.McIzwj, {});
|
|
}
|
|
if (SubscriptionStatusTypes.PAUSE_PENDING === r112) {
|
|
const pauseDuration2 = subscription.pauseEndsAt != null ? Module3771(subscription.pauseEndsAt).diff(subscription.currentPeriodEnd, "days") : null;
|
|
return pauseDuration2 != null ? _index_native.intl.format(_index_native.t.WUfOD5, {
|
|
pauseDate: subscription.currentPeriodEnd,
|
|
pauseDuration: pauseDuration2
|
|
}) : _index_native.intl.format(_index_native.t.VlWufv, {
|
|
pauseDate: subscription.currentPeriodEnd
|
|
});
|
|
}
|
|
if (SubscriptionStatusTypes.PAUSED === r112) {
|
|
if (!hasFractionalPremiumWithSub) {
|
|
r161 = _index_native.intl.format(_index_native.t["6RTdZA"], {
|
|
resumeDate: subscription.pauseEndsAt
|
|
});
|
|
}
|
|
return r161;
|
|
}
|
|
if (SubscriptionStatusTypes.PAST_DUE === r112) {
|
|
return _index_native.intl.format(_index_native.t["d+0vwo"], {
|
|
endDate: dateFormat(getBillingGracePeriodDaysAndExpiresDate(subscription).expiresDate, "LL"),
|
|
onClick: () => {
|
|
openURL("https://support.discord.com/hc/articles/23082866222871");
|
|
}
|
|
});
|
|
}
|
|
return r161;
|
|
}
|
|
if (SubscriptionStatusTypes.CANCELED === r112) {
|
|
return r101 ? r114 ? _index_native.intl.format(_index_native.t["USi/nc"], {
|
|
price
|
|
}) : _index_native.intl.format(_index_native.t["FS//l2"], {
|
|
price
|
|
}) : _index_native.intl.string(_index_native.t.JshLzq);
|
|
}
|
|
if (SubscriptionStatusTypes.ACCOUNT_HOLD === r112) {
|
|
return r101 ? r114 ? _index_native.intl.format(_index_native.t["5mv+2i"], {
|
|
price
|
|
}) : _index_native.intl.format(_index_native.t.nkAEfZ, {
|
|
price
|
|
}) : _index_native.intl.format(_index_native.t.SsLIXS, {});
|
|
}
|
|
if (SubscriptionStatusTypes.UNPAID === r112) {
|
|
return _index_native.intl.format(_index_native.t.cmkbFB, {});
|
|
}
|
|
if (SubscriptionStatusTypes.PAUSE_PENDING === r112) {
|
|
const pauseDuration3 = subscription.pauseEndsAt != null ? Module3771(subscription.pauseEndsAt).diff(subscription.currentPeriodEnd, "days") : null;
|
|
return pauseDuration3 != null ? _index_native.intl.format(_index_native.t.WUfOD5, {
|
|
pauseDate: subscription.currentPeriodEnd,
|
|
pauseDuration: pauseDuration3
|
|
}) : _index_native.intl.format(_index_native.t.VlWufv, {
|
|
pauseDate: subscription.currentPeriodEnd
|
|
});
|
|
}
|
|
if (SubscriptionStatusTypes.PAUSED === r112) {
|
|
if (!hasFractionalPremiumWithSub) {
|
|
r143 = _index_native.intl.format(_index_native.t["6RTdZA"], {
|
|
resumeDate: subscription.pauseEndsAt
|
|
});
|
|
}
|
|
return r143;
|
|
}
|
|
if (SubscriptionStatusTypes.PAST_DUE === r112) {
|
|
return _index_native.intl.format(_index_native.t["d+0vwo"], {
|
|
endDate: dateFormat(getBillingGracePeriodDaysAndExpiresDate(subscription).expiresDate, "LL"),
|
|
onClick: () => {
|
|
openURL("https://support.discord.com/hc/articles/23082866222871");
|
|
}
|
|
});
|
|
}
|
|
return r143;
|
|
};
|
|
export function getPremiumPlanOptions({ skuId, isPremium, defaultPlanId }) {
|
|
let r32;
|
|
if (skuId != null && isPremium) {
|
|
const r4 = defaultPlanId !== void 0 ? skuId === SubscriptionPlanInfo[defaultPlanId].skuId ? defaultPlanId : void 0 : void 0;
|
|
if (PremiumSubscriptionSKUs.TIER_0 === skuId) {
|
|
r32 = [SubscriptionPlans.PREMIUM_YEAR_TIER_0, SubscriptionPlans.PREMIUM_MONTH_TIER_0];
|
|
} else if (PremiumSubscriptionSKUs.TIER_1 === skuId) {
|
|
r32 = [SubscriptionPlans.PREMIUM_MONTH_TIER_1];
|
|
} else {
|
|
if (PremiumSubscriptionSKUs.TIER_2 !== skuId) {
|
|
if (PremiumSubscriptionSKUs.GUILD === skuId) {
|
|
return [];
|
|
}
|
|
throw new Error(`Unexpected SKU: ${skuId}`);
|
|
}
|
|
r32 = [SubscriptionPlans.PREMIUM_YEAR_TIER_2, SubscriptionPlans.PREMIUM_MONTH_TIER_2];
|
|
}
|
|
if (r4 !== void 0) {
|
|
r32.splice(r32.indexOf(r4), 1);
|
|
r32.unshift(r4);
|
|
}
|
|
return r32;
|
|
}
|
|
return [];
|
|
}
|
|
getNumPremiumGuildSubscriptions = function getNumPremiumGuildSubscriptions(a0) {
|
|
let env13651;
|
|
const r3 = env13651 = {};
|
|
const planIdsForSkus = SubscriptionPlanStore.getPlanIdsForSkus([PremiumSubscriptionSKUs.GUILD]);
|
|
env13651[0] = planIdsForSkus;
|
|
Module38(planIdsForSkus != null, "Missing guildSubscriptionPlanIds");
|
|
const r20 = a0.find($mk72818(r3));
|
|
return r20 != null ? r20.quantity : 0;
|
|
};
|
|
getBillingGracePeriodDaysAndExpiresDate = function getBillingGracePeriodDaysAndExpiresDate(a0) {
|
|
if (a0.isPurchasedViaApple) {
|
|
if (a0.metadata?.apple_grace_period_expires_date != null) {
|
|
const expiresDate2 = Module3771(a0.metadata.apple_grace_period_expires_date);
|
|
return {
|
|
days: Module3771.duration(expiresDate2.diff(a0.currentPeriodStart)).days(),
|
|
expiresDate: expiresDate2
|
|
};
|
|
}
|
|
}
|
|
if (a0.isPurchasedViaGoogle) {
|
|
if (a0.metadata?.google_grace_period_expires_date != null) {
|
|
if (a0.metadata?.google_original_expires_date != null) {
|
|
const expiresDate = Module3771(a0.metadata.google_grace_period_expires_date);
|
|
return {
|
|
days: Module3771.duration(expiresDate.diff(Module3771(a0.metadata.google_original_expires_date))).days(),
|
|
expiresDate
|
|
};
|
|
}
|
|
}
|
|
}
|
|
if (a0.isPurchasedExternally) {
|
|
const days2 = a0.isPurchasedViaApple ? DEFAULT_APPLE_GRACE_PERIOD_DAYS : DEFAULT_GOOGLE_GRACE_PERIOD_DAYS;
|
|
return {
|
|
days: days2,
|
|
expiresDate: Module3771(a0.currentPeriodStart).add(days2, "days")
|
|
};
|
|
}
|
|
if (a0.metadata?.grace_period_expires_date != null) {
|
|
return {
|
|
days: Module3771(a0.metadata?.grace_period_expires_date).diff(a0.currentPeriodStart, "days"),
|
|
expiresDate: Module3771(a0.metadata.grace_period_expires_date)
|
|
};
|
|
}
|
|
const days = a0.paymentSourceId == null ? DEFAULT_MAX_GRACE_PERIOD_DAYS : PAID_SUBSCRIPTION_MAX_GRACE_PERIOD_DAYS;
|
|
return {
|
|
days,
|
|
expiresDate: Module3771(a0.currentPeriodStart).add(days, "days")
|
|
};
|
|
};
|
|
getExpectedRenewalDate = function getExpectedRenewalDate(a0, a1) {
|
|
const date = new Date(a0.currentPeriodEnd);
|
|
const r13 = a1 == null || a0.isBoostOnly || a0.hasAnyPremiumGroup;
|
|
let r15 = date;
|
|
if (!r13) {
|
|
const unactivatedUnits = a1.unactivatedUnits;
|
|
const r7 = Module3771(date);
|
|
r15 = (unactivatedUnits.length > 0 ? r7.add(unactivatedUnits.map($mk72831()).reduce($mk72832(), 0), "hours") : r7).toDate();
|
|
}
|
|
return r15;
|
|
};
|
|
export function getBillingInformationString(a0, a1, r4 = null, r9 = false, r6 = {
|
|
isFractionalPremiumActive: false,
|
|
fetched: true,
|
|
fractionalState: FractionalPremiumStates.NONE,
|
|
startsAt: Module3771(0),
|
|
endsAt: Module3771(0),
|
|
currentEntitlementId: "",
|
|
currentEntitlementEndsAt: Module3771(0),
|
|
unactivatedUnits: []
|
|
}) {
|
|
let r43, r44, r45, r142, r200, r212, r235, r310, r314, r351, PAYMENT_SOURCE_MANAGEMENT, PAYMENT_SOURCE_MANAGEMENT2, SUBSCRIPTION_MANAGEMENT, U2hb3W, ZlWXgR, intl2, intl3, price;
|
|
const r36 = r4 !== null ? a0.status === SubscriptionStatusTypes.PAST_DUE ? r4 : a1 : a1;
|
|
if (r9) {
|
|
price = formatPrice(r36.invoiceItems.filter((invoiceItem) => PREMIUM_TIER_2_PLANS.has(invoiceItem.subscriptionPlanId)).map((item) => item.amount).reduce((acc, item) => item + acc, 0), r36.currency);
|
|
r43 = dependencyMap;
|
|
r44 = r43;
|
|
r45 = require;
|
|
} else {
|
|
price = formatPrice(r36.total, r36.currency);
|
|
r43 = dependencyMap;
|
|
r44 = r43;
|
|
r45 = require;
|
|
}
|
|
const currentUser = UserStore.getCurrentUser();
|
|
if (currentUser == null ? void 0 : currentUser.isOnReverseTrial()) {
|
|
const trialEnd = r6.currentEntitlementEndsAt != null ? r6.currentEntitlementEndsAt.toDate() : a0.currentPeriodEnd;
|
|
return r45(r44[17]).intl.format(r45(r44[17]).t["7ZS2m1"], {
|
|
trialEnd
|
|
});
|
|
}
|
|
if (a0.status === SubscriptionStatusTypes.CANCELED) {
|
|
return r45(r44[17]).intl.format(r45(r44[17]).t["Whp/qk"], {
|
|
endDate: a1.subscriptionPeriodStart
|
|
});
|
|
}
|
|
if (a0.status === SubscriptionStatusTypes.PAUSE_PENDING) {
|
|
return r45(r44[17]).intl.format(r45(r44[17]).t.uBLUGU, {
|
|
pauseDate: a0.currentPeriodEnd,
|
|
resumeDate: a0.pauseEndsAt
|
|
});
|
|
}
|
|
if (a0.status === SubscriptionStatusTypes.PAUSED) {
|
|
if (r6.fractionalState !== FractionalPremiumStates.NONE) {
|
|
r351 = r45(r44[17]).intl.format(r45(r44[17]).t.Q18lRK, {
|
|
renewalDate: r6.endsAt.toDate(),
|
|
price
|
|
});
|
|
} else if (a0.pauseEndsAt == null) {
|
|
const intl6 = r45(r44[17]).intl;
|
|
r351 = r9 ? intl6.format(r45(r44[17]).t.KTYQCg, {
|
|
planName: r45(r44[17]).intl.string(r45(r44[17]).t.Ipxkog),
|
|
price
|
|
}) : intl6.string(r45(r44[17]).t.fMz6Lg);
|
|
} else {
|
|
const intl5 = r45(r44[17]).intl;
|
|
const r347 = r45(r44[17]).t;
|
|
r351 = r9 ? intl5.format(r347.zcgtzf, {
|
|
planName: r45(r44[17]).intl.string(r45(r44[17]).t.Ipxkog),
|
|
resumeDate: a0.pauseEndsAt,
|
|
price
|
|
}) : intl5.format(r347["V8+l6k"], {
|
|
resumeDate: a0.pauseEndsAt
|
|
});
|
|
}
|
|
return r351;
|
|
}
|
|
if (a0.status === SubscriptionStatusTypes.PAST_DUE) {
|
|
let expiresDate = getBillingGracePeriodDaysAndExpiresDate(a0).expiresDate;
|
|
if (a0.isPurchasedViaGoogle && a0.metadata?.google_grace_period_expires_date != null) {
|
|
expiresDate = importDefault(r44[19])(a0.metadata.google_grace_period_expires_date);
|
|
}
|
|
if (a0.isPurchasedViaApple && a0.metadata?.apple_grace_period_expires_date != null) {
|
|
expiresDate = importDefault(r44[19])(a0.metadata.apple_grace_period_expires_date);
|
|
}
|
|
const isPurchasedExternally = a0.isPurchasedExternally;
|
|
const intl4 = r45(r44[17]).intl;
|
|
const r305 = r45(r44[17]).t;
|
|
if (isPurchasedExternally) {
|
|
L84: {
|
|
U2hb3W = r305.U2hb3W;
|
|
r314 = {
|
|
endDate: expiresDate.toDate(),
|
|
paymentGatewayName: PaymentGatewayToFriendlyName[a0.paymentGateway],
|
|
paymentSourceLink: null
|
|
};
|
|
const paymentGateway3 = a0.paymentGateway;
|
|
if (PaymentGateways.APPLE_PARTNER !== paymentGateway3 && PaymentGateways.APPLE_ADVANCED_COMMERCE !== paymentGateway3 && PaymentGateways.APPLE !== paymentGateway3) {
|
|
if (PaymentGateways.GOOGLE === paymentGateway3) {
|
|
PAYMENT_SOURCE_MANAGEMENT2 = c2169_52.PAYMENT_SOURCE_MANAGEMENT;
|
|
break L84;
|
|
}
|
|
throw new Error(`Invalid external payment gateway ${paymentGateway3}`);
|
|
}
|
|
PAYMENT_SOURCE_MANAGEMENT2 = c2169_51.PAYMENT_SOURCE_MANAGEMENT;
|
|
}
|
|
r314.paymentSourceLink = PAYMENT_SOURCE_MANAGEMENT2;
|
|
r310 = intl4.format(U2hb3W, r314);
|
|
} else {
|
|
r310 = intl4.format(r305.qEIzyi, {
|
|
endDate: expiresDate.toDate(),
|
|
price
|
|
});
|
|
}
|
|
return r310;
|
|
}
|
|
if (a0.status === SubscriptionStatusTypes.BILLING_RETRY) {
|
|
return r45(r44[17]).intl.format(r45(r44[17]).t.EMTLOT, {
|
|
endDate: importDefault(r44[19])(a0.currentPeriodStart).add(PAID_SUBSCRIPTION_MAX_BILLING_RETRY_DAYS, "days").toDate(),
|
|
price
|
|
});
|
|
}
|
|
if (a0.status === SubscriptionStatusTypes.ACCOUNT_HOLD) {
|
|
if (a0.isPurchasedViaGoogle && !r45(r44[23]).isGooglePlayBillingSupported()) {
|
|
L59: {
|
|
intl3 = r45(r44[17]).intl;
|
|
r200 = r45(r44[17]).t["dtcxw+"];
|
|
r212 = {
|
|
endDate: importDefault(r44[19])(a0.currentPeriodStart).add(MAX_ACCOUNT_HOLD_DAYS, "days").toDate(),
|
|
paymentGatewayName: PaymentGatewayToFriendlyName[a0.paymentGateway],
|
|
paymentSourceLink: null
|
|
};
|
|
const paymentGateway2 = a0.paymentGateway;
|
|
if (PaymentGateways.APPLE_PARTNER !== paymentGateway2 && PaymentGateways.APPLE_ADVANCED_COMMERCE !== paymentGateway2 && PaymentGateways.APPLE !== paymentGateway2) {
|
|
if (PaymentGateways.GOOGLE === paymentGateway2) {
|
|
PAYMENT_SOURCE_MANAGEMENT = c2169_52.PAYMENT_SOURCE_MANAGEMENT;
|
|
break L59;
|
|
}
|
|
throw new Error(`Invalid external payment gateway ${paymentGateway2}`);
|
|
}
|
|
PAYMENT_SOURCE_MANAGEMENT = c2169_51.PAYMENT_SOURCE_MANAGEMENT;
|
|
}
|
|
r212.paymentSourceLink = PAYMENT_SOURCE_MANAGEMENT;
|
|
r235 = intl3.format(r200, r212);
|
|
} else {
|
|
r235 = r45(r44[17]).intl.format(r45(r44[17]).t.EMTLOT, {
|
|
endDate: importDefault(r44[19])(a0.currentPeriodStart).add(MAX_ACCOUNT_HOLD_DAYS, "days").toDate(),
|
|
price
|
|
});
|
|
}
|
|
return r235;
|
|
}
|
|
let r74 = a0.paymentSourceId != null;
|
|
if (r74) {
|
|
const paymentSourceId = a0.paymentSourceId;
|
|
const r76 = paymentSourceId == null;
|
|
let r77 = false;
|
|
if (!r76) {
|
|
const paymentSource = PaymentSourceStore.getPaymentSource(paymentSourceId);
|
|
r77 = paymentSource != null && PREPAID_PAYMENT_SOURCES.has(paymentSource.type);
|
|
}
|
|
r74 = r77;
|
|
}
|
|
if (r74) {
|
|
return r45(r44[17]).intl.format(r45(r44[17]).t.awpB0C, {
|
|
prepaidEndDate: a0.currentPeriodEnd
|
|
});
|
|
}
|
|
if (a0.status === SubscriptionStatusTypes.UNPAID) {
|
|
return r45(r44[17]).intl.format(r45(r44[17]).t.CzTKom, {
|
|
maxProcessingTimeInDays: MAX_PAYMENT_PROCESSING_TIME_DAYS
|
|
});
|
|
}
|
|
if (a0.isPurchasedExternally) {
|
|
L47: {
|
|
intl2 = r45(r44[17]).intl;
|
|
ZlWXgR = r45(r44[17]).t.ZlWXgR;
|
|
r142 = {
|
|
renewalDate: a1.subscriptionPeriodStart,
|
|
paymentGatewayName: PaymentGatewayToFriendlyName[a0.paymentGateway],
|
|
subscriptionManagementLink: null
|
|
};
|
|
const paymentGateway = a0.paymentGateway;
|
|
if (PaymentGateways.APPLE_PARTNER !== paymentGateway && PaymentGateways.APPLE_ADVANCED_COMMERCE !== paymentGateway && PaymentGateways.APPLE !== paymentGateway) {
|
|
if (PaymentGateways.GOOGLE === paymentGateway) {
|
|
SUBSCRIPTION_MANAGEMENT = c2169_52.SUBSCRIPTION_MANAGEMENT;
|
|
break L47;
|
|
}
|
|
throw new Error(`Invalid external payment gateway ${paymentGateway}`);
|
|
}
|
|
SUBSCRIPTION_MANAGEMENT = c2169_51.SUBSCRIPTION_MANAGEMENT;
|
|
}
|
|
r142.subscriptionManagementLink = SUBSCRIPTION_MANAGEMENT;
|
|
return intl2.format(ZlWXgR, r142);
|
|
}
|
|
const date = new Date(a1.subscriptionPeriodStart);
|
|
const r92 = a0.isBoostOnly || a0.hasAnyPremiumGroup;
|
|
let renewalDate = date;
|
|
if (!r92) {
|
|
const unactivatedUnits = r6.unactivatedUnits;
|
|
const r99 = importDefault(r43[19])(date);
|
|
renewalDate = (unactivatedUnits.length > 0 ? r99.add(unactivatedUnits.map($mk72831()).reduce($mk72832(), 0), "hours") : r99).toDate();
|
|
}
|
|
const intl = r45(r44[17]).intl;
|
|
const r118 = r45(r44[17]).t;
|
|
return r9 ? intl.format(r118.Vl3cED, {
|
|
planName: r45(r44[17]).intl.string(r45(r44[17]).t.Ipxkog),
|
|
renewalDate,
|
|
price
|
|
}) : intl.format(r118.Q18lRK, {
|
|
renewalDate,
|
|
price
|
|
});
|
|
}
|
|
export function extendDateWithUnconsumedFractionalPremium(a0, a1, a2, a3) {
|
|
const r9 = Module3771(a3 ? void 0 : a0);
|
|
const r13 = a1.length > 0 ? r9.add(a1.map($mk72831()).reduce($mk72832(), 0), "hours") : r9;
|
|
let r21 = r13;
|
|
if (!a3) {
|
|
r21 = r13;
|
|
if (a2 !== void 0) {
|
|
const r29 = a2.diff(Module3771(), "hours", true);
|
|
r21 = r29 > 0 ? r13.add(r29, "hours") : r13;
|
|
}
|
|
}
|
|
return r21.toDate();
|
|
}
|
|
export function getUnactivatedFractionalPremiumDurationString(a0) {
|
|
const r10 = a0.unactivatedUnits.map($mk72831()).reduce($mk72832(), 0);
|
|
if (r10 > 0 && a0.fractionalState === FractionalPremiumStates.NONE) {
|
|
const r25 = {
|
|
days: _index_native.t.fYmirx,
|
|
hours: _index_native.t["C3RO+g"],
|
|
minutes: _index_native.t.r77oHc
|
|
};
|
|
return unitsAsStrings(roundFPCountdownUnits(diffAsUnits(0, r10 * Durations.Millis.HOUR)), r25);
|
|
}
|
|
return "";
|
|
}
|
|
export function isSwitchingPlansDisabled(a0) {
|
|
return a0.renewalMutations != null || a0.trialEndsAt != null || a0.status === SubscriptionStatusTypes.PAST_DUE;
|
|
}
|
|
export function getSwitchingPlansDisabledMessage(a0) {
|
|
let r10 = a0.renewalMutations != null ? a0.renewalMutations.planId !== a0.planId ? _index_native.intl.string(_index_native.t["0rzJ4J"]) : _index_native.intl.string(_index_native.t["9dLQ0/"]) : null;
|
|
if (a0.trialEndsAt != null) {
|
|
r10 = _index_native.intl.string(_index_native.t.a9Mdb3);
|
|
}
|
|
return r10;
|
|
}
|
|
getCoercedPremiumGuildSubscriptionStatus = function getCoercedPremiumGuildSubscriptionStatus({ renewalMutations, additionalPlans, status }) {
|
|
let env13653;
|
|
const r17 = env13653 = {};
|
|
env13653[0] = void 0;
|
|
const planIdsForSkus = SubscriptionPlanStore.getPlanIdsForSkus([PremiumSubscriptionSKUs.GUILD]);
|
|
env13653[0] = planIdsForSkus;
|
|
Module38(planIdsForSkus != null, "Missing guildSubscriptionPlanIds");
|
|
const r26 = additionalPlans.find($mk72818(r17));
|
|
const r28 = r26 != null ? r26.quantity : 0;
|
|
const r29 = renewalMutations != null;
|
|
let r30 = null;
|
|
if (r29) {
|
|
let env13654;
|
|
const additionalPlans2 = renewalMutations.additionalPlans;
|
|
const r32 = env13654 = {};
|
|
env13654[0] = void 0;
|
|
const planIdsForSkus2 = SubscriptionPlanStore.getPlanIdsForSkus([PremiumSubscriptionSKUs.GUILD]);
|
|
env13654[0] = planIdsForSkus2;
|
|
Module38(planIdsForSkus2 != null, "Missing guildSubscriptionPlanIds");
|
|
const r41 = additionalPlans2.find($mk72818(r32));
|
|
r30 = r41 != null ? r41.quantity : 0;
|
|
}
|
|
return r30 === 0 ? r28 !== 0 ? SubscriptionStatusTypes.CANCELED : status : status;
|
|
};
|
|
isPremiumGuildSubscriptionCanceled = function isPremiumGuildSubscriptionCanceled(a0) {
|
|
return a0.isPurchasedExternally ? a0.status === SubscriptionStatusTypes.CANCELED : getCoercedPremiumGuildSubscriptionStatus(a0) === SubscriptionStatusTypes.CANCELED;
|
|
};
|
|
getFormattedPriceForPlan = function getFormattedPriceForPlan(a0, a1, a2, r7 = false) {
|
|
let r15;
|
|
if (a1 != null) {
|
|
try {
|
|
r15 = getPrice(a0.id, false, r7, a1);
|
|
} catch ($e) {
|
|
r15 = getDefaultPrice(a0.id, false, r7);
|
|
}
|
|
} else {
|
|
r15 = getDefaultPrice(a0.id, false, r7);
|
|
}
|
|
const r28 = formatPrice(r15.amount, r15.currency);
|
|
return a0.currency !== CurrencyCodes.USD && a2 === true ? r28.concat("*") : r28;
|
|
};
|
|
export function getPlanIdFromInvoice(a0, a1) {
|
|
let subscriptionPlanId;
|
|
const planId2 = a0.planId;
|
|
if (a0.status !== SubscriptionStatusTypes.CANCELED && a0.status !== SubscriptionStatusTypes.PAUSE_PENDING) {
|
|
L8: {
|
|
L7: {
|
|
Module38(a1 != null, "Expected invoicePreview");
|
|
const r21 = a1.invoiceItems.find((invoiceItem) => c2169_65.has(invoiceItem.subscriptionPlanId));
|
|
if (r21 != null && !(0, _SubscriptionPlanRecord.isNoneSubscription)(r21.subscriptionPlanId)) {
|
|
if (a0.renewalMutations != null && a0.renewalMutations.planId !== a0.planId) {
|
|
break L7;
|
|
}
|
|
subscriptionPlanId = r21.subscriptionPlanId;
|
|
break L8;
|
|
}
|
|
}
|
|
subscriptionPlanId = a0.planId;
|
|
}
|
|
return subscriptionPlanId;
|
|
}
|
|
return planId2;
|
|
}
|
|
export function getStatusFromInvoice(a0, a1) {
|
|
const status = a0.status;
|
|
if (a0.status !== SubscriptionStatusTypes.CANCELED && a0.status !== SubscriptionStatusTypes.PAUSE_PENDING) {
|
|
Module38(a1 != null, "Expected invoicePreview");
|
|
const r21 = a1.invoiceItems.find((invoiceItem) => c2169_65.has(invoiceItem.subscriptionPlanId));
|
|
return r21 == null || (0, _SubscriptionPlanRecord.isNoneSubscription)(r21.subscriptionPlanId) ? SubscriptionStatusTypes.CANCELED : status;
|
|
}
|
|
return status;
|
|
}
|
|
export function isBaseSubscriptionCanceled(a0) {
|
|
const { status, renewalMutations } = a0;
|
|
return status === SubscriptionStatusTypes.CANCELED || renewalMutations != null && (0, _SubscriptionPlanRecord.isNoneSubscription)(renewalMutations.planId) && !a0.isPurchasedExternally;
|
|
}
|
|
getPremiumGuildIntervalPrice = function getPremiumGuildIntervalPrice(a0, a1, a2, a3) {
|
|
const r6 = a1 != null ? {
|
|
paymentSourceId: a1,
|
|
currency: a2
|
|
} : {
|
|
country: BillingInfoStore.ipCountryCodeWithFallback,
|
|
currency: a2
|
|
};
|
|
const r18 = SubscriptionPlanStore.get(a0);
|
|
if (r18 == null) {
|
|
const error2 = new Error("Unsupported plan");
|
|
captureBillingException(error2, {
|
|
tags: {
|
|
planId: a0
|
|
}
|
|
});
|
|
throw error2;
|
|
}
|
|
const forSkuAndInterval = SubscriptionPlanStore.getForSkuAndInterval(PremiumSubscriptionSKUs.GUILD, r18.interval, r18.intervalCount);
|
|
if (forSkuAndInterval == null) {
|
|
const error = new Error("Unsupported plan");
|
|
captureBillingException(error, {
|
|
tags: {
|
|
planId: a0
|
|
}
|
|
});
|
|
throw error;
|
|
}
|
|
return getPrice(forSkuAndInterval.id, _PremiumTypeUtils.isPremium(a3), false, r6);
|
|
};
|
|
export function getBillingReviewSubheader(a0, a1, a2) {
|
|
let id;
|
|
L8: {
|
|
id = a1.id;
|
|
if (a0 != null) {
|
|
if (SubscriptionPlans.PREMIUM_MONTH_TIER_0 === id) {
|
|
return _index_native.intl.string(_index_native.t["0ggVqN"]);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_YEAR_TIER_0 === id) {
|
|
return _index_native.intl.string(_index_native.t["jm+ZQw"]);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_MONTH_TIER_1 === id) {
|
|
return _index_native.intl.string(_index_native.t.uph4Jx);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_YEAR_TIER_1 === id) {
|
|
return _index_native.intl.string(_index_native.t["D/l7Yt"]);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_MONTH_TIER_2 !== id && SubscriptionPlans.PREMIUM_GROUP_MONTH !== id) {
|
|
if (SubscriptionPlans.PREMIUM_YEAR_TIER_2 === id) {
|
|
return _index_native.intl.string(_index_native.t.G0mISV);
|
|
}
|
|
break L8;
|
|
}
|
|
return _index_native.intl.string(_index_native.t["5l1MuV"]);
|
|
}
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_MONTH_TIER_0 === id) {
|
|
return a2 ? _index_native.intl.string(_index_native.t.cRCCJ3) : _index_native.intl.string(_index_native.t["/G3aKw"]);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_YEAR_TIER_0 === id) {
|
|
return a2 ? _index_native.intl.string(_index_native.t.cRCCJ3) : _index_native.intl.string(_index_native.t["2eQpsL"]);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_MONTH_TIER_1 === id) {
|
|
return a2 ? _index_native.intl.string(_index_native.t.cRCCJ3) : _index_native.intl.string(_index_native.t.gueLg5);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_YEAR_TIER_1 === id) {
|
|
return a2 ? _index_native.intl.string(_index_native.t.cRCCJ3) : _index_native.intl.string(_index_native.t["MhH/vW"]);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_MONTH_TIER_2 === id) {
|
|
return a2 ? _index_native.intl.string(_index_native.t.cRCCJ3) : _index_native.intl.string(_index_native.t.LQVQIq);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_GROUP_MONTH === id) {
|
|
return _index_native.intl.formatToPlainString(PremiumGroup_messages.LwdrNi, {
|
|
premiumGroupProductName: (0, getPremiumGroupProductName)()
|
|
});
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_YEAR_TIER_2 === id) {
|
|
return a2 ? _index_native.intl.string(_index_native.t.cRCCJ3) : _index_native.intl.string(_index_native.t["0nfg1x"]);
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_3_MONTH_TIER_2 !== id && SubscriptionPlans.PREMIUM_6_MONTH_TIER_2 !== id) {
|
|
if (SubscriptionPlans.NONE_MONTH !== id && SubscriptionPlans.NONE_YEAR !== id && SubscriptionPlans.NONE_3_MONTH !== id && SubscriptionPlans.NONE_6_MONTH !== id && SubscriptionPlans.PREMIUM_MONTH_GUILD !== id && SubscriptionPlans.PREMIUM_YEAR_GUILD !== id && SubscriptionPlans.PREMIUM_3_MONTH_GUILD !== id && SubscriptionPlans.PREMIUM_6_MONTH_GUILD !== id) {
|
|
const error = new Error("User is purchasing an unsupported plan");
|
|
captureBillingException(error, {
|
|
tags: {
|
|
planId: id
|
|
}
|
|
});
|
|
throw error;
|
|
}
|
|
return _index_native.intl.string(_index_native.t.eUEeCt);
|
|
}
|
|
return _index_native.intl.formatToPlainString(_index_native.t.BCD4fT, {
|
|
intervalCount: a1.intervalCount
|
|
});
|
|
}
|
|
export function getIntervalForInvoice(a0) {
|
|
const r9 = SubscriptionPlanStore.get(a0.invoiceItems[0].subscriptionPlanId);
|
|
Module38(r9 != null, "Missing subscriptionPlan");
|
|
return {
|
|
intervalType: r9.interval,
|
|
intervalCount: r9.intervalCount
|
|
};
|
|
}
|
|
getDefaultCurrency = function getDefaultCurrency() {
|
|
let currency;
|
|
CurrencyCodes.USD;
|
|
try {
|
|
currency = getDefaultPrice(SubscriptionPlans.PREMIUM_MONTH_TIER_2, false, false, void 0, false).currency;
|
|
} catch ($e) {}
|
|
return currency;
|
|
};
|
|
formatTrialCtaIntervalDuration = function formatTrialCtaIntervalDuration({ intervalType = SubscriptionIntervalTypes.MONTH, intervalCount = 1 }) {
|
|
const price = formatPrice(0, getDefaultCurrency(), {
|
|
maximumFractionDigits: 0,
|
|
minimumFractionDigits: 0
|
|
});
|
|
if (SubscriptionIntervalTypes.DAY === intervalType) {
|
|
return intervalCount >= 7 && intervalCount % 7 === 0 ? _index_native.intl.formatToPlainString(_index_native.t.C6i5Jt, {
|
|
weeks: intervalCount / 7,
|
|
price
|
|
}) : _index_native.intl.formatToPlainString(_index_native.t.cR9ifw, {
|
|
days: intervalCount,
|
|
price
|
|
});
|
|
}
|
|
if (SubscriptionIntervalTypes.MONTH === intervalType) {
|
|
return _index_native.intl.formatToPlainString(_index_native.t["8FZfNo"], {
|
|
months: intervalCount,
|
|
price
|
|
});
|
|
}
|
|
if (SubscriptionIntervalTypes.YEAR === intervalType) {
|
|
return _index_native.intl.formatToPlainString(_index_native.t.xzAcST, {
|
|
years: intervalCount,
|
|
price
|
|
});
|
|
}
|
|
throw new Error("Unsupported interval duration.");
|
|
};
|
|
getItemsWithUpsertedPlanIdForGroup = function getItemsWithUpsertedPlanIdForGroup(a0, a1, a2, a3) {
|
|
let c13656_3;
|
|
const planId = a1;
|
|
const quantity = a2;
|
|
if (a3.has(a1)) {
|
|
c13656_3 = false;
|
|
let r26 = a0.renewalMutations?.items;
|
|
if (r26 == null) {
|
|
r26 = a0.items;
|
|
}
|
|
const r29 = r26.map((item) => {
|
|
const r8 = a3.has(item.planId);
|
|
let r9 = item;
|
|
if (r8) {
|
|
c13656_3 = true;
|
|
r9 = {
|
|
...item,
|
|
quantity,
|
|
planId
|
|
};
|
|
}
|
|
return r9;
|
|
});
|
|
if (!c13656_3) {
|
|
const r31 = {
|
|
planId: a1,
|
|
quantity: a2
|
|
};
|
|
const r35 = a0.items.find((item) => item.planId === planId);
|
|
if (r35 != null) {
|
|
r31.id = r35.id;
|
|
}
|
|
r29.push(r31);
|
|
}
|
|
return r29.filter((item) => item.quantity !== 0);
|
|
}
|
|
throw new CheckoutError({
|
|
message: "Expected planId in group",
|
|
extraSentryInformation: {
|
|
newPlanId: a1,
|
|
planGroup: a3
|
|
}
|
|
});
|
|
};
|
|
export function getGuildBoostPlanItem(a0) {
|
|
return a0 != null ? a0.items.find($mk72830()) : null;
|
|
}
|
|
export function isBoostOnlySubscription(a0) {
|
|
return a0 != null && a0.items.find($mk72811()) == null && (a0 == null ? null : a0.items.find($mk72830())) != null;
|
|
}
|
|
export function getPremiumSkuIdForSubscription(a0) {
|
|
const r4 = a0 != null ? a0.items.find($mk72811()) : null;
|
|
const r12 = r4 != null;
|
|
let r13 = null;
|
|
if (r12) {
|
|
const planId2 = r4.planId;
|
|
const r15 = SubscriptionPlanInfo[planId2];
|
|
if (r15 == null) {
|
|
const error = new Error("Unsupported plan");
|
|
captureBillingException(error, {
|
|
tags: {
|
|
planId: planId2
|
|
}
|
|
});
|
|
throw error;
|
|
}
|
|
r13 = r15.skuId;
|
|
}
|
|
return r13;
|
|
}
|
|
export function getPremiumTypeFromSubscription(a0) {
|
|
if (a0 != null) {
|
|
const r13 = a0.items.find($mk72811());
|
|
if (r13 != null) {
|
|
const planId2 = r13.planId;
|
|
const r15 = SubscriptionPlanInfo[planId2];
|
|
if (r15 != null) {
|
|
return r15.premiumType;
|
|
}
|
|
const error = new Error("Unsupported plan");
|
|
captureBillingException(error, {
|
|
tags: {
|
|
planId: planId2
|
|
}
|
|
});
|
|
throw error;
|
|
}
|
|
}
|
|
}
|
|
export function isNewUser(a0) {
|
|
return a0 != null && Date.now() - a0.createdAt.getTime() < 2592000000;
|
|
}
|
|
export function formatPriceString(a0, a1) {
|
|
let r32;
|
|
const r15 = formatPrice(a0.amount, a0.currency);
|
|
if (SubscriptionIntervalTypes.MONTH === a1) {
|
|
r32 = _index_native.intl.string(_index_native.t.FPybU7);
|
|
} else {
|
|
if (SubscriptionIntervalTypes.YEAR !== a1) {
|
|
throw new Error("Unexpected interval");
|
|
}
|
|
r32 = _index_native.intl.string(_index_native.t.tfqrhj);
|
|
}
|
|
return `${r15}/${r32}`;
|
|
}
|
|
export function castPremiumSubscriptionAsSkuId(a0) {
|
|
return a0;
|
|
}
|
|
export function formatInterval(a0) {
|
|
if (a0 === SubscriptionIntervalTypes.YEAR) {
|
|
return _index_native.intl.string(_index_native.t.tfqrhj);
|
|
}
|
|
if (a0 === SubscriptionIntervalTypes.MONTH) {
|
|
return _index_native.intl.string(_index_native.t.FPybU7);
|
|
}
|
|
throw new Error(`Invalid interval type: ${a0}`);
|
|
}
|
|
export function isPremiumEligible(a0) {
|
|
return a0 != null && !a0.isProvisional && !a0.bot;
|
|
}
|
|
export function getFractionalPremiumUnitsHours(a0) {
|
|
return a0.map($mk72831()).reduce($mk72832(), 0);
|
|
}
|
|
getMonthlyPrice = function getMonthlyPrice({ subscriptionPlan, isGift = false, priceOptions = {} }) {
|
|
const r14 = PREMIUM_SKU_TO_MONTHLY_PLAN[subscriptionPlan.skuId];
|
|
return r14 != null ? getPrice(r14, false, isGift, priceOptions) : null;
|
|
};
|
|
calculateMonthlyPriceEquivalentTotal = function calculateMonthlyPriceEquivalentTotal(a0) {
|
|
const subscriptionPlan = a0.subscriptionPlan;
|
|
let isGift = a0.isGift;
|
|
if (isGift === void 0) {
|
|
isGift = false;
|
|
}
|
|
let priceOptions = a0.priceOptions;
|
|
if (priceOptions === void 0) {
|
|
priceOptions = {};
|
|
}
|
|
if (subscriptionPlan.interval === SubscriptionIntervalTypes.DAY) {
|
|
return null;
|
|
}
|
|
if (subscriptionPlan.interval === SubscriptionIntervalTypes.MONTH && subscriptionPlan.intervalCount === 1) {
|
|
return null;
|
|
}
|
|
if (isGift === void 0) {
|
|
isGift = false;
|
|
}
|
|
if (priceOptions === void 0) {
|
|
priceOptions = {};
|
|
}
|
|
const r22 = PREMIUM_SKU_TO_MONTHLY_PLAN[subscriptionPlan.skuId];
|
|
const r23 = r22 == null ? null : getPrice(r22, false, isGift, priceOptions);
|
|
if (r23 == null) {
|
|
return null;
|
|
}
|
|
return r23.amount * (subscriptionPlan.interval === SubscriptionIntervalTypes.MONTH ? subscriptionPlan.intervalCount : 12 * subscriptionPlan.intervalCount);
|
|
};
|
|
calculateDiscountPercentageForYearlyPlan = function calculateDiscountPercentageForYearlyPlan(a0, isGift = false, priceOptions = {}) {
|
|
let r18, price;
|
|
L8: {
|
|
if (a0.interval === SubscriptionIntervalTypes.YEAR) {
|
|
L10: {
|
|
try {
|
|
const monthlyPrice = getMonthlyPrice({
|
|
subscriptionPlan: a0,
|
|
isGift,
|
|
priceOptions
|
|
});
|
|
r18 = monthlyPrice;
|
|
if (monthlyPrice == null) {
|
|
break L10;
|
|
}
|
|
price = getPrice(a0.id, false, isGift, priceOptions);
|
|
} catch ($e) {
|
|
return void 0;
|
|
}
|
|
if (r18.amount !== 0) {
|
|
return Math.floor(100 * (1 - price.amount / (12 * r18.amount)));
|
|
}
|
|
break L8;
|
|
}
|
|
return void 0;
|
|
}
|
|
}
|
|
};
|
|
export function calculateYearlyPlanDollarSavingsAmount(a0, isGift = false, priceOptions = {}) {
|
|
const r15 = calculateMonthlyPriceEquivalentTotal({
|
|
subscriptionPlan: a0,
|
|
isGift,
|
|
priceOptions
|
|
});
|
|
if (r15 != null && !(r15 <= 0)) {
|
|
const price = getPrice(a0.id, false, isGift, priceOptions);
|
|
const amount = r15 - price.amount;
|
|
return amount <= 0 ? null : {
|
|
amount,
|
|
currency: price.currency
|
|
};
|
|
}
|
|
return null;
|
|
}
|
|
export function calculateYearlyPlanMonthsSaved(a0, isGift = false, priceOptions = {}) {
|
|
if (a0.interval !== SubscriptionIntervalTypes.YEAR) {
|
|
return null;
|
|
}
|
|
const r7 = isGift !== void 0;
|
|
const r16 = r7 ? isGift : false;
|
|
const r3 = priceOptions !== void 0;
|
|
const r15 = r3 ? priceOptions : {};
|
|
const r11 = PREMIUM_SKU_TO_MONTHLY_PLAN[a0.skuId];
|
|
const r25 = r11 == null ? null : getPrice(r11, false, r16, r15);
|
|
if (r25 != null && r25.amount !== 0) {
|
|
if (!r7) {
|
|
isGift = false;
|
|
}
|
|
if (!r3) {
|
|
priceOptions = {};
|
|
}
|
|
const r30 = calculateMonthlyPriceEquivalentTotal({
|
|
subscriptionPlan: a0,
|
|
isGift,
|
|
priceOptions
|
|
});
|
|
let r31 = null;
|
|
if (r30 != null) {
|
|
r31 = null;
|
|
if (!(r30 <= 0)) {
|
|
const price = getPrice(a0.id, false, isGift, priceOptions);
|
|
const amount = r30 - price.amount;
|
|
r31 = amount <= 0 ? null : {
|
|
amount,
|
|
currency: price.currency
|
|
};
|
|
}
|
|
}
|
|
if (r31 == null) {
|
|
return null;
|
|
}
|
|
const r51 = Math.floor(r31.amount / r25.amount * 2) / 2;
|
|
return r51 <= 0 ? null : r51;
|
|
}
|
|
return null;
|
|
}
|
|
export function calculateYearlyPlanMonthlyRateAmount(a0, r6 = false, r5 = {}) {
|
|
if (a0.interval !== SubscriptionIntervalTypes.YEAR) {
|
|
return null;
|
|
}
|
|
const price = getPrice(a0.id, false, r6, r5);
|
|
return price.amount !== 0 ? {
|
|
amount: Math.round(price.amount / 12),
|
|
currency: price.currency
|
|
} : null;
|
|
}
|
|
export function getDaysSincePremium(a0) {
|
|
return a0 == null ? 0 : Math.max(differenceInCalendarDays(new Date(), new Date(a0)), 0);
|
|
}
|
|
export function getDaysRemainingUntilSubscriptionCurrentPeriodEnds(a0) {
|
|
return Math.max(1, Math.ceil(differenceInDays(new Date(a0.currentPeriodEnd), new Date())));
|
|
}
|
|
const SubscriptionPlans2 = SubscriptionPlans;
|
|
c2169_51 = {
|
|
PAYMENT_SOURCE_MANAGEMENT: "https://support.apple.com/HT201266",
|
|
BILLING_HISTORY: "https://support.apple.com/HT201266",
|
|
SUBSCRIPTION_MANAGEMENT: "https://support.apple.com/HT202039"
|
|
};
|
|
c2169_52 = {
|
|
SUBSCRIPTION_MANAGEMENT: "https://play.google.com/store/account/subscriptions",
|
|
PAYMENT_SOURCE_MANAGEMENT: "https://play.google.com/store/paymentmethods",
|
|
BILLING_HISTORY: "https://play.google.com/store/account/orderhistory"
|
|
};
|
|
c2169_53 = new Logger("PremiumUtils.tsx");
|
|
c2169_54 = {
|
|
BUNDLE: "bundle",
|
|
TIER_0: "tier_0",
|
|
TIER_1: "tier_1",
|
|
TIER_2: "tier_2",
|
|
PREMIUM_GUILD: "premium_guild"
|
|
};
|
|
c2169_55 = {
|
|
MID: "mid",
|
|
HIGH: "high"
|
|
};
|
|
c2169_65 = new Set([SubscriptionPlans2.NONE_MONTH, SubscriptionPlans2.NONE_3_MONTH, SubscriptionPlans2.NONE_6_MONTH, SubscriptionPlans2.NONE_YEAR, SubscriptionPlans2.PREMIUM_MONTH_TIER_0, SubscriptionPlans2.PREMIUM_MONTH_TIER_1, SubscriptionPlans2.PREMIUM_MONTH_TIER_2, SubscriptionPlans2.PREMIUM_YEAR_TIER_0, SubscriptionPlans2.PREMIUM_YEAR_TIER_1, SubscriptionPlans2.PREMIUM_YEAR_TIER_2, SubscriptionPlans2.PREMIUM_3_MONTH_TIER_2, SubscriptionPlans2.PREMIUM_6_MONTH_TIER_2, SubscriptionPlans2.PREMIUM_GROUP_MONTH]);
|
|
const r220 = Object.freeze({
|
|
isNewUser,
|
|
isPremiumAtLeast: _PremiumTypeUtils.isPremiumAtLeast,
|
|
isPremium: _PremiumTypeUtils.isPremium,
|
|
isPremiumExactly: _PremiumTypeUtils.isPremiumExactly,
|
|
isPremiumEligible,
|
|
getPrice,
|
|
getDefaultPrice,
|
|
getInterval,
|
|
getIntervalString,
|
|
getIntervalStringAsNoun,
|
|
getPremiumType,
|
|
getTierDisplayNameByPlanId,
|
|
getDisplayName,
|
|
getPremiumPlanOptions,
|
|
formatInterval,
|
|
getPlanDescription,
|
|
isPremiumSku: function isPremiumSku(a0) {
|
|
return a0 === PremiumSubscriptionSKUs.TIER_0 || a0 === PremiumSubscriptionSKUs.TIER_1 || a0 === PremiumSubscriptionSKUs.TIER_2;
|
|
},
|
|
getIntervalMonths: function getIntervalMonths(a0, a1) {
|
|
if (a0 === SubscriptionIntervalTypes.MONTH) {
|
|
return a1;
|
|
}
|
|
if (a0 === SubscriptionIntervalTypes.YEAR) {
|
|
return 12 * a1;
|
|
}
|
|
throw new Error(`${a0} interval subscription period not implemented`);
|
|
},
|
|
getUserMaxFileSize: _PremiumFeatureUtils.getUserMaxFileSize,
|
|
getSkuIdForPlan: function getSkuIdForPlan(a0) {
|
|
const r10 = SubscriptionPlanInfo[a0];
|
|
if (r10 == null) {
|
|
const error = new Error("Unsupported plan");
|
|
captureBillingException(error, {
|
|
tags: {
|
|
planId: a0
|
|
}
|
|
});
|
|
throw error;
|
|
}
|
|
return r10.skuId;
|
|
},
|
|
getSkuIdForPremiumType: function getSkuIdForPremiumType(a0) {
|
|
if (PremiumTypes.TIER_0 === a0) {
|
|
return PremiumSubscriptionSKUs.TIER_0;
|
|
}
|
|
if (PremiumTypes.TIER_1 === a0) {
|
|
return PremiumSubscriptionSKUs.TIER_1;
|
|
}
|
|
if (PremiumTypes.TIER_2 === a0) {
|
|
return PremiumSubscriptionSKUs.TIER_2;
|
|
}
|
|
},
|
|
getNumIncludedPremiumGuildSubscriptionSlots: function getNumIncludedPremiumGuildSubscriptionSlots(a0) {
|
|
const r12 = SubscriptionPlanInfo[a0];
|
|
if (r12 != null) {
|
|
return r12.premiumType === PremiumTypes.TIER_2 ? NUM_FREE_GUILD_BOOSTS_WITH_PREMIUM : 0;
|
|
}
|
|
const error = new Error("Unsupported plan");
|
|
captureBillingException(error, {
|
|
tags: {
|
|
planId: a0
|
|
}
|
|
});
|
|
throw error;
|
|
},
|
|
getBillingInformationString,
|
|
getExpectedRenewalDate,
|
|
extendDateWithUnconsumedFractionalPremium,
|
|
getUnactivatedFractionalPremiumDurationString,
|
|
isSwitchingPlansDisabled,
|
|
getSwitchingPlansDisabledMessage,
|
|
isNoneSubscription: _SubscriptionPlanRecord.isNoneSubscription,
|
|
getPlanIdFromInvoice,
|
|
getStatusFromInvoice,
|
|
isBaseSubscriptionCanceled,
|
|
getPremiumGuildIntervalPrice,
|
|
hasAccountCredit: function hasAccountCredit(a0) {
|
|
return a0 != null && a0.size !== 0 && Array.from(a0).some(({ subscriptionPlanId, parentId, consumed }) => subscriptionPlanId != null && parentId != null && !consumed);
|
|
},
|
|
hasUnconsumedGiftForSubscriptionPlan: function hasUnconsumedGiftForSubscriptionPlan(a0, a1) {
|
|
return a0 != null && a0.size !== 0 && a1 != null && Array.from(a0).some(({ subscriptionPlanId, parentId, consumed }) => subscriptionPlanId != null && parentId != null && !consumed && subscriptionPlanId === a1);
|
|
},
|
|
getBillingReviewSubheader,
|
|
getIntervalForInvoice,
|
|
getPremiumPlanItem,
|
|
getGuildBoostPlanItem,
|
|
isBoostOnlySubscription,
|
|
getPremiumSkuIdForSubscription,
|
|
getPremiumTypeFromSubscription,
|
|
getUnactivatedFractionalPremiumHours: getFractionalPremiumUnitsHours,
|
|
castPremiumSubscriptionAsSkuId,
|
|
calculateDiscountPercentageForYearlyPlan,
|
|
calculateYearlyPlanDollarSavingsAmount,
|
|
calculateYearlyPlanMonthsSaved,
|
|
calculateYearlyPlanMonthlyRateAmount,
|
|
getDaysSincePremium,
|
|
getDaysRemainingUntilSubscriptionCurrentPeriodEnds,
|
|
canUseAnimatedEmojis: function canUseAnimatedEmojis(a0) {
|
|
return canUserUse(ANIMATED_EMOJIS, a0);
|
|
},
|
|
canUseEmojisEverywhere: function canUseEmojisEverywhere(a0) {
|
|
return canUserUse(EMOJIS_EVERYWHERE, a0);
|
|
},
|
|
canUseSoundboardEverywhere: function canUseSoundboardEverywhere(a0) {
|
|
return canUserUse(SOUNDBOARD_EVERYWHERE, a0);
|
|
},
|
|
canUseCustomCallSounds: function canUseCustomCallSounds(a0) {
|
|
return canUserUse(CUSTOM_CALL_SOUNDS, a0);
|
|
},
|
|
canUploadLargeFiles: function canUploadLargeFiles(a0) {
|
|
return canUserUse(UPLOAD_LARGE_FILES, a0);
|
|
},
|
|
canUseBadges: function canUseBadges(a0) {
|
|
return canUserUse(PROFILE_BADGES, a0);
|
|
},
|
|
canUseHighVideoUploadQuality: function canUseHighVideoUploadQuality(a0) {
|
|
return canUserUse(INCREASED_VIDEO_UPLOAD_QUALITY, a0);
|
|
},
|
|
canEditDiscriminator: function canEditDiscriminator(a0) {
|
|
return canUserUse(CUSTOM_DISCRIMINATOR, a0);
|
|
},
|
|
hasBoostDiscount: function hasBoostDiscount(a0) {
|
|
return canUserUse(BOOST_DISCOUNT, a0);
|
|
},
|
|
canUseAnimatedAvatar: function canUseAnimatedAvatar(a0) {
|
|
return canUserUse(ANIMATED_AVATAR, a0);
|
|
},
|
|
canInstallPremiumApplications: function canInstallPremiumApplications(a0) {
|
|
return canUserUse(INSTALL_PREMIUM_APPLICATIONS, a0);
|
|
},
|
|
canUseIncreasedMessageLength: function canUseIncreasedMessageLength(a0) {
|
|
return canUserUse(INCREASED_MESSAGE_LENGTH, a0);
|
|
},
|
|
canUseIncreasedGuildCap: function canUseIncreasedGuildCap(a0) {
|
|
return canUserUse(INCREASED_GUILD_LIMIT, a0);
|
|
},
|
|
canRedeemPremiumPerks: function canRedeemPremiumPerks(a0) {
|
|
return canUserUse(REDEEM_PREMIUM_PERKS, a0);
|
|
},
|
|
canUsePremiumProfileCustomization: function canUsePremiumProfileCustomization(a0) {
|
|
return canUserUse(PROFILE_PREMIUM_FEATURES, a0);
|
|
},
|
|
canUsePremiumAppIcons: function canUsePremiumAppIcons(a0) {
|
|
return canUserUse(APP_ICONS, a0);
|
|
},
|
|
canUsePremiumGuildMemberProfile: function canUsePremiumGuildMemberProfile(a0) {
|
|
return canUserUse(PREMIUM_GUILD_MEMBER_PROFILE, a0);
|
|
},
|
|
canUseClientThemes: function canUseClientThemes(a0) {
|
|
return canUserUse(CLIENT_THEMES, a0);
|
|
},
|
|
canStreamQuality: function canStreamQuality(a0, a1) {
|
|
return a0 === c2169_55.HIGH ? canUserUse(STREAM_HIGH_QUALITY, a1) : canUserUse(STREAM_MID_QUALITY, a1);
|
|
},
|
|
canUseQuestOrbMultiplier: function canUseQuestOrbMultiplier(a0) {
|
|
return canUserUse(QUEST_ORB_MULTIPLIER, a0);
|
|
},
|
|
hasFreeBoosts: function hasFreeBoosts(a0) {
|
|
return canUserUse(FREE_BOOSTS, a0);
|
|
},
|
|
canUseCustomStickersEverywhere: function canUseCustomStickersEverywhere(a0) {
|
|
return canUserUse(STICKERS_EVERYWHERE, a0);
|
|
},
|
|
canUseCustomBackgrounds: function canUseCustomBackgrounds(a0) {
|
|
return canUserUse(VIDEO_FILTER_ASSETS, a0);
|
|
},
|
|
canUseCollectibles: function canUseCollectibles(a0) {
|
|
return canUserUse(COLLECTIBLES, a0);
|
|
},
|
|
canUseMonthlyOrbs: function canUseMonthlyOrbs(a0) {
|
|
return !!getIsCrepeEnabled("canUseMonthlyOrbs") && hasPerk(a0?.perks, Perk.MONTHLY_ORBS);
|
|
},
|
|
canUseShopDiscounts: function canUseShopDiscounts(a0) {
|
|
return getIsCrepeEnabled("canUseShopDiscounts") && hasPerk(a0?.perks, Perk.SHOP_DISCOUNTS) || canUserUse(COLLECTIBLES, a0);
|
|
},
|
|
canUseMoreQuestOrbs: function canUseMoreQuestOrbs(a0) {
|
|
return getIsCrepeEnabled("canUseMoreQuestOrbs") && hasPerk(a0?.perks, Perk.MORE_QUEST_ORBS) || canUserUse(QUEST_ORB_MULTIPLIER, a0);
|
|
},
|
|
formatPriceString,
|
|
StreamQuality: c2169_55
|
|
});
|
|
export default r220;
|
|
export { c2169_54 as Branding };
|
|
export { c2169_55 as StreamQuality };
|
|
export function getPremiumBranding(a0) {
|
|
let BUNDLE;
|
|
L20: {
|
|
const planId2 = a0.planId;
|
|
if (PREMIUM_PLANS.has(planId2)) {
|
|
let env13658;
|
|
const additionalPlans = a0.additionalPlans;
|
|
const r14 = env13658 = {};
|
|
env13658[0] = void 0;
|
|
const planIdsForSkus = SubscriptionPlanStore.getPlanIdsForSkus([PremiumSubscriptionSKUs.GUILD]);
|
|
env13658[0] = planIdsForSkus;
|
|
Module38(planIdsForSkus != null, "Missing guildSubscriptionPlanIds");
|
|
const r26 = additionalPlans.find($mk72818(r14));
|
|
if ((r26 != null ? r26.quantity : 0) > 0) {
|
|
BUNDLE = c2169_54.BUNDLE;
|
|
break L20;
|
|
}
|
|
}
|
|
if (planId2 !== SubscriptionPlans.PREMIUM_MONTH_TIER_0 && planId2 !== SubscriptionPlans.PREMIUM_YEAR_TIER_0) {
|
|
if (planId2 !== SubscriptionPlans.PREMIUM_MONTH_TIER_1 && planId2 !== SubscriptionPlans.PREMIUM_YEAR_TIER_1) {
|
|
if (planId2 !== SubscriptionPlans.PREMIUM_MONTH_TIER_2 && planId2 !== SubscriptionPlans.PREMIUM_YEAR_TIER_2 && planId2 !== SubscriptionPlans.PREMIUM_3_MONTH_TIER_2 && planId2 !== SubscriptionPlans.PREMIUM_6_MONTH_TIER_2) {
|
|
BUNDLE = c2169_54.PREMIUM_GUILD;
|
|
break L20;
|
|
}
|
|
BUNDLE = c2169_54.TIER_2;
|
|
break L20;
|
|
}
|
|
BUNDLE = c2169_54.TIER_1;
|
|
} else {
|
|
BUNDLE = c2169_54.TIER_0;
|
|
}
|
|
}
|
|
return BUNDLE;
|
|
}
|
|
export { getDefaultPrice };
|
|
export function withContextPlanPrices(a0, a1) {
|
|
return a1 != null ? {
|
|
...a0,
|
|
contextPlanPrices: Object.fromEntries(a1.map($mk72812()))
|
|
} : a0;
|
|
}
|
|
export function usePlanSelectPriceState(a0, a1, a2) {
|
|
const memo = useMemo(() => a1 == null ? null : a1.checkoutContext == null ? null : a1.checkoutContext.available_plans == null ? null : a1.checkoutContext.available_plans, [a1]);
|
|
return useMemo(() => ({
|
|
priceOptions: memo != null ? {
|
|
...a0,
|
|
contextPlanPrices: Object.fromEntries(memo.map($mk72812()))
|
|
} : a0,
|
|
planPricesLoading: a0.currency != null && a1 != null && a1.currency !== a0.currency && a2 == null
|
|
}), [a0, a1, memo, a2]);
|
|
}
|
|
export { getPrice };
|
|
export function getCountryPrices(a0, r4 = PriceSetAssignmentPurchaseTypes.DEFAULT) {
|
|
return getPurchaseTypePrices(a0, r4).countryPrices;
|
|
}
|
|
export { experimentalGetPrices };
|
|
export function experimentalGetPrice(a0, r3 = {
|
|
purchaseType: PriceSetAssignmentPurchaseTypes.DEFAULT
|
|
}) {
|
|
let env13649;
|
|
const r23 = env13649 = {};
|
|
const { paymentSourceId, purchaseType, currency } = r3;
|
|
env13649[0] = currency;
|
|
const r26 = experimentalGetPrices(a0, {
|
|
paymentSourceId,
|
|
purchaseType
|
|
});
|
|
if (r26.length === 0) {
|
|
c2169_53.warn(`No prices found for planId: ${a0}, paymentSourceId: ${paymentSourceId}, purchaseType: ${purchaseType}`);
|
|
}
|
|
if (currency != null) {
|
|
let r35 = r26.find($mk72813(r23));
|
|
if (r35 == null) {
|
|
r35 = paymentSourceId != null ? experimentalGetPrices(a0, {
|
|
purchaseType
|
|
}).find($mk72814(r23)) : void 0;
|
|
}
|
|
return r35;
|
|
}
|
|
return r26[0];
|
|
}
|
|
export { getServerPriceFromClientPrice };
|
|
export { getItemPlansTotalServerPrice };
|
|
export function getSubscriptionWithNewPlansTotalServerPrice(a0, a1, a2, a3) {
|
|
let r21;
|
|
let r10 = a1;
|
|
if (a1 === null) {
|
|
Module38(a0 !== null, "Subscription can't be null");
|
|
r10 = [];
|
|
}
|
|
if (a0 !== null) {
|
|
let env13660;
|
|
const r22 = env13660 = {
|
|
$parent: env2169
|
|
};
|
|
env13660[0] = a0;
|
|
let r11 = a0.renewalMutations?.items;
|
|
if (r11 == null) {
|
|
r11 = a0.items;
|
|
}
|
|
const r24 = [];
|
|
const r27 = r11.find($mk72824());
|
|
if (r27 != null) {
|
|
r24.push(r27);
|
|
}
|
|
r24.push.apply(r24, [...r10]);
|
|
r21 = r24.map($mk72825(r22));
|
|
} else {
|
|
r21 = r10.filter($mk72826());
|
|
}
|
|
return getItemPlansTotalServerPrice(r21, a2, a3);
|
|
}
|
|
export function getDiscountIntervalString(a0) {
|
|
if (DiscountUserUsageLimitIntervalTypes.MONTH === a0) {
|
|
return _index_native.intl.string(_index_native.t.FPybU7);
|
|
}
|
|
if (DiscountUserUsageLimitIntervalTypes.YEAR === a0) {
|
|
return _index_native.intl.string(_index_native.t.tfqrhj);
|
|
}
|
|
if (DiscountUserUsageLimitIntervalTypes.DAY !== a0) {
|
|
DiscountUserUsageLimitIntervalTypes.WEEK;
|
|
}
|
|
throw new Error("Unexpected interval");
|
|
}
|
|
export { getDisplayName };
|
|
export function getDisplayNameFromSku(a0) {
|
|
if (PremiumSubscriptionSKUs.TIER_0 === a0) {
|
|
return _index_native.intl.string(_index_native.t["t9uG/o"]);
|
|
}
|
|
if (PremiumSubscriptionSKUs.TIER_1 === a0) {
|
|
return _index_native.intl.string(_index_native.t.FSOz78);
|
|
}
|
|
if (PremiumSubscriptionSKUs.TIER_2 === a0) {
|
|
return _index_native.intl.string(_index_native.t.lG6a5x);
|
|
}
|
|
const error = new Error("Unsupported sku");
|
|
captureBillingException(error, {
|
|
tags: {
|
|
skuId: a0
|
|
}
|
|
});
|
|
throw error;
|
|
}
|
|
export function getPremiumTypeDisplayName(a0, r4 = false) {
|
|
if (PremiumTypes.TIER_0 === a0) {
|
|
return r4 ? "Basic" : _index_native.intl.string(_index_native.t["t9uG/o"]);
|
|
}
|
|
if (PremiumTypes.TIER_1 === a0) {
|
|
return r4 ? "Classic" : _index_native.intl.string(_index_native.t.FSOz78);
|
|
}
|
|
if (PremiumTypes.TIER_2 === a0) {
|
|
return _index_native.intl.string(_index_native.t.lG6a5x);
|
|
}
|
|
}
|
|
export function getPlanDescriptionFromInvoice({ renewalInvoicePreview, renewalInvoiceWithEntitlementsPreview, subscription, planId: planId2, includePremiumGuilds = false, hasDiscountApplied = false, activeDiscountInfo, hasFractionalPremiumWithSub = false, fractionalPremiumInfo }) {
|
|
const r27 = SubscriptionPlanStore.get(planId2);
|
|
Module38(r27 != null, "Missing plan");
|
|
const r36 = renewalInvoicePreview.findInvoiceItemByPlanId(r27.id);
|
|
return getPlanDescription({
|
|
subscription,
|
|
planId: r27.id,
|
|
price: formatRate(formatPrice(r36 == null ? getPrice(r27.id, false, false, {
|
|
paymentSourceId: subscription.paymentSourceId,
|
|
currency: subscription.currency
|
|
}).amount : r36.amount, renewalInvoicePreview.currency), r27.interval, r27.intervalCount),
|
|
includePremiumGuilds,
|
|
hasDiscountApplied,
|
|
activeDiscountInfo,
|
|
renewalInvoiceWithoutEntitlementsPreview: renewalInvoicePreview,
|
|
renewalInvoiceWithEntitlementsPreview,
|
|
hasFractionalPremiumWithSub,
|
|
fractionalPremiumInfo
|
|
});
|
|
}
|
|
export function getExternalPlanDisplayName({ planId: planId2, additionalPlans }) {
|
|
const premiumDescription = (0, _SubscriptionPlanRecord.isNoneSubscription)(planId2) ? null : getDisplayName(planId2);
|
|
const r17 = additionalPlans == null ? void 0 : additionalPlans.find((additionalPlan) => PREMIUM_GUILD_SUBSCRIPTION_PLANS.has(additionalPlan.planId));
|
|
const r9 = r17?.planId !== SubscriptionPlans.PREMIUM_MONTH_GUILD ? r17?.planId === SubscriptionPlans.PREMIUM_YEAR_GUILD ? _index_native.t.Pi5yMJ : null : _index_native.t.Pi5yMJ;
|
|
const premiumGuildDescription = r9 != null ? _index_native.intl.formatToPlainString(r9, {
|
|
num: r17?.quantity
|
|
}) : void 0;
|
|
if (premiumDescription != null && premiumGuildDescription != null) {
|
|
return _index_native.intl.formatToPlainString(_index_native.t.FN5T9r, {
|
|
premiumDescription,
|
|
premiumGuildDescription
|
|
});
|
|
}
|
|
if (premiumDescription != null) {
|
|
return premiumDescription;
|
|
}
|
|
if (premiumGuildDescription != null) {
|
|
return premiumGuildDescription;
|
|
}
|
|
throw new Error("Subscription without premium or premium guild subscription");
|
|
}
|
|
export function getPlanIdForPremiumType(a0, a1) {
|
|
if (new Set([SubscriptionIntervalTypes.MONTH, SubscriptionIntervalTypes.YEAR]).has(a1)) {
|
|
if (PremiumTypes.TIER_0 === a0) {
|
|
return a1 === SubscriptionIntervalTypes.MONTH ? SubscriptionPlans.PREMIUM_MONTH_TIER_0 : SubscriptionPlans.PREMIUM_YEAR_TIER_0;
|
|
}
|
|
if (PremiumTypes.TIER_1 === a0) {
|
|
return a1 === SubscriptionIntervalTypes.MONTH ? SubscriptionPlans.PREMIUM_MONTH_TIER_1 : SubscriptionPlans.PREMIUM_YEAR_TIER_1;
|
|
}
|
|
if (PremiumTypes.TIER_2 === a0) {
|
|
return a1 === SubscriptionIntervalTypes.MONTH ? SubscriptionPlans.PREMIUM_MONTH_TIER_2 : SubscriptionPlans.PREMIUM_YEAR_TIER_2;
|
|
}
|
|
throw new Error(`Unsupported premium type: ${a0}`);
|
|
}
|
|
throw new Error(`Unsupported plan interval for premium type: ${a1}`);
|
|
}
|
|
export { getNumPremiumGuildSubscriptions };
|
|
export function subscriptionHasPremiumGuildPlan({ additionalPlans }) {
|
|
let env13652;
|
|
const r11 = env13652 = {};
|
|
env13652[0] = void 0;
|
|
const planIdsForSkus = SubscriptionPlanStore.getPlanIdsForSkus([PremiumSubscriptionSKUs.GUILD]);
|
|
env13652[0] = planIdsForSkus;
|
|
Module38(planIdsForSkus != null, "Missing guildSubscriptionPlanIds");
|
|
const r22 = additionalPlans.find($mk72818(r11));
|
|
return (r22 != null ? r22.quantity : 0) > 0;
|
|
}
|
|
export function isPremiumBaseSubscriptionPlan(a0) {
|
|
return c2169_65.has(a0);
|
|
}
|
|
export function isPremiumGuildSubscriptionPlan(a0) {
|
|
return PREMIUM_GUILD_SUBSCRIPTION_PLANS.has(a0);
|
|
}
|
|
export function isPremiumSubscriptionPlan(a0) {
|
|
return c2169_65.has(a0) || PREMIUM_GUILD_SUBSCRIPTION_PLANS.has(a0);
|
|
}
|
|
export function isPremiumGroupSubscriptionPlan(a0) {
|
|
return a0 != null && a0 === SubscriptionPlans.PREMIUM_GROUP_MONTH;
|
|
}
|
|
export { getBillingGracePeriodDaysAndExpiresDate };
|
|
export { getExpectedRenewalDate };
|
|
export function isSubscriptionPrepaidPaymentSource(a0) {
|
|
let r8 = a0.paymentSourceId != null;
|
|
if (r8) {
|
|
const paymentSourceId = a0.paymentSourceId;
|
|
const r1 = paymentSourceId == null;
|
|
let r9 = false;
|
|
if (!r1) {
|
|
const paymentSource = PaymentSourceStore.getPaymentSource(paymentSourceId);
|
|
r9 = paymentSource != null && PREPAID_PAYMENT_SOURCES.has(paymentSource.type);
|
|
}
|
|
r8 = r9;
|
|
}
|
|
return r8;
|
|
}
|
|
export function isPrepaidPaymentSource(a0) {
|
|
if (a0 == null) {
|
|
return false;
|
|
}
|
|
const paymentSource = PaymentSourceStore.getPaymentSource(a0);
|
|
return paymentSource != null && PREPAID_PAYMENT_SOURCES.has(paymentSource.type);
|
|
}
|
|
export { getCoercedPremiumGuildSubscriptionStatus };
|
|
export { isPremiumGuildSubscriptionCanceled };
|
|
export function getPremiumGuildHeaderDescription({ subscription, user, price, renewalInvoicePreview, fractionalPremiumInfo }) {
|
|
let r107, r108;
|
|
const { planId: planId2, additionalPlans, renewalMutations } = subscription;
|
|
const r29 = SubscriptionPlanStore.get(planId2);
|
|
Module38(r29 != null, "Missing plan");
|
|
const quantity2 = getNumPremiumGuildSubscriptions(additionalPlans);
|
|
const activeQuantity = renewalMutations?.additionalPlans != null ? getNumPremiumGuildSubscriptions(renewalMutations.additionalPlans) : quantity2;
|
|
const pendingQuantity = Math.max(0, quantity2 - activeQuantity);
|
|
const r45 = activeQuantity > 0 && pendingQuantity > 0;
|
|
const isPurchasedExternally = subscription.isPurchasedExternally;
|
|
let r47 = false;
|
|
let r17 = void 0;
|
|
if (!isPurchasedExternally) {
|
|
const r48 = price == null;
|
|
r47 = false;
|
|
r17 = price;
|
|
if (r48) {
|
|
let r49 = null;
|
|
if (renewalInvoicePreview != null) {
|
|
const r52 = renewalInvoicePreview.invoiceItems.find((invoiceItem) => PREMIUM_GUILD_SUBSCRIPTION_PLANS.has(invoiceItem.subscriptionPlanId));
|
|
if (r52 != null) {
|
|
r49 = r52.amount;
|
|
}
|
|
}
|
|
const r54 = r49 == null;
|
|
let r55 = false;
|
|
if (r54) {
|
|
const r56 = r45 ? activeQuantity : quantity2;
|
|
try {
|
|
r49 = getPremiumGuildIntervalPrice(subscription.planId, subscription.paymentSourceId, subscription.currency, user).amount * r56;
|
|
r55 = false;
|
|
} catch ($e) {
|
|
r55 = true;
|
|
}
|
|
}
|
|
r17 = r49 != null ? formatPrice(r49, subscription.currency) : void 0;
|
|
r47 = r55;
|
|
}
|
|
}
|
|
const r68 = subscription.isPurchasedExternally || r47;
|
|
const rate = r17 != null ? formatRate(r17, r29.interval, r29.intervalCount) : "";
|
|
let r78 = renewalInvoicePreview?.taxInclusive;
|
|
if (r78 == null) {
|
|
r78 = subscription.latestInvoice?.taxInclusive;
|
|
}
|
|
if (r78 == null) {
|
|
r78 = true;
|
|
}
|
|
if (isPremiumGuildSubscriptionCanceled(subscription)) {
|
|
return r68 ? _index_native.intl.format(_index_native.t["3/WTrI"], {
|
|
quantity: quantity2
|
|
}) : r78 ? _index_native.intl.format(_index_native.t["0ozBSB"], {
|
|
quantity: quantity2,
|
|
rate
|
|
}) : _index_native.intl.format(_index_native.t["yjsv/s"], {
|
|
quantity: quantity2,
|
|
rate
|
|
});
|
|
}
|
|
const status = subscription.status;
|
|
if (SubscriptionStatusTypes.ACCOUNT_HOLD === status) {
|
|
return r68 ? _index_native.intl.format(_index_native.t.Nlf3nc, {
|
|
quantity: quantity2,
|
|
boostQuantity: quantity2
|
|
}) : r78 ? _index_native.intl.format(_index_native.t.oiRy7v, {
|
|
quantity: quantity2,
|
|
boostQuantity: quantity2,
|
|
rate
|
|
}) : _index_native.intl.format(_index_native.t["0QxOAi"], {
|
|
quantity: quantity2,
|
|
boostQuantity: quantity2,
|
|
rate
|
|
});
|
|
}
|
|
if (SubscriptionStatusTypes.PAUSE_PENDING !== status && SubscriptionStatusTypes.PAUSED !== status) {
|
|
if (SubscriptionStatusTypes.PAST_DUE === status && subscription.isBoostOnly) {
|
|
return _index_native.intl.format(_index_native.t["d+0vwo"], {
|
|
endDate: dateFormat(getBillingGracePeriodDaysAndExpiresDate(subscription).expiresDate, "LL"),
|
|
onClick: () => {
|
|
openURL("https://support.discord.com/hc/articles/23082866222871");
|
|
}
|
|
});
|
|
}
|
|
if (r45) {
|
|
if (r68) {
|
|
return _index_native.intl.format(_index_native.t["krRy+d"], {
|
|
activeQuantity,
|
|
pendingQuantity
|
|
});
|
|
}
|
|
const r106 = _index_native.t;
|
|
if (r78) {
|
|
r107 = r106["4nc7+E"];
|
|
r108 = require;
|
|
} else {
|
|
r107 = r106.BmaudS;
|
|
r108 = require;
|
|
}
|
|
return r108(dependencyMap[17]).intl.format(r107, {
|
|
activeQuantity,
|
|
pendingQuantity,
|
|
rate
|
|
});
|
|
}
|
|
const intl = _index_native.intl;
|
|
return r68 ? intl.format(_index_native.t["5iud9s"], {
|
|
quantity: quantity2
|
|
}) : r78 ? intl.format(_index_native.t.eDwrLA, {
|
|
quantity: quantity2,
|
|
rate
|
|
}) : intl.format(_index_native.t.ijSDcI, {
|
|
quantity: quantity2,
|
|
rate
|
|
});
|
|
}
|
|
return fractionalPremiumInfo != null && !fractionalPremiumInfo.isFractionalPremiumActive ? _index_native.intl.string(_index_native.t.CduWAm) : _index_native.intl.format(_index_native.t["5iud9s"], {
|
|
quantity: quantity2
|
|
});
|
|
}
|
|
export { getFormattedPriceForPlan };
|
|
export function getFormattedRateForPlan(a0, a1, a2) {
|
|
return formatRate(getFormattedPriceForPlan(a0, a1, a2), a0.interval, a0.intervalCount);
|
|
}
|
|
export function isSubscriptionStatusFailedPayment(a0) {
|
|
return a0 === SubscriptionStatusTypes.PAST_DUE || a0 === SubscriptionStatusTypes.ACCOUNT_HOLD || a0 === SubscriptionStatusTypes.BILLING_RETRY;
|
|
}
|
|
export function getFormattedPlanPriceFromInvoice(a0, a1, a2) {
|
|
const r16 = a0.findInvoiceItemByPlanId(a2.id);
|
|
return formatRate(formatPrice(r16 == null ? getPrice(a2.id, false, false, {
|
|
paymentSourceId: a1.paymentSourceId,
|
|
currency: a1.currency
|
|
}).amount : r16.amount, a0.currency), a2.interval, a2.intervalCount);
|
|
}
|
|
export { getPremiumGuildIntervalPrice };
|
|
export { getDefaultCurrency };
|
|
export function formatTrialOfferIntervalDuration({ intervalType = SubscriptionIntervalTypes.MONTH, intervalCount = 1, capitalize = false }) {
|
|
if (SubscriptionIntervalTypes.DAY === intervalType) {
|
|
return intervalCount >= 7 && intervalCount % 7 === 0 ? capitalize ? _index_native.intl.formatToPlainString(_index_native.t.fRNBRX, {
|
|
weeks: intervalCount / 7
|
|
}) : _index_native.intl.formatToPlainString(_index_native.t.EIpHEj, {
|
|
weeks: intervalCount / 7
|
|
}) : capitalize ? _index_native.intl.formatToPlainString(_index_native.t["6Cdzoy"], {
|
|
days: intervalCount
|
|
}) : _index_native.intl.formatToPlainString(_index_native.t["kbBj/h"], {
|
|
days: intervalCount
|
|
});
|
|
}
|
|
if (SubscriptionIntervalTypes.MONTH === intervalType) {
|
|
return capitalize ? _index_native.intl.formatToPlainString(_index_native.t.x5MgxS, {
|
|
months: intervalCount
|
|
}) : _index_native.intl.formatToPlainString(_index_native.t["4SEnCZ"], {
|
|
months: intervalCount
|
|
});
|
|
}
|
|
if (SubscriptionIntervalTypes.YEAR === intervalType) {
|
|
return capitalize ? _index_native.intl.formatToPlainString(_index_native.t["h+63yl"], {
|
|
years: intervalCount
|
|
}) : _index_native.intl.formatToPlainString(_index_native.t["9DFiHk"], {
|
|
years: intervalCount
|
|
});
|
|
}
|
|
throw new Error("Unsupported interval duration.");
|
|
}
|
|
export { formatTrialCtaIntervalDuration };
|
|
export function formatTrialCtaIntervalDurationFromTrialOffer(a0, a1) {
|
|
if (a0 != null && a0.subscription_trial != null && a0.subscription_trial.sku_id === a1) {
|
|
const subscription_trial = a0.subscription_trial;
|
|
return formatTrialCtaIntervalDuration({
|
|
intervalType: subscription_trial.interval,
|
|
intervalCount: subscription_trial.interval_count
|
|
});
|
|
}
|
|
return null;
|
|
}
|
|
export function formatIntervalDuration({ intervalType = SubscriptionIntervalTypes.MONTH, intervalCount = 1, capitalize = false }) {
|
|
if (SubscriptionIntervalTypes.DAY === intervalType) {
|
|
return intervalCount >= 7 && intervalCount % 7 === 0 ? capitalize ? _index_native.intl.formatToPlainString(_index_native.t.iVZYyl, {
|
|
weeks: intervalCount / 7
|
|
}) : _index_native.intl.formatToPlainString(_index_native.t.EmoBD2, {
|
|
weeks: intervalCount / 7
|
|
}) : capitalize ? _index_native.intl.formatToPlainString(_index_native.t.jzH70Z, {
|
|
days: intervalCount
|
|
}) : _index_native.intl.formatToPlainString(_index_native.t["k2UNz+"], {
|
|
days: intervalCount
|
|
});
|
|
}
|
|
if (SubscriptionIntervalTypes.MONTH === intervalType) {
|
|
return capitalize ? _index_native.intl.formatToPlainString(_index_native.t.erUSmA, {
|
|
months: intervalCount
|
|
}) : _index_native.intl.formatToPlainString(_index_native.t.kridzK, {
|
|
months: intervalCount
|
|
});
|
|
}
|
|
if (SubscriptionIntervalTypes.YEAR === intervalType) {
|
|
return capitalize ? _index_native.intl.formatToPlainString(_index_native.t.IfYQVC, {
|
|
years: intervalCount
|
|
}) : _index_native.intl.formatToPlainString(_index_native.t.PClsrw, {
|
|
years: intervalCount
|
|
});
|
|
}
|
|
throw new Error("Unsupported interval duration.");
|
|
}
|
|
export function getExternalSubscriptionMethodUrl(a0, a1) {
|
|
if (PaymentGateways.APPLE_PARTNER !== a0 && PaymentGateways.APPLE_ADVANCED_COMMERCE !== a0 && PaymentGateways.APPLE !== a0) {
|
|
if (PaymentGateways.GOOGLE === a0) {
|
|
return c2169_52[a1];
|
|
}
|
|
throw new Error(`Invalid external payment gateway ${a0}`);
|
|
}
|
|
return c2169_51[a1];
|
|
}
|
|
export function hasPremiumSubscriptionToDisplay(a0, a1) {
|
|
let r9 = _PremiumTypeUtils.isPremium(a0);
|
|
if (!r9) {
|
|
const status = a1?.status;
|
|
r9 = status === SubscriptionStatusTypes.PAST_DUE || status === SubscriptionStatusTypes.ACCOUNT_HOLD || status === SubscriptionStatusTypes.BILLING_RETRY;
|
|
}
|
|
return r9;
|
|
}
|
|
export function useHasPremiumSubscriptionToDisplay() {
|
|
const stateFromStores = useStateFromStores([SubscriptionStore], () => SubscriptionStore.getPremiumTypeSubscription());
|
|
let r22 = _PremiumTypeUtils.isPremium(useStateFromStores([UserStore], () => UserStore.getCurrentUser()));
|
|
if (!r22) {
|
|
const status = stateFromStores?.status;
|
|
r22 = status === SubscriptionStatusTypes.PAST_DUE || status === SubscriptionStatusTypes.ACCOUNT_HOLD || status === SubscriptionStatusTypes.BILLING_RETRY;
|
|
}
|
|
return r22;
|
|
}
|
|
export function getItemsFromNewAdditionalPlans(a0, a1) {
|
|
let env13655;
|
|
const r3 = env13655 = {
|
|
$parent: env2169
|
|
};
|
|
env13655[0] = a0;
|
|
let r7 = a0.renewalMutations?.items;
|
|
if (r7 == null) {
|
|
r7 = a0.items;
|
|
}
|
|
const r12 = [];
|
|
const r14 = r7.find($mk72824());
|
|
if (r14 != null) {
|
|
r12.push(r14);
|
|
}
|
|
r12.push.apply(r12, [...a1]);
|
|
return r12.map($mk72825(r3));
|
|
}
|
|
export function getItemsWithoutPremiumPlanItem(a0) {
|
|
return a0.filter($mk72826());
|
|
}
|
|
export { getItemsWithUpsertedPlanIdForGroup };
|
|
export function getItemsWithUpsertedPremiumPlanId(a0, a1) {
|
|
return getItemsWithUpsertedPlanIdForGroup(a0, a1, 1, PREMIUM_PLANS);
|
|
}
|
|
export function getItemsWithUpsertedPremiumGuildPlan(a0, a1, a2) {
|
|
return getItemsWithUpsertedPlanIdForGroup(a0, a2, a1, PREMIUM_GUILD_SUBSCRIPTION_PLANS);
|
|
}
|
|
export function coerceExistingItemsToNewItemInterval(a0) {
|
|
let r4 = a0.find((item) => !("id" in item));
|
|
if (r4 == null) {
|
|
r4 = a0.find((item) => PREMIUM_PLANS.has(item.planId));
|
|
}
|
|
let c13661_1;
|
|
let c13661_0 = r4;
|
|
let r12 = a0;
|
|
if (r4 != null) {
|
|
const r14 = SubscriptionPlanStore.get(r4.planId);
|
|
c13661_1 = r14;
|
|
Module38(r14 != null, "Missing plan");
|
|
r12 = a0.map((item) => {
|
|
if (item === c13661_0) {
|
|
return item;
|
|
}
|
|
const r15 = SubscriptionPlanStore.get(item.planId);
|
|
Module38(r15 != null, "Missing plan");
|
|
if (c13661_1.interval === r15.interval && c13661_1.intervalCount === r15.intervalCount) {
|
|
return item;
|
|
}
|
|
const forSkuAndInterval = SubscriptionPlanStore.getForSkuAndInterval(r15.skuId, c13661_1.interval, c13661_1.intervalCount);
|
|
Module38(forSkuAndInterval != null, "Missing planForInterval");
|
|
return {
|
|
...item,
|
|
planId: forSkuAndInterval.id
|
|
};
|
|
});
|
|
}
|
|
return r12;
|
|
}
|
|
export function getMaxFileSizeForPremiumType(a0, r5 = {
|
|
useSpace: true
|
|
}) {
|
|
return formatSize(PremiumUserLimits[a0].fileSize / 1024, {
|
|
useKibibytes: true,
|
|
useSpace: r5.useSpace
|
|
});
|
|
}
|
|
export function getPremiumTypeFromPlanId(a0) {
|
|
if (SubscriptionPlans.PREMIUM_MONTH_TIER_0 === a0) {
|
|
return {
|
|
premiumType: PremiumTypes.TIER_0,
|
|
planInterval: SubscriptionIntervalTypes.MONTH
|
|
};
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_YEAR_TIER_0 === a0) {
|
|
return {
|
|
premiumType: PremiumTypes.TIER_0,
|
|
planInterval: SubscriptionIntervalTypes.YEAR
|
|
};
|
|
}
|
|
if (SubscriptionPlans.PREMIUM_MONTH_TIER_2 !== a0 && SubscriptionPlans.PREMIUM_GROUP_MONTH !== a0) {
|
|
if (SubscriptionPlans.PREMIUM_YEAR_TIER_2 === a0) {
|
|
return {
|
|
premiumType: PremiumTypes.TIER_2,
|
|
planInterval: SubscriptionIntervalTypes.YEAR
|
|
};
|
|
}
|
|
throw new Error(`Unsupported gifting planId: ${a0}`);
|
|
}
|
|
return {
|
|
premiumType: PremiumTypes.TIER_2,
|
|
planInterval: SubscriptionIntervalTypes.MONTH
|
|
};
|
|
}
|
|
export function isNitroLockedState(a0) {
|
|
return "isNitroLocked" in a0;
|
|
}
|
|
export const isPremiumAtLeast = _PremiumTypeUtils.isPremiumAtLeast;
|
|
export const isPremiumAtMost = _PremiumTypeUtils.isPremiumAtMost;
|
|
export const isPremium = _PremiumTypeUtils.isPremium;
|
|
export const isPremiumExactly = _PremiumTypeUtils.isPremiumExactly;
|
|
export function useHasTier2Premium() {
|
|
return _PremiumTypeUtils.isPremiumExactly(useStateFromStores([UserStore], () => UserStore.getCurrentUser()), PremiumTypes.TIER_2);
|
|
}
|
|
export function getOfferNoticeThreshold(a0) {
|
|
if (a0 != null && "trial_id" in a0) {
|
|
const trial_id = a0.trial_id;
|
|
if (PREMIUM_TIER_2_REVERSE_FOLLOWUP_TRIAL_ID === trial_id) {
|
|
return USER_PREMIUM_OFFER_EXPIRES_APPROACHING_4_DAY_THRESHOLD;
|
|
}
|
|
if (PREMIUM_TIER_2_TRIAL_FOR_EVERYONE_TRIAL_ID === trial_id) {
|
|
return TRIAL_FOR_EVERYONE_OFFER_EXPIRES_APPROACHING_THRESHOLD;
|
|
}
|
|
return USER_PREMIUM_OFFER_EXPIRES_APPROACHING_7_DAY_THRESHOLD;
|
|
}
|
|
if (a0 != null && "discountId" in a0) {
|
|
return USER_PREMIUM_OFFER_EXPIRES_APPROACHING_7_DAY_THRESHOLD;
|
|
}
|
|
return USER_PREMIUM_OFFER_EXPIRES_APPROACHING_7_DAY_THRESHOLD;
|
|
}
|
|
export function isTrialOffer(a0) {
|
|
return a0 != null && "trial_id" in a0;
|
|
}
|
|
export function isDiscountOffer(a0) {
|
|
return a0 != null && "discountId" in a0;
|
|
}
|
|
export function getFractionalPremiumUnitsHoursFromSkuIds(a0) {
|
|
return a0.reduce($mk72832(), 0);
|
|
}
|
|
export { getMonthlyPrice };
|
|
export function getSavingsPercent({ planId: planId2, isGift, priceOptions, subscriptionPlan }) {
|
|
let r8 = DISCOUNTS[planId2];
|
|
if (subscriptionPlan != null) {
|
|
r8 = calculateDiscountPercentageForYearlyPlan(subscriptionPlan, isGift, priceOptions);
|
|
}
|
|
return r8;
|
|
}
|
|
export { calculateMonthlyPriceEquivalentTotal };
|
|
export { calculateDiscountPercentageForYearlyPlan };
|