react-native-nitro-auth 0.5.5 → 0.5.6
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/README.md +22 -17
- package/android/proguard-rules.pro +7 -1
- package/android/src/main/AndroidManifest.xml +12 -0
- package/android/src/main/cpp/PlatformAuth+Android.cpp +260 -67
- package/android/src/main/java/com/auth/AuthAdapter.kt +217 -146
- package/android/src/main/java/com/auth/GoogleSignInActivity.kt +9 -5
- package/cpp/HybridAuth.cpp +79 -64
- package/cpp/HybridAuth.hpp +9 -7
- package/cpp/JSONSerializer.hpp +3 -0
- package/ios/AuthAdapter.swift +173 -60
- package/ios/PlatformAuth+iOS.mm +10 -3
- package/lib/commonjs/Auth.web.js +50 -10
- package/lib/commonjs/Auth.web.js.map +1 -1
- package/lib/commonjs/index.web.js +30 -12
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/service.js +9 -7
- package/lib/commonjs/service.js.map +1 -1
- package/lib/commonjs/service.web.js +65 -13
- package/lib/commonjs/service.web.js.map +1 -1
- package/lib/commonjs/ui/social-button.js +19 -14
- package/lib/commonjs/ui/social-button.js.map +1 -1
- package/lib/commonjs/ui/social-button.web.js +16 -10
- package/lib/commonjs/ui/social-button.web.js.map +1 -1
- package/lib/commonjs/use-auth.js +13 -5
- package/lib/commonjs/use-auth.js.map +1 -1
- package/lib/commonjs/utils/logger.js +1 -0
- package/lib/commonjs/utils/logger.js.map +1 -1
- package/lib/module/Auth.web.js +50 -10
- package/lib/module/Auth.web.js.map +1 -1
- package/lib/module/global.d.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +2 -1
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/service.js +9 -7
- package/lib/module/service.js.map +1 -1
- package/lib/module/service.web.js +65 -13
- package/lib/module/service.web.js.map +1 -1
- package/lib/module/ui/social-button.js +19 -14
- package/lib/module/ui/social-button.js.map +1 -1
- package/lib/module/ui/social-button.web.js +16 -10
- package/lib/module/ui/social-button.web.js.map +1 -1
- package/lib/module/use-auth.js +13 -5
- package/lib/module/use-auth.js.map +1 -1
- package/lib/module/utils/logger.js +1 -0
- package/lib/module/utils/logger.js.map +1 -1
- package/lib/typescript/commonjs/Auth.web.d.ts +5 -1
- package/lib/typescript/commonjs/Auth.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +1 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.web.d.ts +2 -1
- package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/service.d.ts.map +1 -1
- package/lib/typescript/commonjs/service.web.d.ts +2 -18
- package/lib/typescript/commonjs/service.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/social-button.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/social-button.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/use-auth.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/logger.d.ts.map +1 -1
- package/lib/typescript/module/Auth.web.d.ts +5 -1
- package/lib/typescript/module/Auth.web.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +1 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/index.web.d.ts +2 -1
- package/lib/typescript/module/index.web.d.ts.map +1 -1
- package/lib/typescript/module/service.d.ts.map +1 -1
- package/lib/typescript/module/service.web.d.ts +2 -18
- package/lib/typescript/module/service.web.d.ts.map +1 -1
- package/lib/typescript/module/ui/social-button.d.ts.map +1 -1
- package/lib/typescript/module/ui/social-button.web.d.ts.map +1 -1
- package/lib/typescript/module/use-auth.d.ts.map +1 -1
- package/lib/typescript/module/utils/logger.d.ts.map +1 -1
- package/package.json +2 -4
- package/src/Auth.web.ts +77 -11
- package/src/global.d.ts +0 -11
- package/src/index.ts +5 -1
- package/src/index.web.ts +6 -1
- package/src/service.ts +9 -7
- package/src/service.web.ts +84 -15
- package/src/ui/social-button.tsx +21 -9
- package/src/ui/social-button.web.tsx +17 -4
- package/src/use-auth.ts +35 -8
- package/src/utils/logger.ts +1 -0
package/lib/module/use-auth.js
CHANGED
|
@@ -5,8 +5,10 @@ import { AuthService } from "./service";
|
|
|
5
5
|
import { AuthError } from "./utils/auth-error.js";
|
|
6
6
|
const areScopesEqual = (left, right) => {
|
|
7
7
|
if (left.length !== right.length) return false;
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
const sortedLeft = [...left].sort();
|
|
9
|
+
const sortedRight = [...right].sort();
|
|
10
|
+
for (let i = 0; i < sortedLeft.length; i += 1) {
|
|
11
|
+
if (sortedLeft[i] !== sortedRight[i]) return false;
|
|
10
12
|
}
|
|
11
13
|
return true;
|
|
12
14
|
};
|
|
@@ -139,7 +141,7 @@ export function useAuth() {
|
|
|
139
141
|
}
|
|
140
142
|
}, [syncStateFromService]);
|
|
141
143
|
useEffect(() => {
|
|
142
|
-
const
|
|
144
|
+
const unsubscribeAuth = AuthService.onAuthStateChanged(currentUser => {
|
|
143
145
|
const nextScopes = AuthService.grantedScopes;
|
|
144
146
|
setState(prev => {
|
|
145
147
|
if (prev.user === currentUser && areScopesEqual(prev.scopes, nextScopes) && prev.loading === false) {
|
|
@@ -153,8 +155,14 @@ export function useAuth() {
|
|
|
153
155
|
};
|
|
154
156
|
});
|
|
155
157
|
});
|
|
156
|
-
|
|
157
|
-
|
|
158
|
+
const unsubscribeTokens = AuthService.onTokensRefreshed?.(() => {
|
|
159
|
+
syncStateFromService(false, undefined);
|
|
160
|
+
});
|
|
161
|
+
return () => {
|
|
162
|
+
unsubscribeAuth();
|
|
163
|
+
unsubscribeTokens?.();
|
|
164
|
+
};
|
|
165
|
+
}, [syncStateFromService]);
|
|
158
166
|
return useMemo(() => ({
|
|
159
167
|
...state,
|
|
160
168
|
hasPlayServices: AuthService.hasPlayServices,
|
|
@@ -1 +1 @@
|
|
|
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","
|
|
1
|
+
{"version":3,"names":["useState","useEffect","useCallback","useMemo","AuthService","AuthError","areScopesEqual","left","right","length","sortedLeft","sort","sortedRight","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","unsubscribeAuth","onAuthStateChanged","unsubscribeTokens","onTokensRefreshed","hasPlayServices"],"sourceRoot":"../../src","sources":["use-auth.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["enabled","logger","setEnabled","value","log","args","console","warn","error","debug"],"sourceRoot":"../../../src","sources":["utils/logger.ts"],"mappings":";;AAAA,IAAIA,OAAO,GAAG,KAAK;AAEnB,OAAO,MAAMC,MAAM,GAAG;EACpBC,UAAUA,CAACC,KAAc,EAAQ;IAC/BH,OAAO,GAAGG,KAAK;EACjB,CAAC;EACDC,GAAG,EAAEA,CAAC,GAAGC,IAAe,KAAK;IAC3B,IAAIL,OAAO,EAAEM,OAAO,CAACF,GAAG,CAAC,aAAa,EAAE,GAAGC,IAAI,CAAC;EAClD,CAAC;EACDE,IAAI,EAAEA,CAAC,GAAGF,IAAe,KAAK;IAC5B,IAAIL,OAAO,EAAEM,OAAO,CAACC,IAAI,CAAC,aAAa,EAAE,GAAGF,IAAI,CAAC;EACnD,CAAC;EACDG,KAAK,EAAEA,CAAC,GAAGH,IAAe,KAAK;IAC7B,IAAIL,OAAO,EAAEM,OAAO,CAACE,KAAK,CAAC,aAAa,EAAE,GAAGH,IAAI,CAAC;EACpD,CAAC;EACDI,KAAK,EAAEA,CAAC,GAAGJ,IAAe,KAAK;IAC7B,IAAIL,OAAO,EAAEM,OAAO,CAACG,KAAK,CAAC,aAAa,EAAE,GAAGJ,IAAI,CAAC;EACpD;AACF,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["enabled","logger","setEnabled","value","log","args","console","warn","error","debug"],"sourceRoot":"../../../src","sources":["utils/logger.ts"],"mappings":";;AAAA;AACA,IAAIA,OAAO,GAAG,KAAK;AAEnB,OAAO,MAAMC,MAAM,GAAG;EACpBC,UAAUA,CAACC,KAAc,EAAQ;IAC/BH,OAAO,GAAGG,KAAK;EACjB,CAAC;EACDC,GAAG,EAAEA,CAAC,GAAGC,IAAe,KAAK;IAC3B,IAAIL,OAAO,EAAEM,OAAO,CAACF,GAAG,CAAC,aAAa,EAAE,GAAGC,IAAI,CAAC;EAClD,CAAC;EACDE,IAAI,EAAEA,CAAC,GAAGF,IAAe,KAAK;IAC5B,IAAIL,OAAO,EAAEM,OAAO,CAACC,IAAI,CAAC,aAAa,EAAE,GAAGF,IAAI,CAAC;EACnD,CAAC;EACDG,KAAK,EAAEA,CAAC,GAAGH,IAAe,KAAK;IAC7B,IAAIL,OAAO,EAAEM,OAAO,CAACE,KAAK,CAAC,aAAa,EAAE,GAAGH,IAAI,CAAC;EACpD,CAAC;EACDI,KAAK,EAAEA,CAAC,GAAGJ,IAAe,KAAK;IAC7B,IAAIL,OAAO,EAAEM,OAAO,CAACG,KAAK,CAAC,aAAa,EAAE,GAAGJ,IAAI,CAAC;EACpD;AACF,CAAC","ignoreList":[]}
|
|
@@ -10,7 +10,8 @@ declare class AuthWeb implements Auth {
|
|
|
10
10
|
private _browserStorageResolved;
|
|
11
11
|
private _browserStorageCache;
|
|
12
12
|
private _refreshPromise;
|
|
13
|
-
private
|
|
13
|
+
private _pendingGoogleNonce;
|
|
14
|
+
private _loginInFlight;
|
|
14
15
|
constructor();
|
|
15
16
|
private isPromiseLike;
|
|
16
17
|
private createWebStorageDriver;
|
|
@@ -43,8 +44,10 @@ declare class AuthWeb implements Auth {
|
|
|
43
44
|
private parseJwtPayload;
|
|
44
45
|
private waitForPopupRedirect;
|
|
45
46
|
private loginGoogle;
|
|
47
|
+
private _loginGoogleInner;
|
|
46
48
|
private decodeGoogleJwt;
|
|
47
49
|
private loginMicrosoft;
|
|
50
|
+
private _loginMicrosoftInner;
|
|
48
51
|
private generateCodeVerifier;
|
|
49
52
|
private generateCodeChallenge;
|
|
50
53
|
private base64UrlEncode;
|
|
@@ -57,6 +60,7 @@ declare class AuthWeb implements Auth {
|
|
|
57
60
|
logout(): void;
|
|
58
61
|
private updateUser;
|
|
59
62
|
setLoggingEnabled(enabled: boolean): void;
|
|
63
|
+
/** @internal Reserved for future use — not part of the public API */
|
|
60
64
|
setWebStorageAdapter(adapter: JSStorageAdapter | undefined): void;
|
|
61
65
|
name: string;
|
|
62
66
|
dispose(): 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;
|
|
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;AAkK7D,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,mBAAmB,CAAqB;IAChD,OAAO,CAAC,cAAc,CAAkB;;IAOxC,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;IAcnB,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;YAkCF,mBAAmB;IAQjC,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,oBAAoB;YA8Dd,WAAW;YAkBX,iBAAiB;IAyF/B,OAAO,CAAC,eAAe;YAcT,cAAc;YAoBd,oBAAoB;IA2GlC,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,qEAAqE;IACrE,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,5 +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
|
+
export { AuthError, isAuthErrorCode, toAuthErrorCode, } from "./utils/auth-error";
|
|
6
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;AACxC,OAAO,
|
|
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,EACL,SAAS,EACT,eAAe,EACf,eAAe,GAChB,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from "./Auth.nitro";
|
|
2
2
|
export * from "./ui/social-button.web";
|
|
3
|
-
export
|
|
3
|
+
export { useAuth, type UseAuthReturn } from "./use-auth";
|
|
4
4
|
export { AuthService } from "./service.web";
|
|
5
|
+
export { AuthError, isAuthErrorCode, toAuthErrorCode, } from "./utils/auth-error";
|
|
5
6
|
//# sourceMappingURL=index.web.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,GAChB,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;AAKtB,eAAO,MAAM,WAAW,EAAE,
|
|
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,IA4FzB,CAAC"}
|
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
currentUser: import("./Auth.nitro").AuthUser | undefined;
|
|
4
|
-
grantedScopes: string[];
|
|
5
|
-
hasPlayServices: boolean;
|
|
6
|
-
login: (provider: import("./Auth.nitro").AuthProvider, options?: import("./Auth.nitro").LoginOptions) => Promise<void>;
|
|
7
|
-
logout: () => void;
|
|
8
|
-
requestScopes: (scopes: string[]) => Promise<void>;
|
|
9
|
-
revokeScopes: (scopes: string[]) => Promise<void>;
|
|
10
|
-
getAccessToken: () => Promise<string | undefined>;
|
|
11
|
-
refreshToken: () => Promise<import("./Auth.nitro").AuthTokens>;
|
|
12
|
-
silentRestore: () => Promise<void>;
|
|
13
|
-
onAuthStateChanged: (callback: (user: import("./Auth.nitro").AuthUser | undefined) => void) => () => void;
|
|
14
|
-
onTokensRefreshed: (callback: (tokens: import("./Auth.nitro").AuthTokens) => void) => () => void;
|
|
15
|
-
setLoggingEnabled: (enabled: boolean) => void;
|
|
16
|
-
dispose: () => void;
|
|
17
|
-
equals: (other: unknown) => boolean;
|
|
18
|
-
};
|
|
1
|
+
import type { Auth } from "./Auth.nitro";
|
|
2
|
+
export declare const AuthService: Auth;
|
|
19
3
|
//# sourceMappingURL=service.web.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.web.d.ts","sourceRoot":"","sources":["../../../src/service.web.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.web.d.ts","sourceRoot":"","sources":["../../../src/service.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAKL,MAAM,cAAc,CAAC;AAItB,eAAO,MAAM,WAAW,EAAE,IA4FzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social-button.d.ts","sourceRoot":"","sources":["../../../../src/ui/social-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"social-button.d.ts","sourceRoot":"","sources":["../../../../src/ui/social-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAUzD,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAqCF,eAAO,MAAM,YAAY,GAAI,+FAU1B,iBAAiB,sBAuFnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social-button.web.d.ts","sourceRoot":"","sources":["../../../../src/ui/social-button.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"social-button.web.d.ts","sourceRoot":"","sources":["../../../../src/ui/social-button.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAUzD,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAqCF,eAAO,MAAM,YAAY,GAAI,+FAU1B,iBAAiB,sBAuFnB,CAAC"}
|
|
@@ -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;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;
|
|
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;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,CAgKvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/utils/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/utils/logger.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM;sBACC,OAAO,GAAG,IAAI;mBAGjB,OAAO,EAAE;oBAGR,OAAO,EAAE;qBAGR,OAAO,EAAE;qBAGT,OAAO,EAAE;CAG3B,CAAC"}
|
|
@@ -10,7 +10,8 @@ declare class AuthWeb implements Auth {
|
|
|
10
10
|
private _browserStorageResolved;
|
|
11
11
|
private _browserStorageCache;
|
|
12
12
|
private _refreshPromise;
|
|
13
|
-
private
|
|
13
|
+
private _pendingGoogleNonce;
|
|
14
|
+
private _loginInFlight;
|
|
14
15
|
constructor();
|
|
15
16
|
private isPromiseLike;
|
|
16
17
|
private createWebStorageDriver;
|
|
@@ -43,8 +44,10 @@ declare class AuthWeb implements Auth {
|
|
|
43
44
|
private parseJwtPayload;
|
|
44
45
|
private waitForPopupRedirect;
|
|
45
46
|
private loginGoogle;
|
|
47
|
+
private _loginGoogleInner;
|
|
46
48
|
private decodeGoogleJwt;
|
|
47
49
|
private loginMicrosoft;
|
|
50
|
+
private _loginMicrosoftInner;
|
|
48
51
|
private generateCodeVerifier;
|
|
49
52
|
private generateCodeChallenge;
|
|
50
53
|
private base64UrlEncode;
|
|
@@ -57,6 +60,7 @@ declare class AuthWeb implements Auth {
|
|
|
57
60
|
logout(): void;
|
|
58
61
|
private updateUser;
|
|
59
62
|
setLoggingEnabled(enabled: boolean): void;
|
|
63
|
+
/** @internal Reserved for future use — not part of the public API */
|
|
60
64
|
setWebStorageAdapter(adapter: JSStorageAdapter | undefined): void;
|
|
61
65
|
name: string;
|
|
62
66
|
dispose(): 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;
|
|
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;AAkK7D,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,mBAAmB,CAAqB;IAChD,OAAO,CAAC,cAAc,CAAkB;;IAOxC,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;IAcnB,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;YAkCF,mBAAmB;IAQjC,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,oBAAoB;YA8Dd,WAAW;YAkBX,iBAAiB;IAyF/B,OAAO,CAAC,eAAe;YAcT,cAAc;YAoBd,oBAAoB;IA2GlC,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,qEAAqE;IACrE,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,5 +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
|
+
export { AuthError, isAuthErrorCode, toAuthErrorCode, } from "./utils/auth-error";
|
|
6
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;AACxC,OAAO,
|
|
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,EACL,SAAS,EACT,eAAe,EACf,eAAe,GAChB,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from "./Auth.nitro";
|
|
2
2
|
export * from "./ui/social-button.web";
|
|
3
|
-
export
|
|
3
|
+
export { useAuth, type UseAuthReturn } from "./use-auth";
|
|
4
4
|
export { AuthService } from "./service.web";
|
|
5
|
+
export { AuthError, isAuthErrorCode, toAuthErrorCode, } from "./utils/auth-error";
|
|
5
6
|
//# sourceMappingURL=index.web.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,GAChB,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;AAKtB,eAAO,MAAM,WAAW,EAAE,
|
|
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,IA4FzB,CAAC"}
|
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
currentUser: import("./Auth.nitro").AuthUser | undefined;
|
|
4
|
-
grantedScopes: string[];
|
|
5
|
-
hasPlayServices: boolean;
|
|
6
|
-
login: (provider: import("./Auth.nitro").AuthProvider, options?: import("./Auth.nitro").LoginOptions) => Promise<void>;
|
|
7
|
-
logout: () => void;
|
|
8
|
-
requestScopes: (scopes: string[]) => Promise<void>;
|
|
9
|
-
revokeScopes: (scopes: string[]) => Promise<void>;
|
|
10
|
-
getAccessToken: () => Promise<string | undefined>;
|
|
11
|
-
refreshToken: () => Promise<import("./Auth.nitro").AuthTokens>;
|
|
12
|
-
silentRestore: () => Promise<void>;
|
|
13
|
-
onAuthStateChanged: (callback: (user: import("./Auth.nitro").AuthUser | undefined) => void) => () => void;
|
|
14
|
-
onTokensRefreshed: (callback: (tokens: import("./Auth.nitro").AuthTokens) => void) => () => void;
|
|
15
|
-
setLoggingEnabled: (enabled: boolean) => void;
|
|
16
|
-
dispose: () => void;
|
|
17
|
-
equals: (other: unknown) => boolean;
|
|
18
|
-
};
|
|
1
|
+
import type { Auth } from "./Auth.nitro";
|
|
2
|
+
export declare const AuthService: Auth;
|
|
19
3
|
//# sourceMappingURL=service.web.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.web.d.ts","sourceRoot":"","sources":["../../../src/service.web.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.web.d.ts","sourceRoot":"","sources":["../../../src/service.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAKL,MAAM,cAAc,CAAC;AAItB,eAAO,MAAM,WAAW,EAAE,IA4FzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social-button.d.ts","sourceRoot":"","sources":["../../../../src/ui/social-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"social-button.d.ts","sourceRoot":"","sources":["../../../../src/ui/social-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAUzD,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAqCF,eAAO,MAAM,YAAY,GAAI,+FAU1B,iBAAiB,sBAuFnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social-button.web.d.ts","sourceRoot":"","sources":["../../../../src/ui/social-button.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"social-button.web.d.ts","sourceRoot":"","sources":["../../../../src/ui/social-button.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAUzD,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAqCF,eAAO,MAAM,YAAY,GAAI,+FAU1B,iBAAiB,sBAuFnB,CAAC"}
|
|
@@ -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;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;
|
|
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;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,CAgKvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/utils/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/utils/logger.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM;sBACC,OAAO,GAAG,IAAI;mBAGjB,OAAO,EAAE;oBAGR,OAAO,EAAE;qBAGR,OAAO,EAAE;qBAGT,OAAO,EAAE;CAG3B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-nitro-auth",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.6",
|
|
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",
|
|
@@ -35,9 +35,7 @@
|
|
|
35
35
|
"codegen": "nitrogen --logLevel=\"debug\"",
|
|
36
36
|
"lint": "eslint .",
|
|
37
37
|
"typecheck": "tsc --noEmit",
|
|
38
|
-
|
|
39
|
-
"format:check": "prettier --check .",
|
|
40
|
-
"test": "jest",
|
|
38
|
+
"test": "jest",
|
|
41
39
|
"test:coverage": "jest --coverage",
|
|
42
40
|
"test:cpp": "node scripts/test-cpp.js",
|
|
43
41
|
"prepublishOnly": "bun run clean && bun run build",
|
package/src/Auth.web.ts
CHANGED
|
@@ -24,6 +24,7 @@ const WEB_STORAGE_MODES = new Set([
|
|
|
24
24
|
STORAGE_MODE_MEMORY,
|
|
25
25
|
] as const);
|
|
26
26
|
const inMemoryWebStorage = new Map<string, string>();
|
|
27
|
+
let _appleSdkLoadPromise: Promise<void> | undefined;
|
|
27
28
|
|
|
28
29
|
type WebStorageDriver = {
|
|
29
30
|
save(key: string, value: string): void;
|
|
@@ -152,6 +153,7 @@ const parseAuthWebExtraConfig = (value: unknown): AuthWebExtraConfig => {
|
|
|
152
153
|
|
|
153
154
|
const getConfig = (): AuthWebExtraConfig => {
|
|
154
155
|
try {
|
|
156
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
155
157
|
const Constants = require("expo-constants").default;
|
|
156
158
|
return parseAuthWebExtraConfig(Constants.expoConfig?.extra);
|
|
157
159
|
} catch (error) {
|
|
@@ -175,7 +177,8 @@ class AuthWeb implements Auth {
|
|
|
175
177
|
private _browserStorageResolved = false;
|
|
176
178
|
private _browserStorageCache: Storage | undefined;
|
|
177
179
|
private _refreshPromise: Promise<AuthTokens> | undefined;
|
|
178
|
-
private
|
|
180
|
+
private _pendingGoogleNonce: string | undefined;
|
|
181
|
+
private _loginInFlight: boolean = false;
|
|
179
182
|
|
|
180
183
|
constructor() {
|
|
181
184
|
this._config = getConfig();
|
|
@@ -303,6 +306,7 @@ class AuthWeb implements Auth {
|
|
|
303
306
|
const storage = this.getBrowserStorage();
|
|
304
307
|
if (storage) {
|
|
305
308
|
storage.removeItem(key);
|
|
309
|
+
return;
|
|
306
310
|
}
|
|
307
311
|
inMemoryWebStorage.delete(key);
|
|
308
312
|
}
|
|
@@ -539,7 +543,7 @@ class AuthWeb implements Auth {
|
|
|
539
543
|
const refreshToken = this.loadRefreshToken();
|
|
540
544
|
|
|
541
545
|
if (!refreshToken) {
|
|
542
|
-
throw new
|
|
546
|
+
throw new AuthWebError("refresh_failed", "No refresh token available");
|
|
543
547
|
}
|
|
544
548
|
|
|
545
549
|
const clientId = this._config.microsoftClientId;
|
|
@@ -645,13 +649,27 @@ class AuthWeb implements Auth {
|
|
|
645
649
|
|
|
646
650
|
if (msg.includes("cancel") || msg.includes("popup_closed")) {
|
|
647
651
|
mappedMsg = "cancelled";
|
|
652
|
+
} else if (msg.includes("access_denied")) {
|
|
653
|
+
mappedMsg = "cancelled";
|
|
648
654
|
} else if (msg.includes("timeout")) {
|
|
649
655
|
mappedMsg = "timeout";
|
|
650
656
|
} else if (msg.includes("popup blocked")) {
|
|
651
657
|
mappedMsg = "popup_blocked";
|
|
652
|
-
} else if (
|
|
658
|
+
} else if (
|
|
659
|
+
msg.includes("network") ||
|
|
660
|
+
msg.includes("server_error") ||
|
|
661
|
+
msg.includes("temporarily_unavailable")
|
|
662
|
+
) {
|
|
653
663
|
mappedMsg = "network_error";
|
|
654
|
-
} else if (msg.includes("
|
|
664
|
+
} else if (msg.includes("invalid_grant") || msg.includes("invalid_token")) {
|
|
665
|
+
mappedMsg = "refresh_failed";
|
|
666
|
+
} else if (
|
|
667
|
+
msg.includes("invalid_scope") ||
|
|
668
|
+
msg.includes("unauthorized_client") ||
|
|
669
|
+
msg.includes("invalid_client") ||
|
|
670
|
+
msg.includes("client id") ||
|
|
671
|
+
msg.includes("config")
|
|
672
|
+
) {
|
|
655
673
|
mappedMsg = "configuration_error";
|
|
656
674
|
}
|
|
657
675
|
|
|
@@ -746,6 +764,24 @@ class AuthWeb implements Auth {
|
|
|
746
764
|
private async loginGoogle(
|
|
747
765
|
scopes: string[],
|
|
748
766
|
loginHint?: string,
|
|
767
|
+
): Promise<void> {
|
|
768
|
+
if (this._loginInFlight) {
|
|
769
|
+
throw new AuthWebError(
|
|
770
|
+
"cancelled",
|
|
771
|
+
"Another login is already in progress",
|
|
772
|
+
);
|
|
773
|
+
}
|
|
774
|
+
this._loginInFlight = true;
|
|
775
|
+
try {
|
|
776
|
+
await this._loginGoogleInner(scopes, loginHint);
|
|
777
|
+
} finally {
|
|
778
|
+
this._loginInFlight = false;
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
private async _loginGoogleInner(
|
|
783
|
+
scopes: string[],
|
|
784
|
+
loginHint?: string,
|
|
749
785
|
): Promise<void> {
|
|
750
786
|
const clientId = this._config.googleWebClientId;
|
|
751
787
|
|
|
@@ -755,6 +791,8 @@ class AuthWeb implements Auth {
|
|
|
755
791
|
);
|
|
756
792
|
}
|
|
757
793
|
|
|
794
|
+
const nonce = crypto.randomUUID();
|
|
795
|
+
this._pendingGoogleNonce = nonce;
|
|
758
796
|
return new Promise((resolve, reject) => {
|
|
759
797
|
const redirectUri = window.location.origin;
|
|
760
798
|
const authUrl = new URL("https://accounts.google.com/o/oauth2/v2/auth");
|
|
@@ -762,7 +800,7 @@ class AuthWeb implements Auth {
|
|
|
762
800
|
authUrl.searchParams.set("redirect_uri", redirectUri);
|
|
763
801
|
authUrl.searchParams.set("response_type", "id_token token code");
|
|
764
802
|
authUrl.searchParams.set("scope", scopes.join(" "));
|
|
765
|
-
authUrl.searchParams.set("nonce",
|
|
803
|
+
authUrl.searchParams.set("nonce", nonce);
|
|
766
804
|
authUrl.searchParams.set("access_type", "offline");
|
|
767
805
|
authUrl.searchParams.set("prompt", "consent");
|
|
768
806
|
|
|
@@ -798,6 +836,13 @@ class AuthWeb implements Auth {
|
|
|
798
836
|
throw new Error("No id_token in response");
|
|
799
837
|
}
|
|
800
838
|
|
|
839
|
+
const decoded = this.parseJwtPayload(idToken);
|
|
840
|
+
if (decoded["nonce"] !== this._pendingGoogleNonce) {
|
|
841
|
+
this._pendingGoogleNonce = undefined;
|
|
842
|
+
throw new Error("Nonce mismatch - possible replay attack");
|
|
843
|
+
}
|
|
844
|
+
this._pendingGoogleNonce = undefined;
|
|
845
|
+
|
|
801
846
|
this._grantedScopes = scopes;
|
|
802
847
|
this.saveValue(SCOPES_KEY, JSON.stringify(scopes));
|
|
803
848
|
|
|
@@ -842,6 +887,26 @@ class AuthWeb implements Auth {
|
|
|
842
887
|
loginHint?: string,
|
|
843
888
|
tenant?: string,
|
|
844
889
|
prompt?: string,
|
|
890
|
+
): Promise<void> {
|
|
891
|
+
if (this._loginInFlight) {
|
|
892
|
+
throw new AuthWebError(
|
|
893
|
+
"cancelled",
|
|
894
|
+
"Another login is already in progress",
|
|
895
|
+
);
|
|
896
|
+
}
|
|
897
|
+
this._loginInFlight = true;
|
|
898
|
+
try {
|
|
899
|
+
await this._loginMicrosoftInner(scopes, loginHint, tenant, prompt);
|
|
900
|
+
} finally {
|
|
901
|
+
this._loginInFlight = false;
|
|
902
|
+
}
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
private async _loginMicrosoftInner(
|
|
906
|
+
scopes: string[],
|
|
907
|
+
loginHint?: string,
|
|
908
|
+
tenant?: string,
|
|
909
|
+
prompt?: string,
|
|
845
910
|
): Promise<void> {
|
|
846
911
|
const clientId = this._config.microsoftClientId;
|
|
847
912
|
|
|
@@ -1074,11 +1139,11 @@ class AuthWeb implements Auth {
|
|
|
1074
1139
|
return;
|
|
1075
1140
|
}
|
|
1076
1141
|
|
|
1077
|
-
if (
|
|
1078
|
-
return
|
|
1142
|
+
if (_appleSdkLoadPromise) {
|
|
1143
|
+
return _appleSdkLoadPromise;
|
|
1079
1144
|
}
|
|
1080
1145
|
|
|
1081
|
-
|
|
1146
|
+
_appleSdkLoadPromise = new Promise<void>((resolve, reject) => {
|
|
1082
1147
|
const scriptId = "nitro-auth-apple-sdk";
|
|
1083
1148
|
const existingScript = document.getElementById(
|
|
1084
1149
|
scriptId,
|
|
@@ -1102,7 +1167,7 @@ class AuthWeb implements Auth {
|
|
|
1102
1167
|
existingScript.addEventListener(
|
|
1103
1168
|
"error",
|
|
1104
1169
|
() => {
|
|
1105
|
-
|
|
1170
|
+
_appleSdkLoadPromise = undefined;
|
|
1106
1171
|
reject(new Error("Failed to load Apple SDK"));
|
|
1107
1172
|
},
|
|
1108
1173
|
{ once: true },
|
|
@@ -1119,13 +1184,13 @@ class AuthWeb implements Auth {
|
|
|
1119
1184
|
resolve();
|
|
1120
1185
|
};
|
|
1121
1186
|
script.onerror = () => {
|
|
1122
|
-
|
|
1187
|
+
_appleSdkLoadPromise = undefined;
|
|
1123
1188
|
reject(new Error("Failed to load Apple SDK"));
|
|
1124
1189
|
};
|
|
1125
1190
|
document.head.appendChild(script);
|
|
1126
1191
|
});
|
|
1127
1192
|
|
|
1128
|
-
return
|
|
1193
|
+
return _appleSdkLoadPromise;
|
|
1129
1194
|
}
|
|
1130
1195
|
|
|
1131
1196
|
private async loginApple(): Promise<void> {
|
|
@@ -1199,6 +1264,7 @@ class AuthWeb implements Auth {
|
|
|
1199
1264
|
logger.setEnabled(enabled);
|
|
1200
1265
|
}
|
|
1201
1266
|
|
|
1267
|
+
/** @internal Reserved for future use — not part of the public API */
|
|
1202
1268
|
setWebStorageAdapter(adapter: JSStorageAdapter | undefined): void {
|
|
1203
1269
|
this._storageAdapter = adapter
|
|
1204
1270
|
? this.createWebStorageDriver(adapter)
|
package/src/global.d.ts
CHANGED
|
@@ -1,16 +1,5 @@
|
|
|
1
1
|
declare global {
|
|
2
2
|
interface Window {
|
|
3
|
-
google?: {
|
|
4
|
-
accounts: {
|
|
5
|
-
id: {
|
|
6
|
-
initialize: (config: {
|
|
7
|
-
client_id: string;
|
|
8
|
-
callback: (response: { credential: string }) => void;
|
|
9
|
-
}) => void;
|
|
10
|
-
prompt: () => void;
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
3
|
AppleID?: {
|
|
15
4
|
auth: {
|
|
16
5
|
init: (config: {
|
package/src/index.ts
CHANGED
|
@@ -2,4 +2,8 @@ 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 {
|
|
5
|
+
export {
|
|
6
|
+
AuthError,
|
|
7
|
+
isAuthErrorCode,
|
|
8
|
+
toAuthErrorCode,
|
|
9
|
+
} from "./utils/auth-error";
|
package/src/index.web.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
export * from "./Auth.nitro";
|
|
2
2
|
export * from "./ui/social-button.web";
|
|
3
|
-
export
|
|
3
|
+
export { useAuth, type UseAuthReturn } from "./use-auth";
|
|
4
4
|
export { AuthService } from "./service.web";
|
|
5
|
+
export {
|
|
6
|
+
AuthError,
|
|
7
|
+
isAuthErrorCode,
|
|
8
|
+
toAuthErrorCode,
|
|
9
|
+
} from "./utils/auth-error";
|