Because:
* We previously did not send an upgrade email if the prior subscription
had been cancelled.
This commit:
* Sends the upgrade email if the subscription is not cancelled and was
upgraded even if it was previously cancelled.
Closes#5987
Because:
- I noticed we were missing a few CHANGELOG.md files in our packages
- We were also missing entries for a few packages to update the CHANGELOG files in the release script
This commit:
- Add the files
- Update the script
Because:
- When generateEcosystemAnonId calls updateEcosystemAnonId it can fail with a 412 error, which means we tried to update the anon id but another client beat us to it. We need to handle this scenario.
This commit:
- When updateEcosystemAnonId fails in this method, check if it's a 412 error, and retrieve the existing anon id from the auth server to store on the account instead
Because:
- We were GETing to the auth server '/account/ecosystemAnonId' endpoint, when it should be PUTing
This commit:
- Fixes that, adds test to assert call happens
because we want to be able to timeout requests on the server side as well
feat(auth-client): make auth-client request timeout configurable
because server timeouts should be lower than client ones
## Because
- We don't want to use the keyfetch token the browser will use, it will throw a 401 and not start syncing
## This pull request
- If a password is specified in `generateEcosystemAnonID` use the password to reauth and attempt to get a new keyfetch token
- Updated change password to not pass a password, this will make it use the `this.canFetchKeys()` if branch if possible
## Issue that this pull request solves
Closes: https://github.com/mozilla/fxa/issues/6047
Because:
* The warning buttons did not have an effect.
This commit:
* Change the background color from the warning buttons, when the button receives hover or active.
Closes 5658
Because:
* Our email headers always contain ": " separating the name and value.
* We weren't accounting for these two extra characters when enforcing
the maximum length of a header line.
This commit:
* Ensures that the header line length calculation includes the formatting
characters.
## Because
- Translation test broke
- Surprised the text changed because the equivalent English text didn't 🤷🏽♂️
## This pull request
- Uses new translation text in test.
## Issue that this pull request solves
Closes: NA
Because:
- "Using sessionReauth to get keys could potentially pose some issues if the user is attempting to come from an unverified session. FxA only allows fetching keys from sessions that are verified (ex. performed some email verification loop)."
This commit:
- Checks that the flow's session is verified, and doesn't attempt to call sessionReauth if it's not, therefor not setting the anon ID at all in this flow
Additional comment from rfk:
> We should make our best effort to generate an anon_id, but not at the expense of RP user experience. Given that we have logic in AET clients to generate placeholder ids when the real one is missing, it doesn't seem too bad to leave the non_id empty in this case and just hope the user does a verified flow some time later to fill it in.
Because:
* We find edge cases and want to move our code to TypeScript.
This commit:
* Converts subscription routes from JS to TS and updates other types
where needed.
Closes#6002
Because:
* To support SCA we must migrate to using Stripe's SetupIntent API
This commit:
* Add call to auth server to create SetupIntent
* Use secret from SetupIntent result to confirm card prior to creating a subscription
Closes#5832
Co-authored-by: Jackie Munroe <jmunroe@mozilla.com>
Co-authored-by: Les Orchard <me@lmorchard.com>
Because:
* Using a library for caching provides a nicer UX with additional
capabilities to rolling our own.
* require() imports always resolve to any.
This commit:
* Uses type-cacheable for decorator based caching and clearing instead
of our DIY function.
* Switches config.ts to use imports for Config type-safety and updates
use of config for proper typing.
Closes#6000