Repository navigation
chore(deps): drop image-size from root lockfile (builder-bob 0.43, metro 0.84.6) - #321
Merged
Merged
Conversation
…tro 0.84.6) Fixes Dependabot alerts #793 and #795 (image-size CVE-2025-71329 / CVE-2025-71330, no patched 1.x). image-size 1.x only reached the root lockfile through metro: - react-native-builder-bob ^0.36 depended on metro-config ^0.80.9, which pulled metro 0.80.12. Bob 0.41+ moved metro-config to devDependencies. Bumped all five packages to ^0.43.1 (locked at 0.43.1). - metro 0.84.4 (via @react-native/community-cli-plugin ^0.84.3) still depended on image-size; metro 0.84.5+ dropped it. Re-resolved the metro family to 0.84.6 and bumped the example's metro-cache/metro-config ranges to ^0.84.6. image-size no longer appears in yarn.lock. The bob build output is byte-identical except that lib/module/package.json ({"type":"module"}) is no longer emitted when the esm option is off (intentional upstream change; the packages expose no "exports" field). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
|
Automatic reviews are disabled for this repository. |
macminisupport
approved these changes
Oct 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Fixes the open HIGH Dependabot alerts on the root
yarn.lock:>= 1.2.0, <= 2.0.2, patched 2.0.3)>= 0.6.3, <= 2.0.2, patched 2.0.3)There is no patched 1.x, and forcing image-size 2.x onto metro breaks it, so the fix removes the dependency path instead.
Approach
image-size 1.2.1 only reached the root lockfile through metro:
react-native-builder-bob@^0.36depended onmetro-config@^0.80.9, which pulledmetro@0.80.12→image-size@^1.0.2. Bob 0.41+ movedmetro-configto devDependencies.metro@0.84.4(via@react-native/community-cli-plugin@^0.84.3) still depended onimage-size; metro 0.84.5+ dropped it (same as test-projects/rn-purchasely-test in chore(deps): patch HIGH CVEs (brace-expansion, basic-ftp, image-size) #320).Changes:
react-native-builder-bob^0.36.0→^0.43.1in the 5 packages (purchasely, google, amazon, huawei, android-player). Locked at 0.43.1; 0.43.2 was published yesterday, so I kept it out for now.metro-cache/metro-configranges^0.84.0→^0.84.6.Resolved versions
typescript@^6.0.3as a dependency;tscfor the typescript target is still resolved from the workspace (5.9.3), checked in bob's source and in the output below.Builder-bob 0.36 → 0.43 changelog review
No breaking change for our config (
source: src,output: lib, targetscommonjs,module,["typescript", { project: "tsconfig.build.json" }], noesm, nocodegenConfig). Relevant changes: config is now validated with arktype (ours passes), tasks run in parallel with workers, tsc is resolved through node resolution from the package root,.d.tsextensions are rewritten only for ESM/nodenext.Build output
Built all 5 packages (
yarn all:prepare) on main and on this branch, then diffedlib/: 111 files byte-identical (JS, source maps,.d.ts, samelib/typescript/packages/<pkg>/src/...layout). The only difference:lib/module/package.json({"type":"module"}) is no longer emitted. Bob skips it on purpose whenesmis off, because the module output uses extensionless imports (see the comment in bob'sutils/compile.js; most likely the 0.38.0 change "fix generating package.json when esm is enabled"). Our packages have noexportsorreact-nativefield, so Metro resolvesmain(lib/commonjs, still with its{"type":"commonjs"}marker), and bundlers readingmodulenow treatlib/moduleas auto-detected rather than strict ESM.Local checks (Node 22, yarn 3.6.1)
yarn install --immutable: OKyarn typecheck: OKyarn lint: OKyarn test: 6 suites, 291 tests passedyarn all:prepare: OK (5 packages)yarn workspace example react-native bundle --platform android --dev false: OK on Metro v0.84.6 (bundle + 19 assets copied)🤖 Generated with Claude Code