Because:
- ts-jest is consuming too much memory during unit test execution
This commit:
- Replace ts-jest with @swc/jest, which has better memory utilization
- Replace Nx TSC build executor with Nx esbuild build executor, for better performance.
- Reduce size of unit-test job instance size from large back to medium+
Closes #FXA-9879
Because:
- In a previous PR, a new event type was created, but we should have repurposed the profileDataChange event type
- During the previous deployment it was noted that there are different ways to configure sns, and that a topic arn and/or topic endpoint might not be required
This Commit:
- Relaxes requirements for notifier service.
- Makes snsTopicEndpoint optional
- Makes snsTopicArn optional
- Removes the `metricsChange` event type
- Augments the `profileDataChange` type schema to support, locale, metricsEnabled, totpEnabled, accountDisabled, and accountLocked states.
- Emmits the `profileDataChange` whenever corresponding account data is mutated.
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