@firebase/auth 1.10.7 → 1.10.8-canary.25b60fdaa
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-cjs/{index-d8380d90.js → index-ebbd6577.js} +212 -202
- package/dist/browser-cjs/{index-d8380d90.js.map → index-ebbd6577.js.map} +1 -1
- package/dist/browser-cjs/index.js +1 -2
- package/dist/browser-cjs/index.js.map +1 -1
- package/dist/browser-cjs/internal.js +13 -18
- package/dist/browser-cjs/internal.js.map +1 -1
- package/dist/cordova/index.js +2 -3
- package/dist/cordova/index.js.map +1 -1
- package/dist/cordova/internal.js +37 -44
- package/dist/cordova/internal.js.map +1 -1
- package/dist/cordova/{popup_redirect-2822224b.js → popup_redirect-6226898d.js} +189 -177
- package/dist/cordova/{popup_redirect-2822224b.js.map → popup_redirect-6226898d.js.map} +1 -1
- package/dist/{esm2017/index-8e6e89cb.js → esm/index-9070a94b.js} +212 -202
- package/dist/{esm2017/index-8e6e89cb.js.map → esm/index-9070a94b.js.map} +1 -1
- package/dist/{esm2017 → esm}/index.js +1 -2
- package/dist/{esm2017 → esm}/index.js.map +1 -1
- package/dist/{esm2017 → esm}/internal.js +14 -19
- package/dist/{esm2017 → esm}/internal.js.map +1 -1
- package/dist/index.webworker.js +169 -148
- package/dist/index.webworker.js.map +1 -1
- package/dist/node/index.js +1 -2
- package/dist/node/index.js.map +1 -1
- package/dist/node/internal.js +16 -22
- package/dist/node/internal.js.map +1 -1
- package/dist/node/{totp-9fae27f4.js → totp-e66b7ec4.js} +165 -144
- package/dist/{node-esm/totp-18137433.js.map → node/totp-e66b7ec4.js.map} +1 -1
- package/dist/node-esm/index.js +1 -2
- package/dist/node-esm/index.js.map +1 -1
- package/dist/node-esm/internal.js +17 -23
- package/dist/node-esm/internal.js.map +1 -1
- package/dist/node-esm/{totp-18137433.js → totp-dac3769c.js} +165 -144
- package/dist/{node/totp-9fae27f4.js.map → node-esm/totp-dac3769c.js.map} +1 -1
- package/dist/rn/{index-88065ec9.js → index-bd7c14b0.js} +183 -168
- package/dist/rn/{index-88065ec9.js.map → index-bd7c14b0.js.map} +1 -1
- package/dist/rn/index.js +3 -4
- package/dist/rn/index.js.map +1 -1
- package/dist/rn/internal.js +42 -52
- package/dist/rn/internal.js.map +1 -1
- package/dist/web-extension-cjs/index.js +1 -2
- package/dist/web-extension-cjs/index.js.map +1 -1
- package/dist/web-extension-cjs/internal.js +48 -58
- package/dist/web-extension-cjs/internal.js.map +1 -1
- package/dist/web-extension-cjs/{register-e67a5434.js → register-0be0e604.js} +177 -162
- package/dist/{web-extension-esm2017/register-eb80272b.js.map → web-extension-cjs/register-0be0e604.js.map} +1 -1
- package/dist/{web-extension-esm2017 → web-extension-esm}/index.js +2 -3
- package/dist/{web-extension-esm2017 → web-extension-esm}/index.js.map +1 -1
- package/dist/{web-extension-esm2017 → web-extension-esm}/internal.js +49 -59
- package/dist/{web-extension-esm2017 → web-extension-esm}/internal.js.map +1 -1
- package/dist/{web-extension-esm2017/register-eb80272b.js → web-extension-esm/register-41226db6.js} +177 -162
- package/dist/{web-extension-cjs/register-e67a5434.js.map → web-extension-esm/register-41226db6.js.map} +1 -1
- package/internal/package.json +4 -4
- package/package.json +19 -19
- package/web-extension/package.json +3 -3
- /package/dist/{esm2017 → esm}/index.cordova.d.ts +0 -0
- /package/dist/{esm2017 → esm}/index.d.ts +0 -0
- /package/dist/{esm2017 → esm}/index.doc.d.ts +0 -0
- /package/dist/{esm2017 → esm}/index.node.d.ts +0 -0
- /package/dist/{esm2017 → esm}/index.rn.d.ts +0 -0
- /package/dist/{esm2017 → esm}/index.shared.d.ts +0 -0
- /package/dist/{esm2017 → esm}/index.web-extension.d.ts +0 -0
- /package/dist/{esm2017 → esm}/index.webworker.d.ts +0 -0
- /package/dist/{esm2017 → esm}/internal/index.d.ts +0 -0
- /package/dist/{esm2017 → esm}/scripts/run_node_tests.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/account_management/account.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/account_management/email_and_password.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/account_management/mfa.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/account_management/profile.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/authentication/create_auth_uri.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/authentication/custom_token.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/authentication/email_and_password.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/authentication/email_link.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/authentication/idp.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/authentication/mfa.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/authentication/recaptcha.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/authentication/sign_up.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/authentication/sms.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/authentication/token.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/errors.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/index.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/password_policy/get_password_policy.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/api/project_config/get_project_config.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/action_code_url.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/auth/auth_event_manager.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/auth/auth_impl.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/auth/emulator.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/auth/firebase_internal.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/auth/initialize.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/auth/middleware.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/auth/password_policy_impl.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/auth/register.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/credentials/auth_credential.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/credentials/email.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/credentials/index.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/credentials/oauth.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/credentials/phone.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/credentials/saml.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/errors.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/index.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/persistence/in_memory.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/persistence/index.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/persistence/persistence_user_manager.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/providers/email.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/providers/facebook.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/providers/federated.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/providers/github.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/providers/google.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/providers/oauth.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/providers/saml.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/providers/twitter.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/strategies/abstract_popup_redirect_operation.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/strategies/action_code_settings.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/strategies/anonymous.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/strategies/credential.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/strategies/custom_token.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/strategies/email.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/strategies/email_and_password.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/strategies/email_link.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/strategies/idp.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/strategies/redirect.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/user/account_info.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/user/additional_user_info.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/user/id_token_result.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/user/invalidation.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/user/link_unlink.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/user/proactive_refresh.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/user/reauthenticate.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/user/reload.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/user/token_manager.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/user/user_credential_impl.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/user/user_impl.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/user/user_metadata.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/assert.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/browser.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/delay.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/emulator.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/event_id.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/fetch_provider.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/handler.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/instantiator.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/location.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/log.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/navigator.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/providers.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/resolver.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/time.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/validate_origin.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/core/util/version.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/index.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/mfa/assertions/totp.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/mfa/index.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/mfa/mfa_assertion.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/mfa/mfa_error.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/mfa/mfa_info.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/mfa/mfa_resolver.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/mfa/mfa_session.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/mfa/mfa_user.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/model/application_verifier.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/model/auth.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/model/enum_maps.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/model/enums.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/model/id_token.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/model/password_policy.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/model/popup_redirect.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/model/public_types.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/model/user.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/auth_window.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/iframe/gapi.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/iframe/gapi.iframes.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/iframe/iframe.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/index.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/load_js.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/messagechannel/index.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/messagechannel/promise.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/messagechannel/receiver.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/messagechannel/sender.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/mfa/assertions/phone.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/persistence/browser.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/persistence/cookie_storage.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/persistence/indexed_db.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/persistence/local_storage.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/persistence/session_storage.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/popup_redirect.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/providers/phone.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/recaptcha/recaptcha.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/recaptcha/recaptcha_loader.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/recaptcha/recaptcha_mock.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/recaptcha/recaptcha_verifier.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/strategies/phone.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/strategies/popup.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/strategies/redirect.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/util/popup.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_browser/util/worker.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_cordova/plugins.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_cordova/popup_redirect/events.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_cordova/popup_redirect/popup_redirect.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_cordova/popup_redirect/utils.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_cordova/strategies/redirect.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_node/index.d.ts +0 -0
- /package/dist/{esm2017 → esm}/src/platform_react_native/persistence/react_native.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/api/helper.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/delay.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/erroring_unavailable_persistence.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/fake_service_worker.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/id_token_response.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/iframe_event.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/integration/emulator_rest_helpers.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/integration/helpers.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/integration/settings.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/jwt.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/mock_auth.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/mock_auth_credential.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/mock_fetch.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/mock_popup_redirect_resolver.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/redirect_persistence.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/helpers/timeout_stub.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/integration/flows/middleware_test_generator.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/integration/webdriver/util/auth_driver.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/integration/webdriver/util/functions.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/integration/webdriver/util/idp_page.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/integration/webdriver/util/js_load_condition.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/integration/webdriver/util/test_runner.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/integration/webdriver/util/test_server.d.ts +0 -0
- /package/dist/{esm2017 → esm}/test/integration/webdriver/util/ui_page.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/auth-web-extension-public.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/auth-web-extension.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/index.cordova.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/index.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/index.doc.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/index.node.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/index.rn.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/index.shared.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/index.web-extension.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/index.webworker.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/internal/index.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/package.json +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/scripts/run_node_tests.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/account_management/account.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/account_management/email_and_password.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/account_management/mfa.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/account_management/profile.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/authentication/create_auth_uri.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/authentication/custom_token.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/authentication/email_and_password.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/authentication/email_link.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/authentication/idp.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/authentication/mfa.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/authentication/recaptcha.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/authentication/sign_up.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/authentication/sms.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/authentication/token.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/errors.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/index.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/password_policy/get_password_policy.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/api/project_config/get_project_config.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/action_code_url.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/auth/auth_event_manager.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/auth/auth_impl.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/auth/emulator.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/auth/firebase_internal.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/auth/initialize.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/auth/middleware.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/auth/password_policy_impl.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/auth/register.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/credentials/auth_credential.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/credentials/email.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/credentials/index.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/credentials/oauth.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/credentials/phone.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/credentials/saml.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/errors.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/index.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/persistence/in_memory.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/persistence/index.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/persistence/persistence_user_manager.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/providers/email.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/providers/facebook.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/providers/federated.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/providers/github.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/providers/google.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/providers/oauth.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/providers/saml.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/providers/twitter.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/strategies/abstract_popup_redirect_operation.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/strategies/action_code_settings.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/strategies/anonymous.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/strategies/credential.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/strategies/custom_token.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/strategies/email.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/strategies/email_and_password.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/strategies/email_link.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/strategies/idp.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/strategies/redirect.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/user/account_info.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/user/additional_user_info.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/user/id_token_result.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/user/invalidation.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/user/link_unlink.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/user/proactive_refresh.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/user/reauthenticate.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/user/reload.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/user/token_manager.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/user/user_credential_impl.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/user/user_impl.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/user/user_metadata.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/assert.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/browser.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/delay.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/emulator.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/event_id.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/fetch_provider.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/handler.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/instantiator.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/location.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/log.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/navigator.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/providers.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/resolver.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/time.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/validate_origin.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/core/util/version.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/index.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/mfa/assertions/totp.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/mfa/index.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/mfa/mfa_assertion.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/mfa/mfa_error.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/mfa/mfa_info.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/mfa/mfa_resolver.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/mfa/mfa_session.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/mfa/mfa_user.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/model/application_verifier.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/model/auth.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/model/enum_maps.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/model/enums.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/model/id_token.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/model/password_policy.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/model/popup_redirect.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/model/public_types.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/model/user.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/auth_window.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/iframe/gapi.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/iframe/gapi.iframes.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/iframe/iframe.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/index.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/load_js.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/messagechannel/index.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/messagechannel/promise.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/messagechannel/receiver.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/messagechannel/sender.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/mfa/assertions/phone.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/persistence/browser.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/persistence/cookie_storage.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/persistence/indexed_db.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/persistence/local_storage.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/persistence/session_storage.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/popup_redirect.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/providers/phone.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/recaptcha/recaptcha.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/recaptcha/recaptcha_loader.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/recaptcha/recaptcha_mock.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/recaptcha/recaptcha_verifier.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/strategies/phone.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/strategies/popup.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/strategies/redirect.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/util/popup.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_browser/util/worker.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_cordova/plugins.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_cordova/popup_redirect/events.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_cordova/popup_redirect/popup_redirect.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_cordova/popup_redirect/utils.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_cordova/strategies/redirect.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_node/index.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/src/platform_react_native/persistence/react_native.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/api/helper.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/delay.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/erroring_unavailable_persistence.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/fake_service_worker.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/id_token_response.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/iframe_event.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/integration/emulator_rest_helpers.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/integration/helpers.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/integration/settings.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/jwt.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/mock_auth.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/mock_auth_credential.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/mock_fetch.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/mock_popup_redirect_resolver.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/redirect_persistence.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/helpers/timeout_stub.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/integration/flows/middleware_test_generator.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/integration/webdriver/util/auth_driver.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/integration/webdriver/util/functions.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/integration/webdriver/util/idp_page.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/integration/webdriver/util/js_load_condition.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/integration/webdriver/util/test_runner.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/integration/webdriver/util/test_server.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/test/integration/webdriver/util/ui_page.d.ts +0 -0
- /package/dist/{web-extension-esm2017 → web-extension-esm}/tsdoc-metadata.json +0 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { SDK_VERSION, _isFirebaseServerApp, _getProvider, _registerComponent, registerVersion, getApp } from '@firebase/app';
|
|
2
2
|
import { ErrorFactory, isBrowserExtension, isMobileCordova, isReactNative, FirebaseError, querystring, isCloudflareWorker, isCloudWorkstation, getModularInstance, base64Decode, getUA, isIE, createSubscribe, deepEqual, pingServer, updateEmulatorBanner, querystringDecode, extractQuerystring, getDefaultEmulatorHost } from '@firebase/util';
|
|
3
|
-
import { __rest } from 'tslib';
|
|
4
3
|
import { Component } from '@firebase/component';
|
|
5
4
|
import { Logger, LogLevel } from '@firebase/logger';
|
|
6
5
|
|
|
@@ -477,7 +476,10 @@ function _createError(authOrCode, ...rest) {
|
|
|
477
476
|
return createErrorInternal(authOrCode, ...rest);
|
|
478
477
|
}
|
|
479
478
|
function _errorWithCustomMessage(auth, code, message) {
|
|
480
|
-
const errorMap =
|
|
479
|
+
const errorMap = {
|
|
480
|
+
...prodErrorMap(),
|
|
481
|
+
[code]: message
|
|
482
|
+
};
|
|
481
483
|
const factory = new ErrorFactory('auth', 'Firebase', errorMap);
|
|
482
484
|
return factory.create(code, {
|
|
483
485
|
appName: auth.name
|
|
@@ -548,15 +550,13 @@ function debugAssert(assertion, message) {
|
|
|
548
550
|
* limitations under the License.
|
|
549
551
|
*/
|
|
550
552
|
function _getCurrentUrl() {
|
|
551
|
-
|
|
552
|
-
return (typeof self !== 'undefined' && ((_a = self.location) === null || _a === void 0 ? void 0 : _a.href)) || '';
|
|
553
|
+
return (typeof self !== 'undefined' && self.location?.href) || '';
|
|
553
554
|
}
|
|
554
555
|
function _isHttpOrHttps() {
|
|
555
556
|
return _getCurrentScheme() === 'http:' || _getCurrentScheme() === 'https:';
|
|
556
557
|
}
|
|
557
558
|
function _getCurrentScheme() {
|
|
558
|
-
|
|
559
|
-
return (typeof self !== 'undefined' && ((_a = self.location) === null || _a === void 0 ? void 0 : _a.protocol)) || null;
|
|
559
|
+
return (typeof self !== 'undefined' && self.location?.protocol) || null;
|
|
560
560
|
}
|
|
561
561
|
|
|
562
562
|
/**
|
|
@@ -870,7 +870,10 @@ const CookieAuthProxiedEndpoints = [
|
|
|
870
870
|
const DEFAULT_API_TIMEOUT_MS = new Delay(30000, 60000);
|
|
871
871
|
function _addTidIfNecessary(auth, request) {
|
|
872
872
|
if (auth.tenantId && !request.tenantId) {
|
|
873
|
-
return
|
|
873
|
+
return {
|
|
874
|
+
...request,
|
|
875
|
+
tenantId: auth.tenantId
|
|
876
|
+
};
|
|
874
877
|
}
|
|
875
878
|
return request;
|
|
876
879
|
}
|
|
@@ -888,14 +891,20 @@ async function _performApiRequest(auth, method, path, request, customErrorMap =
|
|
|
888
891
|
};
|
|
889
892
|
}
|
|
890
893
|
}
|
|
891
|
-
const query = querystring(
|
|
894
|
+
const query = querystring({
|
|
895
|
+
key: auth.config.apiKey,
|
|
896
|
+
...params
|
|
897
|
+
}).slice(1);
|
|
892
898
|
const headers = await auth._getAdditionalHeaders();
|
|
893
899
|
headers["Content-Type" /* HttpHeader.CONTENT_TYPE */] = 'application/json';
|
|
894
900
|
if (auth.languageCode) {
|
|
895
901
|
headers["X-Firebase-Locale" /* HttpHeader.X_FIREBASE_LOCALE */] = auth.languageCode;
|
|
896
902
|
}
|
|
897
|
-
const fetchArgs =
|
|
898
|
-
|
|
903
|
+
const fetchArgs = {
|
|
904
|
+
method,
|
|
905
|
+
headers,
|
|
906
|
+
...body
|
|
907
|
+
};
|
|
899
908
|
/* Security-conscious server-side frameworks tend to have built in mitigations for referrer
|
|
900
909
|
problems". See the Cloudflare GitHub issue #487: Error: The 'referrerPolicy' field on
|
|
901
910
|
'RequestInitializerDict' is not implemented."
|
|
@@ -911,7 +920,7 @@ async function _performApiRequest(auth, method, path, request, customErrorMap =
|
|
|
911
920
|
}
|
|
912
921
|
async function _performFetchWithErrorHandling(auth, customErrorMap, fetchFn) {
|
|
913
922
|
auth._canInitEmulator = false;
|
|
914
|
-
const errorMap =
|
|
923
|
+
const errorMap = { ...SERVER_ERROR_MAP, ...customErrorMap };
|
|
915
924
|
try {
|
|
916
925
|
const networkTimeout = new NetworkTimeout(auth);
|
|
917
926
|
const response = await Promise.race([
|
|
@@ -1245,7 +1254,7 @@ async function getIdTokenResult(user, forceRefresh = false) {
|
|
|
1245
1254
|
const claims = _parseToken(token);
|
|
1246
1255
|
_assert(claims && claims.exp && claims.auth_time && claims.iat, userInternal.auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
1247
1256
|
const firebase = typeof claims.firebase === 'object' ? claims.firebase : undefined;
|
|
1248
|
-
const signInProvider = firebase
|
|
1257
|
+
const signInProvider = firebase?.['sign_in_provider'];
|
|
1249
1258
|
return {
|
|
1250
1259
|
claims,
|
|
1251
1260
|
token,
|
|
@@ -1253,7 +1262,7 @@ async function getIdTokenResult(user, forceRefresh = false) {
|
|
|
1253
1262
|
issuedAtTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.iat)),
|
|
1254
1263
|
expirationTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.exp)),
|
|
1255
1264
|
signInProvider: signInProvider || null,
|
|
1256
|
-
signInSecondFactor:
|
|
1265
|
+
signInSecondFactor: firebase?.['sign_in_second_factor'] || null
|
|
1257
1266
|
};
|
|
1258
1267
|
}
|
|
1259
1268
|
function secondsStringToMilliseconds(seconds) {
|
|
@@ -1276,7 +1285,7 @@ function _parseToken(token) {
|
|
|
1276
1285
|
return JSON.parse(decoded);
|
|
1277
1286
|
}
|
|
1278
1287
|
catch (e) {
|
|
1279
|
-
_logError('Caught error parsing JWT payload as JSON', e
|
|
1288
|
+
_logError('Caught error parsing JWT payload as JSON', e?.toString());
|
|
1280
1289
|
return null;
|
|
1281
1290
|
}
|
|
1282
1291
|
}
|
|
@@ -1372,7 +1381,6 @@ class ProactiveRefresh {
|
|
|
1372
1381
|
}
|
|
1373
1382
|
}
|
|
1374
1383
|
getInterval(wasError) {
|
|
1375
|
-
var _a;
|
|
1376
1384
|
if (wasError) {
|
|
1377
1385
|
const interval = this.errorBackoff;
|
|
1378
1386
|
this.errorBackoff = Math.min(this.errorBackoff * 2, 960000 /* Duration.RETRY_BACKOFF_MAX */);
|
|
@@ -1381,7 +1389,7 @@ class ProactiveRefresh {
|
|
|
1381
1389
|
else {
|
|
1382
1390
|
// Reset the error backoff
|
|
1383
1391
|
this.errorBackoff = 30000 /* Duration.RETRY_BACKOFF_MIN */;
|
|
1384
|
-
const expTime =
|
|
1392
|
+
const expTime = this.user.stsTokenManager.expirationTime ?? 0;
|
|
1385
1393
|
const interval = expTime - Date.now() - 300000 /* Duration.OFFSET */;
|
|
1386
1394
|
return Math.max(0, interval);
|
|
1387
1395
|
}
|
|
@@ -1402,7 +1410,7 @@ class ProactiveRefresh {
|
|
|
1402
1410
|
}
|
|
1403
1411
|
catch (e) {
|
|
1404
1412
|
// Only retry on network errors
|
|
1405
|
-
if (
|
|
1413
|
+
if (e?.code ===
|
|
1406
1414
|
`auth/${"network-request-failed" /* AuthErrorCode.NETWORK_REQUEST_FAILED */}`) {
|
|
1407
1415
|
this.schedule(/* wasError */ true);
|
|
1408
1416
|
}
|
|
@@ -1468,14 +1476,13 @@ class UserMetadata {
|
|
|
1468
1476
|
* limitations under the License.
|
|
1469
1477
|
*/
|
|
1470
1478
|
async function _reloadWithoutSaving(user) {
|
|
1471
|
-
var _a;
|
|
1472
1479
|
const auth = user.auth;
|
|
1473
1480
|
const idToken = await user.getIdToken();
|
|
1474
1481
|
const response = await _logoutIfInvalidated(user, getAccountInfo(auth, { idToken }));
|
|
1475
|
-
_assert(response
|
|
1482
|
+
_assert(response?.users.length, auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
1476
1483
|
const coreAccount = response.users[0];
|
|
1477
1484
|
user._notifyReloadListener(coreAccount);
|
|
1478
|
-
const newProviderData =
|
|
1485
|
+
const newProviderData = coreAccount.providerUserInfo?.length
|
|
1479
1486
|
? extractProviderData(coreAccount.providerUserInfo)
|
|
1480
1487
|
: [];
|
|
1481
1488
|
const providerData = mergeProviderData(user.providerData, newProviderData);
|
|
@@ -1485,7 +1492,7 @@ async function _reloadWithoutSaving(user) {
|
|
|
1485
1492
|
// On the other hand, if it was not anonymous before, it should never be
|
|
1486
1493
|
// considered anonymous now.
|
|
1487
1494
|
const oldIsAnonymous = user.isAnonymous;
|
|
1488
|
-
const newIsAnonymous = !(user.email && coreAccount.passwordHash) && !
|
|
1495
|
+
const newIsAnonymous = !(user.email && coreAccount.passwordHash) && !providerData?.length;
|
|
1489
1496
|
const isAnonymous = !oldIsAnonymous ? false : newIsAnonymous;
|
|
1490
1497
|
const updates = {
|
|
1491
1498
|
uid: coreAccount.localId,
|
|
@@ -1522,8 +1529,7 @@ function mergeProviderData(original, newData) {
|
|
|
1522
1529
|
return [...deduped, ...newData];
|
|
1523
1530
|
}
|
|
1524
1531
|
function extractProviderData(providers) {
|
|
1525
|
-
return providers.map((
|
|
1526
|
-
var { providerId } = _a, provider = __rest(_a, ["providerId"]);
|
|
1532
|
+
return providers.map(({ providerId, ...provider }) => {
|
|
1527
1533
|
return {
|
|
1528
1534
|
providerId,
|
|
1529
1535
|
uid: provider.rawId || '',
|
|
@@ -1715,8 +1721,7 @@ function assertStringOrUndefined(assertion, appName) {
|
|
|
1715
1721
|
_assert(typeof assertion === 'string' || typeof assertion === 'undefined', "internal-error" /* AuthErrorCode.INTERNAL_ERROR */, { appName });
|
|
1716
1722
|
}
|
|
1717
1723
|
class UserImpl {
|
|
1718
|
-
constructor(
|
|
1719
|
-
var { uid, auth, stsTokenManager } = _a, opt = __rest(_a, ["uid", "auth", "stsTokenManager"]);
|
|
1724
|
+
constructor({ uid, auth, stsTokenManager, ...opt }) {
|
|
1720
1725
|
// For the user object, provider is always Firebase.
|
|
1721
1726
|
this.providerId = "firebase" /* ProviderId.FIREBASE */;
|
|
1722
1727
|
this.proactiveRefresh = new ProactiveRefresh(this);
|
|
@@ -1764,12 +1769,16 @@ class UserImpl {
|
|
|
1764
1769
|
this.phoneNumber = user.phoneNumber;
|
|
1765
1770
|
this.isAnonymous = user.isAnonymous;
|
|
1766
1771
|
this.tenantId = user.tenantId;
|
|
1767
|
-
this.providerData = user.providerData.map(userInfo => (
|
|
1772
|
+
this.providerData = user.providerData.map(userInfo => ({ ...userInfo }));
|
|
1768
1773
|
this.metadata._copy(user.metadata);
|
|
1769
1774
|
this.stsTokenManager._assign(user.stsTokenManager);
|
|
1770
1775
|
}
|
|
1771
1776
|
_clone(auth) {
|
|
1772
|
-
const newUser = new UserImpl(
|
|
1777
|
+
const newUser = new UserImpl({
|
|
1778
|
+
...this,
|
|
1779
|
+
auth,
|
|
1780
|
+
stsTokenManager: this.stsTokenManager._clone()
|
|
1781
|
+
});
|
|
1773
1782
|
newUser.metadata._copy(this.metadata);
|
|
1774
1783
|
return newUser;
|
|
1775
1784
|
}
|
|
@@ -1824,26 +1833,40 @@ class UserImpl {
|
|
|
1824
1833
|
return this.auth.signOut();
|
|
1825
1834
|
}
|
|
1826
1835
|
toJSON() {
|
|
1827
|
-
return
|
|
1836
|
+
return {
|
|
1837
|
+
uid: this.uid,
|
|
1838
|
+
email: this.email || undefined,
|
|
1839
|
+
emailVerified: this.emailVerified,
|
|
1840
|
+
displayName: this.displayName || undefined,
|
|
1841
|
+
isAnonymous: this.isAnonymous,
|
|
1842
|
+
photoURL: this.photoURL || undefined,
|
|
1843
|
+
phoneNumber: this.phoneNumber || undefined,
|
|
1844
|
+
tenantId: this.tenantId || undefined,
|
|
1845
|
+
providerData: this.providerData.map(userInfo => ({ ...userInfo })),
|
|
1846
|
+
stsTokenManager: this.stsTokenManager.toJSON(),
|
|
1828
1847
|
// Redirect event ID must be maintained in case there is a pending
|
|
1829
1848
|
// redirect event.
|
|
1830
|
-
_redirectEventId: this._redirectEventId
|
|
1849
|
+
_redirectEventId: this._redirectEventId,
|
|
1850
|
+
...this.metadata.toJSON(),
|
|
1831
1851
|
// Required for compatibility with the legacy SDK (go/firebase-auth-sdk-persistence-parsing):
|
|
1832
|
-
apiKey: this.auth.config.apiKey,
|
|
1852
|
+
apiKey: this.auth.config.apiKey,
|
|
1853
|
+
appName: this.auth.name
|
|
1854
|
+
// Missing authDomain will be tolerated by the legacy SDK.
|
|
1855
|
+
// stsTokenManager.apiKey isn't actually required (despite the legacy SDK persisting it).
|
|
1856
|
+
};
|
|
1833
1857
|
}
|
|
1834
1858
|
get refreshToken() {
|
|
1835
1859
|
return this.stsTokenManager.refreshToken || '';
|
|
1836
1860
|
}
|
|
1837
1861
|
static _fromJSON(auth, object) {
|
|
1838
|
-
|
|
1839
|
-
const
|
|
1840
|
-
const
|
|
1841
|
-
const
|
|
1842
|
-
const
|
|
1843
|
-
const
|
|
1844
|
-
const
|
|
1845
|
-
const
|
|
1846
|
-
const lastLoginAt = (_h = object.lastLoginAt) !== null && _h !== void 0 ? _h : undefined;
|
|
1862
|
+
const displayName = object.displayName ?? undefined;
|
|
1863
|
+
const email = object.email ?? undefined;
|
|
1864
|
+
const phoneNumber = object.phoneNumber ?? undefined;
|
|
1865
|
+
const photoURL = object.photoURL ?? undefined;
|
|
1866
|
+
const tenantId = object.tenantId ?? undefined;
|
|
1867
|
+
const _redirectEventId = object._redirectEventId ?? undefined;
|
|
1868
|
+
const createdAt = object.createdAt ?? undefined;
|
|
1869
|
+
const lastLoginAt = object.lastLoginAt ?? undefined;
|
|
1847
1870
|
const { uid, emailVerified, isAnonymous, providerData, stsTokenManager: plainObjectTokenManager } = object;
|
|
1848
1871
|
_assert(uid && plainObjectTokenManager, auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
1849
1872
|
const stsTokenManager = StsTokenManager.fromJSON(this.name, plainObjectTokenManager);
|
|
@@ -1873,7 +1896,7 @@ class UserImpl {
|
|
|
1873
1896
|
lastLoginAt
|
|
1874
1897
|
});
|
|
1875
1898
|
if (providerData && Array.isArray(providerData)) {
|
|
1876
|
-
user.providerData = providerData.map(userInfo => (
|
|
1899
|
+
user.providerData = providerData.map(userInfo => ({ ...userInfo }));
|
|
1877
1900
|
}
|
|
1878
1901
|
if (_redirectEventId) {
|
|
1879
1902
|
user._redirectEventId = _redirectEventId;
|
|
@@ -1910,7 +1933,7 @@ class UserImpl {
|
|
|
1910
1933
|
const providerData = coreAccount.providerUserInfo !== undefined
|
|
1911
1934
|
? extractProviderData(coreAccount.providerUserInfo)
|
|
1912
1935
|
: [];
|
|
1913
|
-
const isAnonymous = !(coreAccount.email && coreAccount.passwordHash) && !
|
|
1936
|
+
const isAnonymous = !(coreAccount.email && coreAccount.passwordHash) && !providerData?.length;
|
|
1914
1937
|
const stsTokenManager = new StsTokenManager();
|
|
1915
1938
|
stsTokenManager.updateFromIdToken(idToken);
|
|
1916
1939
|
// Initialize the Firebase Auth user.
|
|
@@ -1932,7 +1955,7 @@ class UserImpl {
|
|
|
1932
1955
|
providerData,
|
|
1933
1956
|
metadata: new UserMetadata(coreAccount.createdAt, coreAccount.lastLoginAt),
|
|
1934
1957
|
isAnonymous: !(coreAccount.email && coreAccount.passwordHash) &&
|
|
1935
|
-
!
|
|
1958
|
+
!providerData?.length
|
|
1936
1959
|
};
|
|
1937
1960
|
Object.assign(user, updates);
|
|
1938
1961
|
return user;
|
|
@@ -2131,7 +2154,7 @@ class PersistenceUserManager {
|
|
|
2131
2154
|
break;
|
|
2132
2155
|
}
|
|
2133
2156
|
}
|
|
2134
|
-
catch
|
|
2157
|
+
catch { }
|
|
2135
2158
|
}
|
|
2136
2159
|
// If we find the user in a persistence that does support migration, use
|
|
2137
2160
|
// that migration path (of only persistences that support migration)
|
|
@@ -2154,7 +2177,7 @@ class PersistenceUserManager {
|
|
|
2154
2177
|
try {
|
|
2155
2178
|
await persistence._remove(key);
|
|
2156
2179
|
}
|
|
2157
|
-
catch
|
|
2180
|
+
catch { }
|
|
2158
2181
|
}
|
|
2159
2182
|
}));
|
|
2160
2183
|
return new PersistenceUserManager(selectedPersistence, auth, userKey);
|
|
@@ -2224,7 +2247,7 @@ function _getBrowserName(userAgent) {
|
|
|
2224
2247
|
// Most modern browsers have name/version at end of user agent string.
|
|
2225
2248
|
const re = /([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/;
|
|
2226
2249
|
const matches = userAgent.match(re);
|
|
2227
|
-
if (
|
|
2250
|
+
if (matches?.length === 2) {
|
|
2228
2251
|
return matches[1];
|
|
2229
2252
|
}
|
|
2230
2253
|
}
|
|
@@ -2392,7 +2415,7 @@ class AuthMiddlewareQueue {
|
|
|
2392
2415
|
}
|
|
2393
2416
|
}
|
|
2394
2417
|
throw this.auth._errorFactory.create("login-blocked" /* AuthErrorCode.LOGIN_BLOCKED */, {
|
|
2395
|
-
originalMessage: e
|
|
2418
|
+
originalMessage: e?.message
|
|
2396
2419
|
});
|
|
2397
2420
|
}
|
|
2398
2421
|
}
|
|
@@ -2450,13 +2473,12 @@ const MINIMUM_MIN_PASSWORD_LENGTH = 6;
|
|
|
2450
2473
|
*/
|
|
2451
2474
|
class PasswordPolicyImpl {
|
|
2452
2475
|
constructor(response) {
|
|
2453
|
-
var _a, _b, _c, _d;
|
|
2454
2476
|
// Only include custom strength options defined in the response.
|
|
2455
2477
|
const responseOptions = response.customStrengthOptions;
|
|
2456
2478
|
this.customStrengthOptions = {};
|
|
2457
2479
|
// TODO: Remove once the backend is updated to include the minimum min password length instead of undefined when there is no minimum length set.
|
|
2458
2480
|
this.customStrengthOptions.minPasswordLength =
|
|
2459
|
-
|
|
2481
|
+
responseOptions.minPasswordLength ?? MINIMUM_MIN_PASSWORD_LENGTH;
|
|
2460
2482
|
if (responseOptions.maxPasswordLength) {
|
|
2461
2483
|
this.customStrengthOptions.maxPasswordLength =
|
|
2462
2484
|
responseOptions.maxPasswordLength;
|
|
@@ -2483,12 +2505,11 @@ class PasswordPolicyImpl {
|
|
|
2483
2505
|
}
|
|
2484
2506
|
// Use an empty string if no non-alphanumeric characters are specified in the response.
|
|
2485
2507
|
this.allowedNonAlphanumericCharacters =
|
|
2486
|
-
|
|
2487
|
-
this.forceUpgradeOnSignin =
|
|
2508
|
+
response.allowedNonAlphanumericCharacters?.join('') ?? '';
|
|
2509
|
+
this.forceUpgradeOnSignin = response.forceUpgradeOnSignin ?? false;
|
|
2488
2510
|
this.schemaVersion = response.schemaVersion;
|
|
2489
2511
|
}
|
|
2490
2512
|
validatePassword(password) {
|
|
2491
|
-
var _a, _b, _c, _d, _e, _f;
|
|
2492
2513
|
const status = {
|
|
2493
2514
|
isValid: true,
|
|
2494
2515
|
passwordPolicy: this
|
|
@@ -2497,12 +2518,12 @@ class PasswordPolicyImpl {
|
|
|
2497
2518
|
this.validatePasswordLengthOptions(password, status);
|
|
2498
2519
|
this.validatePasswordCharacterOptions(password, status);
|
|
2499
2520
|
// Combine the status into single isValid property.
|
|
2500
|
-
status.isValid && (status.isValid =
|
|
2501
|
-
status.isValid && (status.isValid =
|
|
2502
|
-
status.isValid && (status.isValid =
|
|
2503
|
-
status.isValid && (status.isValid =
|
|
2504
|
-
status.isValid && (status.isValid =
|
|
2505
|
-
status.isValid && (status.isValid =
|
|
2521
|
+
status.isValid && (status.isValid = status.meetsMinPasswordLength ?? true);
|
|
2522
|
+
status.isValid && (status.isValid = status.meetsMaxPasswordLength ?? true);
|
|
2523
|
+
status.isValid && (status.isValid = status.containsLowercaseLetter ?? true);
|
|
2524
|
+
status.isValid && (status.isValid = status.containsUppercaseLetter ?? true);
|
|
2525
|
+
status.isValid && (status.isValid = status.containsNumericCharacter ?? true);
|
|
2526
|
+
status.isValid && (status.isValid = status.containsNonAlphanumericCharacter ?? true);
|
|
2506
2527
|
return status;
|
|
2507
2528
|
}
|
|
2508
2529
|
/**
|
|
@@ -2639,18 +2660,17 @@ class AuthImpl {
|
|
|
2639
2660
|
// Have to check for app deletion throughout initialization (after each
|
|
2640
2661
|
// promise resolution)
|
|
2641
2662
|
this._initializationPromise = this.queue(async () => {
|
|
2642
|
-
var _a, _b, _c;
|
|
2643
2663
|
if (this._deleted) {
|
|
2644
2664
|
return;
|
|
2645
2665
|
}
|
|
2646
2666
|
this.persistenceManager = await PersistenceUserManager.create(this, persistenceHierarchy);
|
|
2647
|
-
|
|
2667
|
+
this._resolvePersistenceManagerAvailable?.();
|
|
2648
2668
|
if (this._deleted) {
|
|
2649
2669
|
return;
|
|
2650
2670
|
}
|
|
2651
2671
|
// Initialize the resolver early if necessary (only applicable to web:
|
|
2652
2672
|
// this will cause the iframe to load immediately in certain cases)
|
|
2653
|
-
if (
|
|
2673
|
+
if (this._popupRedirectResolver?._shouldInitProactively) {
|
|
2654
2674
|
// If this fails, don't halt auth loading
|
|
2655
2675
|
try {
|
|
2656
2676
|
await this._popupRedirectResolver._initialize(this);
|
|
@@ -2660,7 +2680,7 @@ class AuthImpl {
|
|
|
2660
2680
|
}
|
|
2661
2681
|
}
|
|
2662
2682
|
await this.initializeCurrentUser(popupRedirectResolver);
|
|
2663
|
-
this.lastNotifiedUid =
|
|
2683
|
+
this.lastNotifiedUid = this.currentUser?.uid || null;
|
|
2664
2684
|
if (this._deleted) {
|
|
2665
2685
|
return;
|
|
2666
2686
|
}
|
|
@@ -2705,7 +2725,6 @@ class AuthImpl {
|
|
|
2705
2725
|
}
|
|
2706
2726
|
}
|
|
2707
2727
|
async initializeCurrentUser(popupRedirectResolver) {
|
|
2708
|
-
var _a;
|
|
2709
2728
|
if (_isFirebaseServerApp(this.app)) {
|
|
2710
2729
|
const idToken = this.app.settings.authIdToken;
|
|
2711
2730
|
if (idToken) {
|
|
@@ -2725,15 +2744,15 @@ class AuthImpl {
|
|
|
2725
2744
|
let needsTocheckMiddleware = false;
|
|
2726
2745
|
if (popupRedirectResolver && this.config.authDomain) {
|
|
2727
2746
|
await this.getOrInitRedirectPersistenceManager();
|
|
2728
|
-
const redirectUserEventId =
|
|
2729
|
-
const storedUserEventId = futureCurrentUser
|
|
2747
|
+
const redirectUserEventId = this.redirectUser?._redirectEventId;
|
|
2748
|
+
const storedUserEventId = futureCurrentUser?._redirectEventId;
|
|
2730
2749
|
const result = await this.tryRedirectSignIn(popupRedirectResolver);
|
|
2731
2750
|
// If the stored user (i.e. the old "currentUser") has a redirectId that
|
|
2732
2751
|
// matches the redirect user, then we want to initially sign in with the
|
|
2733
2752
|
// new user object from result.
|
|
2734
2753
|
// TODO(samgho): More thoroughly test all of this
|
|
2735
2754
|
if ((!redirectUserEventId || redirectUserEventId === storedUserEventId) &&
|
|
2736
|
-
|
|
2755
|
+
result?.user) {
|
|
2737
2756
|
futureCurrentUser = result.user;
|
|
2738
2757
|
needsTocheckMiddleware = true;
|
|
2739
2758
|
}
|
|
@@ -2808,7 +2827,7 @@ class AuthImpl {
|
|
|
2808
2827
|
await _reloadWithoutSaving(user);
|
|
2809
2828
|
}
|
|
2810
2829
|
catch (e) {
|
|
2811
|
-
if (
|
|
2830
|
+
if (e?.code !==
|
|
2812
2831
|
`auth/${"network-request-failed" /* AuthErrorCode.NETWORK_REQUEST_FAILED */}`) {
|
|
2813
2832
|
// Something's wrong with the user's token. Log them out and remove
|
|
2814
2833
|
// them from storage
|
|
@@ -2965,12 +2984,11 @@ class AuthImpl {
|
|
|
2965
2984
|
}
|
|
2966
2985
|
}
|
|
2967
2986
|
toJSON() {
|
|
2968
|
-
var _a;
|
|
2969
2987
|
return {
|
|
2970
2988
|
apiKey: this.config.apiKey,
|
|
2971
2989
|
authDomain: this.config.authDomain,
|
|
2972
2990
|
appName: this.name,
|
|
2973
|
-
currentUser:
|
|
2991
|
+
currentUser: this._currentUser?.toJSON()
|
|
2974
2992
|
};
|
|
2975
2993
|
}
|
|
2976
2994
|
async _setRedirectUser(user, popupRedirectResolver) {
|
|
@@ -2991,16 +3009,15 @@ class AuthImpl {
|
|
|
2991
3009
|
return this.redirectPersistenceManager;
|
|
2992
3010
|
}
|
|
2993
3011
|
async _redirectUserForId(id) {
|
|
2994
|
-
var _a, _b;
|
|
2995
3012
|
// Make sure we've cleared any pending persistence actions if we're not in
|
|
2996
3013
|
// the initializer
|
|
2997
3014
|
if (this._isInitialized) {
|
|
2998
3015
|
await this.queue(async () => { });
|
|
2999
3016
|
}
|
|
3000
|
-
if (
|
|
3017
|
+
if (this._currentUser?._redirectEventId === id) {
|
|
3001
3018
|
return this._currentUser;
|
|
3002
3019
|
}
|
|
3003
|
-
if (
|
|
3020
|
+
if (this.redirectUser?._redirectEventId === id) {
|
|
3004
3021
|
return this.redirectUser;
|
|
3005
3022
|
}
|
|
3006
3023
|
return null;
|
|
@@ -3036,12 +3053,11 @@ class AuthImpl {
|
|
|
3036
3053
|
return this.currentUser;
|
|
3037
3054
|
}
|
|
3038
3055
|
notifyAuthListeners() {
|
|
3039
|
-
var _a, _b;
|
|
3040
3056
|
if (!this._isInitialized) {
|
|
3041
3057
|
return;
|
|
3042
3058
|
}
|
|
3043
3059
|
this.idTokenSubscription.next(this.currentUser);
|
|
3044
|
-
const currentUid =
|
|
3060
|
+
const currentUid = this.currentUser?.uid ?? null;
|
|
3045
3061
|
if (this.lastNotifiedUid !== currentUid) {
|
|
3046
3062
|
this.lastNotifiedUid = currentUid;
|
|
3047
3063
|
this.authStateSubscription.next(this.currentUser);
|
|
@@ -3126,7 +3142,6 @@ class AuthImpl {
|
|
|
3126
3142
|
return this.frameworks;
|
|
3127
3143
|
}
|
|
3128
3144
|
async _getAdditionalHeaders() {
|
|
3129
|
-
var _a;
|
|
3130
3145
|
// Additional headers on every request
|
|
3131
3146
|
const headers = {
|
|
3132
3147
|
["X-Client-Version" /* HttpHeader.X_CLIENT_VERSION */]: this.clientVersion
|
|
@@ -3135,10 +3150,11 @@ class AuthImpl {
|
|
|
3135
3150
|
headers["X-Firebase-gmpid" /* HttpHeader.X_FIREBASE_GMPID */] = this.app.options.appId;
|
|
3136
3151
|
}
|
|
3137
3152
|
// If the heartbeat service exists, add the heartbeat string
|
|
3138
|
-
const heartbeatsHeader = await
|
|
3153
|
+
const heartbeatsHeader = await this.heartbeatServiceProvider
|
|
3139
3154
|
.getImmediate({
|
|
3140
3155
|
optional: true
|
|
3141
|
-
})
|
|
3156
|
+
})
|
|
3157
|
+
?.getHeartbeatsHeader();
|
|
3142
3158
|
if (heartbeatsHeader) {
|
|
3143
3159
|
headers["X-Firebase-Client" /* HttpHeader.X_FIREBASE_CLIENT */] = heartbeatsHeader;
|
|
3144
3160
|
}
|
|
@@ -3150,20 +3166,20 @@ class AuthImpl {
|
|
|
3150
3166
|
return headers;
|
|
3151
3167
|
}
|
|
3152
3168
|
async _getAppCheckToken() {
|
|
3153
|
-
var _a;
|
|
3154
3169
|
if (_isFirebaseServerApp(this.app) && this.app.settings.appCheckToken) {
|
|
3155
3170
|
return this.app.settings.appCheckToken;
|
|
3156
3171
|
}
|
|
3157
|
-
const appCheckTokenResult = await
|
|
3158
|
-
.getImmediate({ optional: true })
|
|
3159
|
-
|
|
3172
|
+
const appCheckTokenResult = await this.appCheckServiceProvider
|
|
3173
|
+
.getImmediate({ optional: true })
|
|
3174
|
+
?.getToken();
|
|
3175
|
+
if (appCheckTokenResult?.error) {
|
|
3160
3176
|
// Context: appCheck.getToken() will never throw even if an error happened.
|
|
3161
3177
|
// In the error case, a dummy token will be returned along with an error field describing
|
|
3162
3178
|
// the error. In general, we shouldn't care about the error condition and just use
|
|
3163
3179
|
// the token (actual or dummy) to send requests.
|
|
3164
3180
|
_logWarn(`Error while retrieving App Check token: ${appCheckTokenResult.error}`);
|
|
3165
3181
|
}
|
|
3166
|
-
return appCheckTokenResult
|
|
3182
|
+
return appCheckTokenResult?.token;
|
|
3167
3183
|
}
|
|
3168
3184
|
}
|
|
3169
3185
|
/**
|
|
@@ -3393,7 +3409,7 @@ async function injectRecaptchaFields(auth, request, action, isCaptchaResp = fals
|
|
|
3393
3409
|
captchaResponse = await verifier.verify(action, true);
|
|
3394
3410
|
}
|
|
3395
3411
|
}
|
|
3396
|
-
const newRequest =
|
|
3412
|
+
const newRequest = { ...request };
|
|
3397
3413
|
if (action === "mfaSmsEnrollment" /* RecaptchaActionName.MFA_SMS_ENROLLMENT */ ||
|
|
3398
3414
|
action === "mfaSmsSignIn" /* RecaptchaActionName.MFA_SMS_SIGNIN */) {
|
|
3399
3415
|
if ('phoneEnrollmentInfo' in newRequest) {
|
|
@@ -3435,10 +3451,10 @@ async function injectRecaptchaFields(auth, request, action, isCaptchaResp = fals
|
|
|
3435
3451
|
return newRequest;
|
|
3436
3452
|
}
|
|
3437
3453
|
async function handleRecaptchaFlow(authInstance, request, actionName, actionMethod, recaptchaAuthProvider) {
|
|
3438
|
-
var _a, _b;
|
|
3439
3454
|
if (recaptchaAuthProvider === "EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */) {
|
|
3440
|
-
if (
|
|
3441
|
-
._getRecaptchaConfig()
|
|
3455
|
+
if (authInstance
|
|
3456
|
+
._getRecaptchaConfig()
|
|
3457
|
+
?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */)) {
|
|
3442
3458
|
const requestWithRecaptcha = await injectRecaptchaFields(authInstance, request, actionName, actionName === "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */);
|
|
3443
3459
|
return actionMethod(authInstance, requestWithRecaptcha);
|
|
3444
3460
|
}
|
|
@@ -3456,13 +3472,14 @@ async function handleRecaptchaFlow(authInstance, request, actionName, actionMeth
|
|
|
3456
3472
|
}
|
|
3457
3473
|
}
|
|
3458
3474
|
else if (recaptchaAuthProvider === "PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */) {
|
|
3459
|
-
if (
|
|
3460
|
-
._getRecaptchaConfig()
|
|
3475
|
+
if (authInstance
|
|
3476
|
+
._getRecaptchaConfig()
|
|
3477
|
+
?.isProviderEnabled("PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */)) {
|
|
3461
3478
|
const requestWithRecaptcha = await injectRecaptchaFields(authInstance, request, actionName);
|
|
3462
3479
|
return actionMethod(authInstance, requestWithRecaptcha).catch(async (error) => {
|
|
3463
|
-
|
|
3464
|
-
|
|
3465
|
-
|
|
3480
|
+
if (authInstance
|
|
3481
|
+
._getRecaptchaConfig()
|
|
3482
|
+
?.getProviderEnforcementState("PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */) === "AUDIT" /* EnforcementState.AUDIT */) {
|
|
3466
3483
|
// AUDIT mode
|
|
3467
3484
|
if (error.code === `auth/${"missing-recaptcha-token" /* AuthErrorCode.MISSING_RECAPTCHA_TOKEN */}` ||
|
|
3468
3485
|
error.code === `auth/${"invalid-app-credential" /* AuthErrorCode.INVALID_APP_CREDENTIAL */}`) {
|
|
@@ -3559,7 +3576,7 @@ function initializeAuth(app, deps) {
|
|
|
3559
3576
|
if (provider.isInitialized()) {
|
|
3560
3577
|
const auth = provider.getImmediate();
|
|
3561
3578
|
const initialOptions = provider.getOptions();
|
|
3562
|
-
if (deepEqual(initialOptions, deps
|
|
3579
|
+
if (deepEqual(initialOptions, deps ?? {})) {
|
|
3563
3580
|
return auth;
|
|
3564
3581
|
}
|
|
3565
3582
|
else {
|
|
@@ -3570,15 +3587,15 @@ function initializeAuth(app, deps) {
|
|
|
3570
3587
|
return auth;
|
|
3571
3588
|
}
|
|
3572
3589
|
function _initializeAuthInstance(auth, deps) {
|
|
3573
|
-
const persistence =
|
|
3590
|
+
const persistence = deps?.persistence || [];
|
|
3574
3591
|
const hierarchy = (Array.isArray(persistence) ? persistence : [persistence]).map(_getInstance);
|
|
3575
|
-
if (deps
|
|
3592
|
+
if (deps?.errorMap) {
|
|
3576
3593
|
auth._updateErrorMap(deps.errorMap);
|
|
3577
3594
|
}
|
|
3578
3595
|
// This promise is intended to float; auth initialization happens in the
|
|
3579
3596
|
// background, meanwhile the auth object may be used by the app.
|
|
3580
3597
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
3581
|
-
auth._initializeWithPersistence(hierarchy, deps
|
|
3598
|
+
auth._initializeWithPersistence(hierarchy, deps?.popupRedirectResolver);
|
|
3582
3599
|
}
|
|
3583
3600
|
|
|
3584
3601
|
/**
|
|
@@ -3606,7 +3623,7 @@ function _initializeAuthInstance(auth, deps) {
|
|
|
3606
3623
|
function connectAuthEmulator(auth, url, options) {
|
|
3607
3624
|
const authInternal = _castAuth(auth);
|
|
3608
3625
|
_assert(/^https?:\/\//.test(url), authInternal, "invalid-emulator-scheme" /* AuthErrorCode.INVALID_EMULATOR_SCHEME */);
|
|
3609
|
-
const disableWarnings = !!
|
|
3626
|
+
const disableWarnings = !!options?.disableWarnings;
|
|
3610
3627
|
const protocol = extractProtocol(url);
|
|
3611
3628
|
const { host, port } = extractHostAndPort(url);
|
|
3612
3629
|
const portStr = port === null ? '' : `:${port}`;
|
|
@@ -3932,7 +3949,7 @@ class EmailAuthCredential extends AuthCredential {
|
|
|
3932
3949
|
*/
|
|
3933
3950
|
static fromJSON(json) {
|
|
3934
3951
|
const obj = typeof json === 'string' ? JSON.parse(json) : json;
|
|
3935
|
-
if (
|
|
3952
|
+
if (obj?.email && obj?.password) {
|
|
3936
3953
|
if (obj.signInMethod === "password" /* SignInMethod.EMAIL_PASSWORD */) {
|
|
3937
3954
|
return this._fromEmailAndPassword(obj.email, obj.password);
|
|
3938
3955
|
}
|
|
@@ -4092,7 +4109,7 @@ class OAuthCredential extends AuthCredential {
|
|
|
4092
4109
|
*/
|
|
4093
4110
|
static fromJSON(json) {
|
|
4094
4111
|
const obj = typeof json === 'string' ? JSON.parse(json) : json;
|
|
4095
|
-
const { providerId, signInMethod
|
|
4112
|
+
const { providerId, signInMethod, ...rest } = obj;
|
|
4096
4113
|
if (!providerId || !signInMethod) {
|
|
4097
4114
|
return null;
|
|
4098
4115
|
}
|
|
@@ -4180,7 +4197,10 @@ const VERIFY_PHONE_NUMBER_FOR_EXISTING_ERROR_MAP_ = {
|
|
|
4180
4197
|
["USER_NOT_FOUND" /* ServerError.USER_NOT_FOUND */]: "user-not-found" /* AuthErrorCode.USER_DELETED */
|
|
4181
4198
|
};
|
|
4182
4199
|
async function verifyPhoneNumberForExisting(auth, request) {
|
|
4183
|
-
const apiRequest =
|
|
4200
|
+
const apiRequest = {
|
|
4201
|
+
...request,
|
|
4202
|
+
operation: 'REAUTH'
|
|
4203
|
+
};
|
|
4184
4204
|
return _performSignInRequest(auth, "POST" /* HttpMethod.POST */, "/v1/accounts:signInWithPhoneNumber" /* Endpoint.SIGN_IN_WITH_PHONE_NUMBER */, _addTidIfNecessary(auth, apiRequest), VERIFY_PHONE_NUMBER_FOR_EXISTING_ERROR_MAP_);
|
|
4185
4205
|
}
|
|
4186
4206
|
|
|
@@ -4224,7 +4244,10 @@ class PhoneAuthCredential extends AuthCredential {
|
|
|
4224
4244
|
}
|
|
4225
4245
|
/** @internal */
|
|
4226
4246
|
_linkToIdToken(auth, idToken) {
|
|
4227
|
-
return linkWithPhoneNumber$1(auth,
|
|
4247
|
+
return linkWithPhoneNumber$1(auth, {
|
|
4248
|
+
idToken,
|
|
4249
|
+
...this._makeVerificationRequest()
|
|
4250
|
+
});
|
|
4228
4251
|
}
|
|
4229
4252
|
/** @internal */
|
|
4230
4253
|
_getReauthenticationResolver(auth) {
|
|
@@ -4352,19 +4375,18 @@ class ActionCodeURL {
|
|
|
4352
4375
|
* @internal
|
|
4353
4376
|
*/
|
|
4354
4377
|
constructor(actionLink) {
|
|
4355
|
-
var _a, _b, _c, _d, _e, _f;
|
|
4356
4378
|
const searchParams = querystringDecode(extractQuerystring(actionLink));
|
|
4357
|
-
const apiKey =
|
|
4358
|
-
const code =
|
|
4359
|
-
const operation = parseMode(
|
|
4379
|
+
const apiKey = searchParams["apiKey" /* QueryField.API_KEY */] ?? null;
|
|
4380
|
+
const code = searchParams["oobCode" /* QueryField.CODE */] ?? null;
|
|
4381
|
+
const operation = parseMode(searchParams["mode" /* QueryField.MODE */] ?? null);
|
|
4360
4382
|
// Validate API key, code and mode.
|
|
4361
4383
|
_assert(apiKey && code && operation, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
4362
4384
|
this.apiKey = apiKey;
|
|
4363
4385
|
this.operation = operation;
|
|
4364
4386
|
this.code = code;
|
|
4365
|
-
this.continueUrl =
|
|
4366
|
-
this.languageCode =
|
|
4367
|
-
this.tenantId =
|
|
4387
|
+
this.continueUrl = searchParams["continueUrl" /* QueryField.CONTINUE_URL */] ?? null;
|
|
4388
|
+
this.languageCode = searchParams["lang" /* QueryField.LANGUAGE_CODE */] ?? null;
|
|
4389
|
+
this.tenantId = searchParams["tenantId" /* QueryField.TENANT_ID */] ?? null;
|
|
4368
4390
|
}
|
|
4369
4391
|
/**
|
|
4370
4392
|
* Parses the email action link string and returns an {@link ActionCodeURL} if the link is valid,
|
|
@@ -4380,7 +4402,7 @@ class ActionCodeURL {
|
|
|
4380
4402
|
try {
|
|
4381
4403
|
return new ActionCodeURL(actionLink);
|
|
4382
4404
|
}
|
|
4383
|
-
catch
|
|
4405
|
+
catch {
|
|
4384
4406
|
return null;
|
|
4385
4407
|
}
|
|
4386
4408
|
}
|
|
@@ -4670,13 +4692,17 @@ class OAuthProvider extends BaseOAuthProvider {
|
|
|
4670
4692
|
* or the ID token string.
|
|
4671
4693
|
*/
|
|
4672
4694
|
credential(params) {
|
|
4673
|
-
return this._credential(
|
|
4695
|
+
return this._credential({ ...params, nonce: params.rawNonce });
|
|
4674
4696
|
}
|
|
4675
4697
|
/** An internal credential method that accepts more permissive options */
|
|
4676
4698
|
_credential(params) {
|
|
4677
4699
|
_assert(params.idToken || params.accessToken, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
4678
4700
|
// For OAuthCredential, sign in method is same as providerId.
|
|
4679
|
-
return OAuthCredential._fromParams(
|
|
4701
|
+
return OAuthCredential._fromParams({
|
|
4702
|
+
...params,
|
|
4703
|
+
providerId: this.providerId,
|
|
4704
|
+
signInMethod: this.providerId
|
|
4705
|
+
});
|
|
4680
4706
|
}
|
|
4681
4707
|
/**
|
|
4682
4708
|
* Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.
|
|
@@ -4828,7 +4854,7 @@ class FacebookAuthProvider extends BaseOAuthProvider {
|
|
|
4828
4854
|
try {
|
|
4829
4855
|
return FacebookAuthProvider.credential(tokenResponse.oauthAccessToken);
|
|
4830
4856
|
}
|
|
4831
|
-
catch
|
|
4857
|
+
catch {
|
|
4832
4858
|
return null;
|
|
4833
4859
|
}
|
|
4834
4860
|
}
|
|
@@ -4950,7 +4976,7 @@ class GoogleAuthProvider extends BaseOAuthProvider {
|
|
|
4950
4976
|
try {
|
|
4951
4977
|
return GoogleAuthProvider.credential(oauthIdToken, oauthAccessToken);
|
|
4952
4978
|
}
|
|
4953
|
-
catch
|
|
4979
|
+
catch {
|
|
4954
4980
|
return null;
|
|
4955
4981
|
}
|
|
4956
4982
|
}
|
|
@@ -5061,7 +5087,7 @@ class GithubAuthProvider extends BaseOAuthProvider {
|
|
|
5061
5087
|
try {
|
|
5062
5088
|
return GithubAuthProvider.credential(tokenResponse.oauthAccessToken);
|
|
5063
5089
|
}
|
|
5064
|
-
catch
|
|
5090
|
+
catch {
|
|
5065
5091
|
return null;
|
|
5066
5092
|
}
|
|
5067
5093
|
}
|
|
@@ -5345,7 +5371,7 @@ class TwitterAuthProvider extends BaseOAuthProvider {
|
|
|
5345
5371
|
try {
|
|
5346
5372
|
return TwitterAuthProvider.credential(oauthAccessToken, oauthTokenSecret);
|
|
5347
5373
|
}
|
|
5348
|
-
catch
|
|
5374
|
+
catch {
|
|
5349
5375
|
return null;
|
|
5350
5376
|
}
|
|
5351
5377
|
}
|
|
@@ -5461,13 +5487,12 @@ function providerIdForResponse(response) {
|
|
|
5461
5487
|
* @public
|
|
5462
5488
|
*/
|
|
5463
5489
|
async function signInAnonymously(auth) {
|
|
5464
|
-
var _a;
|
|
5465
5490
|
if (_isFirebaseServerApp(auth.app)) {
|
|
5466
5491
|
return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(auth));
|
|
5467
5492
|
}
|
|
5468
5493
|
const authInternal = _castAuth(auth);
|
|
5469
5494
|
await authInternal._initializationPromise;
|
|
5470
|
-
if (
|
|
5495
|
+
if (authInternal.currentUser?.isAnonymous) {
|
|
5471
5496
|
// If an anonymous user is already signed in, no need to sign them in again.
|
|
5472
5497
|
return new UserCredentialImpl({
|
|
5473
5498
|
user: authInternal.currentUser,
|
|
@@ -5501,7 +5526,6 @@ async function signInAnonymously(auth) {
|
|
|
5501
5526
|
*/
|
|
5502
5527
|
class MultiFactorError extends FirebaseError {
|
|
5503
5528
|
constructor(auth, error, operationType, user) {
|
|
5504
|
-
var _a;
|
|
5505
5529
|
super(error.code, error.message);
|
|
5506
5530
|
this.operationType = operationType;
|
|
5507
5531
|
this.user = user;
|
|
@@ -5509,7 +5533,7 @@ class MultiFactorError extends FirebaseError {
|
|
|
5509
5533
|
Object.setPrototypeOf(this, MultiFactorError.prototype);
|
|
5510
5534
|
this.customData = {
|
|
5511
5535
|
appName: auth.name,
|
|
5512
|
-
tenantId:
|
|
5536
|
+
tenantId: auth.tenantId ?? undefined,
|
|
5513
5537
|
_serverResponse: error.customData._serverResponse,
|
|
5514
5538
|
operationType
|
|
5515
5539
|
};
|
|
@@ -5640,7 +5664,7 @@ async function _reauthenticate(user, credential, bypassAuthState = false) {
|
|
|
5640
5664
|
}
|
|
5641
5665
|
catch (e) {
|
|
5642
5666
|
// Convert user deleted error into user mismatch
|
|
5643
|
-
if (
|
|
5667
|
+
if (e?.code === `auth/${"user-not-found" /* AuthErrorCode.USER_DELETED */}`) {
|
|
5644
5668
|
_fail(auth, "user-mismatch" /* AuthErrorCode.USER_MISMATCH */);
|
|
5645
5669
|
}
|
|
5646
5670
|
throw e;
|
|
@@ -5865,8 +5889,7 @@ class TotpMultiFactorInfoImpl extends MultiFactorInfoImpl {
|
|
|
5865
5889
|
* limitations under the License.
|
|
5866
5890
|
*/
|
|
5867
5891
|
function _setActionCodeSettingsOnRequest(auth, request, actionCodeSettings) {
|
|
5868
|
-
|
|
5869
|
-
_assert(((_a = actionCodeSettings.url) === null || _a === void 0 ? void 0 : _a.length) > 0, auth, "invalid-continue-uri" /* AuthErrorCode.INVALID_CONTINUE_URI */);
|
|
5892
|
+
_assert(actionCodeSettings.url?.length > 0, auth, "invalid-continue-uri" /* AuthErrorCode.INVALID_CONTINUE_URI */);
|
|
5870
5893
|
_assert(typeof actionCodeSettings.dynamicLinkDomain === 'undefined' ||
|
|
5871
5894
|
actionCodeSettings.dynamicLinkDomain.length > 0, auth, "invalid-dynamic-link-domain" /* AuthErrorCode.INVALID_DYNAMIC_LINK_DOMAIN */);
|
|
5872
5895
|
_assert(typeof actionCodeSettings.linkDomain === 'undefined' ||
|
|
@@ -6227,7 +6250,7 @@ async function sendSignInLinkToEmail(auth, email, actionCodeSettings) {
|
|
|
6227
6250
|
*/
|
|
6228
6251
|
function isSignInWithEmailLink(auth, emailLink) {
|
|
6229
6252
|
const actionCodeUrl = ActionCodeURL.parseLink(emailLink);
|
|
6230
|
-
return
|
|
6253
|
+
return actionCodeUrl?.operation === "EMAIL_SIGNIN" /* ActionCodeOperation.EMAIL_SIGNIN */;
|
|
6231
6254
|
}
|
|
6232
6255
|
/**
|
|
6233
6256
|
* Asynchronously signs in using an email and sign-in email link.
|
|
@@ -6600,7 +6623,6 @@ async function updateEmailOrPassword(user, email, password) {
|
|
|
6600
6623
|
*
|
|
6601
6624
|
*/
|
|
6602
6625
|
function _fromIdTokenResponse(idTokenResponse) {
|
|
6603
|
-
var _a, _b;
|
|
6604
6626
|
if (!idTokenResponse) {
|
|
6605
6627
|
return null;
|
|
6606
6628
|
}
|
|
@@ -6610,8 +6632,8 @@ function _fromIdTokenResponse(idTokenResponse) {
|
|
|
6610
6632
|
: {};
|
|
6611
6633
|
const isNewUser = idTokenResponse.isNewUser ||
|
|
6612
6634
|
idTokenResponse.kind === "identitytoolkit#SignupNewUserResponse" /* IdTokenResponseKind.SignupNewUser */;
|
|
6613
|
-
if (!providerId &&
|
|
6614
|
-
const signInProvider =
|
|
6635
|
+
if (!providerId && idTokenResponse?.idToken) {
|
|
6636
|
+
const signInProvider = _parseToken(idTokenResponse.idToken)?.firebase?.['sign_in_provider'];
|
|
6615
6637
|
if (signInProvider) {
|
|
6616
6638
|
const filteredProviderId = signInProvider !== "anonymous" /* ProviderId.ANONYMOUS */ &&
|
|
6617
6639
|
signInProvider !== "custom" /* ProviderId.CUSTOM */
|
|
@@ -6660,7 +6682,7 @@ class FacebookAdditionalUserInfo extends GenericAdditionalUserInfo {
|
|
|
6660
6682
|
}
|
|
6661
6683
|
class GithubAdditionalUserInfo extends FederatedAdditionalUserInfoWithUsername {
|
|
6662
6684
|
constructor(isNewUser, profile) {
|
|
6663
|
-
super(isNewUser, "github.com" /* ProviderId.GITHUB */, profile, typeof
|
|
6685
|
+
super(isNewUser, "github.com" /* ProviderId.GITHUB */, profile, typeof profile?.login === 'string' ? profile?.login : null);
|
|
6664
6686
|
}
|
|
6665
6687
|
}
|
|
6666
6688
|
class GoogleAdditionalUserInfo extends GenericAdditionalUserInfo {
|
|
@@ -6960,12 +6982,11 @@ class MultiFactorSessionImpl {
|
|
|
6960
6982
|
};
|
|
6961
6983
|
}
|
|
6962
6984
|
static fromJSON(obj) {
|
|
6963
|
-
|
|
6964
|
-
|
|
6965
|
-
if ((_a = obj.multiFactorSession) === null || _a === void 0 ? void 0 : _a.pendingCredential) {
|
|
6985
|
+
if (obj?.multiFactorSession) {
|
|
6986
|
+
if (obj.multiFactorSession?.pendingCredential) {
|
|
6966
6987
|
return MultiFactorSessionImpl._fromMfaPendingCredential(obj.multiFactorSession.pendingCredential);
|
|
6967
6988
|
}
|
|
6968
|
-
else if (
|
|
6989
|
+
else if (obj.multiFactorSession?.idToken) {
|
|
6969
6990
|
return MultiFactorSessionImpl._fromIdtoken(obj.multiFactorSession.idToken);
|
|
6970
6991
|
}
|
|
6971
6992
|
}
|
|
@@ -7008,7 +7029,11 @@ class MultiFactorResolverImpl {
|
|
|
7008
7029
|
delete serverResponse.mfaInfo;
|
|
7009
7030
|
delete serverResponse.mfaPendingCredential;
|
|
7010
7031
|
// Use in the new token & refresh token in the old response
|
|
7011
|
-
const idTokenResponse =
|
|
7032
|
+
const idTokenResponse = {
|
|
7033
|
+
...serverResponse,
|
|
7034
|
+
idToken: mfaResponse.idToken,
|
|
7035
|
+
refreshToken: mfaResponse.refreshToken
|
|
7036
|
+
};
|
|
7012
7037
|
// TODO: we should collapse this switch statement into UserCredentialImpl._forOperation and have it support the SIGN_IN case
|
|
7013
7038
|
switch (error.operationType) {
|
|
7014
7039
|
case "signIn" /* OperationType.SIGN_IN */:
|
|
@@ -7039,11 +7064,10 @@ class MultiFactorResolverImpl {
|
|
|
7039
7064
|
* @public
|
|
7040
7065
|
*/
|
|
7041
7066
|
function getMultiFactorResolver(auth, error) {
|
|
7042
|
-
var _a;
|
|
7043
7067
|
const authModular = getModularInstance(auth);
|
|
7044
7068
|
const errorInternal = error;
|
|
7045
7069
|
_assert(error.customData.operationType, authModular, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
7046
|
-
_assert(
|
|
7070
|
+
_assert(errorInternal.customData._serverResponse?.mfaPendingCredential, authModular, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
7047
7071
|
return MultiFactorResolverImpl._fromError(authModular, errorInternal);
|
|
7048
7072
|
}
|
|
7049
7073
|
|
|
@@ -7143,7 +7167,7 @@ function multiFactor(user) {
|
|
|
7143
7167
|
}
|
|
7144
7168
|
|
|
7145
7169
|
var name = "@firebase/auth";
|
|
7146
|
-
var version = "1.10.
|
|
7170
|
+
var version = "1.10.8-canary.25b60fdaa";
|
|
7147
7171
|
|
|
7148
7172
|
/**
|
|
7149
7173
|
* @license
|
|
@@ -7167,9 +7191,8 @@ class AuthInterop {
|
|
|
7167
7191
|
this.internalListeners = new Map();
|
|
7168
7192
|
}
|
|
7169
7193
|
getUid() {
|
|
7170
|
-
var _a;
|
|
7171
7194
|
this.assertAuthConfigured();
|
|
7172
|
-
return
|
|
7195
|
+
return this.auth.currentUser?.uid || null;
|
|
7173
7196
|
}
|
|
7174
7197
|
async getToken(forceRefresh) {
|
|
7175
7198
|
this.assertAuthConfigured();
|
|
@@ -7186,7 +7209,7 @@ class AuthInterop {
|
|
|
7186
7209
|
return;
|
|
7187
7210
|
}
|
|
7188
7211
|
const unsubscribe = this.auth.onIdTokenChanged(user => {
|
|
7189
|
-
listener(
|
|
7212
|
+
listener(user?.stsTokenManager.accessToken || null);
|
|
7190
7213
|
});
|
|
7191
7214
|
this.internalListeners.set(listener, unsubscribe);
|
|
7192
7215
|
this.updateProactiveRefresh();
|
|
@@ -7285,8 +7308,8 @@ function registerAuth(clientPlatform) {
|
|
|
7285
7308
|
return (auth => new AuthInterop(auth))(auth);
|
|
7286
7309
|
}, "PRIVATE" /* ComponentType.PRIVATE */).setInstantiationMode("EXPLICIT" /* InstantiationMode.EXPLICIT */));
|
|
7287
7310
|
registerVersion(name, version, getVersionForPlatform(clientPlatform));
|
|
7288
|
-
// BUILD_TARGET will be replaced by values like
|
|
7289
|
-
registerVersion(name, version, '
|
|
7311
|
+
// BUILD_TARGET will be replaced by values like esm, cjs, etc during the compilation
|
|
7312
|
+
registerVersion(name, version, 'esm2020');
|
|
7290
7313
|
}
|
|
7291
7314
|
|
|
7292
7315
|
/**
|
|
@@ -7448,9 +7471,8 @@ class TotpMultiFactorGenerator {
|
|
|
7448
7471
|
* @returns A promise to {@link TotpSecret}.
|
|
7449
7472
|
*/
|
|
7450
7473
|
static async generateSecret(session) {
|
|
7451
|
-
var _a;
|
|
7452
7474
|
const mfaSession = session;
|
|
7453
|
-
_assert(typeof
|
|
7475
|
+
_assert(typeof mfaSession.user?.auth !== 'undefined', "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
7454
7476
|
const response = await startEnrollTotpMfa(mfaSession.user.auth, {
|
|
7455
7477
|
idToken: mfaSession.credential,
|
|
7456
7478
|
totpEnrollmentInfo: {}
|
|
@@ -7534,14 +7556,13 @@ class TotpSecret {
|
|
|
7534
7556
|
* @returns A QR code URL string.
|
|
7535
7557
|
*/
|
|
7536
7558
|
generateQrCodeUrl(accountName, issuer) {
|
|
7537
|
-
var _a;
|
|
7538
7559
|
let useDefaults = false;
|
|
7539
7560
|
if (_isEmptyString(accountName) || _isEmptyString(issuer)) {
|
|
7540
7561
|
useDefaults = true;
|
|
7541
7562
|
}
|
|
7542
7563
|
if (useDefaults) {
|
|
7543
7564
|
if (_isEmptyString(accountName)) {
|
|
7544
|
-
accountName =
|
|
7565
|
+
accountName = this.auth.currentUser?.email || 'unknownuser';
|
|
7545
7566
|
}
|
|
7546
7567
|
if (_isEmptyString(issuer)) {
|
|
7547
7568
|
issuer = this.auth.name;
|
|
@@ -7552,8 +7573,8 @@ class TotpSecret {
|
|
|
7552
7573
|
}
|
|
7553
7574
|
/** @internal */
|
|
7554
7575
|
function _isEmptyString(input) {
|
|
7555
|
-
return typeof input === 'undefined' ||
|
|
7576
|
+
return typeof input === 'undefined' || input?.length === 0;
|
|
7556
7577
|
}
|
|
7557
7578
|
|
|
7558
7579
|
export { SAMLAuthProvider as $, ActionCodeOperation as A, useDeviceLanguage as B, updateCurrentUser as C, signOut as D, revokeAccessToken as E, FactorId as F, deleteUser as G, debugErrorMap as H, prodErrorMap as I, AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY as J, initializeAuth as K, connectAuthEmulator as L, AuthCredential as M, EmailAuthCredential as N, OperationType as O, PhoneAuthProvider as P, OAuthCredential as Q, RecaptchaVerifier as R, SignInMethod as S, TotpMultiFactorGenerator as T, PhoneAuthCredential as U, inMemoryPersistence as V, EmailAuthProvider as W, FacebookAuthProvider as X, GoogleAuthProvider as Y, GithubAuthProvider as Z, OAuthProvider as _, browserCookiePersistence as a, TwitterAuthProvider as a0, signInAnonymously as a1, signInWithCredential as a2, linkWithCredential as a3, reauthenticateWithCredential as a4, signInWithCustomToken as a5, sendPasswordResetEmail as a6, confirmPasswordReset as a7, applyActionCode as a8, checkActionCode as a9, signInWithIdp as aA, _fail as aB, debugAssert as aC, _persistenceKeyName as aD, _serverAppCurrentUserOperationNotSupportedError as aE, _castAuth as aF, FederatedAuthProvider as aG, BaseOAuthProvider as aH, _emulatorUrl as aI, _performApiRequest as aJ, _isIOS as aK, _isAndroid as aL, _isIOS7Or8 as aM, _createError as aN, _isMobileBrowser as aO, _isIE10 as aP, UserImpl as aQ, AuthImpl as aR, _getClientVersion as aS, FetchProvider as aT, SAMLAuthCredential as aU, verifyPasswordResetCode as aa, createUserWithEmailAndPassword as ab, signInWithEmailAndPassword as ac, sendSignInLinkToEmail as ad, isSignInWithEmailLink as ae, signInWithEmailLink as af, fetchSignInMethodsForEmail as ag, sendEmailVerification as ah, verifyBeforeUpdateEmail as ai, ActionCodeURL as aj, parseActionCodeURL as ak, updateProfile as al, updateEmail as am, updatePassword as an, getIdToken as ao, getIdTokenResult as ap, unlink as aq, getAdditionalUserInfo as ar, reload as as, getMultiFactorResolver as at, multiFactor as au, _getInstance as av, _assert as aw, _signInWithCredential as ax, _reauthenticate as ay, _link as az, browserLocalPersistence as b, browserSessionPersistence as c, signInWithPopup as d, linkWithPopup as e, reauthenticateWithPopup as f, signInWithRedirect as g, linkWithRedirect as h, indexedDBLocalPersistence as i, reauthenticateWithRedirect as j, getRedirectResult as k, linkWithPhoneNumber as l, browserPopupRedirectResolver as m, PhoneMultiFactorGenerator as n, TotpSecret as o, getAuth as p, ProviderId as q, reauthenticateWithPhoneNumber as r, signInWithPhoneNumber as s, setPersistence as t, updatePhoneNumber as u, initializeRecaptchaConfig as v, validatePassword as w, onIdTokenChanged as x, beforeAuthStateChanged as y, onAuthStateChanged as z };
|
|
7559
|
-
//# sourceMappingURL=totp-
|
|
7580
|
+
//# sourceMappingURL=totp-dac3769c.js.map
|