@sudobility/auth_lib 0.0.35 → 0.0.41
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/dist/config/firebase-init.js +1 -1
- package/dist/config/firebase-init.rn.js +1 -1
- package/dist/network/FirebaseAuthNetworkService.d.ts.map +1 -1
- package/dist/network/FirebaseAuthNetworkService.js +9 -73
- package/dist/network/FirebaseAuthNetworkService.js.map +1 -1
- package/dist/network/FirebaseAuthNetworkService.rn.d.ts +1 -1
- package/dist/network/FirebaseAuthNetworkService.rn.d.ts.map +1 -1
- package/dist/network/FirebaseAuthNetworkService.rn.js +3 -6
- package/dist/network/FirebaseAuthNetworkService.rn.js.map +1 -1
- package/package.json +3 -13
|
@@ -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/
|
|
3
|
+
import { getFirebaseService } from '@sudobility/di/web';
|
|
4
4
|
let firebaseApp = null;
|
|
5
5
|
let firebaseAuth = null;
|
|
6
6
|
export function isFirebaseConfigured() {
|
|
@@ -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;
|
|
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;AAoCD,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;CAuC/B"}
|
|
@@ -3,28 +3,13 @@ import { signOut } from 'firebase/auth';
|
|
|
3
3
|
import { getFirebaseAuth } from '../config/firebase-init';
|
|
4
4
|
async function getAuthToken(forceRefresh = false) {
|
|
5
5
|
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
6
|
const user = auth?.currentUser;
|
|
13
|
-
if (!user)
|
|
14
|
-
console.warn('[FirebaseAuthNetworkService] No currentUser - cannot get token');
|
|
7
|
+
if (!user)
|
|
15
8
|
return '';
|
|
16
|
-
}
|
|
17
9
|
try {
|
|
18
|
-
|
|
19
|
-
console.log('[FirebaseAuthNetworkService] Got token', {
|
|
20
|
-
forceRefresh,
|
|
21
|
-
tokenLength: token?.length,
|
|
22
|
-
tokenPrefix: `${token?.substring(0, 20)}...`,
|
|
23
|
-
});
|
|
24
|
-
return token;
|
|
10
|
+
return await user.getIdToken(forceRefresh);
|
|
25
11
|
}
|
|
26
|
-
catch
|
|
27
|
-
console.error('[FirebaseAuthNetworkService] Failed to get ID token:', err);
|
|
12
|
+
catch {
|
|
28
13
|
return '';
|
|
29
14
|
}
|
|
30
15
|
}
|
|
@@ -36,8 +21,7 @@ async function logoutUser(onLogout) {
|
|
|
36
21
|
await signOut(auth);
|
|
37
22
|
onLogout?.();
|
|
38
23
|
}
|
|
39
|
-
catch
|
|
40
|
-
console.error('[FirebaseAuthNetworkService] Failed to sign out:', err);
|
|
24
|
+
catch {
|
|
41
25
|
}
|
|
42
26
|
}
|
|
43
27
|
export class FirebaseAuthNetworkService extends WebNetworkClient {
|
|
@@ -46,80 +30,32 @@ export class FirebaseAuthNetworkService extends WebNetworkClient {
|
|
|
46
30
|
this.serviceOptions = options;
|
|
47
31
|
}
|
|
48
32
|
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
33
|
try {
|
|
56
|
-
|
|
57
|
-
console.log('[FirebaseAuthNetworkService] request() succeeded', {
|
|
58
|
-
url: urlForLog,
|
|
59
|
-
status: response.status,
|
|
60
|
-
ok: response.ok,
|
|
61
|
-
});
|
|
62
|
-
return response;
|
|
34
|
+
return await super.request(url, options);
|
|
63
35
|
}
|
|
64
36
|
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
37
|
if (error && typeof error === 'object' && 'status' in error) {
|
|
76
38
|
const networkError = error;
|
|
77
39
|
if (networkError.status === 401) {
|
|
78
|
-
console.log('[FirebaseAuthNetworkService] 401 detected, attempting token refresh...');
|
|
79
40
|
const freshToken = await getAuthToken(true);
|
|
80
41
|
if (freshToken) {
|
|
81
|
-
console.log('[FirebaseAuthNetworkService] Token refreshed successfully, retrying request...');
|
|
82
42
|
const retryHeaders = {
|
|
83
43
|
...options.headers,
|
|
84
44
|
Authorization: `Bearer ${freshToken}`,
|
|
85
45
|
};
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
});
|
|
91
|
-
console.log('[FirebaseAuthNetworkService] Retry succeeded!', {
|
|
92
|
-
status: retryResponse.status,
|
|
93
|
-
ok: retryResponse.ok,
|
|
94
|
-
});
|
|
95
|
-
return retryResponse;
|
|
96
|
-
}
|
|
97
|
-
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
|
-
});
|
|
104
|
-
throw retryError;
|
|
105
|
-
}
|
|
46
|
+
return await super.request(url, {
|
|
47
|
+
...options,
|
|
48
|
+
headers: retryHeaders,
|
|
49
|
+
});
|
|
106
50
|
}
|
|
107
51
|
else {
|
|
108
|
-
console.error('[FirebaseAuthNetworkService] Token refresh failed - no token returned (empty string)');
|
|
109
52
|
this.serviceOptions?.onTokenRefreshFailed?.(new Error('Failed to refresh token'));
|
|
110
53
|
}
|
|
111
54
|
}
|
|
112
55
|
if (networkError.status === 403) {
|
|
113
|
-
console.warn('[FirebaseAuthNetworkService] 403 Forbidden - logging user out');
|
|
114
56
|
await logoutUser(this.serviceOptions?.onLogout);
|
|
115
57
|
}
|
|
116
58
|
}
|
|
117
|
-
else {
|
|
118
|
-
console.warn('[FirebaseAuthNetworkService] Error does not have status property, cannot handle', {
|
|
119
|
-
errorType: error?.constructor?.name,
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
console.log('[FirebaseAuthNetworkService] Re-throwing original error');
|
|
123
59
|
throw error;
|
|
124
60
|
}
|
|
125
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirebaseAuthNetworkService.js","sourceRoot":"","sources":["../../src/network/FirebaseAuthNetworkService.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAa1D,KAAK,UAAU,YAAY,CAAC,YAAY,GAAG,KAAK;IAC9C,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,
|
|
1
|
+
{"version":3,"file":"FirebaseAuthNetworkService.js","sourceRoot":"","sources":["../../src/network/FirebaseAuthNetworkService.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAa1D,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,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,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;IAOQ,KAAK,CAAC,OAAO,CACpB,GAAW,EACX,UAAiC,EAAE;QAEnC,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,OAAO,CAAI,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAGf,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAC5D,MAAM,YAAY,GAAG,KAA4C,CAAC;gBAGlE,IAAI,YAAY,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAChC,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;oBAC5C,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,YAAY,GAAG;4BACnB,GAAG,OAAO,CAAC,OAAO;4BAClB,aAAa,EAAE,UAAU,UAAU,EAAE;yBACtC,CAAC;wBACF,OAAO,MAAM,KAAK,CAAC,OAAO,CAAI,GAAG,EAAE;4BACjC,GAAG,OAAO;4BACV,OAAO,EAAE,YAAY;yBACtB,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBAEN,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,CACzC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CACrC,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAGD,IAAI,YAAY,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAChC,MAAM,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;YAGD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
@@ -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;
|
|
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/
|
|
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
|
|
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
|
|
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,
|
|
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.
|
|
3
|
+
"version": "0.0.41",
|
|
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.
|
|
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.
|
|
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",
|