package.json
Rama main · réplica de lectura del repositorio original.
{
"name": "new.expensify",
"version": "9.5.36-0",
"author": "Expensify, Inc.",
"homepage": "https://new.expensify.com",
"description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.",
"license": "MIT",
"private": true,
"workspaces": [
"server/victory-chart-renderer"
],
"scripts": {
"i-standalone": "STANDALONE_NEW_DOT=true npm i",
"install-standalone": "STANDALONE_NEW_DOT=true npm install",
"configure-mapbox": "./scripts/setup-mapbox-sdk-walkthrough.sh",
"setupNewDotWebForEmulators": "./scripts/setup-newdot-web-emulators.sh",
"startAndroidEmulator": "./scripts/start-android.sh",
"postinstall": "./scripts/postInstall.sh",
"clean": "./scripts/clean.sh",
"clean-standalone": "STANDALONE_NEW_DOT=true ./scripts/clean.sh",
"android": "./scripts/set-pusher-suffix.sh && ./scripts/run-build.sh --android",
"android-standalone": "./scripts/set-pusher-suffix.sh && STANDALONE_NEW_DOT=true ./scripts/run-build.sh --android",
"ios": "./scripts/set-pusher-suffix.sh && ./scripts/run-build.sh --ios",
"ios-standalone": "./scripts/set-pusher-suffix.sh && STANDALONE_NEW_DOT=true ./scripts/run-build.sh --ios",
"pod-install": "./scripts/pod-install.sh",
"pod-install-standalone": "STANDALONE_NEW_DOT=true ./scripts/pod-install.sh",
"ipad": "concurrently \"./scripts/run-build.sh --ipad\"",
"ipad-standalone": "concurrently \"STANDALONE_NEW_DOT=true ./scripts/run-build.sh --ipad\"",
"ipad-sm": "concurrently \"./scripts/run-build.sh --ipad-sm\"",
"ipad-sm-standalone": "concurrently \"STANDALONE_NEW_DOT=true ./scripts/run-build.sh --ipad-sm\"",
"start": "npx rock start",
"web": "./scripts/set-pusher-suffix.sh && bun scripts/startWeb.ts",
"web-proxy": "bun web/proxy.ts",
"web-server": "node ./node_modules/.bin/rsbuild dev --open --config config/rsbuild/rsbuild.config.ts",
"build": "ENV=production bun ./node_modules/.bin/rsbuild build --config config/rsbuild/rsbuild.config.ts && bun ./scripts/combine-web-sourcemaps.ts",
"build-staging": "ENV=staging bun ./node_modules/.bin/rsbuild build --config config/rsbuild/rsbuild.config.ts && bun ./scripts/combine-web-sourcemaps.ts",
"build-adhoc": "ENV=adhoc bun ./node_modules/.bin/rsbuild build --config config/rsbuild/rsbuild.config.ts && bun ./scripts/combine-web-sourcemaps.ts",
"benchmark-app-startup": "bun scripts/benchmarkAppStartup.ts",
"bootstrap-device": "bun scripts/bootstrapForDevice.ts",
"createDocsRoutes": "bun .github/scripts/createDocsRoutes.ts",
"generateAllowedUrls": "bun .github/scripts/generateAllowedUrls.ts",
"detectRedirectCycle": "bun .github/scripts/detectRedirectCycle.ts",
"ios-build": "bundle exec fastlane ios build_unsigned",
"ios-hybrid-build": "bundle exec fastlane ios build_unsigned_hybrid",
"android-build": "bundle exec fastlane android build_local",
"android-hybrid-build": "bundle exec fastlane android build_local_hybrid",
"test": "TZ=utc NODE_OPTIONS=\"--experimental-vm-modules --max_old_space_size=8192\" jest",
"test:verbose": "TZ=utc NODE_OPTIONS=\"--experimental-vm-modules --max_old_space_size=4096\" JEST_VERBOSE=true jest",
"test:debug": "TZ=utc NODE_OPTIONS='--inspect-brk --experimental-vm-modules' jest --runInBand",
"perf-test": "NODE_OPTIONS=--experimental-vm-modules npx reassure",
"perf-local": "NODE_OPTIONS=--experimental-vm-modules npx reassure --testMatch '<rootDir>/tests/perf-local/**/*.perf-local.ts'",
"typecheck": "bun scripts/typecheck.ts",
"lint": "bun scripts/lint/index.ts",
"lint-changed": "./scripts/lintChanged.sh",
"lint-watch": "onchange '**/*.{js,jsx,ts,tsx,mjs,cjs}' -- bun scripts/lint/index.ts {{changed}}",
"lint-report": "bun scripts/lint-report.ts",
"knip": "KNIP=true knip --include dependencies --exclude unlisted --no-exit-code --reporter compact",
"knip:full": "KNIP=true knip --reporter compact",
"knip:json": "KNIP=true knip --reporter json --no-exit-code",
"knip-changed": "./scripts/knip-changed.sh",
"shellcheck": "./scripts/shellCheck.sh",
"spell": "cspell --color **/*",
"spell-changed": "./scripts/spellChanged.sh",
"fmt": "oxfmt --write .",
"fmt-watch": "onchange \"**/*.{js,mjs,ts,tsx,yml,yaml}\" -- oxfmt --write {{changed}}",
"print-version": "echo $npm_package_version",
"storybook": "storybook dev -p 6006",
"storybook-build": "ENV=production storybook build -o dist/docs",
"storybook-build-staging": "ENV=staging storybook build -o dist/docs",
"gh-actions-build": "bun .github/scripts/buildActions.ts",
"analyze-packages": "ANALYZE_BUNDLE=true ENV=production bun ./node_modules/.bin/rsbuild build --config config/rsbuild/rsbuild.config.ts",
"symbolicate:android": "npx metro-symbolicate android/app/build/generated/sourcemaps/react/release/index.android.bundle.map",
"symbolicate:ios": "npx metro-symbolicate main.jsbundle.map",
"combine-web-sourcemaps": "bun scripts/combine-web-sourcemaps.ts",
"gh-actions-unused-styles": "bun scripts/findUnusedStyles.ts",
"setup-https": "mkcert -install && mkcert -cert-file config/rsbuild/certificate.pem -key-file config/rsbuild/key.pem dev.new.expensify.com localhost 127.0.0.1",
"react-compiler-compliance-check": "bun scripts/react-compiler-compliance-check.ts",
"generate-search-parser": "peggy --format es -o src/libs/SearchParser/searchParser.js src/libs/SearchParser/searchParser.peggy src/libs/SearchParser/baseRules.peggy",
"generate-autocomplete-parser": "peggy --format es -o src/libs/SearchParser/autocompleteParser.js src/libs/SearchParser/autocompleteParser.peggy src/libs/SearchParser/baseRules.peggy && ./scripts/parser-workletization.sh src/libs/SearchParser/autocompleteParser.js",
"web:dist": "concurrently \"npm:web-proxy\" \"http-server ./dist --cors --port 8080 -P http://localhost:9000\"",
"octokit": "bun scripts/octokit.ts && cd scripts && bun repl",
"compress-svg": "bun scripts/compressSvg-cli.ts --dir assets/images && bun scripts/compressSvg-cli.ts --dir docs/assets/images",
"server:vcr:dev": "npm run dev -w @expensify/victory-chart-renderer --",
"server:vcr:test": "npm run test -w @expensify/victory-chart-renderer --",
"test:bun": "TZ=utc bun test --parallel --preload ./scripts/stubReactNative.js --preload ./tests/tooling/setup.ts ./server ./tests/tooling ./.claude/skills",
"eval:proposal-police": "bun test --path-ignore-patterns='**/__never__/**' ./evals/proposalPolice/",
"server:vcr:build:linux": "npm run build:linux -w @expensify/victory-chart-renderer --",
"server:vcr:build:linux-arm": "npm run build:linux-arm -w @expensify/victory-chart-renderer --",
"server:vcr:build:macos": "npm run build:macos -w @expensify/victory-chart-renderer --"
},
"dependencies": {
"@babel/runtime": "^7.25.0",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/modifiers": "^9.0.0",
"@dnd-kit/sortable": "^10.0.0",
"@expensify/nitro-utils": "file:./modules/ExpensifyNitroUtils",
"@expensify/react-native-background-task": "file:./modules/background-task",
"@expensify/react-native-hybrid-app": "file:./modules/hybrid-app",
"@expensify/react-native-live-markdown": "0.1.371",
"@expensify/react-native-wallet": "0.1.41",
"@formatjs/intl-listformat": "^7.5.7",
"@formatjs/intl-locale": "^4.0.0",
"@formatjs/intl-numberformat": "^8.10.3",
"@formatjs/intl-pluralrules": "^5.2.14",
"@fullstory/browser": "^2.0.6",
"@fullstory/react-native": "^1.10.2",
"@gorhom/portal": "^1.0.14",
"@invertase/react-native-apple-authentication": "^2.5.0",
"@legendapp/list": "^3.7.2",
"@lottiefiles/dotlottie-react": "0.13.5",
"@onfido/react-native-sdk": "15.1.0",
"@pusher/pusher-websocket-react-native": "^1.3.1",
"@react-native-camera-roll/camera-roll": "7.4.0",
"@react-native-clipboard/clipboard": "^1.16.3",
"@react-native-community/netinfo": "11.4.1",
"@react-native-documents/picker": "^10.1.3",
"@react-native-firebase/analytics": "^22.2.1",
"@react-native-firebase/app": "^22.2.1",
"@react-native-google-signin/google-signin": "^10.0.1",
"@react-native-picker/picker": "2.11.3",
"@react-navigation/bottom-tabs": "7.19.2",
"@react-navigation/core": "7.22.1",
"@react-navigation/material-top-tabs": "7.7.2",
"@react-navigation/native": "7.4.1",
"@react-navigation/native-stack": "7.19.2",
"@react-navigation/stack": "7.11.2",
"@react-ng/bounds-observer": "^0.2.1",
"@rnmapbox/maps": "10.3.10",
"@sbaiahmed1/react-native-biometrics": "0.15.0",
"@sentry/core": "10.76.2",
"@sentry/react-native": "8.32.0",
"@shopify/flash-list": "2.3.2",
"@shopify/react-native-skia": "^2.11.2",
"@ua/react-native-airship": "26.7.0",
"array.prototype.tosorted": "^1.1.4",
"awesome-phonenumber": "6.11.0",
"canvas-size": "^1.2.6",
"canvaskit-wasm": "0.41.0",
"d3-scale": "^4.0.2",
"date-fns": "^4.1.0",
"date-fns-tz": "^3.2.0",
"dom-serializer": "^0.2.2",
"domhandler": "^5.0.3",
"expensify-common": "2.0.224",
"expo": "57.0.8",
"expo-asset": "57.0.7",
"expo-audio": "57.0.3",
"expo-font": "57.0.1",
"expo-image": "57.0.1",
"expo-image-manipulator": "57.0.6",
"expo-location": "57.0.6",
"expo-modules-core": "57.0.15",
"expo-store-review": "57.0.1",
"expo-task-manager": "57.0.6",
"expo-video": "57.0.2",
"expo-web-browser": "57.0.2",
"fast-equals": "^5.2.2",
"focus-trap-react": "^11.0.3",
"group-ib-fp": "file:modules/group-ib-fp",
"heic-to": "^1.1.14",
"howler": "^2.2.4",
"html-entities": "2.5.3",
"htmlparser2": "10.0.0",
"idb-keyval": "^6.2.1",
"json5": "2.2.2",
"lodash-es": "4.18.1",
"lottie-react-native": "7.3.8",
"mapbox-gl": "^3.24.0",
"metro-transform-plugins": "0.84.5",
"mime-db": "1.52.0",
"modern-screenshot": "4.7.0",
"onfido-sdk-ui": "14.53.1",
"pako": "^2.1.0",
"process": "^0.11.10",
"pusher-js": "8.3.0",
"react": "19.2.3",
"react-collapse": "^5.1.0",
"react-content-loader": "^7.0.0",
"react-dom": "19.2.3",
"react-error-boundary": "^4.0.11",
"react-fast-pdf": "^1.0.34",
"react-is": "^18.3.1",
"react-map-gl": "^8.1.1",
"react-native": "0.86.0",
"react-native-advanced-input-mask": "1.4.6",
"react-native-app-logs": "0.3.1",
"react-native-blob-util": "0.24.12",
"react-native-collapsible": "^1.6.2",
"react-native-config": "1.5.3",
"react-native-device-info": "10.3.1",
"react-native-draggable-flatlist": "^4.0.3",
"react-native-fs": "^2.20.0",
"react-native-gesture-handler": "3.3.0",
"react-native-google-places-autocomplete": "2.6.4",
"react-native-haptic-feedback": "^2.3.3",
"react-native-image-picker": "^7.1.2",
"react-native-image-size": "git+https://github.com/Expensify/react-native-image-size#8a1c3b7359977462cdd4e63b09ea45afbd3d77c7",
"react-native-key-command": "1.0.14",
"react-native-keyboard-controller": "1.22.4",
"react-native-localize": "^3.5.4",
"react-native-nitro-fetch": "1.6.2",
"react-native-nitro-image": "0.15.2",
"react-native-nitro-modules": "0.37.1",
"react-native-nitro-sqlite": "10.2.0",
"react-native-onyx": "3.0.122",
"react-native-pager-view": "9.0.4",
"react-native-pdf": "7.0.2",
"react-native-permissions": "^5.4.0",
"react-native-picker-select": "github:Expensify/react-native-picker-select#69d750a89aaba48392fb8b6f92a3d79f53b99c41",
"react-native-plaid-link-sdk": "12.5.3",
"react-native-qrcode-svg": "6.3.21",
"react-native-quick-base64": "^3.0.1",
"react-native-quick-crypto": "^1.1.6",
"react-native-reanimated": "4.7.0",
"react-native-render-html": "6.3.1",
"react-native-safe-area-context": "5.9.1",
"react-native-screens": "4.28.0",
"react-native-share": "11.0.2",
"react-native-svg": "15.15.5",
"react-native-tab-view": "^4.3.0",
"react-native-url-polyfill": "^2.0.0",
"react-native-view-shot": "5.1.0",
"react-native-vision-camera": "5.2.3",
"react-native-web": "0.21.4",
"react-native-webview": "16.0.0",
"react-native-worklets": "0.13.0",
"react-plaid-link": "3.3.2",
"react-web-config": "^1.0.0",
"react-webcam": "^7.1.1",
"scheduler": "0.27.0",
"victory-native": "^42.0.1",
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
},
"devDependencies": {
"@aaroon/workbox-rspack-plugin": "^1.0.1",
"@actions/core": "3.0.1",
"@actions/github": "9.1.1",
"@appduct/react-native": "^0.16.0",
"@appduct/web": "^0.16.0",
"@babel/core": "^7.25.2",
"@babel/parser": "^7.22.16",
"@babel/plugin-proposal-class-properties": "^7.12.1",
"@babel/plugin-proposal-private-methods": "^7.18.6",
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
"@babel/plugin-transform-dynamic-import": "^7.29.7",
"@babel/plugin-transform-export-namespace-from": "^7.27.1",
"@babel/plugin-transform-modules-commonjs": "^7.29.7",
"@callstack/reassure-compare": "^1.0.0-rc.4",
"@callstack/repack": "5.4.1",
"@callstack/repack-plugin-expo-modules": "5.4.1",
"@callstack/repack-plugin-reanimated": "5.4.1",
"@dword-design/eslint-plugin-import-alias": "^5.0.0",
"@fullstory/babel-plugin-annotate-react": "^2.4.0",
"@fullstory/babel-plugin-react-native": "^1.7.1",
"@googleapis/androidpublisher": "^37.0.0",
"@jest/globals": "^29.7.0",
"@jridgewell/remapping": "^2.3.5",
"@ngneat/falso": "^7.1.1",
"@octokit/core": "^7.0.6",
"@octokit/plugin-paginate-rest": "^14.0.0",
"@octokit/plugin-rest-endpoint-methods": "^17.0.0",
"@octokit/plugin-throttling": "^11.0.0",
"@octokit/request-error": "^7.0.0",
"@octokit/webhooks-types": "^7.6.1",
"@react-native-community/cli": "20.1.0",
"@react-native-community/cli-platform-android": "20.1.0",
"@react-native-community/cli-platform-ios": "20.1.0",
"@react-native/babel-preset": "0.86.0",
"@react-navigation/devtools": "7.1.15",
"@rock-js/platform-android": "0.13.4",
"@rock-js/platform-ios": "0.13.4",
"@rock-js/plugin-repack": "0.13.4",
"@rock-js/provider-s3": "0.13.4",
"@rsbuild/core": "^2.1.4",
"@rsbuild/plugin-svgr": "^2.0.5",
"@rsdoctor/rspack-plugin": "^1.5.17",
"@rspack/core": "^2.1.2",
"@rspack/plugin-react-refresh": "^2.0.2",
"@sentry/browser-utils": "10.76.2",
"@sentry/cli": "3.3.0",
"@sentry/webpack-plugin": "5.2.0",
"@storybook/addon-a11y": "10.6.2",
"@storybook/addon-docs": "10.6.2",
"@storybook/cli": "10.6.2",
"@storybook/react": "10.6.2",
"@swc/helpers": "~0.5.15",
"@testing-library/dom": "10.4.2",
"@testing-library/react-native": "13.2.0",
"@types/base-64": "^1.0.2",
"@types/bun": "^1.4.3",
"@types/canvas-size": "^1.2.2",
"@types/concurrently": "^7.0.3",
"@types/d3-scale": "^4.0.9",
"@types/geojson": "^7946.0.16",
"@types/howler": "^2.2.12",
"@types/jest": "^29.5.14",
"@types/js-yaml": "^4.0.5",
"@types/lodash-es": "4.17.12",
"@types/mapbox-gl": "^2.7.13",
"@types/mime-db": "^1.43.5",
"@types/node": "^26.6.5",
"@types/pako": "^2.0.3",
"@types/pusher-js": "^5.1.0",
"@types/react": "19.2.3",
"@types/react-collapse": "^5.0.1",
"@types/react-dom": "19.2.3",
"@types/react-is": "^18.3.0",
"@types/react-native-web": "0.19.2",
"@types/react-test-renderer": "^19.1.0",
"@types/semver": "^7.5.4",
"@types/setimmediate": "^1.0.2",
"@typescript/typescript6": "^6.0.2",
"@vitest/mocker": "4.0.16",
"@welldone-software/why-did-you-render": "7.0.1",
"babel-jest": "29.7.0",
"babel-plugin-istanbul": "^6.1.1",
"babel-plugin-module-resolver": "^5.0.0",
"babel-plugin-transform-remove-console": "^6.9.4",
"babel-preset-expo": "^57.0.3",
"bun": "^1.4.4",
"concurrently": "^9.2.4",
"cspell": "9.4.0",
"csv-parse": "^5.5.5",
"csv-writer": "^1.6.0",
"diff-so-fancy": "^1.3.0",
"dotenv": "^16.0.3",
"esbuild": "^0.28.1",
"eslint": "^9.36.0",
"eslint-config-expensify": "4.0.20",
"eslint-plugin-jsdoc": "^60.7.0",
"eslint-plugin-lodash": "^7.4.0",
"eslint-plugin-react-native-a11y": "^3.3.0",
"eslint-plugin-storybook": "10.6.2",
"eslint-plugin-testing-library": "^7.11.0",
"eslint-plugin-you-dont-need-lodash-underscore": "^6.14.0",
"glob": "^10.4.5",
"hermes-parser": "0.36.1",
"http-server": "^14.1.1",
"jest": "29.7.0",
"jest-circus": "29.7.0",
"jest-cli": "29.7.0",
"jest-environment-jsdom": "^29.7.0",
"jest-expo": "57.0.2",
"jest-transformer-svg": "^2.0.1",
"knip": "^6.34.0",
"lefthook": "2.1.9",
"memfs": "^4.6.0",
"metro-symbolicate": "0.84.5",
"nitrogen": "0.37.1",
"onchange": "^7.1.0",
"openai": "^7.0.0",
"oxc-transform-react": "0.156.0",
"oxfmt": "^0.55.0",
"oxlint": "1.92.0",
"oxlint-tsgolint": "7.0.2005",
"patch-package": "^8.1.0-canary.1",
"peggy": "^4.0.3",
"portfinder": "^1.0.34",
"react-native-clean-project": "^4.0.0-alpha4.0",
"react-refresh": "^0.14.2",
"react-test-renderer": "19.2.3",
"reassure": "^1.0.0",
"rock": "0.13.4",
"semver": "7.5.2",
"setimmediate": "^1.0.5",
"shellcheck": "^1.1.0",
"source-map": "^0.7.4",
"storybook": "10.6.2",
"storybook-react-rsbuild": "^3.3.4",
"svgo": "^4.1.0",
"type-fest": "4.35.0",
"typescript": "^7.0.2",
"typescript-eslint": "8.58.1",
"wait-port": "^0.2.9",
"workbox-core": "7.4.0",
"workbox-expiration": "7.4.0",
"workbox-precaching": "7.4.0",
"workbox-routing": "7.4.0",
"workbox-strategies": "7.4.0"
},
"overrides": {
"typescript": "$typescript",
"awesome-phonenumber": "$awesome-phonenumber",
"@typescript-eslint/eslint-plugin": "8.58.1",
"@typescript-eslint/parser": "8.58.1",
"@typescript-eslint/typescript-estree": "8.61.0",
"@typescript-eslint/type-utils": "8.58.1",
"@typescript-eslint/utils": "8.61.0",
"@typescript-eslint/project-service": "8.61.0",
"@typescript-eslint/tsconfig-utils": "8.61.0",
"mapbox-gl": "^3.24.0",
"braces": "3.0.3",
"yargs": "17.7.2",
"yargs-parser": "21.1.1",
"ws": "8.21.3",
"micromatch": "4.0.8",
"json5": "2.2.2",
"loader-utils": "2.0.4",
"follow-redirects": "1.15.6",
"fast-xml-parser": "5.11.1",
"express": "4.20.0",
"elliptic": "6.5.7",
"fast-json-patch": "3.1.1",
"image-size": "2.0.4",
"hermes-compiler": "250829098.0.14",
"webpack": "^5.108.4",
"esbuild": "^0.28.1",
"@blakeembrey/template": "1.2.0",
"body-parser": "1.20.3",
"path-to-regexp": "0.1.10",
"send": "0.19.0",
"regexpu-core": "6.4.0",
"serialize-javascript": "7.1.2",
"adm-zip": "0.6.1",
"tinypool": "2.1.2",
"react": "19.2.3",
"react-dom": "19.2.3",
"eslint-config-expensify": {
"typescript-eslint": "8.58.1",
"@typescript-eslint/eslint-plugin": "8.58.1",
"@typescript-eslint/parser": "8.58.1"
},
"eslint-plugin-react-native-a11y": {
"eslint": "^9.36.0"
},
"node-abi": "^3.78.0",
"pdfjs-dist": "5.5.207",
"lightningcss": "1.30.1",
"zod": "4.6.7",
"@fullstory/react-native": {
"expo": "57.0.8"
},
"@react-native-firebase/app": {
"expo": "57.0.8"
},
"@react-native-google-signin/google-signin": {
"expo": "57.0.8"
},
"@rnmapbox/maps": {
"expo": "57.0.8"
},
"@sentry/react-native": {
"expo": "57.0.8"
},
"expo-modules-core": {
"react-native-worklets": "0.13.0"
}
},
"expo": {
"autolinking": {
"exclude": [
"expo-file-system",
"@react-native-google-signin/google-signin",
"expo-keep-awake"
],
"android": {
"buildFromSource": [
"expo-location",
"expo-task-manager",
"unimodules-app-loader"
]
}
}
},
"nitroSQLite": {
"threadSafe": true,
"performanceMode": true
},
"engines": {
"bun": "1.4.4",
"node": "26.12.1",
"npm": "11.20.0"
}
}