Skip to content

Commit bd11540

Browse files
chore: update deps 2026-04-13 (#1897)
1 parent 7bec3ed commit bd11540

28 files changed

Lines changed: 1789 additions & 1820 deletions

AGENTS.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,52 @@ The project uses `yarn` for dependency management and script execution.
5454
- `examples/`: Example React Native applications using the library.
5555
- `website/`: Documentation website.
5656

57+
## Example App Regeneration
58+
59+
- Prefer regenerating Expo example apps in a temporary directory and then copying the fresh scaffold into place, instead of mutating the existing app in place.
60+
- Before replacing an example app, move the current app directory to `/tmp` so repo-specific code, tests, assets, and configs can be restored selectively.
61+
- After copying a freshly generated app into `examples/`, remove the generated `.git` directory and generated `node_modules`, then reinstall from inside the repo workspace.
62+
63+
- `examples/basic`:
64+
- Generate from the Expo blank TypeScript scaffold:
65+
- `yarn create expo-app /tmp/rntl-basic-fresh --template blank-typescript --yes`
66+
- Restore the repo-specific sample app files on top of the new scaffold:
67+
- `App.tsx`
68+
- `components/`
69+
- `__tests__/`
70+
- `theme.ts`
71+
- `jest.config.js`
72+
- `jest-setup.ts`
73+
- `babel.config.js`
74+
- `eslint.config.mjs`
75+
- `README.md`
76+
- `.expo-shared/assets.json` if it existed before
77+
- Keep the fresh Expo entrypoint (`index.ts`) and update `package.json` / `app.json` to match the repo naming and scripts.
78+
79+
- `examples/cookbook`:
80+
- Generate from a router-enabled Expo scaffold:
81+
- `yarn create expo-app /tmp/rntl-cookbook-fresh --example with-router --yes`
82+
- Restore the repo-specific cookbook files on top of the new scaffold:
83+
- `app/`
84+
- tutorial test directories such as `basics-tutorial/` and `basics-tutorial-react-strict-dom/`
85+
- `theme.ts`
86+
- `jest.config.js`
87+
- `jest-setup.ts`
88+
- `babel.config.js`
89+
- `.eslintrc`, `.eslintignore`
90+
- `README.md`
91+
- custom assets not present in the scaffold, such as `assets/gradientRNBanner.png`
92+
- `.expo-shared/assets.json` if it existed before
93+
- Keep the fresh Expo Router entry setup, then reapply the cookbook-specific dependency set in `package.json` and `app.json`.
94+
95+
- After regenerating either example app, validate from inside the app directory:
96+
- `yarn expo install --check`
97+
- `yarn lint`
98+
- `yarn typecheck`
99+
- `yarn test --watchman=false`
100+
101+
- If the fresh scaffold introduces dependency-resolution churn, prefer restoring the previous `yarn.lock` first and then running `yarn install`, rather than re-resolving the whole dependency tree from scratch.
102+
57103
## PR draft workflow:
58104

59105
- Maintain `PR.txt` at the repository root using the structure from `.github/pull_request_template.md`.

examples/basic/.gitignore

Lines changed: 36 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,7 @@
1-
# General Node.js
1+
# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files
2+
3+
# dependencies
24
node_modules/
3-
.expo/
4-
dist/
5-
npm-debug.*
6-
*.jks
7-
*.p8
8-
*.p12
9-
*.key
10-
*.mobileprovision
11-
*.orig.*
12-
web-build/
135

146
# Yarn 4.x
157
.pnp.*
@@ -20,6 +12,39 @@ web-build/
2012
!.yarn/sdks
2113
!.yarn/versions
2214

15+
# Expo
16+
.expo/
17+
dist/
18+
web-build/
19+
expo-env.d.ts
20+
21+
# Native
22+
.kotlin/
23+
*.orig.*
24+
*.jks
25+
*.p8
26+
*.p12
27+
*.key
28+
*.mobileprovision
29+
30+
# Metro
31+
.metro-health-check*
32+
33+
# debug
34+
npm-debug.*
35+
yarn-debug.*
36+
yarn-error.*
37+
2338
# macOS
2439
.DS_Store
40+
*.pem
41+
42+
# local env files
43+
.env*.local
44+
45+
# typescript
46+
*.tsbuildinfo
2547

48+
# generated native folders
49+
/ios
50+
/android

examples/basic/app.json

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,22 @@
66
"orientation": "portrait",
77
"icon": "./assets/icon.png",
88
"userInterfaceStyle": "light",
9+
"newArchEnabled": true,
910
"splash": {
10-
"image": "./assets/splash.png",
11+
"image": "./assets/splash-icon.png",
1112
"resizeMode": "contain",
1213
"backgroundColor": "#ffffff"
1314
},
14-
"updates": {
15-
"fallbackToCacheTimeout": 0
16-
},
17-
"assetBundlePatterns": ["**/*"],
1815
"ios": {
1916
"supportsTablet": true
2017
},
2118
"android": {
2219
"adaptiveIcon": {
2320
"foregroundImage": "./assets/adaptive-icon.png",
24-
"backgroundColor": "#FFFFFF"
25-
}
21+
"backgroundColor": "#ffffff"
22+
},
23+
"edgeToEdgeEnabled": true,
24+
"predictiveBackGestureEnabled": false
2625
},
2726
"web": {
2827
"favicon": "./assets/favicon.png"
17.1 KB
Loading

examples/basic/assets/splash.png

-46.2 KB
Binary file not shown.

examples/basic/eslint.config.mjs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,14 @@ import tseslint from 'typescript-eslint';
33

44
export default [
55
{
6-
ignores: ['node_modules/**', 'jest-setup.ts'],
6+
ignores: [
7+
'node_modules/**',
8+
'.expo/**',
9+
'dist/**',
10+
'web-build/**',
11+
'expo-env.d.ts',
12+
'jest-setup.ts',
13+
],
714
},
815
...tseslint.configs.recommended,
916
{

examples/basic/index.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { registerRootComponent } from 'expo';
2+
3+
import App from './App';
4+
5+
// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
6+
// It also ensures that whether you load the app in Expo Go or in a native build,
7+
// the environment is set up appropriately
8+
registerRootComponent(App);

examples/basic/package.json

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,38 @@
11
{
2-
"main": "node_modules/expo/AppEntry.js",
2+
"name": "rntl-example-basic",
3+
"version": "1.0.0",
4+
"main": "index.ts",
35
"scripts": {
46
"start": "expo start",
57
"android": "expo start --android",
68
"ios": "expo start --ios",
79
"web": "expo start --web",
8-
"eject": "expo eject",
910
"test": "jest",
1011
"lint": "eslint .",
11-
"typecheck": "tsc --noEmit"
12+
"typecheck": "tsc --noEmit",
13+
"validate": "yarn expo install --check && yarn lint && yarn typecheck && yarn test --watchman=false"
1214
},
1315
"dependencies": {
14-
"expo": "^54.0.32",
16+
"expo": "~54.0.33",
1517
"expo-status-bar": "~3.0.9",
1618
"react": "19.1.0",
1719
"react-dom": "19.1.0",
1820
"react-native": "0.81.5",
1921
"react-native-safe-area-context": "^5.6.2",
20-
"react-native-web": "^0.21.0"
22+
"react-native-web": "^0.21.2"
2123
},
2224
"devDependencies": {
23-
"@babel/core": "^7.24.0",
25+
"@babel/core": "^7.29.0",
2426
"@testing-library/react-native": "^14.0.0-beta.0",
2527
"@types/jest": "^29.5.12",
2628
"@types/react": "~19.1.10",
27-
"eslint": "9.39.2",
28-
"eslint-plugin-testing-library": "^7.1.1",
29-
"jest": "^29.7.0",
29+
"eslint": "^10.2.0",
30+
"eslint-plugin-testing-library": "^7.16.2",
31+
"jest": "~29.7.0",
3032
"test-renderer": "0.14.0",
3133
"typescript": "~5.9.2",
32-
"typescript-eslint": "^8.0.0"
34+
"typescript-eslint": "^8.58.1"
3335
},
3436
"private": true,
35-
"packageManager": "yarn@4.0.1"
37+
"packageManager": "yarn@4.11.0"
3638
}

0 commit comments

Comments
 (0)