@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/{web-extension-esm2017/register-eb80272b.js → web-extension-esm/register-41226db6.js}
RENAMED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ErrorFactory, isBrowserExtension, isMobileCordova, isReactNative, FirebaseError, querystring, isCloudflareWorker, isCloudWorkstation, getModularInstance, base64Decode, getUA, isIE, createSubscribe, deepEqual, pingServer, updateEmulatorBanner, querystringDecode, extractQuerystring } from '@firebase/util';
|
|
2
2
|
import { SDK_VERSION, _isFirebaseServerApp, _getProvider, _registerComponent, registerVersion } from '@firebase/app';
|
|
3
|
-
import { __rest } from 'tslib';
|
|
4
3
|
import { Component } from '@firebase/component';
|
|
5
4
|
import { Logger, LogLevel } from '@firebase/logger';
|
|
6
5
|
|
|
@@ -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
|
|
@@ -459,15 +461,13 @@ function debugAssert(assertion, message) {
|
|
|
459
461
|
* limitations under the License.
|
|
460
462
|
*/
|
|
461
463
|
function _getCurrentUrl() {
|
|
462
|
-
|
|
463
|
-
return (typeof self !== 'undefined' && ((_a = self.location) === null || _a === void 0 ? void 0 : _a.href)) || '';
|
|
464
|
+
return (typeof self !== 'undefined' && self.location?.href) || '';
|
|
464
465
|
}
|
|
465
466
|
function _isHttpOrHttps() {
|
|
466
467
|
return _getCurrentScheme() === 'http:' || _getCurrentScheme() === 'https:';
|
|
467
468
|
}
|
|
468
469
|
function _getCurrentScheme() {
|
|
469
|
-
|
|
470
|
-
return (typeof self !== 'undefined' && ((_a = self.location) === null || _a === void 0 ? void 0 : _a.protocol)) || null;
|
|
470
|
+
return (typeof self !== 'undefined' && self.location?.protocol) || null;
|
|
471
471
|
}
|
|
472
472
|
|
|
473
473
|
/**
|
|
@@ -781,7 +781,10 @@ const CookieAuthProxiedEndpoints = [
|
|
|
781
781
|
const DEFAULT_API_TIMEOUT_MS = new Delay(30000, 60000);
|
|
782
782
|
function _addTidIfNecessary(auth, request) {
|
|
783
783
|
if (auth.tenantId && !request.tenantId) {
|
|
784
|
-
return
|
|
784
|
+
return {
|
|
785
|
+
...request,
|
|
786
|
+
tenantId: auth.tenantId
|
|
787
|
+
};
|
|
785
788
|
}
|
|
786
789
|
return request;
|
|
787
790
|
}
|
|
@@ -799,14 +802,20 @@ async function _performApiRequest(auth, method, path, request, customErrorMap =
|
|
|
799
802
|
};
|
|
800
803
|
}
|
|
801
804
|
}
|
|
802
|
-
const query = querystring(
|
|
805
|
+
const query = querystring({
|
|
806
|
+
key: auth.config.apiKey,
|
|
807
|
+
...params
|
|
808
|
+
}).slice(1);
|
|
803
809
|
const headers = await auth._getAdditionalHeaders();
|
|
804
810
|
headers["Content-Type" /* HttpHeader.CONTENT_TYPE */] = 'application/json';
|
|
805
811
|
if (auth.languageCode) {
|
|
806
812
|
headers["X-Firebase-Locale" /* HttpHeader.X_FIREBASE_LOCALE */] = auth.languageCode;
|
|
807
813
|
}
|
|
808
|
-
const fetchArgs =
|
|
809
|
-
|
|
814
|
+
const fetchArgs = {
|
|
815
|
+
method,
|
|
816
|
+
headers,
|
|
817
|
+
...body
|
|
818
|
+
};
|
|
810
819
|
/* Security-conscious server-side frameworks tend to have built in mitigations for referrer
|
|
811
820
|
problems". See the Cloudflare GitHub issue #487: Error: The 'referrerPolicy' field on
|
|
812
821
|
'RequestInitializerDict' is not implemented."
|
|
@@ -822,7 +831,7 @@ async function _performApiRequest(auth, method, path, request, customErrorMap =
|
|
|
822
831
|
}
|
|
823
832
|
async function _performFetchWithErrorHandling(auth, customErrorMap, fetchFn) {
|
|
824
833
|
auth._canInitEmulator = false;
|
|
825
|
-
const errorMap =
|
|
834
|
+
const errorMap = { ...SERVER_ERROR_MAP, ...customErrorMap };
|
|
826
835
|
try {
|
|
827
836
|
const networkTimeout = new NetworkTimeout(auth);
|
|
828
837
|
const response = await Promise.race([
|
|
@@ -1163,7 +1172,7 @@ async function getIdTokenResult(user, forceRefresh = false) {
|
|
|
1163
1172
|
const claims = _parseToken(token);
|
|
1164
1173
|
_assert(claims && claims.exp && claims.auth_time && claims.iat, userInternal.auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
1165
1174
|
const firebase = typeof claims.firebase === 'object' ? claims.firebase : undefined;
|
|
1166
|
-
const signInProvider = firebase
|
|
1175
|
+
const signInProvider = firebase?.['sign_in_provider'];
|
|
1167
1176
|
return {
|
|
1168
1177
|
claims,
|
|
1169
1178
|
token,
|
|
@@ -1171,7 +1180,7 @@ async function getIdTokenResult(user, forceRefresh = false) {
|
|
|
1171
1180
|
issuedAtTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.iat)),
|
|
1172
1181
|
expirationTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.exp)),
|
|
1173
1182
|
signInProvider: signInProvider || null,
|
|
1174
|
-
signInSecondFactor:
|
|
1183
|
+
signInSecondFactor: firebase?.['sign_in_second_factor'] || null
|
|
1175
1184
|
};
|
|
1176
1185
|
}
|
|
1177
1186
|
function secondsStringToMilliseconds(seconds) {
|
|
@@ -1194,7 +1203,7 @@ function _parseToken(token) {
|
|
|
1194
1203
|
return JSON.parse(decoded);
|
|
1195
1204
|
}
|
|
1196
1205
|
catch (e) {
|
|
1197
|
-
_logError('Caught error parsing JWT payload as JSON', e
|
|
1206
|
+
_logError('Caught error parsing JWT payload as JSON', e?.toString());
|
|
1198
1207
|
return null;
|
|
1199
1208
|
}
|
|
1200
1209
|
}
|
|
@@ -1290,7 +1299,6 @@ class ProactiveRefresh {
|
|
|
1290
1299
|
}
|
|
1291
1300
|
}
|
|
1292
1301
|
getInterval(wasError) {
|
|
1293
|
-
var _a;
|
|
1294
1302
|
if (wasError) {
|
|
1295
1303
|
const interval = this.errorBackoff;
|
|
1296
1304
|
this.errorBackoff = Math.min(this.errorBackoff * 2, 960000 /* Duration.RETRY_BACKOFF_MAX */);
|
|
@@ -1299,7 +1307,7 @@ class ProactiveRefresh {
|
|
|
1299
1307
|
else {
|
|
1300
1308
|
// Reset the error backoff
|
|
1301
1309
|
this.errorBackoff = 30000 /* Duration.RETRY_BACKOFF_MIN */;
|
|
1302
|
-
const expTime =
|
|
1310
|
+
const expTime = this.user.stsTokenManager.expirationTime ?? 0;
|
|
1303
1311
|
const interval = expTime - Date.now() - 300000 /* Duration.OFFSET */;
|
|
1304
1312
|
return Math.max(0, interval);
|
|
1305
1313
|
}
|
|
@@ -1320,7 +1328,7 @@ class ProactiveRefresh {
|
|
|
1320
1328
|
}
|
|
1321
1329
|
catch (e) {
|
|
1322
1330
|
// Only retry on network errors
|
|
1323
|
-
if (
|
|
1331
|
+
if (e?.code ===
|
|
1324
1332
|
`auth/${"network-request-failed" /* AuthErrorCode.NETWORK_REQUEST_FAILED */}`) {
|
|
1325
1333
|
this.schedule(/* wasError */ true);
|
|
1326
1334
|
}
|
|
@@ -1386,14 +1394,13 @@ class UserMetadata {
|
|
|
1386
1394
|
* limitations under the License.
|
|
1387
1395
|
*/
|
|
1388
1396
|
async function _reloadWithoutSaving(user) {
|
|
1389
|
-
var _a;
|
|
1390
1397
|
const auth = user.auth;
|
|
1391
1398
|
const idToken = await user.getIdToken();
|
|
1392
1399
|
const response = await _logoutIfInvalidated(user, getAccountInfo(auth, { idToken }));
|
|
1393
|
-
_assert(response
|
|
1400
|
+
_assert(response?.users.length, auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
1394
1401
|
const coreAccount = response.users[0];
|
|
1395
1402
|
user._notifyReloadListener(coreAccount);
|
|
1396
|
-
const newProviderData =
|
|
1403
|
+
const newProviderData = coreAccount.providerUserInfo?.length
|
|
1397
1404
|
? extractProviderData(coreAccount.providerUserInfo)
|
|
1398
1405
|
: [];
|
|
1399
1406
|
const providerData = mergeProviderData(user.providerData, newProviderData);
|
|
@@ -1403,7 +1410,7 @@ async function _reloadWithoutSaving(user) {
|
|
|
1403
1410
|
// On the other hand, if it was not anonymous before, it should never be
|
|
1404
1411
|
// considered anonymous now.
|
|
1405
1412
|
const oldIsAnonymous = user.isAnonymous;
|
|
1406
|
-
const newIsAnonymous = !(user.email && coreAccount.passwordHash) && !
|
|
1413
|
+
const newIsAnonymous = !(user.email && coreAccount.passwordHash) && !providerData?.length;
|
|
1407
1414
|
const isAnonymous = !oldIsAnonymous ? false : newIsAnonymous;
|
|
1408
1415
|
const updates = {
|
|
1409
1416
|
uid: coreAccount.localId,
|
|
@@ -1440,8 +1447,7 @@ function mergeProviderData(original, newData) {
|
|
|
1440
1447
|
return [...deduped, ...newData];
|
|
1441
1448
|
}
|
|
1442
1449
|
function extractProviderData(providers) {
|
|
1443
|
-
return providers.map((
|
|
1444
|
-
var { providerId } = _a, provider = __rest(_a, ["providerId"]);
|
|
1450
|
+
return providers.map(({ providerId, ...provider }) => {
|
|
1445
1451
|
return {
|
|
1446
1452
|
providerId,
|
|
1447
1453
|
uid: provider.rawId || '',
|
|
@@ -1633,8 +1639,7 @@ function assertStringOrUndefined(assertion, appName) {
|
|
|
1633
1639
|
_assert(typeof assertion === 'string' || typeof assertion === 'undefined', "internal-error" /* AuthErrorCode.INTERNAL_ERROR */, { appName });
|
|
1634
1640
|
}
|
|
1635
1641
|
class UserImpl {
|
|
1636
|
-
constructor(
|
|
1637
|
-
var { uid, auth, stsTokenManager } = _a, opt = __rest(_a, ["uid", "auth", "stsTokenManager"]);
|
|
1642
|
+
constructor({ uid, auth, stsTokenManager, ...opt }) {
|
|
1638
1643
|
// For the user object, provider is always Firebase.
|
|
1639
1644
|
this.providerId = "firebase" /* ProviderId.FIREBASE */;
|
|
1640
1645
|
this.proactiveRefresh = new ProactiveRefresh(this);
|
|
@@ -1682,12 +1687,16 @@ class UserImpl {
|
|
|
1682
1687
|
this.phoneNumber = user.phoneNumber;
|
|
1683
1688
|
this.isAnonymous = user.isAnonymous;
|
|
1684
1689
|
this.tenantId = user.tenantId;
|
|
1685
|
-
this.providerData = user.providerData.map(userInfo => (
|
|
1690
|
+
this.providerData = user.providerData.map(userInfo => ({ ...userInfo }));
|
|
1686
1691
|
this.metadata._copy(user.metadata);
|
|
1687
1692
|
this.stsTokenManager._assign(user.stsTokenManager);
|
|
1688
1693
|
}
|
|
1689
1694
|
_clone(auth) {
|
|
1690
|
-
const newUser = new UserImpl(
|
|
1695
|
+
const newUser = new UserImpl({
|
|
1696
|
+
...this,
|
|
1697
|
+
auth,
|
|
1698
|
+
stsTokenManager: this.stsTokenManager._clone()
|
|
1699
|
+
});
|
|
1691
1700
|
newUser.metadata._copy(this.metadata);
|
|
1692
1701
|
return newUser;
|
|
1693
1702
|
}
|
|
@@ -1742,26 +1751,40 @@ class UserImpl {
|
|
|
1742
1751
|
return this.auth.signOut();
|
|
1743
1752
|
}
|
|
1744
1753
|
toJSON() {
|
|
1745
|
-
return
|
|
1754
|
+
return {
|
|
1755
|
+
uid: this.uid,
|
|
1756
|
+
email: this.email || undefined,
|
|
1757
|
+
emailVerified: this.emailVerified,
|
|
1758
|
+
displayName: this.displayName || undefined,
|
|
1759
|
+
isAnonymous: this.isAnonymous,
|
|
1760
|
+
photoURL: this.photoURL || undefined,
|
|
1761
|
+
phoneNumber: this.phoneNumber || undefined,
|
|
1762
|
+
tenantId: this.tenantId || undefined,
|
|
1763
|
+
providerData: this.providerData.map(userInfo => ({ ...userInfo })),
|
|
1764
|
+
stsTokenManager: this.stsTokenManager.toJSON(),
|
|
1746
1765
|
// Redirect event ID must be maintained in case there is a pending
|
|
1747
1766
|
// redirect event.
|
|
1748
|
-
_redirectEventId: this._redirectEventId
|
|
1767
|
+
_redirectEventId: this._redirectEventId,
|
|
1768
|
+
...this.metadata.toJSON(),
|
|
1749
1769
|
// Required for compatibility with the legacy SDK (go/firebase-auth-sdk-persistence-parsing):
|
|
1750
|
-
apiKey: this.auth.config.apiKey,
|
|
1770
|
+
apiKey: this.auth.config.apiKey,
|
|
1771
|
+
appName: this.auth.name
|
|
1772
|
+
// Missing authDomain will be tolerated by the legacy SDK.
|
|
1773
|
+
// stsTokenManager.apiKey isn't actually required (despite the legacy SDK persisting it).
|
|
1774
|
+
};
|
|
1751
1775
|
}
|
|
1752
1776
|
get refreshToken() {
|
|
1753
1777
|
return this.stsTokenManager.refreshToken || '';
|
|
1754
1778
|
}
|
|
1755
1779
|
static _fromJSON(auth, object) {
|
|
1756
|
-
|
|
1757
|
-
const
|
|
1758
|
-
const
|
|
1759
|
-
const
|
|
1760
|
-
const
|
|
1761
|
-
const
|
|
1762
|
-
const
|
|
1763
|
-
const
|
|
1764
|
-
const lastLoginAt = (_h = object.lastLoginAt) !== null && _h !== void 0 ? _h : undefined;
|
|
1780
|
+
const displayName = object.displayName ?? undefined;
|
|
1781
|
+
const email = object.email ?? undefined;
|
|
1782
|
+
const phoneNumber = object.phoneNumber ?? undefined;
|
|
1783
|
+
const photoURL = object.photoURL ?? undefined;
|
|
1784
|
+
const tenantId = object.tenantId ?? undefined;
|
|
1785
|
+
const _redirectEventId = object._redirectEventId ?? undefined;
|
|
1786
|
+
const createdAt = object.createdAt ?? undefined;
|
|
1787
|
+
const lastLoginAt = object.lastLoginAt ?? undefined;
|
|
1765
1788
|
const { uid, emailVerified, isAnonymous, providerData, stsTokenManager: plainObjectTokenManager } = object;
|
|
1766
1789
|
_assert(uid && plainObjectTokenManager, auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
1767
1790
|
const stsTokenManager = StsTokenManager.fromJSON(this.name, plainObjectTokenManager);
|
|
@@ -1791,7 +1814,7 @@ class UserImpl {
|
|
|
1791
1814
|
lastLoginAt
|
|
1792
1815
|
});
|
|
1793
1816
|
if (providerData && Array.isArray(providerData)) {
|
|
1794
|
-
user.providerData = providerData.map(userInfo => (
|
|
1817
|
+
user.providerData = providerData.map(userInfo => ({ ...userInfo }));
|
|
1795
1818
|
}
|
|
1796
1819
|
if (_redirectEventId) {
|
|
1797
1820
|
user._redirectEventId = _redirectEventId;
|
|
@@ -1828,7 +1851,7 @@ class UserImpl {
|
|
|
1828
1851
|
const providerData = coreAccount.providerUserInfo !== undefined
|
|
1829
1852
|
? extractProviderData(coreAccount.providerUserInfo)
|
|
1830
1853
|
: [];
|
|
1831
|
-
const isAnonymous = !(coreAccount.email && coreAccount.passwordHash) && !
|
|
1854
|
+
const isAnonymous = !(coreAccount.email && coreAccount.passwordHash) && !providerData?.length;
|
|
1832
1855
|
const stsTokenManager = new StsTokenManager();
|
|
1833
1856
|
stsTokenManager.updateFromIdToken(idToken);
|
|
1834
1857
|
// Initialize the Firebase Auth user.
|
|
@@ -1850,7 +1873,7 @@ class UserImpl {
|
|
|
1850
1873
|
providerData,
|
|
1851
1874
|
metadata: new UserMetadata(coreAccount.createdAt, coreAccount.lastLoginAt),
|
|
1852
1875
|
isAnonymous: !(coreAccount.email && coreAccount.passwordHash) &&
|
|
1853
|
-
!
|
|
1876
|
+
!providerData?.length
|
|
1854
1877
|
};
|
|
1855
1878
|
Object.assign(user, updates);
|
|
1856
1879
|
return user;
|
|
@@ -2049,7 +2072,7 @@ class PersistenceUserManager {
|
|
|
2049
2072
|
break;
|
|
2050
2073
|
}
|
|
2051
2074
|
}
|
|
2052
|
-
catch
|
|
2075
|
+
catch { }
|
|
2053
2076
|
}
|
|
2054
2077
|
// If we find the user in a persistence that does support migration, use
|
|
2055
2078
|
// that migration path (of only persistences that support migration)
|
|
@@ -2072,7 +2095,7 @@ class PersistenceUserManager {
|
|
|
2072
2095
|
try {
|
|
2073
2096
|
await persistence._remove(key);
|
|
2074
2097
|
}
|
|
2075
|
-
catch
|
|
2098
|
+
catch { }
|
|
2076
2099
|
}
|
|
2077
2100
|
}));
|
|
2078
2101
|
return new PersistenceUserManager(selectedPersistence, auth, userKey);
|
|
@@ -2142,7 +2165,7 @@ function _getBrowserName(userAgent) {
|
|
|
2142
2165
|
// Most modern browsers have name/version at end of user agent string.
|
|
2143
2166
|
const re = /([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/;
|
|
2144
2167
|
const matches = userAgent.match(re);
|
|
2145
|
-
if (
|
|
2168
|
+
if (matches?.length === 2) {
|
|
2146
2169
|
return matches[1];
|
|
2147
2170
|
}
|
|
2148
2171
|
}
|
|
@@ -2182,8 +2205,7 @@ function _isIOS7Or8(ua = getUA()) {
|
|
|
2182
2205
|
/(iPad|iPhone|iPod).*OS 8_\d/i.test(ua));
|
|
2183
2206
|
}
|
|
2184
2207
|
function _isIOSStandalone(ua = getUA()) {
|
|
2185
|
-
|
|
2186
|
-
return _isIOS(ua) && !!((_a = window.navigator) === null || _a === void 0 ? void 0 : _a.standalone);
|
|
2208
|
+
return _isIOS(ua) && !!window.navigator?.standalone;
|
|
2187
2209
|
}
|
|
2188
2210
|
function _isIE10() {
|
|
2189
2211
|
return isIE() && document.documentMode === 10;
|
|
@@ -2314,7 +2336,7 @@ class AuthMiddlewareQueue {
|
|
|
2314
2336
|
}
|
|
2315
2337
|
}
|
|
2316
2338
|
throw this.auth._errorFactory.create("login-blocked" /* AuthErrorCode.LOGIN_BLOCKED */, {
|
|
2317
|
-
originalMessage: e
|
|
2339
|
+
originalMessage: e?.message
|
|
2318
2340
|
});
|
|
2319
2341
|
}
|
|
2320
2342
|
}
|
|
@@ -2372,13 +2394,12 @@ const MINIMUM_MIN_PASSWORD_LENGTH = 6;
|
|
|
2372
2394
|
*/
|
|
2373
2395
|
class PasswordPolicyImpl {
|
|
2374
2396
|
constructor(response) {
|
|
2375
|
-
var _a, _b, _c, _d;
|
|
2376
2397
|
// Only include custom strength options defined in the response.
|
|
2377
2398
|
const responseOptions = response.customStrengthOptions;
|
|
2378
2399
|
this.customStrengthOptions = {};
|
|
2379
2400
|
// TODO: Remove once the backend is updated to include the minimum min password length instead of undefined when there is no minimum length set.
|
|
2380
2401
|
this.customStrengthOptions.minPasswordLength =
|
|
2381
|
-
|
|
2402
|
+
responseOptions.minPasswordLength ?? MINIMUM_MIN_PASSWORD_LENGTH;
|
|
2382
2403
|
if (responseOptions.maxPasswordLength) {
|
|
2383
2404
|
this.customStrengthOptions.maxPasswordLength =
|
|
2384
2405
|
responseOptions.maxPasswordLength;
|
|
@@ -2405,12 +2426,11 @@ class PasswordPolicyImpl {
|
|
|
2405
2426
|
}
|
|
2406
2427
|
// Use an empty string if no non-alphanumeric characters are specified in the response.
|
|
2407
2428
|
this.allowedNonAlphanumericCharacters =
|
|
2408
|
-
|
|
2409
|
-
this.forceUpgradeOnSignin =
|
|
2429
|
+
response.allowedNonAlphanumericCharacters?.join('') ?? '';
|
|
2430
|
+
this.forceUpgradeOnSignin = response.forceUpgradeOnSignin ?? false;
|
|
2410
2431
|
this.schemaVersion = response.schemaVersion;
|
|
2411
2432
|
}
|
|
2412
2433
|
validatePassword(password) {
|
|
2413
|
-
var _a, _b, _c, _d, _e, _f;
|
|
2414
2434
|
const status = {
|
|
2415
2435
|
isValid: true,
|
|
2416
2436
|
passwordPolicy: this
|
|
@@ -2419,12 +2439,12 @@ class PasswordPolicyImpl {
|
|
|
2419
2439
|
this.validatePasswordLengthOptions(password, status);
|
|
2420
2440
|
this.validatePasswordCharacterOptions(password, status);
|
|
2421
2441
|
// Combine the status into single isValid property.
|
|
2422
|
-
status.isValid && (status.isValid =
|
|
2423
|
-
status.isValid && (status.isValid =
|
|
2424
|
-
status.isValid && (status.isValid =
|
|
2425
|
-
status.isValid && (status.isValid =
|
|
2426
|
-
status.isValid && (status.isValid =
|
|
2427
|
-
status.isValid && (status.isValid =
|
|
2442
|
+
status.isValid && (status.isValid = status.meetsMinPasswordLength ?? true);
|
|
2443
|
+
status.isValid && (status.isValid = status.meetsMaxPasswordLength ?? true);
|
|
2444
|
+
status.isValid && (status.isValid = status.containsLowercaseLetter ?? true);
|
|
2445
|
+
status.isValid && (status.isValid = status.containsUppercaseLetter ?? true);
|
|
2446
|
+
status.isValid && (status.isValid = status.containsNumericCharacter ?? true);
|
|
2447
|
+
status.isValid && (status.isValid = status.containsNonAlphanumericCharacter ?? true);
|
|
2428
2448
|
return status;
|
|
2429
2449
|
}
|
|
2430
2450
|
/**
|
|
@@ -2561,18 +2581,17 @@ class AuthImpl {
|
|
|
2561
2581
|
// Have to check for app deletion throughout initialization (after each
|
|
2562
2582
|
// promise resolution)
|
|
2563
2583
|
this._initializationPromise = this.queue(async () => {
|
|
2564
|
-
var _a, _b, _c;
|
|
2565
2584
|
if (this._deleted) {
|
|
2566
2585
|
return;
|
|
2567
2586
|
}
|
|
2568
2587
|
this.persistenceManager = await PersistenceUserManager.create(this, persistenceHierarchy);
|
|
2569
|
-
|
|
2588
|
+
this._resolvePersistenceManagerAvailable?.();
|
|
2570
2589
|
if (this._deleted) {
|
|
2571
2590
|
return;
|
|
2572
2591
|
}
|
|
2573
2592
|
// Initialize the resolver early if necessary (only applicable to web:
|
|
2574
2593
|
// this will cause the iframe to load immediately in certain cases)
|
|
2575
|
-
if (
|
|
2594
|
+
if (this._popupRedirectResolver?._shouldInitProactively) {
|
|
2576
2595
|
// If this fails, don't halt auth loading
|
|
2577
2596
|
try {
|
|
2578
2597
|
await this._popupRedirectResolver._initialize(this);
|
|
@@ -2582,7 +2601,7 @@ class AuthImpl {
|
|
|
2582
2601
|
}
|
|
2583
2602
|
}
|
|
2584
2603
|
await this.initializeCurrentUser(popupRedirectResolver);
|
|
2585
|
-
this.lastNotifiedUid =
|
|
2604
|
+
this.lastNotifiedUid = this.currentUser?.uid || null;
|
|
2586
2605
|
if (this._deleted) {
|
|
2587
2606
|
return;
|
|
2588
2607
|
}
|
|
@@ -2627,7 +2646,6 @@ class AuthImpl {
|
|
|
2627
2646
|
}
|
|
2628
2647
|
}
|
|
2629
2648
|
async initializeCurrentUser(popupRedirectResolver) {
|
|
2630
|
-
var _a;
|
|
2631
2649
|
if (_isFirebaseServerApp(this.app)) {
|
|
2632
2650
|
const idToken = this.app.settings.authIdToken;
|
|
2633
2651
|
if (idToken) {
|
|
@@ -2647,15 +2665,15 @@ class AuthImpl {
|
|
|
2647
2665
|
let needsTocheckMiddleware = false;
|
|
2648
2666
|
if (popupRedirectResolver && this.config.authDomain) {
|
|
2649
2667
|
await this.getOrInitRedirectPersistenceManager();
|
|
2650
|
-
const redirectUserEventId =
|
|
2651
|
-
const storedUserEventId = futureCurrentUser
|
|
2668
|
+
const redirectUserEventId = this.redirectUser?._redirectEventId;
|
|
2669
|
+
const storedUserEventId = futureCurrentUser?._redirectEventId;
|
|
2652
2670
|
const result = await this.tryRedirectSignIn(popupRedirectResolver);
|
|
2653
2671
|
// If the stored user (i.e. the old "currentUser") has a redirectId that
|
|
2654
2672
|
// matches the redirect user, then we want to initially sign in with the
|
|
2655
2673
|
// new user object from result.
|
|
2656
2674
|
// TODO(samgho): More thoroughly test all of this
|
|
2657
2675
|
if ((!redirectUserEventId || redirectUserEventId === storedUserEventId) &&
|
|
2658
|
-
|
|
2676
|
+
result?.user) {
|
|
2659
2677
|
futureCurrentUser = result.user;
|
|
2660
2678
|
needsTocheckMiddleware = true;
|
|
2661
2679
|
}
|
|
@@ -2730,7 +2748,7 @@ class AuthImpl {
|
|
|
2730
2748
|
await _reloadWithoutSaving(user);
|
|
2731
2749
|
}
|
|
2732
2750
|
catch (e) {
|
|
2733
|
-
if (
|
|
2751
|
+
if (e?.code !==
|
|
2734
2752
|
`auth/${"network-request-failed" /* AuthErrorCode.NETWORK_REQUEST_FAILED */}`) {
|
|
2735
2753
|
// Something's wrong with the user's token. Log them out and remove
|
|
2736
2754
|
// them from storage
|
|
@@ -2887,12 +2905,11 @@ class AuthImpl {
|
|
|
2887
2905
|
}
|
|
2888
2906
|
}
|
|
2889
2907
|
toJSON() {
|
|
2890
|
-
var _a;
|
|
2891
2908
|
return {
|
|
2892
2909
|
apiKey: this.config.apiKey,
|
|
2893
2910
|
authDomain: this.config.authDomain,
|
|
2894
2911
|
appName: this.name,
|
|
2895
|
-
currentUser:
|
|
2912
|
+
currentUser: this._currentUser?.toJSON()
|
|
2896
2913
|
};
|
|
2897
2914
|
}
|
|
2898
2915
|
async _setRedirectUser(user, popupRedirectResolver) {
|
|
@@ -2913,16 +2930,15 @@ class AuthImpl {
|
|
|
2913
2930
|
return this.redirectPersistenceManager;
|
|
2914
2931
|
}
|
|
2915
2932
|
async _redirectUserForId(id) {
|
|
2916
|
-
var _a, _b;
|
|
2917
2933
|
// Make sure we've cleared any pending persistence actions if we're not in
|
|
2918
2934
|
// the initializer
|
|
2919
2935
|
if (this._isInitialized) {
|
|
2920
2936
|
await this.queue(async () => { });
|
|
2921
2937
|
}
|
|
2922
|
-
if (
|
|
2938
|
+
if (this._currentUser?._redirectEventId === id) {
|
|
2923
2939
|
return this._currentUser;
|
|
2924
2940
|
}
|
|
2925
|
-
if (
|
|
2941
|
+
if (this.redirectUser?._redirectEventId === id) {
|
|
2926
2942
|
return this.redirectUser;
|
|
2927
2943
|
}
|
|
2928
2944
|
return null;
|
|
@@ -2958,12 +2974,11 @@ class AuthImpl {
|
|
|
2958
2974
|
return this.currentUser;
|
|
2959
2975
|
}
|
|
2960
2976
|
notifyAuthListeners() {
|
|
2961
|
-
var _a, _b;
|
|
2962
2977
|
if (!this._isInitialized) {
|
|
2963
2978
|
return;
|
|
2964
2979
|
}
|
|
2965
2980
|
this.idTokenSubscription.next(this.currentUser);
|
|
2966
|
-
const currentUid =
|
|
2981
|
+
const currentUid = this.currentUser?.uid ?? null;
|
|
2967
2982
|
if (this.lastNotifiedUid !== currentUid) {
|
|
2968
2983
|
this.lastNotifiedUid = currentUid;
|
|
2969
2984
|
this.authStateSubscription.next(this.currentUser);
|
|
@@ -3048,7 +3063,6 @@ class AuthImpl {
|
|
|
3048
3063
|
return this.frameworks;
|
|
3049
3064
|
}
|
|
3050
3065
|
async _getAdditionalHeaders() {
|
|
3051
|
-
var _a;
|
|
3052
3066
|
// Additional headers on every request
|
|
3053
3067
|
const headers = {
|
|
3054
3068
|
["X-Client-Version" /* HttpHeader.X_CLIENT_VERSION */]: this.clientVersion
|
|
@@ -3057,10 +3071,11 @@ class AuthImpl {
|
|
|
3057
3071
|
headers["X-Firebase-gmpid" /* HttpHeader.X_FIREBASE_GMPID */] = this.app.options.appId;
|
|
3058
3072
|
}
|
|
3059
3073
|
// If the heartbeat service exists, add the heartbeat string
|
|
3060
|
-
const heartbeatsHeader = await
|
|
3074
|
+
const heartbeatsHeader = await this.heartbeatServiceProvider
|
|
3061
3075
|
.getImmediate({
|
|
3062
3076
|
optional: true
|
|
3063
|
-
})
|
|
3077
|
+
})
|
|
3078
|
+
?.getHeartbeatsHeader();
|
|
3064
3079
|
if (heartbeatsHeader) {
|
|
3065
3080
|
headers["X-Firebase-Client" /* HttpHeader.X_FIREBASE_CLIENT */] = heartbeatsHeader;
|
|
3066
3081
|
}
|
|
@@ -3072,20 +3087,20 @@ class AuthImpl {
|
|
|
3072
3087
|
return headers;
|
|
3073
3088
|
}
|
|
3074
3089
|
async _getAppCheckToken() {
|
|
3075
|
-
var _a;
|
|
3076
3090
|
if (_isFirebaseServerApp(this.app) && this.app.settings.appCheckToken) {
|
|
3077
3091
|
return this.app.settings.appCheckToken;
|
|
3078
3092
|
}
|
|
3079
|
-
const appCheckTokenResult = await
|
|
3080
|
-
.getImmediate({ optional: true })
|
|
3081
|
-
|
|
3093
|
+
const appCheckTokenResult = await this.appCheckServiceProvider
|
|
3094
|
+
.getImmediate({ optional: true })
|
|
3095
|
+
?.getToken();
|
|
3096
|
+
if (appCheckTokenResult?.error) {
|
|
3082
3097
|
// Context: appCheck.getToken() will never throw even if an error happened.
|
|
3083
3098
|
// In the error case, a dummy token will be returned along with an error field describing
|
|
3084
3099
|
// the error. In general, we shouldn't care about the error condition and just use
|
|
3085
3100
|
// the token (actual or dummy) to send requests.
|
|
3086
3101
|
_logWarn(`Error while retrieving App Check token: ${appCheckTokenResult.error}`);
|
|
3087
3102
|
}
|
|
3088
|
-
return appCheckTokenResult
|
|
3103
|
+
return appCheckTokenResult?.token;
|
|
3089
3104
|
}
|
|
3090
3105
|
}
|
|
3091
3106
|
/**
|
|
@@ -3185,20 +3200,17 @@ class MockReCaptcha {
|
|
|
3185
3200
|
return id;
|
|
3186
3201
|
}
|
|
3187
3202
|
reset(optWidgetId) {
|
|
3188
|
-
var _a;
|
|
3189
3203
|
const id = optWidgetId || _WIDGET_ID_START;
|
|
3190
|
-
void
|
|
3204
|
+
void this._widgets.get(id)?.delete();
|
|
3191
3205
|
this._widgets.delete(id);
|
|
3192
3206
|
}
|
|
3193
3207
|
getResponse(optWidgetId) {
|
|
3194
|
-
var _a;
|
|
3195
3208
|
const id = optWidgetId || _WIDGET_ID_START;
|
|
3196
|
-
return
|
|
3209
|
+
return this._widgets.get(id)?.getResponse() || '';
|
|
3197
3210
|
}
|
|
3198
3211
|
async execute(optWidgetId) {
|
|
3199
|
-
var _a;
|
|
3200
3212
|
const id = optWidgetId || _WIDGET_ID_START;
|
|
3201
|
-
void
|
|
3213
|
+
void this._widgets.get(id)?.execute();
|
|
3202
3214
|
return '';
|
|
3203
3215
|
}
|
|
3204
3216
|
}
|
|
@@ -3438,7 +3450,7 @@ async function injectRecaptchaFields(auth, request, action, isCaptchaResp = fals
|
|
|
3438
3450
|
captchaResponse = await verifier.verify(action, true);
|
|
3439
3451
|
}
|
|
3440
3452
|
}
|
|
3441
|
-
const newRequest =
|
|
3453
|
+
const newRequest = { ...request };
|
|
3442
3454
|
if (action === "mfaSmsEnrollment" /* RecaptchaActionName.MFA_SMS_ENROLLMENT */ ||
|
|
3443
3455
|
action === "mfaSmsSignIn" /* RecaptchaActionName.MFA_SMS_SIGNIN */) {
|
|
3444
3456
|
if ('phoneEnrollmentInfo' in newRequest) {
|
|
@@ -3480,10 +3492,10 @@ async function injectRecaptchaFields(auth, request, action, isCaptchaResp = fals
|
|
|
3480
3492
|
return newRequest;
|
|
3481
3493
|
}
|
|
3482
3494
|
async function handleRecaptchaFlow(authInstance, request, actionName, actionMethod, recaptchaAuthProvider) {
|
|
3483
|
-
var _a, _b;
|
|
3484
3495
|
if (recaptchaAuthProvider === "EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */) {
|
|
3485
|
-
if (
|
|
3486
|
-
._getRecaptchaConfig()
|
|
3496
|
+
if (authInstance
|
|
3497
|
+
._getRecaptchaConfig()
|
|
3498
|
+
?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */)) {
|
|
3487
3499
|
const requestWithRecaptcha = await injectRecaptchaFields(authInstance, request, actionName, actionName === "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */);
|
|
3488
3500
|
return actionMethod(authInstance, requestWithRecaptcha);
|
|
3489
3501
|
}
|
|
@@ -3501,13 +3513,14 @@ async function handleRecaptchaFlow(authInstance, request, actionName, actionMeth
|
|
|
3501
3513
|
}
|
|
3502
3514
|
}
|
|
3503
3515
|
else if (recaptchaAuthProvider === "PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */) {
|
|
3504
|
-
if (
|
|
3505
|
-
._getRecaptchaConfig()
|
|
3516
|
+
if (authInstance
|
|
3517
|
+
._getRecaptchaConfig()
|
|
3518
|
+
?.isProviderEnabled("PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */)) {
|
|
3506
3519
|
const requestWithRecaptcha = await injectRecaptchaFields(authInstance, request, actionName);
|
|
3507
3520
|
return actionMethod(authInstance, requestWithRecaptcha).catch(async (error) => {
|
|
3508
|
-
|
|
3509
|
-
|
|
3510
|
-
|
|
3521
|
+
if (authInstance
|
|
3522
|
+
._getRecaptchaConfig()
|
|
3523
|
+
?.getProviderEnforcementState("PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */) === "AUDIT" /* EnforcementState.AUDIT */) {
|
|
3511
3524
|
// AUDIT mode
|
|
3512
3525
|
if (error.code === `auth/${"missing-recaptcha-token" /* AuthErrorCode.MISSING_RECAPTCHA_TOKEN */}` ||
|
|
3513
3526
|
error.code === `auth/${"invalid-app-credential" /* AuthErrorCode.INVALID_APP_CREDENTIAL */}`) {
|
|
@@ -3604,7 +3617,7 @@ function initializeAuth(app, deps) {
|
|
|
3604
3617
|
if (provider.isInitialized()) {
|
|
3605
3618
|
const auth = provider.getImmediate();
|
|
3606
3619
|
const initialOptions = provider.getOptions();
|
|
3607
|
-
if (deepEqual(initialOptions, deps
|
|
3620
|
+
if (deepEqual(initialOptions, deps ?? {})) {
|
|
3608
3621
|
return auth;
|
|
3609
3622
|
}
|
|
3610
3623
|
else {
|
|
@@ -3615,15 +3628,15 @@ function initializeAuth(app, deps) {
|
|
|
3615
3628
|
return auth;
|
|
3616
3629
|
}
|
|
3617
3630
|
function _initializeAuthInstance(auth, deps) {
|
|
3618
|
-
const persistence =
|
|
3631
|
+
const persistence = deps?.persistence || [];
|
|
3619
3632
|
const hierarchy = (Array.isArray(persistence) ? persistence : [persistence]).map(_getInstance);
|
|
3620
|
-
if (deps
|
|
3633
|
+
if (deps?.errorMap) {
|
|
3621
3634
|
auth._updateErrorMap(deps.errorMap);
|
|
3622
3635
|
}
|
|
3623
3636
|
// This promise is intended to float; auth initialization happens in the
|
|
3624
3637
|
// background, meanwhile the auth object may be used by the app.
|
|
3625
3638
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
3626
|
-
auth._initializeWithPersistence(hierarchy, deps
|
|
3639
|
+
auth._initializeWithPersistence(hierarchy, deps?.popupRedirectResolver);
|
|
3627
3640
|
}
|
|
3628
3641
|
|
|
3629
3642
|
/**
|
|
@@ -3651,7 +3664,7 @@ function _initializeAuthInstance(auth, deps) {
|
|
|
3651
3664
|
function connectAuthEmulator(auth, url, options) {
|
|
3652
3665
|
const authInternal = _castAuth(auth);
|
|
3653
3666
|
_assert(/^https?:\/\//.test(url), authInternal, "invalid-emulator-scheme" /* AuthErrorCode.INVALID_EMULATOR_SCHEME */);
|
|
3654
|
-
const disableWarnings = !!
|
|
3667
|
+
const disableWarnings = !!options?.disableWarnings;
|
|
3655
3668
|
const protocol = extractProtocol(url);
|
|
3656
3669
|
const { host, port } = extractHostAndPort(url);
|
|
3657
3670
|
const portStr = port === null ? '' : `:${port}`;
|
|
@@ -3977,7 +3990,7 @@ class EmailAuthCredential extends AuthCredential {
|
|
|
3977
3990
|
*/
|
|
3978
3991
|
static fromJSON(json) {
|
|
3979
3992
|
const obj = typeof json === 'string' ? JSON.parse(json) : json;
|
|
3980
|
-
if (
|
|
3993
|
+
if (obj?.email && obj?.password) {
|
|
3981
3994
|
if (obj.signInMethod === "password" /* SignInMethod.EMAIL_PASSWORD */) {
|
|
3982
3995
|
return this._fromEmailAndPassword(obj.email, obj.password);
|
|
3983
3996
|
}
|
|
@@ -4137,7 +4150,7 @@ class OAuthCredential extends AuthCredential {
|
|
|
4137
4150
|
*/
|
|
4138
4151
|
static fromJSON(json) {
|
|
4139
4152
|
const obj = typeof json === 'string' ? JSON.parse(json) : json;
|
|
4140
|
-
const { providerId, signInMethod
|
|
4153
|
+
const { providerId, signInMethod, ...rest } = obj;
|
|
4141
4154
|
if (!providerId || !signInMethod) {
|
|
4142
4155
|
return null;
|
|
4143
4156
|
}
|
|
@@ -4228,7 +4241,10 @@ const VERIFY_PHONE_NUMBER_FOR_EXISTING_ERROR_MAP_ = {
|
|
|
4228
4241
|
["USER_NOT_FOUND" /* ServerError.USER_NOT_FOUND */]: "user-not-found" /* AuthErrorCode.USER_DELETED */
|
|
4229
4242
|
};
|
|
4230
4243
|
async function verifyPhoneNumberForExisting(auth, request) {
|
|
4231
|
-
const apiRequest =
|
|
4244
|
+
const apiRequest = {
|
|
4245
|
+
...request,
|
|
4246
|
+
operation: 'REAUTH'
|
|
4247
|
+
};
|
|
4232
4248
|
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_);
|
|
4233
4249
|
}
|
|
4234
4250
|
|
|
@@ -4272,7 +4288,10 @@ class PhoneAuthCredential extends AuthCredential {
|
|
|
4272
4288
|
}
|
|
4273
4289
|
/** @internal */
|
|
4274
4290
|
_linkToIdToken(auth, idToken) {
|
|
4275
|
-
return linkWithPhoneNumber(auth,
|
|
4291
|
+
return linkWithPhoneNumber(auth, {
|
|
4292
|
+
idToken,
|
|
4293
|
+
...this._makeVerificationRequest()
|
|
4294
|
+
});
|
|
4276
4295
|
}
|
|
4277
4296
|
/** @internal */
|
|
4278
4297
|
_getReauthenticationResolver(auth) {
|
|
@@ -4400,19 +4419,18 @@ class ActionCodeURL {
|
|
|
4400
4419
|
* @internal
|
|
4401
4420
|
*/
|
|
4402
4421
|
constructor(actionLink) {
|
|
4403
|
-
var _a, _b, _c, _d, _e, _f;
|
|
4404
4422
|
const searchParams = querystringDecode(extractQuerystring(actionLink));
|
|
4405
|
-
const apiKey =
|
|
4406
|
-
const code =
|
|
4407
|
-
const operation = parseMode(
|
|
4423
|
+
const apiKey = searchParams["apiKey" /* QueryField.API_KEY */] ?? null;
|
|
4424
|
+
const code = searchParams["oobCode" /* QueryField.CODE */] ?? null;
|
|
4425
|
+
const operation = parseMode(searchParams["mode" /* QueryField.MODE */] ?? null);
|
|
4408
4426
|
// Validate API key, code and mode.
|
|
4409
4427
|
_assert(apiKey && code && operation, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
4410
4428
|
this.apiKey = apiKey;
|
|
4411
4429
|
this.operation = operation;
|
|
4412
4430
|
this.code = code;
|
|
4413
|
-
this.continueUrl =
|
|
4414
|
-
this.languageCode =
|
|
4415
|
-
this.tenantId =
|
|
4431
|
+
this.continueUrl = searchParams["continueUrl" /* QueryField.CONTINUE_URL */] ?? null;
|
|
4432
|
+
this.languageCode = searchParams["lang" /* QueryField.LANGUAGE_CODE */] ?? null;
|
|
4433
|
+
this.tenantId = searchParams["tenantId" /* QueryField.TENANT_ID */] ?? null;
|
|
4416
4434
|
}
|
|
4417
4435
|
/**
|
|
4418
4436
|
* Parses the email action link string and returns an {@link ActionCodeURL} if the link is valid,
|
|
@@ -4428,7 +4446,7 @@ class ActionCodeURL {
|
|
|
4428
4446
|
try {
|
|
4429
4447
|
return new ActionCodeURL(actionLink);
|
|
4430
4448
|
}
|
|
4431
|
-
catch
|
|
4449
|
+
catch {
|
|
4432
4450
|
return null;
|
|
4433
4451
|
}
|
|
4434
4452
|
}
|
|
@@ -4718,13 +4736,17 @@ class OAuthProvider extends BaseOAuthProvider {
|
|
|
4718
4736
|
* or the ID token string.
|
|
4719
4737
|
*/
|
|
4720
4738
|
credential(params) {
|
|
4721
|
-
return this._credential(
|
|
4739
|
+
return this._credential({ ...params, nonce: params.rawNonce });
|
|
4722
4740
|
}
|
|
4723
4741
|
/** An internal credential method that accepts more permissive options */
|
|
4724
4742
|
_credential(params) {
|
|
4725
4743
|
_assert(params.idToken || params.accessToken, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
4726
4744
|
// For OAuthCredential, sign in method is same as providerId.
|
|
4727
|
-
return OAuthCredential._fromParams(
|
|
4745
|
+
return OAuthCredential._fromParams({
|
|
4746
|
+
...params,
|
|
4747
|
+
providerId: this.providerId,
|
|
4748
|
+
signInMethod: this.providerId
|
|
4749
|
+
});
|
|
4728
4750
|
}
|
|
4729
4751
|
/**
|
|
4730
4752
|
* Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.
|
|
@@ -4876,7 +4898,7 @@ class FacebookAuthProvider extends BaseOAuthProvider {
|
|
|
4876
4898
|
try {
|
|
4877
4899
|
return FacebookAuthProvider.credential(tokenResponse.oauthAccessToken);
|
|
4878
4900
|
}
|
|
4879
|
-
catch
|
|
4901
|
+
catch {
|
|
4880
4902
|
return null;
|
|
4881
4903
|
}
|
|
4882
4904
|
}
|
|
@@ -4998,7 +5020,7 @@ class GoogleAuthProvider extends BaseOAuthProvider {
|
|
|
4998
5020
|
try {
|
|
4999
5021
|
return GoogleAuthProvider.credential(oauthIdToken, oauthAccessToken);
|
|
5000
5022
|
}
|
|
5001
|
-
catch
|
|
5023
|
+
catch {
|
|
5002
5024
|
return null;
|
|
5003
5025
|
}
|
|
5004
5026
|
}
|
|
@@ -5109,7 +5131,7 @@ class GithubAuthProvider extends BaseOAuthProvider {
|
|
|
5109
5131
|
try {
|
|
5110
5132
|
return GithubAuthProvider.credential(tokenResponse.oauthAccessToken);
|
|
5111
5133
|
}
|
|
5112
|
-
catch
|
|
5134
|
+
catch {
|
|
5113
5135
|
return null;
|
|
5114
5136
|
}
|
|
5115
5137
|
}
|
|
@@ -5393,7 +5415,7 @@ class TwitterAuthProvider extends BaseOAuthProvider {
|
|
|
5393
5415
|
try {
|
|
5394
5416
|
return TwitterAuthProvider.credential(oauthAccessToken, oauthTokenSecret);
|
|
5395
5417
|
}
|
|
5396
|
-
catch
|
|
5418
|
+
catch {
|
|
5397
5419
|
return null;
|
|
5398
5420
|
}
|
|
5399
5421
|
}
|
|
@@ -5509,13 +5531,12 @@ function providerIdForResponse(response) {
|
|
|
5509
5531
|
* @public
|
|
5510
5532
|
*/
|
|
5511
5533
|
async function signInAnonymously(auth) {
|
|
5512
|
-
var _a;
|
|
5513
5534
|
if (_isFirebaseServerApp(auth.app)) {
|
|
5514
5535
|
return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(auth));
|
|
5515
5536
|
}
|
|
5516
5537
|
const authInternal = _castAuth(auth);
|
|
5517
5538
|
await authInternal._initializationPromise;
|
|
5518
|
-
if (
|
|
5539
|
+
if (authInternal.currentUser?.isAnonymous) {
|
|
5519
5540
|
// If an anonymous user is already signed in, no need to sign them in again.
|
|
5520
5541
|
return new UserCredentialImpl({
|
|
5521
5542
|
user: authInternal.currentUser,
|
|
@@ -5549,7 +5570,6 @@ async function signInAnonymously(auth) {
|
|
|
5549
5570
|
*/
|
|
5550
5571
|
class MultiFactorError extends FirebaseError {
|
|
5551
5572
|
constructor(auth, error, operationType, user) {
|
|
5552
|
-
var _a;
|
|
5553
5573
|
super(error.code, error.message);
|
|
5554
5574
|
this.operationType = operationType;
|
|
5555
5575
|
this.user = user;
|
|
@@ -5557,7 +5577,7 @@ class MultiFactorError extends FirebaseError {
|
|
|
5557
5577
|
Object.setPrototypeOf(this, MultiFactorError.prototype);
|
|
5558
5578
|
this.customData = {
|
|
5559
5579
|
appName: auth.name,
|
|
5560
|
-
tenantId:
|
|
5580
|
+
tenantId: auth.tenantId ?? undefined,
|
|
5561
5581
|
_serverResponse: error.customData._serverResponse,
|
|
5562
5582
|
operationType
|
|
5563
5583
|
};
|
|
@@ -5688,7 +5708,7 @@ async function _reauthenticate(user, credential, bypassAuthState = false) {
|
|
|
5688
5708
|
}
|
|
5689
5709
|
catch (e) {
|
|
5690
5710
|
// Convert user deleted error into user mismatch
|
|
5691
|
-
if (
|
|
5711
|
+
if (e?.code === `auth/${"user-not-found" /* AuthErrorCode.USER_DELETED */}`) {
|
|
5692
5712
|
_fail(auth, "user-mismatch" /* AuthErrorCode.USER_MISMATCH */);
|
|
5693
5713
|
}
|
|
5694
5714
|
throw e;
|
|
@@ -5913,8 +5933,7 @@ class TotpMultiFactorInfoImpl extends MultiFactorInfoImpl {
|
|
|
5913
5933
|
* limitations under the License.
|
|
5914
5934
|
*/
|
|
5915
5935
|
function _setActionCodeSettingsOnRequest(auth, request, actionCodeSettings) {
|
|
5916
|
-
|
|
5917
|
-
_assert(((_a = actionCodeSettings.url) === null || _a === void 0 ? void 0 : _a.length) > 0, auth, "invalid-continue-uri" /* AuthErrorCode.INVALID_CONTINUE_URI */);
|
|
5936
|
+
_assert(actionCodeSettings.url?.length > 0, auth, "invalid-continue-uri" /* AuthErrorCode.INVALID_CONTINUE_URI */);
|
|
5918
5937
|
_assert(typeof actionCodeSettings.dynamicLinkDomain === 'undefined' ||
|
|
5919
5938
|
actionCodeSettings.dynamicLinkDomain.length > 0, auth, "invalid-dynamic-link-domain" /* AuthErrorCode.INVALID_DYNAMIC_LINK_DOMAIN */);
|
|
5920
5939
|
_assert(typeof actionCodeSettings.linkDomain === 'undefined' ||
|
|
@@ -6275,7 +6294,7 @@ async function sendSignInLinkToEmail(auth, email, actionCodeSettings) {
|
|
|
6275
6294
|
*/
|
|
6276
6295
|
function isSignInWithEmailLink(auth, emailLink) {
|
|
6277
6296
|
const actionCodeUrl = ActionCodeURL.parseLink(emailLink);
|
|
6278
|
-
return
|
|
6297
|
+
return actionCodeUrl?.operation === "EMAIL_SIGNIN" /* ActionCodeOperation.EMAIL_SIGNIN */;
|
|
6279
6298
|
}
|
|
6280
6299
|
/**
|
|
6281
6300
|
* Asynchronously signs in using an email and sign-in email link.
|
|
@@ -6648,7 +6667,6 @@ async function updateEmailOrPassword(user, email, password) {
|
|
|
6648
6667
|
*
|
|
6649
6668
|
*/
|
|
6650
6669
|
function _fromIdTokenResponse(idTokenResponse) {
|
|
6651
|
-
var _a, _b;
|
|
6652
6670
|
if (!idTokenResponse) {
|
|
6653
6671
|
return null;
|
|
6654
6672
|
}
|
|
@@ -6658,8 +6676,8 @@ function _fromIdTokenResponse(idTokenResponse) {
|
|
|
6658
6676
|
: {};
|
|
6659
6677
|
const isNewUser = idTokenResponse.isNewUser ||
|
|
6660
6678
|
idTokenResponse.kind === "identitytoolkit#SignupNewUserResponse" /* IdTokenResponseKind.SignupNewUser */;
|
|
6661
|
-
if (!providerId &&
|
|
6662
|
-
const signInProvider =
|
|
6679
|
+
if (!providerId && idTokenResponse?.idToken) {
|
|
6680
|
+
const signInProvider = _parseToken(idTokenResponse.idToken)?.firebase?.['sign_in_provider'];
|
|
6663
6681
|
if (signInProvider) {
|
|
6664
6682
|
const filteredProviderId = signInProvider !== "anonymous" /* ProviderId.ANONYMOUS */ &&
|
|
6665
6683
|
signInProvider !== "custom" /* ProviderId.CUSTOM */
|
|
@@ -6708,7 +6726,7 @@ class FacebookAdditionalUserInfo extends GenericAdditionalUserInfo {
|
|
|
6708
6726
|
}
|
|
6709
6727
|
class GithubAdditionalUserInfo extends FederatedAdditionalUserInfoWithUsername {
|
|
6710
6728
|
constructor(isNewUser, profile) {
|
|
6711
|
-
super(isNewUser, "github.com" /* ProviderId.GITHUB */, profile, typeof
|
|
6729
|
+
super(isNewUser, "github.com" /* ProviderId.GITHUB */, profile, typeof profile?.login === 'string' ? profile?.login : null);
|
|
6712
6730
|
}
|
|
6713
6731
|
}
|
|
6714
6732
|
class GoogleAdditionalUserInfo extends GenericAdditionalUserInfo {
|
|
@@ -7008,12 +7026,11 @@ class MultiFactorSessionImpl {
|
|
|
7008
7026
|
};
|
|
7009
7027
|
}
|
|
7010
7028
|
static fromJSON(obj) {
|
|
7011
|
-
|
|
7012
|
-
|
|
7013
|
-
if ((_a = obj.multiFactorSession) === null || _a === void 0 ? void 0 : _a.pendingCredential) {
|
|
7029
|
+
if (obj?.multiFactorSession) {
|
|
7030
|
+
if (obj.multiFactorSession?.pendingCredential) {
|
|
7014
7031
|
return MultiFactorSessionImpl._fromMfaPendingCredential(obj.multiFactorSession.pendingCredential);
|
|
7015
7032
|
}
|
|
7016
|
-
else if (
|
|
7033
|
+
else if (obj.multiFactorSession?.idToken) {
|
|
7017
7034
|
return MultiFactorSessionImpl._fromIdtoken(obj.multiFactorSession.idToken);
|
|
7018
7035
|
}
|
|
7019
7036
|
}
|
|
@@ -7056,7 +7073,11 @@ class MultiFactorResolverImpl {
|
|
|
7056
7073
|
delete serverResponse.mfaInfo;
|
|
7057
7074
|
delete serverResponse.mfaPendingCredential;
|
|
7058
7075
|
// Use in the new token & refresh token in the old response
|
|
7059
|
-
const idTokenResponse =
|
|
7076
|
+
const idTokenResponse = {
|
|
7077
|
+
...serverResponse,
|
|
7078
|
+
idToken: mfaResponse.idToken,
|
|
7079
|
+
refreshToken: mfaResponse.refreshToken
|
|
7080
|
+
};
|
|
7060
7081
|
// TODO: we should collapse this switch statement into UserCredentialImpl._forOperation and have it support the SIGN_IN case
|
|
7061
7082
|
switch (error.operationType) {
|
|
7062
7083
|
case "signIn" /* OperationType.SIGN_IN */:
|
|
@@ -7087,11 +7108,10 @@ class MultiFactorResolverImpl {
|
|
|
7087
7108
|
* @public
|
|
7088
7109
|
*/
|
|
7089
7110
|
function getMultiFactorResolver(auth, error) {
|
|
7090
|
-
var _a;
|
|
7091
7111
|
const authModular = getModularInstance(auth);
|
|
7092
7112
|
const errorInternal = error;
|
|
7093
7113
|
_assert(error.customData.operationType, authModular, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
7094
|
-
_assert(
|
|
7114
|
+
_assert(errorInternal.customData._serverResponse?.mfaPendingCredential, authModular, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
7095
7115
|
return MultiFactorResolverImpl._fromError(authModular, errorInternal);
|
|
7096
7116
|
}
|
|
7097
7117
|
|
|
@@ -7298,7 +7318,7 @@ class Receiver {
|
|
|
7298
7318
|
const messageEvent = event;
|
|
7299
7319
|
const { eventId, eventType, data } = messageEvent.data;
|
|
7300
7320
|
const handlers = this.handlersMap[eventType];
|
|
7301
|
-
if (!
|
|
7321
|
+
if (!handlers?.size) {
|
|
7302
7322
|
return;
|
|
7303
7323
|
}
|
|
7304
7324
|
messageEvent.ports[0].postMessage({
|
|
@@ -7534,20 +7554,19 @@ function _isWorker() {
|
|
|
7534
7554
|
typeof _window()['importScripts'] === 'function');
|
|
7535
7555
|
}
|
|
7536
7556
|
async function _getActiveServiceWorker() {
|
|
7537
|
-
if (!
|
|
7557
|
+
if (!navigator?.serviceWorker) {
|
|
7538
7558
|
return null;
|
|
7539
7559
|
}
|
|
7540
7560
|
try {
|
|
7541
7561
|
const registration = await navigator.serviceWorker.ready;
|
|
7542
7562
|
return registration.active;
|
|
7543
7563
|
}
|
|
7544
|
-
catch
|
|
7564
|
+
catch {
|
|
7545
7565
|
return null;
|
|
7546
7566
|
}
|
|
7547
7567
|
}
|
|
7548
7568
|
function _getServiceWorkerController() {
|
|
7549
|
-
|
|
7550
|
-
return ((_a = navigator === null || navigator === void 0 ? void 0 : navigator.serviceWorker) === null || _a === void 0 ? void 0 : _a.controller) || null;
|
|
7569
|
+
return navigator?.serviceWorker?.controller || null;
|
|
7551
7570
|
}
|
|
7552
7571
|
function _getWorkerGlobalScope() {
|
|
7553
7572
|
return _isWorker() ? self : null;
|
|
@@ -7730,7 +7749,6 @@ class IndexedDBLocalPersistence {
|
|
|
7730
7749
|
* may not resolve.
|
|
7731
7750
|
*/
|
|
7732
7751
|
async initializeSender() {
|
|
7733
|
-
var _a, _b;
|
|
7734
7752
|
// Check to see if there's an active service worker.
|
|
7735
7753
|
this.activeServiceWorker = await _getActiveServiceWorker();
|
|
7736
7754
|
if (!this.activeServiceWorker) {
|
|
@@ -7742,8 +7760,8 @@ class IndexedDBLocalPersistence {
|
|
|
7742
7760
|
if (!results) {
|
|
7743
7761
|
return;
|
|
7744
7762
|
}
|
|
7745
|
-
if (
|
|
7746
|
-
|
|
7763
|
+
if (results[0]?.fulfilled &&
|
|
7764
|
+
results[0]?.value.includes("keyChanged" /* _EventType.KEY_CHANGED */)) {
|
|
7747
7765
|
this.serviceWorkerReceiverAvailable = true;
|
|
7748
7766
|
}
|
|
7749
7767
|
}
|
|
@@ -7769,7 +7787,7 @@ class IndexedDBLocalPersistence {
|
|
|
7769
7787
|
? 800 /* _TimeoutDuration.LONG_ACK */
|
|
7770
7788
|
: 50 /* _TimeoutDuration.ACK */);
|
|
7771
7789
|
}
|
|
7772
|
-
catch
|
|
7790
|
+
catch {
|
|
7773
7791
|
// This is a best effort approach. Ignore errors.
|
|
7774
7792
|
}
|
|
7775
7793
|
}
|
|
@@ -7783,7 +7801,7 @@ class IndexedDBLocalPersistence {
|
|
|
7783
7801
|
await _deleteObject(db, STORAGE_AVAILABLE_KEY);
|
|
7784
7802
|
return true;
|
|
7785
7803
|
}
|
|
7786
|
-
catch
|
|
7804
|
+
catch { }
|
|
7787
7805
|
return false;
|
|
7788
7806
|
}
|
|
7789
7807
|
async _withPendingWrite(write) {
|
|
@@ -7981,9 +7999,8 @@ class TotpMultiFactorGenerator {
|
|
|
7981
7999
|
* @returns A promise to {@link TotpSecret}.
|
|
7982
8000
|
*/
|
|
7983
8001
|
static async generateSecret(session) {
|
|
7984
|
-
var _a;
|
|
7985
8002
|
const mfaSession = session;
|
|
7986
|
-
_assert(typeof
|
|
8003
|
+
_assert(typeof mfaSession.user?.auth !== 'undefined', "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
7987
8004
|
const response = await startEnrollTotpMfa(mfaSession.user.auth, {
|
|
7988
8005
|
idToken: mfaSession.credential,
|
|
7989
8006
|
totpEnrollmentInfo: {}
|
|
@@ -8067,14 +8084,13 @@ class TotpSecret {
|
|
|
8067
8084
|
* @returns A QR code URL string.
|
|
8068
8085
|
*/
|
|
8069
8086
|
generateQrCodeUrl(accountName, issuer) {
|
|
8070
|
-
var _a;
|
|
8071
8087
|
let useDefaults = false;
|
|
8072
8088
|
if (_isEmptyString(accountName) || _isEmptyString(issuer)) {
|
|
8073
8089
|
useDefaults = true;
|
|
8074
8090
|
}
|
|
8075
8091
|
if (useDefaults) {
|
|
8076
8092
|
if (_isEmptyString(accountName)) {
|
|
8077
|
-
accountName =
|
|
8093
|
+
accountName = this.auth.currentUser?.email || 'unknownuser';
|
|
8078
8094
|
}
|
|
8079
8095
|
if (_isEmptyString(issuer)) {
|
|
8080
8096
|
issuer = this.auth.name;
|
|
@@ -8085,11 +8101,11 @@ class TotpSecret {
|
|
|
8085
8101
|
}
|
|
8086
8102
|
/** @internal */
|
|
8087
8103
|
function _isEmptyString(input) {
|
|
8088
|
-
return typeof input === 'undefined' ||
|
|
8104
|
+
return typeof input === 'undefined' || input?.length === 0;
|
|
8089
8105
|
}
|
|
8090
8106
|
|
|
8091
8107
|
var name = "@firebase/auth";
|
|
8092
|
-
var version = "1.10.
|
|
8108
|
+
var version = "1.10.8-canary.25b60fdaa";
|
|
8093
8109
|
|
|
8094
8110
|
/**
|
|
8095
8111
|
* @license
|
|
@@ -8113,9 +8129,8 @@ class AuthInterop {
|
|
|
8113
8129
|
this.internalListeners = new Map();
|
|
8114
8130
|
}
|
|
8115
8131
|
getUid() {
|
|
8116
|
-
var _a;
|
|
8117
8132
|
this.assertAuthConfigured();
|
|
8118
|
-
return
|
|
8133
|
+
return this.auth.currentUser?.uid || null;
|
|
8119
8134
|
}
|
|
8120
8135
|
async getToken(forceRefresh) {
|
|
8121
8136
|
this.assertAuthConfigured();
|
|
@@ -8132,7 +8147,7 @@ class AuthInterop {
|
|
|
8132
8147
|
return;
|
|
8133
8148
|
}
|
|
8134
8149
|
const unsubscribe = this.auth.onIdTokenChanged(user => {
|
|
8135
|
-
listener(
|
|
8150
|
+
listener(user?.stsTokenManager.accessToken || null);
|
|
8136
8151
|
});
|
|
8137
8152
|
this.internalListeners.set(listener, unsubscribe);
|
|
8138
8153
|
this.updateProactiveRefresh();
|
|
@@ -8231,9 +8246,9 @@ function registerAuth(clientPlatform) {
|
|
|
8231
8246
|
return (auth => new AuthInterop(auth))(auth);
|
|
8232
8247
|
}, "PRIVATE" /* ComponentType.PRIVATE */).setInstantiationMode("EXPLICIT" /* InstantiationMode.EXPLICIT */));
|
|
8233
8248
|
registerVersion(name, version, getVersionForPlatform(clientPlatform));
|
|
8234
|
-
// BUILD_TARGET will be replaced by values like
|
|
8235
|
-
registerVersion(name, version, '
|
|
8249
|
+
// BUILD_TARGET will be replaced by values like esm, cjs, etc during the compilation
|
|
8250
|
+
registerVersion(name, version, 'esm2020');
|
|
8236
8251
|
}
|
|
8237
8252
|
|
|
8238
8253
|
export { updateEmail as $, AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY as A, linkWithCredential as B, reauthenticateWithCredential as C, signInWithCustomToken as D, EmailAuthCredential as E, FacebookAuthProvider as F, GoogleAuthProvider as G, sendPasswordResetEmail as H, confirmPasswordReset as I, applyActionCode as J, checkActionCode as K, verifyPasswordResetCode as L, createUserWithEmailAndPassword as M, signInWithEmailAndPassword as N, OAuthCredential as O, PhoneAuthCredential as P, sendSignInLinkToEmail as Q, isSignInWithEmailLink as R, SAMLAuthProvider as S, TotpMultiFactorGenerator as T, signInWithEmailLink as U, fetchSignInMethodsForEmail as V, sendEmailVerification as W, verifyBeforeUpdateEmail as X, ActionCodeURL as Y, parseActionCodeURL as Z, updateProfile as _, indexedDBLocalPersistence as a, FetchProvider as a$, updatePassword as a0, getIdToken as a1, getIdTokenResult as a2, unlink as a3, getAdditionalUserInfo as a4, reload as a5, getMultiFactorResolver as a6, multiFactor as a7, STORAGE_AVAILABLE_KEY as a8, _isMobileBrowser as a9, signInWithIdp as aA, _fail as aB, debugAssert as aC, _assertInstanceOf as aD, _generateEventId as aE, FederatedAuthProvider as aF, _persistenceKeyName as aG, _performApiRequest as aH, _getCurrentUrl as aI, _gapiScriptUrl as aJ, _emulatorUrl as aK, _isChromeIOS as aL, _isFirefox as aM, _isIOSStandalone as aN, BaseOAuthProvider as aO, _setWindowLocation as aP, _isSafari as aQ, _isIOS as aR, MultiFactorAssertionImpl as aS, finalizeEnrollPhoneMfa as aT, finalizeSignInPhoneMfa as aU, _setExternalJSProvider as aV, _isAndroid as aW, _isIOS7Or8 as aX, UserImpl as aY, AuthImpl as aZ, _getClientVersion as a_, _isIE10 as aa, Delay as ab, _window as ac, _assert as ad, isV2 as ae, _createError as af, _recaptchaV2ScriptUrl as ag, _loadJS as ah, MockReCaptcha as ai, _generateCallbackName as aj, _castAuth as ak, _isHttpOrHttps as al, _isWorker as am, getRecaptchaParams as an, _serverAppCurrentUserOperationNotSupportedError as ao, _assertLinkedStatus as ap, _initializeRecaptchaConfig as aq, FAKE_TOKEN as ar, startEnrollPhoneMfa as as, handleRecaptchaFlow as at, startSignInPhoneMfa as au, sendPhoneVerificationCode as av, _link as aw, _getInstance as ax, _signInWithCredential as ay, _reauthenticate as az, TotpSecret as b, SAMLAuthCredential as b0, connectAuthEmulator as c, initializeRecaptchaConfig as d, beforeAuthStateChanged as e, onAuthStateChanged as f, updateCurrentUser as g, signOut as h, initializeAuth as i, revokeAccessToken as j, deleteUser as k, debugErrorMap as l, AuthCredential as m, inMemoryPersistence as n, onIdTokenChanged as o, prodErrorMap as p, EmailAuthProvider as q, registerAuth as r, setPersistence as s, GithubAuthProvider as t, useDeviceLanguage as u, validatePassword as v, OAuthProvider as w, TwitterAuthProvider as x, signInAnonymously as y, signInWithCredential as z };
|
|
8239
|
-
//# sourceMappingURL=register-
|
|
8254
|
+
//# sourceMappingURL=register-41226db6.js.map
|