/* Metro module 3807; source: stores/billing/SubscriptionPlanStore.tsx; dependencies: [6, 7, 15, 17, 18, 3803, 661, 1880, 1944, 21, 566, 694, 2] */ function _fun29330(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#29330, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:6, offset: 0x00fbff5a, size: 619 bytes, params: 8, frame: 22 const env0_0 = require; const _arrayLikeToArray_29336 = 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 closure = function() { [SubscriptionPlanInfo[SubscriptionPlans.NONE_MONTH], SubscriptionPlanInfo[SubscriptionPlans.NONE_YEAR], SubscriptionPlanInfo[SubscriptionPlans.NONE_3_MONTH], SubscriptionPlanInfo[SubscriptionPlans.NONE_6_MONTH]].forEach(_fun29339); }; const closure2 = SUBSCRIPTION_PLANS_RESET; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_3 = importDefault(6) /* metro dependency 6 */; const env0_4 = importDefault(7) /* metro dependency 7 */; const env0_5 = importDefault(15) /* metro dependency 15 */; const env0_6 = importDefault(17) /* metro dependency 17 */; const env0_7 = importDefault(18) /* metro dependency 18 */; const subscriptionPlanRecord = importDefault(3803) /* metro dependency 3803: SubscriptionPlanRecord */; let value = require(661) /* metro dependency 661: Constants */; const env0_9 = value.CurrencyCodes; const env0_10 = value.PriceSetAssignmentPurchaseTypes; value = require(1880) /* metro dependency 1880: PremiumConstants */; const SubscriptionIntervalTypes = value.SubscriptionIntervalTypes; const env0_11 = value.SubscriptionPlanInfo; const env0_12 = value.SubscriptionPlans; const env0_13 = value.PremiumSubscriptionSKUs; const env0_14 = value.ACTIVE_PREMIUM_SKUS; const env0_15 = {}; const env0_16 = {}; let Set = global.Set; let set = new Set(); Set = global.Set; set = new Set(); const env0_19 = {}; const env0_20 = {}; closure(); const DAY = SubscriptionIntervalTypes.DAY; items = [DAY]; const MONTH = SubscriptionIntervalTypes.MONTH; items[1] = MONTH; const YEAR = SubscriptionIntervalTypes.YEAR; items[2] = YEAR; const Store = (importDefault(566) /* metro dependency 566: flux */).Store; let value4 = _fun29342(Store); value4.displayName = 'SubscriptionPlanStore'; const value7 = new value4(importDefault(694) /* metro dependency 694: Dispatcher */, {SUBSCRIPTION_PLANS_FETCH: SUBSCRIPTION_PLANS_FETCH, SUBSCRIPTION_PLANS_FETCH_SUCCESS: SUBSCRIPTION_PLANS_FETCH_SUCCESS, SUBSCRIPTION_PLANS_FETCH_FAILURE: SUBSCRIPTION_PLANS_FETCH_FAILURE, SUBSCRIPTION_PLANS_RESET: closure2, GIFT_CODE_RESOLVE_SUCCESS: GIFT_CODE_RESOLVE_SUCCESS, ENTITLEMENTS_GIFTABLE_FETCH_SUCCESS: function({entitlements}) { var r2; var value4; var value2 = _createForOfIteratorHelperLoose_29334(entitlements); var value3 = value2(); if (!value3.done) { r2 = value3; while (true) { entitlements = r2.value; if (entitlements.subscription_plan != null) { addSubscriptionPlanFromServer(entitlements.subscription_plan); } value4 = value2(); if (value4.done) { break; } r2 = value4; continue; } } }, LOGOUT: closure2}); (require(2) /* metro dependency 2 */).fileFinishedImporting('stores/billing/SubscriptionPlanStore.tsx'); exports.default = value7; exports.subscriptionPlansFetchingForSKU = set; } function _isNativeReflectConstruct_29331() { // fn#29331, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:365, offset: 0x00fc01c5, 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_29331_isNativeReflectConstruct = function() { return !!result; })(); } function _createForOfIteratorHelperLoose_29334(a0, a1) { // fn#29334, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:558, offset: 0x00fc0223, 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 _fun29335; } value = undefined; if (a0) { if (typeof a0 === 'string') { value = _arrayLikeToArray_29336(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_29336(a0, value); r6 = value; } else { regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', ''); if (regexp.test(r9)) { value = _arrayLikeToArray_29336(a0, value); r6 = value; } else { r6 = value; } } r5 = r6; } } else { r5 = value; } if (r5) { if (r5) { } return _fun29335; } 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 addSubscriptionPlan(a0) { // fn#29337, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:1512, offset: 0x00fc0395, size: 338 bytes, params: 2, frame: 22 var r2; var Set; var Object; var value2; var prototype; var value3; var set; var value4; var Array; var from; var value7; var skuId3; var items2; var value8; var value9; const skuId = a0.skuId; let binding = env0_15; binding[a0.id] = a0; const prices = a0.prices; const DEFAULT = PriceSetAssignmentPurchaseTypes.DEFAULT; let property = prices[DEFAULT]; if (property != null) { Set = global.Set; Object = global.Object; value2 = Object.keys(property.paymentSourcePrices); prototype = Set.prototype; value3 = Object.create(prototype, {constructor: {value: Set}}); set = new Set(); value4 = set instanceof Object ? set : value3; binding = env0_19; binding[a0.id] = value4; Array = global.Array; from = Array.from; binding = env0_20; property = binding[a0.skuId]; if (property != null) { r2 = property; } else { set = new global.Set(); } value7 = Reflect.apply(from, Array, [r2]); binding = env0_20; skuId3 = a0.skuId; Set = global.Set; items2 = []; value8 = arraySpread(items2, value7, 0, value4); Array = global.Array; from = Array.from; arraySpread(items2, Reflect.apply(from, Array, [value4]), value8, value4); prototype = Set.prototype; value9 = Object.create(prototype, {constructor: {value: Set}}); set = new Set(); binding[skuId3] = set instanceof Object ? set : value9; } property = env0_16[skuId]; if (property != null) { property.add(a0.id); } else { binding = env0_16; Set = global.Set; items2 = [a0.id]; binding[skuId] = new Set(); } } function initializeNonePlans() { // fn#29338, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:1813, offset: 0x00fc04e7, size: 116 bytes, params: 1, frame: 12 const NONE_MONTH = SubscriptionPlans.NONE_MONTH; const NONE_YEAR = SubscriptionPlans.NONE_YEAR; const NONE_3_MONTH = SubscriptionPlans.NONE_3_MONTH; const NONE_6_MONTH = SubscriptionPlans.NONE_6_MONTH; [SubscriptionPlanInfo[NONE_MONTH], SubscriptionPlanInfo[NONE_YEAR], SubscriptionPlanInfo[NONE_3_MONTH], SubscriptionPlanInfo[NONE_6_MONTH]].forEach(_fun29339); } function addSubscriptionPlanFromServer(a0) { // fn#29340, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:2109, offset: 0x00fc05d3, size: 34 bytes, params: 2, frame: 12 addSubscriptionPlan(SubscriptionPlanRecord.createFromServer(a0)); } function LOGOUT_29341() { // fn#29341, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:2194, offset: 0x00fc05f5, size: 150 bytes, params: 1, frame: 16 (require(1944) /* metro dependency 1944: FunctionUtils */).clearObject(env0_15); (require(1944) /* metro dependency 1944: FunctionUtils */).clearObject(env0_16); env0_17.clear(); env0_18.clear(); (require(1944) /* metro dependency 1944: FunctionUtils */).clearObject(env0_19); (require(1944) /* metro dependency 1944: FunctionUtils */).clearObject(env0_20); initializeNonePlans(); } function _fun29342(a0) { // fn#29342, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:2402, offset: 0x00fc068b, size: 427 bytes, params: 2, frame: 16 const closure = SubscriptionPlanStore; env0_7(closure, a0); return env0_4(closure, [{key: 'getPlanIdsForSkus', value: value_29344}, {key: 'getFetchedSKUIDs', value: value_29346}, {key: 'getForSKU', value: value_29347}, {key: 'getForSkuAndInterval', value: function(a0, a1) { var value = a2; var env0_0 = a1; var env0_1 = value !== undefined ? value : 1; return this.getForSKU(a0).find(_fun29350); }}, {key: 'get', value: value_29351}, {key: 'isFetchingForSKU', value: value_29352}, {key: 'isFetchingForSKUs', value: function(a0) { var env0_0 = this; return a0.some(_fun29354); }}, {key: 'isLoadedForSKU', value: value_29355}, {key: 'isLoadedForSKUs', value: function(a0) { var env0_0 = this; return a0.every(_fun29357); }}, {key: 'isFetchingForPremiumSKUs', value: function() { var env0_0 = this; return ACTIVE_PREMIUM_SKUS.some(_fun29359); }}, {key: 'isLoadedForPremiumSKUs', value: function() { var env0_0 = this; return ACTIVE_PREMIUM_SKUS.every(_fun29361); }}, {key: 'ignoreSKUFetch', value: value_29362}, {key: 'getPaymentSourcesForPlanId', value: value_29363}, {key: 'getPaymentSourceIds', value: value_29364}, {key: 'hasPaymentSourceForSKUId', value: value_29367}, {key: 'hasPaymentSourceForSKUIds', value: function(a0, a1) { var env0_0 = this; var env0_1 = a0; return a1.every(_fun29369); }}]); } function SUBSCRIPTION_PLANS_FETCH({skuId}) { // fn#29370, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:4443, offset: 0x00fc0c4e, size: 29 bytes, params: 2, frame: 11 env0_17.add(skuId); } function SUBSCRIPTION_PLANS_FETCH_SUCCESS({skuId, subscriptionPlans}) { // fn#29371, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:4535, offset: 0x00fc0c6b, size: 133 bytes, params: 2, frame: 15 let binding = env0_16; let Set = global.Set; const value2 = Object.create(Set.prototype, {constructor: {value: Set}}); let set = new Set(); binding[skuId] = set instanceof Object ? set : value2; binding = env0_20; Set = global.Set; const value4 = Object.create(Set.prototype, {constructor: {value: Set}}); set = new Set(); binding[skuId] = set instanceof Object ? set : value4; subscriptionPlans.forEach(addSubscriptionPlanFromServer); env0_17.delete(skuId); env0_18.delete(skuId); } function SUBSCRIPTION_PLANS_FETCH_FAILURE({skuId}) { // fn#29372, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:4736, offset: 0x00fc0cf0, size: 43 bytes, params: 2, frame: 12 env0_17.delete(skuId); env0_18.delete(skuId); } function GIFT_CODE_RESOLVE_SUCCESS({giftCode}) { // fn#29373, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:4874, offset: 0x00fc0d1b, size: 45 bytes, params: 2, frame: 11 if (giftCode.subscription_plan != null) { addSubscriptionPlanFromServer(giftCode.subscription_plan); } } function _fun29339({id, name, interval, intervalCount, skuId}) { // fn#29339, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:1922, offset: 0x00fc055b, size: 120 bytes, params: 2, frame: 15 const value = environment.__proto__; const addSubscriptionPlanBinding = addSubscriptionPlan; const createFromServer = SubscriptionPlanRecord.createFromServer; const USD = CurrencyCodes.USD; addSubscriptionPlanBinding(Reflect.apply(createFromServer, SubscriptionPlanRecord, [{id: id, name: name, interval: interval, interval_count: intervalCount, tax_inclusive: true, sku_id: skuId, currency: USD, price: 0, price_tier: 0}])); } function value_29344(a0) { // fn#29344, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:2744, offset: 0x00fc0836, size: 168 bytes, params: 2, frame: 24 var r13; var r2; var r1; var value4; var Array; var from; var property; var Set; var prototype; var value5; var set; var value6; var value7; var push; var items2; var value8; const items3 = []; const value2 = _createForOfIteratorHelperLoose_29334(a0); const value3 = value2(); let done = value3.done; if (!done) { r2 = value3; while (true) { value4 = r2.value; Array = global.Array; from = Array.from; property = env1_16[value4]; if (property != null) { r1 = property; } else { Set = global.Set; prototype = Set.prototype; value5 = Object.create(prototype, {constructor: {value: Set}}); set = new Set(); value6 = set instanceof Object ? set : value5; r1 = value6; r13 = value5; } value7 = Reflect.apply(from, Array, [r1]); value7.sort(_fun29345); push = items3.push; items2 = []; arraySpread(items2, value7, 0, r13); apply(push, items2, items3, r13); value8 = value2(); done = value8.done; if (done) { break; } r2 = value8; continue; } } return items3; } function value_29346() { // fn#29346, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:3054, offset: 0x00fc0936, size: 41 bytes, params: 1, frame: 12 return (importDefault(21) /* metro dependency 21: SnowflakeUtils */).keys(env1_16); } function value_29347(a0) { // fn#29347, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:3113, offset: 0x00fc095f, size: 61 bytes, params: 2, frame: 12 var environment; const Array = global.Array; const from = Array.from; const value = environment.__proto__; return Reflect.apply(from, Array, [env1_16[a0] ?? []]).map(_fun29348); } function value_29349(a0, a1) { // fn#29349, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:3221, offset: 0x00fc09ac, size: 60 bytes, params: 3, frame: 12 const value = a2; const env0_0 = a1; const env0_1 = value !== undefined ? value : 1; return this.getForSKU(a0).find(_fun29350); } function value_29353(a0) { // fn#29353, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:3447, offset: 0x00fc0a25, size: 30 bytes, params: 2, frame: 11 return a0.some(_fun29354); } function value_29355(a0) { // fn#29355, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:3534, offset: 0x00fc0a5a, size: 68 bytes, params: 2, frame: 13 const value = environment.__proto__; const value2 = env1_18.has(a0); return value2 ? !!value2 : !env1_17.has(a0) && env1_16[a0] != null; } function value_29356(a0) { // fn#29356, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:3617, offset: 0x00fc0a9e, size: 30 bytes, params: 2, frame: 11 return a0.every(_fun29357); } function value_29358() { // fn#29358, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:3713, offset: 0x00fc0ad3, size: 34 bytes, params: 1, frame: 11 return ACTIVE_PREMIUM_SKUS.some(_fun29359); } function value_29360() { // fn#29360, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:3807, offset: 0x00fc0af5, size: 34 bytes, params: 1, frame: 11 return ACTIVE_PREMIUM_SKUS.every(_fun29361); } function value_29363(a0) { // fn#29363, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:3955, offset: 0x00fc0b2f, size: 36 bytes, params: 2, frame: 12 return env1_19.hasOwnProperty(a0) ? env1_19[a0] : null; } function value_29364() { // fn#29364, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:4039, offset: 0x00fc0b53, size: 74 bytes, params: 1, frame: 13 const Set = global.Set; const set = new Set(); const Object = global.Object; Object.values(env1_19).forEach(function(a0) { return a0.forEach(_fun29366); }); return set; } function value_29367(a0, a1) { // fn#29367, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:4169, offset: 0x00fc0bc9, size: 66 bytes, params: 3, frame: 13 const value = environment.__proto__; const NONE = PremiumSubscriptionSKUs.NONE; return NONE === a1 || env1_20[a1] != null && env1_20[a1].has(a0); } function value_29368(a0, a1) { // fn#29368, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:4267, offset: 0x00fc0c0b, size: 37 bytes, params: 3, frame: 11 const env0_1 = a0; return a1.every(_fun29369); } function _fun29345(a0, a1) { // fn#29345, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:2887, offset: 0x00fc08de, size: 88 bytes, params: 3, frame: 14 let value = environment.__proto__.__proto__; const property = env2_15[a0]; const property2 = env2_15[a1]; const binding = env2_21; value = binding.indexOf(property.interval); value -= binding.indexOf(property2.interval); return value || property.intervalCount - property2.intervalCount; } function _fun29348(a0) { // fn#29348, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:3175, offset: 0x00fc099c, size: 16 bytes, params: 2, frame: 2 return env2_15[a0]; } function _fun29350(a0) { // fn#29350, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:3270, offset: 0x00fc09e8, size: 39 bytes, params: 2, frame: 4 return a0.interval === require && a0.intervalCount === env0_1; } function _fun29354(a0) { // fn#29354, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:3474, offset: 0x00fc0a43, size: 23 bytes, params: 2, frame: 11 return env0_0.isFetchingForSKU(a0); } function _fun29357(a0) { // fn#29357, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:3645, offset: 0x00fc0abc, size: 23 bytes, params: 2, frame: 11 return env0_0.isLoadedForSKU(a0); } function _fun29365(a0) { // fn#29365, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:4097, offset: 0x00fc0b9d, size: 22 bytes, params: 2, frame: 11 return a0.forEach(_fun29366); } function _fun29369(a0) { // fn#29369, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:4297, offset: 0x00fc0c30, size: 30 bytes, params: 2, frame: 13 return env0_0.hasPaymentSourceForSKUId(env0_1, a0); } function _fun29366(a0) { // fn#29366, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3934:4111, offset: 0x00fc0bb3, size: 22 bytes, params: 2, frame: 11 return env1_0.add(a0); }