Files
discord-decomp/sources/stores/billing/SubscriptionPlanStore.tsx
T
2026-07-27 16:20:00 +03:00

532 lines
23 KiB
TypeScript

/* 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);
}