@firebase/auth 1.3.0-canary.eff95304d → 1.3.0-canary.f002ef36a

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 (72) hide show
  1. package/dist/auth-public.d.ts +25 -4
  2. package/dist/auth.d.ts +25 -4
  3. package/dist/browser-cjs/{index-bbdc1888.js → index-3d97c204.js} +133 -127
  4. package/dist/browser-cjs/index-3d97c204.js.map +1 -0
  5. package/dist/browser-cjs/index.js +1 -1
  6. package/dist/browser-cjs/internal.js +1 -1
  7. package/dist/browser-cjs/src/api/authentication/recaptcha.d.ts +2 -2
  8. package/dist/browser-cjs/src/api/index.d.ts +10 -0
  9. package/dist/browser-cjs/src/platform_browser/recaptcha/recaptcha.d.ts +18 -3
  10. package/dist/browser-cjs/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +3 -0
  11. package/dist/cordova/index.js +2 -2
  12. package/dist/cordova/internal.js +2 -2
  13. package/dist/cordova/{popup_redirect-f62a8012.js → popup_redirect-9281c39f.js} +183 -214
  14. package/dist/cordova/popup_redirect-9281c39f.js.map +1 -0
  15. package/dist/cordova/src/api/authentication/recaptcha.d.ts +2 -2
  16. package/dist/cordova/src/api/index.d.ts +10 -0
  17. package/dist/cordova/src/platform_browser/recaptcha/recaptcha.d.ts +18 -3
  18. package/dist/cordova/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +3 -0
  19. package/dist/esm2017/{index-2e980710.js → index-3000f55e.js} +133 -127
  20. package/dist/esm2017/index-3000f55e.js.map +1 -0
  21. package/dist/esm2017/index.js +1 -1
  22. package/dist/esm2017/internal.js +2 -2
  23. package/dist/esm2017/src/api/authentication/recaptcha.d.ts +2 -2
  24. package/dist/esm2017/src/api/index.d.ts +10 -0
  25. package/dist/esm2017/src/platform_browser/recaptcha/recaptcha.d.ts +18 -3
  26. package/dist/esm2017/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +3 -0
  27. package/dist/esm5/{index-ad762403.js → index-764f9bd9.js} +183 -214
  28. package/dist/esm5/index-764f9bd9.js.map +1 -0
  29. package/dist/esm5/index.js +1 -1
  30. package/dist/esm5/internal.js +2 -2
  31. package/dist/esm5/src/api/authentication/recaptcha.d.ts +2 -2
  32. package/dist/esm5/src/api/index.d.ts +10 -0
  33. package/dist/esm5/src/platform_browser/recaptcha/recaptcha.d.ts +18 -3
  34. package/dist/esm5/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +3 -0
  35. package/dist/index.webworker.esm5.js +141 -172
  36. package/dist/index.webworker.esm5.js.map +1 -1
  37. package/dist/node/index.js +1 -1
  38. package/dist/node/internal.js +1 -1
  39. package/dist/node/src/api/authentication/recaptcha.d.ts +2 -2
  40. package/dist/node/src/api/index.d.ts +10 -0
  41. package/dist/node/src/platform_browser/recaptcha/recaptcha.d.ts +18 -3
  42. package/dist/node/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +3 -0
  43. package/dist/node/{totp-99dfc228.js → totp-359f3930.js} +179 -210
  44. package/dist/node/totp-359f3930.js.map +1 -0
  45. package/dist/node-esm/index.js +1 -1
  46. package/dist/node-esm/internal.js +2 -2
  47. package/dist/node-esm/src/api/authentication/recaptcha.d.ts +2 -2
  48. package/dist/node-esm/src/api/index.d.ts +10 -0
  49. package/dist/node-esm/src/platform_browser/recaptcha/recaptcha.d.ts +18 -3
  50. package/dist/node-esm/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +3 -0
  51. package/dist/node-esm/{totp-6a7976b7.js → totp-3e8532c1.js} +129 -123
  52. package/dist/node-esm/totp-3e8532c1.js.map +1 -0
  53. package/dist/rn/{index-1737b0ce.js → index-fef1349d.js} +183 -214
  54. package/dist/rn/index-fef1349d.js.map +1 -0
  55. package/dist/rn/index.js +1 -1
  56. package/dist/rn/internal.js +1 -1
  57. package/dist/rn/src/api/authentication/recaptcha.d.ts +2 -2
  58. package/dist/rn/src/api/index.d.ts +10 -0
  59. package/dist/rn/src/platform_browser/recaptcha/recaptcha.d.ts +18 -3
  60. package/dist/rn/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +3 -0
  61. package/dist/src/api/authentication/recaptcha.d.ts +2 -2
  62. package/dist/src/api/index.d.ts +10 -0
  63. package/dist/src/platform_browser/recaptcha/recaptcha.d.ts +18 -3
  64. package/dist/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +3 -0
  65. package/package.json +6 -6
  66. package/dist/browser-cjs/index-bbdc1888.js.map +0 -1
  67. package/dist/cordova/popup_redirect-f62a8012.js.map +0 -1
  68. package/dist/esm2017/index-2e980710.js.map +0 -1
  69. package/dist/esm5/index-ad762403.js.map +0 -1
  70. package/dist/node/totp-99dfc228.js.map +0 -1
  71. package/dist/node-esm/totp-6a7976b7.js.map +0 -1
  72. package/dist/rn/index-1737b0ce.js.map +0 -1
@@ -918,53 +918,6 @@ var IndexedDBLocalPersistence = /** @class */ (function () {
918
918
  */
919
919
  var indexedDBLocalPersistence = IndexedDBLocalPersistence;
920
920
 
921
- /**
922
- * @license
923
- * Copyright 2020 Google LLC
924
- *
925
- * Licensed under the Apache License, Version 2.0 (the "License");
926
- * you may not use this file except in compliance with the License.
927
- * You may obtain a copy of the License at
928
- *
929
- * http://www.apache.org/licenses/LICENSE-2.0
930
- *
931
- * Unless required by applicable law or agreed to in writing, software
932
- * distributed under the License is distributed on an "AS IS" BASIS,
933
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
934
- * See the License for the specific language governing permissions and
935
- * limitations under the License.
936
- */
937
- function isV2(grecaptcha) {
938
- return (grecaptcha !== undefined &&
939
- grecaptcha.getResponse !== undefined);
940
- }
941
- function isEnterprise(grecaptcha) {
942
- return (grecaptcha !== undefined &&
943
- grecaptcha.enterprise !== undefined);
944
- }
945
- var RecaptchaConfig = /** @class */ (function () {
946
- function RecaptchaConfig(response) {
947
- /**
948
- * The reCAPTCHA site key.
949
- */
950
- this.siteKey = '';
951
- /**
952
- * The reCAPTCHA enablement status of the {@link EmailAuthProvider} for the current tenant.
953
- */
954
- this.emailPasswordEnabled = false;
955
- if (response.recaptchaKey === undefined) {
956
- throw new Error('recaptchaKey undefined');
957
- }
958
- // Example response.recaptchaKey: "projects/proj123/keys/sitekey123"
959
- this.siteKey = response.recaptchaKey.split('/')[3];
960
- this.emailPasswordEnabled = response.recaptchaEnforcementState.some(function (enforcementState) {
961
- return enforcementState.provider === 'EMAIL_PASSWORD_PROVIDER' &&
962
- enforcementState.enforcementState !== 'OFF';
963
- });
964
- }
965
- return RecaptchaConfig;
966
- }());
967
-
968
921
  /**
969
922
  * @license
970
923
  * Copyright 2020 Google LLC
@@ -1605,6 +1558,12 @@ var FetchProvider = /** @class */ (function () {
1605
1558
  if (typeof self !== 'undefined' && 'fetch' in self) {
1606
1559
  return self.fetch;
1607
1560
  }
1561
+ if (typeof globalThis !== 'undefined' && globalThis.fetch) {
1562
+ return globalThis.fetch;
1563
+ }
1564
+ if (typeof fetch !== 'undefined') {
1565
+ return fetch;
1566
+ }
1608
1567
  debugFail('Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill');
1609
1568
  };
1610
1569
  FetchProvider.headers = function () {
@@ -1614,6 +1573,12 @@ var FetchProvider = /** @class */ (function () {
1614
1573
  if (typeof self !== 'undefined' && 'Headers' in self) {
1615
1574
  return self.Headers;
1616
1575
  }
1576
+ if (typeof globalThis !== 'undefined' && globalThis.Headers) {
1577
+ return globalThis.Headers;
1578
+ }
1579
+ if (typeof Headers !== 'undefined') {
1580
+ return Headers;
1581
+ }
1617
1582
  debugFail('Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill');
1618
1583
  };
1619
1584
  FetchProvider.response = function () {
@@ -1623,6 +1588,12 @@ var FetchProvider = /** @class */ (function () {
1623
1588
  if (typeof self !== 'undefined' && 'Response' in self) {
1624
1589
  return self.Response;
1625
1590
  }
1591
+ if (typeof globalThis !== 'undefined' && globalThis.Response) {
1592
+ return globalThis.Response;
1593
+ }
1594
+ if (typeof Response !== 'undefined') {
1595
+ return Response;
1596
+ }
1626
1597
  debugFail('Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill');
1627
1598
  };
1628
1599
  return FetchProvider;
@@ -1875,6 +1846,18 @@ function _getFinalTarget(auth, host, path, query) {
1875
1846
  }
1876
1847
  return _emulatorUrl(auth.config, base);
1877
1848
  }
1849
+ function _parseEnforcementState(enforcementStateStr) {
1850
+ switch (enforcementStateStr) {
1851
+ case 'ENFORCE':
1852
+ return "ENFORCE" /* EnforcementState.ENFORCE */;
1853
+ case 'AUDIT':
1854
+ return "AUDIT" /* EnforcementState.AUDIT */;
1855
+ case 'OFF':
1856
+ return "OFF" /* EnforcementState.OFF */;
1857
+ default:
1858
+ return "ENFORCEMENT_STATE_UNSPECIFIED" /* EnforcementState.ENFORCEMENT_STATE_UNSPECIFIED */;
1859
+ }
1860
+ }
1878
1861
  var NetworkTimeout = /** @class */ (function () {
1879
1862
  function NetworkTimeout(auth) {
1880
1863
  var _this = this;
@@ -1910,6 +1893,81 @@ function _makeTaggedError(auth, code, response) {
1910
1893
  return error;
1911
1894
  }
1912
1895
 
1896
+ /**
1897
+ * @license
1898
+ * Copyright 2020 Google LLC
1899
+ *
1900
+ * Licensed under the Apache License, Version 2.0 (the "License");
1901
+ * you may not use this file except in compliance with the License.
1902
+ * You may obtain a copy of the License at
1903
+ *
1904
+ * http://www.apache.org/licenses/LICENSE-2.0
1905
+ *
1906
+ * Unless required by applicable law or agreed to in writing, software
1907
+ * distributed under the License is distributed on an "AS IS" BASIS,
1908
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1909
+ * See the License for the specific language governing permissions and
1910
+ * limitations under the License.
1911
+ */
1912
+ function isV2(grecaptcha) {
1913
+ return (grecaptcha !== undefined &&
1914
+ grecaptcha.getResponse !== undefined);
1915
+ }
1916
+ function isEnterprise(grecaptcha) {
1917
+ return (grecaptcha !== undefined &&
1918
+ grecaptcha.enterprise !== undefined);
1919
+ }
1920
+ var RecaptchaConfig = /** @class */ (function () {
1921
+ function RecaptchaConfig(response) {
1922
+ /**
1923
+ * The reCAPTCHA site key.
1924
+ */
1925
+ this.siteKey = '';
1926
+ /**
1927
+ * The list of providers and their enablement status for reCAPTCHA Enterprise.
1928
+ */
1929
+ this.recaptchaEnforcementState = [];
1930
+ if (response.recaptchaKey === undefined) {
1931
+ throw new Error('recaptchaKey undefined');
1932
+ }
1933
+ // Example response.recaptchaKey: "projects/proj123/keys/sitekey123"
1934
+ this.siteKey = response.recaptchaKey.split('/')[3];
1935
+ this.recaptchaEnforcementState = response.recaptchaEnforcementState;
1936
+ }
1937
+ /**
1938
+ * Returns the reCAPTCHA Enterprise enforcement state for the given provider.
1939
+ *
1940
+ * @param providerStr - The provider whose enforcement state is to be returned.
1941
+ * @returns The reCAPTCHA Enterprise enforcement state for the given provider.
1942
+ */
1943
+ RecaptchaConfig.prototype.getProviderEnforcementState = function (providerStr) {
1944
+ if (!this.recaptchaEnforcementState ||
1945
+ this.recaptchaEnforcementState.length === 0) {
1946
+ return null;
1947
+ }
1948
+ for (var _i = 0, _a = this.recaptchaEnforcementState; _i < _a.length; _i++) {
1949
+ var recaptchaEnforcementState = _a[_i];
1950
+ if (recaptchaEnforcementState.provider &&
1951
+ recaptchaEnforcementState.provider === providerStr) {
1952
+ return _parseEnforcementState(recaptchaEnforcementState.enforcementState);
1953
+ }
1954
+ }
1955
+ return null;
1956
+ };
1957
+ /**
1958
+ * Returns true if the reCAPTCHA Enterprise enforcement state for the provider is set to ENFORCE or AUDIT.
1959
+ *
1960
+ * @param providerStr - The provider whose enablement state is to be returned.
1961
+ * @returns Whether or not reCAPTCHA Enterprise protection is enabled for the given provider.
1962
+ */
1963
+ RecaptchaConfig.prototype.isProviderEnabled = function (providerStr) {
1964
+ return (this.getProviderEnforcementState(providerStr) ===
1965
+ "ENFORCE" /* EnforcementState.ENFORCE */ ||
1966
+ this.getProviderEnforcementState(providerStr) === "AUDIT" /* EnforcementState.AUDIT */);
1967
+ };
1968
+ return RecaptchaConfig;
1969
+ }());
1970
+
1913
1971
  /**
1914
1972
  * @license
1915
1973
  * Copyright 2020 Google LLC
@@ -4592,6 +4650,39 @@ function injectRecaptchaFields(auth, request, action, captchaResp) {
4592
4650
  });
4593
4651
  });
4594
4652
  }
4653
+ function handleRecaptchaFlow(authInstance, request, actionName, actionMethod) {
4654
+ var _a;
4655
+ return __awaiter(this, void 0, void 0, function () {
4656
+ var requestWithRecaptcha;
4657
+ var _this = this;
4658
+ return __generator(this, function (_b) {
4659
+ switch (_b.label) {
4660
+ case 0:
4661
+ if (!((_a = authInstance
4662
+ ._getRecaptchaConfig()) === null || _a === void 0 ? void 0 : _a.isProviderEnabled("EMAIL_PASSWORD_PROVIDER" /* RecaptchaProvider.EMAIL_PASSWORD_PROVIDER */))) return [3 /*break*/, 2];
4663
+ return [4 /*yield*/, injectRecaptchaFields(authInstance, request, actionName, actionName === "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */)];
4664
+ case 1:
4665
+ requestWithRecaptcha = _b.sent();
4666
+ return [2 /*return*/, actionMethod(authInstance, requestWithRecaptcha)];
4667
+ case 2: return [2 /*return*/, actionMethod(authInstance, request).catch(function (error) { return __awaiter(_this, void 0, void 0, function () {
4668
+ var requestWithRecaptcha;
4669
+ return __generator(this, function (_a) {
4670
+ switch (_a.label) {
4671
+ case 0:
4672
+ if (!(error.code === "auth/".concat("missing-recaptcha-token" /* AuthErrorCode.MISSING_RECAPTCHA_TOKEN */))) return [3 /*break*/, 2];
4673
+ console.log("".concat(actionName, " is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow."));
4674
+ return [4 /*yield*/, injectRecaptchaFields(authInstance, request, actionName, actionName === "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */)];
4675
+ case 1:
4676
+ requestWithRecaptcha = _a.sent();
4677
+ return [2 /*return*/, actionMethod(authInstance, requestWithRecaptcha)];
4678
+ case 2: return [2 /*return*/, Promise.reject(error)];
4679
+ }
4680
+ });
4681
+ }); })];
4682
+ }
4683
+ });
4684
+ });
4685
+ }
4595
4686
  function _initializeRecaptchaConfig(auth) {
4596
4687
  return __awaiter(this, void 0, void 0, function () {
4597
4688
  var authInternal, response, config, verifier;
@@ -4612,7 +4703,7 @@ function _initializeRecaptchaConfig(auth) {
4612
4703
  else {
4613
4704
  authInternal._tenantRecaptchaConfigs[authInternal.tenantId] = config;
4614
4705
  }
4615
- if (config.emailPasswordEnabled) {
4706
+ if (config.isProviderEnabled("EMAIL_PASSWORD_PROVIDER" /* RecaptchaProvider.EMAIL_PASSWORD_PROVIDER */)) {
4616
4707
  verifier = new RecaptchaEnterpriseVerifier(authInternal);
4617
4708
  void verifier.verify();
4618
4709
  }
@@ -5078,55 +5169,27 @@ var EmailAuthCredential = /** @class */ (function (_super) {
5078
5169
  };
5079
5170
  /** @internal */
5080
5171
  EmailAuthCredential.prototype._getIdTokenResponse = function (auth) {
5081
- var _a;
5082
5172
  return __awaiter(this, void 0, void 0, function () {
5083
- var _b, request_1, requestWithRecaptcha;
5084
- var _this = this;
5085
- return __generator(this, function (_c) {
5086
- switch (_c.label) {
5087
- case 0:
5088
- _b = this.signInMethod;
5089
- switch (_b) {
5090
- case "password" /* SignInMethod.EMAIL_PASSWORD */: return [3 /*break*/, 1];
5091
- case "emailLink" /* SignInMethod.EMAIL_LINK */: return [3 /*break*/, 4];
5092
- }
5093
- return [3 /*break*/, 5];
5094
- case 1:
5095
- request_1 = {
5173
+ var request;
5174
+ return __generator(this, function (_a) {
5175
+ switch (this.signInMethod) {
5176
+ case "password" /* SignInMethod.EMAIL_PASSWORD */:
5177
+ request = {
5096
5178
  returnSecureToken: true,
5097
5179
  email: this._email,
5098
5180
  password: this._password,
5099
5181
  clientType: "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */
5100
5182
  };
5101
- if (!((_a = auth._getRecaptchaConfig()) === null || _a === void 0 ? void 0 : _a.emailPasswordEnabled)) return [3 /*break*/, 3];
5102
- return [4 /*yield*/, injectRecaptchaFields(auth, request_1, "signInWithPassword" /* RecaptchaActionName.SIGN_IN_WITH_PASSWORD */)];
5103
- case 2:
5104
- requestWithRecaptcha = _c.sent();
5105
- return [2 /*return*/, signInWithPassword(auth, requestWithRecaptcha)];
5106
- case 3: return [2 /*return*/, signInWithPassword(auth, request_1).catch(function (error) { return __awaiter(_this, void 0, void 0, function () {
5107
- var requestWithRecaptcha;
5108
- return __generator(this, function (_a) {
5109
- switch (_a.label) {
5110
- case 0:
5111
- if (!(error.code === "auth/".concat("missing-recaptcha-token" /* AuthErrorCode.MISSING_RECAPTCHA_TOKEN */))) return [3 /*break*/, 2];
5112
- console.log('Sign-in with email address and password is protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the sign-in flow.');
5113
- return [4 /*yield*/, injectRecaptchaFields(auth, request_1, "signInWithPassword" /* RecaptchaActionName.SIGN_IN_WITH_PASSWORD */)];
5114
- case 1:
5115
- requestWithRecaptcha = _a.sent();
5116
- return [2 /*return*/, signInWithPassword(auth, requestWithRecaptcha)];
5117
- case 2: return [2 /*return*/, Promise.reject(error)];
5118
- }
5119
- });
5120
- }); })];
5121
- case 4: return [2 /*return*/, signInWithEmailLink$1(auth, {
5122
- email: this._email,
5123
- oobCode: this._password
5124
- })];
5125
- case 5:
5183
+ return [2 /*return*/, handleRecaptchaFlow(auth, request, "signInWithPassword" /* RecaptchaActionName.SIGN_IN_WITH_PASSWORD */, signInWithPassword)];
5184
+ case "emailLink" /* SignInMethod.EMAIL_LINK */:
5185
+ return [2 /*return*/, signInWithEmailLink$1(auth, {
5186
+ email: this._email,
5187
+ oobCode: this._password
5188
+ })];
5189
+ default:
5126
5190
  _fail(auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
5127
- _c.label = 6;
5128
- case 6: return [2 /*return*/];
5129
5191
  }
5192
+ return [2 /*return*/];
5130
5193
  });
5131
5194
  });
5132
5195
  };
@@ -7343,12 +7406,10 @@ function recachePasswordPolicy(auth) {
7343
7406
  * @public
7344
7407
  */
7345
7408
  function sendPasswordResetEmail(auth, email, actionCodeSettings) {
7346
- var _a;
7347
7409
  return __awaiter(this, void 0, void 0, function () {
7348
- var authInternal, request, requestWithRecaptcha;
7349
- var _this = this;
7350
- return __generator(this, function (_b) {
7351
- switch (_b.label) {
7410
+ var authInternal, request;
7411
+ return __generator(this, function (_a) {
7412
+ switch (_a.label) {
7352
7413
  case 0:
7353
7414
  authInternal = _castAuth(auth);
7354
7415
  request = {
@@ -7356,48 +7417,13 @@ function sendPasswordResetEmail(auth, email, actionCodeSettings) {
7356
7417
  email: email,
7357
7418
  clientType: "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */
7358
7419
  };
7359
- if (!((_a = authInternal._getRecaptchaConfig()) === null || _a === void 0 ? void 0 : _a.emailPasswordEnabled)) return [3 /*break*/, 3];
7360
- return [4 /*yield*/, injectRecaptchaFields(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, true)];
7361
- case 1:
7362
- requestWithRecaptcha = _b.sent();
7363
- if (actionCodeSettings) {
7364
- _setActionCodeSettingsOnRequest(authInternal, requestWithRecaptcha, actionCodeSettings);
7365
- }
7366
- return [4 /*yield*/, sendPasswordResetEmail$1(authInternal, requestWithRecaptcha)];
7367
- case 2:
7368
- _b.sent();
7369
- return [3 /*break*/, 5];
7370
- case 3:
7371
7420
  if (actionCodeSettings) {
7372
7421
  _setActionCodeSettingsOnRequest(authInternal, request, actionCodeSettings);
7373
7422
  }
7374
- return [4 /*yield*/, sendPasswordResetEmail$1(authInternal, request)
7375
- .catch(function (error) { return __awaiter(_this, void 0, void 0, function () {
7376
- var requestWithRecaptcha;
7377
- return __generator(this, function (_a) {
7378
- switch (_a.label) {
7379
- case 0:
7380
- if (!(error.code === "auth/".concat("missing-recaptcha-token" /* AuthErrorCode.MISSING_RECAPTCHA_TOKEN */))) return [3 /*break*/, 3];
7381
- console.log('Password resets are protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the password reset flow.');
7382
- return [4 /*yield*/, injectRecaptchaFields(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, true)];
7383
- case 1:
7384
- requestWithRecaptcha = _a.sent();
7385
- if (actionCodeSettings) {
7386
- _setActionCodeSettingsOnRequest(authInternal, requestWithRecaptcha, actionCodeSettings);
7387
- }
7388
- return [4 /*yield*/, sendPasswordResetEmail$1(authInternal, requestWithRecaptcha)];
7389
- case 2:
7390
- _a.sent();
7391
- return [3 /*break*/, 4];
7392
- case 3: return [2 /*return*/, Promise.reject(error)];
7393
- case 4: return [2 /*return*/];
7394
- }
7395
- });
7396
- }); })];
7397
- case 4:
7398
- _b.sent();
7399
- _b.label = 5;
7400
- case 5: return [2 /*return*/];
7423
+ return [4 /*yield*/, handleRecaptchaFlow(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, sendPasswordResetEmail$1)];
7424
+ case 1:
7425
+ _a.sent();
7426
+ return [2 /*return*/];
7401
7427
  }
7402
7428
  });
7403
7429
  });
@@ -7552,12 +7578,10 @@ function verifyPasswordResetCode(auth, code) {
7552
7578
  * @public
7553
7579
  */
7554
7580
  function createUserWithEmailAndPassword(auth, email, password) {
7555
- var _a;
7556
7581
  return __awaiter(this, void 0, void 0, function () {
7557
- var authInternal, request, signUpResponse, requestWithRecaptcha, response, userCredential;
7558
- var _this = this;
7559
- return __generator(this, function (_b) {
7560
- switch (_b.label) {
7582
+ var authInternal, request, signUpResponse, response, userCredential;
7583
+ return __generator(this, function (_a) {
7584
+ switch (_a.label) {
7561
7585
  case 0:
7562
7586
  authInternal = _castAuth(auth);
7563
7587
  request = {
@@ -7566,43 +7590,21 @@ function createUserWithEmailAndPassword(auth, email, password) {
7566
7590
  password: password,
7567
7591
  clientType: "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */
7568
7592
  };
7569
- if (!((_a = authInternal._getRecaptchaConfig()) === null || _a === void 0 ? void 0 : _a.emailPasswordEnabled)) return [3 /*break*/, 2];
7570
- return [4 /*yield*/, injectRecaptchaFields(authInternal, request, "signUpPassword" /* RecaptchaActionName.SIGN_UP_PASSWORD */)];
7571
- case 1:
7572
- requestWithRecaptcha = _b.sent();
7573
- signUpResponse = signUp(authInternal, requestWithRecaptcha);
7574
- return [3 /*break*/, 3];
7575
- case 2:
7576
- signUpResponse = signUp(authInternal, request).catch(function (error) { return __awaiter(_this, void 0, void 0, function () {
7577
- var requestWithRecaptcha;
7578
- return __generator(this, function (_a) {
7579
- switch (_a.label) {
7580
- case 0:
7581
- if (!(error.code === "auth/".concat("missing-recaptcha-token" /* AuthErrorCode.MISSING_RECAPTCHA_TOKEN */))) return [3 /*break*/, 2];
7582
- console.log('Sign-up is protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the sign-up flow.');
7583
- return [4 /*yield*/, injectRecaptchaFields(authInternal, request, "signUpPassword" /* RecaptchaActionName.SIGN_UP_PASSWORD */)];
7584
- case 1:
7585
- requestWithRecaptcha = _a.sent();
7586
- return [2 /*return*/, signUp(authInternal, requestWithRecaptcha)];
7587
- case 2: throw error;
7593
+ signUpResponse = handleRecaptchaFlow(authInternal, request, "signUpPassword" /* RecaptchaActionName.SIGN_UP_PASSWORD */, signUp);
7594
+ return [4 /*yield*/, signUpResponse.catch(function (error) {
7595
+ if (error.code === "auth/".concat("password-does-not-meet-requirements" /* AuthErrorCode.PASSWORD_DOES_NOT_MEET_REQUIREMENTS */)) {
7596
+ void recachePasswordPolicy(auth);
7588
7597
  }
7589
- });
7590
- }); });
7591
- _b.label = 3;
7592
- case 3: return [4 /*yield*/, signUpResponse.catch(function (error) {
7593
- if (error.code === "auth/".concat("password-does-not-meet-requirements" /* AuthErrorCode.PASSWORD_DOES_NOT_MEET_REQUIREMENTS */)) {
7594
- void recachePasswordPolicy(auth);
7595
- }
7596
- throw error;
7597
- })];
7598
- case 4:
7599
- response = _b.sent();
7598
+ throw error;
7599
+ })];
7600
+ case 1:
7601
+ response = _a.sent();
7600
7602
  return [4 /*yield*/, UserCredentialImpl._fromIdTokenResponse(authInternal, "signIn" /* OperationType.SIGN_IN */, response)];
7601
- case 5:
7602
- userCredential = _b.sent();
7603
+ case 2:
7604
+ userCredential = _a.sent();
7603
7605
  return [4 /*yield*/, authInternal._updateCurrentUser(userCredential.user)];
7604
- case 6:
7605
- _b.sent();
7606
+ case 3:
7607
+ _a.sent();
7606
7608
  return [2 /*return*/, userCredential];
7607
7609
  }
7608
7610
  });
@@ -7691,7 +7693,6 @@ function signInWithEmailAndPassword(auth, email, password) {
7691
7693
  * @public
7692
7694
  */
7693
7695
  function sendSignInLinkToEmail(auth, email, actionCodeSettings) {
7694
- var _a;
7695
7696
  return __awaiter(this, void 0, void 0, function () {
7696
7697
  function setActionCodeSettings(request, actionCodeSettings) {
7697
7698
  _assert(actionCodeSettings.handleCodeInApp, authInternal, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
@@ -7699,10 +7700,9 @@ function sendSignInLinkToEmail(auth, email, actionCodeSettings) {
7699
7700
  _setActionCodeSettingsOnRequest(authInternal, request, actionCodeSettings);
7700
7701
  }
7701
7702
  }
7702
- var authInternal, request, requestWithRecaptcha;
7703
- var _this = this;
7704
- return __generator(this, function (_b) {
7705
- switch (_b.label) {
7703
+ var authInternal, request;
7704
+ return __generator(this, function (_a) {
7705
+ switch (_a.label) {
7706
7706
  case 0:
7707
7707
  authInternal = _castAuth(auth);
7708
7708
  request = {
@@ -7710,42 +7710,11 @@ function sendSignInLinkToEmail(auth, email, actionCodeSettings) {
7710
7710
  email: email,
7711
7711
  clientType: "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */
7712
7712
  };
7713
- if (!((_a = authInternal._getRecaptchaConfig()) === null || _a === void 0 ? void 0 : _a.emailPasswordEnabled)) return [3 /*break*/, 3];
7714
- return [4 /*yield*/, injectRecaptchaFields(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, true)];
7715
- case 1:
7716
- requestWithRecaptcha = _b.sent();
7717
- setActionCodeSettings(requestWithRecaptcha, actionCodeSettings);
7718
- return [4 /*yield*/, sendSignInLinkToEmail$1(authInternal, requestWithRecaptcha)];
7719
- case 2:
7720
- _b.sent();
7721
- return [3 /*break*/, 5];
7722
- case 3:
7723
7713
  setActionCodeSettings(request, actionCodeSettings);
7724
- return [4 /*yield*/, sendSignInLinkToEmail$1(authInternal, request)
7725
- .catch(function (error) { return __awaiter(_this, void 0, void 0, function () {
7726
- var requestWithRecaptcha;
7727
- return __generator(this, function (_a) {
7728
- switch (_a.label) {
7729
- case 0:
7730
- if (!(error.code === "auth/".concat("missing-recaptcha-token" /* AuthErrorCode.MISSING_RECAPTCHA_TOKEN */))) return [3 /*break*/, 3];
7731
- console.log('Email link sign-in is protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the sign-in flow.');
7732
- return [4 /*yield*/, injectRecaptchaFields(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, true)];
7733
- case 1:
7734
- requestWithRecaptcha = _a.sent();
7735
- setActionCodeSettings(requestWithRecaptcha, actionCodeSettings);
7736
- return [4 /*yield*/, sendSignInLinkToEmail$1(authInternal, requestWithRecaptcha)];
7737
- case 2:
7738
- _a.sent();
7739
- return [3 /*break*/, 4];
7740
- case 3: return [2 /*return*/, Promise.reject(error)];
7741
- case 4: return [2 /*return*/];
7742
- }
7743
- });
7744
- }); })];
7745
- case 4:
7746
- _b.sent();
7747
- _b.label = 5;
7748
- case 5: return [2 /*return*/];
7714
+ return [4 /*yield*/, handleRecaptchaFlow(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, sendSignInLinkToEmail$1)];
7715
+ case 1:
7716
+ _a.sent();
7717
+ return [2 /*return*/];
7749
7718
  }
7750
7719
  });
7751
7720
  });
@@ -8825,7 +8794,7 @@ function multiFactor(user) {
8825
8794
  }
8826
8795
 
8827
8796
  var name = "@firebase/auth";
8828
- var version = "1.3.0-canary.eff95304d";
8797
+ var version = "1.3.0-canary.f002ef36a";
8829
8798
 
8830
8799
  /**
8831
8800
  * @license
@@ -11029,4 +10998,4 @@ function generateNoEvent() {
11029
10998
  }
11030
10999
 
11031
11000
  export { sendSignInLinkToEmail as $, ActionCodeOperation as A, inMemoryPersistence as B, EmailAuthProvider as C, FacebookAuthProvider as D, EmailAuthCredential as E, FactorId as F, GoogleAuthProvider as G, GithubAuthProvider as H, OAuthProvider as I, SAMLAuthProvider as J, signInAnonymously as K, signInWithCredential as L, linkWithCredential as M, reauthenticateWithCredential as N, OperationType as O, ProviderId as P, signInWithCustomToken as Q, sendPasswordResetEmail as R, SignInMethod as S, TwitterAuthProvider as T, confirmPasswordReset as U, applyActionCode as V, checkActionCode as W, verifyPasswordResetCode as X, createUserWithEmailAndPassword as Y, signInWithEmailAndPassword as Z, _signInWithRedirect as _, _reauthenticateWithRedirect as a, _getClientVersion as a$, isSignInWithEmailLink as a0, signInWithEmailLink as a1, fetchSignInMethodsForEmail as a2, sendEmailVerification as a3, verifyBeforeUpdateEmail as a4, ActionCodeURL as a5, parseActionCodeURL as a6, updateProfile as a7, updateEmail as a8, updatePassword as a9, AbstractPopupRedirectOperation as aA, _assertInstanceOf as aB, _withDefaultResolver as aC, FederatedAuthProvider as aD, _fail as aE, _getProjectConfig as aF, _getCurrentUrl as aG, _emulatorUrl as aH, _isChromeIOS as aI, _isFirefox as aJ, _isIOSStandalone as aK, _getRedirectUrl as aL, _setWindowLocation as aM, _isMobileBrowser as aN, _isSafari as aO, _isIOS as aP, _getRedirectResult as aQ, _overrideRedirectResult as aR, AuthEventManager as aS, debugFail as aT, finalizeEnrollPhoneMfa as aU, finalizeEnrollTotpMfa as aV, startEnrollTotpMfa as aW, _persistenceKeyName as aX, UserImpl as aY, _getInstance as aZ, AuthImpl as a_, getIdToken as aa, getIdTokenResult as ab, unlink as ac, getAdditionalUserInfo as ad, reload as ae, getMultiFactorResolver as af, multiFactor as ag, _performApiRequest as ah, _addTidIfNecessary as ai, _assert as aj, Delay as ak, _window as al, isV2 as am, _createError as an, _loadJS as ao, _generateCallbackName as ap, getRecaptchaParams as aq, _isHttpOrHttps as ar, _isWorker as as, _castAuth as at, _assertLinkedStatus as au, sendPhoneVerificationCode as av, startEnrollPhoneMfa as aw, _link$1 as ax, debugAssert as ay, _generateEventId as az, _linkWithRedirect as b, FetchProvider as b0, SAMLAuthCredential as b1, signInWithRedirect as b2, linkWithRedirect as b3, reauthenticateWithRedirect as b4, indexedDBLocalPersistence as c, cordovaPopupRedirectResolver as d, browserLocalPersistence as e, browserSessionPersistence as f, getRedirectResult as g, initializeRecaptchaConfig as h, initializeAuth as i, beforeAuthStateChanged as j, onAuthStateChanged as k, updateCurrentUser as l, signOut as m, deleteUser as n, onIdTokenChanged as o, debugErrorMap as p, prodErrorMap as q, registerAuth as r, setPersistence as s, AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY as t, useDeviceLanguage as u, validatePassword as v, connectAuthEmulator as w, AuthCredential as x, OAuthCredential as y, PhoneAuthCredential as z };
11032
- //# sourceMappingURL=popup_redirect-f62a8012.js.map
11001
+ //# sourceMappingURL=popup_redirect-9281c39f.js.map