@firebase/auth 1.9.1 → 1.10.0-auth-redirect-credentials.82faa0828
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/auth-public.d.ts +28 -1
- package/dist/auth.d.ts +40 -2
- package/dist/browser-cjs/{index-018c7ebd.js → index-d5da52c1.js} +215 -16
- package/dist/browser-cjs/index-d5da52c1.js.map +1 -0
- package/dist/browser-cjs/index.d.ts +2 -1
- package/dist/browser-cjs/index.js +2 -1
- package/dist/browser-cjs/index.js.map +1 -1
- package/dist/browser-cjs/internal.js +2 -1
- package/dist/browser-cjs/internal.js.map +1 -1
- package/dist/browser-cjs/src/api/index.d.ts +1 -1
- package/dist/browser-cjs/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/browser-cjs/src/core/persistence/index.d.ts +2 -1
- package/dist/browser-cjs/src/model/auth.d.ts +4 -1
- package/dist/browser-cjs/src/model/public_types.d.ts +2 -1
- package/dist/browser-cjs/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/browser-cjs/src/platform_node/index.d.ts +1 -0
- package/dist/cordova/auth-cordova-public.d.ts +26 -1
- package/dist/cordova/auth-cordova.d.ts +29 -2
- package/dist/cordova/index.d.ts +2 -1
- package/dist/cordova/index.js +2 -2
- package/dist/cordova/internal.js +147 -3
- package/dist/cordova/internal.js.map +1 -1
- package/dist/cordova/{popup_redirect-e795474a.js → popup_redirect-79d5de9a.js} +71 -17
- package/dist/cordova/popup_redirect-79d5de9a.js.map +1 -0
- package/dist/cordova/src/api/index.d.ts +1 -1
- package/dist/cordova/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/cordova/src/core/persistence/index.d.ts +2 -1
- package/dist/cordova/src/model/auth.d.ts +4 -1
- package/dist/cordova/src/model/public_types.d.ts +2 -1
- package/dist/cordova/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/cordova/src/platform_node/index.d.ts +1 -0
- package/dist/esm2017/{index-e84cf44d.js → index-fc6bc882.js} +216 -18
- package/dist/esm2017/index-fc6bc882.js.map +1 -0
- package/dist/esm2017/index.d.ts +2 -1
- package/dist/esm2017/index.js +1 -1
- package/dist/esm2017/internal.js +2 -2
- package/dist/esm2017/src/api/index.d.ts +1 -1
- package/dist/esm2017/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/esm2017/src/core/persistence/index.d.ts +2 -1
- package/dist/esm2017/src/model/auth.d.ts +4 -1
- package/dist/esm2017/src/model/public_types.d.ts +2 -1
- package/dist/esm2017/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/esm2017/src/platform_node/index.d.ts +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.webworker.js +70 -16
- package/dist/index.webworker.js.map +1 -1
- package/dist/node/index.d.ts +2 -1
- package/dist/node/index.js +2 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/internal.js +2 -1
- package/dist/node/internal.js.map +1 -1
- package/dist/node/src/api/index.d.ts +1 -1
- package/dist/node/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/node/src/core/persistence/index.d.ts +2 -1
- package/dist/node/src/model/auth.d.ts +4 -1
- package/dist/node/src/model/public_types.d.ts +2 -1
- package/dist/node/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/node/src/platform_node/index.d.ts +1 -0
- package/dist/node/{totp-06fa6909.js → totp-88cb8aaf.js} +72 -16
- package/dist/node/totp-88cb8aaf.js.map +1 -0
- package/dist/node-esm/index.d.ts +2 -1
- package/dist/node-esm/index.js +1 -1
- package/dist/node-esm/internal.js +2 -2
- package/dist/node-esm/internal.js.map +1 -1
- package/dist/node-esm/src/api/index.d.ts +1 -1
- package/dist/node-esm/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/node-esm/src/core/persistence/index.d.ts +2 -1
- package/dist/node-esm/src/model/auth.d.ts +4 -1
- package/dist/node-esm/src/model/public_types.d.ts +2 -1
- package/dist/node-esm/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/node-esm/src/platform_node/index.d.ts +1 -0
- package/dist/node-esm/{totp-d5ff2369.js → totp-91f8ecc7.js} +73 -18
- package/dist/node-esm/totp-91f8ecc7.js.map +1 -0
- package/dist/rn/{index-ee081591.js → index-be8638d6.js} +70 -16
- package/dist/rn/index-be8638d6.js.map +1 -0
- package/dist/rn/index.d.ts +2 -1
- package/dist/rn/index.js +1 -1
- package/dist/rn/internal.js +146 -1
- package/dist/rn/internal.js.map +1 -1
- package/dist/rn/src/api/index.d.ts +1 -1
- package/dist/rn/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/rn/src/core/persistence/index.d.ts +2 -1
- package/dist/rn/src/model/auth.d.ts +4 -1
- package/dist/rn/src/model/public_types.d.ts +2 -1
- package/dist/rn/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/rn/src/platform_node/index.d.ts +1 -0
- package/dist/src/api/index.d.ts +1 -1
- package/dist/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/src/core/persistence/index.d.ts +2 -1
- package/dist/src/model/auth.d.ts +4 -1
- package/dist/src/model/public_types.d.ts +2 -1
- package/dist/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/src/platform_node/index.d.ts +1 -0
- package/dist/web-extension-cjs/index.d.ts +2 -1
- package/dist/web-extension-cjs/index.js +1 -1
- package/dist/web-extension-cjs/internal.js +146 -1
- package/dist/web-extension-cjs/internal.js.map +1 -1
- package/dist/web-extension-cjs/{register-c2c7670d.js → register-878ee631.js} +70 -16
- package/dist/web-extension-cjs/register-878ee631.js.map +1 -0
- package/dist/web-extension-cjs/src/api/index.d.ts +1 -1
- package/dist/web-extension-cjs/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/web-extension-cjs/src/core/persistence/index.d.ts +2 -1
- package/dist/web-extension-cjs/src/model/auth.d.ts +4 -1
- package/dist/web-extension-cjs/src/model/public_types.d.ts +2 -1
- package/dist/web-extension-cjs/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/web-extension-cjs/src/platform_node/index.d.ts +1 -0
- package/dist/web-extension-esm2017/auth-web-extension-public.d.ts +26 -1
- package/dist/web-extension-esm2017/auth-web-extension.d.ts +29 -2
- package/dist/web-extension-esm2017/index.d.ts +2 -1
- package/dist/web-extension-esm2017/index.js +2 -2
- package/dist/web-extension-esm2017/internal.js +147 -3
- package/dist/web-extension-esm2017/internal.js.map +1 -1
- package/dist/web-extension-esm2017/{register-31c228e4.js → register-59e2f235.js} +71 -17
- package/dist/web-extension-esm2017/register-59e2f235.js.map +1 -0
- package/dist/web-extension-esm2017/src/api/index.d.ts +1 -1
- package/dist/web-extension-esm2017/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/web-extension-esm2017/src/core/persistence/index.d.ts +2 -1
- package/dist/web-extension-esm2017/src/model/auth.d.ts +4 -1
- package/dist/web-extension-esm2017/src/model/public_types.d.ts +2 -1
- package/dist/web-extension-esm2017/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/web-extension-esm2017/src/platform_node/index.d.ts +1 -0
- package/package.json +8 -7
- package/dist/browser-cjs/index-018c7ebd.js.map +0 -1
- package/dist/cordova/popup_redirect-e795474a.js.map +0 -1
- package/dist/esm2017/index-e84cf44d.js.map +0 -1
- package/dist/node/totp-06fa6909.js.map +0 -1
- package/dist/node-esm/totp-d5ff2369.js.map +0 -1
- package/dist/rn/index-ee081591.js.map +0 -1
- package/dist/web-extension-cjs/register-c2c7670d.js.map +0 -1
- package/dist/web-extension-esm2017/register-31c228e4.js.map +0 -1
|
@@ -772,6 +772,14 @@ const SERVER_ERROR_MAP = {
|
|
|
772
772
|
* See the License for the specific language governing permissions and
|
|
773
773
|
* limitations under the License.
|
|
774
774
|
*/
|
|
775
|
+
const CookieAuthProxiedEndpoints = [
|
|
776
|
+
"/v1/accounts:signInWithCustomToken" /* Endpoint.SIGN_IN_WITH_CUSTOM_TOKEN */,
|
|
777
|
+
"/v1/accounts:signInWithEmailLink" /* Endpoint.SIGN_IN_WITH_EMAIL_LINK */,
|
|
778
|
+
"/v1/accounts:signInWithIdp" /* Endpoint.SIGN_IN_WITH_IDP */,
|
|
779
|
+
"/v1/accounts:signInWithPassword" /* Endpoint.SIGN_IN_WITH_PASSWORD */,
|
|
780
|
+
"/v1/accounts:signInWithPhoneNumber" /* Endpoint.SIGN_IN_WITH_PHONE_NUMBER */,
|
|
781
|
+
"/v1/token" /* Endpoint.TOKEN */
|
|
782
|
+
];
|
|
775
783
|
const DEFAULT_API_TIMEOUT_MS = new Delay(30000, 60000);
|
|
776
784
|
function _addTidIfNecessary(auth, request) {
|
|
777
785
|
if (auth.tenantId && !request.tenantId) {
|
|
@@ -808,7 +816,10 @@ async function _performApiRequest(auth, method, path, request, customErrorMap =
|
|
|
808
816
|
if (!util.isCloudflareWorker()) {
|
|
809
817
|
fetchArgs.referrerPolicy = 'no-referrer';
|
|
810
818
|
}
|
|
811
|
-
|
|
819
|
+
if (auth.emulatorConfig && util.isCloudWorkstation(auth.emulatorConfig.host)) {
|
|
820
|
+
fetchArgs.credentials = 'include';
|
|
821
|
+
}
|
|
822
|
+
return FetchProvider.fetch()(await _getFinalTarget(auth, auth.config.apiHost, path, query), fetchArgs);
|
|
812
823
|
});
|
|
813
824
|
}
|
|
814
825
|
async function _performFetchWithErrorHandling(auth, customErrorMap, fetchFn) {
|
|
@@ -873,12 +884,25 @@ async function _performSignInRequest(auth, method, path, request, customErrorMap
|
|
|
873
884
|
}
|
|
874
885
|
return serverResponse;
|
|
875
886
|
}
|
|
876
|
-
function _getFinalTarget(auth, host, path, query) {
|
|
887
|
+
async function _getFinalTarget(auth, host, path, query) {
|
|
877
888
|
const base = `${host}${path}?${query}`;
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
889
|
+
const authInternal = auth;
|
|
890
|
+
const finalTarget = authInternal.config.emulator
|
|
891
|
+
? _emulatorUrl(auth.config, base)
|
|
892
|
+
: `${auth.config.apiScheme}://${base}`;
|
|
893
|
+
// Cookie auth works by MiTMing the signIn and token endpoints from the developer's backend,
|
|
894
|
+
// saving the idToken and refreshToken into cookies, and then redacting the refreshToken
|
|
895
|
+
// from the response
|
|
896
|
+
if (CookieAuthProxiedEndpoints.includes(path)) {
|
|
897
|
+
// Persistence manager is async, we need to await it. We can't just wait for auth initialized
|
|
898
|
+
// here since auth initialization calls this function.
|
|
899
|
+
await authInternal._persistenceManagerAvailable;
|
|
900
|
+
if (authInternal._getPersistenceType() === "COOKIE" /* PersistenceType.COOKIE */) {
|
|
901
|
+
const cookiePersistence = authInternal._getPersistence();
|
|
902
|
+
return cookiePersistence._getFinalTarget(finalTarget).toString();
|
|
903
|
+
}
|
|
904
|
+
}
|
|
905
|
+
return finalTarget;
|
|
882
906
|
}
|
|
883
907
|
function _parseEnforcementState(enforcementStateStr) {
|
|
884
908
|
switch (enforcementStateStr) {
|
|
@@ -1454,7 +1478,7 @@ async function requestStsToken(auth, refreshToken) {
|
|
|
1454
1478
|
'refresh_token': refreshToken
|
|
1455
1479
|
}).slice(1);
|
|
1456
1480
|
const { tokenApiHost, apiKey } = auth.config;
|
|
1457
|
-
const url = _getFinalTarget(auth, tokenApiHost, "/v1/token" /* Endpoint.TOKEN */, `key=${apiKey}`);
|
|
1481
|
+
const url = await _getFinalTarget(auth, tokenApiHost, "/v1/token" /* Endpoint.TOKEN */, `key=${apiKey}`);
|
|
1458
1482
|
const headers = await auth._getAdditionalHeaders();
|
|
1459
1483
|
headers["Content-Type" /* HttpHeader.CONTENT_TYPE */] = 'application/x-www-form-urlencoded';
|
|
1460
1484
|
return FetchProvider.fetch()(url, {
|
|
@@ -1945,7 +1969,17 @@ class PersistenceUserManager {
|
|
|
1945
1969
|
}
|
|
1946
1970
|
async getCurrentUser() {
|
|
1947
1971
|
const blob = await this.persistence._get(this.fullUserKey);
|
|
1948
|
-
|
|
1972
|
+
if (!blob) {
|
|
1973
|
+
return null;
|
|
1974
|
+
}
|
|
1975
|
+
if (typeof blob === 'string') {
|
|
1976
|
+
const response = await getAccountInfo(this.auth, { idToken: blob }).catch(() => undefined);
|
|
1977
|
+
if (!response) {
|
|
1978
|
+
return null;
|
|
1979
|
+
}
|
|
1980
|
+
return UserImpl._fromGetAccountInfoResponse(this.auth, response, blob);
|
|
1981
|
+
}
|
|
1982
|
+
return UserImpl._fromJSON(this.auth, blob);
|
|
1949
1983
|
}
|
|
1950
1984
|
removeCurrentUser() {
|
|
1951
1985
|
return this.persistence._remove(this.fullUserKey);
|
|
@@ -1992,7 +2026,19 @@ class PersistenceUserManager {
|
|
|
1992
2026
|
try {
|
|
1993
2027
|
const blob = await persistence._get(key);
|
|
1994
2028
|
if (blob) {
|
|
1995
|
-
|
|
2029
|
+
let user;
|
|
2030
|
+
if (typeof blob === 'string') {
|
|
2031
|
+
const response = await getAccountInfo(auth, {
|
|
2032
|
+
idToken: blob
|
|
2033
|
+
}).catch(() => undefined);
|
|
2034
|
+
if (!response) {
|
|
2035
|
+
break;
|
|
2036
|
+
}
|
|
2037
|
+
user = await UserImpl._fromGetAccountInfoResponse(auth, response, blob);
|
|
2038
|
+
}
|
|
2039
|
+
else {
|
|
2040
|
+
user = UserImpl._fromJSON(auth, blob); // throws for unparsable blob (wrong format)
|
|
2041
|
+
}
|
|
1996
2042
|
if (persistence !== selectedPersistence) {
|
|
1997
2043
|
userToMigrate = user;
|
|
1998
2044
|
}
|
|
@@ -2490,6 +2536,7 @@ class AuthImpl {
|
|
|
2490
2536
|
this._tenantRecaptchaConfigs = {};
|
|
2491
2537
|
this._projectPasswordPolicy = null;
|
|
2492
2538
|
this._tenantPasswordPolicies = {};
|
|
2539
|
+
this._resolvePersistenceManagerAvailable = undefined;
|
|
2493
2540
|
// Tracks the last notified UID for state change listeners to prevent
|
|
2494
2541
|
// repeated calls to the callbacks. Undefined means it's never been
|
|
2495
2542
|
// called, whereas null means it's been called with a signed out user
|
|
@@ -2500,6 +2547,9 @@ class AuthImpl {
|
|
|
2500
2547
|
this.frameworks = [];
|
|
2501
2548
|
this.name = app.name;
|
|
2502
2549
|
this.clientVersion = config.sdkClientVersion;
|
|
2550
|
+
// TODO(jamesdaniels) explore less hacky way to do this, cookie authentication needs
|
|
2551
|
+
// persistenceMananger to be available. see _getFinalTarget for more context
|
|
2552
|
+
this._persistenceManagerAvailable = new Promise(resolve => (this._resolvePersistenceManagerAvailable = resolve));
|
|
2503
2553
|
}
|
|
2504
2554
|
_initializeWithPersistence(persistenceHierarchy, popupRedirectResolver) {
|
|
2505
2555
|
if (popupRedirectResolver) {
|
|
@@ -2508,17 +2558,18 @@ class AuthImpl {
|
|
|
2508
2558
|
// Have to check for app deletion throughout initialization (after each
|
|
2509
2559
|
// promise resolution)
|
|
2510
2560
|
this._initializationPromise = this.queue(async () => {
|
|
2511
|
-
var _a, _b;
|
|
2561
|
+
var _a, _b, _c;
|
|
2512
2562
|
if (this._deleted) {
|
|
2513
2563
|
return;
|
|
2514
2564
|
}
|
|
2515
2565
|
this.persistenceManager = await PersistenceUserManager.create(this, persistenceHierarchy);
|
|
2566
|
+
(_a = this._resolvePersistenceManagerAvailable) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
2516
2567
|
if (this._deleted) {
|
|
2517
2568
|
return;
|
|
2518
2569
|
}
|
|
2519
2570
|
// Initialize the resolver early if necessary (only applicable to web:
|
|
2520
2571
|
// this will cause the iframe to load immediately in certain cases)
|
|
2521
|
-
if ((
|
|
2572
|
+
if ((_b = this._popupRedirectResolver) === null || _b === void 0 ? void 0 : _b._shouldInitProactively) {
|
|
2522
2573
|
// If this fails, don't halt auth loading
|
|
2523
2574
|
try {
|
|
2524
2575
|
await this._popupRedirectResolver._initialize(this);
|
|
@@ -2528,7 +2579,7 @@ class AuthImpl {
|
|
|
2528
2579
|
}
|
|
2529
2580
|
}
|
|
2530
2581
|
await this.initializeCurrentUser(popupRedirectResolver);
|
|
2531
|
-
this.lastNotifiedUid = ((
|
|
2582
|
+
this.lastNotifiedUid = ((_c = this.currentUser) === null || _c === void 0 ? void 0 : _c.uid) || null;
|
|
2532
2583
|
if (this._deleted) {
|
|
2533
2584
|
return;
|
|
2534
2585
|
}
|
|
@@ -2782,9 +2833,12 @@ class AuthImpl {
|
|
|
2782
2833
|
this._tenantPasswordPolicies[this.tenantId] = passwordPolicy;
|
|
2783
2834
|
}
|
|
2784
2835
|
}
|
|
2785
|
-
|
|
2836
|
+
_getPersistenceType() {
|
|
2786
2837
|
return this.assertedPersistence.persistence.type;
|
|
2787
2838
|
}
|
|
2839
|
+
_getPersistence() {
|
|
2840
|
+
return this.assertedPersistence.persistence;
|
|
2841
|
+
}
|
|
2788
2842
|
_updateErrorMap(errorMap) {
|
|
2789
2843
|
this._errorFactory = new util.ErrorFactory('auth', 'Firebase', errorMap());
|
|
2790
2844
|
}
|
|
@@ -4349,7 +4403,7 @@ class ActionCodeURL {
|
|
|
4349
4403
|
this.operation = operation;
|
|
4350
4404
|
this.code = code;
|
|
4351
4405
|
this.continueUrl = (_d = searchParams["continueUrl" /* QueryField.CONTINUE_URL */]) !== null && _d !== void 0 ? _d : null;
|
|
4352
|
-
this.languageCode = (_e = searchParams["
|
|
4406
|
+
this.languageCode = (_e = searchParams["lang" /* QueryField.LANGUAGE_CODE */]) !== null && _e !== void 0 ? _e : null;
|
|
4353
4407
|
this.tenantId = (_f = searchParams["tenantId" /* QueryField.TENANT_ID */]) !== null && _f !== void 0 ? _f : null;
|
|
4354
4408
|
}
|
|
4355
4409
|
/**
|
|
@@ -7135,7 +7189,7 @@ function multiFactor(user) {
|
|
|
7135
7189
|
}
|
|
7136
7190
|
|
|
7137
7191
|
var name = "@firebase/auth";
|
|
7138
|
-
var version = "1.
|
|
7192
|
+
var version = "1.10.0-auth-redirect-credentials.82faa0828";
|
|
7139
7193
|
|
|
7140
7194
|
/**
|
|
7141
7195
|
* @license
|
|
@@ -8595,4 +8649,4 @@ exports.useDeviceLanguage = useDeviceLanguage;
|
|
|
8595
8649
|
exports.validatePassword = validatePassword;
|
|
8596
8650
|
exports.verifyBeforeUpdateEmail = verifyBeforeUpdateEmail;
|
|
8597
8651
|
exports.verifyPasswordResetCode = verifyPasswordResetCode;
|
|
8598
|
-
//# sourceMappingURL=index-
|
|
8652
|
+
//# sourceMappingURL=index-be8638d6.js.map
|