react-amwal-pay 0.1.17 → 0.1.18
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.
- package/ReactAmwalPay.podspec +2 -1
- package/android/build.gradle +1 -1
- package/android/gradle.properties +1 -1
- package/ios/ReactAmwalPay.swift +95 -348
- package/lib/module/AmwalPaySDK.js +57 -16
- package/lib/module/AmwalPaySDK.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/network/NetworkClient.js +38 -11
- package/lib/module/network/NetworkClient.js.map +1 -1
- package/lib/module/utils/Logger.js +151 -0
- package/lib/module/utils/Logger.js.map +1 -0
- package/lib/typescript/src/AmwalPaySDK.d.ts +13 -0
- package/lib/typescript/src/AmwalPaySDK.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/network/NetworkClient.d.ts +1 -0
- package/lib/typescript/src/network/NetworkClient.d.ts.map +1 -1
- package/lib/typescript/src/utils/Logger.d.ts +76 -0
- package/lib/typescript/src/utils/Logger.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/AmwalPaySDK.ts +72 -28
- package/src/index.tsx +4 -0
- package/src/network/NetworkClient.ts +43 -11
- package/src/utils/Logger.ts +162 -0
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
import { initiate, onCustomerId, onResponse } from "./index.js";
|
|
4
4
|
import NetworkClient from "./network/NetworkClient.js";
|
|
5
|
+
import Logger from "./utils/Logger.js";
|
|
5
6
|
class AmwalPaySDK {
|
|
6
7
|
onResponseSubscription = null;
|
|
7
8
|
onCustomerIdSubscription = null;
|
|
8
9
|
constructor() {
|
|
9
|
-
// Initialize the
|
|
10
|
+
// Initialize the logger
|
|
11
|
+
this.logger = Logger.getInstance();
|
|
12
|
+
this.logger.info('AmwalPaySDK', 'SDK instance created');
|
|
10
13
|
}
|
|
11
14
|
static getInstance() {
|
|
12
15
|
if (!AmwalPaySDK.instance) {
|
|
@@ -15,12 +18,41 @@ class AmwalPaySDK {
|
|
|
15
18
|
return AmwalPaySDK.instance;
|
|
16
19
|
}
|
|
17
20
|
|
|
21
|
+
/**
|
|
22
|
+
* Enable or disable debug logging
|
|
23
|
+
*/
|
|
24
|
+
setDebugEnabled(enabled) {
|
|
25
|
+
this.logger.setDebugEnabled(enabled);
|
|
26
|
+
this.logger.info('AmwalPaySDK', `Debug logging ${enabled ? 'enabled' : 'disabled'}`);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Get SDK logs for debugging purposes
|
|
31
|
+
*/
|
|
32
|
+
getLogs() {
|
|
33
|
+
return this.logger.exportLogs();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Clear all SDK logs
|
|
38
|
+
*/
|
|
39
|
+
clearLogs() {
|
|
40
|
+
this.logger.clearLogs();
|
|
41
|
+
this.logger.info('AmwalPaySDK', 'Logs cleared');
|
|
42
|
+
}
|
|
43
|
+
|
|
18
44
|
/**
|
|
19
45
|
* Initiates the payment process by first fetching a session token and then starting the payment flow
|
|
20
46
|
* @param config The payment configuration
|
|
21
47
|
*/
|
|
22
48
|
async startPayment(config) {
|
|
23
49
|
try {
|
|
50
|
+
this.logger.info('AmwalPaySDK', 'Starting payment process', {
|
|
51
|
+
merchantId: config.merchantId,
|
|
52
|
+
customerId: config.customerId,
|
|
53
|
+
environment: config.environment
|
|
54
|
+
});
|
|
55
|
+
|
|
24
56
|
// Set up event listeners before starting the payment process
|
|
25
57
|
this.setupEventListeners(config);
|
|
26
58
|
|
|
@@ -28,13 +60,16 @@ class AmwalPaySDK {
|
|
|
28
60
|
const networkClient = NetworkClient.getInstance();
|
|
29
61
|
|
|
30
62
|
// Fetch session token
|
|
31
|
-
|
|
63
|
+
this.logger.debug('AmwalPaySDK', 'Fetching session token', {
|
|
64
|
+
environment: config.environment,
|
|
65
|
+
merchantId: config.merchantId
|
|
66
|
+
});
|
|
32
67
|
const sessionToken = await networkClient.fetchSessionToken(config.environment, config.merchantId, config.customerId, config.secureHash);
|
|
33
|
-
console.log('Session token result:', sessionToken ? 'Success' : 'Failed');
|
|
34
68
|
if (!sessionToken) {
|
|
35
|
-
|
|
69
|
+
this.logger.error('AmwalPaySDK', 'Failed to fetch session token');
|
|
36
70
|
return;
|
|
37
71
|
}
|
|
72
|
+
this.logger.info('AmwalPaySDK', 'Session token fetched successfully');
|
|
38
73
|
|
|
39
74
|
// Create complete config with session token
|
|
40
75
|
const completeConfig = {
|
|
@@ -43,13 +78,15 @@ class AmwalPaySDK {
|
|
|
43
78
|
};
|
|
44
79
|
|
|
45
80
|
// Initiate the payment process
|
|
46
|
-
|
|
81
|
+
this.logger.debug('AmwalPaySDK', 'Initiating native payment', completeConfig);
|
|
47
82
|
initiate(completeConfig);
|
|
83
|
+
this.logger.info('AmwalPaySDK', 'Payment process initiated successfully');
|
|
48
84
|
} catch (error) {
|
|
49
|
-
|
|
85
|
+
this.logger.error('AmwalPaySDK', 'Error starting payment', error);
|
|
50
86
|
}
|
|
51
87
|
}
|
|
52
88
|
dispose() {
|
|
89
|
+
this.logger.info('AmwalPaySDK', 'Disposing SDK instance');
|
|
53
90
|
// Remove all event listeners
|
|
54
91
|
this.removeEventListeners();
|
|
55
92
|
}
|
|
@@ -61,34 +98,38 @@ class AmwalPaySDK {
|
|
|
61
98
|
setupEventListeners(config) {
|
|
62
99
|
// Remove any existing listeners
|
|
63
100
|
this.removeEventListeners();
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
101
|
+
this.logger.debug('AmwalPaySDK', 'Setting up event listeners', {
|
|
102
|
+
hasOnResponse: typeof config.onResponse === 'function',
|
|
103
|
+
hasOnCustomerId: typeof config.onCustomerId === 'function'
|
|
104
|
+
});
|
|
67
105
|
this.onResponseSubscription = onResponse(response => {
|
|
68
|
-
|
|
69
|
-
console.log('Received AmwalPayResponse:', response);
|
|
106
|
+
this.logger.info('AmwalPaySDK', 'Received payment response', response);
|
|
70
107
|
if (config.onResponse) {
|
|
71
108
|
config.onResponse(response);
|
|
72
109
|
} else {
|
|
73
|
-
|
|
110
|
+
this.logger.error('AmwalPaySDK', 'onResponse callback is not a function');
|
|
74
111
|
}
|
|
75
112
|
});
|
|
76
113
|
this.onCustomerIdSubscription = onCustomerId(customerId => {
|
|
77
|
-
|
|
78
|
-
|
|
114
|
+
this.logger.info('AmwalPaySDK', 'Received customer ID', {
|
|
115
|
+
customerId
|
|
116
|
+
});
|
|
79
117
|
if (config.onCustomerId) {
|
|
80
118
|
config.onCustomerId(customerId);
|
|
81
119
|
} else {
|
|
82
|
-
|
|
120
|
+
this.logger.error('AmwalPaySDK', 'onCustomerId callback is not a function');
|
|
83
121
|
}
|
|
84
122
|
});
|
|
85
|
-
|
|
123
|
+
this.logger.debug('AmwalPaySDK', 'Event listeners setup completed');
|
|
86
124
|
}
|
|
87
125
|
|
|
88
126
|
/**
|
|
89
127
|
* Removes all event listeners
|
|
90
128
|
*/
|
|
91
129
|
removeEventListeners() {
|
|
130
|
+
if (this.onResponseSubscription || this.onCustomerIdSubscription) {
|
|
131
|
+
this.logger.debug('AmwalPaySDK', 'Removing event listeners');
|
|
132
|
+
}
|
|
92
133
|
this.onResponseSubscription?.remove();
|
|
93
134
|
this.onCustomerIdSubscription?.remove();
|
|
94
135
|
this.onResponseSubscription = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["initiate","onCustomerId","onResponse","NetworkClient","AmwalPaySDK","onResponseSubscription","onCustomerIdSubscription","constructor","
|
|
1
|
+
{"version":3,"names":["initiate","onCustomerId","onResponse","NetworkClient","Logger","AmwalPaySDK","onResponseSubscription","onCustomerIdSubscription","constructor","logger","getInstance","info","instance","setDebugEnabled","enabled","getLogs","exportLogs","clearLogs","startPayment","config","merchantId","customerId","environment","setupEventListeners","networkClient","debug","sessionToken","fetchSessionToken","secureHash","error","completeConfig","dispose","removeEventListeners","hasOnResponse","hasOnCustomerId","response","remove"],"sourceRoot":"../../src","sources":["AmwalPaySDK.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import ReactAmwalPay, { Environment, Currency, TransactionType } from "./NativeReactAmwalPay.js";
|
|
4
4
|
import AmwalPaySDK from "./AmwalPaySDK.js";
|
|
5
5
|
import { UuidUtil } from "./utils/UuidUtil.js";
|
|
6
|
+
import Logger, { LogLevel } from "./utils/Logger.js";
|
|
6
7
|
import { NativeEventEmitter } from 'react-native';
|
|
7
8
|
|
|
8
9
|
// Create an event emitter for the native module
|
|
@@ -41,5 +42,5 @@ export function onResponse(callback) {
|
|
|
41
42
|
export function onCustomerId(callback) {
|
|
42
43
|
return eventEmitter.addListener('onCustomerId', callback);
|
|
43
44
|
}
|
|
44
|
-
export { Environment, Currency, TransactionType, AmwalPaySDK, UuidUtil };
|
|
45
|
+
export { Environment, Currency, TransactionType, AmwalPaySDK, UuidUtil, Logger, LogLevel };
|
|
45
46
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ReactAmwalPay","Environment","Currency","TransactionType","AmwalPaySDK","UuidUtil","NativeEventEmitter","eventEmitter","initiate","config","defaultAdditionValues","merchantIdentifier","finalAdditionValues","additionValues","nativeConfig","environment","secureHash","currency","amount","merchantId","terminalId","locale","customerId","transactionType","sessionToken","transactionId","generateTransactionId","merchantReference","onResponse","callback","addListener","onCustomerId"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,aAAa,IAClBC,WAAW,EACXC,QAAQ,EACRC,eAAe,QAIV,0BAAuB;AAC9B,OAAOC,WAAW,MAAM,kBAAe;AACvC,SAASC,QAAQ,QAAQ,qBAAkB;AAC3C,SAASC,kBAAkB,QAAgC,cAAc;;AAEzE;AACA,MAAMC,YAAY,GAAG,IAAID,kBAAkB,
|
|
1
|
+
{"version":3,"names":["ReactAmwalPay","Environment","Currency","TransactionType","AmwalPaySDK","UuidUtil","Logger","LogLevel","NativeEventEmitter","eventEmitter","initiate","config","defaultAdditionValues","merchantIdentifier","finalAdditionValues","additionValues","nativeConfig","environment","secureHash","currency","amount","merchantId","terminalId","locale","customerId","transactionType","sessionToken","transactionId","generateTransactionId","merchantReference","onResponse","callback","addListener","onCustomerId"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,aAAa,IAClBC,WAAW,EACXC,QAAQ,EACRC,eAAe,QAIV,0BAAuB;AAC9B,OAAOC,WAAW,MAAM,kBAAe;AACvC,SAASC,QAAQ,QAAQ,qBAAkB;AAC3C,OAAOC,MAAM,IAAIC,QAAQ,QAAuB,mBAAgB;AAChE,SAASC,kBAAkB,QAAgC,cAAc;;AAEzE;AACA,MAAMC,YAAY,GAAG,IAAID,kBAAkB,CAACR,aAAoB,CAAC;AAEjE,OAAO,SAASU,QAAQA,CAACC,MAAsB,EAAQ;EACrD;EACA,MAAMC,qBAAqB,GAAG;IAC5BC,kBAAkB,EAAE;EACtB,CAAC;EAED,MAAMC,mBAAmB,GAAG;IAC1B,GAAGF,qBAAqB;IACxB,GAAGD,MAAM,CAACI;EACZ,CAAC;EAED,MAAMC,YAAkC,GAAG;IACzCC,WAAW,EAAEN,MAAM,CAACM,WAAW;IAC/BC,UAAU,EAAEP,MAAM,CAACO,UAAU;IAC7BC,QAAQ,EAAER,MAAM,CAACQ,QAAQ;IACzBC,MAAM,EAAET,MAAM,CAACS,MAAM;IACrBC,UAAU,EAAEV,MAAM,CAACU,UAAU;IAC7BC,UAAU,EAAEX,MAAM,CAACW,UAAU;IAC7BC,MAAM,EAAEZ,MAAM,CAACY,MAAM;IACrBC,UAAU,EAAEb,MAAM,CAACa,UAAU;IAC7BC,eAAe,EAAEd,MAAM,CAACc,eAAe;IACvCC,YAAY,EAAEf,MAAM,CAACe,YAAY;IACjCC,aAAa,EAAEhB,MAAM,CAACgB,aAAa,IAAItB,QAAQ,CAACuB,qBAAqB,CAAC,CAAC;IACvEb,cAAc,EAAED,mBAAmB;IACnCe,iBAAiB,EAAElB,MAAM,CAACkB;EAC5B,CAAC;;EAED;EACA7B,aAAa,CAACU,QAAQ,CAACM,YAAY,CAAC;AACtC;AAEA,OAAO,SAASc,UAAUA,CACxBC,QAA8C,EAC3B;EACnB,OAAOtB,YAAY,CAACuB,WAAW,CAAC,YAAY,EAAED,QAAQ,CAAC;AACzD;AACA,OAAO,SAASE,YAAYA,CAC1BF,QAAsC,EACnB;EACnB,OAAOtB,YAAY,CAACuB,WAAW,CAAC,cAAc,EAAED,QAAQ,CAAC;AAC3D;AAEA,SACE9B,WAAW,EACXC,QAAQ,EACRC,eAAe,EAGfC,WAAW,EACXC,QAAQ,EACRC,MAAM,EACNC,QAAQ","ignoreList":[]}
|
|
@@ -3,8 +3,11 @@
|
|
|
3
3
|
import { Alert } from 'react-native';
|
|
4
4
|
import { Environment } from "../NativeReactAmwalPay.js";
|
|
5
5
|
import SecureHashUtil from "../utils/SecureHashUtil.js";
|
|
6
|
+
import Logger from "../utils/Logger.js";
|
|
6
7
|
class NetworkClient {
|
|
7
|
-
constructor() {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.logger = Logger.getInstance();
|
|
10
|
+
}
|
|
8
11
|
static getInstance() {
|
|
9
12
|
if (!NetworkClient.instance) {
|
|
10
13
|
NetworkClient.instance = new NetworkClient();
|
|
@@ -12,25 +15,34 @@ class NetworkClient {
|
|
|
12
15
|
return NetworkClient.instance;
|
|
13
16
|
}
|
|
14
17
|
getWebhookUrl(env) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
const urls = {
|
|
19
|
+
[Environment.SIT]: 'https://test.amwalpg.com:24443/',
|
|
20
|
+
[Environment.UAT]: 'https://test.amwalpg.com:14443/',
|
|
21
|
+
[Environment.PROD]: 'https://webhook.amwalpg.com/'
|
|
22
|
+
};
|
|
23
|
+
const url = urls[env] || urls[Environment.SIT];
|
|
24
|
+
this.logger.debug('NetworkClient', `Using webhook URL for ${Environment[env]}`, {
|
|
25
|
+
url
|
|
26
|
+
});
|
|
27
|
+
return url;
|
|
25
28
|
}
|
|
26
29
|
async fetchSessionToken(env, merchantId, customerId, secureHashValue) {
|
|
27
30
|
try {
|
|
31
|
+
this.logger.info('NetworkClient', 'Fetching session token', {
|
|
32
|
+
environment: Environment[env],
|
|
33
|
+
merchantId,
|
|
34
|
+
hasCustomerId: !!customerId
|
|
35
|
+
});
|
|
28
36
|
const webhookUrl = this.getWebhookUrl(env);
|
|
29
37
|
const dataMap = {
|
|
30
38
|
merchantId,
|
|
31
39
|
customerId
|
|
32
40
|
};
|
|
33
41
|
const secureHash = SecureHashUtil.clearSecureHash(secureHashValue, dataMap);
|
|
42
|
+
this.logger.debug('NetworkClient', 'Making API request', {
|
|
43
|
+
url: `${webhookUrl}Membership/GetSDKSessionToken`,
|
|
44
|
+
method: 'POST'
|
|
45
|
+
});
|
|
34
46
|
const response = await fetch(`${webhookUrl}Membership/GetSDKSessionToken`, {
|
|
35
47
|
method: 'POST',
|
|
36
48
|
headers: {
|
|
@@ -45,19 +57,34 @@ class NetworkClient {
|
|
|
45
57
|
})
|
|
46
58
|
});
|
|
47
59
|
const responseData = await response.json();
|
|
60
|
+
this.logger.debug('NetworkClient', 'API response received', {
|
|
61
|
+
status: response.status,
|
|
62
|
+
ok: response.ok,
|
|
63
|
+
success: responseData.success
|
|
64
|
+
});
|
|
48
65
|
if (response.ok && responseData.success) {
|
|
66
|
+
this.logger.info('NetworkClient', 'Session token fetched successfully');
|
|
49
67
|
return responseData.data.sessionToken;
|
|
50
68
|
} else {
|
|
51
69
|
const errorMessage = responseData.errorList?.join(',') || 'Unknown error';
|
|
70
|
+
this.logger.error('NetworkClient', 'API request failed', {
|
|
71
|
+
status: response.status,
|
|
72
|
+
errorMessage,
|
|
73
|
+
responseData
|
|
74
|
+
});
|
|
52
75
|
this.showErrorDialog(errorMessage);
|
|
53
76
|
return null;
|
|
54
77
|
}
|
|
55
78
|
} catch (error) {
|
|
79
|
+
this.logger.error('NetworkClient', 'Network request failed', error);
|
|
56
80
|
this.showErrorDialog('Something Went Wrong');
|
|
57
81
|
return null;
|
|
58
82
|
}
|
|
59
83
|
}
|
|
60
84
|
showErrorDialog(message) {
|
|
85
|
+
this.logger.warn('NetworkClient', 'Showing error dialog', {
|
|
86
|
+
message
|
|
87
|
+
});
|
|
61
88
|
Alert.alert('Error', message, [{
|
|
62
89
|
text: 'OK'
|
|
63
90
|
}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Alert","Environment","SecureHashUtil","NetworkClient","constructor","getInstance","instance","getWebhookUrl","env","SIT","UAT","PROD","fetchSessionToken","merchantId","customerId","secureHashValue","webhookUrl","dataMap","secureHash","clearSecureHash","
|
|
1
|
+
{"version":3,"names":["Alert","Environment","SecureHashUtil","Logger","NetworkClient","constructor","logger","getInstance","instance","getWebhookUrl","env","urls","SIT","UAT","PROD","url","debug","fetchSessionToken","merchantId","customerId","secureHashValue","info","environment","hasCustomerId","webhookUrl","dataMap","secureHash","clearSecureHash","method","response","fetch","headers","body","JSON","stringify","responseData","json","status","ok","success","data","sessionToken","errorMessage","errorList","join","error","showErrorDialog","message","warn","alert","text"],"sourceRoot":"../../../src","sources":["network/NetworkClient.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Logger utility for AmwalPay SDK
|
|
5
|
+
* Provides structured logging with different levels and optional debug mode
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export let LogLevel = /*#__PURE__*/function (LogLevel) {
|
|
9
|
+
LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
|
|
10
|
+
LogLevel[LogLevel["INFO"] = 1] = "INFO";
|
|
11
|
+
LogLevel[LogLevel["WARN"] = 2] = "WARN";
|
|
12
|
+
LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
|
|
13
|
+
return LogLevel;
|
|
14
|
+
}({});
|
|
15
|
+
class Logger {
|
|
16
|
+
isDebugEnabled = __DEV__;
|
|
17
|
+
logLevel = LogLevel.INFO;
|
|
18
|
+
logs = [];
|
|
19
|
+
maxLogEntries = 1000;
|
|
20
|
+
constructor() {}
|
|
21
|
+
static getInstance() {
|
|
22
|
+
if (!Logger.instance) {
|
|
23
|
+
Logger.instance = new Logger();
|
|
24
|
+
}
|
|
25
|
+
return Logger.instance;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Enable or disable debug logging
|
|
30
|
+
*/
|
|
31
|
+
setDebugEnabled(enabled) {
|
|
32
|
+
this.isDebugEnabled = enabled;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Set minimum log level
|
|
37
|
+
*/
|
|
38
|
+
setLogLevel(level) {
|
|
39
|
+
this.logLevel = level;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Log debug message
|
|
44
|
+
*/
|
|
45
|
+
debug(tag, message, data) {
|
|
46
|
+
this.log(LogLevel.DEBUG, tag, message, data);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Log info message
|
|
51
|
+
*/
|
|
52
|
+
info(tag, message, data) {
|
|
53
|
+
this.log(LogLevel.INFO, tag, message, data);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Log warning message
|
|
58
|
+
*/
|
|
59
|
+
warn(tag, message, data) {
|
|
60
|
+
this.log(LogLevel.WARN, tag, message, data);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Log error message
|
|
65
|
+
*/
|
|
66
|
+
error(tag, message, data) {
|
|
67
|
+
this.log(LogLevel.ERROR, tag, message, data);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Internal logging method
|
|
72
|
+
*/
|
|
73
|
+
log(level, tag, message, data) {
|
|
74
|
+
if (level < this.logLevel) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const timestamp = new Date().toISOString();
|
|
78
|
+
const logEntry = {
|
|
79
|
+
timestamp,
|
|
80
|
+
level,
|
|
81
|
+
tag,
|
|
82
|
+
message,
|
|
83
|
+
data
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
// Store log entry
|
|
87
|
+
this.logs.push(logEntry);
|
|
88
|
+
|
|
89
|
+
// Maintain max log entries
|
|
90
|
+
if (this.logs.length > this.maxLogEntries) {
|
|
91
|
+
this.logs.shift();
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Console output
|
|
95
|
+
if (this.isDebugEnabled || level >= LogLevel.WARN) {
|
|
96
|
+
const levelStr = LogLevel[level];
|
|
97
|
+
const prefix = `[AmwalPay][${levelStr}][${tag}]`;
|
|
98
|
+
switch (level) {
|
|
99
|
+
case LogLevel.DEBUG:
|
|
100
|
+
console.debug(prefix, message, data || '');
|
|
101
|
+
break;
|
|
102
|
+
case LogLevel.INFO:
|
|
103
|
+
console.info(prefix, message, data || '');
|
|
104
|
+
break;
|
|
105
|
+
case LogLevel.WARN:
|
|
106
|
+
console.warn(prefix, message, data || '');
|
|
107
|
+
break;
|
|
108
|
+
case LogLevel.ERROR:
|
|
109
|
+
console.error(prefix, message, data || '');
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Get all stored logs
|
|
117
|
+
*/
|
|
118
|
+
getLogs() {
|
|
119
|
+
return [...this.logs];
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Get logs filtered by level
|
|
124
|
+
*/
|
|
125
|
+
getLogsByLevel(level) {
|
|
126
|
+
return this.logs.filter(log => log.level === level);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Get logs filtered by tag
|
|
131
|
+
*/
|
|
132
|
+
getLogsByTag(tag) {
|
|
133
|
+
return this.logs.filter(log => log.tag === tag);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Clear all stored logs
|
|
138
|
+
*/
|
|
139
|
+
clearLogs() {
|
|
140
|
+
this.logs = [];
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Export logs as JSON string
|
|
145
|
+
*/
|
|
146
|
+
exportLogs() {
|
|
147
|
+
return JSON.stringify(this.logs, null, 2);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
export default Logger;
|
|
151
|
+
//# sourceMappingURL=Logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["LogLevel","Logger","isDebugEnabled","__DEV__","logLevel","INFO","logs","maxLogEntries","constructor","getInstance","instance","setDebugEnabled","enabled","setLogLevel","level","debug","tag","message","data","log","DEBUG","info","warn","WARN","error","ERROR","timestamp","Date","toISOString","logEntry","push","length","shift","levelStr","prefix","console","getLogs","getLogsByLevel","filter","getLogsByTag","clearLogs","exportLogs","JSON","stringify"],"sourceRoot":"../../../src","sources":["utils/Logger.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
import { type AmwalPayConfig } from './index';
|
|
2
2
|
declare class AmwalPaySDK {
|
|
3
3
|
private static instance;
|
|
4
|
+
private logger;
|
|
4
5
|
private onResponseSubscription;
|
|
5
6
|
private onCustomerIdSubscription;
|
|
6
7
|
private constructor();
|
|
7
8
|
static getInstance(): AmwalPaySDK;
|
|
9
|
+
/**
|
|
10
|
+
* Enable or disable debug logging
|
|
11
|
+
*/
|
|
12
|
+
setDebugEnabled(enabled: boolean): void;
|
|
13
|
+
/**
|
|
14
|
+
* Get SDK logs for debugging purposes
|
|
15
|
+
*/
|
|
16
|
+
getLogs(): string;
|
|
17
|
+
/**
|
|
18
|
+
* Clear all SDK logs
|
|
19
|
+
*/
|
|
20
|
+
clearLogs(): void;
|
|
8
21
|
/**
|
|
9
22
|
* Initiates the payment process by first fetching a session token and then starting the payment flow
|
|
10
23
|
* @param config The payment configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmwalPaySDK.d.ts","sourceRoot":"","sources":["../../../src/AmwalPaySDK.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"AmwalPaySDK.d.ts","sourceRoot":"","sources":["../../../src/AmwalPaySDK.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAKjB,cAAM,WAAW;IACf,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAc;IACrC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,sBAAsB,CAAkC;IAEhE,OAAO,CAAC,wBAAwB,CAAkC;IAElE,OAAO;IAMP,MAAM,CAAC,WAAW,IAAI,WAAW;IAOjC;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQvC;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,SAAS,IAAI,IAAI;IAKjB;;;OAGG;IACG,YAAY,CAChB,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC;IAsDhB,OAAO,IAAI,IAAI;IAMf;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAsC3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAU7B;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Environment, Currency, TransactionType, type AmwalPayResponse, type AmwalPayConfig } from './NativeReactAmwalPay';
|
|
2
2
|
import AmwalPaySDK from './AmwalPaySDK';
|
|
3
3
|
import { UuidUtil } from './utils/UuidUtil';
|
|
4
|
+
import Logger, { LogLevel, type LogEntry } from './utils/Logger';
|
|
4
5
|
import { type EventSubscription } from 'react-native';
|
|
5
6
|
export declare function initiate(config: AmwalPayConfig): void;
|
|
6
7
|
export declare function onResponse(callback: (response: AmwalPayResponse) => void): EventSubscription;
|
|
7
8
|
export declare function onCustomerId(callback: (customerId: string) => void): EventSubscription;
|
|
8
|
-
export { Environment, Currency, TransactionType, type AmwalPayResponse, type AmwalPayConfig, AmwalPaySDK, UuidUtil, };
|
|
9
|
+
export { Environment, Currency, TransactionType, type AmwalPayResponse, type AmwalPayConfig, AmwalPaySDK, UuidUtil, Logger, LogLevel, type LogEntry, };
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAsB,EACpB,WAAW,EACX,QAAQ,EACR,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAK1E,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CA6BrD;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,GAC7C,iBAAiB,CAEnB;AACD,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GACrC,iBAAiB,CAEnB;AAED,OAAO,EACL,WAAW,EACX,QAAQ,EACR,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,WAAW,EACX,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAsB,EACpB,WAAW,EACX,QAAQ,EACR,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAK1E,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CA6BrD;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,GAC7C,iBAAiB,CAEnB;AACD,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GACrC,iBAAiB,CAEnB;AAED,OAAO,EACL,WAAW,EACX,QAAQ,EACR,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,WAAW,EACX,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,KAAK,QAAQ,GACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkClient.d.ts","sourceRoot":"","sources":["../../../../src/network/NetworkClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"NetworkClient.d.ts","sourceRoot":"","sources":["../../../../src/network/NetworkClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIrD,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC,OAAO,CAAC,aAAa;IAgBf,iBAAiB,CACrB,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAuEzB,OAAO,CAAC,eAAe;CAIxB;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger utility for AmwalPay SDK
|
|
3
|
+
* Provides structured logging with different levels and optional debug mode
|
|
4
|
+
*/
|
|
5
|
+
export declare enum LogLevel {
|
|
6
|
+
DEBUG = 0,
|
|
7
|
+
INFO = 1,
|
|
8
|
+
WARN = 2,
|
|
9
|
+
ERROR = 3
|
|
10
|
+
}
|
|
11
|
+
export interface LogEntry {
|
|
12
|
+
timestamp: string;
|
|
13
|
+
level: LogLevel;
|
|
14
|
+
tag: string;
|
|
15
|
+
message: string;
|
|
16
|
+
data?: any;
|
|
17
|
+
}
|
|
18
|
+
declare class Logger {
|
|
19
|
+
private static instance;
|
|
20
|
+
private isDebugEnabled;
|
|
21
|
+
private logLevel;
|
|
22
|
+
private logs;
|
|
23
|
+
private maxLogEntries;
|
|
24
|
+
private constructor();
|
|
25
|
+
static getInstance(): Logger;
|
|
26
|
+
/**
|
|
27
|
+
* Enable or disable debug logging
|
|
28
|
+
*/
|
|
29
|
+
setDebugEnabled(enabled: boolean): void;
|
|
30
|
+
/**
|
|
31
|
+
* Set minimum log level
|
|
32
|
+
*/
|
|
33
|
+
setLogLevel(level: LogLevel): void;
|
|
34
|
+
/**
|
|
35
|
+
* Log debug message
|
|
36
|
+
*/
|
|
37
|
+
debug(tag: string, message: string, data?: any): void;
|
|
38
|
+
/**
|
|
39
|
+
* Log info message
|
|
40
|
+
*/
|
|
41
|
+
info(tag: string, message: string, data?: any): void;
|
|
42
|
+
/**
|
|
43
|
+
* Log warning message
|
|
44
|
+
*/
|
|
45
|
+
warn(tag: string, message: string, data?: any): void;
|
|
46
|
+
/**
|
|
47
|
+
* Log error message
|
|
48
|
+
*/
|
|
49
|
+
error(tag: string, message: string, data?: any): void;
|
|
50
|
+
/**
|
|
51
|
+
* Internal logging method
|
|
52
|
+
*/
|
|
53
|
+
private log;
|
|
54
|
+
/**
|
|
55
|
+
* Get all stored logs
|
|
56
|
+
*/
|
|
57
|
+
getLogs(): LogEntry[];
|
|
58
|
+
/**
|
|
59
|
+
* Get logs filtered by level
|
|
60
|
+
*/
|
|
61
|
+
getLogsByLevel(level: LogLevel): LogEntry[];
|
|
62
|
+
/**
|
|
63
|
+
* Get logs filtered by tag
|
|
64
|
+
*/
|
|
65
|
+
getLogsByTag(tag: string): LogEntry[];
|
|
66
|
+
/**
|
|
67
|
+
* Clear all stored logs
|
|
68
|
+
*/
|
|
69
|
+
clearLogs(): void;
|
|
70
|
+
/**
|
|
71
|
+
* Export logs as JSON string
|
|
72
|
+
*/
|
|
73
|
+
exportLogs(): string;
|
|
74
|
+
}
|
|
75
|
+
export default Logger;
|
|
76
|
+
//# sourceMappingURL=Logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../../../src/utils/Logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACV;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,cAAM,MAAM;IACV,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAChC,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,MAAM;IAO5B;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIvC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAIlC;;OAEG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIrD;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIpD;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIpD;;OAEG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIrD;;OAEG;IACH,OAAO,CAAC,GAAG;IA4CX;;OAEG;IACH,OAAO,IAAI,QAAQ,EAAE;IAIrB;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,EAAE;IAI3C;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE;IAIrC;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB;;OAEG;IACH,UAAU,IAAI,MAAM;CAGrB;AAED,eAAe,MAAM,CAAC"}
|