@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
package/dist/index.webworker.js
CHANGED
|
@@ -2,7 +2,6 @@ import { SDK_VERSION, _getProvider, _isFirebaseServerApp, _registerComponent, re
|
|
|
2
2
|
import { ErrorFactory, deepEqual, getUA, isBrowserExtension, isMobileCordova, isReactNative, FirebaseError, querystring, isCloudflareWorker, isCloudWorkstation, getModularInstance, base64Decode, createSubscribe, pingServer, updateEmulatorBanner, querystringDecode, extractQuerystring } from '@firebase/util';
|
|
3
3
|
import { Logger, LogLevel } from '@firebase/logger';
|
|
4
4
|
import { Component } from '@firebase/component';
|
|
5
|
-
import { __rest } from 'tslib';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* @license
|
|
@@ -378,7 +377,10 @@ function _createError(authOrCode, ...rest) {
|
|
|
378
377
|
return createErrorInternal(authOrCode, ...rest);
|
|
379
378
|
}
|
|
380
379
|
function _errorWithCustomMessage(auth, code, message) {
|
|
381
|
-
const errorMap =
|
|
380
|
+
const errorMap = {
|
|
381
|
+
...prodErrorMap(),
|
|
382
|
+
[code]: message
|
|
383
|
+
};
|
|
382
384
|
const factory = new ErrorFactory('auth', 'Firebase', errorMap);
|
|
383
385
|
return factory.create(code, {
|
|
384
386
|
appName: auth.name
|
|
@@ -507,7 +509,7 @@ function initializeAuth(app, deps) {
|
|
|
507
509
|
if (provider.isInitialized()) {
|
|
508
510
|
const auth = provider.getImmediate();
|
|
509
511
|
const initialOptions = provider.getOptions();
|
|
510
|
-
if (deepEqual(initialOptions, deps
|
|
512
|
+
if (deepEqual(initialOptions, deps ?? {})) {
|
|
511
513
|
return auth;
|
|
512
514
|
}
|
|
513
515
|
else {
|
|
@@ -518,19 +520,19 @@ function initializeAuth(app, deps) {
|
|
|
518
520
|
return auth;
|
|
519
521
|
}
|
|
520
522
|
function _initializeAuthInstance(auth, deps) {
|
|
521
|
-
const persistence =
|
|
523
|
+
const persistence = deps?.persistence || [];
|
|
522
524
|
const hierarchy = (Array.isArray(persistence) ? persistence : [persistence]).map(_getInstance);
|
|
523
|
-
if (deps
|
|
525
|
+
if (deps?.errorMap) {
|
|
524
526
|
auth._updateErrorMap(deps.errorMap);
|
|
525
527
|
}
|
|
526
528
|
// This promise is intended to float; auth initialization happens in the
|
|
527
529
|
// background, meanwhile the auth object may be used by the app.
|
|
528
530
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
529
|
-
auth._initializeWithPersistence(hierarchy, deps
|
|
531
|
+
auth._initializeWithPersistence(hierarchy, deps?.popupRedirectResolver);
|
|
530
532
|
}
|
|
531
533
|
|
|
532
534
|
var name = "@firebase/auth";
|
|
533
|
-
var version = "1.10.
|
|
535
|
+
var version = "1.10.8-canary.25b60fdaa";
|
|
534
536
|
|
|
535
537
|
/**
|
|
536
538
|
* @license
|
|
@@ -595,7 +597,7 @@ function _getBrowserName(userAgent) {
|
|
|
595
597
|
// Most modern browsers have name/version at end of user agent string.
|
|
596
598
|
const re = /([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/;
|
|
597
599
|
const matches = userAgent.match(re);
|
|
598
|
-
if (
|
|
600
|
+
if (matches?.length === 2) {
|
|
599
601
|
return matches[1];
|
|
600
602
|
}
|
|
601
603
|
}
|
|
@@ -685,15 +687,13 @@ function _getClientVersion(clientPlatform, frameworks = []) {
|
|
|
685
687
|
* limitations under the License.
|
|
686
688
|
*/
|
|
687
689
|
function _getCurrentUrl() {
|
|
688
|
-
|
|
689
|
-
return (typeof self !== 'undefined' && ((_a = self.location) === null || _a === void 0 ? void 0 : _a.href)) || '';
|
|
690
|
+
return (typeof self !== 'undefined' && self.location?.href) || '';
|
|
690
691
|
}
|
|
691
692
|
function _isHttpOrHttps() {
|
|
692
693
|
return _getCurrentScheme() === 'http:' || _getCurrentScheme() === 'https:';
|
|
693
694
|
}
|
|
694
695
|
function _getCurrentScheme() {
|
|
695
|
-
|
|
696
|
-
return (typeof self !== 'undefined' && ((_a = self.location) === null || _a === void 0 ? void 0 : _a.protocol)) || null;
|
|
696
|
+
return (typeof self !== 'undefined' && self.location?.protocol) || null;
|
|
697
697
|
}
|
|
698
698
|
|
|
699
699
|
/**
|
|
@@ -1007,7 +1007,10 @@ const CookieAuthProxiedEndpoints = [
|
|
|
1007
1007
|
const DEFAULT_API_TIMEOUT_MS = new Delay(30000, 60000);
|
|
1008
1008
|
function _addTidIfNecessary(auth, request) {
|
|
1009
1009
|
if (auth.tenantId && !request.tenantId) {
|
|
1010
|
-
return
|
|
1010
|
+
return {
|
|
1011
|
+
...request,
|
|
1012
|
+
tenantId: auth.tenantId
|
|
1013
|
+
};
|
|
1011
1014
|
}
|
|
1012
1015
|
return request;
|
|
1013
1016
|
}
|
|
@@ -1025,14 +1028,20 @@ async function _performApiRequest(auth, method, path, request, customErrorMap =
|
|
|
1025
1028
|
};
|
|
1026
1029
|
}
|
|
1027
1030
|
}
|
|
1028
|
-
const query = querystring(
|
|
1031
|
+
const query = querystring({
|
|
1032
|
+
key: auth.config.apiKey,
|
|
1033
|
+
...params
|
|
1034
|
+
}).slice(1);
|
|
1029
1035
|
const headers = await auth._getAdditionalHeaders();
|
|
1030
1036
|
headers["Content-Type" /* HttpHeader.CONTENT_TYPE */] = 'application/json';
|
|
1031
1037
|
if (auth.languageCode) {
|
|
1032
1038
|
headers["X-Firebase-Locale" /* HttpHeader.X_FIREBASE_LOCALE */] = auth.languageCode;
|
|
1033
1039
|
}
|
|
1034
|
-
const fetchArgs =
|
|
1035
|
-
|
|
1040
|
+
const fetchArgs = {
|
|
1041
|
+
method,
|
|
1042
|
+
headers,
|
|
1043
|
+
...body
|
|
1044
|
+
};
|
|
1036
1045
|
/* Security-conscious server-side frameworks tend to have built in mitigations for referrer
|
|
1037
1046
|
problems". See the Cloudflare GitHub issue #487: Error: The 'referrerPolicy' field on
|
|
1038
1047
|
'RequestInitializerDict' is not implemented."
|
|
@@ -1048,7 +1057,7 @@ async function _performApiRequest(auth, method, path, request, customErrorMap =
|
|
|
1048
1057
|
}
|
|
1049
1058
|
async function _performFetchWithErrorHandling(auth, customErrorMap, fetchFn) {
|
|
1050
1059
|
auth._canInitEmulator = false;
|
|
1051
|
-
const errorMap =
|
|
1060
|
+
const errorMap = { ...SERVER_ERROR_MAP, ...customErrorMap };
|
|
1052
1061
|
try {
|
|
1053
1062
|
const networkTimeout = new NetworkTimeout(auth);
|
|
1054
1063
|
const response = await Promise.race([
|
|
@@ -1283,7 +1292,7 @@ async function getIdTokenResult(user, forceRefresh = false) {
|
|
|
1283
1292
|
const claims = _parseToken(token);
|
|
1284
1293
|
_assert(claims && claims.exp && claims.auth_time && claims.iat, userInternal.auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
1285
1294
|
const firebase = typeof claims.firebase === 'object' ? claims.firebase : undefined;
|
|
1286
|
-
const signInProvider = firebase
|
|
1295
|
+
const signInProvider = firebase?.['sign_in_provider'];
|
|
1287
1296
|
return {
|
|
1288
1297
|
claims,
|
|
1289
1298
|
token,
|
|
@@ -1291,7 +1300,7 @@ async function getIdTokenResult(user, forceRefresh = false) {
|
|
|
1291
1300
|
issuedAtTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.iat)),
|
|
1292
1301
|
expirationTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.exp)),
|
|
1293
1302
|
signInProvider: signInProvider || null,
|
|
1294
|
-
signInSecondFactor:
|
|
1303
|
+
signInSecondFactor: firebase?.['sign_in_second_factor'] || null
|
|
1295
1304
|
};
|
|
1296
1305
|
}
|
|
1297
1306
|
function secondsStringToMilliseconds(seconds) {
|
|
@@ -1314,7 +1323,7 @@ function _parseToken(token) {
|
|
|
1314
1323
|
return JSON.parse(decoded);
|
|
1315
1324
|
}
|
|
1316
1325
|
catch (e) {
|
|
1317
|
-
_logError('Caught error parsing JWT payload as JSON', e
|
|
1326
|
+
_logError('Caught error parsing JWT payload as JSON', e?.toString());
|
|
1318
1327
|
return null;
|
|
1319
1328
|
}
|
|
1320
1329
|
}
|
|
@@ -1410,7 +1419,6 @@ class ProactiveRefresh {
|
|
|
1410
1419
|
}
|
|
1411
1420
|
}
|
|
1412
1421
|
getInterval(wasError) {
|
|
1413
|
-
var _a;
|
|
1414
1422
|
if (wasError) {
|
|
1415
1423
|
const interval = this.errorBackoff;
|
|
1416
1424
|
this.errorBackoff = Math.min(this.errorBackoff * 2, 960000 /* Duration.RETRY_BACKOFF_MAX */);
|
|
@@ -1419,7 +1427,7 @@ class ProactiveRefresh {
|
|
|
1419
1427
|
else {
|
|
1420
1428
|
// Reset the error backoff
|
|
1421
1429
|
this.errorBackoff = 30000 /* Duration.RETRY_BACKOFF_MIN */;
|
|
1422
|
-
const expTime =
|
|
1430
|
+
const expTime = this.user.stsTokenManager.expirationTime ?? 0;
|
|
1423
1431
|
const interval = expTime - Date.now() - 300000 /* Duration.OFFSET */;
|
|
1424
1432
|
return Math.max(0, interval);
|
|
1425
1433
|
}
|
|
@@ -1440,7 +1448,7 @@ class ProactiveRefresh {
|
|
|
1440
1448
|
}
|
|
1441
1449
|
catch (e) {
|
|
1442
1450
|
// Only retry on network errors
|
|
1443
|
-
if (
|
|
1451
|
+
if (e?.code ===
|
|
1444
1452
|
`auth/${"network-request-failed" /* AuthErrorCode.NETWORK_REQUEST_FAILED */}`) {
|
|
1445
1453
|
this.schedule(/* wasError */ true);
|
|
1446
1454
|
}
|
|
@@ -1506,14 +1514,13 @@ class UserMetadata {
|
|
|
1506
1514
|
* limitations under the License.
|
|
1507
1515
|
*/
|
|
1508
1516
|
async function _reloadWithoutSaving(user) {
|
|
1509
|
-
var _a;
|
|
1510
1517
|
const auth = user.auth;
|
|
1511
1518
|
const idToken = await user.getIdToken();
|
|
1512
1519
|
const response = await _logoutIfInvalidated(user, getAccountInfo(auth, { idToken }));
|
|
1513
|
-
_assert(response
|
|
1520
|
+
_assert(response?.users.length, auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
1514
1521
|
const coreAccount = response.users[0];
|
|
1515
1522
|
user._notifyReloadListener(coreAccount);
|
|
1516
|
-
const newProviderData =
|
|
1523
|
+
const newProviderData = coreAccount.providerUserInfo?.length
|
|
1517
1524
|
? extractProviderData(coreAccount.providerUserInfo)
|
|
1518
1525
|
: [];
|
|
1519
1526
|
const providerData = mergeProviderData(user.providerData, newProviderData);
|
|
@@ -1523,7 +1530,7 @@ async function _reloadWithoutSaving(user) {
|
|
|
1523
1530
|
// On the other hand, if it was not anonymous before, it should never be
|
|
1524
1531
|
// considered anonymous now.
|
|
1525
1532
|
const oldIsAnonymous = user.isAnonymous;
|
|
1526
|
-
const newIsAnonymous = !(user.email && coreAccount.passwordHash) && !
|
|
1533
|
+
const newIsAnonymous = !(user.email && coreAccount.passwordHash) && !providerData?.length;
|
|
1527
1534
|
const isAnonymous = !oldIsAnonymous ? false : newIsAnonymous;
|
|
1528
1535
|
const updates = {
|
|
1529
1536
|
uid: coreAccount.localId,
|
|
@@ -1560,8 +1567,7 @@ function mergeProviderData(original, newData) {
|
|
|
1560
1567
|
return [...deduped, ...newData];
|
|
1561
1568
|
}
|
|
1562
1569
|
function extractProviderData(providers) {
|
|
1563
|
-
return providers.map((
|
|
1564
|
-
var { providerId } = _a, provider = __rest(_a, ["providerId"]);
|
|
1570
|
+
return providers.map(({ providerId, ...provider }) => {
|
|
1565
1571
|
return {
|
|
1566
1572
|
providerId,
|
|
1567
1573
|
uid: provider.rawId || '',
|
|
@@ -1753,8 +1759,7 @@ function assertStringOrUndefined(assertion, appName) {
|
|
|
1753
1759
|
_assert(typeof assertion === 'string' || typeof assertion === 'undefined', "internal-error" /* AuthErrorCode.INTERNAL_ERROR */, { appName });
|
|
1754
1760
|
}
|
|
1755
1761
|
class UserImpl {
|
|
1756
|
-
constructor(
|
|
1757
|
-
var { uid, auth, stsTokenManager } = _a, opt = __rest(_a, ["uid", "auth", "stsTokenManager"]);
|
|
1762
|
+
constructor({ uid, auth, stsTokenManager, ...opt }) {
|
|
1758
1763
|
// For the user object, provider is always Firebase.
|
|
1759
1764
|
this.providerId = "firebase" /* ProviderId.FIREBASE */;
|
|
1760
1765
|
this.proactiveRefresh = new ProactiveRefresh(this);
|
|
@@ -1802,12 +1807,16 @@ class UserImpl {
|
|
|
1802
1807
|
this.phoneNumber = user.phoneNumber;
|
|
1803
1808
|
this.isAnonymous = user.isAnonymous;
|
|
1804
1809
|
this.tenantId = user.tenantId;
|
|
1805
|
-
this.providerData = user.providerData.map(userInfo => (
|
|
1810
|
+
this.providerData = user.providerData.map(userInfo => ({ ...userInfo }));
|
|
1806
1811
|
this.metadata._copy(user.metadata);
|
|
1807
1812
|
this.stsTokenManager._assign(user.stsTokenManager);
|
|
1808
1813
|
}
|
|
1809
1814
|
_clone(auth) {
|
|
1810
|
-
const newUser = new UserImpl(
|
|
1815
|
+
const newUser = new UserImpl({
|
|
1816
|
+
...this,
|
|
1817
|
+
auth,
|
|
1818
|
+
stsTokenManager: this.stsTokenManager._clone()
|
|
1819
|
+
});
|
|
1811
1820
|
newUser.metadata._copy(this.metadata);
|
|
1812
1821
|
return newUser;
|
|
1813
1822
|
}
|
|
@@ -1862,26 +1871,40 @@ class UserImpl {
|
|
|
1862
1871
|
return this.auth.signOut();
|
|
1863
1872
|
}
|
|
1864
1873
|
toJSON() {
|
|
1865
|
-
return
|
|
1874
|
+
return {
|
|
1875
|
+
uid: this.uid,
|
|
1876
|
+
email: this.email || undefined,
|
|
1877
|
+
emailVerified: this.emailVerified,
|
|
1878
|
+
displayName: this.displayName || undefined,
|
|
1879
|
+
isAnonymous: this.isAnonymous,
|
|
1880
|
+
photoURL: this.photoURL || undefined,
|
|
1881
|
+
phoneNumber: this.phoneNumber || undefined,
|
|
1882
|
+
tenantId: this.tenantId || undefined,
|
|
1883
|
+
providerData: this.providerData.map(userInfo => ({ ...userInfo })),
|
|
1884
|
+
stsTokenManager: this.stsTokenManager.toJSON(),
|
|
1866
1885
|
// Redirect event ID must be maintained in case there is a pending
|
|
1867
1886
|
// redirect event.
|
|
1868
|
-
_redirectEventId: this._redirectEventId
|
|
1887
|
+
_redirectEventId: this._redirectEventId,
|
|
1888
|
+
...this.metadata.toJSON(),
|
|
1869
1889
|
// Required for compatibility with the legacy SDK (go/firebase-auth-sdk-persistence-parsing):
|
|
1870
|
-
apiKey: this.auth.config.apiKey,
|
|
1890
|
+
apiKey: this.auth.config.apiKey,
|
|
1891
|
+
appName: this.auth.name
|
|
1892
|
+
// Missing authDomain will be tolerated by the legacy SDK.
|
|
1893
|
+
// stsTokenManager.apiKey isn't actually required (despite the legacy SDK persisting it).
|
|
1894
|
+
};
|
|
1871
1895
|
}
|
|
1872
1896
|
get refreshToken() {
|
|
1873
1897
|
return this.stsTokenManager.refreshToken || '';
|
|
1874
1898
|
}
|
|
1875
1899
|
static _fromJSON(auth, object) {
|
|
1876
|
-
|
|
1877
|
-
const
|
|
1878
|
-
const
|
|
1879
|
-
const
|
|
1880
|
-
const
|
|
1881
|
-
const
|
|
1882
|
-
const
|
|
1883
|
-
const
|
|
1884
|
-
const lastLoginAt = (_h = object.lastLoginAt) !== null && _h !== void 0 ? _h : undefined;
|
|
1900
|
+
const displayName = object.displayName ?? undefined;
|
|
1901
|
+
const email = object.email ?? undefined;
|
|
1902
|
+
const phoneNumber = object.phoneNumber ?? undefined;
|
|
1903
|
+
const photoURL = object.photoURL ?? undefined;
|
|
1904
|
+
const tenantId = object.tenantId ?? undefined;
|
|
1905
|
+
const _redirectEventId = object._redirectEventId ?? undefined;
|
|
1906
|
+
const createdAt = object.createdAt ?? undefined;
|
|
1907
|
+
const lastLoginAt = object.lastLoginAt ?? undefined;
|
|
1885
1908
|
const { uid, emailVerified, isAnonymous, providerData, stsTokenManager: plainObjectTokenManager } = object;
|
|
1886
1909
|
_assert(uid && plainObjectTokenManager, auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
1887
1910
|
const stsTokenManager = StsTokenManager.fromJSON(this.name, plainObjectTokenManager);
|
|
@@ -1911,7 +1934,7 @@ class UserImpl {
|
|
|
1911
1934
|
lastLoginAt
|
|
1912
1935
|
});
|
|
1913
1936
|
if (providerData && Array.isArray(providerData)) {
|
|
1914
|
-
user.providerData = providerData.map(userInfo => (
|
|
1937
|
+
user.providerData = providerData.map(userInfo => ({ ...userInfo }));
|
|
1915
1938
|
}
|
|
1916
1939
|
if (_redirectEventId) {
|
|
1917
1940
|
user._redirectEventId = _redirectEventId;
|
|
@@ -1948,7 +1971,7 @@ class UserImpl {
|
|
|
1948
1971
|
const providerData = coreAccount.providerUserInfo !== undefined
|
|
1949
1972
|
? extractProviderData(coreAccount.providerUserInfo)
|
|
1950
1973
|
: [];
|
|
1951
|
-
const isAnonymous = !(coreAccount.email && coreAccount.passwordHash) && !
|
|
1974
|
+
const isAnonymous = !(coreAccount.email && coreAccount.passwordHash) && !providerData?.length;
|
|
1952
1975
|
const stsTokenManager = new StsTokenManager();
|
|
1953
1976
|
stsTokenManager.updateFromIdToken(idToken);
|
|
1954
1977
|
// Initialize the Firebase Auth user.
|
|
@@ -1970,7 +1993,7 @@ class UserImpl {
|
|
|
1970
1993
|
providerData,
|
|
1971
1994
|
metadata: new UserMetadata(coreAccount.createdAt, coreAccount.lastLoginAt),
|
|
1972
1995
|
isAnonymous: !(coreAccount.email && coreAccount.passwordHash) &&
|
|
1973
|
-
!
|
|
1996
|
+
!providerData?.length
|
|
1974
1997
|
};
|
|
1975
1998
|
Object.assign(user, updates);
|
|
1976
1999
|
return user;
|
|
@@ -2140,7 +2163,7 @@ class PersistenceUserManager {
|
|
|
2140
2163
|
break;
|
|
2141
2164
|
}
|
|
2142
2165
|
}
|
|
2143
|
-
catch
|
|
2166
|
+
catch { }
|
|
2144
2167
|
}
|
|
2145
2168
|
// If we find the user in a persistence that does support migration, use
|
|
2146
2169
|
// that migration path (of only persistences that support migration)
|
|
@@ -2163,7 +2186,7 @@ class PersistenceUserManager {
|
|
|
2163
2186
|
try {
|
|
2164
2187
|
await persistence._remove(key);
|
|
2165
2188
|
}
|
|
2166
|
-
catch
|
|
2189
|
+
catch { }
|
|
2167
2190
|
}
|
|
2168
2191
|
}));
|
|
2169
2192
|
return new PersistenceUserManager(selectedPersistence, auth, userKey);
|
|
@@ -2245,7 +2268,7 @@ class AuthMiddlewareQueue {
|
|
|
2245
2268
|
}
|
|
2246
2269
|
}
|
|
2247
2270
|
throw this.auth._errorFactory.create("login-blocked" /* AuthErrorCode.LOGIN_BLOCKED */, {
|
|
2248
|
-
originalMessage: e
|
|
2271
|
+
originalMessage: e?.message
|
|
2249
2272
|
});
|
|
2250
2273
|
}
|
|
2251
2274
|
}
|
|
@@ -2303,13 +2326,12 @@ const MINIMUM_MIN_PASSWORD_LENGTH = 6;
|
|
|
2303
2326
|
*/
|
|
2304
2327
|
class PasswordPolicyImpl {
|
|
2305
2328
|
constructor(response) {
|
|
2306
|
-
var _a, _b, _c, _d;
|
|
2307
2329
|
// Only include custom strength options defined in the response.
|
|
2308
2330
|
const responseOptions = response.customStrengthOptions;
|
|
2309
2331
|
this.customStrengthOptions = {};
|
|
2310
2332
|
// TODO: Remove once the backend is updated to include the minimum min password length instead of undefined when there is no minimum length set.
|
|
2311
2333
|
this.customStrengthOptions.minPasswordLength =
|
|
2312
|
-
|
|
2334
|
+
responseOptions.minPasswordLength ?? MINIMUM_MIN_PASSWORD_LENGTH;
|
|
2313
2335
|
if (responseOptions.maxPasswordLength) {
|
|
2314
2336
|
this.customStrengthOptions.maxPasswordLength =
|
|
2315
2337
|
responseOptions.maxPasswordLength;
|
|
@@ -2336,12 +2358,11 @@ class PasswordPolicyImpl {
|
|
|
2336
2358
|
}
|
|
2337
2359
|
// Use an empty string if no non-alphanumeric characters are specified in the response.
|
|
2338
2360
|
this.allowedNonAlphanumericCharacters =
|
|
2339
|
-
|
|
2340
|
-
this.forceUpgradeOnSignin =
|
|
2361
|
+
response.allowedNonAlphanumericCharacters?.join('') ?? '';
|
|
2362
|
+
this.forceUpgradeOnSignin = response.forceUpgradeOnSignin ?? false;
|
|
2341
2363
|
this.schemaVersion = response.schemaVersion;
|
|
2342
2364
|
}
|
|
2343
2365
|
validatePassword(password) {
|
|
2344
|
-
var _a, _b, _c, _d, _e, _f;
|
|
2345
2366
|
const status = {
|
|
2346
2367
|
isValid: true,
|
|
2347
2368
|
passwordPolicy: this
|
|
@@ -2350,12 +2371,12 @@ class PasswordPolicyImpl {
|
|
|
2350
2371
|
this.validatePasswordLengthOptions(password, status);
|
|
2351
2372
|
this.validatePasswordCharacterOptions(password, status);
|
|
2352
2373
|
// Combine the status into single isValid property.
|
|
2353
|
-
status.isValid && (status.isValid =
|
|
2354
|
-
status.isValid && (status.isValid =
|
|
2355
|
-
status.isValid && (status.isValid =
|
|
2356
|
-
status.isValid && (status.isValid =
|
|
2357
|
-
status.isValid && (status.isValid =
|
|
2358
|
-
status.isValid && (status.isValid =
|
|
2374
|
+
status.isValid && (status.isValid = status.meetsMinPasswordLength ?? true);
|
|
2375
|
+
status.isValid && (status.isValid = status.meetsMaxPasswordLength ?? true);
|
|
2376
|
+
status.isValid && (status.isValid = status.containsLowercaseLetter ?? true);
|
|
2377
|
+
status.isValid && (status.isValid = status.containsUppercaseLetter ?? true);
|
|
2378
|
+
status.isValid && (status.isValid = status.containsNumericCharacter ?? true);
|
|
2379
|
+
status.isValid && (status.isValid = status.containsNonAlphanumericCharacter ?? true);
|
|
2359
2380
|
return status;
|
|
2360
2381
|
}
|
|
2361
2382
|
/**
|
|
@@ -2492,18 +2513,17 @@ class AuthImpl {
|
|
|
2492
2513
|
// Have to check for app deletion throughout initialization (after each
|
|
2493
2514
|
// promise resolution)
|
|
2494
2515
|
this._initializationPromise = this.queue(async () => {
|
|
2495
|
-
var _a, _b, _c;
|
|
2496
2516
|
if (this._deleted) {
|
|
2497
2517
|
return;
|
|
2498
2518
|
}
|
|
2499
2519
|
this.persistenceManager = await PersistenceUserManager.create(this, persistenceHierarchy);
|
|
2500
|
-
|
|
2520
|
+
this._resolvePersistenceManagerAvailable?.();
|
|
2501
2521
|
if (this._deleted) {
|
|
2502
2522
|
return;
|
|
2503
2523
|
}
|
|
2504
2524
|
// Initialize the resolver early if necessary (only applicable to web:
|
|
2505
2525
|
// this will cause the iframe to load immediately in certain cases)
|
|
2506
|
-
if (
|
|
2526
|
+
if (this._popupRedirectResolver?._shouldInitProactively) {
|
|
2507
2527
|
// If this fails, don't halt auth loading
|
|
2508
2528
|
try {
|
|
2509
2529
|
await this._popupRedirectResolver._initialize(this);
|
|
@@ -2513,7 +2533,7 @@ class AuthImpl {
|
|
|
2513
2533
|
}
|
|
2514
2534
|
}
|
|
2515
2535
|
await this.initializeCurrentUser(popupRedirectResolver);
|
|
2516
|
-
this.lastNotifiedUid =
|
|
2536
|
+
this.lastNotifiedUid = this.currentUser?.uid || null;
|
|
2517
2537
|
if (this._deleted) {
|
|
2518
2538
|
return;
|
|
2519
2539
|
}
|
|
@@ -2558,7 +2578,6 @@ class AuthImpl {
|
|
|
2558
2578
|
}
|
|
2559
2579
|
}
|
|
2560
2580
|
async initializeCurrentUser(popupRedirectResolver) {
|
|
2561
|
-
var _a;
|
|
2562
2581
|
if (_isFirebaseServerApp(this.app)) {
|
|
2563
2582
|
const idToken = this.app.settings.authIdToken;
|
|
2564
2583
|
if (idToken) {
|
|
@@ -2578,15 +2597,15 @@ class AuthImpl {
|
|
|
2578
2597
|
let needsTocheckMiddleware = false;
|
|
2579
2598
|
if (popupRedirectResolver && this.config.authDomain) {
|
|
2580
2599
|
await this.getOrInitRedirectPersistenceManager();
|
|
2581
|
-
const redirectUserEventId =
|
|
2582
|
-
const storedUserEventId = futureCurrentUser
|
|
2600
|
+
const redirectUserEventId = this.redirectUser?._redirectEventId;
|
|
2601
|
+
const storedUserEventId = futureCurrentUser?._redirectEventId;
|
|
2583
2602
|
const result = await this.tryRedirectSignIn(popupRedirectResolver);
|
|
2584
2603
|
// If the stored user (i.e. the old "currentUser") has a redirectId that
|
|
2585
2604
|
// matches the redirect user, then we want to initially sign in with the
|
|
2586
2605
|
// new user object from result.
|
|
2587
2606
|
// TODO(samgho): More thoroughly test all of this
|
|
2588
2607
|
if ((!redirectUserEventId || redirectUserEventId === storedUserEventId) &&
|
|
2589
|
-
|
|
2608
|
+
result?.user) {
|
|
2590
2609
|
futureCurrentUser = result.user;
|
|
2591
2610
|
needsTocheckMiddleware = true;
|
|
2592
2611
|
}
|
|
@@ -2661,7 +2680,7 @@ class AuthImpl {
|
|
|
2661
2680
|
await _reloadWithoutSaving(user);
|
|
2662
2681
|
}
|
|
2663
2682
|
catch (e) {
|
|
2664
|
-
if (
|
|
2683
|
+
if (e?.code !==
|
|
2665
2684
|
`auth/${"network-request-failed" /* AuthErrorCode.NETWORK_REQUEST_FAILED */}`) {
|
|
2666
2685
|
// Something's wrong with the user's token. Log them out and remove
|
|
2667
2686
|
// them from storage
|
|
@@ -2818,12 +2837,11 @@ class AuthImpl {
|
|
|
2818
2837
|
}
|
|
2819
2838
|
}
|
|
2820
2839
|
toJSON() {
|
|
2821
|
-
var _a;
|
|
2822
2840
|
return {
|
|
2823
2841
|
apiKey: this.config.apiKey,
|
|
2824
2842
|
authDomain: this.config.authDomain,
|
|
2825
2843
|
appName: this.name,
|
|
2826
|
-
currentUser:
|
|
2844
|
+
currentUser: this._currentUser?.toJSON()
|
|
2827
2845
|
};
|
|
2828
2846
|
}
|
|
2829
2847
|
async _setRedirectUser(user, popupRedirectResolver) {
|
|
@@ -2844,16 +2862,15 @@ class AuthImpl {
|
|
|
2844
2862
|
return this.redirectPersistenceManager;
|
|
2845
2863
|
}
|
|
2846
2864
|
async _redirectUserForId(id) {
|
|
2847
|
-
var _a, _b;
|
|
2848
2865
|
// Make sure we've cleared any pending persistence actions if we're not in
|
|
2849
2866
|
// the initializer
|
|
2850
2867
|
if (this._isInitialized) {
|
|
2851
2868
|
await this.queue(async () => { });
|
|
2852
2869
|
}
|
|
2853
|
-
if (
|
|
2870
|
+
if (this._currentUser?._redirectEventId === id) {
|
|
2854
2871
|
return this._currentUser;
|
|
2855
2872
|
}
|
|
2856
|
-
if (
|
|
2873
|
+
if (this.redirectUser?._redirectEventId === id) {
|
|
2857
2874
|
return this.redirectUser;
|
|
2858
2875
|
}
|
|
2859
2876
|
return null;
|
|
@@ -2889,12 +2906,11 @@ class AuthImpl {
|
|
|
2889
2906
|
return this.currentUser;
|
|
2890
2907
|
}
|
|
2891
2908
|
notifyAuthListeners() {
|
|
2892
|
-
var _a, _b;
|
|
2893
2909
|
if (!this._isInitialized) {
|
|
2894
2910
|
return;
|
|
2895
2911
|
}
|
|
2896
2912
|
this.idTokenSubscription.next(this.currentUser);
|
|
2897
|
-
const currentUid =
|
|
2913
|
+
const currentUid = this.currentUser?.uid ?? null;
|
|
2898
2914
|
if (this.lastNotifiedUid !== currentUid) {
|
|
2899
2915
|
this.lastNotifiedUid = currentUid;
|
|
2900
2916
|
this.authStateSubscription.next(this.currentUser);
|
|
@@ -2979,7 +2995,6 @@ class AuthImpl {
|
|
|
2979
2995
|
return this.frameworks;
|
|
2980
2996
|
}
|
|
2981
2997
|
async _getAdditionalHeaders() {
|
|
2982
|
-
var _a;
|
|
2983
2998
|
// Additional headers on every request
|
|
2984
2999
|
const headers = {
|
|
2985
3000
|
["X-Client-Version" /* HttpHeader.X_CLIENT_VERSION */]: this.clientVersion
|
|
@@ -2988,10 +3003,11 @@ class AuthImpl {
|
|
|
2988
3003
|
headers["X-Firebase-gmpid" /* HttpHeader.X_FIREBASE_GMPID */] = this.app.options.appId;
|
|
2989
3004
|
}
|
|
2990
3005
|
// If the heartbeat service exists, add the heartbeat string
|
|
2991
|
-
const heartbeatsHeader = await
|
|
3006
|
+
const heartbeatsHeader = await this.heartbeatServiceProvider
|
|
2992
3007
|
.getImmediate({
|
|
2993
3008
|
optional: true
|
|
2994
|
-
})
|
|
3009
|
+
})
|
|
3010
|
+
?.getHeartbeatsHeader();
|
|
2995
3011
|
if (heartbeatsHeader) {
|
|
2996
3012
|
headers["X-Firebase-Client" /* HttpHeader.X_FIREBASE_CLIENT */] = heartbeatsHeader;
|
|
2997
3013
|
}
|
|
@@ -3003,20 +3019,20 @@ class AuthImpl {
|
|
|
3003
3019
|
return headers;
|
|
3004
3020
|
}
|
|
3005
3021
|
async _getAppCheckToken() {
|
|
3006
|
-
var _a;
|
|
3007
3022
|
if (_isFirebaseServerApp(this.app) && this.app.settings.appCheckToken) {
|
|
3008
3023
|
return this.app.settings.appCheckToken;
|
|
3009
3024
|
}
|
|
3010
|
-
const appCheckTokenResult = await
|
|
3011
|
-
.getImmediate({ optional: true })
|
|
3012
|
-
|
|
3025
|
+
const appCheckTokenResult = await this.appCheckServiceProvider
|
|
3026
|
+
.getImmediate({ optional: true })
|
|
3027
|
+
?.getToken();
|
|
3028
|
+
if (appCheckTokenResult?.error) {
|
|
3013
3029
|
// Context: appCheck.getToken() will never throw even if an error happened.
|
|
3014
3030
|
// In the error case, a dummy token will be returned along with an error field describing
|
|
3015
3031
|
// the error. In general, we shouldn't care about the error condition and just use
|
|
3016
3032
|
// the token (actual or dummy) to send requests.
|
|
3017
3033
|
_logWarn(`Error while retrieving App Check token: ${appCheckTokenResult.error}`);
|
|
3018
3034
|
}
|
|
3019
|
-
return appCheckTokenResult
|
|
3035
|
+
return appCheckTokenResult?.token;
|
|
3020
3036
|
}
|
|
3021
3037
|
}
|
|
3022
3038
|
/**
|
|
@@ -3063,9 +3079,8 @@ class AuthInterop {
|
|
|
3063
3079
|
this.internalListeners = new Map();
|
|
3064
3080
|
}
|
|
3065
3081
|
getUid() {
|
|
3066
|
-
var _a;
|
|
3067
3082
|
this.assertAuthConfigured();
|
|
3068
|
-
return
|
|
3083
|
+
return this.auth.currentUser?.uid || null;
|
|
3069
3084
|
}
|
|
3070
3085
|
async getToken(forceRefresh) {
|
|
3071
3086
|
this.assertAuthConfigured();
|
|
@@ -3082,7 +3097,7 @@ class AuthInterop {
|
|
|
3082
3097
|
return;
|
|
3083
3098
|
}
|
|
3084
3099
|
const unsubscribe = this.auth.onIdTokenChanged(user => {
|
|
3085
|
-
listener(
|
|
3100
|
+
listener(user?.stsTokenManager.accessToken || null);
|
|
3086
3101
|
});
|
|
3087
3102
|
this.internalListeners.set(listener, unsubscribe);
|
|
3088
3103
|
this.updateProactiveRefresh();
|
|
@@ -3181,8 +3196,8 @@ function registerAuth(clientPlatform) {
|
|
|
3181
3196
|
return (auth => new AuthInterop(auth))(auth);
|
|
3182
3197
|
}, "PRIVATE" /* ComponentType.PRIVATE */).setInstantiationMode("EXPLICIT" /* InstantiationMode.EXPLICIT */));
|
|
3183
3198
|
registerVersion(name, version, getVersionForPlatform(clientPlatform));
|
|
3184
|
-
// BUILD_TARGET will be replaced by values like
|
|
3185
|
-
registerVersion(name, version, '
|
|
3199
|
+
// BUILD_TARGET will be replaced by values like esm, cjs, etc during the compilation
|
|
3200
|
+
registerVersion(name, version, 'esm2020');
|
|
3186
3201
|
}
|
|
3187
3202
|
|
|
3188
3203
|
const STORAGE_AVAILABLE_KEY = '__sak';
|
|
@@ -3287,7 +3302,7 @@ class Receiver {
|
|
|
3287
3302
|
const messageEvent = event;
|
|
3288
3303
|
const { eventId, eventType, data } = messageEvent.data;
|
|
3289
3304
|
const handlers = this.handlersMap[eventType];
|
|
3290
|
-
if (!
|
|
3305
|
+
if (!handlers?.size) {
|
|
3291
3306
|
return;
|
|
3292
3307
|
}
|
|
3293
3308
|
messageEvent.ports[0].postMessage({
|
|
@@ -3520,20 +3535,19 @@ function _isWorker() {
|
|
|
3520
3535
|
typeof _window()['importScripts'] === 'function');
|
|
3521
3536
|
}
|
|
3522
3537
|
async function _getActiveServiceWorker() {
|
|
3523
|
-
if (!
|
|
3538
|
+
if (!navigator?.serviceWorker) {
|
|
3524
3539
|
return null;
|
|
3525
3540
|
}
|
|
3526
3541
|
try {
|
|
3527
3542
|
const registration = await navigator.serviceWorker.ready;
|
|
3528
3543
|
return registration.active;
|
|
3529
3544
|
}
|
|
3530
|
-
catch
|
|
3545
|
+
catch {
|
|
3531
3546
|
return null;
|
|
3532
3547
|
}
|
|
3533
3548
|
}
|
|
3534
3549
|
function _getServiceWorkerController() {
|
|
3535
|
-
|
|
3536
|
-
return ((_a = navigator === null || navigator === void 0 ? void 0 : navigator.serviceWorker) === null || _a === void 0 ? void 0 : _a.controller) || null;
|
|
3550
|
+
return navigator?.serviceWorker?.controller || null;
|
|
3537
3551
|
}
|
|
3538
3552
|
function _getWorkerGlobalScope() {
|
|
3539
3553
|
return _isWorker() ? self : null;
|
|
@@ -3716,7 +3730,6 @@ class IndexedDBLocalPersistence {
|
|
|
3716
3730
|
* may not resolve.
|
|
3717
3731
|
*/
|
|
3718
3732
|
async initializeSender() {
|
|
3719
|
-
var _a, _b;
|
|
3720
3733
|
// Check to see if there's an active service worker.
|
|
3721
3734
|
this.activeServiceWorker = await _getActiveServiceWorker();
|
|
3722
3735
|
if (!this.activeServiceWorker) {
|
|
@@ -3728,8 +3741,8 @@ class IndexedDBLocalPersistence {
|
|
|
3728
3741
|
if (!results) {
|
|
3729
3742
|
return;
|
|
3730
3743
|
}
|
|
3731
|
-
if (
|
|
3732
|
-
|
|
3744
|
+
if (results[0]?.fulfilled &&
|
|
3745
|
+
results[0]?.value.includes("keyChanged" /* _EventType.KEY_CHANGED */)) {
|
|
3733
3746
|
this.serviceWorkerReceiverAvailable = true;
|
|
3734
3747
|
}
|
|
3735
3748
|
}
|
|
@@ -3755,7 +3768,7 @@ class IndexedDBLocalPersistence {
|
|
|
3755
3768
|
? 800 /* _TimeoutDuration.LONG_ACK */
|
|
3756
3769
|
: 50 /* _TimeoutDuration.ACK */);
|
|
3757
3770
|
}
|
|
3758
|
-
catch
|
|
3771
|
+
catch {
|
|
3759
3772
|
// This is a best effort approach. Ignore errors.
|
|
3760
3773
|
}
|
|
3761
3774
|
}
|
|
@@ -3769,7 +3782,7 @@ class IndexedDBLocalPersistence {
|
|
|
3769
3782
|
await _deleteObject(db, STORAGE_AVAILABLE_KEY);
|
|
3770
3783
|
return true;
|
|
3771
3784
|
}
|
|
3772
|
-
catch
|
|
3785
|
+
catch { }
|
|
3773
3786
|
return false;
|
|
3774
3787
|
}
|
|
3775
3788
|
async _withPendingWrite(write) {
|
|
@@ -4287,7 +4300,7 @@ async function injectRecaptchaFields(auth, request, action, isCaptchaResp = fals
|
|
|
4287
4300
|
captchaResponse = await verifier.verify(action, true);
|
|
4288
4301
|
}
|
|
4289
4302
|
}
|
|
4290
|
-
const newRequest =
|
|
4303
|
+
const newRequest = { ...request };
|
|
4291
4304
|
if (action === "mfaSmsEnrollment" /* RecaptchaActionName.MFA_SMS_ENROLLMENT */ ||
|
|
4292
4305
|
action === "mfaSmsSignIn" /* RecaptchaActionName.MFA_SMS_SIGNIN */) {
|
|
4293
4306
|
if ('phoneEnrollmentInfo' in newRequest) {
|
|
@@ -4329,10 +4342,10 @@ async function injectRecaptchaFields(auth, request, action, isCaptchaResp = fals
|
|
|
4329
4342
|
return newRequest;
|
|
4330
4343
|
}
|
|
4331
4344
|
async function handleRecaptchaFlow(authInstance, request, actionName, actionMethod, recaptchaAuthProvider) {
|
|
4332
|
-
var _a, _b;
|
|
4333
4345
|
if (recaptchaAuthProvider === "EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */) {
|
|
4334
|
-
if (
|
|
4335
|
-
._getRecaptchaConfig()
|
|
4346
|
+
if (authInstance
|
|
4347
|
+
._getRecaptchaConfig()
|
|
4348
|
+
?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */)) {
|
|
4336
4349
|
const requestWithRecaptcha = await injectRecaptchaFields(authInstance, request, actionName, actionName === "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */);
|
|
4337
4350
|
return actionMethod(authInstance, requestWithRecaptcha);
|
|
4338
4351
|
}
|
|
@@ -4350,13 +4363,14 @@ async function handleRecaptchaFlow(authInstance, request, actionName, actionMeth
|
|
|
4350
4363
|
}
|
|
4351
4364
|
}
|
|
4352
4365
|
else if (recaptchaAuthProvider === "PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */) {
|
|
4353
|
-
if (
|
|
4354
|
-
._getRecaptchaConfig()
|
|
4366
|
+
if (authInstance
|
|
4367
|
+
._getRecaptchaConfig()
|
|
4368
|
+
?.isProviderEnabled("PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */)) {
|
|
4355
4369
|
const requestWithRecaptcha = await injectRecaptchaFields(authInstance, request, actionName);
|
|
4356
4370
|
return actionMethod(authInstance, requestWithRecaptcha).catch(async (error) => {
|
|
4357
|
-
|
|
4358
|
-
|
|
4359
|
-
|
|
4371
|
+
if (authInstance
|
|
4372
|
+
._getRecaptchaConfig()
|
|
4373
|
+
?.getProviderEnforcementState("PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */) === "AUDIT" /* EnforcementState.AUDIT */) {
|
|
4360
4374
|
// AUDIT mode
|
|
4361
4375
|
if (error.code === `auth/${"missing-recaptcha-token" /* AuthErrorCode.MISSING_RECAPTCHA_TOKEN */}` ||
|
|
4362
4376
|
error.code === `auth/${"invalid-app-credential" /* AuthErrorCode.INVALID_APP_CREDENTIAL */}`) {
|
|
@@ -4432,7 +4446,7 @@ async function _initializeRecaptchaConfig(auth) {
|
|
|
4432
4446
|
function connectAuthEmulator(auth, url, options) {
|
|
4433
4447
|
const authInternal = _castAuth(auth);
|
|
4434
4448
|
_assert(/^https?:\/\//.test(url), authInternal, "invalid-emulator-scheme" /* AuthErrorCode.INVALID_EMULATOR_SCHEME */);
|
|
4435
|
-
const disableWarnings = !!
|
|
4449
|
+
const disableWarnings = !!options?.disableWarnings;
|
|
4436
4450
|
const protocol = extractProtocol(url);
|
|
4437
4451
|
const { host, port } = extractHostAndPort(url);
|
|
4438
4452
|
const portStr = port === null ? '' : `:${port}`;
|
|
@@ -4758,7 +4772,7 @@ class EmailAuthCredential extends AuthCredential {
|
|
|
4758
4772
|
*/
|
|
4759
4773
|
static fromJSON(json) {
|
|
4760
4774
|
const obj = typeof json === 'string' ? JSON.parse(json) : json;
|
|
4761
|
-
if (
|
|
4775
|
+
if (obj?.email && obj?.password) {
|
|
4762
4776
|
if (obj.signInMethod === "password" /* SignInMethod.EMAIL_PASSWORD */) {
|
|
4763
4777
|
return this._fromEmailAndPassword(obj.email, obj.password);
|
|
4764
4778
|
}
|
|
@@ -4918,7 +4932,7 @@ class OAuthCredential extends AuthCredential {
|
|
|
4918
4932
|
*/
|
|
4919
4933
|
static fromJSON(json) {
|
|
4920
4934
|
const obj = typeof json === 'string' ? JSON.parse(json) : json;
|
|
4921
|
-
const { providerId, signInMethod
|
|
4935
|
+
const { providerId, signInMethod, ...rest } = obj;
|
|
4922
4936
|
if (!providerId || !signInMethod) {
|
|
4923
4937
|
return null;
|
|
4924
4938
|
}
|
|
@@ -5006,7 +5020,10 @@ const VERIFY_PHONE_NUMBER_FOR_EXISTING_ERROR_MAP_ = {
|
|
|
5006
5020
|
["USER_NOT_FOUND" /* ServerError.USER_NOT_FOUND */]: "user-not-found" /* AuthErrorCode.USER_DELETED */
|
|
5007
5021
|
};
|
|
5008
5022
|
async function verifyPhoneNumberForExisting(auth, request) {
|
|
5009
|
-
const apiRequest =
|
|
5023
|
+
const apiRequest = {
|
|
5024
|
+
...request,
|
|
5025
|
+
operation: 'REAUTH'
|
|
5026
|
+
};
|
|
5010
5027
|
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_);
|
|
5011
5028
|
}
|
|
5012
5029
|
|
|
@@ -5050,7 +5067,10 @@ class PhoneAuthCredential extends AuthCredential {
|
|
|
5050
5067
|
}
|
|
5051
5068
|
/** @internal */
|
|
5052
5069
|
_linkToIdToken(auth, idToken) {
|
|
5053
|
-
return linkWithPhoneNumber(auth,
|
|
5070
|
+
return linkWithPhoneNumber(auth, {
|
|
5071
|
+
idToken,
|
|
5072
|
+
...this._makeVerificationRequest()
|
|
5073
|
+
});
|
|
5054
5074
|
}
|
|
5055
5075
|
/** @internal */
|
|
5056
5076
|
_getReauthenticationResolver(auth) {
|
|
@@ -5178,19 +5198,18 @@ class ActionCodeURL {
|
|
|
5178
5198
|
* @internal
|
|
5179
5199
|
*/
|
|
5180
5200
|
constructor(actionLink) {
|
|
5181
|
-
var _a, _b, _c, _d, _e, _f;
|
|
5182
5201
|
const searchParams = querystringDecode(extractQuerystring(actionLink));
|
|
5183
|
-
const apiKey =
|
|
5184
|
-
const code =
|
|
5185
|
-
const operation = parseMode(
|
|
5202
|
+
const apiKey = searchParams["apiKey" /* QueryField.API_KEY */] ?? null;
|
|
5203
|
+
const code = searchParams["oobCode" /* QueryField.CODE */] ?? null;
|
|
5204
|
+
const operation = parseMode(searchParams["mode" /* QueryField.MODE */] ?? null);
|
|
5186
5205
|
// Validate API key, code and mode.
|
|
5187
5206
|
_assert(apiKey && code && operation, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
5188
5207
|
this.apiKey = apiKey;
|
|
5189
5208
|
this.operation = operation;
|
|
5190
5209
|
this.code = code;
|
|
5191
|
-
this.continueUrl =
|
|
5192
|
-
this.languageCode =
|
|
5193
|
-
this.tenantId =
|
|
5210
|
+
this.continueUrl = searchParams["continueUrl" /* QueryField.CONTINUE_URL */] ?? null;
|
|
5211
|
+
this.languageCode = searchParams["lang" /* QueryField.LANGUAGE_CODE */] ?? null;
|
|
5212
|
+
this.tenantId = searchParams["tenantId" /* QueryField.TENANT_ID */] ?? null;
|
|
5194
5213
|
}
|
|
5195
5214
|
/**
|
|
5196
5215
|
* Parses the email action link string and returns an {@link ActionCodeURL} if the link is valid,
|
|
@@ -5206,7 +5225,7 @@ class ActionCodeURL {
|
|
|
5206
5225
|
try {
|
|
5207
5226
|
return new ActionCodeURL(actionLink);
|
|
5208
5227
|
}
|
|
5209
|
-
catch
|
|
5228
|
+
catch {
|
|
5210
5229
|
return null;
|
|
5211
5230
|
}
|
|
5212
5231
|
}
|
|
@@ -5496,13 +5515,17 @@ class OAuthProvider extends BaseOAuthProvider {
|
|
|
5496
5515
|
* or the ID token string.
|
|
5497
5516
|
*/
|
|
5498
5517
|
credential(params) {
|
|
5499
|
-
return this._credential(
|
|
5518
|
+
return this._credential({ ...params, nonce: params.rawNonce });
|
|
5500
5519
|
}
|
|
5501
5520
|
/** An internal credential method that accepts more permissive options */
|
|
5502
5521
|
_credential(params) {
|
|
5503
5522
|
_assert(params.idToken || params.accessToken, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
5504
5523
|
// For OAuthCredential, sign in method is same as providerId.
|
|
5505
|
-
return OAuthCredential._fromParams(
|
|
5524
|
+
return OAuthCredential._fromParams({
|
|
5525
|
+
...params,
|
|
5526
|
+
providerId: this.providerId,
|
|
5527
|
+
signInMethod: this.providerId
|
|
5528
|
+
});
|
|
5506
5529
|
}
|
|
5507
5530
|
/**
|
|
5508
5531
|
* Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.
|
|
@@ -5654,7 +5677,7 @@ class FacebookAuthProvider extends BaseOAuthProvider {
|
|
|
5654
5677
|
try {
|
|
5655
5678
|
return FacebookAuthProvider.credential(tokenResponse.oauthAccessToken);
|
|
5656
5679
|
}
|
|
5657
|
-
catch
|
|
5680
|
+
catch {
|
|
5658
5681
|
return null;
|
|
5659
5682
|
}
|
|
5660
5683
|
}
|
|
@@ -5776,7 +5799,7 @@ class GoogleAuthProvider extends BaseOAuthProvider {
|
|
|
5776
5799
|
try {
|
|
5777
5800
|
return GoogleAuthProvider.credential(oauthIdToken, oauthAccessToken);
|
|
5778
5801
|
}
|
|
5779
|
-
catch
|
|
5802
|
+
catch {
|
|
5780
5803
|
return null;
|
|
5781
5804
|
}
|
|
5782
5805
|
}
|
|
@@ -5887,7 +5910,7 @@ class GithubAuthProvider extends BaseOAuthProvider {
|
|
|
5887
5910
|
try {
|
|
5888
5911
|
return GithubAuthProvider.credential(tokenResponse.oauthAccessToken);
|
|
5889
5912
|
}
|
|
5890
|
-
catch
|
|
5913
|
+
catch {
|
|
5891
5914
|
return null;
|
|
5892
5915
|
}
|
|
5893
5916
|
}
|
|
@@ -6171,7 +6194,7 @@ class TwitterAuthProvider extends BaseOAuthProvider {
|
|
|
6171
6194
|
try {
|
|
6172
6195
|
return TwitterAuthProvider.credential(oauthAccessToken, oauthTokenSecret);
|
|
6173
6196
|
}
|
|
6174
|
-
catch
|
|
6197
|
+
catch {
|
|
6175
6198
|
return null;
|
|
6176
6199
|
}
|
|
6177
6200
|
}
|
|
@@ -6287,13 +6310,12 @@ function providerIdForResponse(response) {
|
|
|
6287
6310
|
* @public
|
|
6288
6311
|
*/
|
|
6289
6312
|
async function signInAnonymously(auth) {
|
|
6290
|
-
var _a;
|
|
6291
6313
|
if (_isFirebaseServerApp(auth.app)) {
|
|
6292
6314
|
return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(auth));
|
|
6293
6315
|
}
|
|
6294
6316
|
const authInternal = _castAuth(auth);
|
|
6295
6317
|
await authInternal._initializationPromise;
|
|
6296
|
-
if (
|
|
6318
|
+
if (authInternal.currentUser?.isAnonymous) {
|
|
6297
6319
|
// If an anonymous user is already signed in, no need to sign them in again.
|
|
6298
6320
|
return new UserCredentialImpl({
|
|
6299
6321
|
user: authInternal.currentUser,
|
|
@@ -6327,7 +6349,6 @@ async function signInAnonymously(auth) {
|
|
|
6327
6349
|
*/
|
|
6328
6350
|
class MultiFactorError extends FirebaseError {
|
|
6329
6351
|
constructor(auth, error, operationType, user) {
|
|
6330
|
-
var _a;
|
|
6331
6352
|
super(error.code, error.message);
|
|
6332
6353
|
this.operationType = operationType;
|
|
6333
6354
|
this.user = user;
|
|
@@ -6335,7 +6356,7 @@ class MultiFactorError extends FirebaseError {
|
|
|
6335
6356
|
Object.setPrototypeOf(this, MultiFactorError.prototype);
|
|
6336
6357
|
this.customData = {
|
|
6337
6358
|
appName: auth.name,
|
|
6338
|
-
tenantId:
|
|
6359
|
+
tenantId: auth.tenantId ?? undefined,
|
|
6339
6360
|
_serverResponse: error.customData._serverResponse,
|
|
6340
6361
|
operationType
|
|
6341
6362
|
};
|
|
@@ -6466,7 +6487,7 @@ async function _reauthenticate(user, credential, bypassAuthState = false) {
|
|
|
6466
6487
|
}
|
|
6467
6488
|
catch (e) {
|
|
6468
6489
|
// Convert user deleted error into user mismatch
|
|
6469
|
-
if (
|
|
6490
|
+
if (e?.code === `auth/${"user-not-found" /* AuthErrorCode.USER_DELETED */}`) {
|
|
6470
6491
|
_fail(auth, "user-mismatch" /* AuthErrorCode.USER_MISMATCH */);
|
|
6471
6492
|
}
|
|
6472
6493
|
throw e;
|
|
@@ -6691,8 +6712,7 @@ class TotpMultiFactorInfoImpl extends MultiFactorInfoImpl {
|
|
|
6691
6712
|
* limitations under the License.
|
|
6692
6713
|
*/
|
|
6693
6714
|
function _setActionCodeSettingsOnRequest(auth, request, actionCodeSettings) {
|
|
6694
|
-
|
|
6695
|
-
_assert(((_a = actionCodeSettings.url) === null || _a === void 0 ? void 0 : _a.length) > 0, auth, "invalid-continue-uri" /* AuthErrorCode.INVALID_CONTINUE_URI */);
|
|
6715
|
+
_assert(actionCodeSettings.url?.length > 0, auth, "invalid-continue-uri" /* AuthErrorCode.INVALID_CONTINUE_URI */);
|
|
6696
6716
|
_assert(typeof actionCodeSettings.dynamicLinkDomain === 'undefined' ||
|
|
6697
6717
|
actionCodeSettings.dynamicLinkDomain.length > 0, auth, "invalid-dynamic-link-domain" /* AuthErrorCode.INVALID_DYNAMIC_LINK_DOMAIN */);
|
|
6698
6718
|
_assert(typeof actionCodeSettings.linkDomain === 'undefined' ||
|
|
@@ -7053,7 +7073,7 @@ async function sendSignInLinkToEmail(auth, email, actionCodeSettings) {
|
|
|
7053
7073
|
*/
|
|
7054
7074
|
function isSignInWithEmailLink(auth, emailLink) {
|
|
7055
7075
|
const actionCodeUrl = ActionCodeURL.parseLink(emailLink);
|
|
7056
|
-
return
|
|
7076
|
+
return actionCodeUrl?.operation === "EMAIL_SIGNIN" /* ActionCodeOperation.EMAIL_SIGNIN */;
|
|
7057
7077
|
}
|
|
7058
7078
|
/**
|
|
7059
7079
|
* Asynchronously signs in using an email and sign-in email link.
|
|
@@ -7426,7 +7446,6 @@ async function updateEmailOrPassword(user, email, password) {
|
|
|
7426
7446
|
*
|
|
7427
7447
|
*/
|
|
7428
7448
|
function _fromIdTokenResponse(idTokenResponse) {
|
|
7429
|
-
var _a, _b;
|
|
7430
7449
|
if (!idTokenResponse) {
|
|
7431
7450
|
return null;
|
|
7432
7451
|
}
|
|
@@ -7436,8 +7455,8 @@ function _fromIdTokenResponse(idTokenResponse) {
|
|
|
7436
7455
|
: {};
|
|
7437
7456
|
const isNewUser = idTokenResponse.isNewUser ||
|
|
7438
7457
|
idTokenResponse.kind === "identitytoolkit#SignupNewUserResponse" /* IdTokenResponseKind.SignupNewUser */;
|
|
7439
|
-
if (!providerId &&
|
|
7440
|
-
const signInProvider =
|
|
7458
|
+
if (!providerId && idTokenResponse?.idToken) {
|
|
7459
|
+
const signInProvider = _parseToken(idTokenResponse.idToken)?.firebase?.['sign_in_provider'];
|
|
7441
7460
|
if (signInProvider) {
|
|
7442
7461
|
const filteredProviderId = signInProvider !== "anonymous" /* ProviderId.ANONYMOUS */ &&
|
|
7443
7462
|
signInProvider !== "custom" /* ProviderId.CUSTOM */
|
|
@@ -7486,7 +7505,7 @@ class FacebookAdditionalUserInfo extends GenericAdditionalUserInfo {
|
|
|
7486
7505
|
}
|
|
7487
7506
|
class GithubAdditionalUserInfo extends FederatedAdditionalUserInfoWithUsername {
|
|
7488
7507
|
constructor(isNewUser, profile) {
|
|
7489
|
-
super(isNewUser, "github.com" /* ProviderId.GITHUB */, profile, typeof
|
|
7508
|
+
super(isNewUser, "github.com" /* ProviderId.GITHUB */, profile, typeof profile?.login === 'string' ? profile?.login : null);
|
|
7490
7509
|
}
|
|
7491
7510
|
}
|
|
7492
7511
|
class GoogleAdditionalUserInfo extends GenericAdditionalUserInfo {
|
|
@@ -7786,12 +7805,11 @@ class MultiFactorSessionImpl {
|
|
|
7786
7805
|
};
|
|
7787
7806
|
}
|
|
7788
7807
|
static fromJSON(obj) {
|
|
7789
|
-
|
|
7790
|
-
|
|
7791
|
-
if ((_a = obj.multiFactorSession) === null || _a === void 0 ? void 0 : _a.pendingCredential) {
|
|
7808
|
+
if (obj?.multiFactorSession) {
|
|
7809
|
+
if (obj.multiFactorSession?.pendingCredential) {
|
|
7792
7810
|
return MultiFactorSessionImpl._fromMfaPendingCredential(obj.multiFactorSession.pendingCredential);
|
|
7793
7811
|
}
|
|
7794
|
-
else if (
|
|
7812
|
+
else if (obj.multiFactorSession?.idToken) {
|
|
7795
7813
|
return MultiFactorSessionImpl._fromIdtoken(obj.multiFactorSession.idToken);
|
|
7796
7814
|
}
|
|
7797
7815
|
}
|
|
@@ -7834,7 +7852,11 @@ class MultiFactorResolverImpl {
|
|
|
7834
7852
|
delete serverResponse.mfaInfo;
|
|
7835
7853
|
delete serverResponse.mfaPendingCredential;
|
|
7836
7854
|
// Use in the new token & refresh token in the old response
|
|
7837
|
-
const idTokenResponse =
|
|
7855
|
+
const idTokenResponse = {
|
|
7856
|
+
...serverResponse,
|
|
7857
|
+
idToken: mfaResponse.idToken,
|
|
7858
|
+
refreshToken: mfaResponse.refreshToken
|
|
7859
|
+
};
|
|
7838
7860
|
// TODO: we should collapse this switch statement into UserCredentialImpl._forOperation and have it support the SIGN_IN case
|
|
7839
7861
|
switch (error.operationType) {
|
|
7840
7862
|
case "signIn" /* OperationType.SIGN_IN */:
|
|
@@ -7865,11 +7887,10 @@ class MultiFactorResolverImpl {
|
|
|
7865
7887
|
* @public
|
|
7866
7888
|
*/
|
|
7867
7889
|
function getMultiFactorResolver(auth, error) {
|
|
7868
|
-
var _a;
|
|
7869
7890
|
const authModular = getModularInstance(auth);
|
|
7870
7891
|
const errorInternal = error;
|
|
7871
7892
|
_assert(error.customData.operationType, authModular, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
7872
|
-
_assert(
|
|
7893
|
+
_assert(errorInternal.customData._serverResponse?.mfaPendingCredential, authModular, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
7873
7894
|
return MultiFactorResolverImpl._fromError(authModular, errorInternal);
|
|
7874
7895
|
}
|
|
7875
7896
|
|