edfapay-softpos-sdk-rn 1.0.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 (160) hide show
  1. package/EdfapaySoftposSdkRn.podspec +20 -0
  2. package/LICENSE +20 -0
  3. package/README.md +37 -0
  4. package/android/build.gradle +82 -0
  5. package/android/src/main/AndroidManifest.xml +2 -0
  6. package/android/src/main/java/com/edfapaysoftpossdkrn/EdfapaySoftposSdkRnModule.kt +185 -0
  7. package/android/src/main/java/com/edfapaysoftpossdkrn/EdfapaySoftposSdkRnPackage.kt +14 -0
  8. package/ios/EdfapaySoftposSdkRn.h +6 -0
  9. package/ios/EdfapaySoftposSdkRn.mm +21 -0
  10. package/lib/module/EdfaPayPlugin.js +324 -0
  11. package/lib/module/EdfaPayPlugin.js.map +1 -0
  12. package/lib/module/NativeEdfapaySoftposSdkRn.js +5 -0
  13. package/lib/module/NativeEdfapaySoftposSdkRn.js.map +1 -0
  14. package/lib/module/bridge.js +91 -0
  15. package/lib/module/bridge.js.map +1 -0
  16. package/lib/module/enums/Env.js +11 -0
  17. package/lib/module/enums/Env.js.map +1 -0
  18. package/lib/module/enums/FlowType.js +9 -0
  19. package/lib/module/enums/FlowType.js.map +1 -0
  20. package/lib/module/enums/FunctionCode.js +12 -0
  21. package/lib/module/enums/FunctionCode.js.map +1 -0
  22. package/lib/module/enums/PaymentMethod.js +8 -0
  23. package/lib/module/enums/PaymentMethod.js.map +1 -0
  24. package/lib/module/enums/Presentation.js +16 -0
  25. package/lib/module/enums/Presentation.js.map +1 -0
  26. package/lib/module/enums/PurchaseSecondaryAction.js +9 -0
  27. package/lib/module/enums/PurchaseSecondaryAction.js.map +1 -0
  28. package/lib/module/enums/TransactionType.js +15 -0
  29. package/lib/module/enums/TransactionType.js.map +1 -0
  30. package/lib/module/globals.d.js +2 -0
  31. package/lib/module/globals.d.js.map +1 -0
  32. package/lib/module/index.js +41 -0
  33. package/lib/module/index.js.map +1 -0
  34. package/lib/module/models/BnplResponse.js +26 -0
  35. package/lib/module/models/BnplResponse.js.map +1 -0
  36. package/lib/module/models/EdfaPayCredentials.js +32 -0
  37. package/lib/module/models/EdfaPayCredentials.js.map +1 -0
  38. package/lib/module/models/InvoiceRequest.js +92 -0
  39. package/lib/module/models/InvoiceRequest.js.map +1 -0
  40. package/lib/module/models/Location.js +16 -0
  41. package/lib/module/models/Location.js.map +1 -0
  42. package/lib/module/models/Pagination.js +33 -0
  43. package/lib/module/models/Pagination.js.map +1 -0
  44. package/lib/module/models/PresentationConfig.js +93 -0
  45. package/lib/module/models/PresentationConfig.js.map +1 -0
  46. package/lib/module/models/SdkTheme.js +76 -0
  47. package/lib/module/models/SdkTheme.js.map +1 -0
  48. package/lib/module/models/Terminal.js +39 -0
  49. package/lib/module/models/Terminal.js.map +1 -0
  50. package/lib/module/models/TerminalBindingTask.js +31 -0
  51. package/lib/module/models/TerminalBindingTask.js.map +1 -0
  52. package/lib/module/models/Transaction.js +33 -0
  53. package/lib/module/models/Transaction.js.map +1 -0
  54. package/lib/module/models/TxnParams.js +21 -0
  55. package/lib/module/models/TxnParams.js.map +1 -0
  56. package/lib/module/models/UserInfo.js +39 -0
  57. package/lib/module/models/UserInfo.js.map +1 -0
  58. package/lib/module/multiply.js +6 -0
  59. package/lib/module/multiply.js.map +1 -0
  60. package/lib/module/multiply.native.js +7 -0
  61. package/lib/module/multiply.native.js.map +1 -0
  62. package/lib/module/namespaces/Extension.js +112 -0
  63. package/lib/module/namespaces/Extension.js.map +1 -0
  64. package/lib/module/namespaces/RemoteChannel.js +43 -0
  65. package/lib/module/namespaces/RemoteChannel.js.map +1 -0
  66. package/lib/module/namespaces/Utils.js +78 -0
  67. package/lib/module/namespaces/Utils.js.map +1 -0
  68. package/lib/module/package.json +1 -0
  69. package/lib/module/types.js +4 -0
  70. package/lib/module/types.js.map +1 -0
  71. package/lib/typescript/package.json +1 -0
  72. package/lib/typescript/src/EdfaPayPlugin.d.ts +171 -0
  73. package/lib/typescript/src/EdfaPayPlugin.d.ts.map +1 -0
  74. package/lib/typescript/src/NativeEdfapaySoftposSdkRn.d.ts +7 -0
  75. package/lib/typescript/src/NativeEdfapaySoftposSdkRn.d.ts.map +1 -0
  76. package/lib/typescript/src/bridge.d.ts +13 -0
  77. package/lib/typescript/src/bridge.d.ts.map +1 -0
  78. package/lib/typescript/src/enums/Env.d.ts +8 -0
  79. package/lib/typescript/src/enums/Env.d.ts.map +1 -0
  80. package/lib/typescript/src/enums/FlowType.d.ts +6 -0
  81. package/lib/typescript/src/enums/FlowType.d.ts.map +1 -0
  82. package/lib/typescript/src/enums/FunctionCode.d.ts +9 -0
  83. package/lib/typescript/src/enums/FunctionCode.d.ts.map +1 -0
  84. package/lib/typescript/src/enums/PaymentMethod.d.ts +5 -0
  85. package/lib/typescript/src/enums/PaymentMethod.d.ts.map +1 -0
  86. package/lib/typescript/src/enums/Presentation.d.ts +13 -0
  87. package/lib/typescript/src/enums/Presentation.d.ts.map +1 -0
  88. package/lib/typescript/src/enums/PurchaseSecondaryAction.d.ts +6 -0
  89. package/lib/typescript/src/enums/PurchaseSecondaryAction.d.ts.map +1 -0
  90. package/lib/typescript/src/enums/TransactionType.d.ts +12 -0
  91. package/lib/typescript/src/enums/TransactionType.d.ts.map +1 -0
  92. package/lib/typescript/src/index.d.ts +26 -0
  93. package/lib/typescript/src/index.d.ts.map +1 -0
  94. package/lib/typescript/src/models/BnplResponse.d.ts +11 -0
  95. package/lib/typescript/src/models/BnplResponse.d.ts.map +1 -0
  96. package/lib/typescript/src/models/EdfaPayCredentials.d.ts +14 -0
  97. package/lib/typescript/src/models/EdfaPayCredentials.d.ts.map +1 -0
  98. package/lib/typescript/src/models/InvoiceRequest.d.ts +43 -0
  99. package/lib/typescript/src/models/InvoiceRequest.d.ts.map +1 -0
  100. package/lib/typescript/src/models/Location.d.ts +7 -0
  101. package/lib/typescript/src/models/Location.d.ts.map +1 -0
  102. package/lib/typescript/src/models/Pagination.d.ts +16 -0
  103. package/lib/typescript/src/models/Pagination.d.ts.map +1 -0
  104. package/lib/typescript/src/models/PresentationConfig.d.ts +33 -0
  105. package/lib/typescript/src/models/PresentationConfig.d.ts.map +1 -0
  106. package/lib/typescript/src/models/SdkTheme.d.ts +20 -0
  107. package/lib/typescript/src/models/SdkTheme.d.ts.map +1 -0
  108. package/lib/typescript/src/models/Terminal.d.ts +15 -0
  109. package/lib/typescript/src/models/Terminal.d.ts.map +1 -0
  110. package/lib/typescript/src/models/TerminalBindingTask.d.ts +13 -0
  111. package/lib/typescript/src/models/TerminalBindingTask.d.ts.map +1 -0
  112. package/lib/typescript/src/models/Transaction.d.ts +12 -0
  113. package/lib/typescript/src/models/Transaction.d.ts.map +1 -0
  114. package/lib/typescript/src/models/TxnParams.d.ts +10 -0
  115. package/lib/typescript/src/models/TxnParams.d.ts.map +1 -0
  116. package/lib/typescript/src/models/UserInfo.d.ts +17 -0
  117. package/lib/typescript/src/models/UserInfo.d.ts.map +1 -0
  118. package/lib/typescript/src/multiply.d.ts +2 -0
  119. package/lib/typescript/src/multiply.d.ts.map +1 -0
  120. package/lib/typescript/src/multiply.native.d.ts +2 -0
  121. package/lib/typescript/src/multiply.native.d.ts.map +1 -0
  122. package/lib/typescript/src/namespaces/Extension.d.ts +74 -0
  123. package/lib/typescript/src/namespaces/Extension.d.ts.map +1 -0
  124. package/lib/typescript/src/namespaces/RemoteChannel.d.ts +25 -0
  125. package/lib/typescript/src/namespaces/RemoteChannel.d.ts.map +1 -0
  126. package/lib/typescript/src/namespaces/Utils.d.ts +28 -0
  127. package/lib/typescript/src/namespaces/Utils.d.ts.map +1 -0
  128. package/lib/typescript/src/types.d.ts +12 -0
  129. package/lib/typescript/src/types.d.ts.map +1 -0
  130. package/package.json +171 -0
  131. package/src/EdfaPayPlugin.ts +551 -0
  132. package/src/NativeEdfapaySoftposSdkRn.ts +7 -0
  133. package/src/bridge.ts +106 -0
  134. package/src/enums/Env.ts +7 -0
  135. package/src/enums/FlowType.ts +5 -0
  136. package/src/enums/FunctionCode.ts +8 -0
  137. package/src/enums/PaymentMethod.ts +4 -0
  138. package/src/enums/Presentation.ts +12 -0
  139. package/src/enums/PurchaseSecondaryAction.ts +5 -0
  140. package/src/enums/TransactionType.ts +11 -0
  141. package/src/globals.d.ts +1 -0
  142. package/src/index.tsx +52 -0
  143. package/src/models/BnplResponse.ts +31 -0
  144. package/src/models/EdfaPayCredentials.ts +36 -0
  145. package/src/models/InvoiceRequest.ts +93 -0
  146. package/src/models/Location.ts +14 -0
  147. package/src/models/Pagination.ts +29 -0
  148. package/src/models/PresentationConfig.ts +105 -0
  149. package/src/models/SdkTheme.ts +64 -0
  150. package/src/models/Terminal.ts +41 -0
  151. package/src/models/TerminalBindingTask.ts +32 -0
  152. package/src/models/Transaction.ts +39 -0
  153. package/src/models/TxnParams.ts +26 -0
  154. package/src/models/UserInfo.ts +50 -0
  155. package/src/multiply.native.tsx +5 -0
  156. package/src/multiply.tsx +5 -0
  157. package/src/namespaces/Extension.ts +194 -0
  158. package/src/namespaces/RemoteChannel.ts +43 -0
  159. package/src/namespaces/Utils.ts +91 -0
  160. package/src/types.ts +30 -0
@@ -0,0 +1,194 @@
1
+ import { EdfaPayBridge } from '../bridge';
2
+ import { Location } from '../models/Location';
3
+ import { FunctionCode } from '../enums/FunctionCode';
4
+ import type {
5
+ OnSuccessCallback,
6
+ OnErrorCallback,
7
+ OnTerminalBindingTask,
8
+ } from '../types';
9
+
10
+ /// EdfaPayPlugin.Extension — advanced methods for custom integrations.
11
+ /// Matches: EdfaPayPlugin.Extension in native SDK.
12
+ export class PluginExtension {
13
+ private constructor() {}
14
+
15
+ static create(): PluginExtension {
16
+ return new PluginExtension();
17
+ }
18
+
19
+ init(params: {
20
+ onSuccess: OnSuccessCallback;
21
+ onError: OnErrorCallback;
22
+ }): void {
23
+ EdfaPayBridge.invoke('Extension.init', {}, {
24
+ onSuccess: params.onSuccess,
25
+ onError: params.onError,
26
+ });
27
+ }
28
+
29
+ loginWithCredentials(params: {
30
+ email: string;
31
+ password: string;
32
+ location: Location;
33
+ onSuccess: OnSuccessCallback;
34
+ onError: OnErrorCallback;
35
+ }): void {
36
+ EdfaPayBridge.invoke(
37
+ 'Extension.loginWithCredentials',
38
+ { email: params.email, password: params.password, location: params.location.toJSON() },
39
+ {
40
+ onSuccess: params.onSuccess,
41
+ onError: params.onError,
42
+ },
43
+ );
44
+ }
45
+
46
+ loginWithToken(params: {
47
+ token: string;
48
+ location: Location;
49
+ onSuccess: OnSuccessCallback;
50
+ onError: OnErrorCallback;
51
+ }): void {
52
+ EdfaPayBridge.invoke(
53
+ 'Extension.loginWithToken',
54
+ { token: params.token, location: params.location.toJSON() },
55
+ {
56
+ onSuccess: params.onSuccess,
57
+ onError: params.onError,
58
+ },
59
+ );
60
+ }
61
+
62
+ verifyOtp(params: {
63
+ sessionId: string;
64
+ otp: string;
65
+ onSuccess: OnSuccessCallback;
66
+ onError: OnErrorCallback;
67
+ }): void {
68
+ EdfaPayBridge.invoke(
69
+ 'Extension.verifyOtp',
70
+ { sessionId: params.sessionId, otp: params.otp },
71
+ {
72
+ onSuccess: params.onSuccess,
73
+ onError: params.onError,
74
+ },
75
+ );
76
+ }
77
+
78
+ resendOtp(params: {
79
+ sessionId: string;
80
+ onSuccess: OnSuccessCallback;
81
+ onError: OnErrorCallback;
82
+ }): void {
83
+ EdfaPayBridge.invoke(
84
+ 'Extension.resendOtp',
85
+ { sessionId: params.sessionId },
86
+ {
87
+ onSuccess: params.onSuccess,
88
+ onError: params.onError,
89
+ },
90
+ );
91
+ }
92
+
93
+ getAvailableTerminal(params: {
94
+ onSuccess: OnSuccessCallback;
95
+ onError: OnErrorCallback;
96
+ }): void {
97
+ EdfaPayBridge.invoke('Extension.getAvailableTerminal', {}, {
98
+ onSuccess: params.onSuccess,
99
+ onError: params.onError,
100
+ });
101
+ }
102
+
103
+ registerTerminal(params: {
104
+ trsm: string;
105
+ onSuccess: OnSuccessCallback;
106
+ onError: OnErrorCallback;
107
+ }): void {
108
+ EdfaPayBridge.invoke(
109
+ 'Extension.registerTerminal',
110
+ { trsm: params.trsm },
111
+ {
112
+ onSuccess: params.onSuccess,
113
+ onError: params.onError,
114
+ },
115
+ );
116
+ }
117
+
118
+ getTerminalConfig(params: {
119
+ forceDownload?: boolean;
120
+ configurationType?: FunctionCode;
121
+ onSuccess: OnSuccessCallback;
122
+ onError: OnErrorCallback;
123
+ }): void {
124
+ EdfaPayBridge.invoke(
125
+ 'Extension.getTerminalConfig',
126
+ {
127
+ forceDownload: params.forceDownload ?? false,
128
+ configurationType: params.configurationType ?? FunctionCode.FULL_TERMINAL_CONFIGURATION,
129
+ },
130
+ {
131
+ onSuccess: params.onSuccess,
132
+ onError: params.onError,
133
+ },
134
+ );
135
+ }
136
+
137
+ getInitialKey(params: {
138
+ onSuccess: OnSuccessCallback;
139
+ onError: OnErrorCallback;
140
+ }): void {
141
+ EdfaPayBridge.invoke('Extension.getInitialKey', {}, {
142
+ onSuccess: params.onSuccess,
143
+ onError: params.onError,
144
+ });
145
+ }
146
+
147
+ renewSessionIfRequiredAndPossible(params: {
148
+ onSuccess: OnSuccessCallback;
149
+ onError: OnErrorCallback;
150
+ }): void {
151
+ EdfaPayBridge.invoke('Extension.renewSessionIfRequiredAndPossible', {}, {
152
+ onSuccess: params.onSuccess,
153
+ onError: params.onError,
154
+ });
155
+ }
156
+
157
+ initKernels(params: {
158
+ onSuccess: OnSuccessCallback;
159
+ onError: OnErrorCallback;
160
+ }): void {
161
+ EdfaPayBridge.invoke('Extension.initKernels', {}, {
162
+ onSuccess: params.onSuccess,
163
+ onError: params.onError,
164
+ });
165
+ }
166
+
167
+ prepareTerminalWithToken(params: {
168
+ token: string;
169
+ location: Location;
170
+ onTerminalBindingTask: OnTerminalBindingTask;
171
+ onSuccess: OnSuccessCallback;
172
+ onError: OnErrorCallback;
173
+ }): void {
174
+ EdfaPayBridge.invoke(
175
+ 'Extension.prepareTerminalWithToken',
176
+ { token: params.token, location: params.location.toJSON() },
177
+ {
178
+ onTerminalBindingTask: params.onTerminalBindingTask,
179
+ onSuccess: params.onSuccess,
180
+ onError: params.onError,
181
+ },
182
+ );
183
+ }
184
+
185
+ getUserInfo(params: {
186
+ onSuccess: OnSuccessCallback;
187
+ onError: OnErrorCallback;
188
+ }): void {
189
+ EdfaPayBridge.invoke('Extension.getUserInfo', {}, {
190
+ onSuccess: params.onSuccess,
191
+ onError: params.onError,
192
+ });
193
+ }
194
+ }
@@ -0,0 +1,43 @@
1
+ import { EdfaPayBridge } from '../bridge';
2
+
3
+ /// Builder returned by RemoteAccess.LocalNetwork(...). Call .open() to start.
4
+ export class LocalNetworkChannel {
5
+ constructor(
6
+ private readonly port: number,
7
+ private readonly timeout: number,
8
+ ) {}
9
+
10
+ open(): void {
11
+ EdfaPayBridge.invoke('RemoteChannel.LocalNetwork.open', {
12
+ port: this.port,
13
+ timeout: this.timeout,
14
+ });
15
+ }
16
+
17
+ close(): void {
18
+ EdfaPayBridge.invoke('RemoteChannel.LocalNetwork.close', {});
19
+ }
20
+ }
21
+
22
+ /// EdfaPayPlugin.RemoteChannel — local network remote access.
23
+ /// Matches: EdfaPayPlugin.RemoteChannel in native SDK.
24
+ export class RemoteAccess {
25
+ private constructor() {}
26
+
27
+ static create(): RemoteAccess {
28
+ return new RemoteAccess();
29
+ }
30
+
31
+ /**
32
+ * Configure and return a local network channel builder.
33
+ * Usage: EdfaPayPlugin.RemoteChannel.LocalNetwork({ port: 8080, timeout: 30 }).open()
34
+ */
35
+ LocalNetwork(params: { port: number; timeout: number }): LocalNetworkChannel {
36
+ return new LocalNetworkChannel(params.port, params.timeout);
37
+ }
38
+
39
+ /** Alias with camelCase for idiomatic TS: .localNetwork(...) */
40
+ localNetwork(params: { port: number; timeout: number }): LocalNetworkChannel {
41
+ return this.LocalNetwork(params);
42
+ }
43
+ }
@@ -0,0 +1,91 @@
1
+ import { EdfaPayBridge } from '../bridge';
2
+ import { Location } from '../models/Location';
3
+ import type { OnErrorCallback } from '../types';
4
+
5
+ /// EdfaPayPlugin.Utils — device and location utilities.
6
+ /// Matches: EdfaPayPlugin.Utils in native SDK.
7
+ export class PluginUtils {
8
+ private constructor() {}
9
+
10
+ static create(): PluginUtils {
11
+ return new PluginUtils();
12
+ }
13
+
14
+ /// Returns unique device identifier.
15
+ async getDeviceId(merchantId?: number): Promise<string | null> {
16
+ const result = await EdfaPayBridge.invokeAsync('Utils.getDeviceId', { merchantId });
17
+ return result as string | null;
18
+ }
19
+
20
+ /// Returns true if location permission is granted.
21
+ async haveLocationPermission(): Promise<boolean> {
22
+ const result = await EdfaPayBridge.invokeAsync('Utils.haveLocationPermission');
23
+ return (result as boolean) ?? false;
24
+ }
25
+
26
+ /// Requests location permission. [callback] receives true if granted.
27
+ requestLocationPermission(params: { callback: (permitted: boolean) => void }): void {
28
+ EdfaPayBridge.invoke('Utils.requestLocationPermission', {}, {
29
+ onSuccess: (p: Record<string, any>) => params.callback((p['permitted'] as boolean) ?? false),
30
+ });
31
+ }
32
+
33
+ /// Gets current device location.
34
+ /// [completion] receives (location Map?, hasPermission).
35
+ currentLocation(params: {
36
+ completion: (location: Record<string, any> | null, hasPermission: boolean) => void;
37
+ }): void {
38
+ EdfaPayBridge.invoke('Utils.currentLocation', {}, {
39
+ onSuccess: (p: Record<string, any>) =>
40
+ params.completion(
41
+ p['location'] as Record<string, any> | null,
42
+ (p['permission'] as boolean) ?? false,
43
+ ),
44
+ });
45
+ }
46
+
47
+ /// Checks if [location] is mocked/fake.
48
+ async isLocationMocked(location: Location): Promise<boolean> {
49
+ const result = await EdfaPayBridge.invokeAsync('Utils.isLocationMocked', {
50
+ location: location.toJSON(),
51
+ });
52
+ return (result as boolean) ?? false;
53
+ }
54
+
55
+ /// Shows an SDK-styled message dialog.
56
+ showMessageDialog(params: {
57
+ title: string;
58
+ message: string;
59
+ onClose?: () => void;
60
+ }): void {
61
+ EdfaPayBridge.invoke(
62
+ 'Utils.showMessageDialog',
63
+ { title: params.title, message: params.message },
64
+ params.onClose ? { onSuccess: (_: any) => params.onClose!() } : undefined,
65
+ );
66
+ }
67
+
68
+ /// Saves a value encrypted to DataStore.
69
+ saveData(params: {
70
+ key: string;
71
+ value: string;
72
+ onSuccess: (success: boolean) => void;
73
+ onError: OnErrorCallback;
74
+ }): void {
75
+ EdfaPayBridge.invoke(
76
+ 'Utils.saveData',
77
+ { key: params.key, value: params.value },
78
+ {
79
+ onSuccess: (p: Record<string, any>) =>
80
+ params.onSuccess((p['success'] as boolean) ?? false),
81
+ onError: params.onError,
82
+ },
83
+ );
84
+ }
85
+
86
+ /// Retrieves a value from encrypted DataStore.
87
+ async getData(key: string): Promise<string | null> {
88
+ const result = await EdfaPayBridge.invokeAsync('Utils.getData', { key });
89
+ return result as string | null;
90
+ }
91
+ }
package/src/types.ts ADDED
@@ -0,0 +1,30 @@
1
+ import { Terminal } from './models/Terminal';
2
+ import { TerminalBindingTask } from './models/TerminalBindingTask';
3
+
4
+ // ─────────────────────────────────────────────────────────────────────────────
5
+ // Callback type aliases — mirror native Kotlin typealiases exactly
6
+ // ─────────────────────────────────────────────────────────────────────────────
7
+
8
+ export type ProcessCompleteCallback = (
9
+ status: boolean,
10
+ code: string | null,
11
+ transaction: Record<string, any> | null,
12
+ isFlowComplete: boolean
13
+ ) => void;
14
+
15
+ /** Alias for ProcessCompleteCallback — mirrors Dart's onProcessComplete typedef */
16
+ export type OnProcessComplete = ProcessCompleteCallback;
17
+
18
+ export type TimeOutCallback = () => void;
19
+
20
+ export type CancelByUserCallback = () => void;
21
+
22
+ export type OnErrorCallback = (error: Record<string, any>) => void;
23
+
24
+ export type OnSuccessCallback = (result: Record<string, any>) => void;
25
+
26
+ export type OnTerminalBindingTask = (task: TerminalBindingTask) => void;
27
+ export type OnTerminalRefresh = (
28
+ error: Record<string, any>,
29
+ list: Terminal[]
30
+ ) => void;