@aptos-scp/scp-component-rn-device-services 0.0.2 → 0.0.4-hm

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 (163) hide show
  1. package/android/src/main/java/com/aptos/scp/paymentterminal/adyen/AdyenPaymentTerminal.java +69 -0
  2. package/ios/AurusEnterpriseSDK.framework/AurusEnterpriseSDK +0 -0
  3. package/ios/AurusEnterpriseSDK.framework/Headers/AurusEnterpriseSDK.h +97 -95
  4. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit +0 -0
  5. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/Info.plist +0 -0
  6. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/VersionInfo.plist +0 -0
  7. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit v1.10.2.mom +0 -0
  8. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit v1.10.3.mom +0 -0
  9. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit v1.10.4.mom +0 -0
  10. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit v1.10.4.omo +0 -0
  11. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit v1.10.mom +0 -0
  12. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit v1.8.6.mom +0 -0
  13. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit v1.9.mom +0 -0
  14. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit.mom +0 -0
  15. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYAccountData.h +26 -0
  16. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYAdditionalDataRequest.h +38 -0
  17. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYAmount.h +16 -0
  18. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYAppData.h +26 -0
  19. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYBalance.h +13 -0
  20. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYCashTransactionRequest.h +35 -0
  21. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYConstants.h +688 -0
  22. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYCurrency.h +33 -0
  23. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYDevice.h +308 -0
  24. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYDeviceData.h +52 -0
  25. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYDeviceManagerDelegate.h +66 -0
  26. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYDeviceRegistry.h +125 -0
  27. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYDynamicCurrencyConversionData.h +22 -0
  28. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYErrors.h +153 -0
  29. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCard.h +41 -0
  30. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCardBalanceRequest.h +50 -0
  31. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCardBalanceResponse.h +38 -0
  32. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCardLoadRequest.h +78 -0
  33. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCardLoadRequestDelegate.h +25 -0
  34. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCardLoadResponse.h +31 -0
  35. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCardMask.h +31 -0
  36. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCardRequest.h +13 -0
  37. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYLocationManager.h +14 -0
  38. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYLoginDelegate.h +80 -0
  39. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYPrintReceiptRequest.h +57 -0
  40. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYReceipt.h +33 -0
  41. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYReceiptLine.h +92 -0
  42. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYReferralRequest.h +16 -0
  43. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYRefundData.h +54 -0
  44. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYServerSynchronization.h +18 -0
  45. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYSignatureRequest.h +117 -0
  46. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYSpecialTransactionRequest.h +63 -0
  47. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYToneGenerator.h +45 -0
  48. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYTransactionData.h +416 -0
  49. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYTransactionDetails.h +45 -0
  50. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYTransactionProcessorDelegate.h +279 -0
  51. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYTransactionRequest.h +108 -0
  52. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYUIKit.h +30 -0
  53. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/Adyen.h +591 -0
  54. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/AdyenToolkit-umbrella.h +59 -0
  55. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/AdyenToolkit.h +79 -0
  56. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/NSData+ADY.h +31 -0
  57. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/NSString+ADY.h +19 -0
  58. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/adylog.h +176 -0
  59. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Info.plist +0 -0
  60. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Modules/module.modulemap +6 -0
  61. package/ios/SCPRNDeviceServices/Adyen/AdyenConstants.h +40 -0
  62. package/ios/SCPRNDeviceServices/Adyen/AdyenConstants.m +28 -0
  63. package/ios/SCPRNDeviceServices/Adyen/AdyenDelegate.h +23 -0
  64. package/ios/SCPRNDeviceServices/Adyen/AdyenDelegate.m +15 -0
  65. package/ios/SCPRNDeviceServices/Adyen/AdyenDeviceManagerDelegate.h +19 -0
  66. package/ios/SCPRNDeviceServices/Adyen/AdyenDeviceManagerDelegate.m +31 -0
  67. package/ios/SCPRNDeviceServices/Adyen/AdyenLoginDelegate.h +19 -0
  68. package/ios/SCPRNDeviceServices/Adyen/AdyenLoginDelegate.m +26 -0
  69. package/ios/SCPRNDeviceServices/Adyen/AdyenTransactionProcessorDelegate.h +26 -0
  70. package/ios/SCPRNDeviceServices/Adyen/AdyenTransactionProcessorDelegate.m +148 -0
  71. package/ios/SCPRNDeviceServices/AdyenPaymentTerminal.h +19 -0
  72. package/ios/SCPRNDeviceServices/AdyenPaymentTerminal.m +457 -22
  73. package/ios/SCPRNDeviceServices/AurusPaymentTerminal.m +96 -11
  74. package/ios/SCPRNDeviceServices/VendorPaymentTerminal.m +1 -1
  75. package/ios/SCPRNDeviceServices.xcodeproj/project.pbxproj +56 -0
  76. package/lib/AdyenDevice/AdyenDevice.d.ts +56 -0
  77. package/lib/AdyenDevice/AdyenDevice.js +349 -0
  78. package/lib/AdyenDevice/AdyenDevice.js.map +1 -0
  79. package/lib/AdyenDevice/constants.d.ts +12 -0
  80. package/lib/AdyenDevice/constants.js +228 -0
  81. package/lib/AdyenDevice/constants.js.map +1 -0
  82. package/lib/AdyenDevice/index.d.ts +1 -0
  83. package/lib/AdyenDevice/index.js +7 -0
  84. package/lib/AdyenDevice/index.js.map +1 -0
  85. package/lib/AdyenDevice/interfaces.d.ts +175 -0
  86. package/lib/AdyenDevice/interfaces.js +3 -0
  87. package/lib/AdyenDevice/interfaces.js.map +1 -0
  88. package/lib/AurusDevice/AurusDevice.d.ts +102 -0
  89. package/lib/AurusDevice/AurusDevice.js +730 -0
  90. package/lib/AurusDevice/AurusDevice.js.map +1 -0
  91. package/lib/AurusDevice/constants.d.ts +85 -33
  92. package/lib/AurusDevice/constants.js +115 -37
  93. package/lib/AurusDevice/constants.js.map +1 -1
  94. package/lib/AurusDevice/index.d.ts +1 -1
  95. package/lib/AurusDevice/index.js +1 -1
  96. package/lib/AurusDevice/index.js.map +1 -1
  97. package/lib/AurusDevice/sdk-interface/AESDKRegistration.d.ts +10 -9
  98. package/lib/AurusDevice/sdk-interface/AESDKRegistration.js +0 -6
  99. package/lib/AurusDevice/sdk-interface/AESDKRegistration.js.map +1 -1
  100. package/lib/AurusDevice/sdk-interface/AurusPaymentSupport.d.ts +5 -5
  101. package/lib/AurusDevice/sdk-interface/AurusPaymentSupport.js +143 -107
  102. package/lib/AurusDevice/sdk-interface/AurusPaymentSupport.js.map +1 -1
  103. package/lib/AurusDevice/sdk-interface/Barcode.d.ts +16 -0
  104. package/lib/AurusDevice/sdk-interface/Barcode.js +3 -0
  105. package/lib/AurusDevice/sdk-interface/Barcode.js.map +1 -0
  106. package/lib/AurusDevice/sdk-interface/ByPassScreen.d.ts +25 -0
  107. package/lib/AurusDevice/sdk-interface/ByPassScreen.js +9 -0
  108. package/lib/AurusDevice/sdk-interface/ByPassScreen.js.map +1 -0
  109. package/lib/AurusDevice/sdk-interface/CancelTransaction.d.ts +11 -10
  110. package/lib/AurusDevice/sdk-interface/CancelTransaction.js +0 -6
  111. package/lib/AurusDevice/sdk-interface/CancelTransaction.js.map +1 -1
  112. package/lib/AurusDevice/sdk-interface/GetCardBinRequest.d.ts +14 -12
  113. package/lib/AurusDevice/sdk-interface/PLCCApplication.d.ts +12 -11
  114. package/lib/AurusDevice/sdk-interface/PLCCApplication.js +0 -6
  115. package/lib/AurusDevice/sdk-interface/PLCCApplication.js.map +1 -1
  116. package/lib/AurusDevice/sdk-interface/TransactionRequest.d.ts +44 -48
  117. package/lib/AurusDevice/sdk-interface/TransactionRequest.js +0 -6
  118. package/lib/AurusDevice/sdk-interface/TransactionRequest.js.map +1 -1
  119. package/lib/AurusDevice/sdk-interface/Upgrade.d.ts +23 -0
  120. package/lib/AurusDevice/sdk-interface/Upgrade.js +9 -0
  121. package/lib/AurusDevice/sdk-interface/Upgrade.js.map +1 -0
  122. package/lib/AurusDevice/sdk-interface/XmlElementString.d.ts +3 -0
  123. package/lib/AurusDevice/sdk-interface/XmlElementString.js +3 -0
  124. package/lib/AurusDevice/sdk-interface/XmlElementString.js.map +1 -0
  125. package/lib/AurusDevice/sdk-interface/index.d.ts +3 -0
  126. package/lib/PaymentDeviceFactory.d.ts +5 -5
  127. package/lib/PaymentDeviceFactory.js +16 -22
  128. package/lib/PaymentDeviceFactory.js.map +1 -1
  129. package/lib/PaymentDeviceService.d.ts +13 -12
  130. package/lib/PaymentDeviceService.js +114 -71
  131. package/lib/PaymentDeviceService.js.map +1 -1
  132. package/lib/ScannerDeviceFactory.d.ts +11 -0
  133. package/lib/ScannerDeviceFactory.js +27 -0
  134. package/lib/ScannerDeviceFactory.js.map +1 -0
  135. package/lib/ScannerDeviceService.d.ts +13 -0
  136. package/lib/ScannerDeviceService.js +110 -0
  137. package/lib/ScannerDeviceService.js.map +1 -0
  138. package/lib/configs/inversify/inversify.config.d.ts +3 -0
  139. package/lib/configs/inversify/inversify.config.js +15 -0
  140. package/lib/configs/inversify/inversify.config.js.map +1 -0
  141. package/lib/constants/constants.d.ts +62 -38
  142. package/lib/constants/constants.js +64 -42
  143. package/lib/constants/constants.js.map +1 -1
  144. package/lib/index.d.ts +1 -0
  145. package/lib/index.js +1 -0
  146. package/lib/index.js.map +1 -1
  147. package/lib/interfaces/IDeviceStatus.d.ts +1 -0
  148. package/lib/interfaces/index.d.ts +1 -0
  149. package/lib/interfaces/payment/IPayment.d.ts +17 -18
  150. package/lib/interfaces/payment/messages/requests.d.ts +2 -3
  151. package/lib/interfaces/payment/messages/responses.d.ts +13 -6
  152. package/lib/interfaces/scanner/IScanner.d.ts +23 -0
  153. package/lib/interfaces/scanner/IScanner.js +3 -0
  154. package/lib/interfaces/scanner/IScanner.js.map +1 -0
  155. package/lib/interfaces/scanner/index.d.ts +1 -0
  156. package/lib/interfaces/scanner/index.js +3 -0
  157. package/lib/interfaces/scanner/index.js.map +1 -0
  158. package/package.json +11 -9
  159. package/types/react-native-xml2js/index.d.ts +5 -0
  160. package/lib/AurusDevice/AurusPaymentDevice.d.ts +0 -77
  161. package/lib/AurusDevice/AurusPaymentDevice.js +0 -473
  162. package/lib/AurusDevice/AurusPaymentDevice.js.map +0 -1
  163. package/types/money-works/index.d.ts +0 -49
@@ -8,56 +8,491 @@
8
8
 
9
9
  #import <Foundation/Foundation.h>
10
10
  #import <React/RCTLog.h>
11
+ #import <React/RCTConvert.h>
12
+ #import "Adyen/AdyenConstants.h"
11
13
  #import "AdyenPaymentTerminal.h"
14
+ #import "Adyen/AdyenLoginDelegate.h"
15
+ #import "Adyen/AdyenDeviceManagerDelegate.h"
16
+ #import "Adyen/AdyenTransactionProcessorDelegate.h"
12
17
 
13
- // TODO: Refactor and add additional methods as needed. This is a basic example to test component interactions.
14
- NSString* const native_exampleResponse1 = @"exampleResponse1";
15
- NSString* const native_exampleResponse1_name = @"native_exampleResponse1";
16
- NSString* const native_exampleResponse2 = @"exampleResponse2";
17
- NSString* const native_exampleResponse2_name = @"native_exampleResponse2";
18
+ NSDictionary const *AdyenEventsDictionary;
19
+
20
+ @implementation RCTConvert (LoginStatus)
21
+ RCT_ENUM_CONVERTER(
22
+ ADYLoginStatus,
23
+ (@{
24
+ @"LoggedIn": @(ADYLoginStatusLoggedIn),
25
+ @"LoggedOut": @(ADYLoginStatusLoggedOut),
26
+ @"LoggingIn": @(ADYLoginStatusLoggingIn),
27
+ @"LoggingOut": @(ADYLoginStatusLoggingOut)
28
+ }),
29
+ ADYLoginStatusLoggedOut,
30
+ integerValue
31
+ )
32
+ @end
33
+
34
+ @implementation RCTConvert (LoginDelegateStatus)
35
+ RCT_ENUM_CONVERTER(
36
+ ADYLoginDelegateStatus,
37
+ (
38
+ @{
39
+ @"LoggedIn" : @(ADYLoginDelegateStatusLoggedIn),
40
+ @"LoggingIn" : @(ADYLoginDelegateStatusLoggingIn),
41
+ @"PostSettling" : @(ADYLoginDelegateStatusPostSettling),
42
+ @"PreSettling" : @(ADYLoginDelegateStatusPreSettling),
43
+ @"TokenNotYetValid" : @(ADYLoginDelegateStatusTokenNotYetValid),
44
+ @"TokenValid" : @(ADYLoginDelegateStatusTokenValid),
45
+ @"VerifyingToken" : @(ADYLoginDelegateStatusVerifyingToken)
46
+ }
47
+ ),
48
+ ADYLoginDelegateStatusLoggingIn,
49
+ integerValue
50
+ )
51
+ @end
52
+
53
+ @implementation RCTConvert (DeviceStatus)
54
+ RCT_ENUM_CONVERTER(
55
+ ADYDeviceStatus,
56
+ (@{
57
+ @"Initializing": @(ADYDeviceStatusInitializing),
58
+ @"Initialized": @(ADYDeviceStatusInitialized),
59
+ @"NotBoarded": @(ADYDeviceStatusNotBoarded),
60
+ @"Error": @(ADYDeviceStatusError),
61
+ @"Stopped": @(ADYDeviceStatusStopped),
62
+ @"Gone": @(ADYDeviceStatusGone),
63
+ }),
64
+ ADYDeviceStatusGone,
65
+ integerValue
66
+ )
67
+ @end
68
+
69
+ @implementation RCTConvert (DeviceManagerStep)
70
+ RCT_ENUM_CONVERTER(
71
+ ADYEMVDeviceManagerStep,
72
+ (@{
73
+ @"IdentifyPaymentDevice": @(ADYEMVDeviceManagerStepIdentifyPaymentDevice),
74
+ @"RegisterPaymentDevice": @(ADYEMVDeviceManagerStepRegisterPaymentDevice),
75
+ @"LoadConfiguration": @(ADYEMVDeviceManagerStepLoadConfiguration),
76
+ @"StoreConfiguration": @(ADYEMVDeviceManagerStepStoreConfiguration),
77
+ @"CheckConfiguration": @(ADYEMVDeviceManagerStepCheckConfiguration)
78
+ }),
79
+ ADYEMVDeviceManagerStepIdentifyPaymentDevice,
80
+ integerValue
81
+ )
82
+ @end
83
+
84
+ @implementation RCTConvert (TransactionType)
85
+ RCT_ENUM_CONVERTER(
86
+ ADYTransactionType,
87
+ (@{
88
+ @"GoodsServices": @(ADYTransactionTypeGoodsServices),
89
+ @"Refund": @(ADYTransactionTypeRefund),
90
+ @"Cash": @(ADYTransactionTypeCash)
91
+ }),
92
+ ADYTransactionTypeGoodsServices,
93
+ integerValue
94
+ )
95
+ @end
96
+
97
+ @implementation RCTConvert (CardStatus)
98
+ RCT_ENUM_CONVERTER(
99
+ ADYCardStatus,
100
+ (@{
101
+ @"CardRemoved": @(ADYCardStatusCardRemoved),
102
+ @"NextTransaction": @(ADYCardStatusNextTransaction),
103
+ @"Error": @(ADYCardStatusError),
104
+ @"NotSupported": @(ADYCardStatusNotSupported)
105
+ }),
106
+ ADYTransactionTypeGoodsServices,
107
+ integerValue
108
+ )
109
+ @end
110
+
111
+ @implementation RCTConvert (TenderState)
112
+ RCT_ENUM_CONVERTER(
113
+ ADYTenderState,
114
+ (@{
115
+ @"Initial": @(ADYTenderStateInitial),
116
+ @"Created": @(ADYTenderStateCreated),
117
+ @"Processing": @(ADYTenderStateProcessing),
118
+ @"AdditionalDataAvailable": @(ADYTenderStateAdditionalDataAvailable),
119
+ @"WaitForAmountAdjustment": @(ADYTenderStateWaitForAmountAdjustment),
120
+ @"AmountAdjusted": @(ADYTenderStateAmountAdjusted),
121
+ @"ProvideCardDetails": @(ADYTenderStateProvideCardDetails),
122
+ @"CardDetailsProvided": @(ADYTenderStateCardDetailsProvided),
123
+ @"AskSignature": @(ADYTenderStateAskSignature),
124
+ @"CheckSignature": @(ADYTenderStateCheckSignature),
125
+ @"SignatureChecked": @(ADYTenderStateSignatureChecked),
126
+ @"Referral": @(ADYTenderStateReferral),
127
+ @"ReferralChecked": @(ADYTenderStateReferralChecked),
128
+ @"PrintReceipt": @(ADYTenderStatePrintReceipt),
129
+ @"ReceiptPrinted": @(ADYTenderStateReceiptPrinted),
130
+ @"WaitingForAppSelection": @(ADYTenderStateWaitingForAppSelection),
131
+ @"AppSelected": @(ADYTenderStateAppSelected),
132
+ @"WaitingForPin": @(ADYTenderStateWaitingForPin),
133
+ @"PinDigitEntered": @(ADYTenderStatePinDigitEntered),
134
+ @"PinEntered": @(ADYTenderStatePinEntered),
135
+ @"AskGratuity": @(ADYTenderStateAskGratuity),
136
+ @"GratuityEntered": @(ADYTenderStateGratuityEntered),
137
+ @"AskDcc": @(ADYTenderStateAskDcc),
138
+ @"DccAccepted": @(ADYTenderStateDccAccepted),
139
+ @"DccRejected": @(ADYTenderStateDccRejected),
140
+ @"BeepOk": @(ADYTenderStateBeepOk),
141
+ @"BeepAlert": @(ADYTenderStateBeepAlert),
142
+ @"AskSwipeCard": @(ADYTenderStateAskSwipeCard),
143
+ @"CardSwiped": @(ADYTenderStateCardSwiped),
144
+ @"AskInsertCard": @(ADYTenderStateAskInsertCard),
145
+ @"CardInserted": @(ADYTenderStateCardInserted),
146
+ @"CardRemoved": @(ADYTenderStateCardRemoved),
147
+ @"AskPresentCard": @(ADYTenderStateAskPresentCard),
148
+ @"CardPresented": @(ADYTenderStateCardPresented),
149
+ @"CardErrorChipFailed": @(ADYTenderStateCardErrorChipFailed),
150
+ @"CardErrorChipFailedTrySwipe": @(ADYTenderStateCardErrorChipFailedTrySwipe),
151
+ @"CardErrorReadFailed": @(ADYTenderStateCardErrorReadFailed),
152
+ @"CardErrorNotSupportedUseICC": @(ADYTenderStateCardErrorNotSupportedUseICC),
153
+ @"CardErrorChipFailedReaderError": @(ADYTenderStateCardErrorChipFailedReaderError),
154
+ @"CardErrorNotAccepted": @(ADYTenderStateCardErrorNotAccepted),
155
+ @"CardErrorNotAcceptedTrySwipe": @(ADYTenderStateCardErrorNotAcceptedTrySwipe),
156
+ @"CardErrorApplicationBlocked": @(ADYTenderStateCardErrorApplicationBlocked),
157
+ @"CardErrorFallback": @(ADYTenderStateCardErrorFallback),
158
+ @"CardErrorNotSupported": @(ADYTenderStateCardErrorNotSupported),
159
+ @"CardErrorNotAllowed": @(ADYTenderStateCardErrorNotAllowed),
160
+ @"WaitingEndStateConfirmation": @(ADYTenderStateWaitingEndStateConfirmation),
161
+ @"Summary": @(ADYTenderStateSummary),
162
+ @"Approved": @(ADYTenderStateApproved),
163
+ @"Declined": @(ADYTenderStateDeclined),
164
+ @"Cancelled": @(ADYTenderStateCancelled),
165
+ @"Error": @(ADYTenderStateError),
166
+ @"End": @(ADYTenderStateEnd),
167
+ @"Retrying": @(ADYTenderStateRetrying),
168
+ @"Pending": @(ADYTenderStatePending),
169
+ @"Acknowledged": @(ADYTenderStateAcknowledged),
170
+ @"Unknown": @(ADYTenderStateUnknown)
171
+ }),
172
+ ADYTenderStateUnknown,
173
+ integerValue
174
+ )
175
+ @end
18
176
 
19
- @interface AdyenPaymentTerminal ()
177
+ @implementation RCTConvert (FinalTenderState)
178
+ RCT_ENUM_CONVERTER(
179
+ ADYFinalTenderState,
180
+ (@{
181
+ @"NotFinal": @(ADYFinalTenderStateNotFinal),
182
+ @"Approved": @(ADYFinalTenderStateApproved),
183
+ @"Declined": @(ADYFinalTenderStateDeclined),
184
+ @"Cancelled": @(ADYFinalTenderStateCancelled),
185
+ @"Error": @(ADYFinalTenderStateError),
186
+ @"Unknown": @(ADYFinalTenderStateUnknown)
187
+ }),
188
+ ADYFinalTenderStateNotFinal,
189
+ integerValue
190
+ )
191
+ @end
192
+
193
+ @implementation RCTConvert (CardScheme)
194
+ RCT_ENUM_CONVERTER(
195
+ ADYCardScheme,
196
+ (@{
197
+ @"Error": @(ADYCardSchemeError),
198
+ @"VisaVisa": @(ADYCardSchemeVisaVisa),
199
+ @"VisaElectron": @(ADYCardSchemeVisaElectron),
200
+ @"VisaVPay": @(ADYCardSchemeVisaVPay),
201
+ @"VisaPlus": @(ADYCardSchemeVisaPlus),
202
+ @"VisaDankort": @(ADYCardSchemeVisaDankort),
203
+ @"MasterCardDebit": @(ADYCardSchemeMasterCardDebit),
204
+ @"MasterCardMaestro": @(ADYCardSchemeMasterCardMaestro),
205
+ @"MasterCardMaestroUK": @(ADYCardSchemeMasterCardMaestroUK),
206
+ @"MasterCardMasterCard": @(ADYCardSchemeMasterCardMasterCard),
207
+ @"AmericanExpress": @(ADYCardSchemeAmericanExpress),
208
+ @"JCB": @(ADYCardSchemeJCB),
209
+ @"DinersClub": @(ADYCardSchemeDinersClub),
210
+ @"Dankort": @(ADYCardSchemeDankort),
211
+ @"Discover": @(ADYCardSchemeDiscover),
212
+ @"Laser": @(ADYCardSchemeLaser),
213
+ @"BCMC": @(ADYCardSchemeBCMC),
214
+ @"Solo": @(ADYCardSchemeSolo),
215
+ @"Bijenkorf": @(ADYCardSchemeBijenkorf),
216
+ @"CUP": @(ADYCardSchemeCUP),
217
+ }),
218
+ ADYCardSchemeError,
219
+ integerValue
220
+ )
20
221
  @end
21
222
 
22
223
  #pragma mark -
23
224
 
24
225
  @implementation AdyenPaymentTerminal
25
226
 
227
+ + (void)initialize {
228
+ AdyenEventsDictionary = @{
229
+ @"BoardDevice": @{
230
+ @"WillBeginStep": SCPAdyenDeviceManagerWillBeginStepEvent,
231
+ @"DidCompleteStep": SCPAdyenDeviceManagerDidCompleteStepEvent,
232
+ @"DidFailStep": SCPAdyenDeviceManagerDidFailStepEvent,
233
+ @"DidComplete": SCPAdyenDeviceManagerDidCompleteEvent,
234
+ },
235
+ @"Login": @{
236
+ @"Failure": SCPAdyenLoginFailureEvent,
237
+ @"Success": SCPAdyenLoginSuccessEvent,
238
+ @"Update": SCPAdyenLoginUpdateEvent
239
+ },
240
+ @"RetrieveDevice": SCPAdyenRetrieveDeviceEvent,
241
+ @"Transaction": @{
242
+ @"Complete": SCPAdyenTransactionCompleteEvent,
243
+ @"RequiresSignature": SCPAdyenTransactionRequiresSignatureEvent,
244
+ @"ProvidesAdditionalData": SCPAdyenTransactionProvidesAdditionalDataEvent,
245
+ @"RequiresPrintedReceipt": SCPAdyenTransactionRequiresPrintedReceiptEvent,
246
+ @"RequiresReferral": SCPAdyenTransactionRequiresReferralEvent,
247
+ @"SuggestsDcc": SCPAdyenTransactionSuggestsDccEvent,
248
+ @"GratuityEntered": SCPAdyenTransactionGratuityEnteredEvent,
249
+ @"ApplicationSelected": SCPAdyenTransactionApplicationSelectedEvent,
250
+ @"PinDigitEntered": SCPAdyenTransactionPinDigitEnteredEvent,
251
+ @"CardRemoved": SCPAdyenTransactionCardRemovedEvent,
252
+ @"ConnectionLost": SCPAdyenTransactionConnectionLostEvent,
253
+ @"ConnectionRestored": SCPAdyenTransactionConnectionRestoredEvent,
254
+ @"StateChanged": SCPAdyenTransactionStateChangedEvent,
255
+ @"Started": SCPAdyenTransactionStartedEvent
256
+ }
257
+ };
258
+ }
259
+
260
+ #pragma mark - Dispatch queue declaration for the module.
261
+
262
+ /**
263
+ * All methods of the Adyen class, and all of its returned objects, must be run on the mainthread. Similarly, all
264
+ * methods invoked by an Adyen instance on one of its delegates are guaranteed to be invoked on the mainthread.
265
+ */
266
+ - (dispatch_queue_t)methodQueue {
267
+ return dispatch_get_main_queue();
268
+ }
269
+
270
+ #pragma mark - Export constants and module
271
+
26
272
  RCT_EXPORT_MODULE();
27
273
 
28
274
  // TODO: Refactor and add additional methods as needed. This is a basic example to test component interactions.
29
275
  - (NSDictionary *)constantsToExport {
30
276
  return @{
31
- native_exampleResponse1_name: native_exampleResponse1,
32
- native_exampleResponse2_name: native_exampleResponse2
33
- };
277
+ @"AdyenEvents": AdyenEventsDictionary,
278
+ @"AdyenConstants": @{
279
+ @"Status": @{
280
+ @"Device": @{
281
+ @"Initializing": @(ADYDeviceStatusInitializing),
282
+ @"Initialized": @(ADYDeviceStatusInitialized),
283
+ @"NotBoarded": @(ADYDeviceStatusNotBoarded),
284
+ @"Error": @(ADYDeviceStatusError),
285
+ @"Stopped": @(ADYDeviceStatusStopped),
286
+ @"Gone": @(ADYDeviceStatusGone),
287
+ },
288
+ @"Login": @{
289
+ @"LoggedIn": @(ADYLoginStatusLoggedIn),
290
+ @"LoggedOut": @(ADYLoginStatusLoggedOut),
291
+ @"LoggingIn": @(ADYLoginStatusLoggingIn),
292
+ @"LoggingOut": @(ADYLoginStatusLoggingOut)
293
+ },
294
+ @"RetrieveDevice": @{
295
+ @"Failure" : @(NO),
296
+ @"Success" : @(YES),
297
+ }
298
+ },
299
+ @"TransactionTypes": @{
300
+ @"GoodsServices": @(ADYTransactionTypeGoodsServices),
301
+ @"Refund": @(ADYTransactionTypeRefund),
302
+ @"Cash": @(ADYTransactionTypeCash)
303
+ },
304
+ @"FinalTenderStates": @{
305
+ @"NotFinal": @(ADYFinalTenderStateNotFinal),
306
+ @"Approved": @(ADYFinalTenderStateApproved),
307
+ @"Declined": @(ADYFinalTenderStateDeclined),
308
+ @"Cancelled": @(ADYFinalTenderStateCancelled),
309
+ @"Error": @(ADYFinalTenderStateError),
310
+ @"Unknown": @(ADYFinalTenderStateUnknown)
311
+ },
312
+ @"CardScheme" : @{
313
+ @"Error": @(ADYCardSchemeError),
314
+ @"VisaVisa": @(ADYCardSchemeVisaVisa),
315
+ @"VisaElectron": @(ADYCardSchemeVisaElectron),
316
+ @"VisaVPay": @(ADYCardSchemeVisaVPay),
317
+ @"VisaPlus": @(ADYCardSchemeVisaPlus),
318
+ @"VisaDankort": @(ADYCardSchemeVisaDankort),
319
+ @"MasterCardDebit": @(ADYCardSchemeMasterCardDebit),
320
+ @"MasterCardMaestro": @(ADYCardSchemeMasterCardMaestro),
321
+ @"MasterCardMaestroUK": @(ADYCardSchemeMasterCardMaestroUK),
322
+ @"MasterCardMasterCard": @(ADYCardSchemeMasterCardMasterCard),
323
+ @"AmericanExpress": @(ADYCardSchemeAmericanExpress),
324
+ @"JCB": @(ADYCardSchemeJCB),
325
+ @"DinersClub": @(ADYCardSchemeDinersClub),
326
+ @"Dankort": @(ADYCardSchemeDankort),
327
+ @"Discover": @(ADYCardSchemeDiscover),
328
+ @"Laser": @(ADYCardSchemeLaser),
329
+ @"BCMC": @(ADYCardSchemeBCMC),
330
+ @"Solo": @(ADYCardSchemeSolo),
331
+ @"Bijenkorf": @(ADYCardSchemeBijenkorf),
332
+ @"CUP": @(ADYCardSchemeCUP),
333
+ }
334
+ }
335
+ };
34
336
  }
35
337
 
36
338
  #pragma mark - Exported to JavaScript methods
37
339
 
38
- // TODO: Refactor and add additional methods as needed. This is a basic example to test component interactions.
39
- RCT_EXPORT_METHOD(exampleRequest1:(NSString*)exampleParam1) {
40
- RCTLog(@"%@", [NSString stringWithFormat:@"In AdyenPaymentTerminal.exampleRequest1, calling sendEventWithName:%@ body:%@", native_exampleResponse1, exampleParam1]);
41
- [self sendEventWithName:native_exampleResponse1 body:exampleParam1];
340
+ RCT_EXPORT_METHOD(initialize:(BOOL*)useTestBackend) {
341
+ if (!self.adyen) {
342
+ RCTLog(@"In AdyenPaymentTerminal.initialize, getting Adyen shared instance.");
343
+ self.adyen = [Adyen sharedInstance];
344
+ self.adyen.useTestBackend = useTestBackend;
345
+ self.loginDelegate = [[AdyenLoginDelegate alloc] initWithEmitter:self];
346
+ self.transactionDelegate = [[AdyenTransactionProcessorDelegate alloc] initWithEmitter:self];
347
+ self.deviceManagerDelegate = [[AdyenDeviceManagerDelegate alloc] initWithEmitter:self];
348
+ } else {
349
+ RCTLog(@"In AdyenPaymentTerminal.initialize, already initialized.");
350
+ }
42
351
  }
43
352
 
44
- // TODO: Refactor and add additional methods as needed. This is a basic example to test component interactions.
45
- RCT_EXPORT_METHOD(exampleRequest2:(NSString*)exampleParam2) {
46
- RCTLog(@"%@", [NSString stringWithFormat:@"In AdyenPaymentTerminal.exampleRequest2, calling sendEventWithName:%@ body:%@", native_exampleResponse2, exampleParam2]);
47
- [self sendEventWithName:native_exampleResponse2 body:exampleParam2];
353
+ RCT_REMAP_METHOD(loginStatus,
354
+ loginStatusWithResolver:(RCTPromiseResolveBlock)resolve
355
+ rejecter:(RCTPromiseRejectBlock)reject) {
356
+ RCTLog(@"In AdyenPaymentTerminal.loginStatus, getting the login status on the adyen tool kit.");
357
+ if (self.adyen) {
358
+ resolve(@(self.adyen.loginStatus));
359
+ } else {
360
+ reject(@"instance_not_set", @"Adyen instance not created.", [NSError errorWithDomain:@"Adyen native error" code:100 userInfo:nil ]);
361
+ }
362
+ }
363
+
364
+ RCT_EXPORT_METHOD(login:(NSString*)merchantCode username:(NSString*)username password:(NSString*)password) {
365
+ RCTLog(@"In AdyenPaymentTerminal.login, sending login request to adyen tool kit.");
366
+ [self.adyen loginWithMerchantCode:merchantCode
367
+ withUsername:username
368
+ withPassword:password
369
+ andDelegate:self.loginDelegate];
370
+ }
371
+
372
+ RCT_EXPORT_METHOD(retrieveDevice) {
373
+ RCTLog(@"In AdyenPaymentTerminal.retrieveDevice, retrieving the first device in the list of devices.");
374
+ self.device = self.adyen.deviceRegistry.devices.firstObject;
375
+ if (self.device) {
376
+ [self retrieveDeviceSuccess:YES];
377
+ } else {
378
+ [self retrieveDeviceSuccess:NO];
379
+ }
380
+ }
381
+
382
+ RCT_REMAP_METHOD(deviceStatus,
383
+ deviceStatusWithResolver:(RCTPromiseResolveBlock)resolve
384
+ rejecter:(RCTPromiseRejectBlock)reject) {
385
+ RCTLog(@"In AdyenPaymentTerminal.deviceStatus, getting the status of retrieved device.");
386
+ if (self.device) {
387
+ resolve(@(self.device.status));
388
+ } else {
389
+ reject(@"device_not_retrieved", @"Adyen device not retrieved.", [NSError errorWithDomain:@"Adyen native error" code:200 userInfo:nil ]);
390
+ }
391
+ }
392
+
393
+ RCT_EXPORT_METHOD(boardDevice) {
394
+ RCTLog(@"In AdyenPaymentTerminal.boardDevice, boarding the retrieved device.");
395
+ [self.device boardDeviceWithDelegate:self.deviceManagerDelegate];
396
+ }
397
+
398
+ RCT_EXPORT_METHOD(createTransactionRequest:(NSString*)reference
399
+ resolver:(RCTPromiseResolveBlock)resolve
400
+ rejecter:(RCTPromiseRejectBlock)reject) {
401
+ RCTLog(@"In AdyenPaymentTerminal.createTransactionRequestWithReference, creating transaction request.");
402
+ // WARNING
403
+ // When an ADYTransactionRequest is created, the ADYDevice will not keep a reference to it. Therefore, to prevent
404
+ // it from being deallocated, it is important that you keep a reference to it until after the transaction,
405
+ // started with [ADYTransactionRequest startWithDelegate:], has been finished.
406
+ NSError* error = nil;
407
+ self.transactionDelegate.request = [self.device createTransactionRequestWithReference:reference error:&error];
408
+ if(error){
409
+ reject(@"", @"", error);
410
+ } else {
411
+ resolve(nil);
412
+ }
413
+ }
414
+
415
+ RCT_EXPORT_METHOD(startTransactionRequest:(ADYTransactionType)transactionType
416
+ currency:(NSString*)currency
417
+ amount:(NSNumber* _Nonnull)amount
418
+ store:(NSString*)store
419
+ cashRegisterAgent:(NSString*)cashRegisterAgent ) {
420
+ if (self.transactionDelegate.request) {
421
+ RCTLog(@"In AdyenPaymentTerminal.startTransactionRequest, populating transaction request.");
422
+ self.transactionDelegate.request.transactionType = transactionType;
423
+ self.transactionDelegate.request.currency = currency;
424
+ self.transactionDelegate.request.amount = amount;
425
+ self.transactionDelegate.request.store = store;
426
+ self.transactionDelegate.request.cashregisterAgent = cashRegisterAgent;
427
+ // gratuity
428
+ // locale
429
+ // options
430
+ // additionalData
431
+
432
+ RCTLog(@"In AdyenPaymentTerminal.startTransactionRequest, starting request with delegate.");
433
+ NSError* error = nil;
434
+ [self.transactionDelegate.request startWithDelegate:self.transactionDelegate error:&error];
435
+ } else {
436
+ RCTLog(@"In AdyenPaymentTerminal.startTransactionRequest, request is not created before attempting to start.");
437
+ }
438
+ }
439
+
440
+ RCT_EXPORT_METHOD(confirmReceiptPrinted:(BOOL)success) {
441
+ RCTLog(@"In AdyenPaymentTerminal.confirmReceiptPrinted, entering method.");
442
+ if (self.transactionDelegate.printReceiptRequest) {
443
+ // RCTLog(@"%@", [NSString stringWithFormat:@"In AdyenPaymentTerminal.confirmSignature, calling confirmReceiptPrinted:%@", success]);
444
+ [self.transactionDelegate.printReceiptRequest confirmReceiptPrinted:success];
445
+ } else {
446
+ RCTLog(@"In AdyenPaymentTerminal.confirmReceiptPrinted, printReceiptRequest is not created before attempting to confirmReceiptPrinted.");
447
+ }
448
+ }
449
+
450
+ RCT_EXPORT_METHOD(confirmSignature:(BOOL)success) {
451
+ RCTLog(@"In AdyenPaymentTerminal.confirmSignature, entering method.");
452
+ if (self.transactionDelegate.signatureRequest && success) {
453
+ success ? [self.transactionDelegate.signatureRequest submitConfirmedSignature:nil] : [self.transactionDelegate.signatureRequest submitUnconfirmedSignature:nil];
454
+ } else {
455
+ RCTLog(@"In AdyenPaymentTerminal.confirmSignature, signatureRequest is not created before attempting to confirmSignature.");
456
+ }
457
+ }
458
+
459
+
460
+ #pragma mark - Retrieve Device Event
461
+
462
+ - (void)retrieveDeviceSuccess:(BOOL)value {
463
+ RCTLog(@"%@", [NSString stringWithFormat:@"In AdyenPaymentTerminal.retrieveDeviceSuccess, calling sendEventWithName:%@ body:%@", SCPAdyenRetrieveDeviceEvent, value ? @"YES" : @"NO" ]);
464
+ [self sendEventWithName:SCPAdyenRetrieveDeviceEvent body:@(value)];
48
465
  }
49
466
 
50
467
  #pragma mark - RCTEventEmitter implementation
51
468
 
52
- // TODO: Refactor and add additional methods as needed. This is a basic example to test component interactions.
53
469
  - (NSArray<NSString *> *)supportedEvents {
54
470
  return @[
55
- native_exampleResponse1,
56
- native_exampleResponse2
57
- ];
471
+ SCPAdyenLoginSuccessEvent,
472
+ SCPAdyenLoginFailureEvent,
473
+ SCPAdyenLoginUpdateEvent,
474
+ SCPAdyenRetrieveDeviceEvent,
475
+ SCPAdyenDeviceManagerWillBeginStepEvent,
476
+ SCPAdyenDeviceManagerDidCompleteStepEvent,
477
+ SCPAdyenDeviceManagerDidFailStepEvent,
478
+ SCPAdyenDeviceManagerDidCompleteEvent,
479
+ SCPAdyenTransactionCompleteEvent,
480
+ SCPAdyenTransactionRequiresSignatureEvent,
481
+ SCPAdyenTransactionProvidesAdditionalDataEvent,
482
+ SCPAdyenTransactionRequiresPrintedReceiptEvent,
483
+ SCPAdyenTransactionRequiresReferralEvent,
484
+ SCPAdyenTransactionSuggestsDccEvent,
485
+ SCPAdyenTransactionGratuityEnteredEvent,
486
+ SCPAdyenTransactionApplicationSelectedEvent,
487
+ SCPAdyenTransactionPinDigitEnteredEvent,
488
+ SCPAdyenTransactionCardRemovedEvent,
489
+ SCPAdyenTransactionConnectionLostEvent,
490
+ SCPAdyenTransactionConnectionRestoredEvent,
491
+ SCPAdyenTransactionStateChangedEvent,
492
+ SCPAdyenTransactionStartedEvent
493
+ ];
58
494
  }
59
495
 
60
496
  @end
61
497
 
62
498
  //AdyenPaymentTerminal
63
-
@@ -12,10 +12,16 @@
12
12
 
13
13
  NSString* const native_onAESDKResponse = @"onAESDKResponse";
14
14
  NSString* const native_onAESDKResponse_name = @"native_onAESDKResponse";
15
+ NSString* const native_onNotificationReceived = @"onNotificationReceived";
16
+ NSString* const native_onNotificationReceived_name = @"native_onNotificationReceived";
17
+ NSString* const native_onAESDKLogResponse = @"onAESDKLogResponse";
18
+ NSString* const native_onAESDKLogResponse_name = @"native_onAESDKLogResponse";
19
+ NSString* const AURUS_NOTIFICATION = @"AURUS_NOTIFICATION";
20
+ NSString* const USER_INFO_CODE = @"CODE";
15
21
 
16
22
  @interface AurusPaymentTerminal ()
17
23
 
18
- @property (nonatomic) AurusEnterpriseSDK* aesdk;
24
+ @property AurusEnterpriseSDK* aesdk;
19
25
 
20
26
  @end
21
27
 
@@ -23,31 +29,93 @@ NSString* const native_onAESDKResponse_name = @"native_onAESDKResponse";
23
29
 
24
30
  @implementation AurusPaymentTerminal
25
31
 
32
+ - (void)dealloc {
33
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:AURUS_NOTIFICATION object:nil];
34
+ observer = nil;
35
+ }
36
+
26
37
  RCT_EXPORT_MODULE();
27
38
 
28
39
  - (NSDictionary *)constantsToExport {
29
40
  return @{
30
- native_onAESDKResponse_name: native_onAESDKResponse
41
+ native_onAESDKResponse_name: native_onAESDKResponse,
42
+ native_onNotificationReceived_name: native_onNotificationReceived,
43
+ native_onAESDKLogResponse_name: native_onAESDKLogResponse,
44
+ @"NotificationEvent": @{ @"SwipeOrInsertOrTap" : @(EventSwipeOrInsertOrTap), //501
45
+ @"EnterManualCardEntry" : @(EventEnterManualCardEntry),
46
+ @"Processing" : @(EventProcessing),
47
+ @"EnterPIN" : @(EventEnterPIN),
48
+ @"EnterZIP" : @(EventEnterZIP),
49
+ @"EnterSSN" : @(EventEnterSSN),
50
+ @"EnterDOB" : @(EventEnterDOB),
51
+ @"EnterAnnualIncome" : @(EventEnterAnnualIncome),
52
+ @"EnterExpiryDate" : @(EventEnterExpiryDate),
53
+ @"EnterCVV" : @(EventEnterCVV),
54
+ @"EnterTIP" : @(EventEnterTIP),
55
+ @"Confirmation" : @(EventConfirmation),
56
+ @"ProcessingTransaction" : @(EventProcessingTransaction),
57
+ @"BarcodeInformation" : @(EventBarcodeInformation), //514
58
+ @"DeviceNotConnected" : @(EventDeviceNotConnected), //515
59
+ @"DeviceConnecting" : @(EventDeviceConnecting), //516
60
+ @"DeviceConnected" : @(EventDeviceConnected), //517
61
+ @"DeviceConfigurationStarted" : @(EventDeviceConfigurationStarted), //518
62
+ @"DeviceConfigurationCompleted" : @(EventDeviceConfigurationCompleted), //519
63
+ @"DeviceConfigurationFailed" : @(EventDeviceConfigurationFailed), //520
64
+ @"DeviceAlreadyConfigured" : @(EventDeviceAlreadyConfigured), //521
65
+ @"FileDownloadProgress" : @(EventFileDownloadProgress),
66
+ @"FileDownloadFailed" : @(EventFileDownloadFailed),
67
+ @"FileDownloadRetry" : @(EventFileDownloadRetry),
68
+ @"PEDFileUpgrade" : @(EventPEDFileUpgrade),
69
+ @"PEDFileUpgradeFailed" : @(EventPEDFileUpgradeFailed),
70
+ @"PEDFileUpgradeCompleted" : @(EventPEDFileUpgradeCompleted),
71
+ @"PEDFileTransferInfo" : @(EventPEDFileTransferInfo),
72
+ @"PEDFileTransferProgress" : @(EventPEDFileTransferProgress),
73
+ @"CaptureSignatureOnPOS" : @(EventCaptureSignatureOnPOS),
74
+ @"None" : @(EventNone)
75
+ }
31
76
  };
32
77
  }
33
78
 
34
79
  #pragma mark - Exported to JavaScript methods
35
80
 
81
+ static BOOL firstTimeConnectionComplete = NO;
82
+ static id observer;
83
+
36
84
  RCT_EXPORT_METHOD(initialize) {
37
- RCTLog(@"In AurusPaymentTerminal.initialize, creating AurusEnterpriseSDK. This starts the connection and EMV configuration.");
38
85
  if (!self.aesdk) {
86
+ RCTLog(@"In AurusPaymentTerminal.initialize, adding %@ observer.", AURUS_NOTIFICATION);
87
+ if (observer) {
88
+ RCTLog(@"In AurusPaymentTerminal.initialize, app was reloaded after adding observers. This should only happen in DEV. Attempting to work-around this scenario.");
89
+ [[NSNotificationCenter defaultCenter] removeObserver:observer name:AURUS_NOTIFICATION object:nil];
90
+ }
91
+ observer = self;
92
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onNotificationReceived:) name:AURUS_NOTIFICATION object:nil];
93
+
94
+ RCTLog(@"In AurusPaymentTerminal.initialize, creating AurusEnterpriseSDK.");
39
95
  self.aesdk = [[AurusEnterpriseSDK alloc] init];
40
- }
41
- if (!self.aesdk.setAESDKDelegateRefference) {
42
96
  self.aesdk.setAESDKDelegateRefference = self;
97
+ [self.aesdk OnAESDKLogProcessRequest];
98
+
99
+ if (firstTimeConnectionComplete) {
100
+ // allows payment to function as normal when app is reloaded
101
+ RCTLog(@"In AurusPaymentTerminal.initialize, app was reloaded after being previously connected. This should only happen in DEV. Attempting to work-around this scenario.");
102
+ dispatch_async(dispatch_get_main_queue(), ^{
103
+ [self performSelector:@selector(notifyFakeEventDeviceConnected) withObject:nil afterDelay:10.0];
104
+ });
105
+ }
106
+ } else {
107
+ RCTLog(@"In AurusPaymentTerminal.initialize, already initialized.");
43
108
  }
44
109
  }
45
110
 
46
- RCT_EXPORT_METHOD(OnAESDKProcessRequest:(NSString*)WithRequest) {
111
+ - (void)notifyFakeEventDeviceConnected {
112
+ RCTLog(@"In AurusPaymentTerminal.notifyFakeEventDeviceConnected, app was reloaded after being previously connected. This should only happen in DEV. Attempting to work-around this scenario.");
113
+ NSDictionary *userInfo = @{ USER_INFO_CODE : @(EventDeviceConnected) };
114
+ [[NSNotificationCenter defaultCenter] postNotificationName:AURUS_NOTIFICATION object:nil userInfo:userInfo];
115
+ }
116
+
117
+ RCT_EXPORT_METHOD(OnAESDKProcessRequest:(NSString *)WithRequest) {
47
118
  RCTLog(@"%@", [NSString stringWithFormat:@"In AurusPaymentTerminal.OnAESDKProcessRequest, calling OnAESDKProcessRequest:%@", WithRequest]);
48
- if (!self.aesdk || !self.aesdk.setAESDKDelegateRefference) {
49
- [self initialize];
50
- }
51
119
  [self.aesdk OnAESDKProcessRequest:WithRequest];
52
120
  }
53
121
 
@@ -58,15 +126,32 @@ RCT_EXPORT_METHOD(OnAESDKProcessRequest:(NSString*)WithRequest) {
58
126
  [self sendEventWithName:native_onAESDKResponse body:withResponse];
59
127
  }
60
128
 
129
+ - (void)onAESDKLogResponse:(NSString *)withResponse {
130
+ // RCTLog(@"AurusLogging: %@", withResponse);
131
+ [self sendEventWithName:native_onAESDKLogResponse body:withResponse];
132
+ }
133
+
134
+ - (void)onNotificationReceived:(NSNotification *)notification {
135
+ RCTLog(@"%@", [NSString stringWithFormat:@"In AurusPaymentTerminal.onNotificationReceived, calling sendEventWithName:%@ body:%@", native_onNotificationReceived, notification.userInfo]);
136
+ if (!firstTimeConnectionComplete && notification && notification.userInfo) {
137
+ int code = [notification.userInfo[USER_INFO_CODE] intValue];
138
+ if (code == EventDeviceConnected) {
139
+ firstTimeConnectionComplete = YES;
140
+ }
141
+ }
142
+ [self sendEventWithName:native_onNotificationReceived body:notification.userInfo];
143
+ }
144
+
61
145
  #pragma mark - RCTEventEmitter implementation
62
146
 
63
147
  - (NSArray<NSString *> *)supportedEvents {
64
148
  return @[
65
- native_onAESDKResponse
149
+ native_onAESDKResponse,
150
+ native_onNotificationReceived,
151
+ native_onAESDKLogResponse
66
152
  ];
67
153
  }
68
154
 
69
155
  @end
70
156
 
71
157
  //AurusPaymentTerminal
72
-
@@ -48,7 +48,7 @@
48
48
  - (void)sendEventWithName:(NSString *)eventName body:(id)body {
49
49
  // Only send events if anyone is listening
50
50
  if (self.hasListeners) {
51
- [super sendEventWithName: eventName body: body];
51
+ [super sendEventWithName:eventName body:body];
52
52
  }
53
53
  }
54
54