forked from Uniswap/interface
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackage.json
More file actions
298 lines (298 loc) Β· 18 KB
/
Copy pathpackage.json
File metadata and controls
298 lines (298 loc) Β· 18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
{
"name": "universe",
"version": "0.0.0",
"devDependencies": {
"@actions/core": "1.10.1",
"@commitlint/cli": "17.5.0",
"@commitlint/config-conventional": "17.4.4",
"@crowdin/cli": "3.14.0",
"@ethersproject/keccak256": "5.7.0",
"@jambit/eslint-plugin-typed-redux-saga": "0.4.0",
"@manypkg/cli": "0.19.2",
"@nx/devkit": "22.5.4",
"@nx/js": "22.5.4",
"@nx/plugin": "22.5.4",
"@nx/s3-cache": "5.0.2",
"@nx/workspace": "22.5.4",
"@slack/types": "2.15.0",
"@swc-node/register": "1.9.1",
"@swc/core": "1.5.7",
"@swc/helpers": "0.5.11",
"@types/inquirer": "9.0.8",
"@types/node": "22.19.17",
"clipboardy": "4.0.0",
"danger": "11.2.6",
"dotenv-cli": "7.1.0",
"eslint-plugin-no-unsanitized": "4.1.5",
"eslint-plugin-security": "4.0.0",
"i18next": "23.10.0",
"i18next-parser": "8.6.0",
"inquirer": "8.2.6",
"js-yaml": "4.1.0",
"knip": "6.5.0",
"lefthook": "1.12.2",
"nx": "22.5.4",
"oxfmt": "0.41.0",
"oxlint": "1.60.0",
"oxlint-plugin-eslint": "1.60.0",
"oxlint-tsgolint": "0.17.4",
"playwright-slack-report": "1.1.109",
"syncpack": "8.5.14",
"typescript": "7.0.2"
},
"type": "module",
"engines": {
"node": "=22.22.2",
"bun": ">=1.3.14",
"npm": "please-use-bun"
},
"manypkg": {
"ignoredRules": [
"INTERNAL_MISMATCH",
"ROOT_HAS_DEV_DEPENDENCIES"
]
},
"private": true,
"trustedDependencies": [
"@datadog/mobile-react-native",
"@parcel/watcher",
"@reown/appkit",
"@swc/core",
"@tailwindcss/oxide",
"bufferutil",
"cpu-features",
"esbuild",
"keccak",
"lefthook",
"msw",
"nitrogen",
"nx",
"protobufjs",
"react-native-nitro-modules",
"ssh2",
"unrs-resolver",
"utf-8-validate",
"workerd"
],
"patchedDependenciesComments": {
"immer": "this fixes typecheck in mobile app, see https://github.com/reduxjs/redux-toolkit/issues/1806",
"react-native-wagmi-charts@2.5.1": "this fixes really bad performance issue when the pulse dot is enabled",
"@shopify/react-native-performance@4.1.2": "RN 0.81 compat: Android getExportedCustomDirectEventTypeConstants must return a mutable map; iOS Swift bridging header switched to bracketed framework include. Should be upstreamed to Shopify.",
"react-native-tab-view@3.5.2": "Fixes warning on profile screens with spreading key from props. Fixed in react-native-tab-view <4.0.0-alpha.7",
"@react-native-community/cli-server-api": "Pinning previous version because of excessive logging thats not fixed until RN 0.79 https://github.com/facebook/hermes/commit/c615b115dfa471c108256982ce07f10adee63667",
"@react-native/dev-middleware": "Pinning previous version because of excessive logging thats not fixed until RN 0.79 https://github.com/facebook/hermes/commit/c615b115dfa471c108256982ce07f10adee63667",
"@tamagui/portal@1.136.1": "Fixes issue with not rendering content in sheets on mweb (e.g. Selecting a token on swap flow) on web production builds via PortalHostWeb mounted-state guard + useEffect-deferred host registration. Also force-disables USE_NATIVE_PORTAL on iOS β required to avoid RN 0.81 crash 'NSInternalInconsistencyException: This method must not be called before the JS thread is created' (RCTBridge dispatches a JS-to-native call before the JS thread is created when using iOS native createPortal). Tradeoff: bottom sheets render their content one render cycle late on iOS (visible blank-then-fills); the better fix is to pre-mount PortalHost early in the app tree (before any sheet can open) so registerHost completes before any portal item dispatches β investigate before next merge attempt.",
"@tamagui/static@1.136.1": "Fixes applying styles (e.g. with hoverStyle) for buttons on web production builds.",
"@tamagui/web@1.136.1": "Resets the internal lastInteractionWasKeyboard flag on window blur. Cmd/Alt+Tab app-switching fires a keydown that flips the flag to keyboard mode; on window refocus onFocus re-applies focusVisibleStyle, painting a spurious focus ring on mouse-focused elements until clicked (CONS-2055). Web-only (inside the isWeb guard). TODO: upstream to Tamagui and drop once merged.",
"@expo/metro-config@54.0.9": "Fixes 'TypeError: Invalid URL' on every Fast Refresh in HMR serializer fork (build/serializer/fork/hmrJSBundle.js). Expo's fork calls 'new URL(options.clientUrl)' where clientUrl is a legacy Node url.Url object (from url.parse); Url doesn't override toString, so WHATWG URL coerces it to '[object Object]' and throws. Upstream Metro avoids this by passing url.format(options.clientUrl). Patch round-trips via node:url format() at both call sites (also fixes a sibling .toString() in prepareModule that was silently producing '[object Object]' sourceUrls in dev source maps). Should be upstreamed.",
"@react-native-community/slider@5.1.1": "Issue with importing fabric code: https://github.com/callstack/react-native-slider/issues/744",
"zod@4.3.6": "Enables jitless mode by default to avoid CSP unsafe-eval violations in browser extension content scripts. See https://github.com/colinhacks/zod/issues/4461",
"@ethersproject/providers@5.7.2": "ENS v2 support adapted from @ensdomains/ethers-patch-v5 with tunneling batch gateway",
"webpack@5.90.0": "Pinned for Storybook compatibility β webpack 5.105.4 breaks Storybook module bundling. Webpack security CVEs (GHSA-4vvj-4cpr-p986, GHSA-8fgc-7cc6-rx7x, GHSA-38r7-794h-5758) are accepted risk for this dev-only build tool",
"react-native@0.85.3": "1) Makes the hermesc path in hermes-engine.podspec relative to PODS_ROOT so the absolute home-dir path isn't baked into Podfile.lock checksums (per-machine/CI drift). See https://github.com/facebook/react-native/issues/54891. 2) Skips layout-metrics consumption for yoga children owned by another shadow-tree generation (Reanimated clones share child yoga nodes): consuming them cleared hasNewLayout on the owning tree, leaving views invisible but mounted (ghost bottom sheets) and tripping the dev-only YGNodeGetOwner assert / SIGABRT (INFRA-2390). Drop when https://github.com/facebook/react-native/issues/52349 is fixed upstream.",
"@gorhom/bottom-sheet@5.2.13": "Seeds containerHeight from the first measured layout when still INITIAL_LAYOUT_VALUE, fixing zero-height sheets under the new architecture (Fabric).",
"expo-constants@18.0.13": "Xcode 26's shallow bundle format doesn't pre-create EXConstants.bundle before the :before_compile script runs; mkdir -p the destination dir to avoid an ENOENT on the JS config write.",
"react-native-svg@15.12.1": "Holds RNSVGImage's RCTImageResponseObserverProxy in a shared_ptr so the Fabric image observer outlives in-flight callbacks (fixes a use-after-free crash on <Image> under Fabric).",
"i18next@23.10.0": "Adds $NoUndefinedValues and applies it to the t() options argument so t() rejects possibly-undefined interpolation values at compile time (e.g. t('k', { v: maybeUndefined }) is now a type error). Resource-type-independent β works despite this repo erasing resources to Record<string,string> for typecheck perf, which disables i18next's own placeholder typing.",
"@expo/require-utils@56.1.3": "typescript >= 7.0.2 resolves its \".\" export to a version-only stub with no compiler API, so loadTypescript() would hand Expo config evaluation a ts without transpileModule and crash at ts.ModuleKind (breaks the Android/iOS native builds at expo-constants createExpoConfig). Treat the stub like typescript-not-installed so the module.stripTypeScriptTypes fallback transpiles app.config.ts. Should be upstreamed to Expo; drop when @expo/require-utils supports TS 7 (still unfixed as of 57.0.1).",
"react-native-gesture-handler@3.0.0": "Makes RNGestureHandlerDetectorView.setModuleId tolerant of moduleId changing on a live view instead of asserting write-once. Under the new architecture, globalThis._RNGH_MODULE_ID advances every time the native RNGH module re-inits (JS reload / RN context recreation), and Fabric re-applies the new moduleId to still-mounted detector views β tripping the assert and crashing the app with 'Tried to change moduleId of a native detector'. Mirrors iOS updateProps, which reassigns _moduleId freely; on a real change we detach handlers from the previous registry before wiring up the new one. Should be upstreamed.",
"danger@11.2.6": "danger's transpiler gates its native-TS path on a bare require.resolve('typescript'), which typescript >= 7.0.2 satisfies with a version-only stub that has no transpileModule β danger would then crash transpiling dangerfile.ts on every PR. Gate on transpileModule actually existing so danger keeps using its babel fallback (same behavior as under 7.0.1-rc, whose missing \".\" export made the resolve throw). Drop when danger supports TS 7 (still unfixed as of 13.0.10)."
},
"resolutions": {
"react": "19.2.3",
"react-dom": "19.2.3",
"@tanstack/query-core": "5.90.20",
"@expo/config-plugins": "56.0.8",
"@apollo/client": "3.11.10",
"@babel/preset-env": "7.26.0",
"@babel/runtime": "7.26.0",
"@coinbase/wallet-sdk": "4.3.2",
"@ethersproject/hash": "5.7.0",
"@react-native-community/cli": "18.0.1",
"@react-native-community/cli-server-api": "15.0.1",
"@react-native/dev-middleware": "0.85.3",
"@shopify/flash-list": "2.2.0",
"@sideway/formula": "3.0.1",
"@swc-node/register": "1.9.1",
"@swc/core": "1.5.7",
"@swc/helpers": "0.5.11",
"@types/react": "19.2.16",
"@uniswap/router-sdk": "2.7.1",
"@uniswap/sdk-core": "7.17.0",
"@uniswap/v2-sdk": "4.19.1",
"@walletconnect/core": "2.23.9",
"@walletconnect/ethereum-provider": "2.23.9",
"@walletconnect/sign-client": "2.23.9",
"@walletconnect/types": "2.23.9",
"@walletconnect/universal-provider": "2.23.9",
"@walletconnect/utils": "2.23.9",
"@wxt-dev/browser": "0.1.4",
"@xmldom/xmldom": "0.7.7",
"braces": "3.0.3",
"cheerio": "1.0.0-rc.12",
"cross-spawn": "7.0.6",
"elliptic": "6.6.1",
"@expo/uuid": "3.4.0",
"form-data": "4.0.5",
"graphql": "16.10.0",
"@hono/node-server": "1.19.11",
"hono": "4.12.8",
"immer": "9.0.21",
"is-core-module": "2.13.0",
"jest": "29.7.0",
"json5": "2.2.2",
"metro": "0.84.4",
"metro-config": "0.84.4",
"metro-core": "0.84.4",
"metro-resolver": "0.84.4",
"kysely": "0.28.12",
"moti": "0.30.0",
"multicodec": "3.0.1",
"multihashes": "4.0.2",
"on-headers": "1.1.0",
"next": "16.1.7",
"node-fetch": "2.7.0",
"node-gyp": "10.0.1",
"phin": "3.7.1",
"qs": "6.14.2",
"react-native": "0.85.3",
"react-native-reanimated": "4.4.1",
"react-native-worklets": "0.9.1",
"react-native-safe-area-context": "5.7.0",
"react-native-gesture-handler": "3.0.0",
"react-native-device-info": "10.11.0",
"@react-native-async-storage/async-storage": "2.2.0",
"react-native-svg": "15.12.1",
"react-native-web": "0.19.13",
"react-refresh": "0.14.0",
"rehackt": "0.1.0",
"resolve": "1.22.4",
"semver": "7.6.1",
"sharp": "0.33.5",
"simple-git": "3.32.3",
"socket.io-parser": "4.2.6",
"viem": "2.30.5",
"vite": "7.3.1",
"@vitejs/plugin-react": "4.7.0",
"xml2js": "0.5.0",
"yaml": "2.2.2",
"zod": "4.3.6",
"webpack": "5.90.0"
},
"scripts": {
"// ββ Setup Commands ββ": "First-time setup, install hooks, environment verification",
"preinstall": "./scripts/check-runtime-versions.sh",
"postinstall": "git config core.hooksPath .husky && touch node_modules/.install-marker",
"local:check": "./scripts/local-version-check.sh",
"config:login": "bun run config-cli start login",
"config:logout": "bun run config-cli start logout",
"config:whoami": "bun run config-cli start whoami",
"config:view": "bun run config-cli start view",
"config:pull": "bun run config-cli start pull",
"config:zip": "bun run config-cli start zip",
"config:unzip": "bun run config-cli start unzip",
"g:prepare": "nx run-many -t prepare",
"// ββ Quality Checks ββ": "Format, lint, typecheck, test, and dependency checks across all packages",
"g:check": "bun g:check:deps:sync && bun g:typecheck && nx affected -t format,lint,check:deps:usage --output-style=stream && bun g:check:deps:mismatch",
"g:check:fast": "bun g:check:deps:sync && bun g:typecheck && nx affected -t format,lint:oxlint:fast --uncommitted",
"g:check:deps:usage": "nx run-many -t check:deps:usage",
"g:check:deps:mismatch": "manypkg check",
"g:check:deps:sync": "./scripts/check-deps-sync.sh",
"g:format": "nx run-many -t format",
"g:format:deps": "syncpack format",
"g:lint": "nx run-many -t lint",
"g:lint:changed": "nx affected -t lint --base=${NX_BASE:-main} --head=${NX_HEAD:-HEAD}",
"g:lint:fix": "nx run-many -t lint:fix",
"g:typecheck": "bun g:prepare && nx run @universe/uniswap-nx:typecheck:workspace",
"g:test": "nx run-many -t test",
"g:test:changed": "nx affected -t test --base=${NX_BASE:-main} --head=${NX_HEAD:-HEAD}",
"g:snapshots": "nx run-many -t snapshots",
"// ββ Cleanup & Troubleshooting ββ": "Remove artifacts to resolve common issues",
"clean": "bash ./scripts/clean.sh",
"clean:local-packages": "bash ./scripts/remove-local-packages.sh",
"clean:nodemodules": "find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' +",
"// ββ Tooling Maintenance ββ": "Package generation, dependency upgrades, cleanup",
"generate:package": "nx generate @universe/uniswap-nx:package",
"sync:bun-version": "bun run ./scripts/sync-bun-version.ts",
"upgrade:tamagui": "bun update '*tamagui*' '@tamagui/*'",
"upgrade:tamagui:canary": "bun update '*tamagui*'@canary '@tamagui/*'@canary",
"// ββ Other Utilities ββ": "Various other utilities, including i18n, codegen, and release management",
"i18n:extract": "i18next",
"i18n:upload": "crowdin upload",
"i18n:download": "crowdin download",
"tradingapi:schema": "nx run-many -t tradingapi:schema",
"tradingapi:generate": "nx run-many -t tradingapi:generate",
"wallet:release:setup-cherry-pick-branches": "bun run ./scripts/wallet-releases/generate-cherry-pick-branches-for-release.ts",
"wallet:release:generate-cherry-pick-commit-command": "bun run ./scripts/wallet-releases/generate-cherry-pick-commit-command.ts",
"// ββ Package Shortcuts ββ": "bun <name> <script> aliases for each workspace package",
"analytics": "bun run --cwd packages/analytics",
"api": "bun run --cwd packages/api",
"cli": "bun run --cwd apps/cli",
"chains": "bun run --cwd packages/chains",
"compliance": "bun run --cwd packages/compliance",
"config": "bun run --cwd packages/config",
"config-cli": "bun run --cwd packages/config-cli",
"cryptography": "bun run --cwd packages/cryptography",
"dev-portal": "bun run --cwd apps/dev-portal",
"encoding": "bun run --cwd packages/encoding",
"environment": "bun run --cwd packages/environment",
"extension": "bun run --cwd apps/extension",
"gating": "bun run --cwd packages/gating",
"hashcash-native": "bun run --cwd packages/hashcash-native",
"logger": "bun run --cwd packages/logger",
"mission-control": "bun run --cwd apps/mission-control",
"mobile": "bun run --cwd apps/mobile",
"mycelium": "bun run --cwd packages/mycelium",
"notifications": "bun run --cwd packages/notifications",
"prices": "bun run --cwd packages/prices",
"privacy": "bun run --cwd packages/privacy",
"react-query": "bun run --cwd packages/react-query",
"sandbox": "bun run --cwd labs/sandbox",
"sessions": "bun run --cwd packages/sessions",
"transactional": "bun run --cwd packages/transactional",
"trpc": "bun run --cwd packages/trpc",
"ui": "bun run --cwd packages/ui",
"uniswap": "bun run --cwd packages/uniswap",
"utilities": "bun run --cwd packages/utilities",
"wallet": "bun run --cwd packages/wallet",
"web": "bun run --cwd apps/web",
"websocket": "bun run --cwd packages/websocket",
"tailwind": "bun run --cwd packages/tailwind",
"experiments": "bun run --cwd packages/experiments"
},
"workspaces": [
"apps/*",
"packages/*",
"config/*",
"tools/uniswap-nx",
"labs/*"
],
"patchedDependencies": {
"multiformats@9.9.0": "patches/multiformats@9.9.0.patch",
"react-native-context-menu-view@1.15.0": "patches/react-native-context-menu-view@1.15.0.patch",
"react-native-tab-view@3.5.2": "patches/react-native-tab-view@3.5.2.patch",
"@react-native-community/slider@5.2.0": "patches/@react-native-community%2Fslider@5.2.0.patch",
"@shopify/react-native-performance@4.1.2": "patches/@shopify%2Freact-native-performance@4.1.2.patch",
"@vercel/og@0.5.8": "patches/@vercel%2Fog@0.5.8.patch",
"@tamagui/portal@1.136.1": "patches/@tamagui%2Fportal@1.136.1.patch",
"@tamagui/static@1.136.1": "patches/@tamagui%2Fstatic@1.136.1.patch",
"fumadocs-core@16.5.0": "patches/fumadocs-core@16.5.0.patch",
"fumadocs-ui@16.5.0": "patches/fumadocs-ui@16.5.0.patch",
"@fumadocs/ui@16.5.0": "patches/@fumadocs%2Fui@16.5.0.patch",
"zod@4.3.6": "patches/zod@4.3.6.patch",
"@manypkg/get-packages@1.1.3": "patches/@manypkg%2Fget-packages@1.1.3.patch",
"@ethersproject/providers@5.7.2": "patches/@ethersproject%2Fproviders@5.7.2.patch",
"nx@22.5.4": "patches/nx@22.5.4.patch",
"@expo/metro-config@54.0.9": "patches/@expo%2Fmetro-config@54.0.9.patch",
"@tamagui/web@1.136.1": "patches/@tamagui%2Fweb@1.136.1.patch",
"expo-constants@18.0.13": "patches/expo-constants@18.0.13.patch",
"@gorhom/bottom-sheet@5.2.13": "patches/@gorhom%2Fbottom-sheet@5.2.13.patch",
"react-native-svg@15.12.1": "patches/react-native-svg@15.12.1.patch",
"react-native@0.85.3": "patches/react-native@0.85.3.patch",
"i18next@23.10.0": "patches/i18next@23.10.0.patch",
"react-scripts@5.0.1": "patches/react-scripts@5.0.1.patch",
"@expo/require-utils@56.1.3": "patches/@expo%2Frequire-utils@56.1.3.patch",
"react-native-gesture-handler@3.0.0": "patches/react-native-gesture-handler@3.0.0.patch",
"danger@11.2.6": "patches/danger@11.2.6.patch"
}
}