@firebase/auth 0.19.12 → 0.20.0
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/CHANGELOG.md +13 -0
- package/dist/auth-public.d.ts +30 -0
- package/dist/auth.d.ts +38 -1
- package/dist/cordova/index.js +2 -2
- package/dist/cordova/internal/index.d.ts +1 -0
- package/dist/cordova/internal.js +3 -2
- package/dist/cordova/internal.js.map +1 -1
- package/dist/cordova/{popup_redirect-fd81f644.js → popup_redirect-1228b67a.js} +203 -43
- package/dist/cordova/popup_redirect-1228b67a.js.map +1 -0
- package/dist/cordova/src/core/auth/auth_impl.d.ts +3 -1
- package/dist/cordova/src/core/auth/middleware.d.ts +25 -0
- package/dist/cordova/src/core/auth/middleware.test.d.ts +17 -0
- package/dist/cordova/src/core/errors.d.ts +7 -1
- package/dist/cordova/src/core/index.d.ts +11 -0
- package/dist/cordova/src/core/strategies/redirect.d.ts +1 -0
- package/dist/cordova/src/model/popup_redirect.d.ts +2 -0
- package/dist/cordova/src/model/public_types.d.ts +10 -0
- package/dist/cordova/test/integration/flows/middleware_test_generator.d.ts +18 -0
- package/dist/cordova/test/integration/webdriver/util/functions.d.ts +4 -0
- package/dist/esm2017/{index-7078a255.js → index-815f1b87.js} +143 -18
- package/dist/esm2017/index-815f1b87.js.map +1 -0
- package/dist/esm2017/index.js +1 -1
- package/dist/esm2017/internal/index.d.ts +1 -0
- package/dist/esm2017/internal.js +3 -2
- package/dist/esm2017/internal.js.map +1 -1
- package/dist/esm2017/src/core/auth/auth_impl.d.ts +3 -1
- package/dist/esm2017/src/core/auth/middleware.d.ts +25 -0
- package/dist/esm2017/src/core/auth/middleware.test.d.ts +17 -0
- package/dist/esm2017/src/core/errors.d.ts +7 -1
- package/dist/esm2017/src/core/index.d.ts +11 -0
- package/dist/esm2017/src/core/strategies/redirect.d.ts +1 -0
- package/dist/esm2017/src/model/popup_redirect.d.ts +2 -0
- package/dist/esm2017/src/model/public_types.d.ts +10 -0
- package/dist/esm2017/test/integration/flows/middleware_test_generator.d.ts +18 -0
- package/dist/esm2017/test/integration/webdriver/util/functions.d.ts +4 -0
- package/dist/esm5/{index-7a476dcd.js → index-dc27d95e.js} +203 -43
- package/dist/esm5/index-dc27d95e.js.map +1 -0
- package/dist/esm5/index.js +1 -1
- package/dist/esm5/internal/index.d.ts +1 -0
- package/dist/esm5/internal.js +3 -2
- package/dist/esm5/internal.js.map +1 -1
- package/dist/esm5/src/core/auth/auth_impl.d.ts +3 -1
- package/dist/esm5/src/core/auth/middleware.d.ts +25 -0
- package/dist/esm5/src/core/auth/middleware.test.d.ts +17 -0
- package/dist/esm5/src/core/errors.d.ts +7 -1
- package/dist/esm5/src/core/index.d.ts +11 -0
- package/dist/esm5/src/core/strategies/redirect.d.ts +1 -0
- package/dist/esm5/src/model/popup_redirect.d.ts +2 -0
- package/dist/esm5/src/model/public_types.d.ts +10 -0
- package/dist/esm5/test/integration/flows/middleware_test_generator.d.ts +18 -0
- package/dist/esm5/test/integration/webdriver/util/functions.d.ts +4 -0
- package/dist/index.webworker.esm5.js +198 -42
- package/dist/index.webworker.esm5.js.map +1 -1
- package/dist/internal/index.d.ts +1 -0
- package/dist/node/{index-eabd3e6c.js → index-ec34877a.js} +199 -42
- package/dist/node/index-ec34877a.js.map +1 -0
- package/dist/node/index.js +2 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/internal/index.d.ts +1 -0
- package/dist/node/internal.js +7 -1
- package/dist/node/internal.js.map +1 -1
- package/dist/node/src/core/auth/auth_impl.d.ts +3 -1
- package/dist/node/src/core/auth/middleware.d.ts +25 -0
- package/dist/node/src/core/auth/middleware.test.d.ts +17 -0
- package/dist/node/src/core/errors.d.ts +7 -1
- package/dist/node/src/core/index.d.ts +11 -0
- package/dist/node/src/core/strategies/redirect.d.ts +1 -0
- package/dist/node/src/model/popup_redirect.d.ts +2 -0
- package/dist/node/src/model/public_types.d.ts +10 -0
- package/dist/node/test/integration/flows/middleware_test_generator.d.ts +18 -0
- package/dist/node/test/integration/webdriver/util/functions.d.ts +4 -0
- package/dist/node-esm/{index-d709908a.js → index-c85cf380.js} +139 -18
- package/dist/node-esm/index-c85cf380.js.map +1 -0
- package/dist/node-esm/index.js +1 -1
- package/dist/node-esm/internal/index.d.ts +1 -0
- package/dist/node-esm/internal.js +7 -3
- package/dist/node-esm/internal.js.map +1 -1
- package/dist/node-esm/src/core/auth/auth_impl.d.ts +3 -1
- package/dist/node-esm/src/core/auth/middleware.d.ts +25 -0
- package/dist/node-esm/src/core/auth/middleware.test.d.ts +17 -0
- package/dist/node-esm/src/core/errors.d.ts +7 -1
- package/dist/node-esm/src/core/index.d.ts +11 -0
- package/dist/node-esm/src/core/strategies/redirect.d.ts +1 -0
- package/dist/node-esm/src/model/popup_redirect.d.ts +2 -0
- package/dist/node-esm/src/model/public_types.d.ts +10 -0
- package/dist/node-esm/test/integration/flows/middleware_test_generator.d.ts +18 -0
- package/dist/node-esm/test/integration/webdriver/util/functions.d.ts +4 -0
- package/dist/rn/index.js +2 -1
- package/dist/rn/index.js.map +1 -1
- package/dist/rn/internal/index.d.ts +1 -0
- package/dist/rn/internal.js +8 -1
- package/dist/rn/internal.js.map +1 -1
- package/dist/rn/{phone-eec7f987.js → phone-ae029e3c.js} +199 -42
- package/dist/rn/phone-ae029e3c.js.map +1 -0
- package/dist/rn/src/core/auth/auth_impl.d.ts +3 -1
- package/dist/rn/src/core/auth/middleware.d.ts +25 -0
- package/dist/rn/src/core/auth/middleware.test.d.ts +17 -0
- package/dist/rn/src/core/errors.d.ts +7 -1
- package/dist/rn/src/core/index.d.ts +11 -0
- package/dist/rn/src/core/strategies/redirect.d.ts +1 -0
- package/dist/rn/src/model/popup_redirect.d.ts +2 -0
- package/dist/rn/src/model/public_types.d.ts +10 -0
- package/dist/rn/test/integration/flows/middleware_test_generator.d.ts +18 -0
- package/dist/rn/test/integration/webdriver/util/functions.d.ts +4 -0
- package/dist/src/core/auth/auth_impl.d.ts +3 -1
- package/dist/src/core/auth/middleware.d.ts +25 -0
- package/dist/src/core/auth/middleware.test.d.ts +17 -0
- package/dist/src/core/errors.d.ts +7 -1
- package/dist/src/core/index.d.ts +11 -0
- package/dist/src/core/strategies/redirect.d.ts +1 -0
- package/dist/src/model/popup_redirect.d.ts +2 -0
- package/dist/src/model/public_types.d.ts +10 -0
- package/dist/test/integration/flows/middleware_test_generator.d.ts +18 -0
- package/dist/test/integration/webdriver/util/functions.d.ts +4 -0
- package/package.json +6 -6
- package/dist/cordova/popup_redirect-fd81f644.js.map +0 -1
- package/dist/esm2017/index-7078a255.js.map +0 -1
- package/dist/esm5/index-7a476dcd.js.map +0 -1
- package/dist/node/index-eabd3e6c.js.map +0 -1
- package/dist/node-esm/index-d709908a.js.map +0 -1
- package/dist/rn/phone-eec7f987.js.map +0 -1
|
@@ -101,6 +101,7 @@ function _debugErrorMap() {
|
|
|
101
101
|
'Please fix by going to the Auth email templates section in the Firebase Console.',
|
|
102
102
|
_a["invalid-verification-id" /* INVALID_SESSION_INFO */] = 'The verification ID used to create the phone auth credential is invalid.',
|
|
103
103
|
_a["invalid-tenant-id" /* INVALID_TENANT_ID */] = "The Auth instance's tenant ID is invalid.",
|
|
104
|
+
_a["login-blocked" /* LOGIN_BLOCKED */] = "Login blocked by user-provided method: {$originalMessage}",
|
|
104
105
|
_a["missing-android-pkg-name" /* MISSING_ANDROID_PACKAGE_NAME */] = 'An Android Package Name must be provided if the Android App is required to be installed.',
|
|
105
106
|
_a["auth-domain-config-required" /* MISSING_AUTH_DOMAIN */] = 'Be sure to include authDomain when calling firebase.initializeApp(), ' +
|
|
106
107
|
'by following the instructions in the Firebase console.',
|
|
@@ -522,7 +523,7 @@ function _initializeAuthInstance(auth, deps) {
|
|
|
522
523
|
}
|
|
523
524
|
|
|
524
525
|
var name = "@firebase/auth";
|
|
525
|
-
var version = "0.
|
|
526
|
+
var version = "0.20.0";
|
|
526
527
|
|
|
527
528
|
/**
|
|
528
529
|
* @license
|
|
@@ -2321,6 +2322,104 @@ var PersistenceUserManager = /** @class */ (function () {
|
|
|
2321
2322
|
return PersistenceUserManager;
|
|
2322
2323
|
}());
|
|
2323
2324
|
|
|
2325
|
+
/**
|
|
2326
|
+
* @license
|
|
2327
|
+
* Copyright 2022 Google LLC
|
|
2328
|
+
*
|
|
2329
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2330
|
+
* you may not use this file except in compliance with the License.
|
|
2331
|
+
* You may obtain a copy of the License at
|
|
2332
|
+
*
|
|
2333
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2334
|
+
*
|
|
2335
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2336
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2337
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2338
|
+
* See the License for the specific language governing permissions and
|
|
2339
|
+
* limitations under the License.
|
|
2340
|
+
*/
|
|
2341
|
+
var AuthMiddlewareQueue = /** @class */ (function () {
|
|
2342
|
+
function AuthMiddlewareQueue(auth) {
|
|
2343
|
+
this.auth = auth;
|
|
2344
|
+
this.queue = [];
|
|
2345
|
+
}
|
|
2346
|
+
AuthMiddlewareQueue.prototype.pushCallback = function (callback, onAbort) {
|
|
2347
|
+
var _this = this;
|
|
2348
|
+
// The callback could be sync or async. Wrap it into a
|
|
2349
|
+
// function that is always async.
|
|
2350
|
+
var wrappedCallback = function (user) { return new Promise(function (resolve, reject) {
|
|
2351
|
+
try {
|
|
2352
|
+
var result = callback(user);
|
|
2353
|
+
// Either resolve with existing promise or wrap a non-promise
|
|
2354
|
+
// return value into a promise.
|
|
2355
|
+
resolve(result);
|
|
2356
|
+
}
|
|
2357
|
+
catch (e) {
|
|
2358
|
+
// Sync callback throws.
|
|
2359
|
+
reject(e);
|
|
2360
|
+
}
|
|
2361
|
+
}); };
|
|
2362
|
+
// Attach the onAbort if present
|
|
2363
|
+
wrappedCallback.onAbort = onAbort;
|
|
2364
|
+
this.queue.push(wrappedCallback);
|
|
2365
|
+
var index = this.queue.length - 1;
|
|
2366
|
+
return function () {
|
|
2367
|
+
// Unsubscribe. Replace with no-op. Do not remove from array, or it will disturb
|
|
2368
|
+
// indexing of other elements.
|
|
2369
|
+
_this.queue[index] = function () { return Promise.resolve(); };
|
|
2370
|
+
};
|
|
2371
|
+
};
|
|
2372
|
+
AuthMiddlewareQueue.prototype.runMiddleware = function (nextUser) {
|
|
2373
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2374
|
+
var onAbortStack, _i, _a, beforeStateCallback, e_1, _b, onAbortStack_1, onAbort;
|
|
2375
|
+
return __generator(this, function (_c) {
|
|
2376
|
+
switch (_c.label) {
|
|
2377
|
+
case 0:
|
|
2378
|
+
if (this.auth.currentUser === nextUser) {
|
|
2379
|
+
return [2 /*return*/];
|
|
2380
|
+
}
|
|
2381
|
+
onAbortStack = [];
|
|
2382
|
+
_c.label = 1;
|
|
2383
|
+
case 1:
|
|
2384
|
+
_c.trys.push([1, 6, , 7]);
|
|
2385
|
+
_i = 0, _a = this.queue;
|
|
2386
|
+
_c.label = 2;
|
|
2387
|
+
case 2:
|
|
2388
|
+
if (!(_i < _a.length)) return [3 /*break*/, 5];
|
|
2389
|
+
beforeStateCallback = _a[_i];
|
|
2390
|
+
return [4 /*yield*/, beforeStateCallback(nextUser)];
|
|
2391
|
+
case 3:
|
|
2392
|
+
_c.sent();
|
|
2393
|
+
// Only push the onAbort if the callback succeeds
|
|
2394
|
+
if (beforeStateCallback.onAbort) {
|
|
2395
|
+
onAbortStack.push(beforeStateCallback.onAbort);
|
|
2396
|
+
}
|
|
2397
|
+
_c.label = 4;
|
|
2398
|
+
case 4:
|
|
2399
|
+
_i++;
|
|
2400
|
+
return [3 /*break*/, 2];
|
|
2401
|
+
case 5: return [3 /*break*/, 7];
|
|
2402
|
+
case 6:
|
|
2403
|
+
e_1 = _c.sent();
|
|
2404
|
+
// Run all onAbort, with separate try/catch to ignore any errors and
|
|
2405
|
+
// continue
|
|
2406
|
+
onAbortStack.reverse();
|
|
2407
|
+
for (_b = 0, onAbortStack_1 = onAbortStack; _b < onAbortStack_1.length; _b++) {
|
|
2408
|
+
onAbort = onAbortStack_1[_b];
|
|
2409
|
+
try {
|
|
2410
|
+
onAbort();
|
|
2411
|
+
}
|
|
2412
|
+
catch (_) { /* swallow error */ }
|
|
2413
|
+
}
|
|
2414
|
+
throw this.auth._errorFactory.create("login-blocked" /* LOGIN_BLOCKED */, { originalMessage: e_1.message });
|
|
2415
|
+
case 7: return [2 /*return*/];
|
|
2416
|
+
}
|
|
2417
|
+
});
|
|
2418
|
+
});
|
|
2419
|
+
};
|
|
2420
|
+
return AuthMiddlewareQueue;
|
|
2421
|
+
}());
|
|
2422
|
+
|
|
2324
2423
|
/**
|
|
2325
2424
|
* @license
|
|
2326
2425
|
* Copyright 2020 Google LLC
|
|
@@ -2347,6 +2446,7 @@ var AuthImpl = /** @class */ (function () {
|
|
|
2347
2446
|
this.operations = Promise.resolve();
|
|
2348
2447
|
this.authStateSubscription = new Subscription(this);
|
|
2349
2448
|
this.idTokenSubscription = new Subscription(this);
|
|
2449
|
+
this.beforeStateQueue = new AuthMiddlewareQueue(this);
|
|
2350
2450
|
this.redirectUser = null;
|
|
2351
2451
|
this.isProactiveRefreshEnabled = false;
|
|
2352
2452
|
// Any network calls will set this to true and prevent subsequent emulator
|
|
@@ -2448,9 +2548,11 @@ var AuthImpl = /** @class */ (function () {
|
|
|
2448
2548
|
return [2 /*return*/];
|
|
2449
2549
|
case 3:
|
|
2450
2550
|
// Update current Auth state. Either a new login or logout.
|
|
2451
|
-
|
|
2551
|
+
// Skip blocking callbacks, they should not apply to a change in another tab.
|
|
2552
|
+
return [4 /*yield*/, this._updateCurrentUser(user, /* skipBeforeStateCallbacks */ true)];
|
|
2452
2553
|
case 4:
|
|
2453
2554
|
// Update current Auth state. Either a new login or logout.
|
|
2555
|
+
// Skip blocking callbacks, they should not apply to a change in another tab.
|
|
2454
2556
|
_a.sent();
|
|
2455
2557
|
return [2 /*return*/];
|
|
2456
2558
|
}
|
|
@@ -2460,18 +2562,20 @@ var AuthImpl = /** @class */ (function () {
|
|
|
2460
2562
|
AuthImpl.prototype.initializeCurrentUser = function (popupRedirectResolver) {
|
|
2461
2563
|
var _a;
|
|
2462
2564
|
return __awaiter(this, void 0, void 0, function () {
|
|
2463
|
-
var
|
|
2565
|
+
var previouslyStoredUser, futureCurrentUser, needsTocheckMiddleware, redirectUserEventId, storedUserEventId, result, e_2;
|
|
2464
2566
|
return __generator(this, function (_b) {
|
|
2465
2567
|
switch (_b.label) {
|
|
2466
2568
|
case 0: return [4 /*yield*/, this.assertedPersistence.getCurrentUser()];
|
|
2467
2569
|
case 1:
|
|
2468
|
-
|
|
2570
|
+
previouslyStoredUser = (_b.sent());
|
|
2571
|
+
futureCurrentUser = previouslyStoredUser;
|
|
2572
|
+
needsTocheckMiddleware = false;
|
|
2469
2573
|
if (!(popupRedirectResolver && this.config.authDomain)) return [3 /*break*/, 4];
|
|
2470
2574
|
return [4 /*yield*/, this.getOrInitRedirectPersistenceManager()];
|
|
2471
2575
|
case 2:
|
|
2472
2576
|
_b.sent();
|
|
2473
2577
|
redirectUserEventId = (_a = this.redirectUser) === null || _a === void 0 ? void 0 : _a._redirectEventId;
|
|
2474
|
-
storedUserEventId =
|
|
2578
|
+
storedUserEventId = futureCurrentUser === null || futureCurrentUser === void 0 ? void 0 : futureCurrentUser._redirectEventId;
|
|
2475
2579
|
return [4 /*yield*/, this.tryRedirectSignIn(popupRedirectResolver)];
|
|
2476
2580
|
case 3:
|
|
2477
2581
|
result = _b.sent();
|
|
@@ -2481,32 +2585,51 @@ var AuthImpl = /** @class */ (function () {
|
|
|
2481
2585
|
// TODO(samgho): More thoroughly test all of this
|
|
2482
2586
|
if ((!redirectUserEventId || redirectUserEventId === storedUserEventId) &&
|
|
2483
2587
|
(result === null || result === void 0 ? void 0 : result.user)) {
|
|
2484
|
-
|
|
2588
|
+
futureCurrentUser = result.user;
|
|
2589
|
+
needsTocheckMiddleware = true;
|
|
2485
2590
|
}
|
|
2486
2591
|
_b.label = 4;
|
|
2487
2592
|
case 4:
|
|
2488
2593
|
// If no user in persistence, there is no current user. Set to null.
|
|
2489
|
-
if (!
|
|
2594
|
+
if (!futureCurrentUser) {
|
|
2490
2595
|
return [2 /*return*/, this.directlySetCurrentUser(null)];
|
|
2491
2596
|
}
|
|
2492
|
-
if (
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2597
|
+
if (!!futureCurrentUser._redirectEventId) return [3 /*break*/, 9];
|
|
2598
|
+
if (!needsTocheckMiddleware) return [3 /*break*/, 8];
|
|
2599
|
+
_b.label = 5;
|
|
2600
|
+
case 5:
|
|
2601
|
+
_b.trys.push([5, 7, , 8]);
|
|
2602
|
+
return [4 /*yield*/, this.beforeStateQueue.runMiddleware(futureCurrentUser)];
|
|
2603
|
+
case 6:
|
|
2604
|
+
_b.sent();
|
|
2605
|
+
return [3 /*break*/, 8];
|
|
2606
|
+
case 7:
|
|
2607
|
+
e_2 = _b.sent();
|
|
2608
|
+
futureCurrentUser = previouslyStoredUser;
|
|
2609
|
+
// We know this is available since the bit is only set when the
|
|
2610
|
+
// resolver is available
|
|
2611
|
+
this._popupRedirectResolver._overrideRedirectResult(this, function () { return Promise.reject(e_2); });
|
|
2612
|
+
return [3 /*break*/, 8];
|
|
2613
|
+
case 8:
|
|
2614
|
+
if (futureCurrentUser) {
|
|
2615
|
+
return [2 /*return*/, this.reloadAndSetCurrentUserOrClear(futureCurrentUser)];
|
|
2616
|
+
}
|
|
2617
|
+
else {
|
|
2618
|
+
return [2 /*return*/, this.directlySetCurrentUser(null)];
|
|
2497
2619
|
}
|
|
2620
|
+
case 9:
|
|
2498
2621
|
_assert(this._popupRedirectResolver, this, "argument-error" /* ARGUMENT_ERROR */);
|
|
2499
2622
|
return [4 /*yield*/, this.getOrInitRedirectPersistenceManager()];
|
|
2500
|
-
case
|
|
2623
|
+
case 10:
|
|
2501
2624
|
_b.sent();
|
|
2502
2625
|
// If the redirect user's event ID matches the current user's event ID,
|
|
2503
2626
|
// DO NOT reload the current user, otherwise they'll be cleared from storage.
|
|
2504
2627
|
// This is important for the reauthenticateWithRedirect() flow.
|
|
2505
2628
|
if (this.redirectUser &&
|
|
2506
|
-
this.redirectUser._redirectEventId ===
|
|
2507
|
-
return [2 /*return*/, this.directlySetCurrentUser(
|
|
2629
|
+
this.redirectUser._redirectEventId === futureCurrentUser._redirectEventId) {
|
|
2630
|
+
return [2 /*return*/, this.directlySetCurrentUser(futureCurrentUser)];
|
|
2508
2631
|
}
|
|
2509
|
-
return [2 /*return*/, this.reloadAndSetCurrentUserOrClear(
|
|
2632
|
+
return [2 /*return*/, this.reloadAndSetCurrentUserOrClear(futureCurrentUser)];
|
|
2510
2633
|
}
|
|
2511
2634
|
});
|
|
2512
2635
|
});
|
|
@@ -2544,7 +2667,7 @@ var AuthImpl = /** @class */ (function () {
|
|
|
2544
2667
|
};
|
|
2545
2668
|
AuthImpl.prototype.reloadAndSetCurrentUserOrClear = function (user) {
|
|
2546
2669
|
return __awaiter(this, void 0, void 0, function () {
|
|
2547
|
-
var
|
|
2670
|
+
var e_4;
|
|
2548
2671
|
return __generator(this, function (_a) {
|
|
2549
2672
|
switch (_a.label) {
|
|
2550
2673
|
case 0:
|
|
@@ -2554,8 +2677,8 @@ var AuthImpl = /** @class */ (function () {
|
|
|
2554
2677
|
_a.sent();
|
|
2555
2678
|
return [3 /*break*/, 3];
|
|
2556
2679
|
case 2:
|
|
2557
|
-
|
|
2558
|
-
if (
|
|
2680
|
+
e_4 = _a.sent();
|
|
2681
|
+
if (e_4.code !== "auth/" + "network-request-failed" /* NETWORK_REQUEST_FAILED */) {
|
|
2559
2682
|
// Something's wrong with the user's token. Log them out and remove
|
|
2560
2683
|
// them from storage
|
|
2561
2684
|
return [2 /*return*/, this.directlySetCurrentUser(null)];
|
|
@@ -2591,27 +2714,36 @@ var AuthImpl = /** @class */ (function () {
|
|
|
2591
2714
|
});
|
|
2592
2715
|
});
|
|
2593
2716
|
};
|
|
2594
|
-
AuthImpl.prototype._updateCurrentUser = function (user) {
|
|
2717
|
+
AuthImpl.prototype._updateCurrentUser = function (user, skipBeforeStateCallbacks) {
|
|
2718
|
+
if (skipBeforeStateCallbacks === void 0) { skipBeforeStateCallbacks = false; }
|
|
2595
2719
|
return __awaiter(this, void 0, void 0, function () {
|
|
2596
2720
|
var _this = this;
|
|
2597
2721
|
return __generator(this, function (_a) {
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
|
|
2722
|
+
switch (_a.label) {
|
|
2723
|
+
case 0:
|
|
2724
|
+
if (this._deleted) {
|
|
2725
|
+
return [2 /*return*/];
|
|
2726
|
+
}
|
|
2727
|
+
if (user) {
|
|
2728
|
+
_assert(this.tenantId === user.tenantId, this, "tenant-id-mismatch" /* TENANT_ID_MISMATCH */);
|
|
2729
|
+
}
|
|
2730
|
+
if (!!skipBeforeStateCallbacks) return [3 /*break*/, 2];
|
|
2731
|
+
return [4 /*yield*/, this.beforeStateQueue.runMiddleware(user)];
|
|
2732
|
+
case 1:
|
|
2733
|
+
_a.sent();
|
|
2734
|
+
_a.label = 2;
|
|
2735
|
+
case 2: return [2 /*return*/, this.queue(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
2736
|
+
return __generator(this, function (_a) {
|
|
2737
|
+
switch (_a.label) {
|
|
2738
|
+
case 0: return [4 /*yield*/, this.directlySetCurrentUser(user)];
|
|
2739
|
+
case 1:
|
|
2740
|
+
_a.sent();
|
|
2741
|
+
this.notifyAuthListeners();
|
|
2742
|
+
return [2 /*return*/];
|
|
2743
|
+
}
|
|
2744
|
+
});
|
|
2745
|
+
}); })];
|
|
2603
2746
|
}
|
|
2604
|
-
return [2 /*return*/, this.queue(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
2605
|
-
return __generator(this, function (_a) {
|
|
2606
|
-
switch (_a.label) {
|
|
2607
|
-
case 0: return [4 /*yield*/, this.directlySetCurrentUser(user)];
|
|
2608
|
-
case 1:
|
|
2609
|
-
_a.sent();
|
|
2610
|
-
this.notifyAuthListeners();
|
|
2611
|
-
return [2 /*return*/];
|
|
2612
|
-
}
|
|
2613
|
-
});
|
|
2614
|
-
}); })];
|
|
2615
2747
|
});
|
|
2616
2748
|
});
|
|
2617
2749
|
};
|
|
@@ -2619,13 +2751,21 @@ var AuthImpl = /** @class */ (function () {
|
|
|
2619
2751
|
return __awaiter(this, void 0, void 0, function () {
|
|
2620
2752
|
return __generator(this, function (_a) {
|
|
2621
2753
|
switch (_a.label) {
|
|
2622
|
-
case 0:
|
|
2623
|
-
|
|
2624
|
-
|
|
2754
|
+
case 0:
|
|
2755
|
+
// Run first, to block _setRedirectUser() if any callbacks fail.
|
|
2756
|
+
return [4 /*yield*/, this.beforeStateQueue.runMiddleware(null)];
|
|
2625
2757
|
case 1:
|
|
2758
|
+
// Run first, to block _setRedirectUser() if any callbacks fail.
|
|
2626
2759
|
_a.sent();
|
|
2627
|
-
|
|
2628
|
-
|
|
2760
|
+
if (!(this.redirectPersistenceManager || this._popupRedirectResolver)) return [3 /*break*/, 3];
|
|
2761
|
+
return [4 /*yield*/, this._setRedirectUser(null)];
|
|
2762
|
+
case 2:
|
|
2763
|
+
_a.sent();
|
|
2764
|
+
_a.label = 3;
|
|
2765
|
+
case 3:
|
|
2766
|
+
// Prevent callbacks from being called again in _updateCurrentUser, as
|
|
2767
|
+
// they were already called in the first line.
|
|
2768
|
+
return [2 /*return*/, this._updateCurrentUser(null, /* skipBeforeStateCallbacks */ true)];
|
|
2629
2769
|
}
|
|
2630
2770
|
});
|
|
2631
2771
|
});
|
|
@@ -2652,6 +2792,9 @@ var AuthImpl = /** @class */ (function () {
|
|
|
2652
2792
|
AuthImpl.prototype.onAuthStateChanged = function (nextOrObserver, error, completed) {
|
|
2653
2793
|
return this.registerStateListener(this.authStateSubscription, nextOrObserver, error, completed);
|
|
2654
2794
|
};
|
|
2795
|
+
AuthImpl.prototype.beforeAuthStateChanged = function (callback, onAbort) {
|
|
2796
|
+
return this.beforeStateQueue.pushCallback(callback, onAbort);
|
|
2797
|
+
};
|
|
2655
2798
|
AuthImpl.prototype.onIdTokenChanged = function (nextOrObserver, error, completed) {
|
|
2656
2799
|
return this.registerStateListener(this.idTokenSubscription, nextOrObserver, error, completed);
|
|
2657
2800
|
};
|
|
@@ -7551,6 +7694,19 @@ function setPersistence(auth, persistence) {
|
|
|
7551
7694
|
function onIdTokenChanged(auth, nextOrObserver, error, completed) {
|
|
7552
7695
|
return getModularInstance(auth).onIdTokenChanged(nextOrObserver, error, completed);
|
|
7553
7696
|
}
|
|
7697
|
+
/**
|
|
7698
|
+
* Adds a blocking callback that runs before an auth state change
|
|
7699
|
+
* sets a new user.
|
|
7700
|
+
*
|
|
7701
|
+
* @param auth - The {@link Auth} instance.
|
|
7702
|
+
* @param callback - callback triggered before new user value is set.
|
|
7703
|
+
* If this throws, it blocks the user from being set.
|
|
7704
|
+
* @param onAbort - callback triggered if a later `beforeAuthStateChanged()`
|
|
7705
|
+
* callback throws, allowing you to undo any side effects.
|
|
7706
|
+
*/
|
|
7707
|
+
function beforeAuthStateChanged(auth, callback, onAbort) {
|
|
7708
|
+
return getModularInstance(auth).beforeAuthStateChanged(callback, onAbort);
|
|
7709
|
+
}
|
|
7554
7710
|
/**
|
|
7555
7711
|
* Adds an observer for changes to the user's sign-in state.
|
|
7556
7712
|
*
|
|
@@ -7944,5 +8100,5 @@ function getAuth(app) {
|
|
|
7944
8100
|
return auth;
|
|
7945
8101
|
}
|
|
7946
8102
|
|
|
7947
|
-
export { ActionCodeOperation, ActionCodeURL, AuthCredential, AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY as AuthErrorCodes, EmailAuthCredential, EmailAuthProvider, FacebookAuthProvider, FactorId, GithubAuthProvider, GoogleAuthProvider, OAuthCredential, OAuthProvider, OperationType, PhoneAuthCredential, ProviderId, SAMLAuthProvider, SignInMethod, TwitterAuthProvider, applyActionCode, checkActionCode, confirmPasswordReset, connectAuthEmulator, createUserWithEmailAndPassword, debugErrorMap, deleteUser, fetchSignInMethodsForEmail, getAdditionalUserInfo, getAuth, getIdToken, getIdTokenResult, getMultiFactorResolver, inMemoryPersistence, indexedDBLocalPersistence, initializeAuth, isSignInWithEmailLink, linkWithCredential, multiFactor, onAuthStateChanged, onIdTokenChanged, parseActionCodeURL, prodErrorMap, reauthenticateWithCredential, reload, sendEmailVerification, sendPasswordResetEmail, sendSignInLinkToEmail, setPersistence, signInAnonymously, signInWithCredential, signInWithCustomToken, signInWithEmailAndPassword, signInWithEmailLink, signOut, unlink, updateCurrentUser, updateEmail, updatePassword, updateProfile, useDeviceLanguage, verifyBeforeUpdateEmail, verifyPasswordResetCode };
|
|
8103
|
+
export { ActionCodeOperation, ActionCodeURL, AuthCredential, AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY as AuthErrorCodes, EmailAuthCredential, EmailAuthProvider, FacebookAuthProvider, FactorId, GithubAuthProvider, GoogleAuthProvider, OAuthCredential, OAuthProvider, OperationType, PhoneAuthCredential, ProviderId, SAMLAuthProvider, SignInMethod, TwitterAuthProvider, applyActionCode, beforeAuthStateChanged, checkActionCode, confirmPasswordReset, connectAuthEmulator, createUserWithEmailAndPassword, debugErrorMap, deleteUser, fetchSignInMethodsForEmail, getAdditionalUserInfo, getAuth, getIdToken, getIdTokenResult, getMultiFactorResolver, inMemoryPersistence, indexedDBLocalPersistence, initializeAuth, isSignInWithEmailLink, linkWithCredential, multiFactor, onAuthStateChanged, onIdTokenChanged, parseActionCodeURL, prodErrorMap, reauthenticateWithCredential, reload, sendEmailVerification, sendPasswordResetEmail, sendSignInLinkToEmail, setPersistence, signInAnonymously, signInWithCredential, signInWithCustomToken, signInWithEmailAndPassword, signInWithEmailLink, signOut, unlink, updateCurrentUser, updateEmail, updatePassword, updateProfile, useDeviceLanguage, verifyBeforeUpdateEmail, verifyPasswordResetCode };
|
|
7948
8104
|
//# sourceMappingURL=index.webworker.esm5.js.map
|