react-amwal-pay 0.1.16 → 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.
@@ -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 event emitter
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
- console.log('Fetching session token for environment:', config.environment);
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
- // If session token is null, the error has already been shown by NetworkClient
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
- console.log('Initiating native payment with config:', JSON.stringify(completeConfig));
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
- console.error('Error starting payment:', error);
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
- console.log('🟢 Setting up event listeners...');
65
- console.log('🟢 onResponse callback exists?', typeof config.onResponse === 'function');
66
- console.log('🟢 onCustomerId callback exists?', typeof config.onCustomerId === 'function');
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
- console.log('🟢 SDK onResponse listener triggered with:', response);
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
- console.error(' config.onResponse is not a function!');
110
+ this.logger.error('AmwalPaySDK', 'onResponse callback is not a function');
74
111
  }
75
112
  });
76
113
  this.onCustomerIdSubscription = onCustomerId(customerId => {
77
- console.log('🟢 SDK onCustomerId listener triggered with:', customerId);
78
- console.log('Received customerId:', customerId);
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
- console.error(' config.onCustomerId is not a function!');
120
+ this.logger.error('AmwalPaySDK', 'onCustomerId callback is not a function');
83
121
  }
84
122
  });
85
- console.log('🟢 Event listeners set up complete');
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","getInstance","instance","startPayment","config","setupEventListeners","networkClient","console","log","environment","sessionToken","fetchSessionToken","merchantId","customerId","secureHash","completeConfig","JSON","stringify","error","dispose","removeEventListeners","response","remove"],"sourceRoot":"../../src","sources":["AmwalPaySDK.ts"],"mappings":"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","ignoreList":[]}
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":[]}
@@ -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
@@ -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,CAACN,aAAoB,CAAC;AAEjE,OAAO,SAASQ,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,IAAIpB,QAAQ,CAACqB,qBAAqB,CAAC,CAAC;IACvEb,cAAc,EAAED,mBAAmB;IACnCe,iBAAiB,EAAElB,MAAM,CAACkB;EAC5B,CAAC;;EAED;EACA3B,aAAa,CAACQ,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,SACE5B,WAAW,EACXC,QAAQ,EACRC,eAAe,EAGfC,WAAW,EACXC,QAAQ","ignoreList":[]}
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
- switch (env) {
16
- case Environment.SIT:
17
- return 'https://test.amwalpg.com:24443/';
18
- case Environment.UAT:
19
- return 'https://test.amwalpg.com:14443/';
20
- case Environment.PROD:
21
- return 'https://webhook.amwalpg.com/';
22
- default:
23
- return 'https://test.amwalpg.com:24443/';
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","response","fetch","method","headers","body","JSON","stringify","responseData","json","ok","success","data","sessionToken","errorMessage","errorList","join","showErrorDialog","error","message","alert","text"],"sourceRoot":"../../../src","sources":["network/NetworkClient.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,cAAc;AACpC,SAASC,WAAW,QAAQ,2BAAwB;AACpD,OAAOC,cAAc,MAAM,4BAAyB;AAEpD,MAAMC,aAAa,CAAC;EAGVC,WAAWA,CAAA,EAAG,CAAC;EAEvB,OAAOC,WAAWA,CAAA,EAAkB;IAClC,IAAI,CAACF,aAAa,CAACG,QAAQ,EAAE;MAC3BH,aAAa,CAACG,QAAQ,GAAG,IAAIH,aAAa,CAAC,CAAC;IAC9C;IACA,OAAOA,aAAa,CAACG,QAAQ;EAC/B;EAEQC,aAAaA,CAACC,GAAgB,EAAU;IAC9C,QAAQA,GAAG;MACT,KAAKP,WAAW,CAACQ,GAAG;QAClB,OAAO,iCAAiC;MAC1C,KAAKR,WAAW,CAACS,GAAG;QAClB,OAAO,iCAAiC;MAC1C,KAAKT,WAAW,CAACU,IAAI;QACnB,OAAO,8BAA8B;MACvC;QACE,OAAO,iCAAiC;IAC5C;EACF;EAEA,MAAMC,iBAAiBA,CACrBJ,GAAgB,EAChBK,UAAkB,EAClBC,UAAyB,EACzBC,eAAuB,EACC;IACxB,IAAI;MACF,MAAMC,UAAU,GAAG,IAAI,CAACT,aAAa,CAACC,GAAG,CAAC;MAE1C,MAAMS,OAAO,GAAG;QACdJ,UAAU;QACVC;MACF,CAAC;MAED,MAAMI,UAAU,GAAGhB,cAAc,CAACiB,eAAe,CAC/CJ,eAAe,EACfE,OACF,CAAC;MAED,MAAMG,QAAQ,GAAG,MAAMC,KAAK,CAC1B,GAAGL,UAAU,+BAA+B,EAC5C;QACEM,MAAM,EAAE,MAAM;QACdC,OAAO,EAAE;UACP,QAAQ,EAAE,YAAY;UACtB,iBAAiB,EAAE,gBAAgB;UACnC,cAAc,EAAE;QAClB,CAAC;QACDC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;UACnBb,UAAU;UACVE,eAAe,EAAEG,UAAU;UAC3BJ;QACF,CAAC;MACH,CACF,CAAC;MAED,MAAMa,YAAY,GAAG,MAAMP,QAAQ,CAACQ,IAAI,CAAC,CAAC;MAE1C,IAAIR,QAAQ,CAACS,EAAE,IAAIF,YAAY,CAACG,OAAO,EAAE;QACvC,OAAOH,YAAY,CAACI,IAAI,CAACC,YAAY;MACvC,CAAC,MAAM;QACL,MAAMC,YAAY,GAChBN,YAAY,CAACO,SAAS,EAAEC,IAAI,CAAC,GAAG,CAAC,IAAI,eAAe;QACtD,IAAI,CAACC,eAAe,CAACH,YAAY,CAAC;QAClC,OAAO,IAAI;MACb;IACF,CAAC,CAAC,OAAOI,KAAK,EAAE;MACd,IAAI,CAACD,eAAe,CAAC,sBAAsB,CAAC;MAC5C,OAAO,IAAI;IACb;EACF;EAEQA,eAAeA,CAACE,OAAe,EAAQ;IAC7CtC,KAAK,CAACuC,KAAK,CAAC,OAAO,EAAED,OAAO,EAAE,CAAC;MAAEE,IAAI,EAAE;IAAK,CAAC,CAAC,CAAC;EACjD;AACF;AAEA,eAAerC,aAAa","ignoreList":[]}
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;AAIjB,cAAM,WAAW;IACf,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAc;IAErC,OAAO,CAAC,sBAAsB,CAAkC;IAEhE,OAAO,CAAC,wBAAwB,CAAkC;IAElE,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,WAAW;IAOjC;;;OAGG;IACG,YAAY,CAChB,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC;IA4ChB,OAAO,IAAI,IAAI;IAKf;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAuC3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAM7B;AAED,eAAe,WAAW,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,GACT,CAAC"}
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,6 +1,7 @@
1
1
  import { Environment } from '../NativeReactAmwalPay';
2
2
  declare class NetworkClient {
3
3
  private static instance;
4
+ private logger;
4
5
  private constructor();
5
6
  static getInstance(): NetworkClient;
6
7
  private getWebhookUrl;
@@ -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;AAGrD,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IAEvC,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC,OAAO,CAAC,aAAa;IAaf,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;IA+CzB,OAAO,CAAC,eAAe;CAGxB;AAED,eAAe,aAAa,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-amwal-pay",
3
- "version": "0.1.16",
3
+ "version": "0.1.18",
4
4
  "description": "amwal pay",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",