Skip to content

Commit

Permalink
Merge master into release
Browse files Browse the repository at this point in the history
  • Loading branch information
google-oss-bot committed Apr 24, 2024
2 parents 826b571 + e1a7764 commit e16d613
Show file tree
Hide file tree
Showing 33 changed files with 312 additions and 196 deletions.
6 changes: 6 additions & 0 deletions .changeset/early-tomatoes-occur.md
@@ -0,0 +1,6 @@
---
'@firebase/firestore': patch
'firebase': patch
---

Prevent spurious "Backend didn't respond within 10 seconds" errors when network is indeed responding, just slowly.
5 changes: 5 additions & 0 deletions .changeset/empty-items-compete.md
@@ -0,0 +1,5 @@
---
'@firebase/firestore': patch
---

Updated protobufjs transitive dependency in Firetore.
5 changes: 5 additions & 0 deletions .changeset/pink-beds-study.md
@@ -0,0 +1,5 @@
---
"@firebase/firestore": patch
---

Go back using xmlhttprequest for bidi-streams, as fetch streams seem to be having connection issue.
5 changes: 5 additions & 0 deletions .changeset/real-ravens-prove.md
@@ -0,0 +1,5 @@
---
'@firebase/auth': patch
---

Emit a module package file with esm2017 auth browser extension builds
6 changes: 6 additions & 0 deletions .changeset/sharp-lizards-sit.md
@@ -0,0 +1,6 @@
---
'@firebase/firestore': patch
'firebase': patch
---

Reduce code bundle size by 6.5 kB in applications that only use memory persistence (the default persistence mode). This bundle size regression was accidentally introduced in v10.7.2.
6 changes: 6 additions & 0 deletions .changeset/wild-bulldogs-deny.md
@@ -0,0 +1,6 @@
---
'@firebase/auth': patch
'@firebase/auth-compat': patch
---

Update jszip transient dependency from 3.7.1 to 3.10.1 in auth.
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug_report_v2.yaml
Expand Up @@ -71,6 +71,7 @@ body:
- Performance
- Remote-Config
- Storage
- VertexAI
validations:
required: true
- type: textarea
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/deploy-config.yml
Expand Up @@ -27,6 +27,7 @@ jobs:
test:
name: Deploy Firebase Project Rules and Functions
runs-on: ubuntu-latest
if: (github.actor != 'dependabot[bot]')

steps:
- name: Checkout Repo
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/health-metrics-pull-request.yml
Expand Up @@ -35,7 +35,7 @@ env:
jobs:
binary-size:
name: Binary Size
if: github.event_name == 'push' || !(github.event.pull_request.head.repo.fork)
if: (github.event_name == 'push' || !(github.event.pull_request.head.repo.fork)) && (github.actor != 'dependabot[bot]')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
Expand All @@ -52,7 +52,7 @@ jobs:
run: yarn size-report
modular-export-size:
name: Binary Size For Modular Exports
if: github.event_name == 'push' || !(github.event.pull_request.head.repo.fork)
if: (github.event_name == 'push' || !(github.event.pull_request.head.repo.fork)) && (github.actor != 'dependabot[bot]')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
Expand Down
5 changes: 2 additions & 3 deletions CONTRIBUTING.md
Expand Up @@ -154,7 +154,7 @@ That's it! Thank you for your contribution!

#### Adding changeset to PR
The repository uses changesets to associate PR contributions with major and minor version releases
adn patch releases. If your change is a feature or a behavioral change (either of which should
and patch releases. If your change is a feature or a behavioral change (either of which should
correspond to a version bump) then you will need to generate a changeset in your PR to track the
change.

Expand All @@ -165,8 +165,7 @@ repository:
yarn changeset
```

You will be asked to create a description (here's an
[example]((https://github.com/firebase/firebase-js-sdk/pull/3284#issuecomment-649718617)). You
You will be asked to create a description (here's an [example](https://github.com/firebase/firebase-js-sdk/pull/3284#issuecomment-649718617)). You
should include the version bump for your package as well as the description for the change. Valid
version bump types are major, minor or patch, where:

Expand Down
7 changes: 3 additions & 4 deletions README.md
Expand Up @@ -29,9 +29,8 @@ Please see [Environment Support](https://firebase.google.com/support/guides/envi
#### Node.js

Before you can start working on the Firebase JS SDK, you need to have Node.js
installed on your machine. As of June 13th, 2023 the team has been testing with Node.js versions
between `16.4.0` and `16.16.0`, but the required verison of Node.js may change as we update
our dependencies.
installed on your machine. As of April 19th, 2024 the team has been testing with Node.js version
`20.12.2`, but the required verison of Node.js may change as we update our dependencies.

To download Node.js visit https://nodejs.org/en/download/.

Expand Down Expand Up @@ -64,7 +63,7 @@ $ yarn -v
$ java -version
```

Your `node` version should be between `16.4.0` and `16.6.0`, your `yarn` version should
Your `node` version should be `20.12.2`, your `yarn` version should
be between `1.0.0` and `1.22.11`, and your `java` version should be `11.0` or greater.

_NOTE: We will update the documentation as new versions are required, however
Expand Down
16 changes: 8 additions & 8 deletions docs-devsite/auth.md
Expand Up @@ -28,15 +28,15 @@ Firebase Authentication
| [confirmPasswordReset(auth, oobCode, newPassword)](./auth.md#confirmpasswordreset_749dad8) | Completes the password reset process, given a confirmation code and new password. |
| [connectAuthEmulator(auth, url, options)](./auth.md#connectauthemulator_657c7e5) | Changes the [Auth](./auth.auth.md#auth_interface) instance to communicate with the Firebase Auth Emulator, instead of production Firebase Auth services. |
| [createUserWithEmailAndPassword(auth, email, password)](./auth.md#createuserwithemailandpassword_21ad33b) | Creates a new user account associated with the specified email address and password. |
| [fetchSignInMethodsForEmail(auth, email)](./auth.md#fetchsigninmethodsforemail_efb3887) | Gets the list of possible sign in methods for the given email address. This method returns an empty list when \[Email Enumeration Protection\](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled, irrespective of the number of authentication methods available for the given email. |
| [fetchSignInMethodsForEmail(auth, email)](./auth.md#fetchsigninmethodsforemail_efb3887) | Gets the list of possible sign in methods for the given email address. This method returns an empty list when [Email Enumeration Protection](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled, irrespective of the number of authentication methods available for the given email. |
| [getMultiFactorResolver(auth, error)](./auth.md#getmultifactorresolver_201ba61) | Provides a [MultiFactorResolver](./auth.multifactorresolver.md#multifactorresolver_interface) suitable for completion of a multi-factor flow. |
| [getRedirectResult(auth, resolver)](./auth.md#getredirectresult_c35dc1f) | Returns a [UserCredential](./auth.usercredential.md#usercredential_interface) from the redirect-based sign-in flow. |
| [initializeRecaptchaConfig(auth)](./auth.md#initializerecaptchaconfig_2a61ea7) | Loads the reCAPTCHA configuration into the <code>Auth</code> instance. |
| [isSignInWithEmailLink(auth, emailLink)](./auth.md#issigninwithemaillink_db04f1d) | Checks if an incoming link is a sign-in with email link suitable for [signInWithEmailLink()](./auth.md#signinwithemaillink_ed14c53)<!-- -->. |
| [onAuthStateChanged(auth, nextOrObserver, error, completed)](./auth.md#onauthstatechanged_b0d07ab) | Adds an observer for changes to the user's sign-in state. |
| [onIdTokenChanged(auth, nextOrObserver, error, completed)](./auth.md#onidtokenchanged_b0d07ab) | Adds an observer for changes to the signed-in user's ID token. |
| [revokeAccessToken(auth, token)](./auth.md#revokeaccesstoken_5556ad5) | Revokes the given access token. Currently only supports Apple OAuth access tokens. |
| [sendPasswordResetEmail(auth, email, actionCodeSettings)](./auth.md#sendpasswordresetemail_95b079b) | Sends a password reset email to the given email address. This method does not throw an error when there's no user account with the given email address and \[Email Enumeration Protection\](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled. |
| [sendPasswordResetEmail(auth, email, actionCodeSettings)](./auth.md#sendpasswordresetemail_95b079b) | Sends a password reset email to the given email address. This method does not throw an error when there's no user account with the given email address and [Email Enumeration Protection](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled. |
| [sendSignInLinkToEmail(auth, email, actionCodeSettings)](./auth.md#sendsigninlinktoemail_95b079b) | Sends a sign-in email link to the user with the specified email. |
| [setPersistence(auth, persistence)](./auth.md#setpersistence_a3592ac) | Changes the type of persistence on the [Auth](./auth.auth.md#auth_interface) instance for the currently saved <code>Auth</code> session and applies this type of persistence for future sign-in requests, including sign-in with redirect requests. |
| [signInAnonymously(auth)](./auth.md#signinanonymously_2a61ea7) | Asynchronously signs in as an anonymous user. |
Expand Down Expand Up @@ -136,7 +136,7 @@ Firebase Authentication
| [PhoneSingleFactorInfoOptions](./auth.phonesinglefactorinfooptions.md#phonesinglefactorinfooptions_interface) | Options used for single-factor sign-in. |
| [PopupRedirectResolver](./auth.popupredirectresolver.md#popupredirectresolver_interface) | A resolver used for handling DOM specific operations like [signInWithPopup()](./auth.md#signinwithpopup_770f816) or [signInWithRedirect()](./auth.md#signinwithredirect_770f816)<!-- -->. |
| [ReactNativeAsyncStorage](./auth.reactnativeasyncstorage.md#reactnativeasyncstorage_interface) | Interface for a supplied <code>AsyncStorage</code>. |
| [RecaptchaParameters](./auth.recaptchaparameters.md#recaptchaparameters_interface) | Interface representing reCAPTCHA parameters.<!-- -->See the \[reCAPTCHA docs\](https://developers.google.com/recaptcha/docs/display\#render\_param) for the list of accepted parameters. All parameters are accepted except for <code>sitekey</code>: Firebase Auth provisions a reCAPTCHA for each project and will configure the site key upon rendering.<!-- -->For an invisible reCAPTCHA, set the <code>size</code> key to <code>invisible</code>. |
| [RecaptchaParameters](./auth.recaptchaparameters.md#recaptchaparameters_interface) | Interface representing reCAPTCHA parameters.<!-- -->See the [reCAPTCHA docs](https://developers.google.com/recaptcha/docs/display#render_param) for the list of accepted parameters. All parameters are accepted except for <code>sitekey</code>: Firebase Auth provisions a reCAPTCHA for each project and will configure the site key upon rendering.<!-- -->For an invisible reCAPTCHA, set the <code>size</code> key to <code>invisible</code>. |
| [TotpMultiFactorAssertion](./auth.totpmultifactorassertion.md#totpmultifactorassertion_interface) | The class for asserting ownership of a TOTP second factor. Provided by [TotpMultiFactorGenerator.assertionForEnrollment()](./auth.totpmultifactorgenerator.md#totpmultifactorgeneratorassertionforenrollment) and [TotpMultiFactorGenerator.assertionForSignIn()](./auth.totpmultifactorgenerator.md#totpmultifactorgeneratorassertionforsignin)<!-- -->. |
| [TotpMultiFactorInfo](./auth.totpmultifactorinfo.md#totpmultifactorinfo_interface) | The subclass of the [MultiFactorInfo](./auth.multifactorinfo.md#multifactorinfo_interface) interface for TOTP second factors. The <code>factorId</code> of this second factor is [FactorId](./auth.md#factorid)<!-- -->.TOTP. |
| [User](./auth.user.md#user_interface) | A user account. |
Expand Down Expand Up @@ -405,7 +405,7 @@ Promise&lt;[UserCredential](./auth.usercredential.md#usercredential_interface)<!

### fetchSignInMethodsForEmail(auth, email) {:#fetchsigninmethodsforemail_efb3887}

Gets the list of possible sign in methods for the given email address. This method returns an empty list when \[Email Enumeration Protection\](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled, irrespective of the number of authentication methods available for the given email.
Gets the list of possible sign in methods for the given email address. This method returns an empty list when [Email Enumeration Protection](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled, irrespective of the number of authentication methods available for the given email.

This is useful to differentiate methods of sign-in for the same provider, eg. [EmailAuthProvider](./auth.emailauthprovider.md#emailauthprovider_class) which has 2 methods of sign-in, [SignInMethod](./auth.md#signinmethod)<!-- -->.EMAIL\_PASSWORD and [SignInMethod](./auth.md#signinmethod)<!-- -->.EMAIL\_LINK.

Expand All @@ -420,7 +420,7 @@ export declare function fetchSignInMethodsForEmail(auth: Auth, email: string): P
| Parameter | Type | Description |
| --- | --- | --- |
| auth | [Auth](./auth.auth.md#auth_interface) | The [Auth](./auth.auth.md#auth_interface) instance. |
| email | string | The user's email address.<!-- -->Deprecated. Migrating off of this method is recommended as a security best-practice. Learn more in the Identity Platform documentation for \[Email Enumeration Protection\](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection). |
| email | string | The user's email address.<!-- -->Deprecated. Migrating off of this method is recommended as a security best-practice. Learn more in the Identity Platform documentation for [Email Enumeration Protection](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection)<!-- -->. |

<b>Returns:</b>

Expand Down Expand Up @@ -630,7 +630,7 @@ Promise&lt;void&gt;

### sendPasswordResetEmail(auth, email, actionCodeSettings) {:#sendpasswordresetemail_95b079b}

Sends a password reset email to the given email address. This method does not throw an error when there's no user account with the given email address and \[Email Enumeration Protection\](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled.
Sends a password reset email to the given email address. This method does not throw an error when there's no user account with the given email address and [Email Enumeration Protection](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled.

To complete the password reset, call [confirmPasswordReset()](./auth.md#confirmpasswordreset_749dad8) with the code supplied in the email sent to the user, along with the new password specified by the user.

Expand Down Expand Up @@ -839,7 +839,7 @@ Promise&lt;[UserCredential](./auth.usercredential.md#usercredential_interface)<!

Asynchronously signs in using an email and password.

Fails with an error if the email address and password do not match. When \[Email Enumeration Protection\](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled, this method fails with "auth/invalid-credential" in case of an invalid email/password.
Fails with an error if the email address and password do not match. When [Email Enumeration Protection](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled, this method fails with "auth/invalid-credential" in case of an invalid email/password.

This method is not supported on [Auth](./auth.auth.md#auth_interface) instances created with a [FirebaseServerApp](./app.firebaseserverapp.md#firebaseserverapp_interface)<!-- -->.

Expand Down Expand Up @@ -1663,7 +1663,7 @@ export declare function updateEmail(user: User, newEmail: string): Promise<void>
| Parameter | Type | Description |
| --- | --- | --- |
| user | [User](./auth.user.md#user_interface) | The user. |
| newEmail | string | The new email address.<!-- -->Throws "auth/operation-not-allowed" error when \[Email Enumeration Protection\](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled. Deprecated - Use [verifyBeforeUpdateEmail()](./auth.md#verifybeforeupdateemail_09d6f11) instead. |
| newEmail | string | The new email address.<!-- -->Throws "auth/operation-not-allowed" error when [Email Enumeration Protection](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled. Deprecated - Use [verifyBeforeUpdateEmail()](./auth.md#verifybeforeupdateemail_09d6f11) instead. |

<b>Returns:</b>

Expand Down
2 changes: 1 addition & 1 deletion docs-devsite/auth.recaptchaparameters.md
Expand Up @@ -12,7 +12,7 @@ https://github.com/firebase/firebase-js-sdk
# RecaptchaParameters interface
Interface representing reCAPTCHA parameters.

See the \[reCAPTCHA docs\](https://developers.google.com/recaptcha/docs/display\#render\_param) for the list of accepted parameters. All parameters are accepted except for `sitekey`<!-- -->: Firebase Auth provisions a reCAPTCHA for each project and will configure the site key upon rendering.
See the [reCAPTCHA docs](https://developers.google.com/recaptcha/docs/display#render_param) for the list of accepted parameters. All parameters are accepted except for `sitekey`<!-- -->: Firebase Auth provisions a reCAPTCHA for each project and will configure the site key upon rendering.

For an invisible reCAPTCHA, set the `size` key to `invisible`<!-- -->.

Expand Down

0 comments on commit e16d613

Please sign in to comment.