/* Metro module 4229; source: utils/StripeUtils.tsx; dependencies: [5, 57, 1949, 661, 3, 4230, 507, 566, 2] */ import Module00005 from '../by-id/module-00005.js'; /* Metro dependency 5 */ import Module00057 from '../by-id/module-00057.js'; /* Metro dependency 57 */ import LocaleStore from '../modules/user_settings/LocaleStore.tsx'; /* Metro dependency 1949 */ import * as FileImportTrackerModule from '../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as ConstantsModule from '../Constants.tsx'; /* Metro dependency 661 */ function _fun34900(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#34900, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4400:6, offset: 0x010654fc, size: 414 bytes, params: 8, frame: 21 const env0_0 = require; const getStripe2 = getStripe; const getStripeElementLocale2 = getStripeElementLocale; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); let value = ConstantsModule; const env0_6 = value.Endpoints; const env0_7 = value.PaymentSettings; value = importDefault(3) /* metro dependency 3: Logger */; value = new value('StripeUtils'); object = {REQUIRES_PAYMENT_METHOD: 'requires_payment_method', REQUIRES_CONFIRMATION: 'requires_confirmation', REQUIRES_ACTION: 'requires_action', PROCESSING: 'processing', CANCELED: 'canceled', SUCCEEDED: 'succeeded'}; const env0_10 = {'en-US': 'en', 'zh-CN': 'zh', 'sv-SE': 'sv'}; (FileImportTrackerModule).fileFinishedImporting('utils/StripeUtils.tsx'); exports.validateExpiry = validateExpiry; exports.getStripe = getStripe2; exports.getStripeClientMode = getStripeClientMode; exports.parseStripePaymentMethod = parseStripePaymentMethod; exports.parseBillingAddressInfoToStripeBillingDetails = function(a0) { return {name: a0.name, address: {line1: a0.line1, line2: a0.line2, city: a0.city, state: a0.state, postal_code: a0.postalCode, country: a0.country}}; }; exports.authenticatePaymentIntentForPaymentId = function() { return _authenticatePaymentIntentForPaymentId.apply(this, arguments); }; exports.getStripeElementLocale = getStripeElementLocale2; exports.useStripeLocale = function() { return require(dependencyMap[7]).useStateFromStores([LocaleStore], _fun34916); }; function getStripe() { // fn#34901, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4400:443, offset: 0x0106569a, size: 105 bytes, params: 1, frame: 12 var r0; var moduleValue; var value; if (env0_2 != null) { r0 = global.Promise.resolve(env0_2); } else { moduleValue = require(4230) /* metro dependency 4230 */; value = moduleValue.loadStripe(PaymentSettings.STRIPE.KEY); value = value.then(function(a0) { env1_2 = a0; return a0; }); r0 = value; } return r0; } function _authenticatePaymentIntentForPaymentId() { // fn#34903, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4400:550, offset: 0x0106570f, size: 48 bytes, params: 1, frame: 14 return Module00005(_fun34905).apply(this, arguments); function* _fun34905(a0) { // fn#34905, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4400:649, offset: 0x01065748, size: 578 bytes, params: 2, frame: 25 var r13; var r12; var r6; var binding; var binding2; var property; var value3; var HTTP; var get; var object; var BILLING_STRIPE_PAYMENT_INTENTS; var value4; var value5; var value6; var value7; var body; var stripe_payment_intent_client_secret; var value8; var value9; var value10; var value11; var retrievePaymentIntent; var value12; var value13; var value14; var error; var paymentIntent; var value15; var value16; var status; var REQUIRES_PAYMENT_METHOD; var last_payment_error; var value18; var payment_method; var value19; var id; var value20; var REQUIRES_CONFIRMATION; var value21; var REQUIRES_ACTION; var value22; var SUCCEEDED; var value23; var PROCESSING; var value24; var concat; var confirmCardPayment; var value25; var message; if (false) { return undefined; } value = environment.__proto__.__proto__; try { binding = env2_0; } catch (error) { message = error.message; return {error: message}; } try { binding2 = env2_1; } catch (error) { message = error.message; return {error: message}; } try { property = binding2[6]; } catch (error) { message = error.message; return {error: message}; } try { value3 = binding(property); } catch (error) { message = error.message; return {error: message}; } try { HTTP = value3.HTTP; } catch (error) { message = error.message; return {error: message}; } try { get = HTTP.get; } catch (error) { message = error.message; return {error: message}; } try { object = {'url': null, 'oldFormErrors': true, 'rejectWithError': false}; } catch (error) { message = error.message; return {error: message}; } try { binding = env2_6; } catch (error) { message = error.message; return {error: message}; } try { BILLING_STRIPE_PAYMENT_INTENTS = binding.BILLING_STRIPE_PAYMENT_INTENTS; } catch (error) { message = error.message; return {error: message}; } try { value4 = Reflect.apply(BILLING_STRIPE_PAYMENT_INTENTS, binding, [a0]); } catch (error) { message = error.message; return {error: message}; } try { object.url = value4; } catch (error) { message = error.message; return {error: message}; } try { value5 = Reflect.apply(get, HTTP, [object]); } catch (error) { message = error.message; return {error: message}; } yield value5; try { value6 = undefined; value7 = false; } catch (error) { message = error.message; return {error: message}; } if (value7) { return value6; } try { body = value6.body; } catch (error) { message = error.message; return {error: message}; } try { stripe_payment_intent_client_secret = body.stripe_payment_intent_client_secret; } catch (error) { message = error.message; return {error: message}; } try { binding = env2_11; } catch (error) { message = error.message; return {error: message}; } try { value8 = binding(); } catch (error) { message = error.message; return {error: message}; } yield value8; try { value9 = undefined; value10 = false; } catch (error) { message = error.message; return {error: message}; } if (value10) { return value9; } try { value11 = value9 == null; } catch (error) { message = error.message; return {error: message}; } if (value11) { try { object = {}; } catch (error) { message = error.message; return {error: message}; } try { object.error = 'unable to load stripe'; } catch (error) { message = error.message; return {error: message}; } } else { try { retrievePaymentIntent = value9.retrievePaymentIntent; } catch (error) { message = error.message; return {error: message}; } try { value12 = Reflect.apply(retrievePaymentIntent, value9, [stripe_payment_intent_client_secret]); } catch (error) { message = error.message; return {error: message}; } yield value12; try { value13 = undefined; value14 = false; } catch (error) { message = error.message; return {error: message}; } if (value14) { return value13; } try { error = value13.error; } catch (error) { message = error.message; return {error: message}; } try { paymentIntent = value13.paymentIntent; } catch (error) { message = error.message; return {error: message}; } try { value15 = error != null; } catch (error) { message = error.message; return {error: message}; } if (value15) { try { object = {}; } catch (error) { message = error.message; return {error: message}; } try { message = error.message; } catch (error) { message = error.message; return {error: message}; } try { object.error = message; } catch (error) { message = error.message; return {error: message}; } return object; } try { value16 = paymentIntent == null; } catch (error) { message = error.message; return {error: message}; } if (value16) { try { object = {}; } catch (error) { message = error.message; return {error: message}; } try { object.error = 'payment intent does not exist'; } catch (error) { message = error.message; return {error: message}; } return object; } try { object = {}; } catch (error) { message = error.message; return {error: message}; } try { status = paymentIntent.status; } catch (error) { message = error.message; return {error: message}; } try { binding = env2_9; } catch (error) { message = error.message; return {error: message}; } try { REQUIRES_PAYMENT_METHOD = binding.REQUIRES_PAYMENT_METHOD; } catch (error) { message = error.message; return {error: message}; } var value17 = status === REQUIRES_PAYMENT_METHOD; if (value17) { try { last_payment_error = paymentIntent.last_payment_error; } catch (error) { message = error.message; return {error: message}; } try { value18 = last_payment_error != null; } catch (error) { message = error.message; return {error: message}; } r13 = value18; } else { r13 = value17; } if (r13) { try { last_payment_error = paymentIntent.last_payment_error; } catch (error) { message = error.message; return {error: message}; } try { payment_method = last_payment_error.payment_method; } catch (error) { message = error.message; return {error: message}; } try { value19 = payment_method != null; } catch (error) { message = error.message; return {error: message}; } r12 = value19; } else { r12 = r13; } if (r12) { try { last_payment_error = paymentIntent.last_payment_error; } catch (error) { message = error.message; return {error: message}; } try { payment_method = last_payment_error.payment_method; } catch (error) { message = error.message; return {error: message}; } try { id = payment_method.id; } catch (error) { message = error.message; return {error: message}; } try { object.payment_method = id; } catch (error) { message = error.message; return {error: message}; } } try { status = paymentIntent.status; } catch (error) { message = error.message; return {error: message}; } try { binding = env2_9; } catch (error) { message = error.message; return {error: message}; } try { REQUIRES_PAYMENT_METHOD = binding.REQUIRES_PAYMENT_METHOD; } catch (error) { message = error.message; return {error: message}; } try { value20 = REQUIRES_PAYMENT_METHOD === status; } catch (error) { message = error.message; return {error: message}; } if (value20) { try { confirmCardPayment = value9.confirmCardPayment; } catch (error) { message = error.message; return {error: message}; } try { value = Reflect.apply(confirmCardPayment, value9, [stripe_payment_intent_client_secret, object]); } catch (error) { message = error.message; return {error: message}; } yield value; try { value = undefined; value25 = false; } catch (error) { message = error.message; return {error: message}; } if (value25) { return value; } try { error = value.error; } catch (error) { message = error.message; return {error: message}; } try { value = error != null; } catch (error) { message = error.message; return {error: message}; } if (value) { try { object = {}; } catch (error) { message = error.message; return {error: message}; } try { message = error.message; } catch (error) { message = error.message; return {error: message}; } try { object.error = message; } catch (error) { message = error.message; return {error: message}; } r6 = object; } else { try { object = {}; } catch (error) { message = error.message; return {error: message}; } r6 = object; } return r6; } try { binding = env2_9; } catch (error) { message = error.message; return {error: message}; } try { REQUIRES_CONFIRMATION = binding.REQUIRES_CONFIRMATION; } catch (error) { message = error.message; return {error: message}; } try { value21 = REQUIRES_CONFIRMATION === status; } catch (error) { message = error.message; return {error: message}; } if (value21) { try { confirmCardPayment = value9.confirmCardPayment; } catch (error) { message = error.message; return {error: message}; } try { value = Reflect.apply(confirmCardPayment, value9, [stripe_payment_intent_client_secret, object]); } catch (error) { message = error.message; return {error: message}; } yield value; try { value = undefined; value25 = false; } catch (error) { message = error.message; return {error: message}; } if (value25) { return value; } try { error = value.error; } catch (error) { message = error.message; return {error: message}; } try { value = error != null; } catch (error) { message = error.message; return {error: message}; } if (value) { try { object = {}; } catch (error) { message = error.message; return {error: message}; } try { message = error.message; } catch (error) { message = error.message; return {error: message}; } try { object.error = message; } catch (error) { message = error.message; return {error: message}; } r6 = object; } else { try { object = {}; } catch (error) { message = error.message; return {error: message}; } r6 = object; } return r6; } try { binding = env2_9; } catch (error) { message = error.message; return {error: message}; } try { REQUIRES_ACTION = binding.REQUIRES_ACTION; } catch (error) { message = error.message; return {error: message}; } try { value22 = REQUIRES_ACTION === status; } catch (error) { message = error.message; return {error: message}; } if (value22) { try { confirmCardPayment = value9.confirmCardPayment; } catch (error) { message = error.message; return {error: message}; } try { value = Reflect.apply(confirmCardPayment, value9, [stripe_payment_intent_client_secret, object]); } catch (error) { message = error.message; return {error: message}; } yield value; try { value = undefined; value25 = false; } catch (error) { message = error.message; return {error: message}; } if (value25) { return value; } try { error = value.error; } catch (error) { message = error.message; return {error: message}; } try { value = error != null; } catch (error) { message = error.message; return {error: message}; } if (value) { try { object = {}; } catch (error) { message = error.message; return {error: message}; } try { message = error.message; } catch (error) { message = error.message; return {error: message}; } try { object.error = message; } catch (error) { message = error.message; return {error: message}; } r6 = object; } else { try { object = {}; } catch (error) { message = error.message; return {error: message}; } r6 = object; } return r6; } try { binding = env2_9; } catch (error) { message = error.message; return {error: message}; } try { SUCCEEDED = binding.SUCCEEDED; } catch (error) { message = error.message; return {error: message}; } try { value23 = SUCCEEDED === status; } catch (error) { message = error.message; return {error: message}; } if (value23) { return {}; } try { binding = env2_9; } catch (error) { message = error.message; return {error: message}; } try { PROCESSING = binding.PROCESSING; } catch (error) { message = error.message; return {error: message}; } try { value24 = PROCESSING === status; } catch (error) { message = error.message; return {error: message}; } if (value24) { return {}; } try { binding = env2_9; } catch (error) { message = error.message; return {error: message}; } try { binding.CANCELED; } catch (error) { message = error.message; return {error: message}; } try { object = {}; } catch (error) { message = error.message; return {error: message}; } try { status = paymentIntent.status; } catch (error) { message = error.message; return {error: message}; } try { } catch (error) { message = error.message; return {error: message}; } try { } catch (error) { message = error.message; return {error: message}; } try { value = Reflect.apply(concat, 'Invalid Payment Intent status: ', [status]); } catch (error) { message = error.message; return {error: message}; } try { object.error = value; } catch (error) { message = error.message; return {error: message}; } } return object; } } function getStripeElementLocale(a0) { // fn#34906, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4400:1638, offset: 0x0106598a, size: 25 bytes, params: 2, frame: 3 const value = a0; return env0_10[value] ?? value; } function validateExpiry(a0) { // fn#34907, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4400:1778, offset: 0x010659a3, size: 176 bytes, params: 2, frame: 15 var environment; var parseExpString2; var value; var value2; var binding; var property; var property2; var error; try { parseExpString2 = parseExpString; value = parseExpString2(a0); value2 = environment; binding = Module00057; value = binding(value, 2); property = value[0]; property2 = value[1]; } catch (error) { return false; } let Date = global.Date; let date = new Date(); Date = global.Date; date = new Date(); let setMonth = date.setMonth; let getMonth = date.getMonth; Reflect.apply(setMonth, date, [Reflect.apply(getMonth, date, []) - 1]); setMonth = date.setMonth; getMonth = date.getMonth; Reflect.apply(setMonth, date, [Reflect.apply(getMonth, date, []) + 1, 1]); return date > date; function parseExpString(a0) { // fn#34908, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4400:1823, owner: validateExpiry.parseExpString, offset: 0x01065a53, size: 241 bytes, params: 2, frame: 17 var environment; const env0_0 = a0; const throwErr2 = throwErr; let value = a0.split(RegExp('[.\\-/\\s]+', 'g')); if (value.length !== 2) { throwErr2(); } value = value.map(_fun34910); const r5 = value[0] > 12 ? [value[1], value[0]] : [value[0], value[1]]; value = environment.__proto__; value = env1_4(r5, 2); const property = value[0]; const property2 = value[1]; if (property > 12) { throwErr2('Month must be a number 1-12, not ' + property + '.'); } return [property, property2 < 100 ? property2 + 2000 : property2]; function throwErr(a0) { // fn#34909, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4400:1850, owner: validateExpiry.parseExpString.throwErr, offset: 0x01065b44, size: 60 bytes, params: 2, frame: 15 return 'You passed an invalid expiration date ' + env0_0 + (a0 ?? '') + 'Please pass a string containing a numeric month and year such as `01-17` or `2015 / 05`'; } function _fun34910(a0) { // fn#34910, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4400:2094, offset: 0x01065b80, size: 123 bytes, params: 2, frame: 17 const int = global.parseInt(a0); if (global.isNaN(int)) { throwErr('' + env0_1 + ' is not a number.'); } if (int < 1) { throwErr('' + int + ' is less than one.'); } return int; } } } function getStripeClientMode() { // fn#34911, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4400:2545, offset: 0x01065bfb, size: 197 bytes, params: 1, frame: 16 var r2; var r0; var binding; const STRIPE = PaymentSettings.STRIPE; const KEY = STRIPE.KEY; if (KEY == null) { binding = env0_8; binding.warn('getStripeClientMode() called before PaymentSettings.STRIPE.KEY initialized: ', PaymentSettings.STRIPE.KEY); r0 = 'unknown'; } else if (PaymentSettings.STRIPE.KEY.startsWith('pk_live')) { r0 = 'live'; } else { if (PaymentSettings.STRIPE.KEY.startsWith('pk_test')) { r2 = 'test'; } else { binding = env0_8; binding.warn('Unexpected value for Stripe public key: ', PaymentSettings.STRIPE.KEY); r2 = 'unknown'; } r0 = r2; } return r0; } function useStripeLocale() { // fn#34915, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4400:3728, offset: 0x01065de8, size: 57 bytes, params: 1, frame: 13 return (require(566) /* metro dependency 566: flux */).useStateFromStores([LocaleStore], function() { return getStripeElementLocale(LocaleStore.locale); }); function _fun34916() { // fn#34916, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4400:3794, offset: 0x01065e21, size: 26 bytes, params: 1, frame: 11 return getStripeElementLocale(LocaleStore.locale); } } } function parseStripePaymentMethod({billing_details, id}) { // fn#34912, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4400:2903, offset: 0x01065cc0, size: 209 bytes, params: 2, frame: 8 const r3 = billing_details.address ?? ({}); const name = billing_details.name; const value = ''; return {token: id, billingAddressInfo: {name: name ?? value, line1: r3.line1 ?? value, line2: r3.line2 ?? value, city: r3.city ?? value, state: r3.state ?? value, country: r3.country ?? value, postalCode: r3.postal_code ?? value}}; } global.__d(_fun34900, 4229, [5, 57, 1949, 661, 3, 4230, 507, 566, 2]) /* metro module 4229, dependencies: [5, 57, 1949, 661, 3, 4230, 507, 566, 2] */;