react-native-nitro-auth 0.5.3 → 0.5.5

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.
Files changed (59) hide show
  1. package/README.md +60 -30
  2. package/android/build.gradle +2 -5
  3. package/android/src/main/cpp/JniOnLoad.cpp +3 -1
  4. package/android/src/main/cpp/PlatformAuth+Android.cpp +95 -29
  5. package/android/src/main/java/com/auth/AuthAdapter.kt +124 -126
  6. package/android/src/main/java/com/auth/NitroAuthModule.kt +8 -1
  7. package/cpp/AuthCache.cpp +0 -44
  8. package/cpp/AuthCache.hpp +0 -7
  9. package/cpp/HybridAuth.cpp +20 -2
  10. package/cpp/HybridAuth.hpp +1 -0
  11. package/ios/AuthAdapter.swift +64 -28
  12. package/lib/commonjs/Auth.web.js +96 -43
  13. package/lib/commonjs/Auth.web.js.map +1 -1
  14. package/lib/commonjs/index.js +23 -1
  15. package/lib/commonjs/index.js.map +1 -1
  16. package/lib/commonjs/service.js +33 -8
  17. package/lib/commonjs/service.js.map +1 -1
  18. package/lib/commonjs/use-auth.js +51 -54
  19. package/lib/commonjs/use-auth.js.map +1 -1
  20. package/lib/commonjs/utils/auth-error.js +37 -0
  21. package/lib/commonjs/utils/auth-error.js.map +1 -0
  22. package/lib/module/Auth.web.js +96 -43
  23. package/lib/module/Auth.web.js.map +1 -1
  24. package/lib/module/index.js +1 -0
  25. package/lib/module/index.js.map +1 -1
  26. package/lib/module/service.js +33 -8
  27. package/lib/module/service.js.map +1 -1
  28. package/lib/module/use-auth.js +51 -54
  29. package/lib/module/use-auth.js.map +1 -1
  30. package/lib/module/utils/auth-error.js +30 -0
  31. package/lib/module/utils/auth-error.js.map +1 -0
  32. package/lib/typescript/commonjs/Auth.web.d.ts +7 -0
  33. package/lib/typescript/commonjs/Auth.web.d.ts.map +1 -1
  34. package/lib/typescript/commonjs/index.d.ts +1 -0
  35. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  36. package/lib/typescript/commonjs/service.d.ts.map +1 -1
  37. package/lib/typescript/commonjs/use-auth.d.ts +2 -1
  38. package/lib/typescript/commonjs/use-auth.d.ts.map +1 -1
  39. package/lib/typescript/commonjs/utils/auth-error.d.ts +16 -0
  40. package/lib/typescript/commonjs/utils/auth-error.d.ts.map +1 -0
  41. package/lib/typescript/module/Auth.web.d.ts +7 -0
  42. package/lib/typescript/module/Auth.web.d.ts.map +1 -1
  43. package/lib/typescript/module/index.d.ts +1 -0
  44. package/lib/typescript/module/index.d.ts.map +1 -1
  45. package/lib/typescript/module/service.d.ts.map +1 -1
  46. package/lib/typescript/module/use-auth.d.ts +2 -1
  47. package/lib/typescript/module/use-auth.d.ts.map +1 -1
  48. package/lib/typescript/module/utils/auth-error.d.ts +16 -0
  49. package/lib/typescript/module/utils/auth-error.d.ts.map +1 -0
  50. package/nitrogen/generated/android/NitroAuthOnLoad.cpp +22 -17
  51. package/nitrogen/generated/android/NitroAuthOnLoad.hpp +13 -4
  52. package/package.json +7 -7
  53. package/react-native-nitro-auth.podspec +1 -1
  54. package/src/Auth.web.ts +124 -50
  55. package/src/index.ts +1 -0
  56. package/src/service.ts +34 -8
  57. package/src/use-auth.ts +81 -114
  58. package/src/utils/auth-error.ts +49 -0
  59. package/ios/KeychainStore.swift +0 -43
@@ -2,13 +2,14 @@
2
2
 
3
3
  import { useState, useEffect, useCallback, useMemo } from "react";
4
4
  import { AuthService } from "./service";
5
- class AuthHookError extends Error {
6
- constructor(message, underlyingError) {
7
- super(message);
8
- this.name = "AuthHookError";
9
- this.underlyingError = underlyingError;
5
+ import { AuthError } from "./utils/auth-error.js";
6
+ const areScopesEqual = (left, right) => {
7
+ if (left.length !== right.length) return false;
8
+ for (let i = 0; i < left.length; i += 1) {
9
+ if (left[i] !== right[i]) return false;
10
10
  }
11
- }
11
+ return true;
12
+ };
12
13
  export function useAuth() {
13
14
  const [state, setState] = useState({
14
15
  user: AuthService.currentUser,
@@ -16,6 +17,21 @@ export function useAuth() {
16
17
  loading: false,
17
18
  error: undefined
18
19
  });
20
+ const syncStateFromService = useCallback((nextLoading, nextError) => {
21
+ const nextUser = AuthService.currentUser;
22
+ const nextScopes = AuthService.grantedScopes;
23
+ setState(prev => {
24
+ if (prev.loading === nextLoading && prev.error === nextError && prev.user === nextUser && areScopesEqual(prev.scopes, nextScopes)) {
25
+ return prev;
26
+ }
27
+ return {
28
+ user: nextUser,
29
+ scopes: nextScopes,
30
+ loading: nextLoading,
31
+ error: nextError
32
+ };
33
+ });
34
+ }, []);
19
35
  const login = useCallback(async (provider, options) => {
20
36
  setState(prev => ({
21
37
  ...prev,
@@ -24,14 +40,9 @@ export function useAuth() {
24
40
  }));
25
41
  try {
26
42
  await AuthService.login(provider, options);
27
- setState({
28
- user: AuthService.currentUser,
29
- scopes: AuthService.grantedScopes,
30
- loading: false,
31
- error: undefined
32
- });
43
+ syncStateFromService(false, undefined);
33
44
  } catch (e) {
34
- const error = e instanceof Error ? e : new Error(String(e));
45
+ const error = AuthError.from(e);
35
46
  setState(prev => ({
36
47
  ...prev,
37
48
  loading: false,
@@ -39,7 +50,7 @@ export function useAuth() {
39
50
  }));
40
51
  throw error;
41
52
  }
42
- }, []);
53
+ }, [syncStateFromService]);
43
54
  const logout = useCallback(() => {
44
55
  AuthService.logout();
45
56
  setState({
@@ -57,14 +68,9 @@ export function useAuth() {
57
68
  }));
58
69
  try {
59
70
  await AuthService.requestScopes(newScopes);
60
- setState({
61
- user: AuthService.currentUser,
62
- scopes: AuthService.grantedScopes,
63
- loading: false,
64
- error: undefined
65
- });
71
+ syncStateFromService(false, undefined);
66
72
  } catch (e) {
67
- const error = e instanceof Error ? e : new Error(String(e));
73
+ const error = AuthError.from(e);
68
74
  setState(prev => ({
69
75
  ...prev,
70
76
  loading: false,
@@ -72,7 +78,7 @@ export function useAuth() {
72
78
  }));
73
79
  throw error;
74
80
  }
75
- }, []);
81
+ }, [syncStateFromService]);
76
82
  const revokeScopes = useCallback(async scopesToRevoke => {
77
83
  setState(prev => ({
78
84
  ...prev,
@@ -81,14 +87,9 @@ export function useAuth() {
81
87
  }));
82
88
  try {
83
89
  await AuthService.revokeScopes(scopesToRevoke);
84
- setState({
85
- user: AuthService.currentUser,
86
- scopes: AuthService.grantedScopes,
87
- loading: false,
88
- error: undefined
89
- });
90
+ syncStateFromService(false, undefined);
90
91
  } catch (e) {
91
- const error = e instanceof Error ? e : new Error(String(e));
92
+ const error = AuthError.from(e);
92
93
  setState(prev => ({
93
94
  ...prev,
94
95
  loading: false,
@@ -96,7 +97,7 @@ export function useAuth() {
96
97
  }));
97
98
  throw error;
98
99
  }
99
- }, []);
100
+ }, [syncStateFromService]);
100
101
  const getAccessToken = useCallback(() => AuthService.getAccessToken(), []);
101
102
  const refreshToken = useCallback(async () => {
102
103
  setState(prev => ({
@@ -106,24 +107,18 @@ export function useAuth() {
106
107
  }));
107
108
  try {
108
109
  const tokens = await AuthService.refreshToken();
109
- setState({
110
- user: AuthService.currentUser,
111
- scopes: AuthService.grantedScopes,
112
- loading: false,
113
- error: undefined
114
- });
110
+ syncStateFromService(false, undefined);
115
111
  return tokens;
116
112
  } catch (e) {
117
- const msg = e instanceof Error ? e.message : String(e);
118
- const authError = new AuthHookError(msg, AuthService.currentUser?.underlyingError);
113
+ const error = AuthError.from(e);
119
114
  setState(prev => ({
120
115
  ...prev,
121
116
  loading: false,
122
- error: authError
117
+ error
123
118
  }));
124
- throw authError;
119
+ throw error;
125
120
  }
126
- }, []);
121
+ }, [syncStateFromService]);
127
122
  const silentRestore = useCallback(async () => {
128
123
  setState(prev => ({
129
124
  ...prev,
@@ -132,14 +127,9 @@ export function useAuth() {
132
127
  }));
133
128
  try {
134
129
  await AuthService.silentRestore();
135
- setState({
136
- user: AuthService.currentUser,
137
- scopes: AuthService.grantedScopes,
138
- loading: false,
139
- error: undefined
140
- });
130
+ syncStateFromService(false, undefined);
141
131
  } catch (e) {
142
- const error = e instanceof Error ? e : new Error(String(e));
132
+ const error = AuthError.from(e);
143
133
  setState(prev => ({
144
134
  ...prev,
145
135
  loading: false,
@@ -147,14 +137,21 @@ export function useAuth() {
147
137
  }));
148
138
  throw error;
149
139
  }
150
- }, []);
140
+ }, [syncStateFromService]);
151
141
  useEffect(() => {
152
142
  const unsubscribe = AuthService.onAuthStateChanged(currentUser => {
153
- setState(prev => ({
154
- ...prev,
155
- user: currentUser,
156
- scopes: AuthService.grantedScopes
157
- }));
143
+ const nextScopes = AuthService.grantedScopes;
144
+ setState(prev => {
145
+ if (prev.user === currentUser && areScopesEqual(prev.scopes, nextScopes) && prev.loading === false) {
146
+ return prev;
147
+ }
148
+ return {
149
+ ...prev,
150
+ user: currentUser,
151
+ scopes: nextScopes,
152
+ loading: false
153
+ };
154
+ });
158
155
  });
159
156
  return unsubscribe;
160
157
  }, []);
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useEffect","useCallback","useMemo","AuthService","AuthHookError","Error","constructor","message","underlyingError","name","useAuth","state","setState","user","currentUser","scopes","grantedScopes","loading","error","undefined","login","provider","options","prev","e","String","logout","requestScopes","newScopes","revokeScopes","scopesToRevoke","getAccessToken","refreshToken","tokens","msg","authError","silentRestore","unsubscribe","onAuthStateChanged","hasPlayServices"],"sourceRoot":"../../src","sources":["use-auth.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","useEffect","useCallback","useMemo","AuthService","AuthError","areScopesEqual","left","right","length","i","useAuth","state","setState","user","currentUser","scopes","grantedScopes","loading","error","undefined","syncStateFromService","nextLoading","nextError","nextUser","nextScopes","prev","login","provider","options","e","from","logout","requestScopes","newScopes","revokeScopes","scopesToRevoke","getAccessToken","refreshToken","tokens","silentRestore","unsubscribe","onAuthStateChanged","hasPlayServices"],"sourceRoot":"../../src","sources":["use-auth.ts"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,SAAS,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAOjE,SAASC,WAAW,QAAQ,WAAW;AACvC,SAASC,SAAS,QAAQ,uBAAoB;AAS9C,MAAMC,cAAc,GAAGA,CAACC,IAAc,EAAEC,KAAe,KAAc;EACnE,IAAID,IAAI,CAACE,MAAM,KAAKD,KAAK,CAACC,MAAM,EAAE,OAAO,KAAK;EAC9C,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,IAAI,CAACE,MAAM,EAAEC,CAAC,IAAI,CAAC,EAAE;IACvC,IAAIH,IAAI,CAACG,CAAC,CAAC,KAAKF,KAAK,CAACE,CAAC,CAAC,EAAE,OAAO,KAAK;EACxC;EACA,OAAO,IAAI;AACb,CAAC;AAaD,OAAO,SAASC,OAAOA,CAAA,EAAkB;EACvC,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGb,QAAQ,CAAY;IAC5Cc,IAAI,EAAEV,WAAW,CAACW,WAAW;IAC7BC,MAAM,EAAEZ,WAAW,CAACa,aAAa;IACjCC,OAAO,EAAE,KAAK;IACdC,KAAK,EAAEC;EACT,CAAC,CAAC;EAEF,MAAMC,oBAAoB,GAAGnB,WAAW,CACtC,CAACoB,WAAoB,EAAEC,SAAgC,KAAK;IAC1D,MAAMC,QAAQ,GAAGpB,WAAW,CAACW,WAAW;IACxC,MAAMU,UAAU,GAAGrB,WAAW,CAACa,aAAa;IAC5CJ,QAAQ,CAAEa,IAAI,IAAK;MACjB,IACEA,IAAI,CAACR,OAAO,KAAKI,WAAW,IAC5BI,IAAI,CAACP,KAAK,KAAKI,SAAS,IACxBG,IAAI,CAACZ,IAAI,KAAKU,QAAQ,IACtBlB,cAAc,CAACoB,IAAI,CAACV,MAAM,EAAES,UAAU,CAAC,EACvC;QACA,OAAOC,IAAI;MACb;MACA,OAAO;QAAEZ,IAAI,EAAEU,QAAQ;QAAER,MAAM,EAAES,UAAU;QAAEP,OAAO,EAAEI,WAAW;QAAEH,KAAK,EAAEI;MAAU,CAAC;IACvF,CAAC,CAAC;EACJ,CAAC,EACD,EACF,CAAC;EAED,MAAMI,KAAK,GAAGzB,WAAW,CACvB,OAAO0B,QAAsB,EAAEC,OAAsB,KAAK;IACxDhB,QAAQ,CAAEa,IAAI,KAAM;MAAE,GAAGA,IAAI;MAAER,OAAO,EAAE,IAAI;MAAEC,KAAK,EAAEC;IAAU,CAAC,CAAC,CAAC;IAClE,IAAI;MACF,MAAMhB,WAAW,CAACuB,KAAK,CAACC,QAAQ,EAAEC,OAAO,CAAC;MAC1CR,oBAAoB,CAAC,KAAK,EAAED,SAAS,CAAC;IACxC,CAAC,CAAC,OAAOU,CAAC,EAAE;MACV,MAAMX,KAAK,GAAGd,SAAS,CAAC0B,IAAI,CAACD,CAAC,CAAC;MAC/BjB,QAAQ,CAAEa,IAAI,KAAM;QAAE,GAAGA,IAAI;QAAER,OAAO,EAAE,KAAK;QAAEC;MAAM,CAAC,CAAC,CAAC;MACxD,MAAMA,KAAK;IACb;EACF,CAAC,EACD,CAACE,oBAAoB,CACvB,CAAC;EAED,MAAMW,MAAM,GAAG9B,WAAW,CAAC,MAAM;IAC/BE,WAAW,CAAC4B,MAAM,CAAC,CAAC;IACpBnB,QAAQ,CAAC;MAAEC,IAAI,EAAEM,SAAS;MAAEJ,MAAM,EAAE,EAAE;MAAEE,OAAO,EAAE,KAAK;MAAEC,KAAK,EAAEC;IAAU,CAAC,CAAC;EAC7E,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMa,aAAa,GAAG/B,WAAW,CAC/B,MAAOgC,SAAmB,IAAK;IAC7BrB,QAAQ,CAAEa,IAAI,KAAM;MAAE,GAAGA,IAAI;MAAER,OAAO,EAAE,IAAI;MAAEC,KAAK,EAAEC;IAAU,CAAC,CAAC,CAAC;IAClE,IAAI;MACF,MAAMhB,WAAW,CAAC6B,aAAa,CAACC,SAAS,CAAC;MAC1Cb,oBAAoB,CAAC,KAAK,EAAED,SAAS,CAAC;IACxC,CAAC,CAAC,OAAOU,CAAC,EAAE;MACV,MAAMX,KAAK,GAAGd,SAAS,CAAC0B,IAAI,CAACD,CAAC,CAAC;MAC/BjB,QAAQ,CAAEa,IAAI,KAAM;QAAE,GAAGA,IAAI;QAAER,OAAO,EAAE,KAAK;QAAEC;MAAM,CAAC,CAAC,CAAC;MACxD,MAAMA,KAAK;IACb;EACF,CAAC,EACD,CAACE,oBAAoB,CACvB,CAAC;EAED,MAAMc,YAAY,GAAGjC,WAAW,CAC9B,MAAOkC,cAAwB,IAAK;IAClCvB,QAAQ,CAAEa,IAAI,KAAM;MAAE,GAAGA,IAAI;MAAER,OAAO,EAAE,IAAI;MAAEC,KAAK,EAAEC;IAAU,CAAC,CAAC,CAAC;IAClE,IAAI;MACF,MAAMhB,WAAW,CAAC+B,YAAY,CAACC,cAAc,CAAC;MAC9Cf,oBAAoB,CAAC,KAAK,EAAED,SAAS,CAAC;IACxC,CAAC,CAAC,OAAOU,CAAC,EAAE;MACV,MAAMX,KAAK,GAAGd,SAAS,CAAC0B,IAAI,CAACD,CAAC,CAAC;MAC/BjB,QAAQ,CAAEa,IAAI,KAAM;QAAE,GAAGA,IAAI;QAAER,OAAO,EAAE,KAAK;QAAEC;MAAM,CAAC,CAAC,CAAC;MACxD,MAAMA,KAAK;IACb;EACF,CAAC,EACD,CAACE,oBAAoB,CACvB,CAAC;EAED,MAAMgB,cAAc,GAAGnC,WAAW,CAAC,MAAME,WAAW,CAACiC,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC;EAE1E,MAAMC,YAAY,GAAGpC,WAAW,CAAC,YAAY;IAC3CW,QAAQ,CAAEa,IAAI,KAAM;MAAE,GAAGA,IAAI;MAAER,OAAO,EAAE,IAAI;MAAEC,KAAK,EAAEC;IAAU,CAAC,CAAC,CAAC;IAClE,IAAI;MACF,MAAMmB,MAAM,GAAG,MAAMnC,WAAW,CAACkC,YAAY,CAAC,CAAC;MAC/CjB,oBAAoB,CAAC,KAAK,EAAED,SAAS,CAAC;MACtC,OAAOmB,MAAM;IACf,CAAC,CAAC,OAAOT,CAAC,EAAE;MACV,MAAMX,KAAK,GAAGd,SAAS,CAAC0B,IAAI,CAACD,CAAC,CAAC;MAC/BjB,QAAQ,CAAEa,IAAI,KAAM;QAAE,GAAGA,IAAI;QAAER,OAAO,EAAE,KAAK;QAAEC;MAAM,CAAC,CAAC,CAAC;MACxD,MAAMA,KAAK;IACb;EACF,CAAC,EAAE,CAACE,oBAAoB,CAAC,CAAC;EAE1B,MAAMmB,aAAa,GAAGtC,WAAW,CAAC,YAAY;IAC5CW,QAAQ,CAAEa,IAAI,KAAM;MAAE,GAAGA,IAAI;MAAER,OAAO,EAAE,IAAI;MAAEC,KAAK,EAAEC;IAAU,CAAC,CAAC,CAAC;IAClE,IAAI;MACF,MAAMhB,WAAW,CAACoC,aAAa,CAAC,CAAC;MACjCnB,oBAAoB,CAAC,KAAK,EAAED,SAAS,CAAC;IACxC,CAAC,CAAC,OAAOU,CAAC,EAAE;MACV,MAAMX,KAAK,GAAGd,SAAS,CAAC0B,IAAI,CAACD,CAAC,CAAC;MAC/BjB,QAAQ,CAAEa,IAAI,KAAM;QAAE,GAAGA,IAAI;QAAER,OAAO,EAAE,KAAK;QAAEC;MAAM,CAAC,CAAC,CAAC;MACxD,MAAMA,KAAK;IACb;EACF,CAAC,EAAE,CAACE,oBAAoB,CAAC,CAAC;EAE1BpB,SAAS,CAAC,MAAM;IACd,MAAMwC,WAAW,GAAGrC,WAAW,CAACsC,kBAAkB,CAAE3B,WAAW,IAAK;MAClE,MAAMU,UAAU,GAAGrB,WAAW,CAACa,aAAa;MAC5CJ,QAAQ,CAAEa,IAAI,IAAK;QACjB,IACEA,IAAI,CAACZ,IAAI,KAAKC,WAAW,IACzBT,cAAc,CAACoB,IAAI,CAACV,MAAM,EAAES,UAAU,CAAC,IACvCC,IAAI,CAACR,OAAO,KAAK,KAAK,EACtB;UACA,OAAOQ,IAAI;QACb;QACA,OAAO;UAAE,GAAGA,IAAI;UAAEZ,IAAI,EAAEC,WAAW;UAAEC,MAAM,EAAES,UAAU;UAAEP,OAAO,EAAE;QAAM,CAAC;MAC3E,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,OAAOuB,WAAW;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOtC,OAAO,CACZ,OAAO;IACL,GAAGS,KAAK;IACR+B,eAAe,EAAEvC,WAAW,CAACuC,eAAe;IAC5ChB,KAAK;IACLK,MAAM;IACNC,aAAa;IACbE,YAAY;IACZE,cAAc;IACdC,YAAY;IACZE;EACF,CAAC,CAAC,EACF,CAAC5B,KAAK,EAAEe,KAAK,EAAEK,MAAM,EAAEC,aAAa,EAAEE,YAAY,EAAEE,cAAc,EAAEC,YAAY,EAAEE,aAAa,CACjG,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ const AUTH_ERROR_CODES = new Set(["cancelled", "timeout", "popup_blocked", "network_error", "configuration_error", "unsupported_provider", "invalid_state", "invalid_nonce", "token_error", "no_id_token", "parse_error", "refresh_failed", "unknown"]);
4
+ export function isAuthErrorCode(value) {
5
+ return AUTH_ERROR_CODES.has(value);
6
+ }
7
+ export function toAuthErrorCode(raw) {
8
+ return isAuthErrorCode(raw) ? raw : "unknown";
9
+ }
10
+
11
+ /**
12
+ * Typed error thrown by all AuthService operations.
13
+ *
14
+ * - `code` — always a valid `AuthErrorCode`, safe to switch on
15
+ * - `underlyingMessage` — the raw platform message when it differs from `code`
16
+ */
17
+ export class AuthError extends Error {
18
+ constructor(raw) {
19
+ const message = raw instanceof Error ? raw.message : String(raw);
20
+ const code = toAuthErrorCode(message);
21
+ super(code);
22
+ this.name = "AuthError";
23
+ this.code = code;
24
+ this.underlyingMessage = code !== message ? message : undefined;
25
+ }
26
+ static from(e) {
27
+ return e instanceof AuthError ? e : new AuthError(e);
28
+ }
29
+ }
30
+ //# sourceMappingURL=auth-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AUTH_ERROR_CODES","Set","isAuthErrorCode","value","has","toAuthErrorCode","raw","AuthError","Error","constructor","message","String","code","name","underlyingMessage","undefined","from","e"],"sourceRoot":"../../../src","sources":["utils/auth-error.ts"],"mappings":";;AAEA,MAAMA,gBAAqC,GAAG,IAAIC,GAAG,CAAgB,CACnE,WAAW,EACX,SAAS,EACT,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,SAAS,CACV,CAAC;AAEF,OAAO,SAASC,eAAeA,CAACC,KAAa,EAA0B;EACrE,OAAOH,gBAAgB,CAACI,GAAG,CAACD,KAAK,CAAC;AACpC;AAEA,OAAO,SAASE,eAAeA,CAACC,GAAW,EAAiB;EAC1D,OAAOJ,eAAe,CAACI,GAAG,CAAC,GAAGA,GAAG,GAAG,SAAS;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,SAAS,SAASC,KAAK,CAAC;EAInCC,WAAWA,CAACH,GAAY,EAAE;IACxB,MAAMI,OAAO,GAAGJ,GAAG,YAAYE,KAAK,GAAGF,GAAG,CAACI,OAAO,GAAGC,MAAM,CAACL,GAAG,CAAC;IAChE,MAAMM,IAAI,GAAGP,eAAe,CAACK,OAAO,CAAC;IACrC,KAAK,CAACE,IAAI,CAAC;IACX,IAAI,CAACC,IAAI,GAAG,WAAW;IACvB,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACE,iBAAiB,GAAGF,IAAI,KAAKF,OAAO,GAAGA,OAAO,GAAGK,SAAS;EACjE;EAEA,OAAOC,IAAIA,CAACC,CAAU,EAAa;IACjC,OAAOA,CAAC,YAAYV,SAAS,GAAGU,CAAC,GAAG,IAAIV,SAAS,CAACU,CAAC,CAAC;EACtD;AACF","ignoreList":[]}
@@ -1,11 +1,16 @@
1
1
  import type { Auth, AuthUser, AuthProvider, LoginOptions, AuthTokens } from "./Auth.nitro";
2
2
  import type { JSStorageAdapter } from "./js-storage-adapter";
3
3
  declare class AuthWeb implements Auth {
4
+ private readonly _config;
4
5
  private _currentUser;
5
6
  private _grantedScopes;
6
7
  private _listeners;
7
8
  private _tokenListeners;
8
9
  private _storageAdapter;
10
+ private _browserStorageResolved;
11
+ private _browserStorageCache;
12
+ private _refreshPromise;
13
+ private _appleSdkLoadPromise;
9
14
  constructor();
10
15
  private isPromiseLike;
11
16
  private createWebStorageDriver;
@@ -32,6 +37,7 @@ declare class AuthWeb implements Auth {
32
37
  revokeScopes(scopes: string[]): Promise<void>;
33
38
  getAccessToken(): Promise<string | undefined>;
34
39
  refreshToken(): Promise<AuthTokens>;
40
+ private performRefreshToken;
35
41
  private mapError;
36
42
  private parseResponseObject;
37
43
  private parseJwtPayload;
@@ -45,6 +51,7 @@ declare class AuthWeb implements Auth {
45
51
  private exchangeMicrosoftCodeForTokens;
46
52
  private getMicrosoftAuthBaseUrl;
47
53
  private decodeMicrosoftJwt;
54
+ private ensureAppleSdkLoaded;
48
55
  private loginApple;
49
56
  silentRestore(): Promise<void>;
50
57
  logout(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.web.d.ts","sourceRoot":"","sources":["../../../src/Auth.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAgK7D,cAAM,OAAQ,YAAW,IAAI;IAC3B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,UAAU,CAAgD;IAClE,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,eAAe,CAA+B;;IAMtD,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,2BAA2B;IAgBnC,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,aAAa;IAgDrB,OAAO,CAAC,eAAe;IAIvB,IAAI,WAAW,IAAI,QAAQ,GAAG,SAAS,CAEtC;IAED,IAAI,aAAa,IAAI,MAAM,EAAE,CAE5B;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,kBAAkB,CAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,GAC7C,MAAM,IAAI;IAQb,iBAAiB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAOrE,OAAO,CAAC,MAAM;IAMR,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BpE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB9C,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7C,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAW7C,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC;IA8GzC,OAAO,CAAC,QAAQ;YAoBF,mBAAmB;IAQjC,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,oBAAoB;YA8Dd,WAAW;IAiFzB,OAAO,CAAC,eAAe;YAcT,cAAc;IA4G5B,OAAO,CAAC,oBAAoB;YAMd,qBAAqB;IAOnC,OAAO,CAAC,eAAe;YAKT,8BAA8B;IA+E5C,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,kBAAkB;YAiBZ,UAAU;IAmDlB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAcpC,MAAM,IAAI,IAAI;IASd,OAAO,CAAC,UAAU;IAOlB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI;IAQjE,IAAI,SAAU;IACd,OAAO;IACP,MAAM,CAAC,KAAK,EAAE,OAAO;CAGtB;AAED,eAAO,MAAM,UAAU,SAAgB,CAAC"}
1
+ {"version":3,"file":"Auth.web.d.ts","sourceRoot":"","sources":["../../../src/Auth.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAgK7D,cAAM,OAAQ,YAAW,IAAI;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,UAAU,CAAgD;IAClE,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,oBAAoB,CAA4B;;IAOxD,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,iBAAiB;IAsCzB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,2BAA2B;IAgBnC,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,aAAa;IAgDrB,OAAO,CAAC,eAAe;IAIvB,IAAI,WAAW,IAAI,QAAQ,GAAG,SAAS,CAEtC;IAED,IAAI,aAAa,IAAI,MAAM,EAAE,CAE5B;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,kBAAkB,CAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,GAC7C,MAAM,IAAI;IAQb,iBAAiB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAOrE,OAAO,CAAC,MAAM;IAMR,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BpE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB9C,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7C,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAW7C,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC;YAgB3B,mBAAmB;IA6GjC,OAAO,CAAC,QAAQ;YAoBF,mBAAmB;IAQjC,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,oBAAoB;YA8Dd,WAAW;IAgFzB,OAAO,CAAC,eAAe;YAcT,cAAc;IA2G5B,OAAO,CAAC,oBAAoB;YAMd,qBAAqB;IAOnC,OAAO,CAAC,eAAe;YAKT,8BAA8B;IA8E5C,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,kBAAkB;YAiBZ,oBAAoB;YA2DpB,UAAU;IAqClB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAcpC,MAAM,IAAI,IAAI;IASd,OAAO,CAAC,UAAU;IAOlB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI;IAQjE,IAAI,SAAU;IACd,OAAO;IACP,MAAM,CAAC,KAAK,EAAE,OAAO;CAGtB;AAED,eAAO,MAAM,UAAU,SAAgB,CAAC"}
@@ -2,4 +2,5 @@ export * from "./Auth.nitro";
2
2
  export * from "./ui/social-button";
3
3
  export { useAuth, type UseAuthReturn } from "./use-auth";
4
4
  export { AuthService } from "./service";
5
+ export { AuthError, isAuthErrorCode, toAuthErrorCode } from "./utils/auth-error";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EAKL,MAAM,cAAc,CAAC;AAGtB,eAAO,MAAM,WAAW,EAAE,IAkEzB,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EAKL,MAAM,cAAc,CAAC;AAKtB,eAAO,MAAM,WAAW,EAAE,IA0FzB,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import type { AuthUser, AuthProvider, LoginOptions, AuthTokens } from "./Auth.nitro";
2
+ import { AuthError } from "./utils/auth-error";
2
3
  type AuthState = {
3
4
  user: AuthUser | undefined;
4
5
  scopes: string[];
5
6
  loading: boolean;
6
- error: Error | undefined;
7
+ error: AuthError | undefined;
7
8
  };
8
9
  export type UseAuthReturn = AuthState & {
9
10
  hasPlayServices: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"use-auth.d.ts","sourceRoot":"","sources":["../../../src/use-auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,cAAc,CAAC;AAGtB,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1B,CAAC;AAYF,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG;IACtC,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClD,YAAY,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC,CAAC;AAEF,wBAAgB,OAAO,IAAI,aAAa,CAuKvC"}
1
+ {"version":3,"file":"use-auth.d.ts","sourceRoot":"","sources":["../../../src/use-auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;CAC9B,CAAC;AAUF,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG;IACtC,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClD,YAAY,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC,CAAC;AAEF,wBAAgB,OAAO,IAAI,aAAa,CAuIvC"}
@@ -0,0 +1,16 @@
1
+ import type { AuthErrorCode } from "../Auth.nitro";
2
+ export declare function isAuthErrorCode(value: string): value is AuthErrorCode;
3
+ export declare function toAuthErrorCode(raw: string): AuthErrorCode;
4
+ /**
5
+ * Typed error thrown by all AuthService operations.
6
+ *
7
+ * - `code` — always a valid `AuthErrorCode`, safe to switch on
8
+ * - `underlyingMessage` — the raw platform message when it differs from `code`
9
+ */
10
+ export declare class AuthError extends Error {
11
+ readonly code: AuthErrorCode;
12
+ readonly underlyingMessage: string | undefined;
13
+ constructor(raw: unknown);
14
+ static from(e: unknown): AuthError;
15
+ }
16
+ //# sourceMappingURL=auth-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-error.d.ts","sourceRoot":"","sources":["../../../../src/utils/auth-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAkBnD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,aAAa,CAErE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAE1D;AAED;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEnC,GAAG,EAAE,OAAO;IASxB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS;CAGnC"}
@@ -1,11 +1,16 @@
1
1
  import type { Auth, AuthUser, AuthProvider, LoginOptions, AuthTokens } from "./Auth.nitro";
2
2
  import type { JSStorageAdapter } from "./js-storage-adapter";
3
3
  declare class AuthWeb implements Auth {
4
+ private readonly _config;
4
5
  private _currentUser;
5
6
  private _grantedScopes;
6
7
  private _listeners;
7
8
  private _tokenListeners;
8
9
  private _storageAdapter;
10
+ private _browserStorageResolved;
11
+ private _browserStorageCache;
12
+ private _refreshPromise;
13
+ private _appleSdkLoadPromise;
9
14
  constructor();
10
15
  private isPromiseLike;
11
16
  private createWebStorageDriver;
@@ -32,6 +37,7 @@ declare class AuthWeb implements Auth {
32
37
  revokeScopes(scopes: string[]): Promise<void>;
33
38
  getAccessToken(): Promise<string | undefined>;
34
39
  refreshToken(): Promise<AuthTokens>;
40
+ private performRefreshToken;
35
41
  private mapError;
36
42
  private parseResponseObject;
37
43
  private parseJwtPayload;
@@ -45,6 +51,7 @@ declare class AuthWeb implements Auth {
45
51
  private exchangeMicrosoftCodeForTokens;
46
52
  private getMicrosoftAuthBaseUrl;
47
53
  private decodeMicrosoftJwt;
54
+ private ensureAppleSdkLoaded;
48
55
  private loginApple;
49
56
  silentRestore(): Promise<void>;
50
57
  logout(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.web.d.ts","sourceRoot":"","sources":["../../../src/Auth.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAgK7D,cAAM,OAAQ,YAAW,IAAI;IAC3B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,UAAU,CAAgD;IAClE,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,eAAe,CAA+B;;IAMtD,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,2BAA2B;IAgBnC,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,aAAa;IAgDrB,OAAO,CAAC,eAAe;IAIvB,IAAI,WAAW,IAAI,QAAQ,GAAG,SAAS,CAEtC;IAED,IAAI,aAAa,IAAI,MAAM,EAAE,CAE5B;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,kBAAkB,CAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,GAC7C,MAAM,IAAI;IAQb,iBAAiB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAOrE,OAAO,CAAC,MAAM;IAMR,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BpE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB9C,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7C,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAW7C,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC;IA8GzC,OAAO,CAAC,QAAQ;YAoBF,mBAAmB;IAQjC,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,oBAAoB;YA8Dd,WAAW;IAiFzB,OAAO,CAAC,eAAe;YAcT,cAAc;IA4G5B,OAAO,CAAC,oBAAoB;YAMd,qBAAqB;IAOnC,OAAO,CAAC,eAAe;YAKT,8BAA8B;IA+E5C,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,kBAAkB;YAiBZ,UAAU;IAmDlB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAcpC,MAAM,IAAI,IAAI;IASd,OAAO,CAAC,UAAU;IAOlB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI;IAQjE,IAAI,SAAU;IACd,OAAO;IACP,MAAM,CAAC,KAAK,EAAE,OAAO;CAGtB;AAED,eAAO,MAAM,UAAU,SAAgB,CAAC"}
1
+ {"version":3,"file":"Auth.web.d.ts","sourceRoot":"","sources":["../../../src/Auth.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAgK7D,cAAM,OAAQ,YAAW,IAAI;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,UAAU,CAAgD;IAClE,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,oBAAoB,CAA4B;;IAOxD,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,iBAAiB;IAsCzB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,2BAA2B;IAgBnC,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,aAAa;IAgDrB,OAAO,CAAC,eAAe;IAIvB,IAAI,WAAW,IAAI,QAAQ,GAAG,SAAS,CAEtC;IAED,IAAI,aAAa,IAAI,MAAM,EAAE,CAE5B;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,kBAAkB,CAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,GAC7C,MAAM,IAAI;IAQb,iBAAiB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAOrE,OAAO,CAAC,MAAM;IAMR,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BpE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB9C,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7C,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAW7C,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC;YAgB3B,mBAAmB;IA6GjC,OAAO,CAAC,QAAQ;YAoBF,mBAAmB;IAQjC,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,oBAAoB;YA8Dd,WAAW;IAgFzB,OAAO,CAAC,eAAe;YAcT,cAAc;IA2G5B,OAAO,CAAC,oBAAoB;YAMd,qBAAqB;IAOnC,OAAO,CAAC,eAAe;YAKT,8BAA8B;IA8E5C,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,kBAAkB;YAiBZ,oBAAoB;YA2DpB,UAAU;IAqClB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAcpC,MAAM,IAAI,IAAI;IASd,OAAO,CAAC,UAAU;IAOlB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI;IAQjE,IAAI,SAAU;IACd,OAAO;IACP,MAAM,CAAC,KAAK,EAAE,OAAO;CAGtB;AAED,eAAO,MAAM,UAAU,SAAgB,CAAC"}
@@ -2,4 +2,5 @@ export * from "./Auth.nitro";
2
2
  export * from "./ui/social-button";
3
3
  export { useAuth, type UseAuthReturn } from "./use-auth";
4
4
  export { AuthService } from "./service";
5
+ export { AuthError, isAuthErrorCode, toAuthErrorCode } from "./utils/auth-error";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EAKL,MAAM,cAAc,CAAC;AAGtB,eAAO,MAAM,WAAW,EAAE,IAkEzB,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EAKL,MAAM,cAAc,CAAC;AAKtB,eAAO,MAAM,WAAW,EAAE,IA0FzB,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import type { AuthUser, AuthProvider, LoginOptions, AuthTokens } from "./Auth.nitro";
2
+ import { AuthError } from "./utils/auth-error";
2
3
  type AuthState = {
3
4
  user: AuthUser | undefined;
4
5
  scopes: string[];
5
6
  loading: boolean;
6
- error: Error | undefined;
7
+ error: AuthError | undefined;
7
8
  };
8
9
  export type UseAuthReturn = AuthState & {
9
10
  hasPlayServices: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"use-auth.d.ts","sourceRoot":"","sources":["../../../src/use-auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,cAAc,CAAC;AAGtB,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1B,CAAC;AAYF,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG;IACtC,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClD,YAAY,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC,CAAC;AAEF,wBAAgB,OAAO,IAAI,aAAa,CAuKvC"}
1
+ {"version":3,"file":"use-auth.d.ts","sourceRoot":"","sources":["../../../src/use-auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;CAC9B,CAAC;AAUF,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG;IACtC,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClD,YAAY,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC,CAAC;AAEF,wBAAgB,OAAO,IAAI,aAAa,CAuIvC"}
@@ -0,0 +1,16 @@
1
+ import type { AuthErrorCode } from "../Auth.nitro";
2
+ export declare function isAuthErrorCode(value: string): value is AuthErrorCode;
3
+ export declare function toAuthErrorCode(raw: string): AuthErrorCode;
4
+ /**
5
+ * Typed error thrown by all AuthService operations.
6
+ *
7
+ * - `code` — always a valid `AuthErrorCode`, safe to switch on
8
+ * - `underlyingMessage` — the raw platform message when it differs from `code`
9
+ */
10
+ export declare class AuthError extends Error {
11
+ readonly code: AuthErrorCode;
12
+ readonly underlyingMessage: string | undefined;
13
+ constructor(raw: unknown);
14
+ static from(e: unknown): AuthError;
15
+ }
16
+ //# sourceMappingURL=auth-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-error.d.ts","sourceRoot":"","sources":["../../../../src/utils/auth-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAkBnD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,aAAa,CAErE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAE1D;AAED;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEnC,GAAG,EAAE,OAAO;IASxB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS;CAGnC"}
@@ -20,25 +20,30 @@
20
20
  namespace margelo::nitro::NitroAuth {
21
21
 
22
22
  int initialize(JavaVM* vm) {
23
+ return facebook::jni::initialize(vm, []() {
24
+ ::margelo::nitro::NitroAuth::registerAllNatives();
25
+ });
26
+ }
27
+
28
+
29
+
30
+ void registerAllNatives() {
23
31
  using namespace margelo::nitro;
24
32
  using namespace margelo::nitro::NitroAuth;
25
- using namespace facebook;
26
-
27
- return facebook::jni::initialize(vm, [] {
28
- // Register native JNI methods
29
-
30
-
31
- // Register Nitro Hybrid Objects
32
- HybridObjectRegistry::registerHybridObjectConstructor(
33
- "Auth",
34
- []() -> std::shared_ptr<HybridObject> {
35
- static_assert(std::is_default_constructible_v<HybridAuth>,
36
- "The HybridObject \"HybridAuth\" is not default-constructible! "
37
- "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
38
- return std::make_shared<HybridAuth>();
39
- }
40
- );
41
- });
33
+
34
+ // Register native JNI methods
35
+
36
+
37
+ // Register Nitro Hybrid Objects
38
+ HybridObjectRegistry::registerHybridObjectConstructor(
39
+ "Auth",
40
+ []() -> std::shared_ptr<HybridObject> {
41
+ static_assert(std::is_default_constructible_v<HybridAuth>,
42
+ "The HybridObject \"HybridAuth\" is not default-constructible! "
43
+ "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
44
+ return std::make_shared<HybridAuth>();
45
+ }
46
+ );
42
47
  }
43
48
 
44
49
  } // namespace margelo::nitro::NitroAuth
@@ -6,20 +6,29 @@
6
6
  ///
7
7
 
8
8
  #include <jni.h>
9
+ #include <functional>
9
10
  #include <NitroModules/NitroDefines.hpp>
10
11
 
11
12
  namespace margelo::nitro::NitroAuth {
12
13
 
14
+ [[deprecated("Use registerNatives() instead.")]]
15
+ int initialize(JavaVM* vm);
16
+
13
17
  /**
14
- * Initializes the native (C++) part of NitroAuth, and autolinks all Hybrid Objects.
15
- * Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`).
18
+ * Register the native (C++) part of NitroAuth, and autolinks all Hybrid Objects.
19
+ * Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`),
20
+ * inside a `facebook::jni::initialize(vm, ...)` call.
16
21
  * Example:
17
22
  * ```cpp (cpp-adapter.cpp)
18
23
  * JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
19
- * return margelo::nitro::NitroAuth::initialize(vm);
24
+ * return facebook::jni::initialize(vm, []() {
25
+ * // register all NitroAuth HybridObjects
26
+ * margelo::nitro::NitroAuth::registerNatives();
27
+ * // any other custom registrations go here.
28
+ * });
20
29
  * }
21
30
  * ```
22
31
  */
23
- int initialize(JavaVM* vm);
32
+ void registerAllNatives();
24
33
 
25
34
  } // namespace margelo::nitro::NitroAuth
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-nitro-auth",
3
- "version": "0.5.3",
3
+ "version": "0.5.5",
4
4
  "description": "High-performance authentication library for React Native with Google Sign-In, Apple Sign-In, and Microsoft Sign-In support, powered by Nitro Modules (JSI)",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -81,21 +81,21 @@
81
81
  "access": "public"
82
82
  },
83
83
  "devDependencies": {
84
- "@expo/config-plugins": "^54.0.4",
85
- "@react-native/babel-preset": "^0.81.6",
84
+ "@expo/config-plugins": "^55.0.6",
85
+ "@react-native/babel-preset": "^0.83.0",
86
86
  "@testing-library/react": "^16.3.2",
87
87
  "@types/node": "^22.19.11",
88
88
  "jest-environment-jsdom": "^29.7.0",
89
- "react": "19.1.0",
90
- "react-native": "0.81.5",
91
- "react-native-nitro-modules": "^0.33.9",
89
+ "react": "19.2.0",
90
+ "react-native": "0.83.2",
91
+ "react-native-nitro-modules": "^0.35.0",
92
92
  "react-native-web": "^0.21.2",
93
93
  "typescript": "^5.9.3"
94
94
  },
95
95
  "peerDependencies": {
96
96
  "react": "*",
97
97
  "react-native": ">=0.75.0",
98
- "react-native-nitro-modules": ">=0.33.9"
98
+ "react-native-nitro-modules": ">=0.35.0"
99
99
  },
100
100
  "react-native-builder-bob": {
101
101
  "source": "src",
@@ -35,7 +35,7 @@ Pod::Spec.new do |s|
35
35
  s.frameworks = ["Security"]
36
36
 
37
37
  s.dependency "React-Core"
38
- s.dependency "GoogleSignIn", "~> 9.0"
38
+ s.dependency "GoogleSignIn", "~> 9.1"
39
39
 
40
40
  load 'nitrogen/generated/ios/NitroAuth+autolinking.rb'
41
41
  add_nitrogen_files(s)