/* Metro module 7064; source: stores/billing/UserOfferStore.tsx; dependencies: [6, 7, 15, 17, 18, 7065, 7247, 1878, 5181, 3808, 1880, 7248, 3802, 566, 694, 2] */ import ClassCallCheck from '../../by-id/module-00006-ClassCallCheck.js'; /* Metro dependency 6 */ import CreateClass from '../../by-id/module-00007-CreateClass.js'; /* Metro dependency 7 */ import PossibleConstructorReturn from '../../by-id/module-00015-PossibleConstructorReturn.js'; /* Metro dependency 15 */ import Module00017 from '../../by-id/module-00017.js'; /* Metro dependency 17 */ import Inherits from '../../by-id/module-00018-Inherits.js'; /* Metro dependency 18 */ import Flux from '../../external/discord_common/js/packages/flux/index.tsx'; /* Metro dependency 566 */ import UserStore from '../UserStore.tsx'; /* Metro dependency 1878 */ import SubscriptionStore from './SubscriptionStore.tsx'; /* Metro dependency 3808 */ import EntitlementStore from '../game_store/EntitlementStore.tsx'; /* Metro dependency 5181 */ import ReferralTrialStore from '../../modules/premium/ReferralTrialStore.tsx'; /* Metro dependency 7065 */ import UserDiscountOfferRecord from '../../modules/user_offers/records/UserDiscountOfferRecord.tsx'; /* Metro dependency 7247 */ import * as FileImportTrackerModule from '../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as PremiumConstantsModule from '../../modules/premium/PremiumConstants.tsx'; /* Metro dependency 1880 */ import * as PremiumUtilsModule from '../../utils/PremiumUtils.tsx'; /* Metro dependency 3802 */ function _fun56003(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#56003, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:6, offset: 0x013bad31, size: 673 bytes, params: 8, frame: 21 const env0_0 = require; const _arrayLikeToArray_56006 = function(a0, a1) { var r0; var r1; var r2; var value3; var length; var value5; var value = undefined; var value2 = value == null; reducibleJoin2: while (true) { if (value2) { r0 = value2; break reducibleJoin2; } value3 = value > a0.length; r0 = value3; break reducibleJoin2; } reducibleJoin4: while (true) { if (r0) { length = a0.length; r1 = length; break reducibleJoin4; } r1 = value; break reducibleJoin4; } value = (0, global.Array)(r1); var value4 = 0; if (value4 < r1) { r2 = value4; reducibleLoop5: while (true) { value[r2] = a0[r2]; value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1; if (value5 < r1) { r2 = value5; continue reducibleLoop5; } break reducibleLoop5; } } return value; }; const LOGOUT_560102 = LOGOUT_56010; const closure2 = function() { UserStore.getCurrentUser(); }; const handleReferralTrialStoreUpdate = function() { return false; }; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); let value = PremiumConstantsModule; const env0_12 = value.ANNUAL_DISCOUNT_IDS; const env0_13 = value.DISCOUNT_OFFERS_REQUIRES_REMINDER_ROLLOUT; const env0_14 = value.PREMIUM_TIER_2_CHURN_1_MONTH_DISCOUNT_ID; const env0_15 = value.PREMIUM_TIER_2_CHURN_3_MONTH_DISCOUNT_ID; const env0_16 = value.SubscriptionPlanInfo; const env0_17 = value.SubscriptionTrials; const env0_18 = value.TRIAL_OFFERS_REQUIRES_REMINDER_ROLLOUT; object = {userOffersLastFetchedAtDate: undefined, userTrialOffers: {}, userDiscountOffers: {}, userDiscounts: undefined, isFetching: false, lastFetchSuccessful: false}; const emitChanges = function() { return true; }; const PersistedStore = (Flux).PersistedStore; value = _fun56016(PersistedStore); value.displayName = 'UserOfferStore'; value.persistKey = 'UserOfferStore'; value.migrations = [function(a0) { var r2; var object; var value = a0 == null; var value2 = undefined; r2 = value ? value2 : a0.userDiscounts; if (r2 != null) { object = {}; copyDataProperties(object, a0, value); object['userDiscountOffers'] = r2; return object; } return value2; }, function(a0) { if (a0 != null) { if (global.Object.hasOwn(a0, 'userAnnualOfferLastFetchedAtDate')) { delete a0.userAnnualOfferLastFetchedAtDate; } return a0; } }, function(a0) { var r0; var object; var value = a0; if (value != null) { if (value?.isFetching != null) { r0 = value; } else { object = {}; copyDataProperties(object, value, null); object['isFetching'] = false; r0 = object; } return r0; } }, function(a0) { var r5; var property; var object; var value = undefined; if ((a0 == null ? value : a0.userDiscountOffers) != null) { object = {}; copyDataProperties(object, a0, r5); property = global.Object; value = global.Object.entries(a0.userDiscountOffers); value = property.fromEntries(value.map(_fun56053)); object['userDiscountOffers'] = value; return object; } return value; }]; value = new value(importDefault(694) /* metro dependency 694: Dispatcher */, {BILLING_USER_OFFER_FETCH_START: BILLING_USER_OFFER_FETCH_START, BILLING_USER_TRIAL_OFFER_ACKNOWLEDGED_SUCCESS: BILLING_USER_TRIAL_OFFER_ACKNOWLEDGED_SUCCESS, BILLING_USER_OFFER_FETCH_SUCCESS: BILLING_USER_OFFER_FETCH_SUCCESS, BILLING_USER_OFFER_ACKNOWLEDGED_SUCCESS: BILLING_USER_OFFER_ACKNOWLEDGED_SUCCESS, BILLING_USER_OFFER_FETCH_FAIL: BILLING_USER_OFFER_FETCH_FAIL, BILLING_USER_OFFER_REDEEMED: BILLING_USER_OFFER_REDEEMED, BILLING_PAYMENT_SOURCE_CREATE_SUCCESS: closure2, BILLING_PAYMENT_SOURCE_UPDATE_SUCCESS: closure2, BILLING_PAYMENT_SOURCE_REMOVE_SUCCESS: closure2, LOGOUT: LOGOUT_560102}); (FileImportTrackerModule).fileFinishedImporting('stores/billing/UserOfferStore.tsx'); exports.default = value; function _createForOfIteratorHelperLoose_56004(a0, a1) { // fn#56004, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:463, offset: 0x013bafd2, size: 370 bytes, params: 3, frame: 20 var r6; var r9; var r5; var value3; var regexp; const env0_0 = a0; const Symbol = global.Symbol; let value = typeof Symbol !== 'undefined'; let r1 = value && a0[global.Symbol.iterator]; r1 = !r1 ? a0['@@iterator'] : r1; if (r1) { value = r1.call(a0); return value.next.bind(value); } const Array = global.Array; if (Array.isArray(a0)) { if (r1) { } return _fun56005; } value = undefined; if (a0) { if (typeof a0 === 'string') { value = _arrayLikeToArray_56006(a0, value); r5 = value; } else { value3 = ({}).toString.call(a0).slice(8, -1); r6 = value3 === 'Object' && a0.constructor; r9 = r6 ? a0.constructor.name : value3; if (r9 === 'Map') { r6 = global.Array.from(a0); } else if (r9 === 'Set') { r6 = global.Array.from(a0); } else if (r9 === 'Arguments') { value = _arrayLikeToArray_56006(a0, value); r6 = value; } else { regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', ''); if (regexp.test(r9)) { value = _arrayLikeToArray_56006(a0, value); r6 = value; } else { r6 = value; } } r5 = r6; } } else { r5 = value; } if (r5) { if (r5) { } return _fun56005; } const TypeError = global.TypeError; throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'); function _fun56005() { // fn#56005, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:1034, offset: 0x00c39d73, size: 69 bytes, params: 1, frame: 5 return env0_1 >= env0_0.length ? {done: true} : {done: false, value: env0_0[typeof env0_1 === 'bigint' ? env0_1 : +env0_1]}; } } function _isNativeReflectConstruct_56007() { // fn#56007, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:1373, offset: 0x013bb144, size: 94 bytes, params: 1, frame: 18 var Boolean; var prototype; var valueOf; var call; var Reflect; var construct; var closure; var value; var error; try { Boolean = global.Boolean; prototype = Boolean.prototype; valueOf = prototype.valueOf; call = valueOf.call; Reflect = global.Reflect; construct = Reflect.construct; Boolean = global.Boolean; closure = function() { }; value = Reflect.apply(construct, Reflect, [Boolean, [], closure]); value = Reflect.apply(call, valueOf, [value]); var result = !value; } catch (error) { } return (_isNativeReflectConstruct_56007_isNativeReflectConstruct = function() { return !!result; })(); } function LOGOUT_56010() { // fn#56010, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:1712, offset: 0x013bb1a2, size: 53 bytes, params: 1, frame: 3 env0_20.userTrialOffers = {}; env0_20.userDiscountOffers = {}; env0_20.userOffersLastFetchedAtDate = undefined; env0_20.isFetching = false; } function rehydrateDiscountOffer(a0) { // fn#56011, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:1856, offset: 0x013bb1d7, size: 270 bytes, params: 2, frame: 18 var r6; var r1; var r0; var value3; var object; var appliedAt; var value4; var Date; var date; var deletedAt; let value = a0; let userDiscountOfferRecordBinding = UserDiscountOfferRecord; if (value instanceof userDiscountOfferRecordBinding) { r0 = value; } else { value3 = 'discount_id' in value; userDiscountOfferRecordBinding = UserDiscountOfferRecord; if (value3) { value = userDiscountOfferRecordBinding.createFromServer(value); r1 = value; } else { object = {}; copyDataProperties(object, value, undefined); appliedAt = value.appliedAt; value4 = null; if (value4 != appliedAt) { Date = global.Date; appliedAt = value.appliedAt; date = new Date(); } else { r6 = value4; } object['appliedAt'] = r6; deletedAt = value.deletedAt; if (value4 != deletedAt) { Date = global.Date; deletedAt = value.deletedAt; date = new Date(); } else { r6 = value4; } object['deletedAt'] = r6; object['expiresAt'] = value4 != value.expiresAt ? new global.Date() : value4; r1 = new userDiscountOfferRecordBinding(); } r0 = r1; } return r0; } function handleSubscriptionStoreUpdate_56012() { // fn#56012, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:2134, offset: 0x013bb2e5, size: 175 bytes, params: 1, frame: 14 var r0; var binding; const value3 = SubscriptionStore.getPremiumTypeSubscription() != null; if (value3) { if (env0_20.userDiscountOffers[PREMIUM_TIER_2_CHURN_1_MONTH_DISCOUNT_ID] != null) { binding = env0_20; binding.userDiscountOffers = {[PREMIUM_TIER_2_CHURN_1_MONTH_DISCOUNT_ID]: binding.userDiscountOffers[PREMIUM_TIER_2_CHURN_1_MONTH_DISCOUNT_ID]}; } else if (env0_20.userDiscountOffers[PREMIUM_TIER_2_CHURN_3_MONTH_DISCOUNT_ID] != null) { binding = env0_20; binding.userDiscountOffers = {[PREMIUM_TIER_2_CHURN_3_MONTH_DISCOUNT_ID]: binding.userDiscountOffers[PREMIUM_TIER_2_CHURN_3_MONTH_DISCOUNT_ID]}; } else { env0_20.userDiscountOffers = {}; } binding = env0_20; binding.userTrialOffers = {}; r0 = true; } else { r0 = value3; } return r0; } function _fun56016(a0) { // fn#56016, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:2545, offset: 0x013bb3a8, size: 552 bytes, params: 2, frame: 16 const UserOfferStore2 = UserOfferStore; Inherits(UserOfferStore2, a0); return CreateClass(UserOfferStore2, [{key: 'initialize', value: value_56018}, {key: 'getUserTrialOffer', value: value_56020}, {key: 'getUserDiscountOffer', value: value_56021}, {key: 'getAnyOfUserTrialOfferId', value: value_56022}, {key: 'isFetchingOffer', value: value_56023}, {key: 'hasFetchedOffer', value: value_56024}, {key: 'shouldFetchReferralOffer', value: value_56025}, {key: 'shouldShowTrialOfferReminder', value: value_56026}, {key: 'getAlmostExpiringTrialOffersForReminder', value: value_56027}, {key: 'shouldShowDiscountOfferReminder', value: value_56030}, {key: 'getAlmostExpiringDiscountOffersForReminder', value: value_56031}, {key: 'getAcknowledgedOffers', value: value_56034}, {key: 'getUnacknowledgedDiscountOffers', value: value_56036}, {key: 'getUnacknowledgedOffers', value: value_56038}, {key: 'hasAnyUnexpiredOffer', value: value_56040}, {key: 'hasAnyUnexpiredDiscountOffer', value: value_56042}, {key: 'canFractionalPremiumUserUseOffer', value: value_56044}, {key: 'getReferrer', value: value_56045}, {key: 'getState', value: value_56046}, {key: 'forceReset', value: function() { LOGOUT_56010(); }}, {key: 'lastFetchSuccessful', value: value_56048}]); function UserOfferStore() { // fn#56017, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:2557, offset: 0x010a0a31, size: 113 bytes, params: 1, frame: 20 const value = environment.__proto__; env1_2(this, UserOfferStore); const value3 = env1_5(UserOfferStore); return env1_4(this, _isNativeReflectConstruct_56007() ? global.Reflect.construct(value3, arguments, env1_5(this).constructor) : value3.apply(this, arguments)); } function value_56018(a0) { // fn#56018, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:2845, offset: 0x013bb5d0, size: 237 bytes, params: 2, frame: 19 var environment; var value; var object; var Object; var fromEntries; var Object2; if (a0 != null) { object = {}; copyDataProperties(object, a0, undefined); Object = global.Object; fromEntries = Object.fromEntries; Object2 = global.Object; value = Object2.entries(a0.userDiscountOffers ?? ({})); value = Reflect.apply(fromEntries, Object, [value.map(function(a0) { var r0; var r2; var r4; var item3; var value3; var iterator = a0[Symbol.iterator](); var iterator2 = iterator.next; var item2 = Reflect.apply(iterator2, iterator, []); var item = item2.value; item2 = item2.done ? undefined : iterator; var value = undefined; var value2 = item2 === value; var r1 = value2 ? value : item; if (value2) { r0 = item2; r2 = value; r4 = value2; } else { item3 = Reflect.apply(iterator2, item2, []); item = item3.value; item3 = item3.done ? undefined : item2; value3 = item3 === value; if (value3) { r0 = item3; r2 = value; r4 = value3; } else { r0 = item3; r2 = item; r4 = value3; } } if (!r4) { r0.return(); } var items = [r1]; items[1] = rehydrateDiscountOffer(r2); return items; })]); object['userDiscountOffers'] = value; value = environment.__proto__; } else { value = environment.__proto__; } const waitFor = this.waitFor; value = environment.__proto__; const entitlementStoreBinding = EntitlementStore; const referralTrialStoreBinding = ReferralTrialStore; Reflect.apply(waitFor, this, [entitlementStoreBinding, referralTrialStoreBinding, SubscriptionStore, UserStore]); this.syncWith([UserStore], emitChanges); this.syncWith([SubscriptionStore], handleSubscriptionStoreUpdate_56012); this.syncWith([referralTrialStoreBinding], handleReferralTrialStoreUpdate); } function value_56020(a0) { // fn#56020, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:3206, offset: 0x013bb716, size: 32 bytes, params: 2, frame: 2 var value; if (a0 !== null) { value = environment.__proto__; return env1_20.userTrialOffers[a0]; } } function value_56021(a0) { // fn#56021, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:3294, offset: 0x013bb736, size: 32 bytes, params: 2, frame: 2 var value; if (a0 !== null) { value = environment.__proto__; return env1_20.userDiscountOffers[a0]; } } function value_56022(a0) { // fn#56022, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:3389, offset: 0x013bb756, size: 78 bytes, params: 2, frame: 16 var value4; var userTrialOffers; var value5; const value2 = _createForOfIteratorHelperLoose_56004(a0); const value3 = value2(); let done = value3.done; if (done) { return null; } let r3 = value3; loopExit1: while (true) { value4 = r3.value; userTrialOffers = env1_20.userTrialOffers; if (userTrialOffers[value4] != null) { break loopExit1; } value5 = value2(); done = value5.done; if (done) { return null; } r3 = value5; continue; } return value4; } function value_56023() { // fn#56023, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:3560, offset: 0x013bb7a4, size: 27 bytes, params: 1, frame: 3 const value = environment.__proto__; const isFetching = env1_20.isFetching; return isFetching != null && isFetching; } function value_56024() { // fn#56024, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:3641, offset: 0x013bb7bf, size: 21 bytes, params: 1, frame: 2 const userOffersLastFetchedAtDate = env1_20.userOffersLastFetchedAtDate; return userOffersLastFetchedAtDate != null; } function value_56025(a0) { // fn#56025, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:3735, offset: 0x013bb7d4, size: 108 bytes, params: 2, frame: 14 const value = a0; const userOffersLastFetchedAtDate = env1_20.userOffersLastFetchedAtDate; const isFetching = env1_20.isFetching; const r0 = isFetching != null && isFetching; if (userOffersLastFetchedAtDate == null) { return !r0; } const Date = global.Date; return !r0 && (Date.now() - 600000 > userOffersLastFetchedAtDate || (value ?? 0) > userOffersLastFetchedAtDate); } function value_56026({trial_id}) { // fn#56026, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:3931, offset: 0x013bb840, size: 79 bytes, params: 2, frame: 13 var r0; let value = environment.__proto__; const value2 = TRIAL_OFFERS_REQUIRES_REMINDER_ROLLOUT.includes(trial_id); if (value2) { value = require(7248) /* metro dependency 7248: PremiumOfferReminderExperiment */; value = value.isPremiumOfferReminderExperimentEnabled({location: 'user_offer_store'}); r0 = value; } else { r0 = !value2; } return r0; } function value_56027(a0) { // fn#56027, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:4110, offset: 0x013bb88f, size: 171 bytes, params: 2, frame: 16 var environment; var r0; const env0_1 = a0; let Object = global.Object; const values = Object.values; let value = environment.__proto__; const env0_2 = Reflect.apply(values, Object, [SubscriptionTrials]).map(function(a0) { return a0.id; }); const currentUser = UserStore.getCurrentUser(); if (PremiumUtilsModule.isPremium(currentUser)) { if (this.canFractionalPremiumUserUseOffer()) { Object = global.Object; value = Object.values(env1_20.userTrialOffers); value = value.filter(_fun56029); r0 = value; } else { r0 = []; } } else { Object = global.Object; value = Object.values(env1_20.userTrialOffers); value = value.filter(_fun56029); r0 = value; } return r0; function _fun56029(a0) { // fn#56029, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:4297, offset: 0x013bb93a, size: 194 bytes, params: 2, frame: 16 var Date; var value6; var value7; var value8; var moduleValue; const binding = env0_2; let r0 = binding.includes(a0.trial_id) && a0.expires_at != null && a0.subscription_trial != null && env0_1.includes(a0.subscription_trial.sku_id); if (r0) { Date = global.Date; value6 = Date.parse(a0.expires_at); Date = global.Date; value7 = Date.now(); value8 = environment.__proto__.__proto__; moduleValue = require(3802) /* metro dependency 3802: PremiumUtils */; r0 = value6 < value7 + moduleValue.getOfferNoticeThreshold(a0); } r0 = r0 && env0_0.shouldShowTrialOfferReminder(a0); return r0; } } function value_56030({discountId}) { // fn#56030, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:4573, offset: 0x013bb9fc, size: 79 bytes, params: 2, frame: 13 var r0; let value = environment.__proto__; const value2 = DISCOUNT_OFFERS_REQUIRES_REMINDER_ROLLOUT.includes(discountId); if (value2) { value = require(7248) /* metro dependency 7248: PremiumOfferReminderExperiment */; value = value.isPremiumOfferReminderExperimentEnabled({location: 'user_offer_store'}); r0 = value; } else { r0 = !value2; } return r0; } function value_56031(a0) { // fn#56031, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:4757, offset: 0x013bba4b, size: 132 bytes, params: 2, frame: 15 var environment; var r0; var Object; const env0_1 = a0; let value = environment.__proto__; const currentUser = UserStore.getCurrentUser(); if (PremiumUtilsModule.isPremium(currentUser)) { if (this.canFractionalPremiumUserUseOffer()) { Object = global.Object; value = Object.values(env1_20.userDiscountOffers); value = value.filter(_fun56032); r0 = value; } else { r0 = []; } } else { Object = global.Object; value = Object.values(env1_20.userDiscountOffers); value = value.filter(_fun56032); r0 = value; } return r0; function _fun56032(a0) { // fn#56032, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:4913, offset: 0x013bbacf, size: 166 bytes, params: 2, frame: 15 var environment; var value2; var value3; var moduleValue; let value = a0.expiresAt != null; let r0 = value && a0.discount != null && a0.discount.planIds.some(_fun56033); if (r0) { value = a0.expiresAt.getTime(); value2 = global.Date.now(); value3 = environment.__proto__.__proto__; moduleValue = require(3802) /* metro dependency 3802: PremiumUtils */; value = value < value2 + moduleValue.getOfferNoticeThreshold(a0); r0 = value; } r0 = r0 && env0_0.shouldShowDiscountOfferReminder(a0); return r0; function _fun56033(a0) { // fn#56033, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:4978, offset: 0x013bbb75, size: 38 bytes, params: 2, frame: 12 const binding = env1_1; return binding.includes(SubscriptionPlanInfo[a0].skuId); } } } function value_56034(a0) { // fn#56034, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:5157, offset: 0x013bbb9b, size: 128 bytes, params: 2, frame: 15 var environment; var r0; var Object; const env0_0 = a0; let value = environment.__proto__; const currentUser = UserStore.getCurrentUser(); if (PremiumUtilsModule.isPremium(currentUser)) { if (this.canFractionalPremiumUserUseOffer()) { Object = global.Object; value = Object.values(env1_20.userTrialOffers); value = value.filter(_fun56035); r0 = value; } else { r0 = []; } } else { Object = global.Object; value = Object.values(env1_20.userTrialOffers); value = value.filter(_fun56035); r0 = value; } return r0; function _fun56035(a0) { // fn#56035, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:5310, offset: 0x013bbc1b, size: 43 bytes, params: 2, frame: 12 const binding = env0_0; return binding.includes(a0.trial_id) && a0.expires_at != null; } } function value_56036() { // fn#56036, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:5405, offset: 0x013bbc46, size: 129 bytes, params: 1, frame: 14 var environment; var r0; var Object; let value = environment.__proto__; const currentUser = UserStore.getCurrentUser(); if (PremiumUtilsModule.isPremium(currentUser)) { if (this.canFractionalPremiumUserUseOffer()) { Object = global.Object; value = Object.values(env1_20.userDiscountOffers ?? ({})); value = value.filter(_fun56037); r0 = value; } else { r0 = []; } } else { Object = global.Object; value = Object.values(env1_20.userDiscountOffers ?? ({})); value = value.filter(_fun56037); r0 = value; } return r0; function _fun56037(a0) { // fn#56037, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:5577, offset: 0x013bbcc7, size: 47 bytes, params: 2, frame: 12 var r0; let value = a0.hasAcknowledged(); if (value) { r0 = !value; } else { value = environment.__proto__.__proto__; value = !ANNUAL_DISCOUNT_IDS.includes(a0.discountId); r0 = value; } return r0; } } function value_56038(a0) { // fn#56038, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:5669, offset: 0x013bbcf6, size: 128 bytes, params: 2, frame: 15 var environment; var r0; var Object; const env0_0 = a0; let value = environment.__proto__; const currentUser = UserStore.getCurrentUser(); if (PremiumUtilsModule.isPremium(currentUser)) { if (this.canFractionalPremiumUserUseOffer()) { Object = global.Object; value = Object.values(env1_20.userTrialOffers); value = value.filter(_fun56039); r0 = value; } else { r0 = []; } } else { Object = global.Object; value = Object.values(env1_20.userTrialOffers); value = value.filter(_fun56039); r0 = value; } return r0; function _fun56039(a0) { // fn#56039, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:5822, offset: 0x013bbd76, size: 43 bytes, params: 2, frame: 12 const binding = env0_0; return binding.includes(a0.trial_id) && a0.expires_at == null; } } function value_56040() { // fn#56040, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:5906, offset: 0x013bbda1, size: 51 bytes, params: 1, frame: 11 var environment; const Object = global.Object; const values = Object.values; let value = environment.__proto__; const userTrialOffers = env1_20.userTrialOffers; return Reflect.apply(values, Object, [userTrialOffers]).some(function(a0) { var r0; var Date; var value = a0.expires_at == null; if (value) { r0 = value; } else { Date = global.Date; value = Date.parse(a0.expires_at); Date = global.Date; value = value > Date.now(); r0 = value; } return r0; }); } function value_56042() { // fn#56042, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:6068, offset: 0x013bbe14, size: 51 bytes, params: 1, frame: 11 var environment; const Object = global.Object; const values = Object.values; const value = environment.__proto__; const userDiscountOffers = env1_20.userDiscountOffers; return Reflect.apply(values, Object, [userDiscountOffers]).some(function(a0) { return !a0.hasExpired(); }); } function value_56044() { // fn#56044, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:6197, offset: 0x013bbe59, size: 52 bytes, params: 1, frame: 13 var r0; let value = environment.__proto__; const isFractionalPremiumActive2 = EntitlementStore.isFractionalPremiumActive({excludeReverseTrial: true}); if (isFractionalPremiumActive2) { value = SubscriptionStore.getPremiumTypeSubscription(); value = value == null; r0 = value; } else { r0 = isFractionalPremiumActive2; } return r0; } function value_56045(a0) { // fn#56045, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:6334, offset: 0x013bbe8d, size: 51 bytes, params: 2, frame: 4 const value = null; return value == a0 ? value : env1_20.userTrialOffers[a0] == undefined ? undefined : env1_20.userTrialOffers[a0].referrer; } function value_56046() { // fn#56046, offset: 0x00e4253a, size: 9 bytes, params: 1, frame: 1 return env1_20; } function value_56048() { // fn#56048, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:6551, offset: 0x013bbecf, size: 15 bytes, params: 1, frame: 1 return env1_20.lastFetchSuccessful; } } function _fun56052(a0) { // fn#56052, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:6985, offset: 0x013bbf83, size: 110 bytes, params: 2, frame: 15 var object; var Object; var fromEntries; var Object2; let value = undefined; const userDiscountOffers = a0 == null ? value : a0.userDiscountOffers; if (userDiscountOffers != null) { object = {}; copyDataProperties(object, a0, undefined); Object = global.Object; fromEntries = Object.fromEntries; Object2 = global.Object; value = Object2.entries(a0.userDiscountOffers); value = Reflect.apply(fromEntries, Object, [value.map(function(a0) { var r0; var r2; var r4; var item3; var value3; var iterator = a0[Symbol.iterator](); var iterator2 = iterator.next; var item2 = Reflect.apply(iterator2, iterator, []); var item = item2.value; item2 = item2.done ? undefined : iterator; var value = undefined; var value2 = item2 === value; var r1 = value2 ? value : item; if (value2) { r0 = item2; r2 = value; r4 = value2; } else { item3 = Reflect.apply(iterator2, item2, []); item = item3.value; item3 = item3.done ? undefined : item2; value3 = item3 === value; if (value3) { r0 = item3; r2 = value; r4 = value3; } else { r0 = item3; r2 = item; r4 = value3; } } if (!r4) { r0.return(); } var items = [r1]; items[1] = rehydrateDiscountOffer(r2); return items; })]); object['userDiscountOffers'] = value; return object; } return value; function _fun56053(a0) { // fn#56053, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:7128, offset: 0x013bbff1, size: 89 bytes, params: 2, frame: 16 var r0; var r2; var r4; var item3; var value3; const iterator = a0[Symbol.iterator](); const iterator2 = iterator.next; let item2 = Reflect.apply(iterator2, iterator, []); let item = item2.value; item2 = item2.done ? undefined : iterator; const value = undefined; const value2 = item2 === value; const r1 = value2 ? value : item; if (value2) { r0 = item2; r2 = value; r4 = value2; } else { item3 = Reflect.apply(iterator2, item2, []); item = item3.value; item3 = item3.done ? undefined : item2; value3 = item3 === value; if (value3) { r0 = item3; r2 = value; r4 = value3; } else { r0 = item3; r2 = item; r4 = value3; } } if (!r4) { r0.return(); } const items2 = [r1]; items2[1] = rehydrateDiscountOffer(r2); return items2; } } function BILLING_USER_OFFER_FETCH_START() { // fn#56054, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:7226, offset: 0x013bc04a, size: 19 bytes, params: 1, frame: 2 env0_20.isFetching = true; } function BILLING_USER_TRIAL_OFFER_ACKNOWLEDGED_SUCCESS({userTrialOffer}) { // fn#56055, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:7326, offset: 0x013bc05d, size: 89 bytes, params: 2, frame: 10 if (userTrialOffer != null) { env0_20.userTrialOffers[userTrialOffer.trial_id] = userTrialOffer; } else { env0_20.userTrialOffers = {}; } const binding = env0_20; const Date = global.Date; binding.userOffersLastFetchedAtDate = Date.now(); } function BILLING_USER_OFFER_FETCH_SUCCESS({userTrialOffer, userDiscountOffer}) { // fn#56056, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:7531, offset: 0x013bc0b6, size: 182 bytes, params: 2, frame: 12 if (userTrialOffer == null && userDiscountOffer == null) { LOGOUT_56010(); } if (userTrialOffer != null) { env0_20.userTrialOffers[userTrialOffer.trial_id] = userTrialOffer; env0_20.userDiscountOffers = {}; } else if (userDiscountOffer != null) { env0_20.userDiscountOffers[userDiscountOffer.discountId] = userDiscountOffer; env0_20.userTrialOffers = {}; } const binding = env0_20; const Date = global.Date; binding.userOffersLastFetchedAtDate = Date.now(); env0_20.isFetching = false; env0_20.lastFetchSuccessful = true; } function BILLING_USER_OFFER_ACKNOWLEDGED_SUCCESS({userTrialOffer, userDiscount, userDiscountOffer}) { // fn#56057, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:7898, offset: 0x013bc16c, size: 174 bytes, params: 2, frame: 13 if (userTrialOffer != null) { env0_20.userTrialOffers[userTrialOffer.trial_id] = userTrialOffer; } else { env0_20.userTrialOffers = {}; } if (userDiscount != null) { env0_20.userDiscountOffers[userDiscount.discountId] = userDiscount; } else if (userDiscountOffer != null) { env0_20.userDiscountOffers[userDiscountOffer.discountId] = userDiscountOffer; } else { env0_20.userDiscountOffers = {}; } const binding = env0_20; const Date = global.Date; binding.userOffersLastFetchedAtDate = Date.now(); } function BILLING_USER_OFFER_FETCH_FAIL() { // fn#56058, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:8244, offset: 0x013bc21a, size: 64 bytes, params: 1, frame: 12 LOGOUT_56010(); const binding = env0_20; const Date = global.Date; binding.userOffersLastFetchedAtDate = Date.now(); env0_20.isFetching = false; env0_20.lastFetchSuccessful = false; } function BILLING_USER_OFFER_REDEEMED({offerId}) { // fn#56059, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:8405, offset: 0x013bc25a, size: 146 bytes, params: 2, frame: 14 let Object = global.Object; let keys = Object.keys; const userDiscountOffers = env0_20.userDiscountOffers; const value3 = Reflect.apply(keys, Object, [userDiscountOffers]).find(_fun56060); if (value3 != null) { delete env0_20.userDiscountOffers[value3]; } Object = global.Object; keys = Object.keys; const userTrialOffers = env0_20.userTrialOffers; const value5 = Reflect.apply(keys, Object, [userTrialOffers]).find(_fun56061); if (value5 != null) { delete env0_20.userTrialOffers[value5]; } return true; function _fun56060(a0) { // fn#56060, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:8497, offset: 0x013bc2ec, size: 38 bytes, params: 2, frame: 2 const userDiscountOffers = env1_20.userDiscountOffers; return userDiscountOffers[a0].id === offerId; } function _fun56061(a0) { // fn#56061, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7242:8616, offset: 0x013bc312, size: 38 bytes, params: 2, frame: 2 const userTrialOffers = env1_20.userTrialOffers; return userTrialOffers[a0].id === offerId; } } } global.__d(_fun56003, 7064, [6, 7, 15, 17, 18, 7065, 7247, 1878, 5181, 3808, 1880, 7248, 3802, 566, 694, 2]) /* metro module 7064, dependencies: [6, 7, 15, 17, 18, 7065, 7247, 1878, 5181, 3808, 1880, 7248, 3802, 566, 694, 2] */;