@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
@@ -103,53 +103,6 @@ var ActionCodeOperation = {
103
103
  VERIFY_EMAIL: 'VERIFY_EMAIL'
104
104
  };
105
105
 
106
- /**
107
- * @license
108
- * Copyright 2020 Google LLC
109
- *
110
- * Licensed under the Apache License, Version 2.0 (the "License");
111
- * you may not use this file except in compliance with the License.
112
- * You may obtain a copy of the License at
113
- *
114
- * http://www.apache.org/licenses/LICENSE-2.0
115
- *
116
- * Unless required by applicable law or agreed to in writing, software
117
- * distributed under the License is distributed on an "AS IS" BASIS,
118
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
119
- * See the License for the specific language governing permissions and
120
- * limitations under the License.
121
- */
122
- function isV2(grecaptcha) {
123
- return (grecaptcha !== undefined &&
124
- grecaptcha.getResponse !== undefined);
125
- }
126
- function isEnterprise(grecaptcha) {
127
- return (grecaptcha !== undefined &&
128
- grecaptcha.enterprise !== undefined);
129
- }
130
- var RecaptchaConfig = /** @class */ (function () {
131
- function RecaptchaConfig(response) {
132
- /**
133
- * The reCAPTCHA site key.
134
- */
135
- this.siteKey = '';
136
- /**
137
- * The reCAPTCHA enablement status of the {@link EmailAuthProvider} for the current tenant.
138
- */
139
- this.emailPasswordEnabled = false;
140
- if (response.recaptchaKey === undefined) {
141
- throw new Error('recaptchaKey undefined');
142
- }
143
- // Example response.recaptchaKey: "projects/proj123/keys/sitekey123"
144
- this.siteKey = response.recaptchaKey.split('/')[3];
145
- this.emailPasswordEnabled = response.recaptchaEnforcementState.some(function (enforcementState) {
146
- return enforcementState.provider === 'EMAIL_PASSWORD_PROVIDER' &&
147
- enforcementState.enforcementState !== 'OFF';
148
- });
149
- }
150
- return RecaptchaConfig;
151
- }());
152
-
153
106
  /**
154
107
  * @license
155
108
  * Copyright 2020 Google LLC
@@ -790,6 +743,12 @@ var FetchProvider = /** @class */ (function () {
790
743
  if (typeof self !== 'undefined' && 'fetch' in self) {
791
744
  return self.fetch;
792
745
  }
746
+ if (typeof globalThis !== 'undefined' && globalThis.fetch) {
747
+ return globalThis.fetch;
748
+ }
749
+ if (typeof fetch !== 'undefined') {
750
+ return fetch;
751
+ }
793
752
  debugFail('Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill');
794
753
  };
795
754
  FetchProvider.headers = function () {
@@ -799,6 +758,12 @@ var FetchProvider = /** @class */ (function () {
799
758
  if (typeof self !== 'undefined' && 'Headers' in self) {
800
759
  return self.Headers;
801
760
  }
761
+ if (typeof globalThis !== 'undefined' && globalThis.Headers) {
762
+ return globalThis.Headers;
763
+ }
764
+ if (typeof Headers !== 'undefined') {
765
+ return Headers;
766
+ }
802
767
  debugFail('Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill');
803
768
  };
804
769
  FetchProvider.response = function () {
@@ -808,6 +773,12 @@ var FetchProvider = /** @class */ (function () {
808
773
  if (typeof self !== 'undefined' && 'Response' in self) {
809
774
  return self.Response;
810
775
  }
776
+ if (typeof globalThis !== 'undefined' && globalThis.Response) {
777
+ return globalThis.Response;
778
+ }
779
+ if (typeof Response !== 'undefined') {
780
+ return Response;
781
+ }
811
782
  debugFail('Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill');
812
783
  };
813
784
  return FetchProvider;
@@ -1060,6 +1031,18 @@ function _getFinalTarget(auth, host, path, query) {
1060
1031
  }
1061
1032
  return _emulatorUrl(auth.config, base);
1062
1033
  }
1034
+ function _parseEnforcementState(enforcementStateStr) {
1035
+ switch (enforcementStateStr) {
1036
+ case 'ENFORCE':
1037
+ return "ENFORCE" /* EnforcementState.ENFORCE */;
1038
+ case 'AUDIT':
1039
+ return "AUDIT" /* EnforcementState.AUDIT */;
1040
+ case 'OFF':
1041
+ return "OFF" /* EnforcementState.OFF */;
1042
+ default:
1043
+ return "ENFORCEMENT_STATE_UNSPECIFIED" /* EnforcementState.ENFORCEMENT_STATE_UNSPECIFIED */;
1044
+ }
1045
+ }
1063
1046
  var NetworkTimeout = /** @class */ (function () {
1064
1047
  function NetworkTimeout(auth) {
1065
1048
  var _this = this;
@@ -1095,6 +1078,81 @@ function _makeTaggedError(auth, code, response) {
1095
1078
  return error;
1096
1079
  }
1097
1080
 
1081
+ /**
1082
+ * @license
1083
+ * Copyright 2020 Google LLC
1084
+ *
1085
+ * Licensed under the Apache License, Version 2.0 (the "License");
1086
+ * you may not use this file except in compliance with the License.
1087
+ * You may obtain a copy of the License at
1088
+ *
1089
+ * http://www.apache.org/licenses/LICENSE-2.0
1090
+ *
1091
+ * Unless required by applicable law or agreed to in writing, software
1092
+ * distributed under the License is distributed on an "AS IS" BASIS,
1093
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1094
+ * See the License for the specific language governing permissions and
1095
+ * limitations under the License.
1096
+ */
1097
+ function isV2(grecaptcha) {
1098
+ return (grecaptcha !== undefined &&
1099
+ grecaptcha.getResponse !== undefined);
1100
+ }
1101
+ function isEnterprise(grecaptcha) {
1102
+ return (grecaptcha !== undefined &&
1103
+ grecaptcha.enterprise !== undefined);
1104
+ }
1105
+ var RecaptchaConfig = /** @class */ (function () {
1106
+ function RecaptchaConfig(response) {
1107
+ /**
1108
+ * The reCAPTCHA site key.
1109
+ */
1110
+ this.siteKey = '';
1111
+ /**
1112
+ * The list of providers and their enablement status for reCAPTCHA Enterprise.
1113
+ */
1114
+ this.recaptchaEnforcementState = [];
1115
+ if (response.recaptchaKey === undefined) {
1116
+ throw new Error('recaptchaKey undefined');
1117
+ }
1118
+ // Example response.recaptchaKey: "projects/proj123/keys/sitekey123"
1119
+ this.siteKey = response.recaptchaKey.split('/')[3];
1120
+ this.recaptchaEnforcementState = response.recaptchaEnforcementState;
1121
+ }
1122
+ /**
1123
+ * Returns the reCAPTCHA Enterprise enforcement state for the given provider.
1124
+ *
1125
+ * @param providerStr - The provider whose enforcement state is to be returned.
1126
+ * @returns The reCAPTCHA Enterprise enforcement state for the given provider.
1127
+ */
1128
+ RecaptchaConfig.prototype.getProviderEnforcementState = function (providerStr) {
1129
+ if (!this.recaptchaEnforcementState ||
1130
+ this.recaptchaEnforcementState.length === 0) {
1131
+ return null;
1132
+ }
1133
+ for (var _i = 0, _a = this.recaptchaEnforcementState; _i < _a.length; _i++) {
1134
+ var recaptchaEnforcementState = _a[_i];
1135
+ if (recaptchaEnforcementState.provider &&
1136
+ recaptchaEnforcementState.provider === providerStr) {
1137
+ return _parseEnforcementState(recaptchaEnforcementState.enforcementState);
1138
+ }
1139
+ }
1140
+ return null;
1141
+ };
1142
+ /**
1143
+ * Returns true if the reCAPTCHA Enterprise enforcement state for the provider is set to ENFORCE or AUDIT.
1144
+ *
1145
+ * @param providerStr - The provider whose enablement state is to be returned.
1146
+ * @returns Whether or not reCAPTCHA Enterprise protection is enabled for the given provider.
1147
+ */
1148
+ RecaptchaConfig.prototype.isProviderEnabled = function (providerStr) {
1149
+ return (this.getProviderEnforcementState(providerStr) ===
1150
+ "ENFORCE" /* EnforcementState.ENFORCE */ ||
1151
+ this.getProviderEnforcementState(providerStr) === "AUDIT" /* EnforcementState.AUDIT */);
1152
+ };
1153
+ return RecaptchaConfig;
1154
+ }());
1155
+
1098
1156
  /**
1099
1157
  * @license
1100
1158
  * Copyright 2020 Google LLC
@@ -3777,6 +3835,39 @@ function injectRecaptchaFields(auth, request, action, captchaResp) {
3777
3835
  });
3778
3836
  });
3779
3837
  }
3838
+ function handleRecaptchaFlow(authInstance, request, actionName, actionMethod) {
3839
+ var _a;
3840
+ return __awaiter(this, void 0, void 0, function () {
3841
+ var requestWithRecaptcha;
3842
+ var _this = this;
3843
+ return __generator(this, function (_b) {
3844
+ switch (_b.label) {
3845
+ case 0:
3846
+ if (!((_a = authInstance
3847
+ ._getRecaptchaConfig()) === null || _a === void 0 ? void 0 : _a.isProviderEnabled("EMAIL_PASSWORD_PROVIDER" /* RecaptchaProvider.EMAIL_PASSWORD_PROVIDER */))) return [3 /*break*/, 2];
3848
+ return [4 /*yield*/, injectRecaptchaFields(authInstance, request, actionName, actionName === "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */)];
3849
+ case 1:
3850
+ requestWithRecaptcha = _b.sent();
3851
+ return [2 /*return*/, actionMethod(authInstance, requestWithRecaptcha)];
3852
+ case 2: return [2 /*return*/, actionMethod(authInstance, request).catch(function (error) { return __awaiter(_this, void 0, void 0, function () {
3853
+ var requestWithRecaptcha;
3854
+ return __generator(this, function (_a) {
3855
+ switch (_a.label) {
3856
+ case 0:
3857
+ if (!(error.code === "auth/".concat("missing-recaptcha-token" /* AuthErrorCode.MISSING_RECAPTCHA_TOKEN */))) return [3 /*break*/, 2];
3858
+ console.log("".concat(actionName, " is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow."));
3859
+ return [4 /*yield*/, injectRecaptchaFields(authInstance, request, actionName, actionName === "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */)];
3860
+ case 1:
3861
+ requestWithRecaptcha = _a.sent();
3862
+ return [2 /*return*/, actionMethod(authInstance, requestWithRecaptcha)];
3863
+ case 2: return [2 /*return*/, Promise.reject(error)];
3864
+ }
3865
+ });
3866
+ }); })];
3867
+ }
3868
+ });
3869
+ });
3870
+ }
3780
3871
  function _initializeRecaptchaConfig(auth) {
3781
3872
  return __awaiter(this, void 0, void 0, function () {
3782
3873
  var authInternal, response, config, verifier;
@@ -3797,7 +3888,7 @@ function _initializeRecaptchaConfig(auth) {
3797
3888
  else {
3798
3889
  authInternal._tenantRecaptchaConfigs[authInternal.tenantId] = config;
3799
3890
  }
3800
- if (config.emailPasswordEnabled) {
3891
+ if (config.isProviderEnabled("EMAIL_PASSWORD_PROVIDER" /* RecaptchaProvider.EMAIL_PASSWORD_PROVIDER */)) {
3801
3892
  verifier = new RecaptchaEnterpriseVerifier(authInternal);
3802
3893
  void verifier.verify();
3803
3894
  }
@@ -4263,55 +4354,27 @@ var EmailAuthCredential = /** @class */ (function (_super) {
4263
4354
  };
4264
4355
  /** @internal */
4265
4356
  EmailAuthCredential.prototype._getIdTokenResponse = function (auth) {
4266
- var _a;
4267
4357
  return __awaiter(this, void 0, void 0, function () {
4268
- var _b, request_1, requestWithRecaptcha;
4269
- var _this = this;
4270
- return __generator(this, function (_c) {
4271
- switch (_c.label) {
4272
- case 0:
4273
- _b = this.signInMethod;
4274
- switch (_b) {
4275
- case "password" /* SignInMethod.EMAIL_PASSWORD */: return [3 /*break*/, 1];
4276
- case "emailLink" /* SignInMethod.EMAIL_LINK */: return [3 /*break*/, 4];
4277
- }
4278
- return [3 /*break*/, 5];
4279
- case 1:
4280
- request_1 = {
4358
+ var request;
4359
+ return __generator(this, function (_a) {
4360
+ switch (this.signInMethod) {
4361
+ case "password" /* SignInMethod.EMAIL_PASSWORD */:
4362
+ request = {
4281
4363
  returnSecureToken: true,
4282
4364
  email: this._email,
4283
4365
  password: this._password,
4284
4366
  clientType: "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */
4285
4367
  };
4286
- if (!((_a = auth._getRecaptchaConfig()) === null || _a === void 0 ? void 0 : _a.emailPasswordEnabled)) return [3 /*break*/, 3];
4287
- return [4 /*yield*/, injectRecaptchaFields(auth, request_1, "signInWithPassword" /* RecaptchaActionName.SIGN_IN_WITH_PASSWORD */)];
4288
- case 2:
4289
- requestWithRecaptcha = _c.sent();
4290
- return [2 /*return*/, signInWithPassword(auth, requestWithRecaptcha)];
4291
- case 3: return [2 /*return*/, signInWithPassword(auth, request_1).catch(function (error) { return __awaiter(_this, void 0, void 0, function () {
4292
- var requestWithRecaptcha;
4293
- return __generator(this, function (_a) {
4294
- switch (_a.label) {
4295
- case 0:
4296
- if (!(error.code === "auth/".concat("missing-recaptcha-token" /* AuthErrorCode.MISSING_RECAPTCHA_TOKEN */))) return [3 /*break*/, 2];
4297
- 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.');
4298
- return [4 /*yield*/, injectRecaptchaFields(auth, request_1, "signInWithPassword" /* RecaptchaActionName.SIGN_IN_WITH_PASSWORD */)];
4299
- case 1:
4300
- requestWithRecaptcha = _a.sent();
4301
- return [2 /*return*/, signInWithPassword(auth, requestWithRecaptcha)];
4302
- case 2: return [2 /*return*/, Promise.reject(error)];
4303
- }
4304
- });
4305
- }); })];
4306
- case 4: return [2 /*return*/, signInWithEmailLink$1(auth, {
4307
- email: this._email,
4308
- oobCode: this._password
4309
- })];
4310
- case 5:
4368
+ return [2 /*return*/, handleRecaptchaFlow(auth, request, "signInWithPassword" /* RecaptchaActionName.SIGN_IN_WITH_PASSWORD */, signInWithPassword)];
4369
+ case "emailLink" /* SignInMethod.EMAIL_LINK */:
4370
+ return [2 /*return*/, signInWithEmailLink$1(auth, {
4371
+ email: this._email,
4372
+ oobCode: this._password
4373
+ })];
4374
+ default:
4311
4375
  _fail(auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
4312
- _c.label = 6;
4313
- case 6: return [2 /*return*/];
4314
4376
  }
4377
+ return [2 /*return*/];
4315
4378
  });
4316
4379
  });
4317
4380
  };
@@ -6528,12 +6591,10 @@ function recachePasswordPolicy(auth) {
6528
6591
  * @public
6529
6592
  */
6530
6593
  function sendPasswordResetEmail(auth, email, actionCodeSettings) {
6531
- var _a;
6532
6594
  return __awaiter(this, void 0, void 0, function () {
6533
- var authInternal, request, requestWithRecaptcha;
6534
- var _this = this;
6535
- return __generator(this, function (_b) {
6536
- switch (_b.label) {
6595
+ var authInternal, request;
6596
+ return __generator(this, function (_a) {
6597
+ switch (_a.label) {
6537
6598
  case 0:
6538
6599
  authInternal = _castAuth(auth);
6539
6600
  request = {
@@ -6541,48 +6602,13 @@ function sendPasswordResetEmail(auth, email, actionCodeSettings) {
6541
6602
  email: email,
6542
6603
  clientType: "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */
6543
6604
  };
6544
- if (!((_a = authInternal._getRecaptchaConfig()) === null || _a === void 0 ? void 0 : _a.emailPasswordEnabled)) return [3 /*break*/, 3];
6545
- return [4 /*yield*/, injectRecaptchaFields(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, true)];
6546
- case 1:
6547
- requestWithRecaptcha = _b.sent();
6548
- if (actionCodeSettings) {
6549
- _setActionCodeSettingsOnRequest(authInternal, requestWithRecaptcha, actionCodeSettings);
6550
- }
6551
- return [4 /*yield*/, sendPasswordResetEmail$1(authInternal, requestWithRecaptcha)];
6552
- case 2:
6553
- _b.sent();
6554
- return [3 /*break*/, 5];
6555
- case 3:
6556
6605
  if (actionCodeSettings) {
6557
6606
  _setActionCodeSettingsOnRequest(authInternal, request, actionCodeSettings);
6558
6607
  }
6559
- return [4 /*yield*/, sendPasswordResetEmail$1(authInternal, request)
6560
- .catch(function (error) { return __awaiter(_this, void 0, void 0, function () {
6561
- var requestWithRecaptcha;
6562
- return __generator(this, function (_a) {
6563
- switch (_a.label) {
6564
- case 0:
6565
- if (!(error.code === "auth/".concat("missing-recaptcha-token" /* AuthErrorCode.MISSING_RECAPTCHA_TOKEN */))) return [3 /*break*/, 3];
6566
- console.log('Password resets are protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the password reset flow.');
6567
- return [4 /*yield*/, injectRecaptchaFields(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, true)];
6568
- case 1:
6569
- requestWithRecaptcha = _a.sent();
6570
- if (actionCodeSettings) {
6571
- _setActionCodeSettingsOnRequest(authInternal, requestWithRecaptcha, actionCodeSettings);
6572
- }
6573
- return [4 /*yield*/, sendPasswordResetEmail$1(authInternal, requestWithRecaptcha)];
6574
- case 2:
6575
- _a.sent();
6576
- return [3 /*break*/, 4];
6577
- case 3: return [2 /*return*/, Promise.reject(error)];
6578
- case 4: return [2 /*return*/];
6579
- }
6580
- });
6581
- }); })];
6582
- case 4:
6583
- _b.sent();
6584
- _b.label = 5;
6585
- case 5: return [2 /*return*/];
6608
+ return [4 /*yield*/, handleRecaptchaFlow(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, sendPasswordResetEmail$1)];
6609
+ case 1:
6610
+ _a.sent();
6611
+ return [2 /*return*/];
6586
6612
  }
6587
6613
  });
6588
6614
  });
@@ -6737,12 +6763,10 @@ function verifyPasswordResetCode(auth, code) {
6737
6763
  * @public
6738
6764
  */
6739
6765
  function createUserWithEmailAndPassword(auth, email, password) {
6740
- var _a;
6741
6766
  return __awaiter(this, void 0, void 0, function () {
6742
- var authInternal, request, signUpResponse, requestWithRecaptcha, response, userCredential;
6743
- var _this = this;
6744
- return __generator(this, function (_b) {
6745
- switch (_b.label) {
6767
+ var authInternal, request, signUpResponse, response, userCredential;
6768
+ return __generator(this, function (_a) {
6769
+ switch (_a.label) {
6746
6770
  case 0:
6747
6771
  authInternal = _castAuth(auth);
6748
6772
  request = {
@@ -6751,43 +6775,21 @@ function createUserWithEmailAndPassword(auth, email, password) {
6751
6775
  password: password,
6752
6776
  clientType: "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */
6753
6777
  };
6754
- if (!((_a = authInternal._getRecaptchaConfig()) === null || _a === void 0 ? void 0 : _a.emailPasswordEnabled)) return [3 /*break*/, 2];
6755
- return [4 /*yield*/, injectRecaptchaFields(authInternal, request, "signUpPassword" /* RecaptchaActionName.SIGN_UP_PASSWORD */)];
6756
- case 1:
6757
- requestWithRecaptcha = _b.sent();
6758
- signUpResponse = signUp(authInternal, requestWithRecaptcha);
6759
- return [3 /*break*/, 3];
6760
- case 2:
6761
- signUpResponse = signUp(authInternal, request).catch(function (error) { return __awaiter(_this, void 0, void 0, function () {
6762
- var requestWithRecaptcha;
6763
- return __generator(this, function (_a) {
6764
- switch (_a.label) {
6765
- case 0:
6766
- if (!(error.code === "auth/".concat("missing-recaptcha-token" /* AuthErrorCode.MISSING_RECAPTCHA_TOKEN */))) return [3 /*break*/, 2];
6767
- console.log('Sign-up is protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the sign-up flow.');
6768
- return [4 /*yield*/, injectRecaptchaFields(authInternal, request, "signUpPassword" /* RecaptchaActionName.SIGN_UP_PASSWORD */)];
6769
- case 1:
6770
- requestWithRecaptcha = _a.sent();
6771
- return [2 /*return*/, signUp(authInternal, requestWithRecaptcha)];
6772
- case 2: throw error;
6778
+ signUpResponse = handleRecaptchaFlow(authInternal, request, "signUpPassword" /* RecaptchaActionName.SIGN_UP_PASSWORD */, signUp);
6779
+ return [4 /*yield*/, signUpResponse.catch(function (error) {
6780
+ if (error.code === "auth/".concat("password-does-not-meet-requirements" /* AuthErrorCode.PASSWORD_DOES_NOT_MEET_REQUIREMENTS */)) {
6781
+ void recachePasswordPolicy(auth);
6773
6782
  }
6774
- });
6775
- }); });
6776
- _b.label = 3;
6777
- case 3: return [4 /*yield*/, signUpResponse.catch(function (error) {
6778
- if (error.code === "auth/".concat("password-does-not-meet-requirements" /* AuthErrorCode.PASSWORD_DOES_NOT_MEET_REQUIREMENTS */)) {
6779
- void recachePasswordPolicy(auth);
6780
- }
6781
- throw error;
6782
- })];
6783
- case 4:
6784
- response = _b.sent();
6783
+ throw error;
6784
+ })];
6785
+ case 1:
6786
+ response = _a.sent();
6785
6787
  return [4 /*yield*/, UserCredentialImpl._fromIdTokenResponse(authInternal, "signIn" /* OperationType.SIGN_IN */, response)];
6786
- case 5:
6787
- userCredential = _b.sent();
6788
+ case 2:
6789
+ userCredential = _a.sent();
6788
6790
  return [4 /*yield*/, authInternal._updateCurrentUser(userCredential.user)];
6789
- case 6:
6790
- _b.sent();
6791
+ case 3:
6792
+ _a.sent();
6791
6793
  return [2 /*return*/, userCredential];
6792
6794
  }
6793
6795
  });
@@ -6876,7 +6878,6 @@ function signInWithEmailAndPassword(auth, email, password) {
6876
6878
  * @public
6877
6879
  */
6878
6880
  function sendSignInLinkToEmail(auth, email, actionCodeSettings) {
6879
- var _a;
6880
6881
  return __awaiter(this, void 0, void 0, function () {
6881
6882
  function setActionCodeSettings(request, actionCodeSettings) {
6882
6883
  _assert(actionCodeSettings.handleCodeInApp, authInternal, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
@@ -6884,10 +6885,9 @@ function sendSignInLinkToEmail(auth, email, actionCodeSettings) {
6884
6885
  _setActionCodeSettingsOnRequest(authInternal, request, actionCodeSettings);
6885
6886
  }
6886
6887
  }
6887
- var authInternal, request, requestWithRecaptcha;
6888
- var _this = this;
6889
- return __generator(this, function (_b) {
6890
- switch (_b.label) {
6888
+ var authInternal, request;
6889
+ return __generator(this, function (_a) {
6890
+ switch (_a.label) {
6891
6891
  case 0:
6892
6892
  authInternal = _castAuth(auth);
6893
6893
  request = {
@@ -6895,42 +6895,11 @@ function sendSignInLinkToEmail(auth, email, actionCodeSettings) {
6895
6895
  email: email,
6896
6896
  clientType: "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */
6897
6897
  };
6898
- if (!((_a = authInternal._getRecaptchaConfig()) === null || _a === void 0 ? void 0 : _a.emailPasswordEnabled)) return [3 /*break*/, 3];
6899
- return [4 /*yield*/, injectRecaptchaFields(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, true)];
6900
- case 1:
6901
- requestWithRecaptcha = _b.sent();
6902
- setActionCodeSettings(requestWithRecaptcha, actionCodeSettings);
6903
- return [4 /*yield*/, sendSignInLinkToEmail$1(authInternal, requestWithRecaptcha)];
6904
- case 2:
6905
- _b.sent();
6906
- return [3 /*break*/, 5];
6907
- case 3:
6908
6898
  setActionCodeSettings(request, actionCodeSettings);
6909
- return [4 /*yield*/, sendSignInLinkToEmail$1(authInternal, request)
6910
- .catch(function (error) { return __awaiter(_this, void 0, void 0, function () {
6911
- var requestWithRecaptcha;
6912
- return __generator(this, function (_a) {
6913
- switch (_a.label) {
6914
- case 0:
6915
- if (!(error.code === "auth/".concat("missing-recaptcha-token" /* AuthErrorCode.MISSING_RECAPTCHA_TOKEN */))) return [3 /*break*/, 3];
6916
- console.log('Email link sign-in is protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the sign-in flow.');
6917
- return [4 /*yield*/, injectRecaptchaFields(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, true)];
6918
- case 1:
6919
- requestWithRecaptcha = _a.sent();
6920
- setActionCodeSettings(requestWithRecaptcha, actionCodeSettings);
6921
- return [4 /*yield*/, sendSignInLinkToEmail$1(authInternal, requestWithRecaptcha)];
6922
- case 2:
6923
- _a.sent();
6924
- return [3 /*break*/, 4];
6925
- case 3: return [2 /*return*/, Promise.reject(error)];
6926
- case 4: return [2 /*return*/];
6927
- }
6928
- });
6929
- }); })];
6930
- case 4:
6931
- _b.sent();
6932
- _b.label = 5;
6933
- case 5: return [2 /*return*/];
6899
+ return [4 /*yield*/, handleRecaptchaFlow(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, sendSignInLinkToEmail$1)];
6900
+ case 1:
6901
+ _a.sent();
6902
+ return [2 /*return*/];
6934
6903
  }
6935
6904
  });
6936
6905
  });
@@ -12214,7 +12183,7 @@ function _isEmptyString(input) {
12214
12183
  }
12215
12184
 
12216
12185
  var name = "@firebase/auth";
12217
- var version = "1.3.0-canary.eff95304d";
12186
+ var version = "1.3.0-canary.f002ef36a";
12218
12187
 
12219
12188
  /**
12220
12189
  * @license
@@ -12467,4 +12436,4 @@ function getAuth(app) {
12467
12436
  registerAuth("Browser" /* ClientPlatform.BROWSER */);
12468
12437
 
12469
12438
  export { signInAnonymously as $, ActionCodeOperation as A, updateCurrentUser as B, signOut as C, deleteUser as D, debugErrorMap as E, FactorId as F, prodErrorMap as G, AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY as H, initializeAuth as I, connectAuthEmulator as J, AuthCredential as K, EmailAuthCredential as L, OAuthCredential as M, PhoneAuthCredential as N, OperationType as O, PhoneAuthProvider as P, inMemoryPersistence as Q, RecaptchaVerifier as R, SignInMethod as S, TotpMultiFactorGenerator as T, EmailAuthProvider as U, FacebookAuthProvider as V, GoogleAuthProvider as W, GithubAuthProvider as X, OAuthProvider as Y, SAMLAuthProvider as Z, TwitterAuthProvider as _, browserSessionPersistence as a, signInWithCredential as a0, linkWithCredential as a1, reauthenticateWithCredential as a2, signInWithCustomToken as a3, sendPasswordResetEmail as a4, confirmPasswordReset as a5, applyActionCode as a6, checkActionCode as a7, verifyPasswordResetCode as a8, createUserWithEmailAndPassword as a9, _assert as aA, _createError as aB, AuthEventManager as aC, _getInstance as aD, _persistenceKeyName as aE, _clearRedirectOutcomes as aF, _getRedirectResult as aG, _overrideRedirectResult as aH, _castAuth as aI, UserImpl as aJ, AuthImpl as aK, _getClientVersion as aL, _generateEventId as aM, AuthPopup as aN, FetchProvider as aO, SAMLAuthCredential as aP, signInWithEmailAndPassword as aa, sendSignInLinkToEmail as ab, isSignInWithEmailLink as ac, signInWithEmailLink as ad, fetchSignInMethodsForEmail as ae, sendEmailVerification as af, verifyBeforeUpdateEmail as ag, ActionCodeURL as ah, parseActionCodeURL as ai, updateProfile as aj, updateEmail as ak, updatePassword as al, getIdToken as am, getIdTokenResult as an, unlink as ao, getAdditionalUserInfo as ap, reload as aq, getMultiFactorResolver as ar, multiFactor as as, _isIOS as at, _isAndroid as au, _fail as av, _getRedirectUrl as aw, debugAssert as ax, _getProjectConfig as ay, _isIOS7Or8 as az, browserLocalPersistence as b, signInWithPopup as c, linkWithPopup as d, reauthenticateWithPopup as e, signInWithRedirect as f, linkWithRedirect as g, reauthenticateWithRedirect as h, indexedDBLocalPersistence as i, getRedirectResult as j, browserPopupRedirectResolver as k, linkWithPhoneNumber as l, PhoneMultiFactorGenerator as m, TotpSecret as n, getAuth as o, ProviderId as p, setPersistence as q, reauthenticateWithPhoneNumber as r, signInWithPhoneNumber as s, initializeRecaptchaConfig as t, updatePhoneNumber as u, validatePassword as v, onIdTokenChanged as w, beforeAuthStateChanged as x, onAuthStateChanged as y, useDeviceLanguage as z };
12470
- //# sourceMappingURL=index-ad762403.js.map
12439
+ //# sourceMappingURL=index-764f9bd9.js.map