react-native-fpay 0.4.6 → 0.4.8

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.
@@ -128,7 +128,12 @@ export function FountainPayProvider({
128
128
  async initializeSDK(user, callbacks) {
129
129
  console.log('[FountainPay] initializeSDK() called for user:', user.firstName);
130
130
  try {
131
- await FPEngine.initialize(apiKey, user, options ?? {}, callbacks ?? {});
131
+ // await FPEngine.initialize(
132
+ // apiKey,
133
+ // user,
134
+ // options ?? {},
135
+ // callbacks ?? {}
136
+ // );
132
137
  await FPEngine.initialize(apiKey, user, options ?? {}, {
133
138
  ...callbacks,
134
139
  onPaymentSent: async tx => {
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","useEffect","useMemo","useRef","FPShell","useFPStore","getFPStore","isTokenValid","FPEngine","initClient","authenticateAPI","transferAPI","jsx","_jsx","jsxs","_jsxs","FountainPayContext","useFountainPay","instance","Error","FountainPayProvider","apiKey","options","children","onAuthReady","onAuthError","clientBooted","isAuthenticated","s","authError","setAuthenticated","account","user","balance","console","log","cancelled","current","baseUrl","environment","authenticate","response","login","status","payload","access_token","setAccessToken","expires_in","banks","getBanks","setBanks","error","message","err","slice","initializeSDK","callbacks","firstName","initialize","onPaymentSent","tx","refreshBalance","onError","setAccountDetails","accountName","send","amount","currency","Number","getCallbacks","code","showSend","receive","showReceive","generateAccountNumber","generateAccount","listen","startListening","destroy","isReady","currentUser","Provider","value"],"sourceRoot":"../../src","sources":["FountainPayProvider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAEEA,aAAa,EACbC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,MAAM,QACD,OAAO;AACd,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,UAAU,EAAEC,UAAU,EAAEC,YAAY,QAAQ,oBAAiB;AACtE,SAASC,QAAQ,QAAQ,sBAAmB;AAC5C,SAASC,UAAU,QAAQ,sBAAmB;AAU9C,SAASC,eAAe,EAAEC,WAAW,QAAQ,qBAAY;;AAEzD;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEA,MAAMC,kBAAkB,gBAAGjB,aAAa,CAAoB,IAAI,CAAC;;AAEjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASkB,cAAcA,CAAA,EAAe;EAC3C,MAAMC,QAAQ,GAAGlB,UAAU,CAACgB,kBAAkB,CAAC;EAC/C,IAAI,CAACE,QAAQ,EAAE;IACb,MAAM,IAAIC,KAAK,CACb,+EAA+E,GAC7E,mFACJ,CAAC;EACH;EACA,OAAOD,QAAQ;AACjB;;AAEA;;AAUA,OAAO,SAASE,mBAAmBA,CAAC;EAClCC,MAAM;EACNC,OAAO;EACPC,QAAQ;EACRC,WAAW;EACXC;AACa,CAAC,EAAE;EAChB;EACA;EACA,MAAMC,YAAY,GAAGvB,MAAM,CAAC,KAAK,CAAC;EAElC,MAAMwB,eAAe,GAAGtB,UAAU,CAAEuB,CAAC,IAAKA,CAAC,CAACD,eAAe,CAAC;EAC5D,MAAME,SAAS,GAAGxB,UAAU,CAAEuB,CAAC,IAAKA,CAAC,CAACC,SAAS,CAAC;EAChD,MAAMC,gBAAgB,GAAGzB,UAAU,CAAEuB,CAAC,IAAKA,CAAC,CAACE,gBAAgB,CAAC;EAC9D,MAAMC,OAAO,GAAG1B,UAAU,CAAEuB,CAAC,IAAKA,CAAC,CAACG,OAAO,CAAC;EAC5C,MAAMC,IAAI,GAAG3B,UAAU,CAAEuB,CAAC,IAAKA,CAAC,CAACI,IAAI,CAAC;EACtC,MAAMC,OAAO,GAAG5B,UAAU,CAAEuB,CAAC,IAAKA,CAAC,CAACK,OAAO,CAAC;EAE5CC,OAAO,CAACC,GAAG,CAAC,iBAAiB,EAAEH,IAAI,CAAC;EACpCE,OAAO,CAACC,GAAG,CAAC,oBAAoB,EAAEJ,OAAO,CAAC;EAE1C9B,SAAS,CAAC,MAAM;IACd,IAAImC,SAAS,GAAG,KAAK;;IAErB;IACAF,OAAO,CAACC,GAAG,CAAC,oDAAoD,EAAEb,OAAO,CAAC;IAC1E,IAAI,CAACI,YAAY,CAACW,OAAO,EAAE;MACzB5B,UAAU,CAACY,MAAM,EAAE;QACjBiB,OAAO,EAAEhB,OAAO,EAAEgB,OAAO;QACzBC,WAAW,EAAEjB,OAAO,EAAEiB;MACxB,CAAC,CAAC;MACFb,YAAY,CAACW,OAAO,GAAG,IAAI;MAC3BH,OAAO,CAACC,GAAG,CACT,sDAAsD,EACtDb,OACF,CAAC;IACH;IAEA,MAAMkB,YAAY,GAAG,MAAAA,CAAA,KAAY;MAC/B,IAAIjC,YAAY,CAAC,CAAC,EAAE;QAClB2B,OAAO,CAACC,GAAG,CAAC,kDAAkD,CAAC;QAC/DL,gBAAgB,CAAC,IAAI,CAAC;QACtBN,WAAW,GAAG,CAAC;QACf;MACF;MAEA,IAAI;QACFU,OAAO,CAACC,GAAG,CAAC,oCAAoC,CAAC;QACjD,MAAMM,QAAQ,GAAG,MAAM/B,eAAe,CAACgC,KAAK,CAACrB,MAAM,CAAC;QACpD,IAAIe,SAAS,EAAE;QAEf,IAAIK,QAAQ,CAACE,MAAM,EAAE;UACnBT,OAAO,CAACC,GAAG,CAAC,gCAAgC,CAAC;UAC7C,IAAIM,QAAQ,CAACG,OAAO,EAAEC,YAAY,EAAE;YAClCvC,UAAU,CAAC,CAAC,CAACwC,cAAc,CACzBL,QAAQ,CAACG,OAAO,CAACC,YAAY,EAC7BJ,QAAQ,CAACG,OAAO,CAACG,UACnB,CAAC;YAED,MAAMC,KAAU,GAAG,MAAMrC,WAAW,CAACsC,QAAQ,CAAC,CAAC;YAC/C,IAAID,KAAK,CAACL,MAAM,EAAE;cAChBrC,UAAU,CAAC,CAAC,CAAC4C,QAAQ,CAACF,KAAK,CAACJ,OAAO,CAAC;YACtC;UACF;UACAd,gBAAgB,CAAC,IAAI,CAAC;UACtBN,WAAW,GAAG,CAAC;QACjB,CAAC,MAAM;UACLU,OAAO,CAACiB,KAAK,CAAC,4BAA4B,EAAEV,QAAQ,CAACW,OAAO,CAAC;UAC7DtB,gBAAgB,CAAC,KAAK,EAAEW,QAAQ,CAACW,OAAO,CAAC;UACzC3B,WAAW,GAAGgB,QAAQ,CAACW,OAAO,CAAC;QACjC;MACF,CAAC,CAAC,OAAOC,GAAQ,EAAE;QACjB,IAAIjB,SAAS,EAAE;QACfF,OAAO,CAACiB,KAAK,CAAC,2BAA2B,EAAEE,GAAG,CAACD,OAAO,CAAC;QACvDtB,gBAAgB,CAAC,KAAK,EAAEuB,GAAG,CAACD,OAAO,CAAC;QACpC3B,WAAW,GAAG4B,GAAG,CAACD,OAAO,CAAC;MAC5B;IACF,CAAC;IAEDlB,OAAO,CAACC,GAAG,CAAC,wBAAwB,CAAC;IACrCK,YAAY,CAAC,CAAC;IACd,OAAO,MAAM;MACXJ,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CAACf,MAAM,CAAC,CAAC;;EAEZ;EACA;EACA,MAAMH,QAAQ,GAAGhB,OAAO,CAAa,MAAM;IACzCgC,OAAO,CAACC,GAAG,CACT,sDAAsD,EACtDd,MAAM,CAACiC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KACvB,CAAC;IAED,OAAO;MACL;AACN;AACA;AACA;MACM,MAAMC,aAAaA,CACjBvB,IAAgB,EAChBwB,SAAuB,EACR;QACftB,OAAO,CAACC,GAAG,CACT,gDAAgD,EAChDH,IAAI,CAACyB,SACP,CAAC;QACD,IAAI;UACF,MAAMjD,QAAQ,CAACkD,UAAU,CACvBrC,MAAM,EACNW,IAAI,EACJV,OAAO,IAAI,CAAC,CAAC,EACbkC,SAAS,IAAI,CAAC,CAChB,CAAC;UACD,MAAMhD,QAAQ,CAACkD,UAAU,CAACrC,MAAM,EAAEW,IAAI,EAAEV,OAAO,IAAI,CAAC,CAAC,EAAE;YACrD,GAAGkC,SAAS;YACZG,aAAa,EAAE,MAAOC,EAAE,IAAK;cAC3BJ,SAAS,EAAEG,aAAa,GAAGC,EAAE,CAAC;cAC9B,MAAMpD,QAAQ,CAACqD,cAAc,CAAC,CAAC;cAC/B;YACF,CAAC;YACDC,OAAO,EAAGT,GAAG,IAAK;cAChBG,SAAS,EAAEM,OAAO,GAAGT,GAAG,CAAC;cACzB;YACF;UACF,CAAC,CAAC;UACFnB,OAAO,CAACC,GAAG,CAAC,uDAAuD,CAAC;QACtE,CAAC,CAAC,OAAOkB,GAAG,EAAE;UACZnB,OAAO,CAACiB,KAAK,CAAC,uCAAuC,EAAEE,GAAG,CAAC;UAC3D,MAAMA,GAAG;QACX;MACF,CAAC;MAEDU,iBAAiBA,CAAChC,OAA4B,EAAQ;QACpDG,OAAO,CAACC,GAAG,CACT,oDAAoD,EACpDJ,OAAO,CAACiC,WACV,CAAC;QACDxD,QAAQ,CAACuD,iBAAiB,CAAChC,OAAO,CAAC;MACrC,CAAC;MAED;MACAkC,IAAIA,CAACC,MAAc,EAAEC,QAAoB,EAAQ;QAC/CjC,OAAO,CAACC,GAAG,CAAC,8BAA8B,EAAE+B,MAAM,EAAEC,QAAQ,CAAC;QAC7DjC,OAAO,CAACC,GAAG,CAAC,8BAA8B,EAAE+B,MAAM,EAAEC,QAAQ,CAAC;QAC7DjC,OAAO,CAACC,GAAG,CAAC,iCAAiC,EAAE7B,UAAU,CAAC,CAAC,CAAC2B,OAAO,CAAC;QACpEC,OAAO,CAACC,GAAG,CAAC,6BAA6B,EAAE,OAAO7B,UAAU,CAAC,CAAC,CAAC2B,OAAO,CAAC;QAEvE,MAAMA,OAAO,GAAG3B,UAAU,CAAC,CAAC,CAAC2B,OAAO,IAAI,CAAC;QACzCC,OAAO,CAACC,GAAG,CAAC,WAAW,EAAEF,OAAO,CAAC;QACjC,IAAImC,MAAM,CAACF,MAAM,CAAC,GAAGE,MAAM,CAACnC,OAAO,CAAC,EAAE;UACpCC,OAAO,CAACiB,KAAK,CAAC,qCAAqC,CAAC;UACpD3C,QAAQ,CAAC6D,YAAY,CAAC,CAAC,CAACP,OAAO,GAAG;YAChCQ,IAAI,EAAE,sBAAsB;YAC5BlB,OAAO,EAAE,oCAAoCnB,OAAO;UACtD,CAAC,CAAC;UACF,OAAO,CAAC;QACV;QAEAzB,QAAQ,CAAC+D,QAAQ,CAACL,MAAM,EAAEC,QAAQ,CAAC;MACrC,CAAC;MAED;MACAK,OAAOA,CAACN,MAAe,EAAEC,QAAoB,GAAG,KAAK,EAAQ;QAC3DjC,OAAO,CAACC,GAAG,CAAC,iCAAiC,EAAE+B,MAAM,EAAEC,QAAQ,CAAC;QAChE3D,QAAQ,CAACiE,WAAW,CAACP,MAAM,EAAEC,QAAQ,CAAC;MACxC,CAAC;MAED;MACA,MAAMO,qBAAqBA,CAAC1C,IAAgB,EAAsB;QAChEE,OAAO,CAACC,GAAG,CACT,+CAA+C,EAC/CH,IAAI,CAACyB,SACP,CAAC;QACD,OAAOjD,QAAQ,CAACmE,eAAe,CAAC3C,IAAI,CAAC;MACvC,CAAC;MAED;AACN;AACA;AACA;AACA;MACM4C,MAAMA,CAAA,EAAS;QACb1C,OAAO,CAACC,GAAG,CACT,iEACF,CAAC;QACD3B,QAAQ,CAACqE,cAAc,CAAC,CAAC;MAC3B,CAAC;MAED;MACA,MAAMC,OAAOA,CAAA,EAAkB;QAC7B5C,OAAO,CAACC,GAAG,CAAC,yDAAyD,CAAC;QACtE,MAAM3B,QAAQ,CAACsE,OAAO,CAAC,CAAC;QACxB5C,OAAO,CAACC,GAAG,CAAC,qCAAqC,CAAC;MACpD,CAAC;MAED,MAAM0B,cAAcA,CAAA,EAAkB;QACpC,MAAMrD,QAAQ,CAACqD,cAAc,CAAC,CAAC;MACjC,CAAC;MAED,IAAIkB,OAAOA,CAAA,EAAY;QACrB,OAAOvE,QAAQ,CAACuE,OAAO,CAAC,CAAC;MAC3B,CAAC;MACD,IAAIpD,eAAeA,CAAA,EAAY;QAC7B,OAAOA,eAAe;MACxB,CAAC;MACD,IAAIE,SAASA,CAAA,EAAkB;QAC7B,OAAOA,SAAS;MAClB,CAAC;MACD,IAAIE,OAAOA,CAAA,EAAqB;QAC9B,OAAOA,OAAO;MAChB,CAAC;MACD,IAAIiD,WAAWA,CAAA,EAAsB;QACnC,OAAOhD,IAAI;MACb,CAAC;MACD,IAAIC,OAAOA,CAAA,EAAkB;QAC3B,OAAOA,OAAO;MAChB;IACF,CAAC;EACH,CAAC,EAAE,CAACZ,MAAM,EAAEM,eAAe,EAAEE,SAAS,EAAEE,OAAO,EAAEC,IAAI,EAAEC,OAAO,CAAC,CAAC;EAEhE,oBACElB,KAAA,CAACC,kBAAkB,CAACiE,QAAQ;IAACC,KAAK,EAAEhE,QAAS;IAAAK,QAAA,GAC1CA,QAAQ,eAETV,IAAA,CAACT,OAAO,IAAE,CAAC;EAAA,CACgB,CAAC;AAElC","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","useEffect","useMemo","useRef","FPShell","useFPStore","getFPStore","isTokenValid","FPEngine","initClient","authenticateAPI","transferAPI","jsx","_jsx","jsxs","_jsxs","FountainPayContext","useFountainPay","instance","Error","FountainPayProvider","apiKey","options","children","onAuthReady","onAuthError","clientBooted","isAuthenticated","s","authError","setAuthenticated","account","user","balance","console","log","cancelled","current","baseUrl","environment","authenticate","response","login","status","payload","access_token","setAccessToken","expires_in","banks","getBanks","setBanks","error","message","err","slice","initializeSDK","callbacks","firstName","initialize","onPaymentSent","tx","refreshBalance","onError","setAccountDetails","accountName","send","amount","currency","Number","getCallbacks","code","showSend","receive","showReceive","generateAccountNumber","generateAccount","listen","startListening","destroy","isReady","currentUser","Provider","value"],"sourceRoot":"../../src","sources":["FountainPayProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,8 @@ import axios from 'axios';
8
8
  import { getFPStore } from "../../store/FPStore.js";
9
9
  const DEFAULT_BASE_URL = 'https://kenisha-happiest-nan.ngrok-free.dev/sdk/v1/fpip/';
10
10
  let _client = null;
11
+ let _isRefreshing = false;
12
+ let _retryQueue = [];
11
13
  export function initClient(apiKey, options = {}) {
12
14
  _client = axios.create({
13
15
  baseURL: options.baseUrl ?? DEFAULT_BASE_URL,
@@ -32,7 +34,61 @@ export function initClient(apiKey, options = {}) {
32
34
  }
33
35
  return config;
34
36
  });
35
- _client.interceptors.response.use(r => r, err => {
37
+ _client.interceptors.response.use(r => r, async err => {
38
+ const originalRequest = err.config;
39
+
40
+ // Handle 401 — token expired
41
+ if (err.response?.status === 401 && !originalRequest._retry) {
42
+ originalRequest._retry = true; // prevent infinite loop
43
+
44
+ if (_isRefreshing) {
45
+ // Another request already refreshing — queue this one
46
+ return new Promise(resolve => {
47
+ _retryQueue.push(newToken => {
48
+ originalRequest.headers.Authorization = `Bearer ${newToken}`;
49
+ resolve(_client.request(originalRequest));
50
+ });
51
+ });
52
+ }
53
+ _isRefreshing = true;
54
+ try {
55
+ console.log('[FPay HTTP] Token expired — re-authenticating...');
56
+
57
+ // Clear expired token first
58
+ getFPStore().clearAccessToken();
59
+
60
+ // Re-authenticate with the stored API key
61
+ const apiKey = originalRequest.headers['x-api-key'];
62
+ const response = await _client.post('/auth', {
63
+ api_key: apiKey
64
+ });
65
+ if (response.data?.status && response.data?.payload?.access_token) {
66
+ const newToken = response.data.payload.access_token;
67
+ const expiresIn = response.data.payload.expires_in;
68
+
69
+ // Save new token to store
70
+ getFPStore().setAccessToken(newToken, expiresIn);
71
+ console.log('[FPay HTTP] Re-authenticated successfully.');
72
+
73
+ // Retry queued requests with new token
74
+ _retryQueue.forEach(cb => cb(newToken));
75
+ _retryQueue = [];
76
+
77
+ // Retry original request with new token
78
+ originalRequest.headers.Authorization = `Bearer ${newToken}`;
79
+ return _client.request(originalRequest);
80
+ }
81
+ } catch (refreshErr) {
82
+ console.error('[FPay HTTP] Re-authentication failed:', refreshErr);
83
+ _retryQueue = [];
84
+ getFPStore().clearAccessToken();
85
+ getFPStore().setAuthenticated(false, 'Session expired. Please restart the app.');
86
+ } finally {
87
+ _isRefreshing = false;
88
+ }
89
+ }
90
+
91
+ // All other errors — normalize and reject
36
92
  const e = {
37
93
  code: 'UNKNOWN',
38
94
  message: 'An error occurred'
@@ -45,10 +101,6 @@ export function initClient(apiKey, options = {}) {
45
101
  e.code = d.code ?? `HTTP_${err.response.status}`;
46
102
  e.message = d.message ?? err.message;
47
103
  e.statusCode = err.response.status;
48
- if (err.response.status === 401) {
49
- e.code = 'INVALID_API_KEY';
50
- e.message = 'Invalid API key.';
51
- }
52
104
  }
53
105
  return Promise.reject(e);
54
106
  });
@@ -1 +1 @@
1
- {"version":3,"names":["axios","getFPStore","DEFAULT_BASE_URL","_client","initClient","apiKey","options","create","baseURL","baseUrl","timeout","headers","environment","interceptors","request","use","config","accessToken","console","log","Authorization","response","r","err","e","code","message","d","data","status","statusCode","Promise","reject","http","Error"],"sourceRoot":"../../../../src","sources":["core/api/client.ts"],"mappings":";;AAAA;AACA;AACA;;AAEA,OAAOA,KAAK,MAA8B,OAAO;AAEjD,SAASC,UAAU,QAAQ,wBAAqB;AAEhD,MAAMC,gBAAgB,GACpB,0DAA0D;AAE5D,IAAIC,OAA6B,GAAG,IAAI;AAExC,OAAO,SAASC,UAAUA,CACxBC,MAAc,EACdC,OAAmD,GAAG,CAAC,CAAC,EAClD;EACNH,OAAO,GAAGH,KAAK,CAACO,MAAM,CAAC;IACrBC,OAAO,EAAEF,OAAO,CAACG,OAAO,IAAIP,gBAAgB;IAC5CQ,OAAO,EAAE,KAAK;IACdC,OAAO,EAAE;MACP,cAAc,EAAE,kBAAkB;MAClC,WAAW,EAAEN,MAAM;MACnB,cAAc,EAAE,OAAO;MACvB,OAAO,EAAE,8BAA8B;MACvC,eAAe,EAAE,OAAO;MACxB,OAAO,EAAEC,OAAO,CAACM,WAAW,IAAI;IAClC;EACF,CAAC,CAAC;;EAEF;EACA;EACAT,OAAO,CAACU,YAAY,CAACC,OAAO,CAACC,GAAG,CAAEC,MAAM,IAAK;IAC3C,MAAMC,WAAW,GAAGhB,UAAU,CAAC,CAAC,CAACgB,WAAW;IAC5CC,OAAO,CAACC,GAAG,CAAC,+BAA+B,EAAEF,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;IAC9E,IAAIA,WAAW,EAAE;MACfD,MAAM,CAACL,OAAO,CAACS,aAAa,GAAG,UAAUH,WAAW,EAAE;IACxD;IACA,OAAOD,MAAM;EACf,CAAC,CAAC;EAEFb,OAAO,CAACU,YAAY,CAACQ,QAAQ,CAACN,GAAG,CAC9BO,CAAC,IAAKA,CAAC,EACPC,GAAG,IAAK;IACP,MAAMC,CAAU,GAAG;MAAEC,IAAI,EAAE,SAAS;MAAEC,OAAO,EAAE;IAAoB,CAAC;IACpE,IAAI,CAACH,GAAG,CAACF,QAAQ,EAAE;MACjBG,CAAC,CAACC,IAAI,GAAG,eAAe;MACxBD,CAAC,CAACE,OAAO,GAAG,uCAAuC;IACrD,CAAC,MAAM;MACL,MAAMC,CAAC,GAAGJ,GAAG,CAACF,QAAQ,CAACO,IAAI,IAAI,CAAC,CAAC;MACjCJ,CAAC,CAACC,IAAI,GAAGE,CAAC,CAACF,IAAI,IAAI,QAAQF,GAAG,CAACF,QAAQ,CAACQ,MAAM,EAAE;MAChDL,CAAC,CAACE,OAAO,GAAGC,CAAC,CAACD,OAAO,IAAIH,GAAG,CAACG,OAAO;MACpCF,CAAC,CAACM,UAAU,GAAGP,GAAG,CAACF,QAAQ,CAACQ,MAAM;MAClC,IAAIN,GAAG,CAACF,QAAQ,CAACQ,MAAM,KAAK,GAAG,EAAE;QAC/BL,CAAC,CAACC,IAAI,GAAG,iBAAiB;QAC1BD,CAAC,CAACE,OAAO,GAAG,kBAAkB;MAChC;IACF;IACA,OAAOK,OAAO,CAACC,MAAM,CAACR,CAAC,CAAC;EAC1B,CACF,CAAC;AACH;AAEA,OAAO,SAASS,IAAIA,CAAA,EAAkB;EACpC,IAAI,CAAC9B,OAAO,EACV,MAAM,IAAI+B,KAAK,CACb,oEACF,CAAC;EACH,OAAO/B,OAAO;AAChB","ignoreList":[]}
1
+ {"version":3,"names":["axios","getFPStore","DEFAULT_BASE_URL","_client","_isRefreshing","_retryQueue","initClient","apiKey","options","create","baseURL","baseUrl","timeout","headers","environment","interceptors","request","use","config","accessToken","console","log","Authorization","response","r","err","originalRequest","status","_retry","Promise","resolve","push","newToken","clearAccessToken","post","api_key","data","payload","access_token","expiresIn","expires_in","setAccessToken","forEach","cb","refreshErr","error","setAuthenticated","e","code","message","d","statusCode","reject","http","Error"],"sourceRoot":"../../../../src","sources":["core/api/client.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../src/core/api/client.ts"],"names":[],"mappings":"AAIA,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AASlD,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACvD,IAAI,CA6CN;AAED,wBAAgB,IAAI,IAAI,aAAa,CAMpC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../src/core/api/client.ts"],"names":[],"mappings":"AAIA,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAWlD,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACvD,IAAI,CAgGN;AAED,wBAAgB,IAAI,IAAI,aAAa,CAMpC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-fpay",
3
- "version": "0.4.6",
3
+ "version": "0.4.8",
4
4
  "description": "Fountain Pay react-native sdk library",
5
5
  "main": "./lib/module/index.js",
6
6
  "module": "./lib/module/index.js",
@@ -177,12 +177,12 @@ export function FountainPayProvider({
177
177
  user.firstName
178
178
  );
179
179
  try {
180
- await FPEngine.initialize(
181
- apiKey,
182
- user,
183
- options ?? {},
184
- callbacks ?? {}
185
- );
180
+ // await FPEngine.initialize(
181
+ // apiKey,
182
+ // user,
183
+ // options ?? {},
184
+ // callbacks ?? {}
185
+ // );
186
186
  await FPEngine.initialize(apiKey, user, options ?? {}, {
187
187
  ...callbacks,
188
188
  onPaymentSent: async (tx) => {
@@ -10,6 +10,8 @@ const DEFAULT_BASE_URL =
10
10
  'https://kenisha-happiest-nan.ngrok-free.dev/sdk/v1/fpip/';
11
11
 
12
12
  let _client: AxiosInstance | null = null;
13
+ let _isRefreshing = false;
14
+ let _retryQueue: Array<(token: string) => void> = [];
13
15
 
14
16
  export function initClient(
15
17
  apiKey: string,
@@ -41,7 +43,62 @@ export function initClient(
41
43
 
42
44
  _client.interceptors.response.use(
43
45
  (r) => r,
44
- (err) => {
46
+ async (err) => {
47
+ const originalRequest = err.config;
48
+
49
+ // Handle 401 — token expired
50
+ if (err.response?.status === 401 && !originalRequest._retry) {
51
+ originalRequest._retry = true; // prevent infinite loop
52
+
53
+ if (_isRefreshing) {
54
+ // Another request already refreshing — queue this one
55
+ return new Promise((resolve) => {
56
+ _retryQueue.push((newToken: string) => {
57
+ originalRequest.headers.Authorization = `Bearer ${newToken}`;
58
+ resolve(_client!.request(originalRequest));
59
+ });
60
+ });
61
+ }
62
+
63
+ _isRefreshing = true;
64
+
65
+ try {
66
+ console.log('[FPay HTTP] Token expired — re-authenticating...');
67
+
68
+ // Clear expired token first
69
+ getFPStore().clearAccessToken();
70
+
71
+ // Re-authenticate with the stored API key
72
+ const apiKey = originalRequest.headers['x-api-key'];
73
+ const response = await _client!.post('/auth', { api_key: apiKey });
74
+
75
+ if (response.data?.status && response.data?.payload?.access_token) {
76
+ const newToken = response.data.payload.access_token;
77
+ const expiresIn = response.data.payload.expires_in;
78
+
79
+ // Save new token to store
80
+ getFPStore().setAccessToken(newToken, expiresIn);
81
+ console.log('[FPay HTTP] Re-authenticated successfully.');
82
+
83
+ // Retry queued requests with new token
84
+ _retryQueue.forEach(cb => cb(newToken));
85
+ _retryQueue = [];
86
+
87
+ // Retry original request with new token
88
+ originalRequest.headers.Authorization = `Bearer ${newToken}`;
89
+ return _client!.request(originalRequest);
90
+ }
91
+ } catch (refreshErr) {
92
+ console.error('[FPay HTTP] Re-authentication failed:', refreshErr);
93
+ _retryQueue = [];
94
+ getFPStore().clearAccessToken();
95
+ getFPStore().setAuthenticated(false, 'Session expired. Please restart the app.');
96
+ } finally {
97
+ _isRefreshing = false;
98
+ }
99
+ }
100
+
101
+ // All other errors — normalize and reject
45
102
  const e: FPError = { code: 'UNKNOWN', message: 'An error occurred' };
46
103
  if (!err.response) {
47
104
  e.code = 'NETWORK_ERROR';
@@ -51,10 +108,6 @@ export function initClient(
51
108
  e.code = d.code ?? `HTTP_${err.response.status}`;
52
109
  e.message = d.message ?? err.message;
53
110
  e.statusCode = err.response.status;
54
- if (err.response.status === 401) {
55
- e.code = 'INVALID_API_KEY';
56
- e.message = 'Invalid API key.';
57
- }
58
111
  }
59
112
  return Promise.reject(e);
60
113
  }