@sudobility/auth_lib 0.0.35 → 0.0.43

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.
@@ -1,6 +1,6 @@
1
1
  import { getApp, getApps } from 'firebase/app';
2
2
  import { getAuth, onAuthStateChanged } from 'firebase/auth';
3
- import { getFirebaseService } from '@sudobility/di_web';
3
+ import { getFirebaseService } from '@sudobility/di/web';
4
4
  let firebaseApp = null;
5
5
  let firebaseAuth = null;
6
6
  export function isFirebaseConfigured() {
@@ -1,4 +1,4 @@
1
- import { getAnalyticsClient } from '@sudobility/di_rn';
1
+ import { getAnalyticsClient } from '@sudobility/di/rn';
2
2
  let firebaseAuth = null;
3
3
  let firebaseApp = null;
4
4
  let initialized = false;
@@ -3,6 +3,7 @@ import type { NetworkRequestOptions, NetworkResponse } from '@sudobility/types';
3
3
  export interface FirebaseAuthNetworkServiceOptions {
4
4
  onLogout?: () => void;
5
5
  onTokenRefreshFailed?: (error: Error) => void;
6
+ tokenRefreshIntervalMs?: number;
6
7
  }
7
8
  export declare class FirebaseAuthNetworkService extends WebNetworkClient {
8
9
  private serviceOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"FirebaseAuthNetworkService.d.ts","sourceRoot":"","sources":["../../src/network/FirebaseAuthNetworkService.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIhF,MAAM,WAAW,iCAAiC;IAEhD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/C;AAuDD,qBAAa,0BAA2B,SAAQ,gBAAgB;IAC9D,OAAO,CAAC,cAAc,CAAgD;gBAE1D,OAAO,CAAC,EAAE,iCAAiC;IAUxC,OAAO,CAAC,CAAC,GAAG,OAAO,EAChC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAsG/B"}
1
+ {"version":3,"file":"FirebaseAuthNetworkService.d.ts","sourceRoot":"","sources":["../../src/network/FirebaseAuthNetworkService.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAOhF,MAAM,WAAW,iCAAiC;IAEhD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAE9C,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAoED,qBAAa,0BAA2B,SAAQ,gBAAgB;IAC9D,OAAO,CAAC,cAAc,CAAgD;gBAE1D,OAAO,CAAC,EAAE,iCAAiC;IAUxC,OAAO,CAAC,CAAC,GAAG,OAAO,EAChC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAsE/B"}
@@ -1,30 +1,35 @@
1
1
  import { WebNetworkClient } from '@sudobility/di';
2
2
  import { signOut } from 'firebase/auth';
3
3
  import { getFirebaseAuth } from '../config/firebase-init';
4
- async function getAuthToken(forceRefresh = false) {
4
+ const DEFAULT_TOKEN_REFRESH_INTERVAL_MS = 30 * 1000;
5
+ let cachedToken = null;
6
+ let tokenTimestamp = 0;
7
+ async function getAuthToken(forceRefresh = false, refreshIntervalMs = DEFAULT_TOKEN_REFRESH_INTERVAL_MS) {
5
8
  const auth = getFirebaseAuth();
6
- console.log('[FirebaseAuthNetworkService] getAuthToken called', {
7
- forceRefresh,
8
- hasAuth: !!auth,
9
- hasCurrentUser: !!auth?.currentUser,
10
- userEmail: auth?.currentUser?.email,
11
- });
12
9
  const user = auth?.currentUser;
13
10
  if (!user) {
14
- console.warn('[FirebaseAuthNetworkService] No currentUser - cannot get token');
11
+ console.error('[FirebaseAuthNetworkService] getAuthToken: No current user');
12
+ cachedToken = null;
13
+ tokenTimestamp = 0;
15
14
  return '';
16
15
  }
16
+ const now = Date.now();
17
+ const tokenAge = now - tokenTimestamp;
18
+ const isStale = tokenAge > refreshIntervalMs;
19
+ if (!forceRefresh && !isStale && cachedToken) {
20
+ return cachedToken;
21
+ }
17
22
  try {
18
- const token = await user.getIdToken(forceRefresh);
19
- console.log('[FirebaseAuthNetworkService] Got token', {
20
- forceRefresh,
21
- tokenLength: token?.length,
22
- tokenPrefix: `${token?.substring(0, 20)}...`,
23
- });
23
+ const shouldForceRefresh = forceRefresh || isStale;
24
+ const token = await user.getIdToken(shouldForceRefresh);
25
+ cachedToken = token;
26
+ tokenTimestamp = now;
24
27
  return token;
25
28
  }
26
- catch (err) {
27
- console.error('[FirebaseAuthNetworkService] Failed to get ID token:', err);
29
+ catch (error) {
30
+ console.error('[FirebaseAuthNetworkService] getAuthToken failed:', error);
31
+ cachedToken = null;
32
+ tokenTimestamp = 0;
28
33
  return '';
29
34
  }
30
35
  }
@@ -36,8 +41,7 @@ async function logoutUser(onLogout) {
36
41
  await signOut(auth);
37
42
  onLogout?.();
38
43
  }
39
- catch (err) {
40
- console.error('[FirebaseAuthNetworkService] Failed to sign out:', err);
44
+ catch {
41
45
  }
42
46
  }
43
47
  export class FirebaseAuthNetworkService extends WebNetworkClient {
@@ -46,80 +50,48 @@ export class FirebaseAuthNetworkService extends WebNetworkClient {
46
50
  this.serviceOptions = options;
47
51
  }
48
52
  async request(url, options = {}) {
49
- const urlForLog = url.length > 100 ? `${url.substring(0, 100)}...` : url;
50
- console.log('[FirebaseAuthNetworkService] request() called', {
51
- url: urlForLog,
52
- method: options.method || 'GET',
53
- hasAuthHeader: !!options.headers?.Authorization,
54
- });
55
53
  try {
56
- const response = await super.request(url, options);
57
- console.log('[FirebaseAuthNetworkService] request() succeeded', {
58
- url: urlForLog,
59
- status: response.status,
60
- ok: response.ok,
61
- });
62
- return response;
54
+ return await super.request(url, options);
63
55
  }
64
56
  catch (error) {
65
- console.log('[FirebaseAuthNetworkService] request() caught error', {
66
- url: urlForLog,
67
- errorType: error?.constructor?.name,
68
- errorMessage: error instanceof Error ? error.message : String(error),
69
- hasStatus: error && typeof error === 'object' && 'status' in error,
70
- status: error && typeof error === 'object' && 'status' in error
71
- ? error.status
72
- : 'N/A',
73
- errorKeys: error && typeof error === 'object' ? Object.keys(error) : [],
74
- });
75
57
  if (error && typeof error === 'object' && 'status' in error) {
76
58
  const networkError = error;
77
59
  if (networkError.status === 401) {
78
- console.log('[FirebaseAuthNetworkService] 401 detected, attempting token refresh...');
60
+ console.error('[FirebaseAuthNetworkService] 401 Unauthorized, attempting token refresh');
79
61
  const freshToken = await getAuthToken(true);
80
62
  if (freshToken) {
81
- console.log('[FirebaseAuthNetworkService] Token refreshed successfully, retrying request...');
63
+ console.error('[FirebaseAuthNetworkService] Token refreshed, retrying request');
82
64
  const retryHeaders = {
83
65
  ...options.headers,
84
66
  Authorization: `Bearer ${freshToken}`,
85
67
  };
86
68
  try {
87
- const retryResponse = await super.request(url, {
69
+ return await super.request(url, {
88
70
  ...options,
89
71
  headers: retryHeaders,
90
72
  });
91
- console.log('[FirebaseAuthNetworkService] Retry succeeded!', {
92
- status: retryResponse.status,
93
- ok: retryResponse.ok,
94
- });
95
- return retryResponse;
96
73
  }
97
74
  catch (retryError) {
98
- console.error('[FirebaseAuthNetworkService] Retry also failed', {
99
- errorType: retryError?.constructor?.name,
100
- errorMessage: retryError instanceof Error
101
- ? retryError.message
102
- : String(retryError),
103
- });
75
+ console.error('[FirebaseAuthNetworkService] Retry after token refresh failed:', retryError);
104
76
  throw retryError;
105
77
  }
106
78
  }
107
79
  else {
108
- console.error('[FirebaseAuthNetworkService] Token refresh failed - no token returned (empty string)');
80
+ console.error('[FirebaseAuthNetworkService] Token refresh failed, no fresh token obtained');
109
81
  this.serviceOptions?.onTokenRefreshFailed?.(new Error('Failed to refresh token'));
110
82
  }
111
83
  }
112
84
  if (networkError.status === 403) {
113
- console.warn('[FirebaseAuthNetworkService] 403 Forbidden - logging user out');
85
+ console.error('[FirebaseAuthNetworkService] 403 Forbidden, logging user out');
114
86
  await logoutUser(this.serviceOptions?.onLogout);
115
87
  }
88
+ if (networkError.status !== 401 && networkError.status !== 403) {
89
+ console.error(`[FirebaseAuthNetworkService] HTTP ${networkError.status}:`, networkError.message);
90
+ }
116
91
  }
117
92
  else {
118
- console.warn('[FirebaseAuthNetworkService] Error does not have status property, cannot handle', {
119
- errorType: error?.constructor?.name,
120
- });
93
+ console.error('[FirebaseAuthNetworkService] Network error:', error);
121
94
  }
122
- console.log('[FirebaseAuthNetworkService] Re-throwing original error');
123
95
  throw error;
124
96
  }
125
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FirebaseAuthNetworkService.js","sourceRoot":"","sources":["../../src/network/FirebaseAuthNetworkService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FirebaseAuthNetworkService.js","sourceRoot":"","sources":["../../src/network/FirebaseAuthNetworkService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { RNNetworkService } from '@sudobility/di_rn';
1
+ import { RNNetworkService } from '@sudobility/di/rn';
2
2
  export interface FirebaseAuthNetworkServiceOptions {
3
3
  onLogout?: () => void;
4
4
  onTokenRefreshFailed?: (error: Error) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"FirebaseAuthNetworkService.rn.d.ts","sourceRoot":"","sources":["../../src/network/FirebaseAuthNetworkService.rn.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGrD,MAAM,WAAW,iCAAiC;IAEhD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/C;AAqCD,qBAAa,0BAA2B,SAAQ,gBAAgB;IAC9D,OAAO,CAAC,cAAc,CAAgD;gBAE1D,OAAO,CAAC,EAAE,iCAAiC;IAQxC,OAAO,CACpB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,QAAQ,CAAC;CAkCrB"}
1
+ {"version":3,"file":"FirebaseAuthNetworkService.rn.d.ts","sourceRoot":"","sources":["../../src/network/FirebaseAuthNetworkService.rn.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGrD,MAAM,WAAW,iCAAiC;IAEhD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/C;AAoCD,qBAAa,0BAA2B,SAAQ,gBAAgB;IAC9D,OAAO,CAAC,cAAc,CAAgD;gBAE1D,OAAO,CAAC,EAAE,iCAAiC;IAQxC,OAAO,CACpB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,QAAQ,CAAC;CA+BrB"}
@@ -1,4 +1,4 @@
1
- import { RNNetworkService } from '@sudobility/di_rn';
1
+ import { RNNetworkService } from '@sudobility/di/rn';
2
2
  import { getFirebaseAuth } from '../config/firebase-init.rn.js';
3
3
  async function getAuthToken(forceRefresh = false) {
4
4
  const auth = getFirebaseAuth();
@@ -8,8 +8,7 @@ async function getAuthToken(forceRefresh = false) {
8
8
  try {
9
9
  return await user.getIdToken(forceRefresh);
10
10
  }
11
- catch (err) {
12
- console.error('[FirebaseAuthNetworkService] Failed to get ID token:', err);
11
+ catch {
13
12
  return '';
14
13
  }
15
14
  }
@@ -21,8 +20,7 @@ async function logoutUser(onLogout) {
21
20
  await auth.signOut();
22
21
  onLogout?.();
23
22
  }
24
- catch (err) {
25
- console.error('[FirebaseAuthNetworkService] Failed to sign out:', err);
23
+ catch {
26
24
  }
27
25
  }
28
26
  export class FirebaseAuthNetworkService extends RNNetworkService {
@@ -49,7 +47,6 @@ export class FirebaseAuthNetworkService extends RNNetworkService {
49
47
  }
50
48
  }
51
49
  if (response.status === 403) {
52
- console.warn('[FirebaseAuthNetworkService] 403 Forbidden - logging user out');
53
50
  await logoutUser(this.serviceOptions?.onLogout);
54
51
  }
55
52
  return response;
@@ -1 +1 @@
1
- {"version":3,"file":"FirebaseAuthNetworkService.rn.js","sourceRoot":"","sources":["../../src/network/FirebaseAuthNetworkService.rn.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAahE,KAAK,UAAU,YAAY,CAAC,YAAY,GAAG,KAAK;IAC9C,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,EAAE,WAAW,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAE,GAAG,CAAC,CAAC;QAC3E,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAKD,KAAK,UAAU,UAAU,CAAC,QAAqB;IAC7C,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,QAAQ,EAAE,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAMD,MAAM,OAAO,0BAA2B,SAAQ,gBAAgB;IAG9D,YAAY,OAA2C;QACrD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;IAKQ,KAAK,CAAC,OAAO,CACpB,GAAW,EACX,UAAuB,EAAE;QAEzB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAGnD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG;oBACnB,GAAI,OAAO,CAAC,OAAkC;oBAC9C,aAAa,EAAE,UAAU,UAAU,EAAE;iBACtC,CAAC;gBACF,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;oBACxB,GAAG,OAAO;oBACV,OAAO,EAAE,YAAY;iBACtB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBAEN,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,CACzC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CACrC,CAAC;YACJ,CAAC;QACH,CAAC;QAGD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CACV,+DAA+D,CAChE,CAAC;YACF,MAAM,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAElD,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"FirebaseAuthNetworkService.rn.js","sourceRoot":"","sources":["../../src/network/FirebaseAuthNetworkService.rn.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAahE,KAAK,UAAU,YAAY,CAAC,YAAY,GAAG,KAAK;IAC9C,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,EAAE,WAAW,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAKD,KAAK,UAAU,UAAU,CAAC,QAAqB;IAC7C,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,QAAQ,EAAE,EAAE,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;AACH,CAAC;AAMD,MAAM,OAAO,0BAA2B,SAAQ,gBAAgB;IAG9D,YAAY,OAA2C;QACrD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;IAKQ,KAAK,CAAC,OAAO,CACpB,GAAW,EACX,UAAuB,EAAE;QAEzB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAGnD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG;oBACnB,GAAI,OAAO,CAAC,OAAkC;oBAC9C,aAAa,EAAE,UAAU,UAAU,EAAE;iBACtC,CAAC;gBACF,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;oBACxB,GAAG,OAAO;oBACV,OAAO,EAAE,YAAY;iBACtB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBAEN,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,CACzC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CACrC,CAAC;YACJ,CAAC;QACH,CAAC;QAGD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAElD,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudobility/auth_lib",
3
- "version": "0.0.35",
3
+ "version": "0.0.43",
4
4
  "description": "Firebase authentication utilities with token refresh handling",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -37,9 +37,7 @@
37
37
  "firebase": "^12.7.0",
38
38
  "@react-native-firebase/app": ">=18.0.0",
39
39
  "@react-native-firebase/auth": ">=18.0.0",
40
- "@sudobility/di": "^1.5.31",
41
- "@sudobility/di_web": "^0.1.92",
42
- "@sudobility/di_rn": "^0.1.18",
40
+ "@sudobility/di": "^1.5.33",
43
41
  "@sudobility/types": "^1.9.49",
44
42
  "@tanstack/react-query": "^5.0.0"
45
43
  },
@@ -52,18 +50,10 @@
52
50
  },
53
51
  "@react-native-firebase/auth": {
54
52
  "optional": true
55
- },
56
- "@sudobility/di_web": {
57
- "optional": true
58
- },
59
- "@sudobility/di_rn": {
60
- "optional": true
61
53
  }
62
54
  },
63
55
  "devDependencies": {
64
- "@sudobility/di": "^1.5.31",
65
- "@sudobility/di_web": "^0.1.92",
66
- "@sudobility/di_rn": "^0.1.18",
56
+ "@sudobility/di": "^1.5.33",
67
57
  "@sudobility/types": "^1.9.49",
68
58
  "@tanstack/react-query": "^5.80.7",
69
59
  "@types/node": "^22.0.0",