Because:
* Add the Stripe Payment Element to the checkout page
* Be able to checkout and successfully add a new payment method and
new subscription.
This commit:
* Adds the PaymentElement to the StripeWrapper
* Adds the Subscribe Now button
* Adds the Full Name field
* Updates the NestApp with Firestore and StatsD provider factories
Closes #FXA-8850 and #FXA-7810
Because:
- We were reporting known error response states that come from auth-server and were intended for flow control to Sentry
This Commit:
- Adds an extra check so we do not report these states needlessly.
- Fixes some tests so they adhere to latest sentry types.
Because:
* Stay up to date with latest next-auth/authjs beta releases
This commit:
* Updates to latest beta version
* Removes env vars no longer needed
Closes #FXA-9543
Because:
* Many of the tests did not use NestJS test harness
* Many of the tests had poor structure
* Many of the tests did not use jest.spyOn and were not typesafe in
their mocks
This commit:
* Restructures tests within libs
Closes FXA-9540
Because:
* We want to reduce the dependencies in fxa-jwtool and bring more
of the functionality into the monorepo.
This commit:
* Moves and updates the fxa-jwtool code to function the same
except as TypeScript with classes and no additional dependencies.
Because:
* The pem-jwk library wasn't using the latest crypto library
functionality and included older dependencies.
This commit:
* Pulls in pem-jwk functionality using the crypto library.
Because:
* We want to reduce external dependencies on orphaned code and
consolidate libraries.
This commit:
* Adds the `common-password-list` and `incremental-encoder` libraries
to the monorepo.
Because:
* We want to improve code quality and consistency in libs.
This commit:
* Updates currency manager error class.
* Updates typings.
* Updates occurrences of `expect(length).toBe(0)` to `expect(length).toHaveLength(0)`.
* Removes 'mock' from test variable names that are not mocks.
Because:
* Attempt to perform a no prompt authentication request to FxA when
customer is first navigated to Payment Next
This commit:
* Adds a landing route to initiate the no prompt signin
* If user is authenticated, add FxA uid to cart
* Add signin error page to handle FxA error for unauthenticated users
* Add placeholder generic error page.
Closes #FXA-7523
Because:
* We want to start adding Stripe client elements to the checkout page.
This commit:
* Adds Stripe SDK to a client component, which is added to Checkout.
* Adds middleware to add CSP to page requests.
Closes #FXA-8847
Because:
* We want to use TypeScript and async/await.
* Otp Storage could have more precise TS definition.
This commit:
* Renames `password.js` to `password.ts`.
* Refactors promise chains in password.ts to async/await.
* Adds more precise types to `OtpStorage`.
Because:
* Part of M3a.
* We want `createBillingAgreement` added to PaypalService.
This commit:
* Adds `createBillingAgreement` in `PaypalService`.
* Adds `CurrencyManager` library.
* Adds `status` to `createBillingAgreement` in `PaypalRepository`.
* Adds/updates all applicable tests.
Closes FXA-8935
Because:
- we want to use OTPs to improve the UX of the password reset flow
This commit:
- adds a lib for generating and validating random numeric OTPs
- adds a new auth-server endpoint for requesting the OTP in an email
- this endpoint does not send an email yet; To Be Implemented
Because:
- We want to let RPs know when users opt out of metrics collection
- We want to let RPs know when users opt in to metrics collection
This Commit:
- Ports the notifier code over to nx libs from auth server
- Ports other supporting libraries from fxa-shared to nx libs
- MozLoggerService
- Sentry
- Metrics (ie statsd)
- Updates graphql to emit a 'metricsChange' event when users toggle their 'Help improve Mozilla accounts' option in settings.
- Adds support for the metricsChanged event to the fxa-event-broker
Because:
* We want a service to manage checkout behaviors
This commit:
* Adds a checkout service
Closes FXA-9020
Closes FXA-8943
Closes FXA-9022
Closes FXA-8941
Because:
* Pages were still calling mock get cart
This commit:
* Adds getCartOrRedirect to all pages
* Redirects to appropriate page if cart.state does not much current page
Closes #FXA-9039
Because:
* Use Next.js standard environment variable procedure
* Provide typed config to be used throughout Payments Next.
This commit:
* Refactor config to use Next.js native environment loaders
* Remove .env.json and .env.production.json
* Add validator and transformer functions to provide
validated and typesafe config.
Closes #FXA-9436
Because:
* Cart needs eligibility status of current cart.
This commit:
* Add new field, eligibilityStatus, to cart db as Enum
* Add CartEligibilityStatus enum to kysely types
Closes #FXA-9472
Because:
* Need a server action to handle errors returned from Stripe elements
submit function.
This commit:
* Creates handleStripeError action and related Nextjs Action Service
* Adds checkoutErrorCart to Cart Service
* Add cart.utils
* Add tests for cart.utils and checkoutErrorCart
Closes #FXA-8851
Because:
- Accounts were not being fully deleted
- Since do not use a keyfile, the check on whether or not the queue was enabled did not pass, and the explicit check to run in stage/prod was lost in the refactor
This commit:
- Removes the queueEnabled flag check entirely. (Now that a local emulator is present we can assume the queue should always be available.)
- Adds back in the `fallback` option to the CloudTasksClient, which indicates the client should use https instead of grcp, which has proven to be a more reliable setting.