@firebase/auth 1.10.8 → 1.11.0-20250716004940
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-919d47fb.js → index-f4c52d0c.js} +212 -202
- package/dist/browser-cjs/{index-919d47fb.js.map → index-f4c52d0c.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-6806e8a5.js → popup_redirect-e03e5a65.js} +189 -177
- package/dist/cordova/{popup_redirect-6806e8a5.js.map → popup_redirect-e03e5a65.js.map} +1 -1
- package/dist/{esm2017/index-35c79a8a.js → esm/index-49b0e4ee.js} +212 -202
- package/dist/{esm2017/index-35c79a8a.js.map → esm/index-49b0e4ee.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-324f49e5.js → totp-2d91f17d.js} +165 -144
- package/dist/{node-esm/totp-a9833fe5.js.map → node/totp-2d91f17d.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-a9833fe5.js → totp-b21048bd.js} +165 -144
- package/dist/{node/totp-324f49e5.js.map → node-esm/totp-b21048bd.js.map} +1 -1
- package/dist/rn/{index-b5f6ef87.js → index-d92c5d92.js} +183 -168
- package/dist/rn/{index-b5f6ef87.js.map → index-d92c5d92.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-c4ad8877.js → register-f94f7b41.js} +177 -162
- package/dist/{web-extension-esm2017/register-8de454ae.js.map → web-extension-cjs/register-f94f7b41.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-8de454ae.js → web-extension-esm/register-70c7d024.js} +177 -162
- package/dist/{web-extension-cjs/register-c4ad8877.js.map → web-extension-esm/register-70c7d024.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
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
var util = require('@firebase/util');
|
|
4
4
|
var app = require('@firebase/app');
|
|
5
|
-
var tslib = require('tslib');
|
|
6
5
|
var component = require('@firebase/component');
|
|
7
6
|
var logger = require('@firebase/logger');
|
|
8
7
|
|
|
@@ -380,7 +379,10 @@ function _createError(authOrCode, ...rest) {
|
|
|
380
379
|
return createErrorInternal(authOrCode, ...rest);
|
|
381
380
|
}
|
|
382
381
|
function _errorWithCustomMessage(auth, code, message) {
|
|
383
|
-
const errorMap =
|
|
382
|
+
const errorMap = {
|
|
383
|
+
...prodErrorMap(),
|
|
384
|
+
[code]: message
|
|
385
|
+
};
|
|
384
386
|
const factory = new util.ErrorFactory('auth', 'Firebase', errorMap);
|
|
385
387
|
return factory.create(code, {
|
|
386
388
|
appName: auth.name
|
|
@@ -461,15 +463,13 @@ function debugAssert(assertion, message) {
|
|
|
461
463
|
* limitations under the License.
|
|
462
464
|
*/
|
|
463
465
|
function _getCurrentUrl() {
|
|
464
|
-
|
|
465
|
-
return (typeof self !== 'undefined' && ((_a = self.location) === null || _a === void 0 ? void 0 : _a.href)) || '';
|
|
466
|
+
return (typeof self !== 'undefined' && self.location?.href) || '';
|
|
466
467
|
}
|
|
467
468
|
function _isHttpOrHttps() {
|
|
468
469
|
return _getCurrentScheme() === 'http:' || _getCurrentScheme() === 'https:';
|
|
469
470
|
}
|
|
470
471
|
function _getCurrentScheme() {
|
|
471
|
-
|
|
472
|
-
return (typeof self !== 'undefined' && ((_a = self.location) === null || _a === void 0 ? void 0 : _a.protocol)) || null;
|
|
472
|
+
return (typeof self !== 'undefined' && self.location?.protocol) || null;
|
|
473
473
|
}
|
|
474
474
|
|
|
475
475
|
/**
|
|
@@ -783,7 +783,10 @@ const CookieAuthProxiedEndpoints = [
|
|
|
783
783
|
const DEFAULT_API_TIMEOUT_MS = new Delay(30000, 60000);
|
|
784
784
|
function _addTidIfNecessary(auth, request) {
|
|
785
785
|
if (auth.tenantId && !request.tenantId) {
|
|
786
|
-
return
|
|
786
|
+
return {
|
|
787
|
+
...request,
|
|
788
|
+
tenantId: auth.tenantId
|
|
789
|
+
};
|
|
787
790
|
}
|
|
788
791
|
return request;
|
|
789
792
|
}
|
|
@@ -801,14 +804,20 @@ async function _performApiRequest(auth, method, path, request, customErrorMap =
|
|
|
801
804
|
};
|
|
802
805
|
}
|
|
803
806
|
}
|
|
804
|
-
const query = util.querystring(
|
|
807
|
+
const query = util.querystring({
|
|
808
|
+
key: auth.config.apiKey,
|
|
809
|
+
...params
|
|
810
|
+
}).slice(1);
|
|
805
811
|
const headers = await auth._getAdditionalHeaders();
|
|
806
812
|
headers["Content-Type" /* HttpHeader.CONTENT_TYPE */] = 'application/json';
|
|
807
813
|
if (auth.languageCode) {
|
|
808
814
|
headers["X-Firebase-Locale" /* HttpHeader.X_FIREBASE_LOCALE */] = auth.languageCode;
|
|
809
815
|
}
|
|
810
|
-
const fetchArgs =
|
|
811
|
-
|
|
816
|
+
const fetchArgs = {
|
|
817
|
+
method,
|
|
818
|
+
headers,
|
|
819
|
+
...body
|
|
820
|
+
};
|
|
812
821
|
/* Security-conscious server-side frameworks tend to have built in mitigations for referrer
|
|
813
822
|
problems". See the Cloudflare GitHub issue #487: Error: The 'referrerPolicy' field on
|
|
814
823
|
'RequestInitializerDict' is not implemented."
|
|
@@ -824,7 +833,7 @@ async function _performApiRequest(auth, method, path, request, customErrorMap =
|
|
|
824
833
|
}
|
|
825
834
|
async function _performFetchWithErrorHandling(auth, customErrorMap, fetchFn) {
|
|
826
835
|
auth._canInitEmulator = false;
|
|
827
|
-
const errorMap =
|
|
836
|
+
const errorMap = { ...SERVER_ERROR_MAP, ...customErrorMap };
|
|
828
837
|
try {
|
|
829
838
|
const networkTimeout = new NetworkTimeout(auth);
|
|
830
839
|
const response = await Promise.race([
|
|
@@ -1165,7 +1174,7 @@ async function getIdTokenResult(user, forceRefresh = false) {
|
|
|
1165
1174
|
const claims = _parseToken(token);
|
|
1166
1175
|
_assert(claims && claims.exp && claims.auth_time && claims.iat, userInternal.auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
1167
1176
|
const firebase = typeof claims.firebase === 'object' ? claims.firebase : undefined;
|
|
1168
|
-
const signInProvider = firebase
|
|
1177
|
+
const signInProvider = firebase?.['sign_in_provider'];
|
|
1169
1178
|
return {
|
|
1170
1179
|
claims,
|
|
1171
1180
|
token,
|
|
@@ -1173,7 +1182,7 @@ async function getIdTokenResult(user, forceRefresh = false) {
|
|
|
1173
1182
|
issuedAtTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.iat)),
|
|
1174
1183
|
expirationTime: utcTimestampToDateString(secondsStringToMilliseconds(claims.exp)),
|
|
1175
1184
|
signInProvider: signInProvider || null,
|
|
1176
|
-
signInSecondFactor:
|
|
1185
|
+
signInSecondFactor: firebase?.['sign_in_second_factor'] || null
|
|
1177
1186
|
};
|
|
1178
1187
|
}
|
|
1179
1188
|
function secondsStringToMilliseconds(seconds) {
|
|
@@ -1196,7 +1205,7 @@ function _parseToken(token) {
|
|
|
1196
1205
|
return JSON.parse(decoded);
|
|
1197
1206
|
}
|
|
1198
1207
|
catch (e) {
|
|
1199
|
-
_logError('Caught error parsing JWT payload as JSON', e
|
|
1208
|
+
_logError('Caught error parsing JWT payload as JSON', e?.toString());
|
|
1200
1209
|
return null;
|
|
1201
1210
|
}
|
|
1202
1211
|
}
|
|
@@ -1292,7 +1301,6 @@ class ProactiveRefresh {
|
|
|
1292
1301
|
}
|
|
1293
1302
|
}
|
|
1294
1303
|
getInterval(wasError) {
|
|
1295
|
-
var _a;
|
|
1296
1304
|
if (wasError) {
|
|
1297
1305
|
const interval = this.errorBackoff;
|
|
1298
1306
|
this.errorBackoff = Math.min(this.errorBackoff * 2, 960000 /* Duration.RETRY_BACKOFF_MAX */);
|
|
@@ -1301,7 +1309,7 @@ class ProactiveRefresh {
|
|
|
1301
1309
|
else {
|
|
1302
1310
|
// Reset the error backoff
|
|
1303
1311
|
this.errorBackoff = 30000 /* Duration.RETRY_BACKOFF_MIN */;
|
|
1304
|
-
const expTime =
|
|
1312
|
+
const expTime = this.user.stsTokenManager.expirationTime ?? 0;
|
|
1305
1313
|
const interval = expTime - Date.now() - 300000 /* Duration.OFFSET */;
|
|
1306
1314
|
return Math.max(0, interval);
|
|
1307
1315
|
}
|
|
@@ -1322,7 +1330,7 @@ class ProactiveRefresh {
|
|
|
1322
1330
|
}
|
|
1323
1331
|
catch (e) {
|
|
1324
1332
|
// Only retry on network errors
|
|
1325
|
-
if (
|
|
1333
|
+
if (e?.code ===
|
|
1326
1334
|
`auth/${"network-request-failed" /* AuthErrorCode.NETWORK_REQUEST_FAILED */}`) {
|
|
1327
1335
|
this.schedule(/* wasError */ true);
|
|
1328
1336
|
}
|
|
@@ -1388,14 +1396,13 @@ class UserMetadata {
|
|
|
1388
1396
|
* limitations under the License.
|
|
1389
1397
|
*/
|
|
1390
1398
|
async function _reloadWithoutSaving(user) {
|
|
1391
|
-
var _a;
|
|
1392
1399
|
const auth = user.auth;
|
|
1393
1400
|
const idToken = await user.getIdToken();
|
|
1394
1401
|
const response = await _logoutIfInvalidated(user, getAccountInfo(auth, { idToken }));
|
|
1395
|
-
_assert(response
|
|
1402
|
+
_assert(response?.users.length, auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
1396
1403
|
const coreAccount = response.users[0];
|
|
1397
1404
|
user._notifyReloadListener(coreAccount);
|
|
1398
|
-
const newProviderData =
|
|
1405
|
+
const newProviderData = coreAccount.providerUserInfo?.length
|
|
1399
1406
|
? extractProviderData(coreAccount.providerUserInfo)
|
|
1400
1407
|
: [];
|
|
1401
1408
|
const providerData = mergeProviderData(user.providerData, newProviderData);
|
|
@@ -1405,7 +1412,7 @@ async function _reloadWithoutSaving(user) {
|
|
|
1405
1412
|
// On the other hand, if it was not anonymous before, it should never be
|
|
1406
1413
|
// considered anonymous now.
|
|
1407
1414
|
const oldIsAnonymous = user.isAnonymous;
|
|
1408
|
-
const newIsAnonymous = !(user.email && coreAccount.passwordHash) && !
|
|
1415
|
+
const newIsAnonymous = !(user.email && coreAccount.passwordHash) && !providerData?.length;
|
|
1409
1416
|
const isAnonymous = !oldIsAnonymous ? false : newIsAnonymous;
|
|
1410
1417
|
const updates = {
|
|
1411
1418
|
uid: coreAccount.localId,
|
|
@@ -1442,8 +1449,7 @@ function mergeProviderData(original, newData) {
|
|
|
1442
1449
|
return [...deduped, ...newData];
|
|
1443
1450
|
}
|
|
1444
1451
|
function extractProviderData(providers) {
|
|
1445
|
-
return providers.map((
|
|
1446
|
-
var { providerId } = _a, provider = tslib.__rest(_a, ["providerId"]);
|
|
1452
|
+
return providers.map(({ providerId, ...provider }) => {
|
|
1447
1453
|
return {
|
|
1448
1454
|
providerId,
|
|
1449
1455
|
uid: provider.rawId || '',
|
|
@@ -1635,8 +1641,7 @@ function assertStringOrUndefined(assertion, appName) {
|
|
|
1635
1641
|
_assert(typeof assertion === 'string' || typeof assertion === 'undefined', "internal-error" /* AuthErrorCode.INTERNAL_ERROR */, { appName });
|
|
1636
1642
|
}
|
|
1637
1643
|
class UserImpl {
|
|
1638
|
-
constructor(
|
|
1639
|
-
var { uid, auth, stsTokenManager } = _a, opt = tslib.__rest(_a, ["uid", "auth", "stsTokenManager"]);
|
|
1644
|
+
constructor({ uid, auth, stsTokenManager, ...opt }) {
|
|
1640
1645
|
// For the user object, provider is always Firebase.
|
|
1641
1646
|
this.providerId = "firebase" /* ProviderId.FIREBASE */;
|
|
1642
1647
|
this.proactiveRefresh = new ProactiveRefresh(this);
|
|
@@ -1684,12 +1689,16 @@ class UserImpl {
|
|
|
1684
1689
|
this.phoneNumber = user.phoneNumber;
|
|
1685
1690
|
this.isAnonymous = user.isAnonymous;
|
|
1686
1691
|
this.tenantId = user.tenantId;
|
|
1687
|
-
this.providerData = user.providerData.map(userInfo => (
|
|
1692
|
+
this.providerData = user.providerData.map(userInfo => ({ ...userInfo }));
|
|
1688
1693
|
this.metadata._copy(user.metadata);
|
|
1689
1694
|
this.stsTokenManager._assign(user.stsTokenManager);
|
|
1690
1695
|
}
|
|
1691
1696
|
_clone(auth) {
|
|
1692
|
-
const newUser = new UserImpl(
|
|
1697
|
+
const newUser = new UserImpl({
|
|
1698
|
+
...this,
|
|
1699
|
+
auth,
|
|
1700
|
+
stsTokenManager: this.stsTokenManager._clone()
|
|
1701
|
+
});
|
|
1693
1702
|
newUser.metadata._copy(this.metadata);
|
|
1694
1703
|
return newUser;
|
|
1695
1704
|
}
|
|
@@ -1744,26 +1753,40 @@ class UserImpl {
|
|
|
1744
1753
|
return this.auth.signOut();
|
|
1745
1754
|
}
|
|
1746
1755
|
toJSON() {
|
|
1747
|
-
return
|
|
1756
|
+
return {
|
|
1757
|
+
uid: this.uid,
|
|
1758
|
+
email: this.email || undefined,
|
|
1759
|
+
emailVerified: this.emailVerified,
|
|
1760
|
+
displayName: this.displayName || undefined,
|
|
1761
|
+
isAnonymous: this.isAnonymous,
|
|
1762
|
+
photoURL: this.photoURL || undefined,
|
|
1763
|
+
phoneNumber: this.phoneNumber || undefined,
|
|
1764
|
+
tenantId: this.tenantId || undefined,
|
|
1765
|
+
providerData: this.providerData.map(userInfo => ({ ...userInfo })),
|
|
1766
|
+
stsTokenManager: this.stsTokenManager.toJSON(),
|
|
1748
1767
|
// Redirect event ID must be maintained in case there is a pending
|
|
1749
1768
|
// redirect event.
|
|
1750
|
-
_redirectEventId: this._redirectEventId
|
|
1769
|
+
_redirectEventId: this._redirectEventId,
|
|
1770
|
+
...this.metadata.toJSON(),
|
|
1751
1771
|
// Required for compatibility with the legacy SDK (go/firebase-auth-sdk-persistence-parsing):
|
|
1752
|
-
apiKey: this.auth.config.apiKey,
|
|
1772
|
+
apiKey: this.auth.config.apiKey,
|
|
1773
|
+
appName: this.auth.name
|
|
1774
|
+
// Missing authDomain will be tolerated by the legacy SDK.
|
|
1775
|
+
// stsTokenManager.apiKey isn't actually required (despite the legacy SDK persisting it).
|
|
1776
|
+
};
|
|
1753
1777
|
}
|
|
1754
1778
|
get refreshToken() {
|
|
1755
1779
|
return this.stsTokenManager.refreshToken || '';
|
|
1756
1780
|
}
|
|
1757
1781
|
static _fromJSON(auth, object) {
|
|
1758
|
-
|
|
1759
|
-
const
|
|
1760
|
-
const
|
|
1761
|
-
const
|
|
1762
|
-
const
|
|
1763
|
-
const
|
|
1764
|
-
const
|
|
1765
|
-
const
|
|
1766
|
-
const lastLoginAt = (_h = object.lastLoginAt) !== null && _h !== void 0 ? _h : undefined;
|
|
1782
|
+
const displayName = object.displayName ?? undefined;
|
|
1783
|
+
const email = object.email ?? undefined;
|
|
1784
|
+
const phoneNumber = object.phoneNumber ?? undefined;
|
|
1785
|
+
const photoURL = object.photoURL ?? undefined;
|
|
1786
|
+
const tenantId = object.tenantId ?? undefined;
|
|
1787
|
+
const _redirectEventId = object._redirectEventId ?? undefined;
|
|
1788
|
+
const createdAt = object.createdAt ?? undefined;
|
|
1789
|
+
const lastLoginAt = object.lastLoginAt ?? undefined;
|
|
1767
1790
|
const { uid, emailVerified, isAnonymous, providerData, stsTokenManager: plainObjectTokenManager } = object;
|
|
1768
1791
|
_assert(uid && plainObjectTokenManager, auth, "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
1769
1792
|
const stsTokenManager = StsTokenManager.fromJSON(this.name, plainObjectTokenManager);
|
|
@@ -1793,7 +1816,7 @@ class UserImpl {
|
|
|
1793
1816
|
lastLoginAt
|
|
1794
1817
|
});
|
|
1795
1818
|
if (providerData && Array.isArray(providerData)) {
|
|
1796
|
-
user.providerData = providerData.map(userInfo => (
|
|
1819
|
+
user.providerData = providerData.map(userInfo => ({ ...userInfo }));
|
|
1797
1820
|
}
|
|
1798
1821
|
if (_redirectEventId) {
|
|
1799
1822
|
user._redirectEventId = _redirectEventId;
|
|
@@ -1830,7 +1853,7 @@ class UserImpl {
|
|
|
1830
1853
|
const providerData = coreAccount.providerUserInfo !== undefined
|
|
1831
1854
|
? extractProviderData(coreAccount.providerUserInfo)
|
|
1832
1855
|
: [];
|
|
1833
|
-
const isAnonymous = !(coreAccount.email && coreAccount.passwordHash) && !
|
|
1856
|
+
const isAnonymous = !(coreAccount.email && coreAccount.passwordHash) && !providerData?.length;
|
|
1834
1857
|
const stsTokenManager = new StsTokenManager();
|
|
1835
1858
|
stsTokenManager.updateFromIdToken(idToken);
|
|
1836
1859
|
// Initialize the Firebase Auth user.
|
|
@@ -1852,7 +1875,7 @@ class UserImpl {
|
|
|
1852
1875
|
providerData,
|
|
1853
1876
|
metadata: new UserMetadata(coreAccount.createdAt, coreAccount.lastLoginAt),
|
|
1854
1877
|
isAnonymous: !(coreAccount.email && coreAccount.passwordHash) &&
|
|
1855
|
-
!
|
|
1878
|
+
!providerData?.length
|
|
1856
1879
|
};
|
|
1857
1880
|
Object.assign(user, updates);
|
|
1858
1881
|
return user;
|
|
@@ -2051,7 +2074,7 @@ class PersistenceUserManager {
|
|
|
2051
2074
|
break;
|
|
2052
2075
|
}
|
|
2053
2076
|
}
|
|
2054
|
-
catch
|
|
2077
|
+
catch { }
|
|
2055
2078
|
}
|
|
2056
2079
|
// If we find the user in a persistence that does support migration, use
|
|
2057
2080
|
// that migration path (of only persistences that support migration)
|
|
@@ -2074,7 +2097,7 @@ class PersistenceUserManager {
|
|
|
2074
2097
|
try {
|
|
2075
2098
|
await persistence._remove(key);
|
|
2076
2099
|
}
|
|
2077
|
-
catch
|
|
2100
|
+
catch { }
|
|
2078
2101
|
}
|
|
2079
2102
|
}));
|
|
2080
2103
|
return new PersistenceUserManager(selectedPersistence, auth, userKey);
|
|
@@ -2144,7 +2167,7 @@ function _getBrowserName(userAgent) {
|
|
|
2144
2167
|
// Most modern browsers have name/version at end of user agent string.
|
|
2145
2168
|
const re = /([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/;
|
|
2146
2169
|
const matches = userAgent.match(re);
|
|
2147
|
-
if (
|
|
2170
|
+
if (matches?.length === 2) {
|
|
2148
2171
|
return matches[1];
|
|
2149
2172
|
}
|
|
2150
2173
|
}
|
|
@@ -2184,8 +2207,7 @@ function _isIOS7Or8(ua = util.getUA()) {
|
|
|
2184
2207
|
/(iPad|iPhone|iPod).*OS 8_\d/i.test(ua));
|
|
2185
2208
|
}
|
|
2186
2209
|
function _isIOSStandalone(ua = util.getUA()) {
|
|
2187
|
-
|
|
2188
|
-
return _isIOS(ua) && !!((_a = window.navigator) === null || _a === void 0 ? void 0 : _a.standalone);
|
|
2210
|
+
return _isIOS(ua) && !!window.navigator?.standalone;
|
|
2189
2211
|
}
|
|
2190
2212
|
function _isIE10() {
|
|
2191
2213
|
return util.isIE() && document.documentMode === 10;
|
|
@@ -2316,7 +2338,7 @@ class AuthMiddlewareQueue {
|
|
|
2316
2338
|
}
|
|
2317
2339
|
}
|
|
2318
2340
|
throw this.auth._errorFactory.create("login-blocked" /* AuthErrorCode.LOGIN_BLOCKED */, {
|
|
2319
|
-
originalMessage: e
|
|
2341
|
+
originalMessage: e?.message
|
|
2320
2342
|
});
|
|
2321
2343
|
}
|
|
2322
2344
|
}
|
|
@@ -2374,13 +2396,12 @@ const MINIMUM_MIN_PASSWORD_LENGTH = 6;
|
|
|
2374
2396
|
*/
|
|
2375
2397
|
class PasswordPolicyImpl {
|
|
2376
2398
|
constructor(response) {
|
|
2377
|
-
var _a, _b, _c, _d;
|
|
2378
2399
|
// Only include custom strength options defined in the response.
|
|
2379
2400
|
const responseOptions = response.customStrengthOptions;
|
|
2380
2401
|
this.customStrengthOptions = {};
|
|
2381
2402
|
// TODO: Remove once the backend is updated to include the minimum min password length instead of undefined when there is no minimum length set.
|
|
2382
2403
|
this.customStrengthOptions.minPasswordLength =
|
|
2383
|
-
|
|
2404
|
+
responseOptions.minPasswordLength ?? MINIMUM_MIN_PASSWORD_LENGTH;
|
|
2384
2405
|
if (responseOptions.maxPasswordLength) {
|
|
2385
2406
|
this.customStrengthOptions.maxPasswordLength =
|
|
2386
2407
|
responseOptions.maxPasswordLength;
|
|
@@ -2407,12 +2428,11 @@ class PasswordPolicyImpl {
|
|
|
2407
2428
|
}
|
|
2408
2429
|
// Use an empty string if no non-alphanumeric characters are specified in the response.
|
|
2409
2430
|
this.allowedNonAlphanumericCharacters =
|
|
2410
|
-
|
|
2411
|
-
this.forceUpgradeOnSignin =
|
|
2431
|
+
response.allowedNonAlphanumericCharacters?.join('') ?? '';
|
|
2432
|
+
this.forceUpgradeOnSignin = response.forceUpgradeOnSignin ?? false;
|
|
2412
2433
|
this.schemaVersion = response.schemaVersion;
|
|
2413
2434
|
}
|
|
2414
2435
|
validatePassword(password) {
|
|
2415
|
-
var _a, _b, _c, _d, _e, _f;
|
|
2416
2436
|
const status = {
|
|
2417
2437
|
isValid: true,
|
|
2418
2438
|
passwordPolicy: this
|
|
@@ -2421,12 +2441,12 @@ class PasswordPolicyImpl {
|
|
|
2421
2441
|
this.validatePasswordLengthOptions(password, status);
|
|
2422
2442
|
this.validatePasswordCharacterOptions(password, status);
|
|
2423
2443
|
// Combine the status into single isValid property.
|
|
2424
|
-
status.isValid && (status.isValid =
|
|
2425
|
-
status.isValid && (status.isValid =
|
|
2426
|
-
status.isValid && (status.isValid =
|
|
2427
|
-
status.isValid && (status.isValid =
|
|
2428
|
-
status.isValid && (status.isValid =
|
|
2429
|
-
status.isValid && (status.isValid =
|
|
2444
|
+
status.isValid && (status.isValid = status.meetsMinPasswordLength ?? true);
|
|
2445
|
+
status.isValid && (status.isValid = status.meetsMaxPasswordLength ?? true);
|
|
2446
|
+
status.isValid && (status.isValid = status.containsLowercaseLetter ?? true);
|
|
2447
|
+
status.isValid && (status.isValid = status.containsUppercaseLetter ?? true);
|
|
2448
|
+
status.isValid && (status.isValid = status.containsNumericCharacter ?? true);
|
|
2449
|
+
status.isValid && (status.isValid = status.containsNonAlphanumericCharacter ?? true);
|
|
2430
2450
|
return status;
|
|
2431
2451
|
}
|
|
2432
2452
|
/**
|
|
@@ -2563,18 +2583,17 @@ class AuthImpl {
|
|
|
2563
2583
|
// Have to check for app deletion throughout initialization (after each
|
|
2564
2584
|
// promise resolution)
|
|
2565
2585
|
this._initializationPromise = this.queue(async () => {
|
|
2566
|
-
var _a, _b, _c;
|
|
2567
2586
|
if (this._deleted) {
|
|
2568
2587
|
return;
|
|
2569
2588
|
}
|
|
2570
2589
|
this.persistenceManager = await PersistenceUserManager.create(this, persistenceHierarchy);
|
|
2571
|
-
|
|
2590
|
+
this._resolvePersistenceManagerAvailable?.();
|
|
2572
2591
|
if (this._deleted) {
|
|
2573
2592
|
return;
|
|
2574
2593
|
}
|
|
2575
2594
|
// Initialize the resolver early if necessary (only applicable to web:
|
|
2576
2595
|
// this will cause the iframe to load immediately in certain cases)
|
|
2577
|
-
if (
|
|
2596
|
+
if (this._popupRedirectResolver?._shouldInitProactively) {
|
|
2578
2597
|
// If this fails, don't halt auth loading
|
|
2579
2598
|
try {
|
|
2580
2599
|
await this._popupRedirectResolver._initialize(this);
|
|
@@ -2584,7 +2603,7 @@ class AuthImpl {
|
|
|
2584
2603
|
}
|
|
2585
2604
|
}
|
|
2586
2605
|
await this.initializeCurrentUser(popupRedirectResolver);
|
|
2587
|
-
this.lastNotifiedUid =
|
|
2606
|
+
this.lastNotifiedUid = this.currentUser?.uid || null;
|
|
2588
2607
|
if (this._deleted) {
|
|
2589
2608
|
return;
|
|
2590
2609
|
}
|
|
@@ -2629,7 +2648,6 @@ class AuthImpl {
|
|
|
2629
2648
|
}
|
|
2630
2649
|
}
|
|
2631
2650
|
async initializeCurrentUser(popupRedirectResolver) {
|
|
2632
|
-
var _a;
|
|
2633
2651
|
if (app._isFirebaseServerApp(this.app)) {
|
|
2634
2652
|
const idToken = this.app.settings.authIdToken;
|
|
2635
2653
|
if (idToken) {
|
|
@@ -2649,15 +2667,15 @@ class AuthImpl {
|
|
|
2649
2667
|
let needsTocheckMiddleware = false;
|
|
2650
2668
|
if (popupRedirectResolver && this.config.authDomain) {
|
|
2651
2669
|
await this.getOrInitRedirectPersistenceManager();
|
|
2652
|
-
const redirectUserEventId =
|
|
2653
|
-
const storedUserEventId = futureCurrentUser
|
|
2670
|
+
const redirectUserEventId = this.redirectUser?._redirectEventId;
|
|
2671
|
+
const storedUserEventId = futureCurrentUser?._redirectEventId;
|
|
2654
2672
|
const result = await this.tryRedirectSignIn(popupRedirectResolver);
|
|
2655
2673
|
// If the stored user (i.e. the old "currentUser") has a redirectId that
|
|
2656
2674
|
// matches the redirect user, then we want to initially sign in with the
|
|
2657
2675
|
// new user object from result.
|
|
2658
2676
|
// TODO(samgho): More thoroughly test all of this
|
|
2659
2677
|
if ((!redirectUserEventId || redirectUserEventId === storedUserEventId) &&
|
|
2660
|
-
|
|
2678
|
+
result?.user) {
|
|
2661
2679
|
futureCurrentUser = result.user;
|
|
2662
2680
|
needsTocheckMiddleware = true;
|
|
2663
2681
|
}
|
|
@@ -2732,7 +2750,7 @@ class AuthImpl {
|
|
|
2732
2750
|
await _reloadWithoutSaving(user);
|
|
2733
2751
|
}
|
|
2734
2752
|
catch (e) {
|
|
2735
|
-
if (
|
|
2753
|
+
if (e?.code !==
|
|
2736
2754
|
`auth/${"network-request-failed" /* AuthErrorCode.NETWORK_REQUEST_FAILED */}`) {
|
|
2737
2755
|
// Something's wrong with the user's token. Log them out and remove
|
|
2738
2756
|
// them from storage
|
|
@@ -2889,12 +2907,11 @@ class AuthImpl {
|
|
|
2889
2907
|
}
|
|
2890
2908
|
}
|
|
2891
2909
|
toJSON() {
|
|
2892
|
-
var _a;
|
|
2893
2910
|
return {
|
|
2894
2911
|
apiKey: this.config.apiKey,
|
|
2895
2912
|
authDomain: this.config.authDomain,
|
|
2896
2913
|
appName: this.name,
|
|
2897
|
-
currentUser:
|
|
2914
|
+
currentUser: this._currentUser?.toJSON()
|
|
2898
2915
|
};
|
|
2899
2916
|
}
|
|
2900
2917
|
async _setRedirectUser(user, popupRedirectResolver) {
|
|
@@ -2915,16 +2932,15 @@ class AuthImpl {
|
|
|
2915
2932
|
return this.redirectPersistenceManager;
|
|
2916
2933
|
}
|
|
2917
2934
|
async _redirectUserForId(id) {
|
|
2918
|
-
var _a, _b;
|
|
2919
2935
|
// Make sure we've cleared any pending persistence actions if we're not in
|
|
2920
2936
|
// the initializer
|
|
2921
2937
|
if (this._isInitialized) {
|
|
2922
2938
|
await this.queue(async () => { });
|
|
2923
2939
|
}
|
|
2924
|
-
if (
|
|
2940
|
+
if (this._currentUser?._redirectEventId === id) {
|
|
2925
2941
|
return this._currentUser;
|
|
2926
2942
|
}
|
|
2927
|
-
if (
|
|
2943
|
+
if (this.redirectUser?._redirectEventId === id) {
|
|
2928
2944
|
return this.redirectUser;
|
|
2929
2945
|
}
|
|
2930
2946
|
return null;
|
|
@@ -2960,12 +2976,11 @@ class AuthImpl {
|
|
|
2960
2976
|
return this.currentUser;
|
|
2961
2977
|
}
|
|
2962
2978
|
notifyAuthListeners() {
|
|
2963
|
-
var _a, _b;
|
|
2964
2979
|
if (!this._isInitialized) {
|
|
2965
2980
|
return;
|
|
2966
2981
|
}
|
|
2967
2982
|
this.idTokenSubscription.next(this.currentUser);
|
|
2968
|
-
const currentUid =
|
|
2983
|
+
const currentUid = this.currentUser?.uid ?? null;
|
|
2969
2984
|
if (this.lastNotifiedUid !== currentUid) {
|
|
2970
2985
|
this.lastNotifiedUid = currentUid;
|
|
2971
2986
|
this.authStateSubscription.next(this.currentUser);
|
|
@@ -3050,7 +3065,6 @@ class AuthImpl {
|
|
|
3050
3065
|
return this.frameworks;
|
|
3051
3066
|
}
|
|
3052
3067
|
async _getAdditionalHeaders() {
|
|
3053
|
-
var _a;
|
|
3054
3068
|
// Additional headers on every request
|
|
3055
3069
|
const headers = {
|
|
3056
3070
|
["X-Client-Version" /* HttpHeader.X_CLIENT_VERSION */]: this.clientVersion
|
|
@@ -3059,10 +3073,11 @@ class AuthImpl {
|
|
|
3059
3073
|
headers["X-Firebase-gmpid" /* HttpHeader.X_FIREBASE_GMPID */] = this.app.options.appId;
|
|
3060
3074
|
}
|
|
3061
3075
|
// If the heartbeat service exists, add the heartbeat string
|
|
3062
|
-
const heartbeatsHeader = await
|
|
3076
|
+
const heartbeatsHeader = await this.heartbeatServiceProvider
|
|
3063
3077
|
.getImmediate({
|
|
3064
3078
|
optional: true
|
|
3065
|
-
})
|
|
3079
|
+
})
|
|
3080
|
+
?.getHeartbeatsHeader();
|
|
3066
3081
|
if (heartbeatsHeader) {
|
|
3067
3082
|
headers["X-Firebase-Client" /* HttpHeader.X_FIREBASE_CLIENT */] = heartbeatsHeader;
|
|
3068
3083
|
}
|
|
@@ -3074,20 +3089,20 @@ class AuthImpl {
|
|
|
3074
3089
|
return headers;
|
|
3075
3090
|
}
|
|
3076
3091
|
async _getAppCheckToken() {
|
|
3077
|
-
var _a;
|
|
3078
3092
|
if (app._isFirebaseServerApp(this.app) && this.app.settings.appCheckToken) {
|
|
3079
3093
|
return this.app.settings.appCheckToken;
|
|
3080
3094
|
}
|
|
3081
|
-
const appCheckTokenResult = await
|
|
3082
|
-
.getImmediate({ optional: true })
|
|
3083
|
-
|
|
3095
|
+
const appCheckTokenResult = await this.appCheckServiceProvider
|
|
3096
|
+
.getImmediate({ optional: true })
|
|
3097
|
+
?.getToken();
|
|
3098
|
+
if (appCheckTokenResult?.error) {
|
|
3084
3099
|
// Context: appCheck.getToken() will never throw even if an error happened.
|
|
3085
3100
|
// In the error case, a dummy token will be returned along with an error field describing
|
|
3086
3101
|
// the error. In general, we shouldn't care about the error condition and just use
|
|
3087
3102
|
// the token (actual or dummy) to send requests.
|
|
3088
3103
|
_logWarn(`Error while retrieving App Check token: ${appCheckTokenResult.error}`);
|
|
3089
3104
|
}
|
|
3090
|
-
return appCheckTokenResult
|
|
3105
|
+
return appCheckTokenResult?.token;
|
|
3091
3106
|
}
|
|
3092
3107
|
}
|
|
3093
3108
|
/**
|
|
@@ -3187,20 +3202,17 @@ class MockReCaptcha {
|
|
|
3187
3202
|
return id;
|
|
3188
3203
|
}
|
|
3189
3204
|
reset(optWidgetId) {
|
|
3190
|
-
var _a;
|
|
3191
3205
|
const id = optWidgetId || _WIDGET_ID_START;
|
|
3192
|
-
void
|
|
3206
|
+
void this._widgets.get(id)?.delete();
|
|
3193
3207
|
this._widgets.delete(id);
|
|
3194
3208
|
}
|
|
3195
3209
|
getResponse(optWidgetId) {
|
|
3196
|
-
var _a;
|
|
3197
3210
|
const id = optWidgetId || _WIDGET_ID_START;
|
|
3198
|
-
return
|
|
3211
|
+
return this._widgets.get(id)?.getResponse() || '';
|
|
3199
3212
|
}
|
|
3200
3213
|
async execute(optWidgetId) {
|
|
3201
|
-
var _a;
|
|
3202
3214
|
const id = optWidgetId || _WIDGET_ID_START;
|
|
3203
|
-
void
|
|
3215
|
+
void this._widgets.get(id)?.execute();
|
|
3204
3216
|
return '';
|
|
3205
3217
|
}
|
|
3206
3218
|
}
|
|
@@ -3440,7 +3452,7 @@ async function injectRecaptchaFields(auth, request, action, isCaptchaResp = fals
|
|
|
3440
3452
|
captchaResponse = await verifier.verify(action, true);
|
|
3441
3453
|
}
|
|
3442
3454
|
}
|
|
3443
|
-
const newRequest =
|
|
3455
|
+
const newRequest = { ...request };
|
|
3444
3456
|
if (action === "mfaSmsEnrollment" /* RecaptchaActionName.MFA_SMS_ENROLLMENT */ ||
|
|
3445
3457
|
action === "mfaSmsSignIn" /* RecaptchaActionName.MFA_SMS_SIGNIN */) {
|
|
3446
3458
|
if ('phoneEnrollmentInfo' in newRequest) {
|
|
@@ -3482,10 +3494,10 @@ async function injectRecaptchaFields(auth, request, action, isCaptchaResp = fals
|
|
|
3482
3494
|
return newRequest;
|
|
3483
3495
|
}
|
|
3484
3496
|
async function handleRecaptchaFlow(authInstance, request, actionName, actionMethod, recaptchaAuthProvider) {
|
|
3485
|
-
var _a, _b;
|
|
3486
3497
|
if (recaptchaAuthProvider === "EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */) {
|
|
3487
|
-
if (
|
|
3488
|
-
._getRecaptchaConfig()
|
|
3498
|
+
if (authInstance
|
|
3499
|
+
._getRecaptchaConfig()
|
|
3500
|
+
?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER" /* RecaptchaAuthProvider.EMAIL_PASSWORD_PROVIDER */)) {
|
|
3489
3501
|
const requestWithRecaptcha = await injectRecaptchaFields(authInstance, request, actionName, actionName === "getOobCode" /* RecaptchaActionName.GET_OOB_CODE */);
|
|
3490
3502
|
return actionMethod(authInstance, requestWithRecaptcha);
|
|
3491
3503
|
}
|
|
@@ -3503,13 +3515,14 @@ async function handleRecaptchaFlow(authInstance, request, actionName, actionMeth
|
|
|
3503
3515
|
}
|
|
3504
3516
|
}
|
|
3505
3517
|
else if (recaptchaAuthProvider === "PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */) {
|
|
3506
|
-
if (
|
|
3507
|
-
._getRecaptchaConfig()
|
|
3518
|
+
if (authInstance
|
|
3519
|
+
._getRecaptchaConfig()
|
|
3520
|
+
?.isProviderEnabled("PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */)) {
|
|
3508
3521
|
const requestWithRecaptcha = await injectRecaptchaFields(authInstance, request, actionName);
|
|
3509
3522
|
return actionMethod(authInstance, requestWithRecaptcha).catch(async (error) => {
|
|
3510
|
-
|
|
3511
|
-
|
|
3512
|
-
|
|
3523
|
+
if (authInstance
|
|
3524
|
+
._getRecaptchaConfig()
|
|
3525
|
+
?.getProviderEnforcementState("PHONE_PROVIDER" /* RecaptchaAuthProvider.PHONE_PROVIDER */) === "AUDIT" /* EnforcementState.AUDIT */) {
|
|
3513
3526
|
// AUDIT mode
|
|
3514
3527
|
if (error.code === `auth/${"missing-recaptcha-token" /* AuthErrorCode.MISSING_RECAPTCHA_TOKEN */}` ||
|
|
3515
3528
|
error.code === `auth/${"invalid-app-credential" /* AuthErrorCode.INVALID_APP_CREDENTIAL */}`) {
|
|
@@ -3606,7 +3619,7 @@ function initializeAuth(app$1, deps) {
|
|
|
3606
3619
|
if (provider.isInitialized()) {
|
|
3607
3620
|
const auth = provider.getImmediate();
|
|
3608
3621
|
const initialOptions = provider.getOptions();
|
|
3609
|
-
if (util.deepEqual(initialOptions, deps
|
|
3622
|
+
if (util.deepEqual(initialOptions, deps ?? {})) {
|
|
3610
3623
|
return auth;
|
|
3611
3624
|
}
|
|
3612
3625
|
else {
|
|
@@ -3617,15 +3630,15 @@ function initializeAuth(app$1, deps) {
|
|
|
3617
3630
|
return auth;
|
|
3618
3631
|
}
|
|
3619
3632
|
function _initializeAuthInstance(auth, deps) {
|
|
3620
|
-
const persistence =
|
|
3633
|
+
const persistence = deps?.persistence || [];
|
|
3621
3634
|
const hierarchy = (Array.isArray(persistence) ? persistence : [persistence]).map(_getInstance);
|
|
3622
|
-
if (deps
|
|
3635
|
+
if (deps?.errorMap) {
|
|
3623
3636
|
auth._updateErrorMap(deps.errorMap);
|
|
3624
3637
|
}
|
|
3625
3638
|
// This promise is intended to float; auth initialization happens in the
|
|
3626
3639
|
// background, meanwhile the auth object may be used by the app.
|
|
3627
3640
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
3628
|
-
auth._initializeWithPersistence(hierarchy, deps
|
|
3641
|
+
auth._initializeWithPersistence(hierarchy, deps?.popupRedirectResolver);
|
|
3629
3642
|
}
|
|
3630
3643
|
|
|
3631
3644
|
/**
|
|
@@ -3653,7 +3666,7 @@ function _initializeAuthInstance(auth, deps) {
|
|
|
3653
3666
|
function connectAuthEmulator(auth, url, options) {
|
|
3654
3667
|
const authInternal = _castAuth(auth);
|
|
3655
3668
|
_assert(/^https?:\/\//.test(url), authInternal, "invalid-emulator-scheme" /* AuthErrorCode.INVALID_EMULATOR_SCHEME */);
|
|
3656
|
-
const disableWarnings = !!
|
|
3669
|
+
const disableWarnings = !!options?.disableWarnings;
|
|
3657
3670
|
const protocol = extractProtocol(url);
|
|
3658
3671
|
const { host, port } = extractHostAndPort(url);
|
|
3659
3672
|
const portStr = port === null ? '' : `:${port}`;
|
|
@@ -3979,7 +3992,7 @@ class EmailAuthCredential extends AuthCredential {
|
|
|
3979
3992
|
*/
|
|
3980
3993
|
static fromJSON(json) {
|
|
3981
3994
|
const obj = typeof json === 'string' ? JSON.parse(json) : json;
|
|
3982
|
-
if (
|
|
3995
|
+
if (obj?.email && obj?.password) {
|
|
3983
3996
|
if (obj.signInMethod === "password" /* SignInMethod.EMAIL_PASSWORD */) {
|
|
3984
3997
|
return this._fromEmailAndPassword(obj.email, obj.password);
|
|
3985
3998
|
}
|
|
@@ -4139,7 +4152,7 @@ class OAuthCredential extends AuthCredential {
|
|
|
4139
4152
|
*/
|
|
4140
4153
|
static fromJSON(json) {
|
|
4141
4154
|
const obj = typeof json === 'string' ? JSON.parse(json) : json;
|
|
4142
|
-
const { providerId, signInMethod
|
|
4155
|
+
const { providerId, signInMethod, ...rest } = obj;
|
|
4143
4156
|
if (!providerId || !signInMethod) {
|
|
4144
4157
|
return null;
|
|
4145
4158
|
}
|
|
@@ -4230,7 +4243,10 @@ const VERIFY_PHONE_NUMBER_FOR_EXISTING_ERROR_MAP_ = {
|
|
|
4230
4243
|
["USER_NOT_FOUND" /* ServerError.USER_NOT_FOUND */]: "user-not-found" /* AuthErrorCode.USER_DELETED */
|
|
4231
4244
|
};
|
|
4232
4245
|
async function verifyPhoneNumberForExisting(auth, request) {
|
|
4233
|
-
const apiRequest =
|
|
4246
|
+
const apiRequest = {
|
|
4247
|
+
...request,
|
|
4248
|
+
operation: 'REAUTH'
|
|
4249
|
+
};
|
|
4234
4250
|
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_);
|
|
4235
4251
|
}
|
|
4236
4252
|
|
|
@@ -4274,7 +4290,10 @@ class PhoneAuthCredential extends AuthCredential {
|
|
|
4274
4290
|
}
|
|
4275
4291
|
/** @internal */
|
|
4276
4292
|
_linkToIdToken(auth, idToken) {
|
|
4277
|
-
return linkWithPhoneNumber(auth,
|
|
4293
|
+
return linkWithPhoneNumber(auth, {
|
|
4294
|
+
idToken,
|
|
4295
|
+
...this._makeVerificationRequest()
|
|
4296
|
+
});
|
|
4278
4297
|
}
|
|
4279
4298
|
/** @internal */
|
|
4280
4299
|
_getReauthenticationResolver(auth) {
|
|
@@ -4402,19 +4421,18 @@ class ActionCodeURL {
|
|
|
4402
4421
|
* @internal
|
|
4403
4422
|
*/
|
|
4404
4423
|
constructor(actionLink) {
|
|
4405
|
-
var _a, _b, _c, _d, _e, _f;
|
|
4406
4424
|
const searchParams = util.querystringDecode(util.extractQuerystring(actionLink));
|
|
4407
|
-
const apiKey =
|
|
4408
|
-
const code =
|
|
4409
|
-
const operation = parseMode(
|
|
4425
|
+
const apiKey = searchParams["apiKey" /* QueryField.API_KEY */] ?? null;
|
|
4426
|
+
const code = searchParams["oobCode" /* QueryField.CODE */] ?? null;
|
|
4427
|
+
const operation = parseMode(searchParams["mode" /* QueryField.MODE */] ?? null);
|
|
4410
4428
|
// Validate API key, code and mode.
|
|
4411
4429
|
_assert(apiKey && code && operation, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
4412
4430
|
this.apiKey = apiKey;
|
|
4413
4431
|
this.operation = operation;
|
|
4414
4432
|
this.code = code;
|
|
4415
|
-
this.continueUrl =
|
|
4416
|
-
this.languageCode =
|
|
4417
|
-
this.tenantId =
|
|
4433
|
+
this.continueUrl = searchParams["continueUrl" /* QueryField.CONTINUE_URL */] ?? null;
|
|
4434
|
+
this.languageCode = searchParams["lang" /* QueryField.LANGUAGE_CODE */] ?? null;
|
|
4435
|
+
this.tenantId = searchParams["tenantId" /* QueryField.TENANT_ID */] ?? null;
|
|
4418
4436
|
}
|
|
4419
4437
|
/**
|
|
4420
4438
|
* Parses the email action link string and returns an {@link ActionCodeURL} if the link is valid,
|
|
@@ -4430,7 +4448,7 @@ class ActionCodeURL {
|
|
|
4430
4448
|
try {
|
|
4431
4449
|
return new ActionCodeURL(actionLink);
|
|
4432
4450
|
}
|
|
4433
|
-
catch
|
|
4451
|
+
catch {
|
|
4434
4452
|
return null;
|
|
4435
4453
|
}
|
|
4436
4454
|
}
|
|
@@ -4720,13 +4738,17 @@ class OAuthProvider extends BaseOAuthProvider {
|
|
|
4720
4738
|
* or the ID token string.
|
|
4721
4739
|
*/
|
|
4722
4740
|
credential(params) {
|
|
4723
|
-
return this._credential(
|
|
4741
|
+
return this._credential({ ...params, nonce: params.rawNonce });
|
|
4724
4742
|
}
|
|
4725
4743
|
/** An internal credential method that accepts more permissive options */
|
|
4726
4744
|
_credential(params) {
|
|
4727
4745
|
_assert(params.idToken || params.accessToken, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
4728
4746
|
// For OAuthCredential, sign in method is same as providerId.
|
|
4729
|
-
return OAuthCredential._fromParams(
|
|
4747
|
+
return OAuthCredential._fromParams({
|
|
4748
|
+
...params,
|
|
4749
|
+
providerId: this.providerId,
|
|
4750
|
+
signInMethod: this.providerId
|
|
4751
|
+
});
|
|
4730
4752
|
}
|
|
4731
4753
|
/**
|
|
4732
4754
|
* Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.
|
|
@@ -4878,7 +4900,7 @@ class FacebookAuthProvider extends BaseOAuthProvider {
|
|
|
4878
4900
|
try {
|
|
4879
4901
|
return FacebookAuthProvider.credential(tokenResponse.oauthAccessToken);
|
|
4880
4902
|
}
|
|
4881
|
-
catch
|
|
4903
|
+
catch {
|
|
4882
4904
|
return null;
|
|
4883
4905
|
}
|
|
4884
4906
|
}
|
|
@@ -5000,7 +5022,7 @@ class GoogleAuthProvider extends BaseOAuthProvider {
|
|
|
5000
5022
|
try {
|
|
5001
5023
|
return GoogleAuthProvider.credential(oauthIdToken, oauthAccessToken);
|
|
5002
5024
|
}
|
|
5003
|
-
catch
|
|
5025
|
+
catch {
|
|
5004
5026
|
return null;
|
|
5005
5027
|
}
|
|
5006
5028
|
}
|
|
@@ -5111,7 +5133,7 @@ class GithubAuthProvider extends BaseOAuthProvider {
|
|
|
5111
5133
|
try {
|
|
5112
5134
|
return GithubAuthProvider.credential(tokenResponse.oauthAccessToken);
|
|
5113
5135
|
}
|
|
5114
|
-
catch
|
|
5136
|
+
catch {
|
|
5115
5137
|
return null;
|
|
5116
5138
|
}
|
|
5117
5139
|
}
|
|
@@ -5395,7 +5417,7 @@ class TwitterAuthProvider extends BaseOAuthProvider {
|
|
|
5395
5417
|
try {
|
|
5396
5418
|
return TwitterAuthProvider.credential(oauthAccessToken, oauthTokenSecret);
|
|
5397
5419
|
}
|
|
5398
|
-
catch
|
|
5420
|
+
catch {
|
|
5399
5421
|
return null;
|
|
5400
5422
|
}
|
|
5401
5423
|
}
|
|
@@ -5511,13 +5533,12 @@ function providerIdForResponse(response) {
|
|
|
5511
5533
|
* @public
|
|
5512
5534
|
*/
|
|
5513
5535
|
async function signInAnonymously(auth) {
|
|
5514
|
-
var _a;
|
|
5515
5536
|
if (app._isFirebaseServerApp(auth.app)) {
|
|
5516
5537
|
return Promise.reject(_serverAppCurrentUserOperationNotSupportedError(auth));
|
|
5517
5538
|
}
|
|
5518
5539
|
const authInternal = _castAuth(auth);
|
|
5519
5540
|
await authInternal._initializationPromise;
|
|
5520
|
-
if (
|
|
5541
|
+
if (authInternal.currentUser?.isAnonymous) {
|
|
5521
5542
|
// If an anonymous user is already signed in, no need to sign them in again.
|
|
5522
5543
|
return new UserCredentialImpl({
|
|
5523
5544
|
user: authInternal.currentUser,
|
|
@@ -5551,7 +5572,6 @@ async function signInAnonymously(auth) {
|
|
|
5551
5572
|
*/
|
|
5552
5573
|
class MultiFactorError extends util.FirebaseError {
|
|
5553
5574
|
constructor(auth, error, operationType, user) {
|
|
5554
|
-
var _a;
|
|
5555
5575
|
super(error.code, error.message);
|
|
5556
5576
|
this.operationType = operationType;
|
|
5557
5577
|
this.user = user;
|
|
@@ -5559,7 +5579,7 @@ class MultiFactorError extends util.FirebaseError {
|
|
|
5559
5579
|
Object.setPrototypeOf(this, MultiFactorError.prototype);
|
|
5560
5580
|
this.customData = {
|
|
5561
5581
|
appName: auth.name,
|
|
5562
|
-
tenantId:
|
|
5582
|
+
tenantId: auth.tenantId ?? undefined,
|
|
5563
5583
|
_serverResponse: error.customData._serverResponse,
|
|
5564
5584
|
operationType
|
|
5565
5585
|
};
|
|
@@ -5690,7 +5710,7 @@ async function _reauthenticate(user, credential, bypassAuthState = false) {
|
|
|
5690
5710
|
}
|
|
5691
5711
|
catch (e) {
|
|
5692
5712
|
// Convert user deleted error into user mismatch
|
|
5693
|
-
if (
|
|
5713
|
+
if (e?.code === `auth/${"user-not-found" /* AuthErrorCode.USER_DELETED */}`) {
|
|
5694
5714
|
_fail(auth, "user-mismatch" /* AuthErrorCode.USER_MISMATCH */);
|
|
5695
5715
|
}
|
|
5696
5716
|
throw e;
|
|
@@ -5915,8 +5935,7 @@ class TotpMultiFactorInfoImpl extends MultiFactorInfoImpl {
|
|
|
5915
5935
|
* limitations under the License.
|
|
5916
5936
|
*/
|
|
5917
5937
|
function _setActionCodeSettingsOnRequest(auth, request, actionCodeSettings) {
|
|
5918
|
-
|
|
5919
|
-
_assert(((_a = actionCodeSettings.url) === null || _a === void 0 ? void 0 : _a.length) > 0, auth, "invalid-continue-uri" /* AuthErrorCode.INVALID_CONTINUE_URI */);
|
|
5938
|
+
_assert(actionCodeSettings.url?.length > 0, auth, "invalid-continue-uri" /* AuthErrorCode.INVALID_CONTINUE_URI */);
|
|
5920
5939
|
_assert(typeof actionCodeSettings.dynamicLinkDomain === 'undefined' ||
|
|
5921
5940
|
actionCodeSettings.dynamicLinkDomain.length > 0, auth, "invalid-dynamic-link-domain" /* AuthErrorCode.INVALID_DYNAMIC_LINK_DOMAIN */);
|
|
5922
5941
|
_assert(typeof actionCodeSettings.linkDomain === 'undefined' ||
|
|
@@ -6277,7 +6296,7 @@ async function sendSignInLinkToEmail(auth, email, actionCodeSettings) {
|
|
|
6277
6296
|
*/
|
|
6278
6297
|
function isSignInWithEmailLink(auth, emailLink) {
|
|
6279
6298
|
const actionCodeUrl = ActionCodeURL.parseLink(emailLink);
|
|
6280
|
-
return
|
|
6299
|
+
return actionCodeUrl?.operation === "EMAIL_SIGNIN" /* ActionCodeOperation.EMAIL_SIGNIN */;
|
|
6281
6300
|
}
|
|
6282
6301
|
/**
|
|
6283
6302
|
* Asynchronously signs in using an email and sign-in email link.
|
|
@@ -6650,7 +6669,6 @@ async function updateEmailOrPassword(user, email, password) {
|
|
|
6650
6669
|
*
|
|
6651
6670
|
*/
|
|
6652
6671
|
function _fromIdTokenResponse(idTokenResponse) {
|
|
6653
|
-
var _a, _b;
|
|
6654
6672
|
if (!idTokenResponse) {
|
|
6655
6673
|
return null;
|
|
6656
6674
|
}
|
|
@@ -6660,8 +6678,8 @@ function _fromIdTokenResponse(idTokenResponse) {
|
|
|
6660
6678
|
: {};
|
|
6661
6679
|
const isNewUser = idTokenResponse.isNewUser ||
|
|
6662
6680
|
idTokenResponse.kind === "identitytoolkit#SignupNewUserResponse" /* IdTokenResponseKind.SignupNewUser */;
|
|
6663
|
-
if (!providerId &&
|
|
6664
|
-
const signInProvider =
|
|
6681
|
+
if (!providerId && idTokenResponse?.idToken) {
|
|
6682
|
+
const signInProvider = _parseToken(idTokenResponse.idToken)?.firebase?.['sign_in_provider'];
|
|
6665
6683
|
if (signInProvider) {
|
|
6666
6684
|
const filteredProviderId = signInProvider !== "anonymous" /* ProviderId.ANONYMOUS */ &&
|
|
6667
6685
|
signInProvider !== "custom" /* ProviderId.CUSTOM */
|
|
@@ -6710,7 +6728,7 @@ class FacebookAdditionalUserInfo extends GenericAdditionalUserInfo {
|
|
|
6710
6728
|
}
|
|
6711
6729
|
class GithubAdditionalUserInfo extends FederatedAdditionalUserInfoWithUsername {
|
|
6712
6730
|
constructor(isNewUser, profile) {
|
|
6713
|
-
super(isNewUser, "github.com" /* ProviderId.GITHUB */, profile, typeof
|
|
6731
|
+
super(isNewUser, "github.com" /* ProviderId.GITHUB */, profile, typeof profile?.login === 'string' ? profile?.login : null);
|
|
6714
6732
|
}
|
|
6715
6733
|
}
|
|
6716
6734
|
class GoogleAdditionalUserInfo extends GenericAdditionalUserInfo {
|
|
@@ -7010,12 +7028,11 @@ class MultiFactorSessionImpl {
|
|
|
7010
7028
|
};
|
|
7011
7029
|
}
|
|
7012
7030
|
static fromJSON(obj) {
|
|
7013
|
-
|
|
7014
|
-
|
|
7015
|
-
if ((_a = obj.multiFactorSession) === null || _a === void 0 ? void 0 : _a.pendingCredential) {
|
|
7031
|
+
if (obj?.multiFactorSession) {
|
|
7032
|
+
if (obj.multiFactorSession?.pendingCredential) {
|
|
7016
7033
|
return MultiFactorSessionImpl._fromMfaPendingCredential(obj.multiFactorSession.pendingCredential);
|
|
7017
7034
|
}
|
|
7018
|
-
else if (
|
|
7035
|
+
else if (obj.multiFactorSession?.idToken) {
|
|
7019
7036
|
return MultiFactorSessionImpl._fromIdtoken(obj.multiFactorSession.idToken);
|
|
7020
7037
|
}
|
|
7021
7038
|
}
|
|
@@ -7058,7 +7075,11 @@ class MultiFactorResolverImpl {
|
|
|
7058
7075
|
delete serverResponse.mfaInfo;
|
|
7059
7076
|
delete serverResponse.mfaPendingCredential;
|
|
7060
7077
|
// Use in the new token & refresh token in the old response
|
|
7061
|
-
const idTokenResponse =
|
|
7078
|
+
const idTokenResponse = {
|
|
7079
|
+
...serverResponse,
|
|
7080
|
+
idToken: mfaResponse.idToken,
|
|
7081
|
+
refreshToken: mfaResponse.refreshToken
|
|
7082
|
+
};
|
|
7062
7083
|
// TODO: we should collapse this switch statement into UserCredentialImpl._forOperation and have it support the SIGN_IN case
|
|
7063
7084
|
switch (error.operationType) {
|
|
7064
7085
|
case "signIn" /* OperationType.SIGN_IN */:
|
|
@@ -7089,11 +7110,10 @@ class MultiFactorResolverImpl {
|
|
|
7089
7110
|
* @public
|
|
7090
7111
|
*/
|
|
7091
7112
|
function getMultiFactorResolver(auth, error) {
|
|
7092
|
-
var _a;
|
|
7093
7113
|
const authModular = util.getModularInstance(auth);
|
|
7094
7114
|
const errorInternal = error;
|
|
7095
7115
|
_assert(error.customData.operationType, authModular, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
7096
|
-
_assert(
|
|
7116
|
+
_assert(errorInternal.customData._serverResponse?.mfaPendingCredential, authModular, "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */);
|
|
7097
7117
|
return MultiFactorResolverImpl._fromError(authModular, errorInternal);
|
|
7098
7118
|
}
|
|
7099
7119
|
|
|
@@ -7300,7 +7320,7 @@ class Receiver {
|
|
|
7300
7320
|
const messageEvent = event;
|
|
7301
7321
|
const { eventId, eventType, data } = messageEvent.data;
|
|
7302
7322
|
const handlers = this.handlersMap[eventType];
|
|
7303
|
-
if (!
|
|
7323
|
+
if (!handlers?.size) {
|
|
7304
7324
|
return;
|
|
7305
7325
|
}
|
|
7306
7326
|
messageEvent.ports[0].postMessage({
|
|
@@ -7536,20 +7556,19 @@ function _isWorker() {
|
|
|
7536
7556
|
typeof _window()['importScripts'] === 'function');
|
|
7537
7557
|
}
|
|
7538
7558
|
async function _getActiveServiceWorker() {
|
|
7539
|
-
if (!
|
|
7559
|
+
if (!navigator?.serviceWorker) {
|
|
7540
7560
|
return null;
|
|
7541
7561
|
}
|
|
7542
7562
|
try {
|
|
7543
7563
|
const registration = await navigator.serviceWorker.ready;
|
|
7544
7564
|
return registration.active;
|
|
7545
7565
|
}
|
|
7546
|
-
catch
|
|
7566
|
+
catch {
|
|
7547
7567
|
return null;
|
|
7548
7568
|
}
|
|
7549
7569
|
}
|
|
7550
7570
|
function _getServiceWorkerController() {
|
|
7551
|
-
|
|
7552
|
-
return ((_a = navigator === null || navigator === void 0 ? void 0 : navigator.serviceWorker) === null || _a === void 0 ? void 0 : _a.controller) || null;
|
|
7571
|
+
return navigator?.serviceWorker?.controller || null;
|
|
7553
7572
|
}
|
|
7554
7573
|
function _getWorkerGlobalScope() {
|
|
7555
7574
|
return _isWorker() ? self : null;
|
|
@@ -7732,7 +7751,6 @@ class IndexedDBLocalPersistence {
|
|
|
7732
7751
|
* may not resolve.
|
|
7733
7752
|
*/
|
|
7734
7753
|
async initializeSender() {
|
|
7735
|
-
var _a, _b;
|
|
7736
7754
|
// Check to see if there's an active service worker.
|
|
7737
7755
|
this.activeServiceWorker = await _getActiveServiceWorker();
|
|
7738
7756
|
if (!this.activeServiceWorker) {
|
|
@@ -7744,8 +7762,8 @@ class IndexedDBLocalPersistence {
|
|
|
7744
7762
|
if (!results) {
|
|
7745
7763
|
return;
|
|
7746
7764
|
}
|
|
7747
|
-
if (
|
|
7748
|
-
|
|
7765
|
+
if (results[0]?.fulfilled &&
|
|
7766
|
+
results[0]?.value.includes("keyChanged" /* _EventType.KEY_CHANGED */)) {
|
|
7749
7767
|
this.serviceWorkerReceiverAvailable = true;
|
|
7750
7768
|
}
|
|
7751
7769
|
}
|
|
@@ -7771,7 +7789,7 @@ class IndexedDBLocalPersistence {
|
|
|
7771
7789
|
? 800 /* _TimeoutDuration.LONG_ACK */
|
|
7772
7790
|
: 50 /* _TimeoutDuration.ACK */);
|
|
7773
7791
|
}
|
|
7774
|
-
catch
|
|
7792
|
+
catch {
|
|
7775
7793
|
// This is a best effort approach. Ignore errors.
|
|
7776
7794
|
}
|
|
7777
7795
|
}
|
|
@@ -7785,7 +7803,7 @@ class IndexedDBLocalPersistence {
|
|
|
7785
7803
|
await _deleteObject(db, STORAGE_AVAILABLE_KEY);
|
|
7786
7804
|
return true;
|
|
7787
7805
|
}
|
|
7788
|
-
catch
|
|
7806
|
+
catch { }
|
|
7789
7807
|
return false;
|
|
7790
7808
|
}
|
|
7791
7809
|
async _withPendingWrite(write) {
|
|
@@ -7983,9 +8001,8 @@ class TotpMultiFactorGenerator {
|
|
|
7983
8001
|
* @returns A promise to {@link TotpSecret}.
|
|
7984
8002
|
*/
|
|
7985
8003
|
static async generateSecret(session) {
|
|
7986
|
-
var _a;
|
|
7987
8004
|
const mfaSession = session;
|
|
7988
|
-
_assert(typeof
|
|
8005
|
+
_assert(typeof mfaSession.user?.auth !== 'undefined', "internal-error" /* AuthErrorCode.INTERNAL_ERROR */);
|
|
7989
8006
|
const response = await startEnrollTotpMfa(mfaSession.user.auth, {
|
|
7990
8007
|
idToken: mfaSession.credential,
|
|
7991
8008
|
totpEnrollmentInfo: {}
|
|
@@ -8069,14 +8086,13 @@ class TotpSecret {
|
|
|
8069
8086
|
* @returns A QR code URL string.
|
|
8070
8087
|
*/
|
|
8071
8088
|
generateQrCodeUrl(accountName, issuer) {
|
|
8072
|
-
var _a;
|
|
8073
8089
|
let useDefaults = false;
|
|
8074
8090
|
if (_isEmptyString(accountName) || _isEmptyString(issuer)) {
|
|
8075
8091
|
useDefaults = true;
|
|
8076
8092
|
}
|
|
8077
8093
|
if (useDefaults) {
|
|
8078
8094
|
if (_isEmptyString(accountName)) {
|
|
8079
|
-
accountName =
|
|
8095
|
+
accountName = this.auth.currentUser?.email || 'unknownuser';
|
|
8080
8096
|
}
|
|
8081
8097
|
if (_isEmptyString(issuer)) {
|
|
8082
8098
|
issuer = this.auth.name;
|
|
@@ -8087,11 +8103,11 @@ class TotpSecret {
|
|
|
8087
8103
|
}
|
|
8088
8104
|
/** @internal */
|
|
8089
8105
|
function _isEmptyString(input) {
|
|
8090
|
-
return typeof input === 'undefined' ||
|
|
8106
|
+
return typeof input === 'undefined' || input?.length === 0;
|
|
8091
8107
|
}
|
|
8092
8108
|
|
|
8093
8109
|
var name = "@firebase/auth";
|
|
8094
|
-
var version = "1.
|
|
8110
|
+
var version = "1.11.0-20250716004940";
|
|
8095
8111
|
|
|
8096
8112
|
/**
|
|
8097
8113
|
* @license
|
|
@@ -8115,9 +8131,8 @@ class AuthInterop {
|
|
|
8115
8131
|
this.internalListeners = new Map();
|
|
8116
8132
|
}
|
|
8117
8133
|
getUid() {
|
|
8118
|
-
var _a;
|
|
8119
8134
|
this.assertAuthConfigured();
|
|
8120
|
-
return
|
|
8135
|
+
return this.auth.currentUser?.uid || null;
|
|
8121
8136
|
}
|
|
8122
8137
|
async getToken(forceRefresh) {
|
|
8123
8138
|
this.assertAuthConfigured();
|
|
@@ -8134,7 +8149,7 @@ class AuthInterop {
|
|
|
8134
8149
|
return;
|
|
8135
8150
|
}
|
|
8136
8151
|
const unsubscribe = this.auth.onIdTokenChanged(user => {
|
|
8137
|
-
listener(
|
|
8152
|
+
listener(user?.stsTokenManager.accessToken || null);
|
|
8138
8153
|
});
|
|
8139
8154
|
this.internalListeners.set(listener, unsubscribe);
|
|
8140
8155
|
this.updateProactiveRefresh();
|
|
@@ -8233,8 +8248,8 @@ function registerAuth(clientPlatform) {
|
|
|
8233
8248
|
return (auth => new AuthInterop(auth))(auth);
|
|
8234
8249
|
}, "PRIVATE" /* ComponentType.PRIVATE */).setInstantiationMode("EXPLICIT" /* InstantiationMode.EXPLICIT */));
|
|
8235
8250
|
app.registerVersion(name, version, getVersionForPlatform(clientPlatform));
|
|
8236
|
-
// BUILD_TARGET will be replaced by values like
|
|
8237
|
-
app.registerVersion(name, version, '
|
|
8251
|
+
// BUILD_TARGET will be replaced by values like esm, cjs, etc during the compilation
|
|
8252
|
+
app.registerVersion(name, version, 'cjs2020');
|
|
8238
8253
|
}
|
|
8239
8254
|
|
|
8240
8255
|
exports.AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY = AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY;
|
|
@@ -8356,4 +8371,4 @@ exports.useDeviceLanguage = useDeviceLanguage;
|
|
|
8356
8371
|
exports.validatePassword = validatePassword;
|
|
8357
8372
|
exports.verifyBeforeUpdateEmail = verifyBeforeUpdateEmail;
|
|
8358
8373
|
exports.verifyPasswordResetCode = verifyPasswordResetCode;
|
|
8359
|
-
//# sourceMappingURL=register-
|
|
8374
|
+
//# sourceMappingURL=register-f94f7b41.js.map
|