@klarna/react-native-klarna-network-payment 0.0.1 → 2.7.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 (261) hide show
  1. package/README.md +143 -29
  2. package/android/build.gradle +95 -0
  3. package/android/src/main/AndroidManifest.xml +1 -0
  4. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaNetworkPaymentButtonViewSpec.kt +22 -0
  5. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaNetworkPaymentModule.kt +46 -0
  6. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaNetworkPaymentModuleImpl.kt +163 -0
  7. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaNetworkPaymentPackage.kt +30 -0
  8. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentButtonPressEvent.kt +19 -0
  9. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentButtonViewManager.kt +276 -0
  10. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentPresentationMapper.kt +132 -0
  11. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentRequestMapper.kt +328 -0
  12. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentResponseMapper.kt +145 -0
  13. package/android/src/test/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaNetworkPaymentModuleImplTest.kt +361 -0
  14. package/android/src/test/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentButtonViewManagerTest.kt +155 -0
  15. package/android/src/test/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentPresentationMapperTest.kt +447 -0
  16. package/android/src/test/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentRequestMapperTest.kt +489 -0
  17. package/android/src/test/java/com/klarna/mobile/sdk/reactnative/klarnanetwork/payment/KlarnaPaymentResponseMapperTest.kt +456 -0
  18. package/ios/Sources/KlarnaNetworkPayment.h +5 -0
  19. package/ios/Sources/KlarnaNetworkPayment.mm +110 -0
  20. package/ios/Sources/KlarnaNetworkPaymentModuleImpl.swift +196 -0
  21. package/ios/Sources/KlarnaPaymentButtonComponentView.mm +147 -0
  22. package/ios/Sources/KlarnaPaymentButtonViewImpl.swift +77 -0
  23. package/ios/Sources/KlarnaPaymentPresentationMapping.swift +102 -0
  24. package/ios/Sources/KlarnaPaymentRequestDataMapping.swift +232 -0
  25. package/ios/Sources/KlarnaPaymentRequestMapping.swift +103 -0
  26. package/ios/Tests/KlarnaNetworkPaymentModuleImplTests.swift +143 -0
  27. package/ios/Tests/KlarnaPaymentButtonViewImplTests.swift +122 -0
  28. package/ios/Tests/KlarnaPaymentPresentationMappingTests.swift +335 -0
  29. package/lib/commonjs/KlarnaNetworkPayment.js +6 -0
  30. package/lib/commonjs/KlarnaNetworkPayment.js.map +1 -0
  31. package/lib/commonjs/KlarnaNetworkPaymentImpl.js +44 -0
  32. package/lib/commonjs/KlarnaNetworkPaymentImpl.js.map +1 -0
  33. package/lib/commonjs/KlarnaNetworkPaymentMapper.js +164 -0
  34. package/lib/commonjs/KlarnaNetworkPaymentMapper.js.map +1 -0
  35. package/lib/commonjs/KlarnaPaymentButton.js +43 -0
  36. package/lib/commonjs/KlarnaPaymentButton.js.map +1 -0
  37. package/lib/commonjs/Specs/KlarnaPaymentButtonNativeComponent.js +10 -0
  38. package/lib/commonjs/Specs/KlarnaPaymentButtonNativeComponent.js.map +1 -0
  39. package/lib/commonjs/Specs/NativeKlarnaNetworkPayment.js +13 -0
  40. package/lib/commonjs/Specs/NativeKlarnaNetworkPayment.js.map +1 -0
  41. package/lib/commonjs/index.js +51 -0
  42. package/lib/commonjs/index.js.map +1 -0
  43. package/lib/commonjs/types/KlarnaPaymentRequest.js +6 -0
  44. package/lib/commonjs/types/KlarnaPaymentRequest.js.map +1 -0
  45. package/lib/commonjs/types/KlarnaPaymentRequestState.js +2 -0
  46. package/lib/commonjs/types/KlarnaPaymentRequestState.js.map +1 -0
  47. package/lib/commonjs/types/KlarnaPaymentRequestStateContext.js +6 -0
  48. package/lib/commonjs/types/KlarnaPaymentRequestStateContext.js.map +1 -0
  49. package/lib/commonjs/types/KlarnaPaymentRequestStateReason.js +2 -0
  50. package/lib/commonjs/types/KlarnaPaymentRequestStateReason.js.map +1 -0
  51. package/lib/commonjs/types/models/KlarnaBillingPlan.js +6 -0
  52. package/lib/commonjs/types/models/KlarnaBillingPlan.js.map +1 -0
  53. package/lib/commonjs/types/models/KlarnaCollectCustomerProfileType.js +2 -0
  54. package/lib/commonjs/types/models/KlarnaCollectCustomerProfileType.js.map +1 -0
  55. package/lib/commonjs/types/models/KlarnaCustomer.js +6 -0
  56. package/lib/commonjs/types/models/KlarnaCustomer.js.map +1 -0
  57. package/lib/commonjs/types/models/KlarnaFreeTrial.js +2 -0
  58. package/lib/commonjs/types/models/KlarnaFreeTrial.js.map +1 -0
  59. package/lib/commonjs/types/models/KlarnaInterval.js +2 -0
  60. package/lib/commonjs/types/models/KlarnaInterval.js.map +1 -0
  61. package/lib/commonjs/types/models/KlarnaLineItem.js +2 -0
  62. package/lib/commonjs/types/models/KlarnaLineItem.js.map +1 -0
  63. package/lib/commonjs/types/models/KlarnaOndemandService.js +6 -0
  64. package/lib/commonjs/types/models/KlarnaOndemandService.js.map +1 -0
  65. package/lib/commonjs/types/models/KlarnaPartnerCustomer.js +6 -0
  66. package/lib/commonjs/types/models/KlarnaPartnerCustomer.js.map +1 -0
  67. package/lib/commonjs/types/models/KlarnaPaymentPresentation.js +6 -0
  68. package/lib/commonjs/types/models/KlarnaPaymentPresentation.js.map +1 -0
  69. package/lib/commonjs/types/models/KlarnaPaymentRequestData.js +6 -0
  70. package/lib/commonjs/types/models/KlarnaPaymentRequestData.js.map +1 -0
  71. package/lib/commonjs/types/models/KlarnaRequestCustomerToken.js +6 -0
  72. package/lib/commonjs/types/models/KlarnaRequestCustomerToken.js.map +1 -0
  73. package/lib/commonjs/types/models/KlarnaRequestCustomerTokenScope.js +2 -0
  74. package/lib/commonjs/types/models/KlarnaRequestCustomerTokenScope.js.map +1 -0
  75. package/lib/commonjs/types/models/KlarnaShipping.js +6 -0
  76. package/lib/commonjs/types/models/KlarnaShipping.js.map +1 -0
  77. package/lib/commonjs/types/models/KlarnaShippingConfig.js +6 -0
  78. package/lib/commonjs/types/models/KlarnaShippingConfig.js.map +1 -0
  79. package/lib/commonjs/types/models/KlarnaShippingConfigMode.js +2 -0
  80. package/lib/commonjs/types/models/KlarnaShippingConfigMode.js.map +1 -0
  81. package/lib/commonjs/types/models/KlarnaShippingOption.js +6 -0
  82. package/lib/commonjs/types/models/KlarnaShippingOption.js.map +1 -0
  83. package/lib/commonjs/types/models/KlarnaShippingRecipient.js +2 -0
  84. package/lib/commonjs/types/models/KlarnaShippingRecipient.js.map +1 -0
  85. package/lib/commonjs/types/models/KlarnaShippingType.js +2 -0
  86. package/lib/commonjs/types/models/KlarnaShippingType.js.map +1 -0
  87. package/lib/commonjs/types/models/KlarnaShippingTypeAttribute.js +2 -0
  88. package/lib/commonjs/types/models/KlarnaShippingTypeAttribute.js.map +1 -0
  89. package/lib/commonjs/types/models/KlarnaSubscription.js +6 -0
  90. package/lib/commonjs/types/models/KlarnaSubscription.js.map +1 -0
  91. package/lib/commonjs/types/models/KlarnaSupplementaryPurchaseData.js +6 -0
  92. package/lib/commonjs/types/models/KlarnaSupplementaryPurchaseData.js.map +1 -0
  93. package/lib/commonjs/types/models/index.js +2 -0
  94. package/lib/commonjs/types/models/index.js.map +1 -0
  95. package/lib/module/KlarnaNetworkPayment.js +2 -0
  96. package/lib/module/KlarnaNetworkPayment.js.map +1 -0
  97. package/lib/module/KlarnaNetworkPaymentImpl.js +36 -0
  98. package/lib/module/KlarnaNetworkPaymentImpl.js.map +1 -0
  99. package/lib/module/KlarnaNetworkPaymentMapper.js +146 -0
  100. package/lib/module/KlarnaNetworkPaymentMapper.js.map +1 -0
  101. package/lib/module/KlarnaPaymentButton.js +37 -0
  102. package/lib/module/KlarnaPaymentButton.js.map +1 -0
  103. package/lib/module/Specs/KlarnaPaymentButtonNativeComponent.js +3 -0
  104. package/lib/module/Specs/KlarnaPaymentButtonNativeComponent.js.map +1 -0
  105. package/lib/module/Specs/NativeKlarnaNetworkPayment.js +9 -0
  106. package/lib/module/Specs/NativeKlarnaNetworkPayment.js.map +1 -0
  107. package/lib/module/index.js +40 -0
  108. package/lib/module/index.js.map +1 -0
  109. package/lib/module/types/KlarnaPaymentRequest.js +2 -0
  110. package/lib/module/types/KlarnaPaymentRequest.js.map +1 -0
  111. package/lib/module/types/KlarnaPaymentRequestState.js +2 -0
  112. package/lib/module/types/KlarnaPaymentRequestState.js.map +1 -0
  113. package/lib/module/types/KlarnaPaymentRequestStateContext.js +2 -0
  114. package/lib/module/types/KlarnaPaymentRequestStateContext.js.map +1 -0
  115. package/lib/module/types/KlarnaPaymentRequestStateReason.js +2 -0
  116. package/lib/module/types/KlarnaPaymentRequestStateReason.js.map +1 -0
  117. package/lib/module/types/models/KlarnaBillingPlan.js +2 -0
  118. package/lib/module/types/models/KlarnaBillingPlan.js.map +1 -0
  119. package/lib/module/types/models/KlarnaCollectCustomerProfileType.js +2 -0
  120. package/lib/module/types/models/KlarnaCollectCustomerProfileType.js.map +1 -0
  121. package/lib/module/types/models/KlarnaCustomer.js +2 -0
  122. package/lib/module/types/models/KlarnaCustomer.js.map +1 -0
  123. package/lib/module/types/models/KlarnaFreeTrial.js +2 -0
  124. package/lib/module/types/models/KlarnaFreeTrial.js.map +1 -0
  125. package/lib/module/types/models/KlarnaInterval.js +2 -0
  126. package/lib/module/types/models/KlarnaInterval.js.map +1 -0
  127. package/lib/module/types/models/KlarnaLineItem.js +2 -0
  128. package/lib/module/types/models/KlarnaLineItem.js.map +1 -0
  129. package/lib/module/types/models/KlarnaOndemandService.js +2 -0
  130. package/lib/module/types/models/KlarnaOndemandService.js.map +1 -0
  131. package/lib/module/types/models/KlarnaPartnerCustomer.js +2 -0
  132. package/lib/module/types/models/KlarnaPartnerCustomer.js.map +1 -0
  133. package/lib/module/types/models/KlarnaPaymentPresentation.js +2 -0
  134. package/lib/module/types/models/KlarnaPaymentPresentation.js.map +1 -0
  135. package/lib/module/types/models/KlarnaPaymentRequestData.js +2 -0
  136. package/lib/module/types/models/KlarnaPaymentRequestData.js.map +1 -0
  137. package/lib/module/types/models/KlarnaRequestCustomerToken.js +2 -0
  138. package/lib/module/types/models/KlarnaRequestCustomerToken.js.map +1 -0
  139. package/lib/module/types/models/KlarnaRequestCustomerTokenScope.js +2 -0
  140. package/lib/module/types/models/KlarnaRequestCustomerTokenScope.js.map +1 -0
  141. package/lib/module/types/models/KlarnaShipping.js +2 -0
  142. package/lib/module/types/models/KlarnaShipping.js.map +1 -0
  143. package/lib/module/types/models/KlarnaShippingConfig.js +2 -0
  144. package/lib/module/types/models/KlarnaShippingConfig.js.map +1 -0
  145. package/lib/module/types/models/KlarnaShippingConfigMode.js +2 -0
  146. package/lib/module/types/models/KlarnaShippingConfigMode.js.map +1 -0
  147. package/lib/module/types/models/KlarnaShippingOption.js +2 -0
  148. package/lib/module/types/models/KlarnaShippingOption.js.map +1 -0
  149. package/lib/module/types/models/KlarnaShippingRecipient.js +2 -0
  150. package/lib/module/types/models/KlarnaShippingRecipient.js.map +1 -0
  151. package/lib/module/types/models/KlarnaShippingType.js +2 -0
  152. package/lib/module/types/models/KlarnaShippingType.js.map +1 -0
  153. package/lib/module/types/models/KlarnaShippingTypeAttribute.js +2 -0
  154. package/lib/module/types/models/KlarnaShippingTypeAttribute.js.map +1 -0
  155. package/lib/module/types/models/KlarnaSubscription.js +2 -0
  156. package/lib/module/types/models/KlarnaSubscription.js.map +1 -0
  157. package/lib/module/types/models/KlarnaSupplementaryPurchaseData.js +2 -0
  158. package/lib/module/types/models/KlarnaSupplementaryPurchaseData.js.map +1 -0
  159. package/lib/module/types/models/index.js +2 -0
  160. package/lib/module/types/models/index.js.map +1 -0
  161. package/lib/typescript/KlarnaNetworkPayment.d.ts +22 -0
  162. package/lib/typescript/KlarnaNetworkPayment.d.ts.map +1 -0
  163. package/lib/typescript/KlarnaNetworkPaymentImpl.d.ts +12 -0
  164. package/lib/typescript/KlarnaNetworkPaymentImpl.d.ts.map +1 -0
  165. package/lib/typescript/KlarnaNetworkPaymentMapper.d.ts +273 -0
  166. package/lib/typescript/KlarnaNetworkPaymentMapper.d.ts.map +1 -0
  167. package/lib/typescript/KlarnaPaymentButton.d.ts +51 -0
  168. package/lib/typescript/KlarnaPaymentButton.d.ts.map +1 -0
  169. package/lib/typescript/Specs/KlarnaPaymentButtonNativeComponent.d.ts +16 -0
  170. package/lib/typescript/Specs/KlarnaPaymentButtonNativeComponent.d.ts.map +1 -0
  171. package/lib/typescript/Specs/NativeKlarnaNetworkPayment.d.ts +13 -0
  172. package/lib/typescript/Specs/NativeKlarnaNetworkPayment.d.ts.map +1 -0
  173. package/lib/typescript/index.d.ts +14 -0
  174. package/lib/typescript/index.d.ts.map +1 -0
  175. package/lib/typescript/types/KlarnaPaymentRequest.d.ts +19 -0
  176. package/lib/typescript/types/KlarnaPaymentRequest.d.ts.map +1 -0
  177. package/lib/typescript/types/KlarnaPaymentRequestState.d.ts +15 -0
  178. package/lib/typescript/types/KlarnaPaymentRequestState.d.ts.map +1 -0
  179. package/lib/typescript/types/KlarnaPaymentRequestStateContext.d.ts +12 -0
  180. package/lib/typescript/types/KlarnaPaymentRequestStateContext.d.ts.map +1 -0
  181. package/lib/typescript/types/KlarnaPaymentRequestStateReason.d.ts +13 -0
  182. package/lib/typescript/types/KlarnaPaymentRequestStateReason.d.ts.map +1 -0
  183. package/lib/typescript/types/models/KlarnaBillingPlan.d.ts +17 -0
  184. package/lib/typescript/types/models/KlarnaBillingPlan.d.ts.map +1 -0
  185. package/lib/typescript/types/models/KlarnaCollectCustomerProfileType.d.ts +19 -0
  186. package/lib/typescript/types/models/KlarnaCollectCustomerProfileType.d.ts.map +1 -0
  187. package/lib/typescript/types/models/KlarnaCustomer.d.ts +11 -0
  188. package/lib/typescript/types/models/KlarnaCustomer.d.ts.map +1 -0
  189. package/lib/typescript/types/models/KlarnaFreeTrial.d.ts +7 -0
  190. package/lib/typescript/types/models/KlarnaFreeTrial.d.ts.map +1 -0
  191. package/lib/typescript/types/models/KlarnaInterval.d.ts +11 -0
  192. package/lib/typescript/types/models/KlarnaInterval.d.ts.map +1 -0
  193. package/lib/typescript/types/models/KlarnaLineItem.d.ts +28 -0
  194. package/lib/typescript/types/models/KlarnaLineItem.d.ts.map +1 -0
  195. package/lib/typescript/types/models/KlarnaOndemandService.d.ts +17 -0
  196. package/lib/typescript/types/models/KlarnaOndemandService.d.ts.map +1 -0
  197. package/lib/typescript/types/models/KlarnaPartnerCustomer.d.ts +15 -0
  198. package/lib/typescript/types/models/KlarnaPartnerCustomer.d.ts.map +1 -0
  199. package/lib/typescript/types/models/KlarnaPaymentPresentation.d.ts +119 -0
  200. package/lib/typescript/types/models/KlarnaPaymentPresentation.d.ts.map +1 -0
  201. package/lib/typescript/types/models/KlarnaPaymentRequestData.d.ts +24 -0
  202. package/lib/typescript/types/models/KlarnaPaymentRequestData.d.ts.map +1 -0
  203. package/lib/typescript/types/models/KlarnaRequestCustomerToken.d.ts +9 -0
  204. package/lib/typescript/types/models/KlarnaRequestCustomerToken.d.ts.map +1 -0
  205. package/lib/typescript/types/models/KlarnaRequestCustomerTokenScope.d.ts +9 -0
  206. package/lib/typescript/types/models/KlarnaRequestCustomerTokenScope.d.ts.map +1 -0
  207. package/lib/typescript/types/models/KlarnaShipping.d.ts +15 -0
  208. package/lib/typescript/types/models/KlarnaShipping.d.ts.map +1 -0
  209. package/lib/typescript/types/models/KlarnaShippingConfig.d.ts +9 -0
  210. package/lib/typescript/types/models/KlarnaShippingConfig.d.ts.map +1 -0
  211. package/lib/typescript/types/models/KlarnaShippingConfigMode.d.ts +5 -0
  212. package/lib/typescript/types/models/KlarnaShippingConfigMode.d.ts.map +1 -0
  213. package/lib/typescript/types/models/KlarnaShippingOption.d.ts +12 -0
  214. package/lib/typescript/types/models/KlarnaShippingOption.d.ts.map +1 -0
  215. package/lib/typescript/types/models/KlarnaShippingRecipient.d.ts +14 -0
  216. package/lib/typescript/types/models/KlarnaShippingRecipient.d.ts.map +1 -0
  217. package/lib/typescript/types/models/KlarnaShippingType.d.ts +25 -0
  218. package/lib/typescript/types/models/KlarnaShippingType.d.ts.map +1 -0
  219. package/lib/typescript/types/models/KlarnaShippingTypeAttribute.d.ts +21 -0
  220. package/lib/typescript/types/models/KlarnaShippingTypeAttribute.d.ts.map +1 -0
  221. package/lib/typescript/types/models/KlarnaSubscription.d.ts +14 -0
  222. package/lib/typescript/types/models/KlarnaSubscription.d.ts.map +1 -0
  223. package/lib/typescript/types/models/KlarnaSupplementaryPurchaseData.d.ts +21 -0
  224. package/lib/typescript/types/models/KlarnaSupplementaryPurchaseData.d.ts.map +1 -0
  225. package/lib/typescript/types/models/index.d.ts +22 -0
  226. package/lib/typescript/types/models/index.d.ts.map +1 -0
  227. package/package.json +120 -6
  228. package/react-native-klarna-network-payment.podspec +28 -0
  229. package/src/KlarnaNetworkPayment.ts +30 -0
  230. package/src/KlarnaNetworkPaymentImpl.ts +79 -0
  231. package/src/KlarnaNetworkPaymentMapper.ts +204 -0
  232. package/src/KlarnaPaymentButton.tsx +80 -0
  233. package/src/Specs/KlarnaPaymentButtonNativeComponent.ts +22 -0
  234. package/src/Specs/NativeKlarnaNetworkPayment.ts +17 -0
  235. package/src/index.tsx +63 -0
  236. package/src/types/KlarnaPaymentRequest.ts +19 -0
  237. package/src/types/KlarnaPaymentRequestState.ts +14 -0
  238. package/src/types/KlarnaPaymentRequestStateContext.ts +12 -0
  239. package/src/types/KlarnaPaymentRequestStateReason.ts +12 -0
  240. package/src/types/models/KlarnaBillingPlan.ts +17 -0
  241. package/src/types/models/KlarnaCollectCustomerProfileType.ts +18 -0
  242. package/src/types/models/KlarnaCustomer.ts +11 -0
  243. package/src/types/models/KlarnaFreeTrial.ts +6 -0
  244. package/src/types/models/KlarnaInterval.ts +10 -0
  245. package/src/types/models/KlarnaLineItem.ts +27 -0
  246. package/src/types/models/KlarnaOndemandService.ts +17 -0
  247. package/src/types/models/KlarnaPartnerCustomer.ts +15 -0
  248. package/src/types/models/KlarnaPaymentPresentation.ts +135 -0
  249. package/src/types/models/KlarnaPaymentRequestData.ts +24 -0
  250. package/src/types/models/KlarnaRequestCustomerToken.ts +9 -0
  251. package/src/types/models/KlarnaRequestCustomerTokenScope.ts +8 -0
  252. package/src/types/models/KlarnaShipping.ts +15 -0
  253. package/src/types/models/KlarnaShippingConfig.ts +9 -0
  254. package/src/types/models/KlarnaShippingConfigMode.ts +4 -0
  255. package/src/types/models/KlarnaShippingOption.ts +12 -0
  256. package/src/types/models/KlarnaShippingRecipient.ts +13 -0
  257. package/src/types/models/KlarnaShippingType.ts +24 -0
  258. package/src/types/models/KlarnaShippingTypeAttribute.ts +20 -0
  259. package/src/types/models/KlarnaSubscription.ts +14 -0
  260. package/src/types/models/KlarnaSupplementaryPurchaseData.ts +21 -0
  261. package/src/types/models/index.ts +35 -0
@@ -0,0 +1,335 @@
1
+ import XCTest
2
+ @testable import react_native_klarna_network_payment
3
+
4
+ // MARK: - KlarnaPaymentPresentationMappingTests
5
+ //
6
+ // Tests for `klarnaPaymentPresentationData(from:)` in KlarnaPaymentPresentationMapping.swift.
7
+ //
8
+ // Output mapping (KlarnaPaymentPresentationContent.toDictionary()) is NOT covered here because
9
+ // KlarnaPaymentPresentationContent is a closed SDK output type with no public initializer —
10
+ // it can only be obtained from a live SDK callback, which is outside the scope of unit tests.
11
+
12
+ final class KlarnaPaymentPresentationMappingTests: XCTestCase {
13
+
14
+ // MARK: - Helpers
15
+
16
+ /// Returns the minimal valid dictionary required for a non-nil result.
17
+ private func validDict(
18
+ amount: NSNumber = NSNumber(value: 5000.0),
19
+ currency: String = "USD"
20
+ ) -> NSMutableDictionary {
21
+ let dict = NSMutableDictionary()
22
+ dict["amount"] = amount
23
+ dict["currency"] = currency
24
+ return dict
25
+ }
26
+
27
+ // MARK: - Missing required fields
28
+
29
+ func test_klarnaPaymentPresentationData_missingAmount_returnsNil() {
30
+ // Arrange
31
+ let dict: NSDictionary = ["currency": "USD"]
32
+
33
+ // Act
34
+ let result = klarnaPaymentPresentationData(from: dict)
35
+
36
+ // Assert
37
+ XCTAssertNil(result)
38
+ }
39
+
40
+ func test_klarnaPaymentPresentationData_missingCurrency_returnsNil() {
41
+ // Arrange
42
+ let dict: NSDictionary = ["amount": NSNumber(value: 5000.0)]
43
+
44
+ // Act
45
+ let result = klarnaPaymentPresentationData(from: dict)
46
+
47
+ // Assert
48
+ XCTAssertNil(result)
49
+ }
50
+
51
+ func test_klarnaPaymentPresentationData_emptyDictionary_returnsNil() {
52
+ // Arrange
53
+ let dict = NSDictionary()
54
+
55
+ // Act
56
+ let result = klarnaPaymentPresentationData(from: dict)
57
+
58
+ // Assert
59
+ XCTAssertNil(result)
60
+ }
61
+
62
+ // MARK: - Required fields mapping
63
+
64
+ func test_klarnaPaymentPresentationData_requiredFieldsOnly_mapsAmountAndCurrency() {
65
+ // Arrange
66
+ let dict = validDict(amount: NSNumber(value: 9999.0), currency: "EUR")
67
+
68
+ // Act
69
+ let result = klarnaPaymentPresentationData(from: dict)
70
+
71
+ // Assert
72
+ XCTAssertNotNil(result)
73
+ XCTAssertEqual(result?.amount, 9999)
74
+ XCTAssertEqual(result?.currency, "EUR")
75
+ }
76
+
77
+ func test_klarnaPaymentPresentationData_requiredFieldsOnly_optionalsAreNil() {
78
+ // Arrange
79
+ let dict = validDict()
80
+
81
+ // Act
82
+ let result = klarnaPaymentPresentationData(from: dict)
83
+
84
+ // Assert
85
+ XCTAssertNotNil(result)
86
+ XCTAssertNil(result?.intent)
87
+ XCTAssertNil(result?.paymentProgramEnablementCodes)
88
+ XCTAssertNil(result?.subscriptionBillingInterval)
89
+ XCTAssertNil(result?.subscriptionBillingIntervalFrequency)
90
+ }
91
+
92
+ // MARK: - Amount conversion (Double → Int64)
93
+
94
+ func test_klarnaPaymentPresentationData_amountWithDecimalFraction_truncatesToInt64() {
95
+ // Arrange — JS passes all numbers as Double; fractional part must be discarded
96
+ let dict = validDict(amount: NSNumber(value: 1234.99))
97
+
98
+ // Act
99
+ let result = klarnaPaymentPresentationData(from: dict)
100
+
101
+ // Assert
102
+ XCTAssertEqual(result?.amount, 1234)
103
+ }
104
+
105
+ // MARK: - intent mapping
106
+
107
+ func test_klarnaPaymentPresentationData_intentPay_mapsToPayCase() {
108
+ // Arrange
109
+ let dict = validDict()
110
+ dict["intent"] = "PAY"
111
+
112
+ // Act
113
+ let result = klarnaPaymentPresentationData(from: dict)
114
+
115
+ // Assert
116
+ XCTAssertEqual(result?.intent, .pay)
117
+ }
118
+
119
+ func test_klarnaPaymentPresentationData_intentSubscribe_mapsToSubscribeCase() {
120
+ // Arrange
121
+ let dict = validDict()
122
+ dict["intent"] = "SUBSCRIBE"
123
+
124
+ // Act
125
+ let result = klarnaPaymentPresentationData(from: dict)
126
+
127
+ // Assert
128
+ XCTAssertEqual(result?.intent, .subscribe)
129
+ }
130
+
131
+ func test_klarnaPaymentPresentationData_intentAddToWallet_mapsToAddToWalletCase() {
132
+ // Arrange
133
+ let dict = validDict()
134
+ dict["intent"] = "ADD_TO_WALLET"
135
+
136
+ // Act
137
+ let result = klarnaPaymentPresentationData(from: dict)
138
+
139
+ // Assert
140
+ XCTAssertEqual(result?.intent, .addToWallet)
141
+ }
142
+
143
+ func test_klarnaPaymentPresentationData_unknownIntentString_yieldsNilIntent() {
144
+ // Arrange
145
+ let dict = validDict()
146
+ dict["intent"] = "unknown_value"
147
+
148
+ // Act
149
+ let result = klarnaPaymentPresentationData(from: dict)
150
+
151
+ // Assert — unknown raw value must not crash; intent should be nil
152
+ XCTAssertNotNil(result)
153
+ XCTAssertNil(result?.intent)
154
+ }
155
+
156
+ func test_klarnaPaymentPresentationData_intentWrongType_yieldsNilIntent() {
157
+ // Arrange — intent is not a String (JS type confusion safety check)
158
+ let dict = validDict()
159
+ dict["intent"] = NSNumber(value: 42)
160
+
161
+ // Act
162
+ let result = klarnaPaymentPresentationData(from: dict)
163
+
164
+ // Assert
165
+ XCTAssertNotNil(result)
166
+ XCTAssertNil(result?.intent)
167
+ }
168
+
169
+ // MARK: - paymentProgramEnablementCodes mapping
170
+
171
+ func test_klarnaPaymentPresentationData_withEnablementCodes_mapsArray() {
172
+ // Arrange
173
+ let codes = ["CODE_A", "CODE_B"]
174
+ let dict = validDict()
175
+ dict["paymentProgramEnablementCodes"] = codes
176
+
177
+ // Act
178
+ let result = klarnaPaymentPresentationData(from: dict)
179
+
180
+ // Assert
181
+ XCTAssertEqual(result?.paymentProgramEnablementCodes, codes)
182
+ }
183
+
184
+ func test_klarnaPaymentPresentationData_emptyEnablementCodes_mapsEmptyArray() {
185
+ // Arrange
186
+ let dict = validDict()
187
+ dict["paymentProgramEnablementCodes"] = [String]()
188
+
189
+ // Act
190
+ let result = klarnaPaymentPresentationData(from: dict)
191
+
192
+ // Assert
193
+ XCTAssertEqual(result?.paymentProgramEnablementCodes, [])
194
+ }
195
+
196
+ func test_klarnaPaymentPresentationData_enablementCodesWrongType_yieldsNilCodes() {
197
+ // Arrange — wrong element type; cast to [String] must fail gracefully
198
+ let dict = validDict()
199
+ dict["paymentProgramEnablementCodes"] = "not-an-array"
200
+
201
+ // Act
202
+ let result = klarnaPaymentPresentationData(from: dict)
203
+
204
+ // Assert
205
+ XCTAssertNotNil(result)
206
+ XCTAssertNil(result?.paymentProgramEnablementCodes)
207
+ }
208
+
209
+ // MARK: - subscriptionBillingInterval mapping
210
+
211
+ func test_klarnaPaymentPresentationData_billingIntervalDay_mapsToDayCase() {
212
+ // Arrange
213
+ let dict = validDict()
214
+ dict["subscriptionBillingInterval"] = "DAY"
215
+
216
+ // Act
217
+ let result = klarnaPaymentPresentationData(from: dict)
218
+
219
+ // Assert
220
+ XCTAssertEqual(result?.subscriptionBillingInterval, .day)
221
+ }
222
+
223
+ func test_klarnaPaymentPresentationData_billingIntervalWeek_mapsToWeekCase() {
224
+ // Arrange
225
+ let dict = validDict()
226
+ dict["subscriptionBillingInterval"] = "WEEK"
227
+
228
+ // Act
229
+ let result = klarnaPaymentPresentationData(from: dict)
230
+
231
+ // Assert
232
+ XCTAssertEqual(result?.subscriptionBillingInterval, .week)
233
+ }
234
+
235
+ func test_klarnaPaymentPresentationData_billingIntervalMonth_mapsToMonthCase() {
236
+ // Arrange
237
+ let dict = validDict()
238
+ dict["subscriptionBillingInterval"] = "MONTH"
239
+
240
+ // Act
241
+ let result = klarnaPaymentPresentationData(from: dict)
242
+
243
+ // Assert
244
+ XCTAssertEqual(result?.subscriptionBillingInterval, .month)
245
+ }
246
+
247
+ func test_klarnaPaymentPresentationData_billingIntervalYear_mapsToYearCase() {
248
+ // Arrange
249
+ let dict = validDict()
250
+ dict["subscriptionBillingInterval"] = "YEAR"
251
+
252
+ // Act
253
+ let result = klarnaPaymentPresentationData(from: dict)
254
+
255
+ // Assert
256
+ XCTAssertEqual(result?.subscriptionBillingInterval, .year)
257
+ }
258
+
259
+ func test_klarnaPaymentPresentationData_unknownBillingInterval_yieldsNilInterval() {
260
+ // Arrange
261
+ let dict = validDict()
262
+ dict["subscriptionBillingInterval"] = "quarterly"
263
+
264
+ // Act
265
+ let result = klarnaPaymentPresentationData(from: dict)
266
+
267
+ // Assert
268
+ XCTAssertNotNil(result)
269
+ XCTAssertNil(result?.subscriptionBillingInterval)
270
+ }
271
+
272
+ // MARK: - subscriptionBillingIntervalFrequency mapping
273
+
274
+ func test_klarnaPaymentPresentationData_billingIntervalFrequency_mapsToInt() {
275
+ // Arrange — JS bridge delivers numbers as Double
276
+ let dict = validDict()
277
+ dict["subscriptionBillingIntervalFrequency"] = NSNumber(value: 3.0)
278
+
279
+ // Act
280
+ let result = klarnaPaymentPresentationData(from: dict)
281
+
282
+ // Assert
283
+ XCTAssertEqual(result?.subscriptionBillingIntervalFrequency, 3)
284
+ }
285
+
286
+ func test_klarnaPaymentPresentationData_billingIntervalFrequencyWithFraction_truncatesToInt() {
287
+ // Arrange
288
+ let dict = validDict()
289
+ dict["subscriptionBillingIntervalFrequency"] = NSNumber(value: 2.9)
290
+
291
+ // Act
292
+ let result = klarnaPaymentPresentationData(from: dict)
293
+
294
+ // Assert
295
+ XCTAssertEqual(result?.subscriptionBillingIntervalFrequency, 2)
296
+ }
297
+
298
+ func test_klarnaPaymentPresentationData_billingIntervalFrequencyWrongType_yieldsNilFrequency() {
299
+ // Arrange
300
+ let dict = validDict()
301
+ dict["subscriptionBillingIntervalFrequency"] = "not-a-number"
302
+
303
+ // Act
304
+ let result = klarnaPaymentPresentationData(from: dict)
305
+
306
+ // Assert
307
+ XCTAssertNotNil(result)
308
+ XCTAssertNil(result?.subscriptionBillingIntervalFrequency)
309
+ }
310
+
311
+ // MARK: - Full payload (all fields present)
312
+
313
+ func test_klarnaPaymentPresentationData_allFieldsPresent_mapsCorrectly() {
314
+ // Arrange
315
+ let dict = NSMutableDictionary()
316
+ dict["amount"] = NSNumber(value: 15000.0)
317
+ dict["currency"] = "SEK"
318
+ dict["intent"] = "SUBSCRIBE"
319
+ dict["paymentProgramEnablementCodes"] = ["BNPL", "SLICE"]
320
+ dict["subscriptionBillingInterval"] = "MONTH"
321
+ dict["subscriptionBillingIntervalFrequency"] = NSNumber(value: 1.0)
322
+
323
+ // Act
324
+ let result = klarnaPaymentPresentationData(from: dict)
325
+
326
+ // Assert
327
+ XCTAssertNotNil(result)
328
+ XCTAssertEqual(result?.amount, 15000)
329
+ XCTAssertEqual(result?.currency, "SEK")
330
+ XCTAssertEqual(result?.intent, .subscribe)
331
+ XCTAssertEqual(result?.paymentProgramEnablementCodes, ["BNPL", "SLICE"])
332
+ XCTAssertEqual(result?.subscriptionBillingInterval, .month)
333
+ XCTAssertEqual(result?.subscriptionBillingIntervalFrequency, 1)
334
+ }
335
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=KlarnaNetworkPayment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["KlarnaNetworkPayment.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.KlarnaNetworkPaymentImpl = void 0;
7
+ var _NativeKlarnaNetworkPayment = _interopRequireDefault(require("./Specs/NativeKlarnaNetworkPayment"));
8
+ var _KlarnaNetworkPaymentMapper = require("./KlarnaNetworkPaymentMapper");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ class KlarnaPaymentPresentationImpl {
11
+ constructor(instanceId) {
12
+ this.instanceId = instanceId;
13
+ }
14
+ fetch(data) {
15
+ return _NativeKlarnaNetworkPayment.default.presentationFetch(this.instanceId, data).then(_KlarnaNetworkPaymentMapper.mapPresentationContent);
16
+ }
17
+ handleLink(url) {
18
+ return _NativeKlarnaNetworkPayment.default.presentationHandleLink(this.instanceId, url).then(_KlarnaNetworkPaymentMapper.mapPresentationContent);
19
+ }
20
+ }
21
+ class KlarnaNetworkPaymentImpl {
22
+ constructor(instanceId) {
23
+ this.instanceId = instanceId;
24
+ this.presentation = new KlarnaPaymentPresentationImpl(instanceId);
25
+ }
26
+ initiate(paymentRequestIdOrData) {
27
+ if (typeof paymentRequestIdOrData === 'string') {
28
+ return _NativeKlarnaNetworkPayment.default.initiateWithId(this.instanceId, paymentRequestIdOrData).then(_KlarnaNetworkPaymentMapper.mapPaymentRequest);
29
+ }
30
+ try {
31
+ return _NativeKlarnaNetworkPayment.default.initiateWithData(this.instanceId, (0, _KlarnaNetworkPaymentMapper.mapPaymentRequestData)(paymentRequestIdOrData)).then(_KlarnaNetworkPaymentMapper.mapPaymentRequest);
32
+ } catch (e) {
33
+ return Promise.reject(e);
34
+ }
35
+ }
36
+ fetch(paymentRequestId) {
37
+ return _NativeKlarnaNetworkPayment.default.fetch(this.instanceId, paymentRequestId).then(_KlarnaNetworkPaymentMapper.mapPaymentRequest);
38
+ }
39
+ cancel(paymentRequestId) {
40
+ return _NativeKlarnaNetworkPayment.default.cancel(this.instanceId, paymentRequestId).then(_KlarnaNetworkPaymentMapper.mapPaymentRequest);
41
+ }
42
+ }
43
+ exports.KlarnaNetworkPaymentImpl = KlarnaNetworkPaymentImpl;
44
+ //# sourceMappingURL=KlarnaNetworkPaymentImpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_NativeKlarnaNetworkPayment","_interopRequireDefault","require","_KlarnaNetworkPaymentMapper","e","__esModule","default","KlarnaPaymentPresentationImpl","constructor","instanceId","fetch","data","NativeKlarnaNetworkPayment","presentationFetch","then","mapPresentationContent","handleLink","url","presentationHandleLink","KlarnaNetworkPaymentImpl","presentation","initiate","paymentRequestIdOrData","initiateWithId","mapPaymentRequest","initiateWithData","mapPaymentRequestData","Promise","reject","paymentRequestId","cancel","exports"],"sourceRoot":"../../src","sources":["KlarnaNetworkPaymentImpl.ts"],"mappings":";;;;;;AAAA,IAAAA,2BAAA,GAAAC,sBAAA,CAAAC,OAAA;AAWA,IAAAC,2BAAA,GAAAD,OAAA;AAIsC,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtC,MAAMG,6BAA6B,CAAsC;EACvEC,WAAWA,CAAkBC,UAAkB,EAAE;IAAA,KAApBA,UAAkB,GAAlBA,UAAkB;EAAG;EAElDC,KAAKA,CACHC,IAAmC,EACQ;IAC3C,OAAOC,mCAA0B,CAACC,iBAAiB,CACjD,IAAI,CAACJ,UAAU,EACfE,IACF,CAAC,CAACG,IAAI,CAACC,kDAAsB,CAAC;EAChC;EAEAC,UAAUA,CAACC,GAAW,EAA6C;IACjE,OAAOL,mCAA0B,CAACM,sBAAsB,CACtD,IAAI,CAACT,UAAU,EACfQ,GACF,CAAC,CAACH,IAAI,CAACC,kDAAsB,CAAC;EAChC;AACF;AAEO,MAAMI,wBAAwB,CAA0B;EAI7DX,WAAWA,CAACC,UAAkB,EAAE;IAC9B,IAAI,CAACA,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACW,YAAY,GAAG,IAAIb,6BAA6B,CAACE,UAAU,CAAC;EACnE;EAEAY,QAAQA,CACNC,sBAAyD,EAC1B;IAC/B,IAAI,OAAOA,sBAAsB,KAAK,QAAQ,EAAE;MAC9C,OAAOV,mCAA0B,CAACW,cAAc,CAC9C,IAAI,CAACd,UAAU,EACfa,sBACF,CAAC,CAACR,IAAI,CAACU,6CAAiB,CAAC;IAC3B;IACA,IAAI;MACF,OAAOZ,mCAA0B,CAACa,gBAAgB,CAChD,IAAI,CAAChB,UAAU,EACf,IAAAiB,iDAAqB,EAACJ,sBAAsB,CAC9C,CAAC,CAACR,IAAI,CAACU,6CAAiB,CAAC;IAC3B,CAAC,CAAC,OAAOpB,CAAC,EAAE;MACV,OAAOuB,OAAO,CAACC,MAAM,CAACxB,CAAC,CAAC;IAC1B;EACF;EAEAM,KAAKA,CAACmB,gBAAwB,EAAiC;IAC7D,OAAOjB,mCAA0B,CAACF,KAAK,CACrC,IAAI,CAACD,UAAU,EACfoB,gBACF,CAAC,CAACf,IAAI,CAACU,6CAAiB,CAAC;EAC3B;EAEAM,MAAMA,CAACD,gBAAwB,EAAiC;IAC9D,OAAOjB,mCAA0B,CAACkB,MAAM,CACtC,IAAI,CAACrB,UAAU,EACfoB,gBACF,CAAC,CAACf,IAAI,CAACU,6CAAiB,CAAC;EAC3B;AACF;AAACO,OAAA,CAAAZ,wBAAA,GAAAA,wBAAA","ignoreList":[]}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mapAddress = mapAddress;
7
+ exports.mapBillingPlan = mapBillingPlan;
8
+ exports.mapLineItem = mapLineItem;
9
+ exports.mapOndemandService = mapOndemandService;
10
+ exports.mapPartnerCustomer = mapPartnerCustomer;
11
+ exports.mapPaymentRequest = mapPaymentRequest;
12
+ exports.mapPaymentRequestData = mapPaymentRequestData;
13
+ exports.mapPresentationContent = mapPresentationContent;
14
+ exports.mapRequestCustomerToken = mapRequestCustomerToken;
15
+ exports.mapShipping = mapShipping;
16
+ exports.mapShippingConfig = mapShippingConfig;
17
+ exports.mapSubscription = mapSubscription;
18
+ exports.mapSupplementaryPurchaseData = mapSupplementaryPurchaseData;
19
+ function requireFiniteNumber(value, label) {
20
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
21
+ throw new Error(`${label} must be a finite number, got ${value}`);
22
+ }
23
+ return value;
24
+ }
25
+ function mapAddress(address) {
26
+ if (!address) return null;
27
+ return {
28
+ streetAddress: address.streetAddress ?? null,
29
+ streetAddress2: address.streetAddress2 ?? null,
30
+ city: address.city ?? null,
31
+ region: address.region ?? null,
32
+ postalCode: address.postalCode ?? null,
33
+ country: address.country ?? null
34
+ };
35
+ }
36
+ function mapLineItem(item) {
37
+ requireFiniteNumber(item.totalAmount, `KlarnaLineItem "${item.name}": totalAmount`);
38
+ requireFiniteNumber(item.quantity, `KlarnaLineItem "${item.name}": quantity`);
39
+ return {
40
+ currency: item.currency ?? null,
41
+ imageUrl: item.imageUrl ?? null,
42
+ name: item.name,
43
+ productIdentifier: item.productIdentifier ?? null,
44
+ productUrl: item.productUrl ?? null,
45
+ quantity: item.quantity,
46
+ lineItemReference: item.lineItemReference ?? null,
47
+ shippingReference: item.shippingReference ?? null,
48
+ subscriptionReference: item.subscriptionReference ?? null,
49
+ totalAmount: item.totalAmount,
50
+ totalTaxAmount: item.totalTaxAmount ?? null,
51
+ unitPrice: item.unitPrice ?? null
52
+ };
53
+ }
54
+ function mapPartnerCustomer(customer) {
55
+ if (!customer) return null;
56
+ return {
57
+ address: mapAddress(customer.address),
58
+ email: customer.email ?? null,
59
+ familyName: customer.familyName ?? null,
60
+ givenName: customer.givenName ?? null,
61
+ phone: customer.phone ?? null
62
+ };
63
+ }
64
+ function mapShipping(shipping) {
65
+ return {
66
+ address: mapAddress(shipping.address),
67
+ recipient: shipping.recipient ? {
68
+ attention: shipping.recipient.attention ?? null,
69
+ email: shipping.recipient.email ?? null,
70
+ familyName: shipping.recipient.familyName,
71
+ givenName: shipping.recipient.givenName,
72
+ phone: shipping.recipient.phone ?? null
73
+ } : null,
74
+ shippingOption: shipping.shippingOption ? {
75
+ shippingCarrier: shipping.shippingOption.shippingCarrier ?? null,
76
+ shippingType: shipping.shippingOption.shippingType,
77
+ shippingTypeAttributes: shipping.shippingOption.shippingTypeAttributes ?? null
78
+ } : null,
79
+ shippingReference: shipping.shippingReference ?? null
80
+ };
81
+ }
82
+ function mapOndemandService(service) {
83
+ if (!service) return null;
84
+ return {
85
+ currency: service.currency ?? null,
86
+ averageAmount: service.averageAmount ?? null,
87
+ minimumAmount: service.minimumAmount ?? null,
88
+ maximumAmount: service.maximumAmount ?? null,
89
+ purchaseInterval: service.purchaseInterval ?? null,
90
+ purchaseIntervalFrequency: service.purchaseIntervalFrequency ?? null
91
+ };
92
+ }
93
+ function mapBillingPlan(plan) {
94
+ requireFiniteNumber(plan.billingAmount, 'KlarnaBillingPlan: billingAmount');
95
+ requireFiniteNumber(plan.intervalFrequency, 'KlarnaBillingPlan: intervalFrequency');
96
+ return {
97
+ billingAmount: plan.billingAmount,
98
+ currency: plan.currency ?? null,
99
+ from: plan.from,
100
+ interval: plan.interval,
101
+ intervalFrequency: plan.intervalFrequency
102
+ };
103
+ }
104
+ function mapSubscription(s) {
105
+ return {
106
+ subscriptionReference: s.subscriptionReference,
107
+ name: s.name ?? null,
108
+ freeTrial: s.freeTrial ?? null,
109
+ billingPlans: s.billingPlans ? s.billingPlans.map(mapBillingPlan) : null
110
+ };
111
+ }
112
+ function mapRequestCustomerToken(token) {
113
+ if (!token) return null;
114
+ return {
115
+ scopes: token.scopes,
116
+ customerTokenReference: token.customerTokenReference ?? null
117
+ };
118
+ }
119
+ function mapShippingConfig(config) {
120
+ if (!config) return null;
121
+ return {
122
+ supportedCountries: config.supportedCountries ?? null,
123
+ mode: config.mode
124
+ };
125
+ }
126
+ function mapSupplementaryPurchaseData(d) {
127
+ if (!d) return null;
128
+ return {
129
+ customer: mapPartnerCustomer(d.customer),
130
+ lineItems: d.lineItems ? d.lineItems.map(mapLineItem) : null,
131
+ purchaseReference: d.purchaseReference ?? null,
132
+ shipping: d.shipping ? d.shipping.map(mapShipping) : null,
133
+ ondemandService: mapOndemandService(d.ondemandService),
134
+ subscriptions: d.subscriptions ? d.subscriptions.map(mapSubscription) : null
135
+ };
136
+ }
137
+ function mapPaymentRequestData(data) {
138
+ requireFiniteNumber(data.amount, 'KlarnaPaymentRequestData: amount');
139
+ return {
140
+ amount: data.amount,
141
+ currency: data.currency,
142
+ paymentOptionId: data.paymentOptionId ?? null,
143
+ paymentRequestReference: data.paymentRequestReference ?? null,
144
+ requestCustomerToken: mapRequestCustomerToken(data.requestCustomerToken),
145
+ shippingConfig: mapShippingConfig(data.shippingConfig),
146
+ collectCustomerProfile: data.collectCustomerProfile ?? null,
147
+ supplementaryPurchaseData: mapSupplementaryPurchaseData(data.supplementaryPurchaseData)
148
+ };
149
+ }
150
+ function mapPaymentRequest(raw) {
151
+ const spec = raw;
152
+ return {
153
+ paymentRequestId: spec.paymentRequestId,
154
+ state: spec.state,
155
+ previousState: spec.previousState,
156
+ stateContext: spec.stateContext,
157
+ stateReason: spec.stateReason,
158
+ paymentRequestReference: spec.paymentRequestReference
159
+ };
160
+ }
161
+ function mapPresentationContent(raw) {
162
+ return raw;
163
+ }
164
+ //# sourceMappingURL=KlarnaNetworkPaymentMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["requireFiniteNumber","value","label","Number","isFinite","Error","mapAddress","address","streetAddress","streetAddress2","city","region","postalCode","country","mapLineItem","item","totalAmount","name","quantity","currency","imageUrl","productIdentifier","productUrl","lineItemReference","shippingReference","subscriptionReference","totalTaxAmount","unitPrice","mapPartnerCustomer","customer","email","familyName","givenName","phone","mapShipping","shipping","recipient","attention","shippingOption","shippingCarrier","shippingType","shippingTypeAttributes","mapOndemandService","service","averageAmount","minimumAmount","maximumAmount","purchaseInterval","purchaseIntervalFrequency","mapBillingPlan","plan","billingAmount","intervalFrequency","from","interval","mapSubscription","s","freeTrial","billingPlans","map","mapRequestCustomerToken","token","scopes","customerTokenReference","mapShippingConfig","config","supportedCountries","mode","mapSupplementaryPurchaseData","d","lineItems","purchaseReference","ondemandService","subscriptions","mapPaymentRequestData","data","amount","paymentOptionId","paymentRequestReference","requestCustomerToken","shippingConfig","collectCustomerProfile","supplementaryPurchaseData","mapPaymentRequest","raw","spec","paymentRequestId","state","previousState","stateContext","stateReason","mapPresentationContent"],"sourceRoot":"../../src","sources":["KlarnaNetworkPaymentMapper.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.KlarnaPaymentButton = KlarnaPaymentButton;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _KlarnaPaymentButtonNativeComponent = _interopRequireDefault(require("./Specs/KlarnaPaymentButtonNativeComponent"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ /** Visual state of the Klarna payment button. */
11
+
12
+ /** Intent of the Klarna payment button, determining the label and flow it initiates. */
13
+
14
+ /** Shape of the Klarna payment button. */
15
+
16
+ /** Fill style of the Klarna payment button. */
17
+
18
+ /** Color theme of the Klarna payment button. Defaults to light. */
19
+
20
+ /** Props for the KlarnaPaymentButton component. */
21
+
22
+ function KlarnaPaymentButton({
23
+ instanceId,
24
+ state,
25
+ intent,
26
+ shape,
27
+ buttonStyle,
28
+ theme,
29
+ onPress,
30
+ style
31
+ }) {
32
+ return /*#__PURE__*/_react.default.createElement(_KlarnaPaymentButtonNativeComponent.default, {
33
+ instanceId: instanceId,
34
+ state: state,
35
+ intent: intent,
36
+ shape: shape,
37
+ buttonStyle: buttonStyle,
38
+ theme: theme,
39
+ onButtonPress: onPress ? () => onPress() : () => {},
40
+ style: style
41
+ });
42
+ }
43
+ //# sourceMappingURL=KlarnaPaymentButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_KlarnaPaymentButtonNativeComponent","e","__esModule","default","KlarnaPaymentButton","instanceId","state","intent","shape","buttonStyle","theme","onPress","style","createElement","onButtonPress"],"sourceRoot":"../../src","sources":["KlarnaPaymentButton.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,mCAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA+E,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/E;;AASA;;AAGA;;AASA;;AAGA;;AASA;;AAoBO,SAASG,mBAAmBA,CAAC;EAClCC,UAAU;EACVC,KAAK;EACLC,MAAM;EACNC,KAAK;EACLC,WAAW;EACXC,KAAK;EACLC,OAAO;EACPC;AACwB,CAAC,EAAE;EAC3B,oBACEf,MAAA,CAAAM,OAAA,CAAAU,aAAA,CAACb,mCAAA,CAAAG,OAAqB;IACpBE,UAAU,EAAEA,UAAW;IACvBC,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACbC,WAAW,EAAEA,WAAY;IACzBC,KAAK,EAAEA,KAAM;IACbI,aAAa,EAAEH,OAAO,GAAG,MAAMA,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAE;IACpDC,KAAK,EAAEA;EAAM,CACd,CAAC;AAEN","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ var _default = exports.default = (0, _codegenNativeComponent.default)('KlarnaNetworkPaymentButton');
10
+ //# sourceMappingURL=KlarnaPaymentButtonNativeComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","default","_default","exports","codegenNativeComponent"],"sourceRoot":"../../../src","sources":["Specs/KlarnaPaymentButtonNativeComponent.ts"],"mappings":";;;;;;AAGA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAgB9E,IAAAG,+BAAsB,EACnC,4BACF,CAAC","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ // Object is used for all complex parameters and return types instead of inline typed specs.
9
+ // Typed specs would generate C++ structs on iOS that must be immediately converted back to
10
+ // NSDictionary for the Swift layer — a round-trip with no benefit. TypeScript in
11
+ // KlarnaNetworkPaymentImpl.ts is the single type contract for both directions.
12
+ var _default = exports.default = _reactNative.TurboModuleRegistry.getEnforcing('KlarnaNetworkPayment');
13
+ //# sourceMappingURL=NativeKlarnaNetworkPayment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["Specs/NativeKlarnaNetworkPayment.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAWeC,gCAAmB,CAACC,YAAY,CAAO,sBAAsB,CAAC","ignoreList":[]}