judokit-react-native 4.1.3 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/JudoKit-ReactNative.podspec +42 -0
  2. package/LICENSE +1 -2
  3. package/README.md +106 -119
  4. package/android/build.gradle +65 -202
  5. package/android/gradle.properties +6 -1
  6. package/android/src/main/AndroidManifest.xml +2 -2
  7. package/android/src/main/AndroidManifestNew.xml +2 -0
  8. package/android/src/main/java/com/judopay/judokit/reactnative/Extensions.kt +382 -0
  9. package/android/src/main/java/com/judopay/judokit/reactnative/Helpers.kt +653 -0
  10. package/android/src/main/java/com/judopay/judokit/reactnative/JudoActivityEventListener.kt +49 -0
  11. package/android/src/main/java/com/judopay/judokit/reactnative/JudoKitReactNativeModule.kt +238 -0
  12. package/android/src/main/java/com/judopay/judokit/reactnative/JudoKitReactNativePackage.kt +16 -0
  13. package/ios/{Classes/Extensions → Extensions}/NSDictionary+JudoConvert.h +1 -1
  14. package/ios/{Classes/Extensions → Extensions}/NSDictionary+JudoConvert.m +2 -2
  15. package/ios/{Classes/Extensions → Extensions}/NSException+JudoValidationExceptions.h +1 -1
  16. package/ios/{Classes/Extensions → Extensions}/NSException+JudoValidationExceptions.m +1 -1
  17. package/ios/{Classes/Extensions → Extensions}/UIColor+RNAdditions.h +1 -1
  18. package/ios/{Classes/Extensions → Extensions}/UIColor+RNAdditions.m +3 -3
  19. package/ios/{Classes/RNJudo.h → JudoKitReactNative.h} +12 -6
  20. package/ios/{Classes/RNJudo.m → JudoKitReactNative.mm} +83 -81
  21. package/ios/{Classes/RNTypes.h → RNTypes.h} +8 -2
  22. package/ios/{Classes/Wrappers → Wrappers}/RNApplePayWrappers.h +1 -1
  23. package/ios/{Classes/Wrappers → Wrappers}/RNApplePayWrappers.m +105 -4
  24. package/ios/{Classes/Wrappers → Wrappers}/RNWrappers.h +14 -14
  25. package/ios/{Classes/Wrappers → Wrappers}/RNWrappers.m +46 -25
  26. package/lib/commonjs/index.js +268 -0
  27. package/lib/commonjs/index.js.map +1 -0
  28. package/lib/commonjs/judo-kit/index.js +212 -0
  29. package/lib/commonjs/judo-kit/index.js.map +1 -0
  30. package/lib/commonjs/types/index.js +267 -0
  31. package/lib/commonjs/types/index.js.map +1 -0
  32. package/lib/commonjs/types/judo-apple-pay-configuration.js +49 -0
  33. package/lib/commonjs/types/judo-apple-pay-configuration.js.map +1 -0
  34. package/lib/commonjs/types/judo-configuration.js +71 -0
  35. package/lib/commonjs/types/judo-configuration.js.map +1 -0
  36. package/lib/commonjs/types/judo-google-pay-configuration.js +28 -0
  37. package/lib/commonjs/types/judo-google-pay-configuration.js.map +1 -0
  38. package/lib/module/index.js +6 -0
  39. package/lib/module/index.js.map +1 -0
  40. package/lib/module/judo-kit/index.js +205 -0
  41. package/lib/module/judo-kit/index.js.map +1 -0
  42. package/lib/module/types/index.js +8 -0
  43. package/lib/module/types/index.js.map +1 -0
  44. package/lib/module/types/judo-apple-pay-configuration.js +43 -0
  45. package/lib/module/types/judo-apple-pay-configuration.js.map +1 -0
  46. package/lib/module/types/judo-configuration.js +65 -0
  47. package/lib/module/types/judo-configuration.js.map +1 -0
  48. package/lib/module/types/judo-google-pay-configuration.js +22 -0
  49. package/lib/module/types/judo-google-pay-configuration.js.map +1 -0
  50. package/lib/typescript/src/index.d.ts +4 -0
  51. package/lib/typescript/src/index.d.ts.map +1 -0
  52. package/lib/typescript/src/judo-kit/index.d.ts +86 -0
  53. package/lib/typescript/src/judo-kit/index.d.ts.map +1 -0
  54. package/lib/typescript/src/types/index.d.ts +4 -0
  55. package/lib/typescript/src/types/index.d.ts.map +1 -0
  56. package/lib/typescript/src/types/judo-apple-pay-configuration.d.ts +75 -0
  57. package/lib/typescript/src/types/judo-apple-pay-configuration.d.ts.map +1 -0
  58. package/lib/typescript/src/types/judo-configuration.d.ts +236 -0
  59. package/lib/typescript/src/types/judo-configuration.d.ts.map +1 -0
  60. package/lib/typescript/src/types/judo-google-pay-configuration.d.ts +42 -0
  61. package/lib/typescript/src/types/judo-google-pay-configuration.d.ts.map +1 -0
  62. package/package.json +158 -79
  63. package/src/index.tsx +50 -0
  64. package/src/judo-kit/index.ts +262 -0
  65. package/src/types/index.ts +53 -0
  66. package/src/types/judo-apple-pay-configuration.ts +85 -0
  67. package/src/types/judo-configuration.ts +263 -0
  68. package/src/types/judo-google-pay-configuration.ts +47 -0
  69. package/JudoPay.tsx +0 -334
  70. package/RNJudopay.podspec +0 -24
  71. package/android/src/main/java/com/reactlibrary/Extensions.kt +0 -372
  72. package/android/src/main/java/com/reactlibrary/Helpers.kt +0 -606
  73. package/android/src/main/java/com/reactlibrary/JudoReactNativeActivityEventListener.kt +0 -48
  74. package/android/src/main/java/com/reactlibrary/JudoReactNativeModule.kt +0 -257
  75. package/android/src/main/java/com/reactlibrary/JudoReactNativePBBAManager.kt +0 -52
  76. package/android/src/main/java/com/reactlibrary/JudoReactNativePackage.kt +0 -14
  77. package/components/JudoPBBAButton.ts +0 -2
  78. package/ios/.xcode.env +0 -11
  79. package/ios/Classes/Views/RNPBBAButtonManager.m +0 -42
  80. package/ios/Classes/Wrappers/RNPBBAWrappers.h +0 -40
  81. package/ios/Classes/Wrappers/RNPBBAWrappers.m +0 -57
  82. package/ios/Podfile +0 -44
  83. package/ios/Podfile.lock +0 -572
  84. package/ios/RNJudo.xcodeproj/project.pbxproj +0 -703
  85. package/ios/RNJudo.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  86. package/ios/RNJudo.xcodeproj/xcshareddata/xcschemes/RNJudo.xcscheme +0 -97
  87. package/ios/RNJudo.xcworkspace/contents.xcworkspacedata +0 -10
  88. package/ios/RNJudoTests/Info.plist +0 -22
  89. package/ios/RNJudoTests/MockConfiguration.json +0 -114
  90. package/ios/RNJudoTests/NSDictionaryConvertTests.m +0 -475
  91. package/ios/RNJudoTests/RNApplePayWrappersTests.m +0 -770
  92. package/ios/RNJudoTests/RNJudoTests.m +0 -37
  93. package/ios/RNJudoTests/RNMocks.h +0 -54
  94. package/ios/RNJudoTests/RNMocks.m +0 -55
  95. package/ios/RNJudoTests/RNPBBAWrappersTests.m +0 -121
  96. package/ios/RNJudoTests/RNThemeTests.m +0 -576
  97. package/ios/RNJudoTests/RNWrappersTests.m +0 -947
  98. package/types/JudoApplePayTypes.tsx +0 -59
  99. package/types/JudoGooglePayTypes.tsx +0 -47
  100. package/types/JudoPBBATypes.tsx +0 -7
  101. package/types/JudoTypes.tsx +0 -251
@@ -0,0 +1,382 @@
1
+ package com.judopay.judokit.reactnative
2
+
3
+ import android.content.Context
4
+ import android.content.Intent
5
+ import com.facebook.react.bridge.ReadableArray
6
+ import com.facebook.react.bridge.ReadableMap
7
+ import com.judopay.judokit.android.JUDO_OPTIONS
8
+ import com.judopay.judokit.android.Judo
9
+ import com.judopay.judokit.android.JudoActivity
10
+ import com.judopay.judokit.android.model.CardNetwork
11
+
12
+ const val CARD_SCHEME_VISA = "visa"
13
+ const val CARD_SCHEME_MASTERCARD = "mastercard"
14
+ const val CARD_SCHEME_AMEX = "amex"
15
+
16
+ internal fun ReadableMap?.hasKey(key: String): Boolean = this?.hasKey(key) ?: false
17
+
18
+ internal fun ReadableMap?.getOptionalString(key: String): String? =
19
+ if (hasKey(key)) {
20
+ this?.getString(key)
21
+ } else {
22
+ null
23
+ }
24
+
25
+ internal fun ReadableMap?.getOptionalBoolean(key: String): Boolean? =
26
+ if (hasKey(key)) {
27
+ this?.getBoolean(key)
28
+ } else {
29
+ null
30
+ }
31
+
32
+ internal fun ReadableMap?.getOptionalInt(key: String): Int? =
33
+ if (hasKey(key)) {
34
+ this?.getInt(key)
35
+ } else {
36
+ null
37
+ }
38
+
39
+ internal fun ReadableMap?.getOptionalDouble(key: String): Double? =
40
+ if (hasKey(key)) {
41
+ this?.getDouble(key)
42
+ } else {
43
+ null
44
+ }
45
+
46
+ internal fun ReadableMap?.getOptionalMap(key: String): ReadableMap? =
47
+ if (hasKey(key)) {
48
+ this?.getMap(key)
49
+ } else {
50
+ null
51
+ }
52
+
53
+ internal fun ReadableMap?.getOptionalArray(key: String): ReadableArray? =
54
+ if (hasKey(key)) {
55
+ this?.getArray(key)
56
+ } else {
57
+ null
58
+ }
59
+
60
+ internal val ReadableMap.configuration: ReadableMap?
61
+ get() = getOptionalMap("configuration")
62
+
63
+ internal val ReadableMap.transactionMode: Int?
64
+ get() = getOptionalInt("transactionMode")
65
+
66
+ internal val ReadableMap.authorization: ReadableMap?
67
+ get() = getOptionalMap("authorization")
68
+
69
+ internal val ReadableMap.isSandboxed: Boolean?
70
+ get() = getOptionalBoolean("sandboxed")
71
+
72
+ internal val ReadableMap.packageVersion: String?
73
+ get() = getOptionalString("packageVersion")
74
+
75
+ internal val ReadableMap.cardToken: String?
76
+ get() = getOptionalString("cardToken")
77
+
78
+ internal val ReadableMap.securityCode: String?
79
+ get() = getOptionalString("securityCode")
80
+
81
+ internal val ReadableMap.cardholderName: String?
82
+ get() = getOptionalString("cardholderName")
83
+
84
+ internal val ReadableMap.cardType: CardNetwork
85
+ get() {
86
+ val cardScheme =
87
+ if (hasKey("cardScheme")) {
88
+ getString("cardScheme")?.lowercase() ?: ""
89
+ } else {
90
+ ""
91
+ }
92
+
93
+ return when {
94
+ cardScheme.contains(CARD_SCHEME_VISA) -> CardNetwork.VISA
95
+ cardScheme.contains(CARD_SCHEME_MASTERCARD) -> CardNetwork.MASTERCARD
96
+ cardScheme.contains(CARD_SCHEME_AMEX) -> CardNetwork.AMEX
97
+ else -> CardNetwork.OTHER
98
+ }
99
+ }
100
+
101
+ internal val ReadableMap.judoId: String?
102
+ get() = configuration?.getOptionalString("judoId")
103
+
104
+ internal val ReadableMap.receiptId: String?
105
+ get() = getOptionalString("receiptId")
106
+
107
+ internal val ReadableMap.token: String?
108
+ get() = authorization?.getOptionalString("token")
109
+
110
+ internal val ReadableMap.secret: String?
111
+ get() = authorization?.getOptionalString("secret")
112
+
113
+ internal val ReadableMap.paymentSession: String?
114
+ get() = authorization?.getOptionalString("paymentSession")
115
+
116
+ internal val ReadableMap.amount: ReadableMap?
117
+ get() = configuration?.getOptionalMap("amount")
118
+
119
+ internal val ReadableMap.amountValue: String?
120
+ get() = amount?.getOptionalString("value")
121
+
122
+ internal val ReadableMap.currencyValue: String?
123
+ get() = amount?.getOptionalString("currency")
124
+
125
+ internal val ReadableMap.reference: ReadableMap?
126
+ get() = configuration?.getOptionalMap("reference")
127
+
128
+ internal val ReadableMap.consumerReference: String?
129
+ get() = reference?.getOptionalString("consumerReference")
130
+
131
+ internal val ReadableMap.paymentReference: String?
132
+ get() = reference?.getOptionalString("paymentReference")
133
+
134
+ internal val ReadableMap.isInitialRecurringPayment: Boolean?
135
+ get() = configuration?.getOptionalBoolean("isInitialRecurringPayment")
136
+
137
+ internal val ReadableMap.isDelayedAuthorisation: Boolean?
138
+ get() = configuration?.getOptionalBoolean("isDelayedAuthorisation")
139
+
140
+ internal val ReadableMap.networkTimeout: ReadableMap?
141
+ get() = configuration?.getOptionalMap("networkTimeout")
142
+
143
+ internal val ReadableMap.cardAddress: ReadableMap?
144
+ get() = configuration?.getOptionalMap("cardAddress")
145
+
146
+ internal val ReadableMap.cardAddressLine1: String?
147
+ get() = cardAddress?.getOptionalString("line1")
148
+
149
+ internal val ReadableMap.cardAddressLine2: String?
150
+ get() = cardAddress?.getOptionalString("line2")
151
+
152
+ internal val ReadableMap.cardAddressLine3: String?
153
+ get() = cardAddress?.getOptionalString("line3")
154
+
155
+ internal val ReadableMap.cardAddressPostCode: String?
156
+ get() = cardAddress?.getOptionalString("postCode")
157
+
158
+ internal val ReadableMap.cardAddressTown: String?
159
+ get() = cardAddress?.getOptionalString("town")
160
+
161
+ internal val ReadableMap.cardAddressCountryCode: Int?
162
+ get() = cardAddress?.getOptionalInt("countryCode")
163
+
164
+ internal val ReadableMap.cardAddressState: String?
165
+ get() = cardAddress?.getOptionalString("state")
166
+
167
+ internal val ReadableMap.networkConnectTimeout: Long?
168
+ get() = networkTimeout?.getOptionalDouble("connectTimeout")?.toLong()
169
+
170
+ internal val ReadableMap.networkReadTimeout: Long?
171
+ get() = networkTimeout?.getOptionalDouble("readTimeout")?.toLong()
172
+
173
+ internal val ReadableMap.networkWriteTimeout: Long?
174
+ get() = networkTimeout?.getOptionalDouble("writeTimeout")?.toLong()
175
+
176
+ internal val ReadableMap.challengeRequestIndicator: String?
177
+ get() = configuration?.getOptionalString("challengeRequestIndicator")
178
+
179
+ internal val ReadableMap.scaExemption: String?
180
+ get() = configuration?.getOptionalString("scaExemption")
181
+
182
+ internal val ReadableMap.mobileNumber: String?
183
+ get() = configuration?.getOptionalString("mobileNumber")
184
+
185
+ internal val ReadableMap.phoneCountryCode: String?
186
+ get() = configuration?.getOptionalString("phoneCountryCode")
187
+
188
+ internal val ReadableMap.emailAddress: String?
189
+ get() = configuration?.getOptionalString("emailAddress")
190
+
191
+ internal val ReadableMap.threeDSTwoMaxTimeout: Int?
192
+ get() = configuration?.getOptionalInt("threeDSTwoMaxTimeout")
193
+
194
+ internal val ReadableMap.threeDSTwoMessageVersion: String?
195
+ get() = configuration?.getOptionalString("threeDSTwoMessageVersion")
196
+
197
+ internal val ReadableMap.metadata: ReadableMap?
198
+ get() = reference?.getOptionalMap("metadata")
199
+
200
+ internal val ReadableMap.cardNetworkValue: Int?
201
+ get() = configuration?.getOptionalInt("supportedCardNetworks")
202
+
203
+ internal val ReadableMap.paymentMethodValue: Int?
204
+ get() = configuration?.getOptionalInt("paymentMethods")
205
+
206
+ internal val ReadableMap.uiConfiguration: ReadableMap?
207
+ get() = configuration?.getOptionalMap("uiConfiguration")
208
+
209
+ internal val ReadableMap.recommendationConfiguration: ReadableMap?
210
+ get() = configuration?.getOptionalMap("recommendationConfiguration")
211
+
212
+ internal val ReadableMap.threeDSUIConfiguration: ReadableMap?
213
+ get() = uiConfiguration?.getOptionalMap("threeDSUIConfiguration")
214
+
215
+ internal val ReadableMap.threeDSUITextBoxCustomization: ReadableMap?
216
+ get() = threeDSUIConfiguration?.getOptionalMap("textBoxCustomization")
217
+
218
+ internal val ReadableMap.threeDSUIButtonCustomizations: ReadableMap?
219
+ get() = threeDSUIConfiguration?.getOptionalMap("buttonCustomizations")
220
+
221
+ internal val ReadableMap.threeDSUISubmitButtonCustomization: ReadableMap?
222
+ get() = threeDSUIButtonCustomizations?.getOptionalMap("SUBMIT")
223
+
224
+ internal val ReadableMap.threeDSUIContinueButtonCustomization: ReadableMap?
225
+ get() = threeDSUIButtonCustomizations?.getOptionalMap("CONTINUE")
226
+
227
+ internal val ReadableMap.threeDSUINextButtonCustomization: ReadableMap?
228
+ get() = threeDSUIButtonCustomizations?.getOptionalMap("NEXT")
229
+
230
+ internal val ReadableMap.threeDSUICancelButtonCustomization: ReadableMap?
231
+ get() = threeDSUIButtonCustomizations?.getOptionalMap("CANCEL")
232
+
233
+ internal val ReadableMap.threeDSUIResendButtonCustomization: ReadableMap?
234
+ get() = threeDSUIButtonCustomizations?.getOptionalMap("RESEND")
235
+
236
+ internal val ReadableMap.threeDSUIToolbarCustomization: ReadableMap?
237
+ get() = threeDSUIConfiguration?.getOptionalMap("toolbarCustomization")
238
+
239
+ internal val ReadableMap.threeDSUILabelCustomization: ReadableMap?
240
+ get() = threeDSUIConfiguration?.getOptionalMap("labelCustomization")
241
+
242
+ internal val ReadableMap.textFontName: String?
243
+ get() = getOptionalString("textFontName")
244
+
245
+ internal val ReadableMap.textColor: String?
246
+ get() = getOptionalString("textColor")
247
+
248
+ internal val ReadableMap.backgroundColor: String?
249
+ get() = getOptionalString("backgroundColor")
250
+
251
+ internal val ReadableMap.headerText: String?
252
+ get() = getOptionalString("headerText")
253
+
254
+ internal val ReadableMap.buttonText: String?
255
+ get() = getOptionalString("buttonText")
256
+
257
+ internal val ReadableMap.headingTextFontName: String?
258
+ get() = getOptionalString("headingTextFontName")
259
+
260
+ internal val ReadableMap.headingTextColor: String?
261
+ get() = getOptionalString("headingTextColor")
262
+
263
+ internal val ReadableMap.borderColor: String?
264
+ get() = getOptionalString("borderColor")
265
+
266
+ internal val ReadableMap.textFontSize: Int?
267
+ get() = getOptionalInt("textFontSize")
268
+
269
+ internal val ReadableMap.cornerRadius: Int?
270
+ get() = getOptionalInt("cornerRadius")
271
+
272
+ internal val ReadableMap.headingTextFontSize: Int?
273
+ get() = getOptionalInt("headingTextFontSize")
274
+
275
+ internal val ReadableMap.borderWidth: Int?
276
+ get() = getOptionalInt("borderWidth")
277
+
278
+ internal val ReadableMap.isAVSEnabled: Boolean?
279
+ get() = uiConfiguration?.getOptionalBoolean("isAVSEnabled")
280
+
281
+ internal val ReadableMap.shouldPaymentMethodsDisplayAmount: Boolean?
282
+ get() = uiConfiguration?.getOptionalBoolean("shouldPaymentMethodsDisplayAmount")
283
+
284
+ internal val ReadableMap.shouldPaymentButtonDisplayAmount: Boolean?
285
+ get() = uiConfiguration?.getOptionalBoolean("shouldPaymentButtonDisplayAmount")
286
+
287
+ internal val ReadableMap.shouldPaymentMethodsVerifySecurityCode: Boolean?
288
+ get() = uiConfiguration?.getOptionalBoolean("shouldPaymentMethodsVerifySecurityCode")
289
+
290
+ internal val ReadableMap.shouldAskForBillingInformation: Boolean
291
+ get() = uiConfiguration?.getOptionalBoolean("shouldAskForBillingInformation") ?: true
292
+
293
+ internal val ReadableMap.shouldAskForCSC: Boolean
294
+ get() = uiConfiguration?.getOptionalBoolean("shouldAskForCSC") ?: false
295
+
296
+ internal val ReadableMap.shouldAskForCardholderName: Boolean
297
+ get() = uiConfiguration?.getOptionalBoolean("shouldAskForCardholderName") ?: false
298
+
299
+ internal val ReadableMap.recommendationURL: String?
300
+ get() = recommendationConfiguration?.getOptionalString("url")
301
+
302
+ internal val ReadableMap.recommendationRSAPublicKey: String?
303
+ get() = recommendationConfiguration?.getOptionalString("rsaPublicKey")
304
+
305
+ internal val ReadableMap.recommendationTimeout: Int?
306
+ get() = recommendationConfiguration?.getOptionalInt("timeout")
307
+
308
+ internal val ReadableMap.primaryAccountDetails: ReadableMap?
309
+ get() = configuration?.getOptionalMap("primaryAccountDetails")
310
+
311
+ internal val ReadableMap.name: String?
312
+ get() = primaryAccountDetails?.getOptionalString("name")
313
+
314
+ internal val ReadableMap.accountNumber: String?
315
+ get() = primaryAccountDetails?.getOptionalString("accountNumber")
316
+
317
+ internal val ReadableMap.dateOfBirth: String?
318
+ get() = primaryAccountDetails?.getOptionalString("dateOfBirth")
319
+
320
+ internal val ReadableMap.postCode: String?
321
+ get() = primaryAccountDetails?.getOptionalString("postCode")
322
+
323
+ internal val ReadableMap.googlePayConfiguration: ReadableMap?
324
+ get() = configuration?.getOptionalMap("googlePayConfiguration")
325
+
326
+ internal val ReadableMap.countryCode: String?
327
+ get() = googlePayConfiguration?.getOptionalString("countryCode")
328
+
329
+ internal val ReadableMap.environmentValue: Int?
330
+ get() = googlePayConfiguration?.getOptionalInt("environment")
331
+
332
+ internal val ReadableMap.merchantName: String?
333
+ get() = googlePayConfiguration?.getOptionalString("merchantName")
334
+
335
+ internal val ReadableMap.transactionId: String?
336
+ get() = googlePayConfiguration?.getOptionalString("transactionId")
337
+
338
+ internal val ReadableMap.totalPriceStatus: Int?
339
+ get() = googlePayConfiguration?.getOptionalInt("totalPriceStatus")
340
+
341
+ internal val ReadableMap.totalPriceLabel: String?
342
+ get() = googlePayConfiguration?.getOptionalString("totalPriceLabel")
343
+
344
+ internal val ReadableMap.checkoutOption: Int?
345
+ get() = googlePayConfiguration?.getOptionalInt("checkoutOption")
346
+
347
+ internal val ReadableMap.isEmailRequired: Boolean?
348
+ get() = googlePayConfiguration?.getOptionalBoolean("isEmailRequired")
349
+
350
+ internal val ReadableMap.isBillingAddressRequired: Boolean?
351
+ get() = googlePayConfiguration?.getOptionalBoolean("isBillingAddressRequired")
352
+
353
+ internal val ReadableMap.isShippingAddressRequired: Boolean?
354
+ get() = googlePayConfiguration?.getOptionalBoolean("isShippingAddressRequired")
355
+
356
+ internal val ReadableMap.billingAddressParameters: ReadableMap?
357
+ get() = googlePayConfiguration?.getOptionalMap("billingAddressParameters")
358
+
359
+ internal val ReadableMap.shippingAddressParameters: ReadableMap?
360
+ get() = googlePayConfiguration?.getOptionalMap("shippingAddressParameters")
361
+
362
+ internal val ReadableMap.isBillingPhoneNumberRequired: Boolean?
363
+ get() = billingAddressParameters?.getOptionalBoolean("isPhoneNumberRequired")
364
+
365
+ internal val ReadableMap.addressFormat: Int?
366
+ get() = billingAddressParameters?.getOptionalInt("addressFormat")
367
+
368
+ internal val ReadableMap.isShippingPhoneNumberRequired: Boolean?
369
+ get() = shippingAddressParameters?.getOptionalBoolean("isPhoneNumberRequired")
370
+
371
+ internal val ReadableMap.allowedCountryCodeList: ReadableArray?
372
+ get() = shippingAddressParameters?.getOptionalArray("allowedCountryCodes")
373
+
374
+ internal val ReadableMap.allowPrepaidCards: Boolean?
375
+ get() = googlePayConfiguration?.getOptionalBoolean("allowPrepaidCards")
376
+
377
+ internal val ReadableMap.allowCreditCards: Boolean?
378
+ get() = googlePayConfiguration?.getOptionalBoolean("allowCreditCards")
379
+
380
+ fun Judo.toJudoActivityIntent(packageContext: Context): Intent =
381
+ Intent(packageContext, JudoActivity::class.java)
382
+ .also { it.putExtra(JUDO_OPTIONS, this) }