@firebase/auth 1.7.9-canary.aa6db78eb → 1.7.9-canary.b942e9e6e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -1
- package/dist/auth-public.d.ts +22 -10
- package/dist/auth.d.ts +22 -10
- package/dist/browser-cjs/{index-8c4960c5.js → index-c1e3d4f9.js} +392 -175
- package/dist/browser-cjs/index-c1e3d4f9.js.map +1 -0
- package/dist/browser-cjs/index.js +1 -1
- package/dist/browser-cjs/internal.js +1 -1
- package/dist/browser-cjs/src/api/account_management/mfa.d.ts +5 -1
- package/dist/browser-cjs/src/api/authentication/mfa.d.ts +5 -1
- package/dist/browser-cjs/src/api/authentication/sms.d.ts +5 -1
- package/dist/browser-cjs/src/api/index.d.ts +7 -3
- package/dist/browser-cjs/src/platform_browser/providers/phone.d.ts +7 -5
- package/dist/browser-cjs/src/platform_browser/recaptcha/recaptcha.d.ts +7 -0
- package/dist/browser-cjs/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +4 -4
- package/dist/browser-cjs/src/platform_browser/strategies/phone.d.ts +10 -6
- package/dist/browser-cjs/test/integration/flows/recaptcha_enterprise.test.d.ts +17 -0
- package/dist/cordova/auth-cordova-public.d.ts +7 -0
- package/dist/cordova/auth-cordova.d.ts +7 -0
- package/dist/cordova/index.js +2 -2
- package/dist/cordova/internal.js +168 -177
- package/dist/cordova/internal.js.map +1 -1
- package/dist/cordova/{popup_redirect-1e109c2a.js → popup_redirect-63b3580d.js} +285 -21
- package/dist/cordova/popup_redirect-63b3580d.js.map +1 -0
- package/dist/cordova/src/api/account_management/mfa.d.ts +5 -1
- package/dist/cordova/src/api/authentication/mfa.d.ts +5 -1
- package/dist/cordova/src/api/authentication/sms.d.ts +5 -1
- package/dist/cordova/src/api/index.d.ts +7 -3
- package/dist/cordova/src/platform_browser/providers/phone.d.ts +7 -5
- package/dist/cordova/src/platform_browser/recaptcha/recaptcha.d.ts +7 -0
- package/dist/cordova/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +4 -4
- package/dist/cordova/src/platform_browser/strategies/phone.d.ts +10 -6
- package/dist/cordova/test/integration/flows/recaptcha_enterprise.test.d.ts +17 -0
- package/dist/esm2017/{index-6cb7b51a.js → index-c8d513e3.js} +392 -175
- package/dist/esm2017/index-c8d513e3.js.map +1 -0
- package/dist/esm2017/index.js +1 -1
- package/dist/esm2017/internal.js +2 -2
- package/dist/esm2017/src/api/account_management/mfa.d.ts +5 -1
- package/dist/esm2017/src/api/authentication/mfa.d.ts +5 -1
- package/dist/esm2017/src/api/authentication/sms.d.ts +5 -1
- package/dist/esm2017/src/api/index.d.ts +7 -3
- package/dist/esm2017/src/platform_browser/providers/phone.d.ts +7 -5
- package/dist/esm2017/src/platform_browser/recaptcha/recaptcha.d.ts +7 -0
- package/dist/esm2017/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +4 -4
- package/dist/esm2017/src/platform_browser/strategies/phone.d.ts +10 -6
- package/dist/esm2017/test/integration/flows/recaptcha_enterprise.test.d.ts +17 -0
- package/dist/esm5/{index-262b3f24.js → index-82b3e33f.js} +450 -195
- package/dist/esm5/index-82b3e33f.js.map +1 -0
- package/dist/esm5/index.js +1 -1
- package/dist/esm5/internal.js +2 -2
- package/dist/esm5/src/api/account_management/mfa.d.ts +5 -1
- package/dist/esm5/src/api/authentication/mfa.d.ts +5 -1
- package/dist/esm5/src/api/authentication/sms.d.ts +5 -1
- package/dist/esm5/src/api/index.d.ts +7 -3
- package/dist/esm5/src/platform_browser/providers/phone.d.ts +7 -5
- package/dist/esm5/src/platform_browser/recaptcha/recaptcha.d.ts +7 -0
- package/dist/esm5/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +4 -4
- package/dist/esm5/src/platform_browser/strategies/phone.d.ts +10 -6
- package/dist/esm5/test/integration/flows/recaptcha_enterprise.test.d.ts +17 -0
- package/dist/index.webworker.esm5.js +163 -19
- package/dist/index.webworker.esm5.js.map +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/internal.js +1 -1
- package/dist/node/src/api/account_management/mfa.d.ts +5 -1
- package/dist/node/src/api/authentication/mfa.d.ts +5 -1
- package/dist/node/src/api/authentication/sms.d.ts +5 -1
- package/dist/node/src/api/index.d.ts +7 -3
- package/dist/node/src/platform_browser/providers/phone.d.ts +7 -5
- package/dist/node/src/platform_browser/recaptcha/recaptcha.d.ts +7 -0
- package/dist/node/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +4 -4
- package/dist/node/src/platform_browser/strategies/phone.d.ts +10 -6
- package/dist/node/test/integration/flows/recaptcha_enterprise.test.d.ts +17 -0
- package/dist/node/{totp-617e4db6.js → totp-c9a669c7.js} +164 -20
- package/dist/node/totp-c9a669c7.js.map +1 -0
- package/dist/node-esm/index.js +1 -1
- package/dist/node-esm/internal.js +2 -2
- package/dist/node-esm/src/api/account_management/mfa.d.ts +5 -1
- package/dist/node-esm/src/api/authentication/mfa.d.ts +5 -1
- package/dist/node-esm/src/api/authentication/sms.d.ts +5 -1
- package/dist/node-esm/src/api/index.d.ts +7 -3
- package/dist/node-esm/src/platform_browser/providers/phone.d.ts +7 -5
- package/dist/node-esm/src/platform_browser/recaptcha/recaptcha.d.ts +7 -0
- package/dist/node-esm/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +4 -4
- package/dist/node-esm/src/platform_browser/strategies/phone.d.ts +10 -6
- package/dist/node-esm/test/integration/flows/recaptcha_enterprise.test.d.ts +17 -0
- package/dist/node-esm/{totp-98ba6f1f.js → totp-9698d31a.js} +168 -30
- package/dist/node-esm/totp-9698d31a.js.map +1 -0
- package/dist/rn/{index-198b1e87.js → index-dd6cc9b0.js} +450 -195
- package/dist/rn/index-dd6cc9b0.js.map +1 -0
- package/dist/rn/index.js +1 -1
- package/dist/rn/internal.js +1 -1
- package/dist/rn/src/api/account_management/mfa.d.ts +5 -1
- package/dist/rn/src/api/authentication/mfa.d.ts +5 -1
- package/dist/rn/src/api/authentication/sms.d.ts +5 -1
- package/dist/rn/src/api/index.d.ts +7 -3
- package/dist/rn/src/platform_browser/providers/phone.d.ts +7 -5
- package/dist/rn/src/platform_browser/recaptcha/recaptcha.d.ts +7 -0
- package/dist/rn/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +4 -4
- package/dist/rn/src/platform_browser/strategies/phone.d.ts +10 -6
- package/dist/rn/test/integration/flows/recaptcha_enterprise.test.d.ts +17 -0
- package/dist/src/api/account_management/mfa.d.ts +5 -1
- package/dist/src/api/authentication/mfa.d.ts +5 -1
- package/dist/src/api/authentication/sms.d.ts +5 -1
- package/dist/src/api/index.d.ts +7 -3
- package/dist/src/platform_browser/providers/phone.d.ts +7 -5
- package/dist/src/platform_browser/recaptcha/recaptcha.d.ts +7 -0
- package/dist/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +4 -4
- package/dist/src/platform_browser/strategies/phone.d.ts +10 -6
- package/dist/test/integration/flows/recaptcha_enterprise.test.d.ts +17 -0
- package/dist/web-extension-cjs/index.js +1 -1
- package/dist/web-extension-cjs/internal.js +115 -147
- package/dist/web-extension-cjs/internal.js.map +1 -1
- package/dist/web-extension-cjs/{register-0aa8e295.js → register-1a706c5a.js} +283 -30
- package/dist/web-extension-cjs/register-1a706c5a.js.map +1 -0
- package/dist/web-extension-cjs/src/api/account_management/mfa.d.ts +5 -1
- package/dist/web-extension-cjs/src/api/authentication/mfa.d.ts +5 -1
- package/dist/web-extension-cjs/src/api/authentication/sms.d.ts +5 -1
- package/dist/web-extension-cjs/src/api/index.d.ts +7 -3
- package/dist/web-extension-cjs/src/platform_browser/providers/phone.d.ts +7 -5
- package/dist/web-extension-cjs/src/platform_browser/recaptcha/recaptcha.d.ts +7 -0
- package/dist/web-extension-cjs/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +4 -4
- package/dist/web-extension-cjs/src/platform_browser/strategies/phone.d.ts +10 -6
- package/dist/web-extension-cjs/test/integration/flows/recaptcha_enterprise.test.d.ts +17 -0
- package/dist/web-extension-esm2017/auth-web-extension-public.d.ts +7 -0
- package/dist/web-extension-esm2017/auth-web-extension.d.ts +7 -0
- package/dist/web-extension-esm2017/index.js +2 -2
- package/dist/web-extension-esm2017/internal.js +115 -147
- package/dist/web-extension-esm2017/internal.js.map +1 -1
- package/dist/web-extension-esm2017/{register-68ef89ff.js → register-3c017834.js} +280 -31
- package/dist/web-extension-esm2017/register-3c017834.js.map +1 -0
- package/dist/web-extension-esm2017/src/api/account_management/mfa.d.ts +5 -1
- package/dist/web-extension-esm2017/src/api/authentication/mfa.d.ts +5 -1
- package/dist/web-extension-esm2017/src/api/authentication/sms.d.ts +5 -1
- package/dist/web-extension-esm2017/src/api/index.d.ts +7 -3
- package/dist/web-extension-esm2017/src/platform_browser/providers/phone.d.ts +7 -5
- package/dist/web-extension-esm2017/src/platform_browser/recaptcha/recaptcha.d.ts +7 -0
- package/dist/web-extension-esm2017/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +4 -4
- package/dist/web-extension-esm2017/src/platform_browser/strategies/phone.d.ts +10 -6
- package/dist/web-extension-esm2017/test/integration/flows/recaptcha_enterprise.test.d.ts +17 -0
- package/package.json +6 -6
- package/dist/browser-cjs/index-8c4960c5.js.map +0 -1
- package/dist/cordova/popup_redirect-1e109c2a.js.map +0 -1
- package/dist/esm2017/index-6cb7b51a.js.map +0 -1
- package/dist/esm5/index-262b3f24.js.map +0 -1
- package/dist/node/totp-617e4db6.js.map +0 -1
- package/dist/node-esm/totp-98ba6f1f.js.map +0 -1
- package/dist/rn/index-198b1e87.js.map +0 -1
- package/dist/web-extension-cjs/register-0aa8e295.js.map +0 -1
- package/dist/web-extension-esm2017/register-68ef89ff.js.map +0 -1
|
@@ -1165,6 +1165,16 @@ var RecaptchaConfig = /** @class */ (function () {
|
|
|
1165
1165
|
"ENFORCE" /* EnforcementState.ENFORCE */ ||
|
|
1166
1166
|
this.getProviderEnforcementState(providerStr) === "AUDIT" /* EnforcementState.AUDIT */);
|
|
1167
1167
|
};
|
|
1168
|
+
/**
|
|
1169
|
+
* Returns true if reCAPTCHA Enterprise protection is enabled in at least one provider, otherwise
|
|
1170
|
+
* returns false.
|
|
1171
|
+
*
|
|
1172
|
+
* @returns Whether or not reCAPTCHA Enterprise protection is enabled for at least one provider.
|
|
1173
|
+
*/
|
|
1174
|
+
RecaptchaConfig.prototype.isAnyProviderEnabled = function () {
|
|
1175
|
+
return (this.isProviderEnabled("EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */) ||
|
|
1176
|
+
this.isProviderEnabled("PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */));
|
|
1177
|
+
};
|
|
1168
1178
|
return RecaptchaConfig;
|
|
1169
1179
|
}());
|
|
1170
1180
|
|
|
@@ -3834,6 +3844,180 @@ function _generateCallbackName(prefix) {
|
|
|
3834
3844
|
return "__".concat(prefix).concat(Math.floor(Math.random() * 1000000));
|
|
3835
3845
|
}
|
|
3836
3846
|
|
|
3847
|
+
/**
|
|
3848
|
+
* @license
|
|
3849
|
+
* Copyright 2020 Google LLC
|
|
3850
|
+
*
|
|
3851
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3852
|
+
* you may not use this file except in compliance with the License.
|
|
3853
|
+
* You may obtain a copy of the License at
|
|
3854
|
+
*
|
|
3855
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3856
|
+
*
|
|
3857
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3858
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3859
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3860
|
+
* See the License for the specific language governing permissions and
|
|
3861
|
+
* limitations under the License.
|
|
3862
|
+
*/
|
|
3863
|
+
var _SOLVE_TIME_MS = 500;
|
|
3864
|
+
var _EXPIRATION_TIME_MS = 60000;
|
|
3865
|
+
var _WIDGET_ID_START = 1000000000000;
|
|
3866
|
+
var MockReCaptcha = /** @class */ (function () {
|
|
3867
|
+
function MockReCaptcha(auth) {
|
|
3868
|
+
this.auth = auth;
|
|
3869
|
+
this.counter = _WIDGET_ID_START;
|
|
3870
|
+
this._widgets = new Map();
|
|
3871
|
+
}
|
|
3872
|
+
MockReCaptcha.prototype.render = function (container, parameters) {
|
|
3873
|
+
var id = this.counter;
|
|
3874
|
+
this._widgets.set(id, new MockWidget(container, this.auth.name, parameters || {}));
|
|
3875
|
+
this.counter++;
|
|
3876
|
+
return id;
|
|
3877
|
+
};
|
|
3878
|
+
MockReCaptcha.prototype.reset = function (optWidgetId) {
|
|
3879
|
+
var _a;
|
|
3880
|
+
var id = optWidgetId || _WIDGET_ID_START;
|
|
3881
|
+
void ((_a = this._widgets.get(id)) === null || _a === void 0 ? void 0 : _a.delete());
|
|
3882
|
+
this._widgets.delete(id);
|
|
3883
|
+
};
|
|
3884
|
+
MockReCaptcha.prototype.getResponse = function (optWidgetId) {
|
|
3885
|
+
var _a;
|
|
3886
|
+
var id = optWidgetId || _WIDGET_ID_START;
|
|
3887
|
+
return ((_a = this._widgets.get(id)) === null || _a === void 0 ? void 0 : _a.getResponse()) || '';
|
|
3888
|
+
};
|
|
3889
|
+
MockReCaptcha.prototype.execute = function (optWidgetId) {
|
|
3890
|
+
var _a;
|
|
3891
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3892
|
+
var id;
|
|
3893
|
+
return __generator(this, function (_b) {
|
|
3894
|
+
id = optWidgetId || _WIDGET_ID_START;
|
|
3895
|
+
void ((_a = this._widgets.get(id)) === null || _a === void 0 ? void 0 : _a.execute());
|
|
3896
|
+
return [2 /*return*/, ''];
|
|
3897
|
+
});
|
|
3898
|
+
});
|
|
3899
|
+
};
|
|
3900
|
+
return MockReCaptcha;
|
|
3901
|
+
}());
|
|
3902
|
+
var MockGreCAPTCHATopLevel = /** @class */ (function () {
|
|
3903
|
+
function MockGreCAPTCHATopLevel() {
|
|
3904
|
+
this.enterprise = new MockGreCAPTCHA();
|
|
3905
|
+
}
|
|
3906
|
+
MockGreCAPTCHATopLevel.prototype.ready = function (callback) {
|
|
3907
|
+
callback();
|
|
3908
|
+
};
|
|
3909
|
+
MockGreCAPTCHATopLevel.prototype.execute = function (
|
|
3910
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3911
|
+
_siteKey, _options) {
|
|
3912
|
+
return Promise.resolve('token');
|
|
3913
|
+
};
|
|
3914
|
+
MockGreCAPTCHATopLevel.prototype.render = function (
|
|
3915
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3916
|
+
_container, _parameters) {
|
|
3917
|
+
return '';
|
|
3918
|
+
};
|
|
3919
|
+
return MockGreCAPTCHATopLevel;
|
|
3920
|
+
}());
|
|
3921
|
+
var MockGreCAPTCHA = /** @class */ (function () {
|
|
3922
|
+
function MockGreCAPTCHA() {
|
|
3923
|
+
}
|
|
3924
|
+
MockGreCAPTCHA.prototype.ready = function (callback) {
|
|
3925
|
+
callback();
|
|
3926
|
+
};
|
|
3927
|
+
MockGreCAPTCHA.prototype.execute = function (
|
|
3928
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3929
|
+
_siteKey, _options) {
|
|
3930
|
+
return Promise.resolve('token');
|
|
3931
|
+
};
|
|
3932
|
+
MockGreCAPTCHA.prototype.render = function (
|
|
3933
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3934
|
+
_container, _parameters) {
|
|
3935
|
+
return '';
|
|
3936
|
+
};
|
|
3937
|
+
return MockGreCAPTCHA;
|
|
3938
|
+
}());
|
|
3939
|
+
var MockWidget = /** @class */ (function () {
|
|
3940
|
+
function MockWidget(containerOrId, appName, params) {
|
|
3941
|
+
var _this = this;
|
|
3942
|
+
this.params = params;
|
|
3943
|
+
this.timerId = null;
|
|
3944
|
+
this.deleted = false;
|
|
3945
|
+
this.responseToken = null;
|
|
3946
|
+
this.clickHandler = function () {
|
|
3947
|
+
_this.execute();
|
|
3948
|
+
};
|
|
3949
|
+
var container = typeof containerOrId === 'string'
|
|
3950
|
+
? document.getElementById(containerOrId)
|
|
3951
|
+
: containerOrId;
|
|
3952
|
+
_assert(container, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */, { appName: appName });
|
|
3953
|
+
this.container = container;
|
|
3954
|
+
this.isVisible = this.params.size !== 'invisible';
|
|
3955
|
+
if (this.isVisible) {
|
|
3956
|
+
this.execute();
|
|
3957
|
+
}
|
|
3958
|
+
else {
|
|
3959
|
+
this.container.addEventListener('click', this.clickHandler);
|
|
3960
|
+
}
|
|
3961
|
+
}
|
|
3962
|
+
MockWidget.prototype.getResponse = function () {
|
|
3963
|
+
this.checkIfDeleted();
|
|
3964
|
+
return this.responseToken;
|
|
3965
|
+
};
|
|
3966
|
+
MockWidget.prototype.delete = function () {
|
|
3967
|
+
this.checkIfDeleted();
|
|
3968
|
+
this.deleted = true;
|
|
3969
|
+
if (this.timerId) {
|
|
3970
|
+
clearTimeout(this.timerId);
|
|
3971
|
+
this.timerId = null;
|
|
3972
|
+
}
|
|
3973
|
+
this.container.removeEventListener('click', this.clickHandler);
|
|
3974
|
+
};
|
|
3975
|
+
MockWidget.prototype.execute = function () {
|
|
3976
|
+
var _this = this;
|
|
3977
|
+
this.checkIfDeleted();
|
|
3978
|
+
if (this.timerId) {
|
|
3979
|
+
return;
|
|
3980
|
+
}
|
|
3981
|
+
this.timerId = window.setTimeout(function () {
|
|
3982
|
+
_this.responseToken = generateRandomAlphaNumericString(50);
|
|
3983
|
+
var _a = _this.params, callback = _a.callback, expiredCallback = _a["expired-callback"];
|
|
3984
|
+
if (callback) {
|
|
3985
|
+
try {
|
|
3986
|
+
callback(_this.responseToken);
|
|
3987
|
+
}
|
|
3988
|
+
catch (e) { }
|
|
3989
|
+
}
|
|
3990
|
+
_this.timerId = window.setTimeout(function () {
|
|
3991
|
+
_this.timerId = null;
|
|
3992
|
+
_this.responseToken = null;
|
|
3993
|
+
if (expiredCallback) {
|
|
3994
|
+
try {
|
|
3995
|
+
expiredCallback();
|
|
3996
|
+
}
|
|
3997
|
+
catch (e) { }
|
|
3998
|
+
}
|
|
3999
|
+
if (_this.isVisible) {
|
|
4000
|
+
_this.execute();
|
|
4001
|
+
}
|
|
4002
|
+
}, _EXPIRATION_TIME_MS);
|
|
4003
|
+
}, _SOLVE_TIME_MS);
|
|
4004
|
+
};
|
|
4005
|
+
MockWidget.prototype.checkIfDeleted = function () {
|
|
4006
|
+
if (this.deleted) {
|
|
4007
|
+
throw new Error('reCAPTCHA mock was already deleted!');
|
|
4008
|
+
}
|
|
4009
|
+
};
|
|
4010
|
+
return MockWidget;
|
|
4011
|
+
}());
|
|
4012
|
+
function generateRandomAlphaNumericString(len) {
|
|
4013
|
+
var chars = [];
|
|
4014
|
+
var allowedChars = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
4015
|
+
for (var i = 0; i < len; i++) {
|
|
4016
|
+
chars.push(allowedChars.charAt(Math.floor(Math.random() * allowedChars.length)));
|
|
4017
|
+
}
|
|
4018
|
+
return chars.join('');
|
|
4019
|
+
}
|
|
4020
|
+
|
|
3837
4021
|
/* eslint-disable @typescript-eslint/no-require-imports */
|
|
3838
4022
|
var RECAPTCHA_ENTERPRISE_VERIFIER_TYPE = 'recaptcha-enterprise';
|
|
3839
4023
|
var FAKE_TOKEN = 'NO_RECAPTCHA';
|
|
@@ -3920,8 +4104,14 @@ var RecaptchaEnterpriseVerifier = /** @class */ (function () {
|
|
|
3920
4104
|
reject(Error('No reCAPTCHA enterprise script loaded.'));
|
|
3921
4105
|
}
|
|
3922
4106
|
}
|
|
4107
|
+
var mockRecaptcha;
|
|
3923
4108
|
var _this = this;
|
|
3924
4109
|
return __generator(this, function (_a) {
|
|
4110
|
+
// Returns Promise for a mock token when appVerificationDisabledForTesting is true.
|
|
4111
|
+
if (this.auth.settings.appVerificationDisabledForTesting) {
|
|
4112
|
+
mockRecaptcha = new MockGreCAPTCHATopLevel();
|
|
4113
|
+
return [2 /*return*/, mockRecaptcha.execute('siteKey', { action: 'verify' })];
|
|
4114
|
+
}
|
|
3925
4115
|
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
3926
4116
|
retrieveSiteKey(_this.auth)
|
|
3927
4117
|
.then(function (siteKey) {
|
|
@@ -3955,15 +4145,18 @@ var RecaptchaEnterpriseVerifier = /** @class */ (function () {
|
|
|
3955
4145
|
};
|
|
3956
4146
|
return RecaptchaEnterpriseVerifier;
|
|
3957
4147
|
}());
|
|
3958
|
-
function injectRecaptchaFields(auth, request, action,
|
|
3959
|
-
if (
|
|
4148
|
+
function injectRecaptchaFields(auth, request, action, isCaptchaResp, isFakeToken) {
|
|
4149
|
+
if (isCaptchaResp === void 0) { isCaptchaResp = false; }
|
|
4150
|
+
if (isFakeToken === void 0) { isFakeToken = false; }
|
|
3960
4151
|
return __awaiter(this, void 0, void 0, function () {
|
|
3961
|
-
var verifier, captchaResponse, newRequest;
|
|
4152
|
+
var verifier, captchaResponse, newRequest, phoneNumber, recaptchaToken, recaptchaToken;
|
|
3962
4153
|
return __generator(this, function (_a) {
|
|
3963
4154
|
switch (_a.label) {
|
|
3964
4155
|
case 0:
|
|
3965
4156
|
verifier = new RecaptchaEnterpriseVerifier(auth);
|
|
3966
|
-
|
|
4157
|
+
if (!isFakeToken) return [3 /*break*/, 1];
|
|
4158
|
+
captchaResponse = FAKE_TOKEN;
|
|
4159
|
+
return [3 /*break*/, 5];
|
|
3967
4160
|
case 1:
|
|
3968
4161
|
_a.trys.push([1, 3, , 5]);
|
|
3969
4162
|
return [4 /*yield*/, verifier.verify(action)];
|
|
@@ -3978,7 +4171,35 @@ function injectRecaptchaFields(auth, request, action, captchaResp) {
|
|
|
3978
4171
|
return [3 /*break*/, 5];
|
|
3979
4172
|
case 5:
|
|
3980
4173
|
newRequest = __assign({}, request);
|
|
3981
|
-
if (
|
|
4174
|
+
if (action === "mfaSmsEnrollment" /* RecaptchaActionName.MFA_SMS_ENROLLMENT */ ||
|
|
4175
|
+
action === "mfaSmsSignIn" /* RecaptchaActionName.MFA_SMS_SIGNIN */) {
|
|
4176
|
+
if ('phoneEnrollmentInfo' in newRequest) {
|
|
4177
|
+
phoneNumber = newRequest.phoneEnrollmentInfo.phoneNumber;
|
|
4178
|
+
recaptchaToken = newRequest.phoneEnrollmentInfo.recaptchaToken;
|
|
4179
|
+
Object.assign(newRequest, {
|
|
4180
|
+
'phoneEnrollmentInfo': {
|
|
4181
|
+
phoneNumber: phoneNumber,
|
|
4182
|
+
recaptchaToken: recaptchaToken,
|
|
4183
|
+
captchaResponse: captchaResponse,
|
|
4184
|
+
'clientType': "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */,
|
|
4185
|
+
'recaptchaVersion': "RECAPTCHA_ENTERPRISE" /* RecaptchaVersion.ENTERPRISE */
|
|
4186
|
+
}
|
|
4187
|
+
});
|
|
4188
|
+
}
|
|
4189
|
+
else if ('phoneSignInInfo' in newRequest) {
|
|
4190
|
+
recaptchaToken = newRequest.phoneSignInInfo.recaptchaToken;
|
|
4191
|
+
Object.assign(newRequest, {
|
|
4192
|
+
'phoneSignInInfo': {
|
|
4193
|
+
recaptchaToken: recaptchaToken,
|
|
4194
|
+
captchaResponse: captchaResponse,
|
|
4195
|
+
'clientType': "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */,
|
|
4196
|
+
'recaptchaVersion': "RECAPTCHA_ENTERPRISE" /* RecaptchaVersion.ENTERPRISE */
|
|
4197
|
+
}
|
|
4198
|
+
});
|
|
4199
|
+
}
|
|
4200
|
+
return [2 /*return*/, newRequest];
|
|
4201
|
+
}
|
|
4202
|
+
if (!isCaptchaResp) {
|
|
3982
4203
|
Object.assign(newRequest, { captchaResponse: captchaResponse });
|
|
3983
4204
|
}
|
|
3984
4205
|
else {
|
|
@@ -3993,19 +4214,20 @@ function injectRecaptchaFields(auth, request, action, captchaResp) {
|
|
|
3993
4214
|
});
|
|
3994
4215
|
});
|
|
3995
4216
|
}
|
|
3996
|
-
function handleRecaptchaFlow(authInstance, request, actionName, actionMethod) {
|
|
3997
|
-
var _a;
|
|
4217
|
+
function handleRecaptchaFlow(authInstance, request, actionName, actionMethod, recaptchaAuthProvider) {
|
|
4218
|
+
var _a, _b;
|
|
3998
4219
|
return __awaiter(this, void 0, void 0, function () {
|
|
3999
|
-
var requestWithRecaptcha;
|
|
4220
|
+
var requestWithRecaptcha, requestWithRecaptcha, requestWithRecaptchaFields;
|
|
4000
4221
|
var _this = this;
|
|
4001
|
-
return __generator(this, function (
|
|
4002
|
-
switch (
|
|
4222
|
+
return __generator(this, function (_c) {
|
|
4223
|
+
switch (_c.label) {
|
|
4003
4224
|
case 0:
|
|
4225
|
+
if (!(recaptchaAuthProvider === "EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */)) return [3 /*break*/, 4];
|
|
4004
4226
|
if (!((_a = authInstance
|
|
4005
|
-
._getRecaptchaConfig()) === null || _a === void 0 ? void 0 : _a.isProviderEnabled("EMAIL_PASSWORD_PROVIDER" /*
|
|
4227
|
+
._getRecaptchaConfig()) === null || _a === void 0 ? void 0 : _a.isProviderEnabled("EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */))) return [3 /*break*/, 2];
|
|
4006
4228
|
return [4 /*yield*/, injectRecaptchaFields(authInstance, request, actionName, actionName === "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */)];
|
|
4007
4229
|
case 1:
|
|
4008
|
-
requestWithRecaptcha =
|
|
4230
|
+
requestWithRecaptcha = _c.sent();
|
|
4009
4231
|
return [2 /*return*/, actionMethod(authInstance, requestWithRecaptcha)];
|
|
4010
4232
|
case 2: return [2 /*return*/, actionMethod(authInstance, request).catch(function (error) { return __awaiter(_this, void 0, void 0, function () {
|
|
4011
4233
|
var requestWithRecaptcha;
|
|
@@ -4022,6 +4244,48 @@ function handleRecaptchaFlow(authInstance, request, actionName, actionMethod) {
|
|
|
4022
4244
|
}
|
|
4023
4245
|
});
|
|
4024
4246
|
}); })];
|
|
4247
|
+
case 3: return [3 /*break*/, 10];
|
|
4248
|
+
case 4:
|
|
4249
|
+
if (!(recaptchaAuthProvider === "PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */)) return [3 /*break*/, 9];
|
|
4250
|
+
if (!((_b = authInstance
|
|
4251
|
+
._getRecaptchaConfig()) === null || _b === void 0 ? void 0 : _b.isProviderEnabled("PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */))) return [3 /*break*/, 6];
|
|
4252
|
+
return [4 /*yield*/, injectRecaptchaFields(authInstance, request, actionName)];
|
|
4253
|
+
case 5:
|
|
4254
|
+
requestWithRecaptcha = _c.sent();
|
|
4255
|
+
return [2 /*return*/, actionMethod(authInstance, requestWithRecaptcha).catch(function (error) { return __awaiter(_this, void 0, void 0, function () {
|
|
4256
|
+
var requestWithRecaptchaFields;
|
|
4257
|
+
var _a;
|
|
4258
|
+
return __generator(this, function (_b) {
|
|
4259
|
+
switch (_b.label) {
|
|
4260
|
+
case 0:
|
|
4261
|
+
if (!(((_a = authInstance
|
|
4262
|
+
._getRecaptchaConfig()) === null || _a === void 0 ? void 0 : _a.getProviderEnforcementState("PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */)) === "AUDIT" /* EnforcementState.AUDIT */)) return [3 /*break*/, 2];
|
|
4263
|
+
if (!(error.code === "auth/".concat("missing-recaptcha-token" /* AuthErrorCode.MISSING_RECAPTCHA_TOKEN */) ||
|
|
4264
|
+
error.code === "auth/".concat("invalid-app-credential" /* AuthErrorCode.INVALID_APP_CREDENTIAL */))) return [3 /*break*/, 2];
|
|
4265
|
+
console.log("Failed to verify with reCAPTCHA Enterprise. Automatically triggering the reCAPTCHA v2 flow to complete the ".concat(actionName, " flow."));
|
|
4266
|
+
return [4 /*yield*/, injectRecaptchaFields(authInstance, request, actionName, false, // isCaptchaResp
|
|
4267
|
+
true // isFakeToken
|
|
4268
|
+
)];
|
|
4269
|
+
case 1:
|
|
4270
|
+
requestWithRecaptchaFields = _b.sent();
|
|
4271
|
+
// This will call the PhoneApiCaller to fetch and inject reCAPTCHA v2 token.
|
|
4272
|
+
return [2 /*return*/, actionMethod(authInstance, requestWithRecaptchaFields)];
|
|
4273
|
+
case 2:
|
|
4274
|
+
// ENFORCE mode or AUDIT mode with any other error.
|
|
4275
|
+
return [2 /*return*/, Promise.reject(error)];
|
|
4276
|
+
}
|
|
4277
|
+
});
|
|
4278
|
+
}); })];
|
|
4279
|
+
case 6: return [4 /*yield*/, injectRecaptchaFields(authInstance, request, actionName, false, // isCaptchaResp
|
|
4280
|
+
true // isFakeToken
|
|
4281
|
+
)];
|
|
4282
|
+
case 7:
|
|
4283
|
+
requestWithRecaptchaFields = _c.sent();
|
|
4284
|
+
// This will call the PhoneApiCaller to fetch and inject v2 token.
|
|
4285
|
+
return [2 /*return*/, actionMethod(authInstance, requestWithRecaptchaFields)];
|
|
4286
|
+
case 8: return [3 /*break*/, 10];
|
|
4287
|
+
case 9: return [2 /*return*/, Promise.reject(recaptchaAuthProvider + ' provider is not supported.')];
|
|
4288
|
+
case 10: return [2 /*return*/];
|
|
4025
4289
|
}
|
|
4026
4290
|
});
|
|
4027
4291
|
});
|
|
@@ -4046,7 +4310,7 @@ function _initializeRecaptchaConfig(auth) {
|
|
|
4046
4310
|
else {
|
|
4047
4311
|
authInternal._tenantRecaptchaConfigs[authInternal.tenantId] = config;
|
|
4048
4312
|
}
|
|
4049
|
-
if (config.
|
|
4313
|
+
if (config.isAnyProviderEnabled()) {
|
|
4050
4314
|
verifier = new RecaptchaEnterpriseVerifier(authInternal);
|
|
4051
4315
|
void verifier.verify();
|
|
4052
4316
|
}
|
|
@@ -4532,7 +4796,7 @@ var EmailAuthCredential = /** @class */ (function (_super) {
|
|
|
4532
4796
|
password: this._password,
|
|
4533
4797
|
clientType: "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */
|
|
4534
4798
|
};
|
|
4535
|
-
return [2 /*return*/, handleRecaptchaFlow(auth, request, "signInWithPassword" /* RecaptchaActionName.SIGN_IN_WITH_PASSWORD */, signInWithPassword)];
|
|
4799
|
+
return [2 /*return*/, handleRecaptchaFlow(auth, request, "signInWithPassword" /* RecaptchaActionName.SIGN_IN_WITH_PASSWORD */, signInWithPassword, "EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */)];
|
|
4536
4800
|
case "emailLink" /* SignInMethod.EMAIL_LINK */:
|
|
4537
4801
|
return [2 /*return*/, signInWithEmailLink$1(auth, {
|
|
4538
4802
|
email: this._email,
|
|
@@ -4559,7 +4823,7 @@ var EmailAuthCredential = /** @class */ (function (_super) {
|
|
|
4559
4823
|
password: this._password,
|
|
4560
4824
|
clientType: "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */
|
|
4561
4825
|
};
|
|
4562
|
-
return [2 /*return*/, handleRecaptchaFlow(auth, request, "signUpPassword" /* RecaptchaActionName.SIGN_UP_PASSWORD */, linkEmailPassword)];
|
|
4826
|
+
return [2 /*return*/, handleRecaptchaFlow(auth, request, "signUpPassword" /* RecaptchaActionName.SIGN_UP_PASSWORD */, linkEmailPassword, "EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */)];
|
|
4563
4827
|
case "emailLink" /* SignInMethod.EMAIL_LINK */:
|
|
4564
4828
|
return [2 /*return*/, signInWithEmailLinkForLinking(auth, {
|
|
4565
4829
|
idToken: idToken,
|
|
@@ -6802,7 +7066,7 @@ function sendPasswordResetEmail(auth, email, actionCodeSettings) {
|
|
|
6802
7066
|
if (actionCodeSettings) {
|
|
6803
7067
|
_setActionCodeSettingsOnRequest(authInternal, request, actionCodeSettings);
|
|
6804
7068
|
}
|
|
6805
|
-
return [4 /*yield*/, handleRecaptchaFlow(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, sendPasswordResetEmail$1)];
|
|
7069
|
+
return [4 /*yield*/, handleRecaptchaFlow(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, sendPasswordResetEmail$1, "EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */)];
|
|
6806
7070
|
case 1:
|
|
6807
7071
|
_a.sent();
|
|
6808
7072
|
return [2 /*return*/];
|
|
@@ -6978,7 +7242,7 @@ function createUserWithEmailAndPassword(auth, email, password) {
|
|
|
6978
7242
|
password: password,
|
|
6979
7243
|
clientType: "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */
|
|
6980
7244
|
};
|
|
6981
|
-
signUpResponse = handleRecaptchaFlow(authInternal, request, "signUpPassword" /* RecaptchaActionName.SIGN_UP_PASSWORD */, signUp);
|
|
7245
|
+
signUpResponse = handleRecaptchaFlow(authInternal, request, "signUpPassword" /* RecaptchaActionName.SIGN_UP_PASSWORD */, signUp, "EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */);
|
|
6982
7246
|
return [4 /*yield*/, signUpResponse.catch(function (error) {
|
|
6983
7247
|
if (error.code === "auth/".concat("password-does-not-meet-requirements" /* AuthErrorCode.PASSWORD_DOES_NOT_MEET_REQUIREMENTS */)) {
|
|
6984
7248
|
void recachePasswordPolicy(auth);
|
|
@@ -7109,7 +7373,7 @@ function sendSignInLinkToEmail(auth, email, actionCodeSettings) {
|
|
|
7109
7373
|
clientType: "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */
|
|
7110
7374
|
};
|
|
7111
7375
|
setActionCodeSettings(request, actionCodeSettings);
|
|
7112
|
-
return [4 /*yield*/, handleRecaptchaFlow(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, sendSignInLinkToEmail$1)];
|
|
7376
|
+
return [4 /*yield*/, handleRecaptchaFlow(authInternal, request, "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */, sendSignInLinkToEmail$1, "EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */)];
|
|
7113
7377
|
case 1:
|
|
7114
7378
|
_a.sent();
|
|
7115
7379
|
return [2 /*return*/];
|
|
@@ -9494,143 +9758,6 @@ function finalizeSignInTotpMfa(auth, request) {
|
|
|
9494
9758
|
return _performApiRequest(auth, "POST" /* HttpMethod.POST */, "/v2/accounts/mfaSignIn:finalize" /* Endpoint.FINALIZE_MFA_SIGN_IN */, _addTidIfNecessary(auth, request));
|
|
9495
9759
|
}
|
|
9496
9760
|
|
|
9497
|
-
/**
|
|
9498
|
-
* @license
|
|
9499
|
-
* Copyright 2020 Google LLC
|
|
9500
|
-
*
|
|
9501
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
9502
|
-
* you may not use this file except in compliance with the License.
|
|
9503
|
-
* You may obtain a copy of the License at
|
|
9504
|
-
*
|
|
9505
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9506
|
-
*
|
|
9507
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
9508
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
9509
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
9510
|
-
* See the License for the specific language governing permissions and
|
|
9511
|
-
* limitations under the License.
|
|
9512
|
-
*/
|
|
9513
|
-
var _SOLVE_TIME_MS = 500;
|
|
9514
|
-
var _EXPIRATION_TIME_MS = 60000;
|
|
9515
|
-
var _WIDGET_ID_START = 1000000000000;
|
|
9516
|
-
var MockReCaptcha = /** @class */ (function () {
|
|
9517
|
-
function MockReCaptcha(auth) {
|
|
9518
|
-
this.auth = auth;
|
|
9519
|
-
this.counter = _WIDGET_ID_START;
|
|
9520
|
-
this._widgets = new Map();
|
|
9521
|
-
}
|
|
9522
|
-
MockReCaptcha.prototype.render = function (container, parameters) {
|
|
9523
|
-
var id = this.counter;
|
|
9524
|
-
this._widgets.set(id, new MockWidget(container, this.auth.name, parameters || {}));
|
|
9525
|
-
this.counter++;
|
|
9526
|
-
return id;
|
|
9527
|
-
};
|
|
9528
|
-
MockReCaptcha.prototype.reset = function (optWidgetId) {
|
|
9529
|
-
var _a;
|
|
9530
|
-
var id = optWidgetId || _WIDGET_ID_START;
|
|
9531
|
-
void ((_a = this._widgets.get(id)) === null || _a === void 0 ? void 0 : _a.delete());
|
|
9532
|
-
this._widgets.delete(id);
|
|
9533
|
-
};
|
|
9534
|
-
MockReCaptcha.prototype.getResponse = function (optWidgetId) {
|
|
9535
|
-
var _a;
|
|
9536
|
-
var id = optWidgetId || _WIDGET_ID_START;
|
|
9537
|
-
return ((_a = this._widgets.get(id)) === null || _a === void 0 ? void 0 : _a.getResponse()) || '';
|
|
9538
|
-
};
|
|
9539
|
-
MockReCaptcha.prototype.execute = function (optWidgetId) {
|
|
9540
|
-
var _a;
|
|
9541
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
9542
|
-
var id;
|
|
9543
|
-
return __generator(this, function (_b) {
|
|
9544
|
-
id = optWidgetId || _WIDGET_ID_START;
|
|
9545
|
-
void ((_a = this._widgets.get(id)) === null || _a === void 0 ? void 0 : _a.execute());
|
|
9546
|
-
return [2 /*return*/, ''];
|
|
9547
|
-
});
|
|
9548
|
-
});
|
|
9549
|
-
};
|
|
9550
|
-
return MockReCaptcha;
|
|
9551
|
-
}());
|
|
9552
|
-
var MockWidget = /** @class */ (function () {
|
|
9553
|
-
function MockWidget(containerOrId, appName, params) {
|
|
9554
|
-
var _this = this;
|
|
9555
|
-
this.params = params;
|
|
9556
|
-
this.timerId = null;
|
|
9557
|
-
this.deleted = false;
|
|
9558
|
-
this.responseToken = null;
|
|
9559
|
-
this.clickHandler = function () {
|
|
9560
|
-
_this.execute();
|
|
9561
|
-
};
|
|
9562
|
-
var container = typeof containerOrId === 'string'
|
|
9563
|
-
? document.getElementById(containerOrId)
|
|
9564
|
-
: containerOrId;
|
|
9565
|
-
_assert(container, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */, { appName: appName });
|
|
9566
|
-
this.container = container;
|
|
9567
|
-
this.isVisible = this.params.size !== 'invisible';
|
|
9568
|
-
if (this.isVisible) {
|
|
9569
|
-
this.execute();
|
|
9570
|
-
}
|
|
9571
|
-
else {
|
|
9572
|
-
this.container.addEventListener('click', this.clickHandler);
|
|
9573
|
-
}
|
|
9574
|
-
}
|
|
9575
|
-
MockWidget.prototype.getResponse = function () {
|
|
9576
|
-
this.checkIfDeleted();
|
|
9577
|
-
return this.responseToken;
|
|
9578
|
-
};
|
|
9579
|
-
MockWidget.prototype.delete = function () {
|
|
9580
|
-
this.checkIfDeleted();
|
|
9581
|
-
this.deleted = true;
|
|
9582
|
-
if (this.timerId) {
|
|
9583
|
-
clearTimeout(this.timerId);
|
|
9584
|
-
this.timerId = null;
|
|
9585
|
-
}
|
|
9586
|
-
this.container.removeEventListener('click', this.clickHandler);
|
|
9587
|
-
};
|
|
9588
|
-
MockWidget.prototype.execute = function () {
|
|
9589
|
-
var _this = this;
|
|
9590
|
-
this.checkIfDeleted();
|
|
9591
|
-
if (this.timerId) {
|
|
9592
|
-
return;
|
|
9593
|
-
}
|
|
9594
|
-
this.timerId = window.setTimeout(function () {
|
|
9595
|
-
_this.responseToken = generateRandomAlphaNumericString(50);
|
|
9596
|
-
var _a = _this.params, callback = _a.callback, expiredCallback = _a["expired-callback"];
|
|
9597
|
-
if (callback) {
|
|
9598
|
-
try {
|
|
9599
|
-
callback(_this.responseToken);
|
|
9600
|
-
}
|
|
9601
|
-
catch (e) { }
|
|
9602
|
-
}
|
|
9603
|
-
_this.timerId = window.setTimeout(function () {
|
|
9604
|
-
_this.timerId = null;
|
|
9605
|
-
_this.responseToken = null;
|
|
9606
|
-
if (expiredCallback) {
|
|
9607
|
-
try {
|
|
9608
|
-
expiredCallback();
|
|
9609
|
-
}
|
|
9610
|
-
catch (e) { }
|
|
9611
|
-
}
|
|
9612
|
-
if (_this.isVisible) {
|
|
9613
|
-
_this.execute();
|
|
9614
|
-
}
|
|
9615
|
-
}, _EXPIRATION_TIME_MS);
|
|
9616
|
-
}, _SOLVE_TIME_MS);
|
|
9617
|
-
};
|
|
9618
|
-
MockWidget.prototype.checkIfDeleted = function () {
|
|
9619
|
-
if (this.deleted) {
|
|
9620
|
-
throw new Error('reCAPTCHA mock was already deleted!');
|
|
9621
|
-
}
|
|
9622
|
-
};
|
|
9623
|
-
return MockWidget;
|
|
9624
|
-
}());
|
|
9625
|
-
function generateRandomAlphaNumericString(len) {
|
|
9626
|
-
var chars = [];
|
|
9627
|
-
var allowedChars = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
9628
|
-
for (var i = 0; i < len; i++) {
|
|
9629
|
-
chars.push(allowedChars.charAt(Math.floor(Math.random() * allowedChars.length)));
|
|
9630
|
-
}
|
|
9631
|
-
return chars.join('');
|
|
9632
|
-
}
|
|
9633
|
-
|
|
9634
9761
|
/**
|
|
9635
9762
|
* @license
|
|
9636
9763
|
* Copyright 2020 Google LLC
|
|
@@ -10037,12 +10164,15 @@ var ConfirmationResultImpl = /** @class */ (function () {
|
|
|
10037
10164
|
* provides the code sent to their phone, call {@link ConfirmationResult.confirm}
|
|
10038
10165
|
* with the code to sign the user in.
|
|
10039
10166
|
*
|
|
10040
|
-
* For abuse prevention, this method
|
|
10041
|
-
* This SDK includes
|
|
10167
|
+
* For abuse prevention, this method requires a {@link ApplicationVerifier}.
|
|
10168
|
+
* This SDK includes an implementation based on reCAPTCHA v2, {@link RecaptchaVerifier}.
|
|
10042
10169
|
* This function can work on other platforms that do not support the
|
|
10043
10170
|
* {@link RecaptchaVerifier} (like React Native), but you need to use a
|
|
10044
10171
|
* third-party {@link ApplicationVerifier} implementation.
|
|
10045
10172
|
*
|
|
10173
|
+
* If you've enabled project-level reCAPTCHA Enterprise bot protection in
|
|
10174
|
+
* Enforce mode, you can omit the {@link ApplicationVerifier}.
|
|
10175
|
+
*
|
|
10046
10176
|
* This method does not work in a Node.js environment or with {@link Auth} instances created with a
|
|
10047
10177
|
* {@link @firebase/app#FirebaseServerApp}.
|
|
10048
10178
|
*
|
|
@@ -10155,17 +10285,29 @@ function reauthenticateWithPhoneNumber(user, phoneNumber, appVerifier) {
|
|
|
10155
10285
|
function _verifyPhoneNumber(auth, options, verifier) {
|
|
10156
10286
|
var _a;
|
|
10157
10287
|
return __awaiter(this, void 0, void 0, function () {
|
|
10158
|
-
var
|
|
10288
|
+
var phoneInfoOptions, session, startPhoneMfaEnrollmentRequest, startEnrollPhoneMfaActionCallback, startPhoneMfaEnrollmentResponse, response, mfaEnrollmentId, startPhoneMfaSignInRequest, startSignInPhoneMfaActionCallback, startPhoneMfaSignInResponse, response, sendPhoneVerificationCodeRequest, sendPhoneVerificationCodeActionCallback, sendPhoneVerificationCodeResponse, response;
|
|
10289
|
+
var _this = this;
|
|
10159
10290
|
return __generator(this, function (_b) {
|
|
10160
10291
|
switch (_b.label) {
|
|
10161
|
-
case 0:
|
|
10292
|
+
case 0:
|
|
10293
|
+
if (!!auth._getRecaptchaConfig()) return [3 /*break*/, 4];
|
|
10294
|
+
_b.label = 1;
|
|
10162
10295
|
case 1:
|
|
10163
|
-
|
|
10164
|
-
|
|
10296
|
+
_b.trys.push([1, 3, , 4]);
|
|
10297
|
+
return [4 /*yield*/, _initializeRecaptchaConfig(auth)];
|
|
10165
10298
|
case 2:
|
|
10166
|
-
_b.
|
|
10167
|
-
|
|
10168
|
-
|
|
10299
|
+
_b.sent();
|
|
10300
|
+
return [3 /*break*/, 4];
|
|
10301
|
+
case 3:
|
|
10302
|
+
_b.sent();
|
|
10303
|
+
// If an error occurs while fetching the config, there is no way to know the enablement state
|
|
10304
|
+
// of Phone provider, so we proceed with recaptcha V2 verification.
|
|
10305
|
+
// The error is likely "recaptchaKey undefined", as reCAPTCHA Enterprise is not
|
|
10306
|
+
// enabled for any provider.
|
|
10307
|
+
console.log('Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.');
|
|
10308
|
+
return [3 /*break*/, 4];
|
|
10309
|
+
case 4:
|
|
10310
|
+
_b.trys.push([4, , 12, 13]);
|
|
10169
10311
|
phoneInfoOptions = void 0;
|
|
10170
10312
|
if (typeof options === 'string') {
|
|
10171
10313
|
phoneInfoOptions = {
|
|
@@ -10175,48 +10317,106 @@ function _verifyPhoneNumber(auth, options, verifier) {
|
|
|
10175
10317
|
else {
|
|
10176
10318
|
phoneInfoOptions = options;
|
|
10177
10319
|
}
|
|
10178
|
-
if (!('session' in phoneInfoOptions)) return [3 /*break*/,
|
|
10320
|
+
if (!('session' in phoneInfoOptions)) return [3 /*break*/, 9];
|
|
10179
10321
|
session = phoneInfoOptions.session;
|
|
10180
|
-
if (!('phoneNumber' in phoneInfoOptions)) return [3 /*break*/,
|
|
10322
|
+
if (!('phoneNumber' in phoneInfoOptions)) return [3 /*break*/, 6];
|
|
10181
10323
|
_assert(session.type === "enroll" /* MultiFactorSessionType.ENROLL */, auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
10182
|
-
|
|
10183
|
-
|
|
10184
|
-
|
|
10185
|
-
|
|
10186
|
-
|
|
10324
|
+
startPhoneMfaEnrollmentRequest = {
|
|
10325
|
+
idToken: session.credential,
|
|
10326
|
+
phoneEnrollmentInfo: {
|
|
10327
|
+
phoneNumber: phoneInfoOptions.phoneNumber,
|
|
10328
|
+
clientType: "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */
|
|
10329
|
+
}
|
|
10330
|
+
};
|
|
10331
|
+
startEnrollPhoneMfaActionCallback = function (authInstance, request) { return __awaiter(_this, void 0, void 0, function () {
|
|
10332
|
+
var requestWithRecaptchaV2;
|
|
10333
|
+
return __generator(this, function (_a) {
|
|
10334
|
+
switch (_a.label) {
|
|
10335
|
+
case 0:
|
|
10336
|
+
if (!(request.phoneEnrollmentInfo.captchaResponse === FAKE_TOKEN)) return [3 /*break*/, 2];
|
|
10337
|
+
_assert((verifier === null || verifier === void 0 ? void 0 : verifier.type) === RECAPTCHA_VERIFIER_TYPE, authInstance, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
10338
|
+
return [4 /*yield*/, injectRecaptchaV2Token(authInstance, request, verifier)];
|
|
10339
|
+
case 1:
|
|
10340
|
+
requestWithRecaptchaV2 = _a.sent();
|
|
10341
|
+
return [2 /*return*/, startEnrollPhoneMfa(authInstance, requestWithRecaptchaV2)];
|
|
10342
|
+
case 2: return [2 /*return*/, startEnrollPhoneMfa(authInstance, request)];
|
|
10187
10343
|
}
|
|
10344
|
+
});
|
|
10345
|
+
}); };
|
|
10346
|
+
startPhoneMfaEnrollmentResponse = handleRecaptchaFlow(auth, startPhoneMfaEnrollmentRequest, "mfaSmsEnrollment" /* RecaptchaActionName.MFA_SMS_ENROLLMENT */, startEnrollPhoneMfaActionCallback, "PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */);
|
|
10347
|
+
return [4 /*yield*/, startPhoneMfaEnrollmentResponse.catch(function (error) {
|
|
10348
|
+
return Promise.reject(error);
|
|
10188
10349
|
})];
|
|
10189
|
-
case
|
|
10350
|
+
case 5:
|
|
10190
10351
|
response = _b.sent();
|
|
10191
10352
|
return [2 /*return*/, response.phoneSessionInfo.sessionInfo];
|
|
10192
|
-
case
|
|
10353
|
+
case 6:
|
|
10193
10354
|
_assert(session.type === "signin" /* MultiFactorSessionType.SIGN_IN */, auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
10194
10355
|
mfaEnrollmentId = ((_a = phoneInfoOptions.multiFactorHint) === null || _a === void 0 ? void 0 : _a.uid) ||
|
|
10195
10356
|
phoneInfoOptions.multiFactorUid;
|
|
10196
10357
|
_assert(mfaEnrollmentId, auth, "missing-multi-factor-info" /* AuthErrorCode.MISSING_MFA_INFO */);
|
|
10197
|
-
|
|
10198
|
-
|
|
10199
|
-
|
|
10200
|
-
|
|
10201
|
-
|
|
10358
|
+
startPhoneMfaSignInRequest = {
|
|
10359
|
+
mfaPendingCredential: session.credential,
|
|
10360
|
+
mfaEnrollmentId: mfaEnrollmentId,
|
|
10361
|
+
phoneSignInInfo: {
|
|
10362
|
+
clientType: "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */
|
|
10363
|
+
}
|
|
10364
|
+
};
|
|
10365
|
+
startSignInPhoneMfaActionCallback = function (authInstance, request) { return __awaiter(_this, void 0, void 0, function () {
|
|
10366
|
+
var requestWithRecaptchaV2;
|
|
10367
|
+
return __generator(this, function (_a) {
|
|
10368
|
+
switch (_a.label) {
|
|
10369
|
+
case 0:
|
|
10370
|
+
if (!(request.phoneSignInInfo.captchaResponse === FAKE_TOKEN)) return [3 /*break*/, 2];
|
|
10371
|
+
_assert((verifier === null || verifier === void 0 ? void 0 : verifier.type) === RECAPTCHA_VERIFIER_TYPE, authInstance, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
10372
|
+
return [4 /*yield*/, injectRecaptchaV2Token(authInstance, request, verifier)];
|
|
10373
|
+
case 1:
|
|
10374
|
+
requestWithRecaptchaV2 = _a.sent();
|
|
10375
|
+
return [2 /*return*/, startSignInPhoneMfa(authInstance, requestWithRecaptchaV2)];
|
|
10376
|
+
case 2: return [2 /*return*/, startSignInPhoneMfa(authInstance, request)];
|
|
10202
10377
|
}
|
|
10378
|
+
});
|
|
10379
|
+
}); };
|
|
10380
|
+
startPhoneMfaSignInResponse = handleRecaptchaFlow(auth, startPhoneMfaSignInRequest, "mfaSmsSignIn" /* RecaptchaActionName.MFA_SMS_SIGNIN */, startSignInPhoneMfaActionCallback, "PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */);
|
|
10381
|
+
return [4 /*yield*/, startPhoneMfaSignInResponse.catch(function (error) {
|
|
10382
|
+
return Promise.reject(error);
|
|
10203
10383
|
})];
|
|
10204
|
-
case
|
|
10384
|
+
case 7:
|
|
10205
10385
|
response = _b.sent();
|
|
10206
10386
|
return [2 /*return*/, response.phoneResponseInfo.sessionInfo];
|
|
10207
|
-
case
|
|
10208
|
-
case
|
|
10387
|
+
case 8: return [3 /*break*/, 11];
|
|
10388
|
+
case 9:
|
|
10389
|
+
sendPhoneVerificationCodeRequest = {
|
|
10209
10390
|
phoneNumber: phoneInfoOptions.phoneNumber,
|
|
10210
|
-
|
|
10211
|
-
}
|
|
10212
|
-
|
|
10213
|
-
|
|
10214
|
-
|
|
10215
|
-
|
|
10391
|
+
clientType: "CLIENT_TYPE_WEB" /* RecaptchaClientType.WEB */
|
|
10392
|
+
};
|
|
10393
|
+
sendPhoneVerificationCodeActionCallback = function (authInstance, request) { return __awaiter(_this, void 0, void 0, function () {
|
|
10394
|
+
var requestWithRecaptchaV2;
|
|
10395
|
+
return __generator(this, function (_a) {
|
|
10396
|
+
switch (_a.label) {
|
|
10397
|
+
case 0:
|
|
10398
|
+
if (!(request.captchaResponse === FAKE_TOKEN)) return [3 /*break*/, 2];
|
|
10399
|
+
_assert((verifier === null || verifier === void 0 ? void 0 : verifier.type) === RECAPTCHA_VERIFIER_TYPE, authInstance, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
10400
|
+
return [4 /*yield*/, injectRecaptchaV2Token(authInstance, request, verifier)];
|
|
10401
|
+
case 1:
|
|
10402
|
+
requestWithRecaptchaV2 = _a.sent();
|
|
10403
|
+
return [2 /*return*/, sendPhoneVerificationCode(authInstance, requestWithRecaptchaV2)];
|
|
10404
|
+
case 2: return [2 /*return*/, sendPhoneVerificationCode(authInstance, request)];
|
|
10405
|
+
}
|
|
10406
|
+
});
|
|
10407
|
+
}); };
|
|
10408
|
+
sendPhoneVerificationCodeResponse = handleRecaptchaFlow(auth, sendPhoneVerificationCodeRequest, "sendVerificationCode" /* RecaptchaActionName.SEND_VERIFICATION_CODE */, sendPhoneVerificationCodeActionCallback, "PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */);
|
|
10409
|
+
return [4 /*yield*/, sendPhoneVerificationCodeResponse.catch(function (error) {
|
|
10410
|
+
return Promise.reject(error);
|
|
10411
|
+
})];
|
|
10216
10412
|
case 10:
|
|
10217
|
-
|
|
10413
|
+
response = _b.sent();
|
|
10414
|
+
return [2 /*return*/, response.sessionInfo];
|
|
10415
|
+
case 11: return [3 /*break*/, 13];
|
|
10416
|
+
case 12:
|
|
10417
|
+
verifier === null || verifier === void 0 ? void 0 : verifier._reset();
|
|
10218
10418
|
return [7 /*endfinally*/];
|
|
10219
|
-
case
|
|
10419
|
+
case 13: return [2 /*return*/];
|
|
10220
10420
|
}
|
|
10221
10421
|
});
|
|
10222
10422
|
});
|
|
@@ -10261,6 +10461,59 @@ function updatePhoneNumber(user, credential) {
|
|
|
10261
10461
|
}
|
|
10262
10462
|
});
|
|
10263
10463
|
});
|
|
10464
|
+
}
|
|
10465
|
+
// Helper function that fetches and injects a reCAPTCHA v2 token into the request.
|
|
10466
|
+
function injectRecaptchaV2Token(auth, request, recaptchaV2Verifier) {
|
|
10467
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
10468
|
+
var recaptchaV2Token, newRequest, phoneNumber, captchaResponse, clientType, recaptchaVersion, captchaResponse, clientType, recaptchaVersion;
|
|
10469
|
+
return __generator(this, function (_a) {
|
|
10470
|
+
switch (_a.label) {
|
|
10471
|
+
case 0:
|
|
10472
|
+
_assert(recaptchaV2Verifier.type === RECAPTCHA_VERIFIER_TYPE, auth, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
10473
|
+
return [4 /*yield*/, recaptchaV2Verifier.verify()];
|
|
10474
|
+
case 1:
|
|
10475
|
+
recaptchaV2Token = _a.sent();
|
|
10476
|
+
_assert(typeof recaptchaV2Token === 'string', auth, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
10477
|
+
newRequest = __assign({}, request);
|
|
10478
|
+
if ('phoneEnrollmentInfo' in newRequest) {
|
|
10479
|
+
phoneNumber = newRequest.phoneEnrollmentInfo.phoneNumber;
|
|
10480
|
+
captchaResponse = newRequest.phoneEnrollmentInfo.captchaResponse;
|
|
10481
|
+
clientType = newRequest
|
|
10482
|
+
.phoneEnrollmentInfo.clientType;
|
|
10483
|
+
recaptchaVersion = newRequest.phoneEnrollmentInfo.recaptchaVersion;
|
|
10484
|
+
Object.assign(newRequest, {
|
|
10485
|
+
'phoneEnrollmentInfo': {
|
|
10486
|
+
phoneNumber: phoneNumber,
|
|
10487
|
+
recaptchaToken: recaptchaV2Token,
|
|
10488
|
+
captchaResponse: captchaResponse,
|
|
10489
|
+
clientType: clientType,
|
|
10490
|
+
recaptchaVersion: recaptchaVersion
|
|
10491
|
+
}
|
|
10492
|
+
});
|
|
10493
|
+
return [2 /*return*/, newRequest];
|
|
10494
|
+
}
|
|
10495
|
+
else if ('phoneSignInInfo' in newRequest) {
|
|
10496
|
+
captchaResponse = newRequest.phoneSignInInfo.captchaResponse;
|
|
10497
|
+
clientType = newRequest
|
|
10498
|
+
.phoneSignInInfo.clientType;
|
|
10499
|
+
recaptchaVersion = newRequest.phoneSignInInfo.recaptchaVersion;
|
|
10500
|
+
Object.assign(newRequest, {
|
|
10501
|
+
'phoneSignInInfo': {
|
|
10502
|
+
recaptchaToken: recaptchaV2Token,
|
|
10503
|
+
captchaResponse: captchaResponse,
|
|
10504
|
+
clientType: clientType,
|
|
10505
|
+
recaptchaVersion: recaptchaVersion
|
|
10506
|
+
}
|
|
10507
|
+
});
|
|
10508
|
+
return [2 /*return*/, newRequest];
|
|
10509
|
+
}
|
|
10510
|
+
else {
|
|
10511
|
+
Object.assign(newRequest, { 'recaptchaToken': recaptchaV2Token });
|
|
10512
|
+
return [2 /*return*/, newRequest];
|
|
10513
|
+
}
|
|
10514
|
+
}
|
|
10515
|
+
});
|
|
10516
|
+
});
|
|
10264
10517
|
}
|
|
10265
10518
|
|
|
10266
10519
|
/**
|
|
@@ -10332,12 +10585,14 @@ var PhoneAuthProvider = /** @class */ (function () {
|
|
|
10332
10585
|
*
|
|
10333
10586
|
* @param phoneInfoOptions - The user's {@link PhoneInfoOptions}. The phone number should be in
|
|
10334
10587
|
* E.164 format (e.g. +16505550101).
|
|
10335
|
-
* @param applicationVerifier -
|
|
10336
|
-
*
|
|
10337
|
-
* {@link RecaptchaVerifier}.
|
|
10588
|
+
* @param applicationVerifier - An {@link ApplicationVerifier}, which prevents
|
|
10589
|
+
* requests from unauthorized clients. This SDK includes an implementation
|
|
10590
|
+
* based on reCAPTCHA v2, {@link RecaptchaVerifier}. If you've enabled
|
|
10591
|
+
* reCAPTCHA Enterprise bot protection in Enforce mode, this parameter is
|
|
10592
|
+
* optional; in all other configurations, the parameter is required.
|
|
10338
10593
|
*
|
|
10339
10594
|
* @returns A Promise for a verification ID that can be passed to
|
|
10340
|
-
* {@link PhoneAuthProvider.credential} to identify this flow
|
|
10595
|
+
* {@link PhoneAuthProvider.credential} to identify this flow.
|
|
10341
10596
|
*/
|
|
10342
10597
|
PhoneAuthProvider.prototype.verifyPhoneNumber = function (phoneOptions, applicationVerifier) {
|
|
10343
10598
|
return _verifyPhoneNumber(this.auth, phoneOptions, getModularInstance(applicationVerifier));
|
|
@@ -12451,7 +12706,7 @@ function _isEmptyString(input) {
|
|
|
12451
12706
|
}
|
|
12452
12707
|
|
|
12453
12708
|
var name = "@firebase/auth";
|
|
12454
|
-
var version = "1.7.9-canary.
|
|
12709
|
+
var version = "1.7.9-canary.b942e9e6e";
|
|
12455
12710
|
|
|
12456
12711
|
/**
|
|
12457
12712
|
* @license
|
|
@@ -12738,4 +12993,4 @@ _setExternalJSProvider({
|
|
|
12738
12993
|
registerAuth("Browser" /* ClientPlatform.BROWSER */);
|
|
12739
12994
|
|
|
12740
12995
|
export { TwitterAuthProvider as $, ActionCodeOperation as A, updateCurrentUser as B, signOut as C, revokeAccessToken as D, deleteUser as E, FactorId as F, debugErrorMap as G, prodErrorMap as H, AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY as I, initializeAuth as J, connectAuthEmulator as K, AuthCredential as L, EmailAuthCredential as M, OAuthCredential as N, OperationType as O, PhoneAuthProvider as P, PhoneAuthCredential as Q, RecaptchaVerifier as R, SignInMethod as S, TotpMultiFactorGenerator as T, inMemoryPersistence as U, EmailAuthProvider as V, FacebookAuthProvider as W, GoogleAuthProvider as X, GithubAuthProvider as Y, OAuthProvider as Z, SAMLAuthProvider as _, browserSessionPersistence as a, signInAnonymously as a0, signInWithCredential as a1, linkWithCredential as a2, reauthenticateWithCredential as a3, signInWithCustomToken as a4, sendPasswordResetEmail as a5, confirmPasswordReset as a6, applyActionCode as a7, checkActionCode as a8, verifyPasswordResetCode as a9, _isIOS7Or8 as aA, _assert as aB, _createError as aC, AuthEventManager as aD, _getInstance as aE, _persistenceKeyName as aF, _clearRedirectOutcomes as aG, _getRedirectResult as aH, _overrideRedirectResult as aI, _castAuth as aJ, UserImpl as aK, AuthImpl as aL, _getClientVersion as aM, _generateEventId as aN, AuthPopup as aO, FetchProvider as aP, SAMLAuthCredential as aQ, createUserWithEmailAndPassword as aa, signInWithEmailAndPassword as ab, sendSignInLinkToEmail as ac, isSignInWithEmailLink as ad, signInWithEmailLink as ae, fetchSignInMethodsForEmail as af, sendEmailVerification as ag, verifyBeforeUpdateEmail as ah, ActionCodeURL as ai, parseActionCodeURL as aj, updateProfile as ak, updateEmail as al, updatePassword as am, getIdToken as an, getIdTokenResult as ao, unlink as ap, getAdditionalUserInfo as aq, reload as ar, getMultiFactorResolver as as, multiFactor as at, _isIOS as au, _isAndroid as av, _fail as aw, _getRedirectUrl as ax, debugAssert as ay, _getProjectConfig 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 };
|
|
12741
|
-
//# sourceMappingURL=index-
|
|
12996
|
+
//# sourceMappingURL=index-82b3e33f.js.map
|