decord/beta/source/utils/SubscriptionUtils.tsx
github-actions e7a050048e chore: update source for beta 347.7
Skipped 1 file(s) >100MB (GitHub limit): source/__polyfill/04xxx/module_4943.js (118.4 MB)
2026-09-21 19:31:18 +00:00

249 lines
9.5 KiB
TypeScript

// Module ID: 11573
// Function ID: 11574
// Name: SubscriptionUtils
// Dependencies: [32, 19, 4423, 1078, 1378, 38, 11574, 4418, 7501, 558, 568, 504, 11576, 4352, 2]
// Exports: didBeginPurchaseFlowOnFractionalPremium, getOrFetchSubscriptionPlan, getSubscriptionPauseDurations, getSubscriptionPlans, getSubscriptionSKUs, subscriptionCanDowngrade, subscriptionCanSwitchImmediately
// Module 11573 (SubscriptionUtils)
import _modDef38 from "module_38" /* 38 */;
import _modDef4352 from "module_4352" /* 4352 */;
import PremiumUtils from "PremiumUtils" /* 4418 */;
import SubscriptionPlanActionCreators from "SubscriptionPlanActionCreators" /* 7501 */;
import CheckoutError from "CheckoutError" /* 11574 */;
import PauseDuration from "PauseDuration" /* 11576 */;
import _slicedToArray from "module_32" /* 32 */;
import noop from "module_19" /* 19 */;
import SubscriptionPlanStore from "SubscriptionPlanStore" /* 4423 */;
const require = globalThis.__r;
require = fn;
const Constants = fn(1078);
({ SubscriptionStatusTypes: metroRequire, SubscriptionTypes: closure_7 } = Constants);
const PremiumConstants = fn(1378);
({ SubscriptionPlans: closure_8, SubscriptionPlanInfo: closure_9 } = PremiumConstants);
const ReactCompilerGating = fn(558);
function getSubscriptionPlans(items) {
items = items.items;
return items.map((planId) => {
value = SubscriptionPlanStore.get(planId.planId);
_modDef38(null != value, "Unable to fetch plan");
return value;
});
}
function subscriptionCanSwitchImmediately(getCurrentSubscriptionPlanIdForGroup, newPlanId, arr) {
const currentSubscriptionPlanIdForGroup = getCurrentSubscriptionPlanIdForGroup.getCurrentSubscriptionPlanIdForGroup(arr);
if (getCurrentSubscriptionPlanIdForGroup.type === constants2.PREMIUM) {
if (null == currentSubscriptionPlanIdForGroup) {
return true;
}
}
const obj = { oldPlanId: currentSubscriptionPlanIdForGroup, newPlanId };
if (null == currentSubscriptionPlanIdForGroup) {
const obj2 = { message: "Current subscription has no plan in group", extraSentryInformation: obj };
const checkoutError = new CheckoutError.CheckoutError(obj2);
throw checkoutError;
} else {
if (currentSubscriptionPlanIdForGroup === closure_1_8.PREMIUM_YEAR_TIER_1) {
if (newPlanId === closure_1_8.PREMIUM_MONTH_TIER_2) {
const obj3 = { message: "Unexpected plan switch", extraSentryInformation: obj };
const checkoutError1 = new CheckoutError.CheckoutError(obj3);
throw checkoutError1;
}
}
const index = arr.indexOf(currentSubscriptionPlanIdForGroup);
return index < arr.indexOf(newPlanId);
}
}
const size = fn(2);
let result = size.fileFinishedImporting("utils/SubscriptionUtils.tsx");
export { getSubscriptionPlans };
export const getSubscriptionSKUs = function getSubscriptionSKUs(items) {
items = items.items;
const mapped = items.map((planId) => {
value = SubscriptionPlanStore.get(planId.planId);
_modDef38(null != value, "Unable to fetch plan");
return value;
});
return mapped.map((skuId) => skuId.skuId);
};
export { subscriptionCanSwitchImmediately };
export const subscriptionCanDowngrade = function subscriptionCanDowngrade(getCurrentSubscriptionPlanIdForGroup, newPlanId, arr) {
const currentSubscriptionPlanIdForGroup = getCurrentSubscriptionPlanIdForGroup.getCurrentSubscriptionPlanIdForGroup(arr);
if (getCurrentSubscriptionPlanIdForGroup.type !== constants2.PREMIUM) {
const obj = { oldPlanId: currentSubscriptionPlanIdForGroup, newPlanId };
if (null == currentSubscriptionPlanIdForGroup) {
const obj2 = { message: "Current subscription has no plan in group", extraSentryInformation: obj };
const checkoutError = new CheckoutError.CheckoutError(obj2);
throw checkoutError;
} else {
if (currentSubscriptionPlanIdForGroup === closure_1_8.PREMIUM_YEAR_TIER_1) {
if (newPlanId === closure_1_8.PREMIUM_MONTH_TIER_2) {
const obj3 = { message: "Unexpected plan switch", extraSentryInformation: obj };
const checkoutError1 = new CheckoutError.CheckoutError(obj3);
throw checkoutError1;
}
}
const index = arr.indexOf(currentSubscriptionPlanIdForGroup);
let flag = index < arr.indexOf(newPlanId);
}
} else {
flag = true;
}
return !flag;
};
export const getOrFetchSubscriptionPlan = function getOrFetchSubscriptionPlan(subscriptionPlanId, arg1) {
value = SubscriptionPlanStore.get(subscriptionPlanId);
if (null == value) {
const _HermesInternal = HermesInternal;
_modDef38(null != dependencyMap[subscriptionPlanId], "Missing hardcoded subscriptionPlan: " + subscriptionPlanId);
const tmp12 = require;
const tmp9 = null != dependencyMap[subscriptionPlanId];
const result = PremiumUtils.castPremiumSubscriptionAsSkuId(tmp5.skuId);
if (!SubscriptionPlanStore.isFetchingForSKU(result)) {
const subscriptionPlansForSKU = tmp12(7501).fetchSubscriptionPlansForSKU(result, arg1);
const tmp12Result = tmp12(7501);
}
}
return value;
};
export const useGetOrFetchSubscriptionPlan = ReactCompilerGating.isReactCompilerEnabled() ? ((arg0, arg1) => {
_require = arg0;
closure_1 = arg1;
const cResult = require("c").c(9);
if (cResult[0] === Symbol.for("react.memo_cache_sentinel")) {
let items = [SubscriptionPlanStore];
cResult[0] = items;
let first = items;
} else {
first = cResult[0];
}
if (cResult[1] !== arg0) {
const fn = function l() {
value = null;
if (null != closure_0) {
value = SubscriptionPlanStore.get(tmp);
}
const items = [value, ];
let isFetchingForSKUResult = null != value;
if (isFetchingForSKUResult) {
isFetchingForSKUResult = SubscriptionPlanStore.isFetchingForSKU(value.skuId);
}
items[1] = isFetchingForSKUResult;
return items;
};
cResult[1] = arg0;
cResult[2] = fn;
let tmp6 = fn;
} else {
tmp6 = cResult[2];
}
let obj = require("c");
const tmp7 = _slicedToArray(require("initialize").useStateFromStoresArray(first, tmp6), 2);
first1 = tmp7[0];
_slicedToArray = tmp9;
if (cResult[3] === arg1) {
if (cResult[4] === tmp9) {
if (cResult[5] === arg0) {
if (cResult[6] === first1) {
let tmp10 = cResult[7];
let tmp11 = cResult[8];
}
const effect = noop.useEffect(tmp10, tmp11);
return first1;
}
}
}
const fn2 = function f() {
if (null == first1) {
if (null != closure_0) {
if (!closure_3) {
const _HermesInternal = HermesInternal;
_modDef38(null != dependencyMap[tmp12], "Missing hardcoded subscriptionPlan: " + tmp12);
const tmp6 = null != dependencyMap[tmp12];
const obj = SubscriptionPlanActionCreators;
const subscriptionPlansForSKU = obj.fetchSubscriptionPlansForSKU(PremiumUtils.castPremiumSubscriptionAsSkuId(tmp2.skuId), closure_1);
}
}
}
};
const items1 = [first1, arg0, arg1, tmp7[1]];
cResult[3] = arg1;
cResult[4] = tmp7[1];
cResult[5] = arg0;
cResult[6] = first1;
cResult[7] = fn2;
cResult[8] = items1;
tmp11 = items1;
tmp10 = fn2;
}) : ((arg0, arg1) => {
_require = arg0;
closure_1 = arg1;
let items = [SubscriptionPlanStore];
const tmp = _slicedToArray(require("initialize").useStateFromStoresArray(items, () => {
value = null;
if (null != closure_0) {
value = SubscriptionPlanStore.get(tmp);
}
const items = [value, ];
let isFetchingForSKUResult = null != value;
if (isFetchingForSKUResult) {
isFetchingForSKUResult = SubscriptionPlanStore.isFetchingForSKU(value.skuId);
}
items[1] = isFetchingForSKUResult;
return items;
}), 2);
first = tmp[0];
_slicedToArray = tmp3;
const items1 = [first, arg0, arg1, tmp[1]];
const effect = noop.useEffect(() => {
if (null == first) {
if (null != closure_0) {
if (!closure_3) {
const _HermesInternal = HermesInternal;
_modDef38(null != dependencyMap[tmp12], "Missing hardcoded subscriptionPlan: " + tmp12);
const tmp6 = null != dependencyMap[tmp12];
const obj = SubscriptionPlanActionCreators;
const subscriptionPlansForSKU = obj.fetchSubscriptionPlansForSKU(PremiumUtils.castPremiumSubscriptionAsSkuId(tmp2.skuId), closure_1);
}
}
}
}, items1);
return first;
});
export const getSubscriptionPauseDurations = function getSubscriptionPauseDurations(status) {
const keys = Object.keys(PauseDuration.PauseDuration);
const found = keys.filter((item) => isNaN(Number(item)));
if (status.status !== constants.PAUSED) {
const obj3 = { durations: found, currentDaysPaused: 0 };
return obj3;
} else if (null != status.pauseEndsAt) {
const tmp6 = _modDef4352(status.currentPeriodStart);
const _Math = Math;
const rounded = Math.round(_modDef4352(status.pauseEndsAt).diff(tmp6, "days", true));
const items = [];
for (const item10042 of found) {
let tmp10 = item10042;
if (PauseDuration.PauseDuration[item10042] > rounded) {
let arr = items.push(tmp10);
}
continue;
}
const obj4 = { durations: items, currentDaysPaused: rounded };
return obj4;
} else {
const obj = { durations: [], currentDaysPaused: 0 };
return obj;
}
};
export const didBeginPurchaseFlowOnFractionalPremium = function didBeginPurchaseFlowOnFractionalPremium(isSameOrAfter) {
let isMomentResult = null != isSameOrAfter;
if (isMomentResult) {
isMomentResult = _modDef4352.isMoment(isSameOrAfter);
}
if (isMomentResult) {
isMomentResult = isSameOrAfter.isSameOrAfter(_modDef4352());
}
return isMomentResult;
};