{ "name": "fxa", "private": true, "version": "2.0.0", "description": "Firefox Accounts monorepo", "scripts": { "preinstall": "_scripts/check-package-manager.sh", "authors": "git shortlog -s | cut -c8- | sort -f > AUTHORS", "start": "nps --prefix=start", "stop": "nps --prefix=stop", "restart": "nps --prefix=restart", "delete": "nps --prefix=delete", "rebuild-packages": "nx run-many -t build --all", "adb-reverse": "./_scripts/adb-reverse.sh", "test": "_scripts/test-package.sh", "format": "yarn workspaces foreach run format", "ports": "pm2 jlist | json -a -c 'this.pm2_env.env.PORT' pm2_env.env.PORT name", "heroku-postbuild": "yarn workspaces foreach --verbose --include 123done install", "mysql": "docker exec -it $(docker container ls | grep mysql | grep 3306 | cut -d' ' -f1) mysql", "firefox": "FIREFOX_DEBUGGER=true ./packages/fxa-dev-launcher/bin/fxa-dev-launcher.mjs", "generate-lockfile": "docker build . -f _dev/docker/ci-lockfile-generator/Dockerfile -t generate-lockfile && docker run generate-lockfile > yarn.lock", "l10n:clone": "_scripts/l10n/clone.sh", "l10n:prime": "_scripts/l10n/prime.sh", "l10n:bundle": "_scripts/l10n/bundle.sh", "legal:clone": "_scripts/clone-legal-docs.sh", "gql:allowlist": "nx run-many -t gql-extract && nx run-many -t gql-copy", "check:mysql": "_scripts/check-mysql.sh", "check:url": "_scripts/check-url.sh", "prepare": "husky", "check:frozen": "ts-node _scripts/check-frozen.ts" }, "homepage": "https://github.com/mozilla/fxa", "bugs": { "url": "https://github.com/mozilla/fxa/issues" }, "repository": { "type": "git", "url": "https://github.com/mozilla/fxa" }, "author": "Mozilla (https://mozilla.org/)", "license": "MPL-2.0", "dependencies": { "@apollo/client": "^3.11.1", "@apollo/server": "^4.11.3", "@aws-sdk/client-config-service": "^3.879.0", "@aws-sdk/client-s3": "^3.878.0", "@aws-sdk/client-ses": "^3.876.0", "@aws-sdk/client-sns": "^3.876.0", "@aws-sdk/client-sqs": "^3.876.0", "@faker-js/faker": "^9.0.0", "@fluent/bundle": "^0.18.0", "@fluent/react": "^0.15.2", "@google-cloud/bigquery": "^7.9.1", "@google-cloud/firestore": "^7.10.0", "@google-cloud/opentelemetry-cloud-trace-exporter": "^2.4.1", "@google-cloud/pubsub": "^4.3.1", "@google-cloud/translate": "^8.5.0", "@googleapis/androidpublisher": "^27.0.0", "@googlemaps/google-maps-services-js": "^3.4.0", "@grpc/grpc-js": "^1.11.1", "@mozilla/glean": "^5.0.4", "@nestjs/apollo": "^12.2.1", "@nestjs/common": "^10.4.5", "@nestjs/config": "^3.3.0", "@nestjs/core": "^10.4.1", "@nestjs/graphql": "^12.2.0", "@nestjs/mapped-types": "^2.0.5", "@nestjs/passport": "^10.0.3", "@nestjs/platform-express": "^10.4.18", "@nestjs/schedule": "^4.0.1", "@next/bundle-analyzer": "^15.1.6", "@nx/next": "21.2.4", "@opentelemetry/api": "^1.9.0", "@opentelemetry/auto-instrumentations-node": "^0.58.0", "@opentelemetry/sdk-trace-base": "^2.0.0", "@opentelemetry/sdk-trace-node": "^2.0.0", "@opentelemetry/sdk-trace-web": "^2.0.0", "@paypal/react-paypal-js": "^8.9.1", "@radix-ui/react-dialog": "^1.1.14", "@radix-ui/react-form": "^0.1.0", "@radix-ui/react-tooltip": "^1.1.2", "@radix-ui/react-visually-hidden": "^1.2.3", "@sentry/browser": "8.42.0", "@sentry/nestjs": "8.42.0", "@sentry/nextjs": "8.42.0", "@sentry/node": "8.42.0", "@sentry/opentelemetry": "8.42.0", "@smithy/smithy-client": "^4.5.0", "@stripe/react-stripe-js": "^2.7.1", "@stripe/stripe-js": "^4.9.0", "@swc/helpers": "0.5.11", "@type-cacheable/core": "^14.1.0", "@type-cacheable/ioredis-adapter": "^10.0.4", "agentkeepalive": "^4.6.0", "app-store-server-api": "^0.16.0", "axios": "1.8.4", "base64url": "^3.0.1", "bn.js": "^5.2.1", "class-transformer": "^0.5.1", "class-validator": "0.14.1", "classnames": "^2.5.1", "clsx": "^2.1.1", "diffparser": "^2.0.1", "dotenv": "^16.4.5", "graphql": "^16.10.0", "graphql-request": "^6.1.0", "hot-shots": "^10.2.1", "i18n-iso-countries": "^7.14.0", "jose": "^5.9.6", "jsdom": "^26.0.0", "knex": "^3.1.0", "kysely": "^0.27.2", "lint-staged": "^15.2.0", "maxmind": "^4.3.22", "mjml-browser": "^4.16.1", "module-alias": "^2.2.3", "mozlog": "^3.0.2", "mysql": "^2.18.1", "mysql2": "^3.14.0", "nest-typed-config": "^2.9.2", "nest-winston": "^1.10.0", "next": "14.2.32", "next-auth": "5.0.0-beta.30", "node-fetch": "^2.6.7", "node-hkdf": "^0.0.2", "node-jose": "^2.2.0", "nps": "^5.10.0", "objection": "^3.1.3", "os-browserify": "^0.3.0", "passport": "^0.7.0", "passport-http-bearer": "^1.0.1", "passport-jwt": "^4.0.1", "path-browserify": "^1.0.1", "pm2": "^6.0.9", "prettier": "^3.5.3", "react": "18.3.1", "react-dom": "18.3.1", "react-ga4": "^2.1.0", "rxjs": "^7.8.1", "semver": "^7.7.1", "set-value": "^4.1.0", "sms-segments-calculator": "^1.2.0", "stripe": "17.4.0", "superagent": "^10.2.0", "tslib": "^2.8.1", "twilio": "5.3.5", "typedi": "^0.8.0", "uuid": "^10.0.0", "winston": "^3.17.0" }, "engines": { "node": "^22.15.1" }, "lint-staged": { "*": [ "yarn check:frozen" ], "packages/!(fxa-payments-server)/**/*.js": [ "prettier --config _dev/.prettierrc --write", "eslint" ], "packages/!(fxa-shared)/**/*.{ts,tsx}": [ "prettier --config _dev/.prettierrc --write", "eslint" ], "libs/**/*.{ts,tsx}": [ "prettier --config _dev/.prettierrc --write", "eslint" ], "*.css": [ "prettier --config _dev/.prettierrc --write" ], "*.scss": [ "stylelint --config _dev/.stylelintrc" ], "*.md": [ "prettier --config _dev/.prettierrc --write" ] }, "devDependencies": { "@babel/core": "^7.27.1", "@babel/plugin-transform-typescript": "^7.27.1", "@babel/preset-env": "^7.27.1", "@babel/preset-react": "^7.27.1", "@babel/preset-typescript": "^7.27.1", "@graphql-codegen/cli": "5.0.0", "@graphql-codegen/client-preset": "^4.3.2", "@graphql-codegen/typescript": "^4.0.1", "@graphql-codegen/typescript-document-nodes": "^4.0.1", "@nestjs/cli": "^11.0.1", "@nestjs/schematics": "11.0.9", "@nestjs/testing": "^10.3.4", "@nx/esbuild": "21.2.4", "@nx/eslint-plugin": "21.2.4", "@nx/jest": "21.2.4", "@nx/js": "21.2.4", "@nx/nest": "21.2.4", "@nx/node": "21.2.4", "@nx/react": "21.2.4", "@nx/s3-cache": "^2.1.0", "@nx/storybook": "21.2.4", "@nx/web": "21.2.4", "@nx/webpack": "21.2.4", "@nx/workspace": "21.2.4", "@opentelemetry/semantic-conventions": "^1.32.0", "@storybook/addon-essentials": "7.6.17", "@storybook/addon-styling": "1.3.7", "@storybook/core-common": "7.6.20", "@storybook/core-server": "7.6.20", "@storybook/html-webpack5": "7.6.20", "@storybook/nextjs": "7.6.20", "@storybook/react-webpack5": "7.6.20", "@swc-node/register": "1.10.9", "@swc/cli": "0.6.0", "@swc/core": "1.11.11", "@swc/jest": "^0.2.36", "@testing-library/react": "15.0.6", "@types/babel__core": "^7", "@types/babel__preset-env": "^7", "@types/bn.js": "^5", "@types/classnames": "2.3.1", "@types/hapi": "^18.0.15", "@types/jest": "29.5.14", "@types/jsdom": "^21", "@types/mjml-browser": "^4.15.0", "@types/module-alias": "^2", "@types/mysql": "^2", "@types/node": "^22.13.5", "@types/passport": "^1.0.6", "@types/passport-http-bearer": "^1.0.36", "@types/passport-jwt": "^4", "@types/react": "18.3.1", "@types/react-dom": "18.3.0", "@types/react-test-renderer": "^18", "@types/set-value": "^4", "@types/superagent": "4.1.11", "@types/twilio": "^3.19.3", "@types/uuid": "^10.0.0", "@typescript-eslint/eslint-plugin": "^5.59.1", "@typescript-eslint/parser": "^7.1.1", "autoprefixer": "^10.4.14", "babel-eslint": "^10.1.0", "babel-jest": "29.7.0", "copyfiles": "^2.4.1", "esbuild": "^0.17.15", "esbuild-register": "^3.5.0", "eslint": "^8.57.1", "eslint-config-next": "14.2.3", "eslint-config-prettier": "^10.1.5", "eslint-plugin-flowtype": "^8.0.3", "eslint-plugin-fxa": "workspace:*", "eslint-plugin-import": "2.30.0", "eslint-plugin-jest": "^27.6.0", "eslint-plugin-jsx-a11y": "6.10.0", "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "5.0.0", "eslint-plugin-testing-library": "^7.3.0", "grunt": "^1.6.1", "grunt-cli": "^1.4.3", "grunt-concurrent": "^3.0.0", "grunt-contrib-concat": "^2.1.0", "grunt-contrib-copy": "^1.0.0", "grunt-contrib-watch": "^1.1.0", "grunt-http": "^2.3.3", "husky": "^9.1.7", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jest-environment-node": "^29.7.0", "json": "^11.0.0", "jsonc-eslint-parser": "^2.1.0", "mocha-junit-reporter": "^2.2.0", "mocha-multi": "^1.1.7", "nx": "21.2.4", "nx-cloud": "19.1.0", "persistgraphql": "^0.3.11", "postcss": "8.5.0", "react-test-renderer": "^18.3.1", "reflect-metadata": "^0.2.1", "server-only": "^0.0.1", "stylelint": "^16.14.1", "stylelint-config-prettier": "^9.0.3", "stylelint-config-recommended-scss": "^14.0.0", "tailwindcss": "3.4.3", "ts-jest": "^29.2.3", "ts-node": "^10.9.2", "tsc-alias": "^1.8.8", "tsconfig-paths-webpack-plugin": "^4.2.0", "typescript": "5.5.3", "webpack-cli": "^6.0.1" }, "workspaces": [ "packages/*" ], "resolutions": { "@react-pdf/layout": "3.9.1", "@react-pdf/textkit": "4.3.0", "@types/react": "18.2.14", "asn1.js": ">=5.4.1", "bn.js": "^5.2.1", "css-minimizer-webpack-plugin": ">=4 <5", "form-data": "^4.0.4", "gobbledygook": "https://github.com/mozilla-fxa/gobbledygook.git#354042684056e57ca77f036989e907707a36cff2", "minimist": "^1.2.6", "nest-typed-config/class-validator": "0.14.1", "plist": "^3.0.6", "sha.js": "^2.4.12", "underscore": ">=1.13.2" }, "packageManager": "yarn@4.9.2", "_moduleAliases": { "@fxa/vendored/jwtool": "./dist/libs/vendored/jwtool/main.cjs", "@fxa/vendored/crypto-relier": "./dist/libs/vendored/crypto-relier/main.cjs", "@fxa/vendored/crypto-relier/esm": "./dist/libs/vendored/crypto-relier/main.js", "@fxa/shared/pem-jwk": "./dist/libs/shared/pem-jwk/main.cjs", "@fxa/shared/l10n": "./dist/libs/shared/l10n/main.cjs" } }