Skip to content

Commit d12ebc3

Browse files
msluszniakclaude
andauthored
chore: aggregate all Dependabot security/dependency bumps (#838-#877) (#878)
Aggregates 40 Dependabot PRs into a single update: - @evilmartians/lefthook: 1.13.6 -> 2.1.1 - @babel/core: 7.28.5 -> 7.29.0 (all apps) - react: 19.1.0 -> 19.2.4 (packages + apps) - react-native: 0.81.5 -> 0.84.0 (packages + apps/llm) - react-native-svg: 15.12.1 -> 15.15.3 (all apps) - react-native-svg-transformer: 1.5.2 -> 1.5.3 (all apps) - react-native-screens: 4.16.0 -> 4.24.0 (llm, text-embeddings) - react-native-safe-area-context: 5.6.2 -> 5.7.0 (speech, text-embeddings) - react-native-device-info: 14.1.1 -> 15.0.2 (all apps) - react-native-reanimated: 4.1.6 -> 4.2.2 (computer-vision) - react-native-worklets: 0.5.1 -> 0.7.4 (llm) - react-native-audio-api: 0.11.3 -> 0.11.5 (speech) - react-native-gesture-handler: 2.28.0 -> 2.30.0 (text-embeddings) - @react-native/metro-config: 0.81.6 -> 0.84.0 (llm, speech) - @react-navigation/drawer: 7.7.8 -> 7.8.1 (computer-vision, llm, text-embeddings) - @shopify/react-native-skia: 2.2.12 -> 2.4.21 (computer-vision) - jest: 29.7.0 -> 30.2.0 (react-native-executorch) - @types/jest: 29.5.14 -> 30.0.0 (react-native-executorch) - zod: 3.25.76 -> 4.3.6 (react-native-executorch) - expo-asset: 12.0.11 -> 12.0.12 (expo-resource-fetcher) - @docsearch/css + sidepanel: 4.5.3 -> 4.6.0 (docs) - typedoc: 0.28.16 -> 0.28.17 (docs) - typedoc-plugin-markdown: 4.9.0 -> 4.10.0 (docs) - swiper: 11.2.10 -> 12.1.2 (docs) ## Description <!-- Provide a concise and descriptive summary of the changes implemented in this PR. --> ### Introduces a breaking change? - [ ] Yes - [x] No ### Type of change - [ ] Bug fix (change which fixes an issue) - [ ] New feature (change which adds functionality) - [ ] Documentation update (improves or adds clarity to existing documentation) - [x] Other (chores, tests, code style improvements etc.) ### Tested on - [x] iOS - [x] Android ### Testing instructions * Run in `docs` directory `yarn build && yarn serve` and check that documentation builds correctly * Run all demo apps on iOS and Android and check that they are still running correctly. ### Screenshots <!-- Add screenshots here, if applicable --> ### Related issues <!-- Link related issues here using #issue-number --> ### Checklist - [x] I have performed a self-review of my code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have updated the documentation accordingly - [x] My changes generate no new warnings ### Additional notes <!-- Include any additional information, assumptions, or context that reviewers might need to understand this PR. --> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 6794e21 commit d12ebc3

33 files changed

+2214
-688
lines changed

apps/computer-vision/metro.config.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
// Learn more https://docs.expo.io/guides/customizing-metro
22
const { getDefaultConfig } = require('expo/metro-config');
3+
const path = require('path');
4+
5+
const monorepoRoot = path.resolve(__dirname, '../..');
36

47
/** @type {import('expo/metro-config').MetroConfig} */
58
const config = getDefaultConfig(__dirname);
69

710
const { transformer, resolver } = config;
811

12+
config.watchFolders = [monorepoRoot];
13+
914
config.transformer = {
1015
...transformer,
1116
babelTransformerPath: require.resolve('react-native-svg-transformer/expo'),
@@ -14,6 +19,23 @@ config.resolver = {
1419
...resolver,
1520
assetExts: resolver.assetExts.filter((ext) => ext !== 'svg'),
1621
sourceExts: [...resolver.sourceExts, 'svg'],
22+
nodeModulesPaths: [
23+
path.resolve(__dirname, 'node_modules'),
24+
path.resolve(monorepoRoot, 'node_modules'),
25+
],
26+
// Always resolve react and react-native from the monorepo root so that
27+
// workspace packages with their own nested node_modules (e.g.
28+
// packages/react-native-executorch/node_modules/react) don't create a
29+
// second React instance and trigger "Invalid hook call".
30+
resolveRequest: (context, moduleName, platform) => {
31+
if (moduleName === 'react' || moduleName === 'react-native') {
32+
return {
33+
filePath: require.resolve(moduleName, { paths: [monorepoRoot] }),
34+
type: 'sourceFile',
35+
};
36+
}
37+
return context.resolveRequest(context, moduleName, platform);
38+
},
1739
};
1840

1941
config.resolver.assetExts.push('pte');

apps/computer-vision/package.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
"dependencies": {
1414
"@react-native-executorch/expo-resource-fetcher": "workspace:*",
1515
"@react-native/metro-config": "^0.81.5",
16-
"@react-navigation/drawer": "^7.3.9",
17-
"@react-navigation/native": "^7.1.6",
18-
"@shopify/react-native-skia": "2.2.12",
16+
"@react-navigation/drawer": "^7.8.1",
17+
"@react-navigation/native": "^7.1.28",
18+
"@shopify/react-native-skia": "2.4.21",
1919
"expo": "^54.0.27",
2020
"expo-constants": "~18.0.11",
2121
"expo-font": "~14.0.10",
@@ -25,20 +25,20 @@
2525
"metro-config": "^0.81.5",
2626
"react": "19.1.0",
2727
"react-native": "0.81.5",
28-
"react-native-device-info": "^14.0.4",
28+
"react-native-device-info": "^15.0.2",
2929
"react-native-executorch": "workspace:*",
3030
"react-native-gesture-handler": "~2.28.0",
3131
"react-native-image-picker": "^7.2.2",
3232
"react-native-loading-spinner-overlay": "^3.0.1",
33-
"react-native-reanimated": "~4.1.1",
33+
"react-native-reanimated": "~4.2.2",
3434
"react-native-safe-area-context": "~5.6.0",
3535
"react-native-screens": "~4.16.0",
36-
"react-native-svg": "15.12.1",
37-
"react-native-svg-transformer": "^1.5.0",
38-
"react-native-worklets": "0.5.1"
36+
"react-native-svg": "15.15.3",
37+
"react-native-svg-transformer": "^1.5.3",
38+
"react-native-worklets": "0.7.4"
3939
},
4040
"devDependencies": {
41-
"@babel/core": "^7.25.2",
41+
"@babel/core": "^7.29.0",
4242
"@types/pngjs": "^6.0.5",
4343
"@types/react": "~19.1.10"
4444
},

apps/llm/app.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,11 @@
6565
"package": "com.anonymous.llm",
6666
"permissions": [
6767
"android.permission.READ_CALENDAR",
68-
"android.permission.WRITE_CALENDAR"
68+
"android.permission.WRITE_CALENDAR",
69+
"android.permission.MODIFY_AUDIO_SETTINGS",
70+
"android.permission.FOREGROUND_SERVICE",
71+
"android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK",
72+
"android.permission.RECORD_AUDIO"
6973
]
7074
},
7175
"web": {

apps/llm/metro.config.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@ const { getDefaultConfig } = require('expo/metro-config');
22
const {
33
wrapWithAudioAPIMetroConfig,
44
} = require('react-native-audio-api/metro-config');
5+
const path = require('path');
56

7+
const monorepoRoot = path.resolve(__dirname, '../..');
68
const config = getDefaultConfig(__dirname);
79

810
const { transformer, resolver } = config;
911

12+
config.watchFolders = [monorepoRoot];
13+
1014
config.transformer = {
1115
...transformer,
1216
babelTransformerPath: require.resolve('react-native-svg-transformer/expo'),
@@ -15,6 +19,23 @@ config.resolver = {
1519
...resolver,
1620
assetExts: resolver.assetExts.filter((ext) => ext !== 'svg'),
1721
sourceExts: [...resolver.sourceExts, 'svg'],
22+
nodeModulesPaths: [
23+
path.resolve(__dirname, 'node_modules'),
24+
path.resolve(monorepoRoot, 'node_modules'),
25+
],
26+
// Always resolve react and react-native from the monorepo root so that
27+
// workspace packages with their own nested node_modules (e.g.
28+
// packages/react-native-executorch/node_modules/react) don't create a
29+
// second React instance and trigger "Invalid hook call".
30+
resolveRequest: (context, moduleName, platform) => {
31+
if (moduleName === 'react' || moduleName === 'react-native') {
32+
return {
33+
filePath: require.resolve(moduleName, { paths: [monorepoRoot] }),
34+
type: 'sourceFile',
35+
};
36+
}
37+
return context.resolveRequest(context, moduleName, platform);
38+
},
1839
};
1940

2041
config.resolver.assetExts.push('pte');

apps/llm/package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
},
1313
"dependencies": {
1414
"@react-native-executorch/expo-resource-fetcher": "workspace:*",
15-
"@react-native/metro-config": "^0.81.5",
16-
"@react-navigation/drawer": "^7.3.9",
17-
"@react-navigation/native": "^7.1.6",
15+
"@react-native/metro-config": "^0.81.6",
16+
"@react-navigation/drawer": "^7.8.1",
17+
"@react-navigation/native": "^7.1.28",
1818
"expo": "^54.0.27",
1919
"expo-brightness": "~14.0.8",
2020
"expo-calendar": "~15.0.8",
@@ -27,20 +27,20 @@
2727
"react": "19.1.0",
2828
"react-native": "0.81.5",
2929
"react-native-audio-api": "^0.8.2",
30-
"react-native-device-info": "^14.0.4",
30+
"react-native-device-info": "^15.0.2",
3131
"react-native-executorch": "workspace:*",
3232
"react-native-gesture-handler": "~2.28.0",
3333
"react-native-loading-spinner-overlay": "^3.0.1",
3434
"react-native-markdown-display": "^7.0.2",
3535
"react-native-reanimated": "~4.1.1",
3636
"react-native-safe-area-context": "~5.6.0",
3737
"react-native-screens": "~4.16.0",
38-
"react-native-svg": "15.12.1",
39-
"react-native-svg-transformer": "^1.5.0",
40-
"react-native-worklets": "0.5.1"
38+
"react-native-svg": "15.15.3",
39+
"react-native-svg-transformer": "^1.5.3",
40+
"react-native-worklets": "0.7.4"
4141
},
4242
"devDependencies": {
43-
"@babel/core": "^7.25.2",
43+
"@babel/core": "^7.29.0",
4444
"@types/react": "~19.1.10"
4545
},
4646
"private": true

apps/speech/metro.config.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@ const { getDefaultConfig } = require('expo/metro-config');
22
const {
33
wrapWithAudioAPIMetroConfig,
44
} = require('react-native-audio-api/metro-config');
5+
const path = require('path');
56

7+
const monorepoRoot = path.resolve(__dirname, '../..');
68
const config = getDefaultConfig(__dirname);
79

810
const { transformer, resolver } = config;
911

12+
config.watchFolders = [monorepoRoot];
13+
1014
config.transformer = {
1115
...transformer,
1216
babelTransformerPath: require.resolve('react-native-svg-transformer/expo'),
@@ -15,6 +19,23 @@ config.resolver = {
1519
...resolver,
1620
assetExts: resolver.assetExts.filter((ext) => ext !== 'svg'),
1721
sourceExts: [...resolver.sourceExts, 'svg'],
22+
nodeModulesPaths: [
23+
path.resolve(__dirname, 'node_modules'),
24+
path.resolve(monorepoRoot, 'node_modules'),
25+
],
26+
// Always resolve react and react-native from the monorepo root so that
27+
// workspace packages with their own nested node_modules (e.g.
28+
// packages/react-native-executorch/node_modules/react) don't create a
29+
// second React instance and trigger "Invalid hook call".
30+
resolveRequest: (context, moduleName, platform) => {
31+
if (moduleName === 'react' || moduleName === 'react-native') {
32+
return {
33+
filePath: require.resolve(moduleName, { paths: [monorepoRoot] }),
34+
type: 'sourceFile',
35+
};
36+
}
37+
return context.resolveRequest(context, moduleName, platform);
38+
},
1839
};
1940

2041
config.resolver.assetExts.push('pte');

apps/speech/package.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,25 @@
1212
},
1313
"dependencies": {
1414
"@react-native-executorch/expo-resource-fetcher": "workspace:*",
15-
"@react-native/metro-config": "^0.81.5",
15+
"@react-native/metro-config": "^0.84.0",
1616
"buffer": "^6.0.3",
1717
"expo": "^54.0.27",
1818
"expo-font": "~14.0.10",
1919
"expo-status-bar": "~3.0.9",
2020
"metro-config": "^0.81.5",
2121
"react": "19.1.0",
2222
"react-native": "0.81.5",
23-
"react-native-audio-api": "0.11.3",
24-
"react-native-device-info": "^14.0.4",
23+
"react-native-audio-api": "0.11.5",
24+
"react-native-device-info": "^15.0.2",
2525
"react-native-executorch": "workspace:*",
26-
"react-native-reanimated": "~4.1.1",
27-
"react-native-safe-area-context": "~5.6.0",
28-
"react-native-svg": "15.12.1",
29-
"react-native-svg-transformer": "^1.5.0",
30-
"react-native-worklets": "0.5.1"
26+
"react-native-reanimated": "~4.2.2",
27+
"react-native-safe-area-context": "~5.7.0",
28+
"react-native-svg": "15.15.3",
29+
"react-native-svg-transformer": "^1.5.3",
30+
"react-native-worklets": "0.7.4"
3131
},
3232
"devDependencies": {
33-
"@babel/core": "^7.25.2",
33+
"@babel/core": "^7.29.0",
3434
"@types/react": "~19.1.10"
3535
},
3636
"private": true

apps/text-embeddings/app/_layout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export default function _layout() {
4848
}}
4949
>
5050
<Drawer
51-
drawerContent={(props) => (
51+
drawerContent={(props: DrawerContentComponentProps) => (
5252
<CustomDrawerContent {...props} isGenerating={isGenerating} />
5353
)}
5454
screenOptions={{

apps/text-embeddings/metro.config.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
// Learn more https://docs.expo.io/guides/customizing-metro
22
const { getDefaultConfig } = require('expo/metro-config');
3+
const path = require('path');
4+
5+
const monorepoRoot = path.resolve(__dirname, '../..');
36

47
/** @type {import('expo/metro-config').MetroConfig} */
58
const config = getDefaultConfig(__dirname);
69

710
const { transformer, resolver } = config;
811

12+
config.watchFolders = [monorepoRoot];
13+
914
config.transformer = {
1015
...transformer,
1116
babelTransformerPath: require.resolve('react-native-svg-transformer/expo'),
@@ -14,6 +19,23 @@ config.resolver = {
1419
...resolver,
1520
assetExts: resolver.assetExts.filter((ext) => ext !== 'svg'),
1621
sourceExts: [...resolver.sourceExts, 'svg'],
22+
nodeModulesPaths: [
23+
path.resolve(__dirname, 'node_modules'),
24+
path.resolve(monorepoRoot, 'node_modules'),
25+
],
26+
// Always resolve react and react-native from the monorepo root so that
27+
// workspace packages with their own nested node_modules (e.g.
28+
// packages/react-native-executorch/node_modules/react) don't create a
29+
// second React instance and trigger "Invalid hook call".
30+
resolveRequest: (context, moduleName, platform) => {
31+
if (moduleName === 'react' || moduleName === 'react-native') {
32+
return {
33+
filePath: require.resolve(moduleName, { paths: [monorepoRoot] }),
34+
type: 'sourceFile',
35+
};
36+
}
37+
return context.resolveRequest(context, moduleName, platform);
38+
},
1739
};
1840

1941
config.resolver.assetExts.push('pte');

apps/text-embeddings/package.json

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,10 @@
1010
"typecheck": "tsc",
1111
"lint": "eslint . --ext .ts,.tsx --fix"
1212
},
13-
"peerDependencies": {
14-
"@react-navigation/native": "*"
15-
},
1613
"dependencies": {
1714
"@react-native-executorch/expo-resource-fetcher": "workspace:*",
18-
"@react-navigation/drawer": "^7.3.9",
15+
"@react-navigation/drawer": "^7.8.1",
16+
"@react-navigation/native": "^7.1.28",
1917
"expo": "^54.0.27",
2018
"expo-constants": "~18.0.11",
2119
"expo-linking": "~8.0.10",
@@ -24,16 +22,16 @@
2422
"react": "19.1.0",
2523
"react-native": "0.81.5",
2624
"react-native-executorch": "workspace:*",
27-
"react-native-gesture-handler": "~2.28.0",
25+
"react-native-gesture-handler": "~2.30.0",
2826
"react-native-image-picker": "^7.2.2",
29-
"react-native-reanimated": "~4.1.1",
30-
"react-native-safe-area-context": "~5.6.0",
27+
"react-native-reanimated": "~4.2.2",
28+
"react-native-safe-area-context": "~5.7.0",
3129
"react-native-screens": "~4.16.0",
32-
"react-native-svg": "15.12.1",
33-
"react-native-worklets": "0.5.1"
30+
"react-native-svg": "15.15.3",
31+
"react-native-worklets": "0.7.4"
3432
},
3533
"devDependencies": {
36-
"@babel/core": "^7.25.2",
34+
"@babel/core": "^7.29.0",
3735
"@types/react": "~19.1.10"
3836
},
3937
"private": true

0 commit comments

Comments
 (0)