Repository: JoshuaKGoldberg/TypeStat (ts)

Issue:
🐛 Bug: createJavaScriptConfig should print projectPath instead of project
### Bug Report Checklist

- [x] I have tried restarting my IDE and the issue persists.
- [x] I have pulled the latest `main` branch of the repository.
- [x] I have [searched for related issues](https://github.com/JoshuaKGoldberg/TypeStat/issues?q=is%3Aissue) and found none that matched my issue.

### Expected

not applicable

### Actual

not applicable

### Additional Info

There is function inside `createJavascriptConfig` named `shared`, which adds `project` to the generated config. I think the whole function should return `RawTypeStatOptions` which means that this `shared` should also return part of `RawTypeStatOptions`. There is no `project` in that config structure though. However, there is `projectPath`. I wonder should this `shared` function use `projectPath` instead? 🤔 

```ts
      const shared = (include: string[] | undefined) => ({
		...(include && { include }),
		project: project.filePath,
	});
```

I noticed this while testing `isolatedDeclations` in this repository. 

Pull request:
fix: createJavaScriptConfig should print projectPath instead of project
## PR Checklist

- [x] Addresses an existing open issue: fixes #2178
- [x] That issue was marked as [`status: accepting prs`](https://github.com/JoshuaKGoldberg/TypeStat/issues?q=is%3Aopen+is%3Aissue+label%3A%22status%3A+accepting+prs%22)
- [x] Steps in [CONTRIBUTING.md](https://github.com/JoshuaKGoldberg/TypeStat/blob/main/.github/CONTRIBUTING.md) were taken

## Overview

It seems that the structure should have `projectPath` instead of `project`. 

I also moved the code little bit so that there was less nested ternaries.

Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7b6b9b5..30e653e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,17 @@
 # Changelog
 
+## [0.8.13](https://github.com/JoshuaKGoldberg/TypeStat/compare/0.8.12...0.8.13) (2025-02-06)
+
+### Bug Fixes
+
+- replace builtin-modules package with node's isBuiltin check ([#2176](https://github.com/JoshuaKGoldberg/TypeStat/issues/2176)) ([8d40464](https://github.com/JoshuaKGoldberg/TypeStat/commit/8d404647cb29e43416b169e6149fef604fcb3f40)), closes [#2175](https://github.com/JoshuaKGoldberg/TypeStat/issues/2175)
+
+## [0.8.12](https://github.com/JoshuaKGoldberg/TypeStat/compare/0.8.11...0.8.12) (2025-02-04)
+
+### Bug Fixes
+
+- **deps:** update dependency ts-api-utils to v2.0.1 ([#2187](https://github.com/JoshuaKGoldberg/TypeStat/issues/2187)) ([ec320ac](https://github.com/JoshuaKGoldberg/TypeStat/commit/ec320ac0d143f2fdbd90b93fa7c6a97e1350d05e))
+
 ## [0.8.11](https://github.com/JoshuaKGoldberg/TypeStat/compare/0.8.10...0.8.11) (2025-01-24)
 
 ### Bug Fixes
diff --git a/package.json b/package.json
index 2c39eac..5a60d5d 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
 	"name": "typestat",
-	"version": "0.8.11",
+	"version": "0.8.13",
 	"description": "Converts JavaScript to TypeScript and TypeScript to better TypeScript. 🧫",
 	"repository": {
 		"type": "git",
@@ -42,13 +42,12 @@
 	"dependencies": {
 		"@phenomnomnominal/tsquery": "6.1.3",
 		"automutate": "0.9.0",
-		"builtin-modules": "4.0.0",
 		"chalk": "5.4.1",
 		"commander": "13.1.0",
 		"enquirer": "2.4.1",
 		"glob": "11.0.1",
 		"strip-ansi": "7.1.0",
-		"ts-api-utils": "2.0.0"
+		"ts-api-utils": "2.0.1"
 	},
 	"devDependencies": {
 		"@eslint-community/eslint-plugin-eslint-comments": "4.4.1",
@@ -56,7 +55,7 @@
 		"@release-it/conventional-changelog": "10.0.0",
 		"@types/eslint-plugin-markdown": "2.0.2",
 		"@types/glob": "8.1.0",
-		"@types/node": "22.12.0",
+		"@types/node": "22.13.0",
 		"@types/prop-types": "15.7.14",
 		"@types/react": "19.0.8",
 		"@vitest/coverage-v8": "3.0.4",
@@ -87,9 +86,9 @@
 		"typescript-eslint": "8.22.0",
 		"vitest": "3.0.4"
 	},
-	"packageManager": "pnpm@9.15.4",
+	"packageManager": "pnpm@10.1.0",
 	"engines": {
-		"node": ">=18"
+		"node": ">=18.6"
 	},
 	"publishConfig": {
 		"provenance": true
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 3ae7c26..c1f3b9c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -14,9 +14,6 @@ importers:
       automutate:
         specifier: 0.9.0
         version: 0.9.0
-      builtin-modules:
-        specifier: 4.0.0
-        version: 4.0.0
       chalk:
         specifier: 5.4.1
         version: 5.4.1
@@ -33,8 +30,8 @@ importers:
         specifier: 7.1.0
         version: 7.1.0
       ts-api-utils:
-        specifier: 2.0.0
-        version: 2.0.0(typescript@5.7.3)
+        specifier: 2.0.1
+        version: 2.0.1(typescript@5.7.3)
     devDependencies:
       '@eslint-community/eslint-plugin-eslint-comments':
         specifier: 4.4.1
@@ -44,7 +41,7 @@ importers:
         version: 9.19.0
       '@release-it/conventional-changelog':
         specifier: 10.0.0
-        version: 10.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0)(release-it@18.1.2(@types/node@22.12.0)(typescript@5.7.3))
+        version: 10.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0)(release-it@18.1.2(@types/node@22.13.0)(typescript@5.7.3))
       '@types/eslint-plugin-markdown':
         specifier: 2.0.2
         version: 2.0.2
@@ -52,8 +49,8 @@ importers:
         specifier: 8.1.0
         version: 8.1.0
       '@types/node':
-        specifier: 22.12.0
-        version: 22.12.0
+        specifier: 22.13.0
+        version: 22.13.0
       '@types/prop-types':
         specifier: 15.7.14
         version: 15.7.14
@@ -62,10 +59,10 @@ importers:
         version: 19.0.8
       '@vitest/coverage-v8':
         specifier: 3.0.4
-        version: 3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0))
+        version: 3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.13.0))
       '@vitest/eslint-plugin':
         specifier: 1.1.25
-        version: 1.1.25(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0))
+        version: 1.1.25(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.13.0))
       console-fail-test:
         specifier: 0.5.0
         version: 0.5.0
@@ -104,7 +101,7 @@ importers:
         version: 9.1.7
       knip:
         specifier: 5.43.6
-        version: 5.43.6(@types/node@22.12.0)(typescript@5.7.3)
+        version: 5.43.6(@types/node@22.13.0)(typescript@5.7.3)
       lint-staged:
         specifier: 15.4.3
         version: 15.4.3
@@ -125,7 +122,7 @@ importers:
         version: 2.5.8(prettier@3.4.2)
       release-it:
         specifier: 18.1.2
-        version: 18.1.2(@types/node@22.12.0)(typescript@5.7.3)
+        version: 18.1.2(@types/node@22.13.0)(typescript@5.7.3)
       sentences-per-line:
         specifier: 0.3.0
         version: 0.3.0
@@ -140,7 +137,7 @@ importers:
         version: 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
       vitest:
         specifier: 3.0.4
-        version: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)
+        version: 3.0.4(@types/debug@4.1.12)(@types/node@22.13.0)
 
 packages:
 
@@ -1135,8 +1132,8 @@ packages:
   '@types/ms@0.7.34':
     resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
 
-  '@types/node@22.12.0':
-    resolution: {integrity: sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==}
+  '@types/node@22.13.0':
+    resolution: {integrity: sha512-ClIbNe36lawluuvq3+YYhnIN2CELi+6q8NpnM7PYp4hBn/TatfboPgVSm2rwKRfnV2M+Ty9GWDFI64KEe+kysA==}
 
   '@types/normalize-package-data@2.4.4':
     resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
@@ -1373,10 +1370,6 @@ packages:
   buffer-from@1.1.2:
     resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
 
-  builtin-modules@4.0.0:
-    resolution: {integrity: sha512-p1n8zyCkt1BVrKNFymOHjcDSAl7oq/gUvfgULv2EblgpPVQlQr9yHnWjg9IJ2MhfwPqiYqMMrr01OY7yQoK2yA==}
-    engines: {node: '>=18.20'}
-
   bundle-name@4.1.0:
     resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
     engines: {node: '>=18'}
@@ -3390,8 +3383,8 @@ packages:
     resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
     hasBin: true
 
-  ts-api-utils@2.0.0:
-    resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==}
+  ts-api-utils@2.0.1:
+    resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==}
     engines: {node: '>=18.12'}
     peerDependencies:
       typescript: '>=4.8.4'
@@ -4169,25 +4162,25 @@ snapshots:
 
   '@iarna/toml@2.2.5': {}
 
-  '@inquirer/checkbox@4.0.4(@types/node@22.12.0)':
+  '@inquirer/checkbox@4.0.4(@types/node@22.13.0)':
     dependencies:
-      '@inquirer/core': 10.1.2(@types/node@22.12.0)
+      '@inquirer/core': 10.1.2(@types/node@22.13.0)
       '@inquirer/figures': 1.0.9
-      '@inquirer/type': 3.0.2(@types/node@22.12.0)
-      '@types/node': 22.12.0
+      '@inquirer/type': 3.0.2(@types/node@22.13.0)
+      '@types/node': 22.13.0
       ansi-escapes: 4.3.2
       yoctocolors-cjs: 2.1.2
 
-  '@inquirer/confirm@5.1.1(@types/node@22.12.0)':
+  '@inquirer/confirm@5.1.1(@types/node@22.13.0)':
     dependencies:
-      '@inquirer/core': 10.1.2(@types/node@22.12.0)
-      '@inquirer/type': 3.0.2(@types/node@22.12.0)
-      '@types/node': 22.12.0
+      '@inquirer/core': 10.1.2(@types/node@22.13.0)
+      '@inquirer/type': 3.0.2(@types/node@22.13.0)
+      '@types/node': 22.13.0
 
-  '@inquirer/core@10.1.2(@types/node@22.12.0)':
+  '@inquirer/core@10.1.2(@types/node@22.13.0)':
     dependencies:
       '@inquirer/figures': 1.0.9
-      '@inquirer/type': 3.0.2(@types/node@22.12.0)
+      '@inquirer/type': 3.0.2(@types/node@22.13.0)
       ansi-escapes: 4.3.2
       cli-width: 4.1.0
       mute-stream: 2.0.0
@@ -4198,82 +4191,82 @@ snapshots:
     transitivePeerDependencies:
       - '@types/node'
 
-  '@inquirer/editor@4.2.1(@types/node@22.12.0)':
+  '@inquirer/editor@4.2.1(@types/node@22.13.0)':
     dependencies:
-      '@inquirer/core': 10.1.2(@types/node@22.12.0)
-      '@inquirer/type': 3.0.2(@types/node@22.12.0)
-      '@types/node': 22.12.0
+      '@inquirer/core': 10.1.2(@types/node@22.13.0)
+      '@inquirer/type': 3.0.2(@types/node@22.13.0)
+      '@types/node': 22.13.0
       external-editor: 3.1.0
 
-  '@inquirer/expand@4.0.4(@types/node@22.12.0)':
+  '@inquirer/expand@4.0.4(@types/node@22.13.0)':
     dependencies:
-      '@inquirer/core': 10.1.2(@types/node@22.12.0)
-      '@inquirer/type': 3.0.2(@types/node@22.12.0)
-      '@types/node': 22.12.0
+      '@inquirer/core': 10.1.2(@types/node@22.13.0)
+      '@inquirer/type': 3.0.2(@types/node@22.13.0)
+      '@types/node': 22.13.0
       yoctocolors-cjs: 2.1.2
 
   '@inquirer/figures@1.0.9': {}
 
-  '@inquirer/input@4.1.1(@types/node@22.12.0)':
+  '@inquirer/input@4.1.1(@types/node@22.13.0)':
     dependencies:
-      '@inquirer/core': 10.1.2(@types/node@22.12.0)
-      '@inquirer/type': 3.0.2(@types/node@22.12.0)
-      '@types/node': 22.12.0
+      '@inquirer/core': 10.1.2(@types/node@22.13.0)
+      '@inquirer/type': 3.0.2(@types/node@22.13.0)
+      '@types/node': 22.13.0
 
-  '@inquirer/number@3.0.4(@types/node@22.12.0)':
+  '@inquirer/number@3.0.4(@types/node@22.13.0)':
     dependencies:
-      '@inquirer/core': 10.1.2(@types/node@22.12.0)
-      '@inquirer/type': 3.0.2(@types/node@22.12.0)
-      '@types/node': 22.12.0
+      '@inquirer/core': 10.1.2(@types/node@22.13.0)
+      '@inquirer/type': 3.0.2(@types/node@22.13.0)
+      '@types/node': 22.13.0
 
-  '@inquirer/password@4.0.4(@types/node@22.12.0)':
+  '@inquirer/password@4.0.4(@types/node@22.13.0)':
     dependencies:
-      '@inquirer/core': 10.1.2(@types/node@22.12.0)
-      '@inquirer/type': 3.0.2(@types/node@22.12.0)
-      '@types/node': 22.12.0
+      '@inquirer/core': 10.1.2(@types/node@22.13.0)
+      '@inquirer/type': 3.0.2(@types/node@22.13.0)
+      '@types/node': 22.13.0
       ansi-escapes: 4.3.2
 
-  '@inquirer/prompts@7.2.1(@types/node@22.12.0)':
-    dependencies:
-      '@inquirer/checkbox': 4.0.4(@types/node@22.12.0)
-      '@inquirer/confirm': 5.1.1(@types/node@22.12.0)
-      '@inquirer/editor': 4.2.1(@types/node@22.12.0)
-      '@inquirer/expand': 4.0.4(@types/node@22.12.0)
-      '@inquirer/input': 4.1.1(@types/node@22.12.0)
-      '@inquirer/number': 3.0.4(@types/node@22.12.0)
-      '@inquirer/password': 4.0.4(@types/node@22.12.0)
-      '@inquirer/rawlist': 4.0.4(@types/node@22.12.0)
-      '@inquirer/search': 3.0.4(@types/node@22.12.0)
-      '@inquirer/select': 4.0.4(@types/node@22.12.0)
-      '@types/node': 22.12.0
-
-  '@inquirer/rawlist@4.0.4(@types/node@22.12.0)':
-    dependencies:
-      '@inquirer/core': 10.1.2(@types/node@22.12.0)
-      '@inquirer/type': 3.0.2(@types/node@22.12.0)
-      '@types/node': 22.12.0
+  '@inquirer/prompts@7.2.1(@types/node@22.13.0)':
+    dependencies:
+      '@inquirer/checkbox': 4.0.4(@types/node@22.13.0)
+      '@inquirer/confirm': 5.1.1(@types/node@22.13.0)
+      '@inquirer/editor': 4.2.1(@types/node@22.13.0)
+      '@inquirer/expand': 4.0.4(@types/node@22.13.0)
+      '@inquirer/input': 4.1.1(@types/node@22.13.0)
+      '@inquirer/number': 3.0.4(@types/node@22.13.0)
+      '@inquirer/password': 4.0.4(@types/node@22.13.0)
+      '@inquirer/rawlist': 4.0.4(@types/node@22.13.0)
+      '@inquirer/search': 3.0.4(@types/node@22.13.0)
+      '@inquirer/select': 4.0.4(@types/node@22.13.0)
+      '@types/node': 22.13.0
+
+  '@inquirer/rawlist@4.0.4(@types/node@22.13.0)':
+    dependencies:
+      '@inquirer/core': 10.1.2(@types/node@22.13.0)
+      '@inquirer/type': 3.0.2(@types/node@22.13.0)
+      '@types/node': 22.13.0
       yoctocolors-cjs: 2.1.2
 
-  '@inquirer/search@3.0.4(@types/node@22.12.0)':
+  '@inquirer/search@3.0.4(@types/node@22.13.0)':
     dependencies:
-      '@inquirer/core': 10.1.2(@types/node@22.12.0)
+      '@inquirer/core': 10.1.2(@types/node@22.13.0)
       '@inquirer/figures': 1.0.9
-      '@inquirer/type': 3.0.2(@types/node@22.12.0)
-      '@types/node': 22.12.0
+      '@inquirer/type': 3.0.2(@types/node@22.13.0)
+      '@types/node': 22.13.0
       yoctocolors-cjs: 2.1.2
 
-  '@inquirer/select@4.0.4(@types/node@22.12.0)':
+  '@inquirer/select@4.0.4(@types/node@22.13.0)':
     dependencies:
-      '@inquirer/core': 10.1.2(@types/node@22.12.0)
+      '@inquirer/core': 10.1.2(@types/node@22.13.0)
       '@inquirer/figures': 1.0.9
-      '@inquirer/type': 3.0.2(@types/node@22.12.0)
-      '@types/node': 22.12.0
+      '@inquirer/type': 3.0.2(@types/node@22.13.0)
+      '@types/node': 22.13.0
       ansi-escapes: 4.3.2
       yoctocolors-cjs: 2.1.2
 
-  '@inquirer/type@3.0.2(@types/node@22.12.0)':
+  '@inquirer/type@3.0.2(@types/node@22.13.0)':
     dependencies:
-      '@types/node': 22.12.0
+      '@types/node': 22.13.0
 
   '@isaacs/cliui@8.0.2':
     dependencies:
@@ -4412,13 +4405,13 @@ snapshots:
       '@pnpm/network.ca-file': 1.0.2
       config-chain: 1.1.13
 
-  '@release-it/conventional-changelog@10.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0)(release-it@18.1.2(@types/node@22.12.0)(typescript@5.7.3))':
+  '@release-it/conventional-changelog@10.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0)(release-it@18.1.2(@types/node@22.13.0)(typescript@5.7.3))':
     dependencies:
       concat-stream: 2.0.0
       conventional-changelog: 6.0.0(conventional-commits-filter@5.0.0)
       conventional-recommended-bump: 10.0.0
       git-semver-tags: 8.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0)
-      release-it: 18.1.2(@types/node@22.12.0)(typescript@5.7.3)
+      release-it: 18.1.2(@types/node@22.13.0)(typescript@5.7.3)
       semver: 7.6.3
     transitivePeerDependencies:
       - conventional-commits-filter
@@ -4515,7 +4508,7 @@ snapshots:
   '@types/glob@8.1.0':
     dependencies:
       '@types/minimatch': 5.1.2
-      '@types/node': 22.12.0
+      '@types/node': 22.13.0
 
   '@types/json-schema@7.0.15': {}
 
@@ -4529,7 +4522,7 @@ snapshots:
 
   '@types/ms@0.7.34': {}
 
-  '@types/node@22.12.0':
+  '@types/node@22.13.0':
     dependencies:
       undici-types: 6.20.0
 
@@ -4559,7 +4552,7 @@ snapshots:
       graphemer: 1.4.0
       ignore: 5.3.2
       natural-compare: 1.4.0
-      ts-api-utils: 2.0.0(typescript@5.7.3)
+      ts-api-utils: 2.0.1(typescript@5.7.3)
       typescript: 5.7.3
     transitivePeerDependencies:
       - supports-color
@@ -4587,7 +4580,7 @@ snapshots:
       '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
       debug: 4.4.0
       eslint: 9.19.0(jiti@2.4.2)
-      ts-api-utils: 2.0.0(typescript@5.7.3)
+      ts-api-utils: 2.0.1(typescript@5.7.3)
       typescript: 5.7.3
     transitivePeerDependencies:
       - supports-color
@@ -4603,7 +4596,7 @@ snapshots:
       is-glob: 4.0.3
       minimatch: 9.0.5
       semver: 7.6.3
-      ts-api-utils: 2.0.0(typescript@5.7.3)
+      ts-api-utils: 2.0.1(typescript@5.7.3)
       typescript: 5.7.3
     transitivePeerDependencies:
       - supports-color
@@ -4624,7 +4617,7 @@ snapshots:
       '@typescript-eslint/types': 8.22.0
       eslint-visitor-keys: 4.2.0
 
-  '@vitest/coverage-v8@3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0))':
+  '@vitest/coverage-v8@3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.13.0))':
     dependencies:
       '@ampproject/remapping': 2.3.0
       '@bcoe/v8-coverage': 1.0.2
@@ -4638,17 +4631,17 @@ snapshots:
       std-env: 3.8.0
       test-exclude: 7.0.1
       tinyrainbow: 2.0.0
-      vitest: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)
+      vitest: 3.0.4(@types/debug@4.1.12)(@types/node@22.13.0)
     transitivePeerDependencies:
       - supports-color
 
-  '@vitest/eslint-plugin@1.1.25(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0))':
+  '@vitest/eslint-plugin@1.1.25(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.13.0))':
     dependencies:
       '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
       eslint: 9.19.0(jiti@2.4.2)
     optionalDependencies:
       typescript: 5.7.3
-      vitest: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)
+      vitest: 3.0.4(@types/debug@4.1.12)(@types/node@22.13.0)
 
   '@vitest/expect@3.0.4':
     dependencies:
@@ -4657,13 +4650,13 @@ snapshots:
       chai: 5.1.2
       tinyrainbow: 2.0.0
 
-  '@vitest/mocker@3.0.4(vite@5.2.11(@types/node@22.12.0))':
+  '@vitest/mocker@3.0.4(vite@5.2.11(@types/node@22.13.0))':
     dependencies:
       '@vitest/spy': 3.0.4
       estree-walker: 3.0.3
       magic-string: 0.30.17
     optionalDependencies:
-      vite: 5.2.11(@types/node@22.12.0)
+      vite: 5.2.11(@types/node@22.13.0)
 
   '@vitest/pretty-format@3.0.4':
     dependencies:
@@ -4799,8 +4792,6 @@ snapshots:
 
   buffer-from@1.1.2: {}
 
-  builtin-modules@4.0.0: {}
-
   bundle-name@4.1.0:
     dependencies:
       run-applescript: 7.0.0
@@ -5822,12 +5813,12 @@ snapshots:
 
   ini@4.1.2: {}
 
-  inquirer@12.3.0(@types/node@22.12.0):
+  inquirer@12.3.0(@types/node@22.13.0):
     dependencies:
-      '@inquirer/core': 10.1.2(@types/node@22.12.0)
-      '@inquirer/prompts': 7.2.1(@types/node@22.12.0)
-      '@inquirer/type': 3.0.2(@types/node@22.12.0)
-      '@types/node': 22.12.0
+      '@inquirer/core': 10.1.2(@types/node@22.13.0)
+      '@inquirer/prompts': 7.2.1(@types/node@22.13.0)
+      '@inquirer/type': 3.0.2(@types/node@22.13.0)
+      '@types/node': 22.13.0
       ansi-escapes: 4.3.2
       mute-stream: 2.0.0
       run-async: 3.0.0
@@ -6015,11 +6006,11 @@ snapshots:
     dependencies:
       json-buffer: 3.0.1
 
-  knip@5.43.6(@types/node@22.12.0)(typescript@5.7.3):
+  knip@5.43.6(@types/node@22.13.0)(typescript@5.7.3):
     dependencies:
       '@nodelib/fs.walk': 3.0.1
       '@snyk/github-codeowners': 1.1.0
-      '@types/node': 22.12.0
+      '@types/node': 22.13.0
       easy-table: 1.2.0
       enhanced-resolve: 5.18.0
       fast-glob: 3.3.3
@@ -6749,7 +6740,7 @@ snapshots:
     dependencies:
       rc: 1.2.8
 
-  release-it@18.1.2(@types/node@22.12.0)(typescript@5.7.3):
+  release-it@18.1.2(@types/node@22.13.0)(typescript@5.7.3):
     dependencies:
       '@iarna/toml': 2.2.5
       '@octokit/rest': 21.0.2
@@ -6760,7 +6751,7 @@ snapshots:
       execa: 9.5.2
       git-url-parse: 16.0.0
       globby: 14.0.2
-      inquirer: 12.3.0(@types/node@22.12.0)
+      inquirer: 12.3.0(@types/node@22.13.0)
       issue-parser: 7.0.1
       lodash: 4.17.21
       mime-types: 2.1.35
@@ -7084,7 +7075,7 @@ snapshots:
 
   tree-kill@1.2.2: {}
 
-  ts-api-utils@2.0.0(typescript@5.7.3):
+  ts-api-utils@2.0.1(typescript@5.7.3):
     dependencies:
       typescript: 5.7.3
 
@@ -7192,13 +7183,13 @@ snapshots:
 
   validate-npm-package-name@6.0.0: {}
 
-  vite-node@3.0.4(@types/node@22.12.0):
+  vite-node@3.0.4(@types/node@22.13.0):
     dependencies:
       cac: 6.7.14
       debug: 4.4.0
       es-module-lexer: 1.6.0
       pathe: 2.0.2
-      vite: 5.2.11(@types/node@22.12.0)
+      vite: 5.2.11(@types/node@22.13.0)
     transitivePeerDependencies:
       - '@types/node'
       - less
@@ -7209,19 +7200,19 @@ snapshots:
       - supports-color
       - terser
 
-  vite@5.2.11(@types/node@22.12.0):
+  vite@5.2.11(@types/node@22.13.0):
     dependencies:
       esbuild: 0.20.2
       postcss: 8.4.38
       rollup: 4.24.2
     optionalDependencies:
-      '@types/node': 22.12.0
+      '@types/node': 22.13.0
       fsevents: 2.3.3
 
-  vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0):
+  vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.13.0):
     dependencies:
       '@vitest/expect': 3.0.4
-      '@vitest/mocker': 3.0.4(vite@5.2.11(@types/node@22.12.0))
+      '@vitest/mocker': 3.0.4(vite@5.2.11(@types/node@22.13.0))
       '@vitest/pretty-format': 3.0.4
       '@vitest/runner': 3.0.4
       '@vitest/snapshot': 3.0.4
@@ -7237,12 +7228,12 @@ snapshots:
       tinyexec: 0.3.2
       tinypool: 1.0.2
       tinyrainbow: 2.0.0
-      vite: 5.2.11(@types/node@22.12.0)
-      vite-node: 3.0.4(@types/node@22.12.0)
+      vite: 5.2.11(@types/node@22.13.0)
+      vite-node: 3.0.4(@types/node@22.13.0)
       why-is-node-running: 2.3.0
     optionalDependencies:
       '@types/debug': 4.1.12
-      '@types/node': 22.12.0
+      '@types/node': 22.13.0
     transitivePeerDependencies:
       - less
       - lightningcss
diff --git a/src/initialization/initializeJavaScript/createJavaScriptConfig.ts b/src/initialization/initializeJavaScript/createJavaScriptConfig.ts
index e64f2c7..9fd68dd 100644
--- a/src/initialization/initializeJavaScript/createJavaScriptConfig.ts
+++ b/src/initialization/initializeJavaScript/createJavaScriptConfig.ts
@@ -1,3 +1,4 @@
+import { RawTypeStatOptions, RenameExtensions } from "../../options/types.js";
 import { ProjectDescription } from "../initializeProject/shared.js";
 import { InitializationCleanups } from "./cleanups.js";
 import { InitializationImports } from "./imports.js";
@@ -17,60 +18,61 @@ export const createJavaScriptConfig = ({
 	project,
 	renames,
 	sourceFiles,
-}: JavaScriptConfigSettings) => {
-	const fileConversion = {
+}: JavaScriptConfigSettings): RawTypeStatOptions | RawTypeStatOptions[] => {
+	const fileConversion: RawTypeStatOptions = {
 		files: {
 			renameExtensions: printRenames(renames),
 		},
 	};
-	const coreConversion = {
+
+	const coreCleanups: RawTypeStatOptions =
+		cleanups === InitializationCleanups.Yes
+			? { cleanups: { suppressTypeErrors: true } }
+			: {};
+
+	const coreConversion: RawTypeStatOptions = {
 		fixes: {
 			incompleteTypes: true,
 			missingProperties: true,
 			noImplicitAny: true,
 		},
-		...(cleanups === InitializationCleanups.Yes
-			? { cleanups: { suppressTypeErrors: true } }
-			: {}),
+		...coreCleanups,
 	};
-	const shared = (include: string[] | undefined) => ({
-		...(include && { include }),
-		project: project.filePath,
-	});
 
-	const allConversions =
-		imports === InitializationImports.Yes
-			? [
-					{
-						...fileConversion,
-						fixes: {
-							importExtensions: true,
-						},
-						...shared(sourceFiles ? [sourceFiles] : undefined),
-					},
-					{
-						...coreConversion,
-						...shared(
-							sourceFiles
-								? renames === InitializationRenames.Auto
-									? renameSourceFilesExtensionsAuto(sourceFiles)
-									: renames === InitializationRenames.TS
-										? renameSourceFilesExtensions(sourceFiles, "ts")
-										: renameSourceFilesExtensions(sourceFiles, "tsx")
-								: undefined,
-						),
-					},
-				]
-			: {
-					...fileConversion,
-					...coreConversion,
-					...shared(sourceFiles ? [sourceFiles] : undefined),
-				};
+	const included = (include: string[] | undefined): RawTypeStatOptions =>
+		include?.length ? { include } : {};
+
+	const sourceFilesInclude: RawTypeStatOptions = included(
+		sourceFiles ? [sourceFiles] : undefined,
+	);
 
-	return allConversions;
+	if (imports === InitializationImports.Yes) {
+		return [
+			{
+				...fileConversion,
+				fixes: {
+					importExtensions: true,
+				},
+				...sourceFilesInclude,
+				projectPath: project.filePath,
+			},
+			{
+				...coreConversion,
+				...included(getRenamedSourceFiles(sourceFiles, renames)),
+				projectPath: project.filePath,
+			},
+		];
+	}
+
+	return {
+		...fileConversion,
+		...coreConversion,
+		...sourceFilesInclude,
+		projectPath: project.filePath,
+	};
 };
 
-const printRenames = (renames: InitializationRenames) => {
+const printRenames = (renames: InitializationRenames): RenameExtensions => {
 	switch (renames) {
 		case InitializationRenames.Auto:
 			return true;
@@ -83,7 +85,23 @@ const printRenames = (renames: InitializationRenames) => {
 	}
 };
 
-function renameSourceFilesExtensions(sourceFiles: string, extension: string) {
+function getRenamedSourceFiles(
+	sourceFiles: string | undefined,
+	renames: InitializationRenames,
+): string[] | undefined {
+	return sourceFiles
+		? renames === InitializationRenames.Auto
+			? renameSourceFilesExtensionsAuto(sourceFiles)
+			: renames === InitializationRenames.TS
+				? renameSourceFilesExtensions(sourceFiles, "ts")
+				: renameSourceFilesExtensions(sourceFiles, "tsx")
+		: undefined;
+}
+
+function renameSourceFilesExtensions(
+	sourceFiles: string,
+	extension: string,
+): string[] {
 	return [
 		sourceFiles
 			.replace(/(\.|\{)js/, `$1${extension}`)
@@ -91,7 +109,7 @@ function renameSourceFilesExtensions(sourceFiles: string, extension: string) {
 	];
 }
 
-function renameSourceFilesExtensionsAuto(sourceFiles: string) {
+function renameSourceFilesExtensionsAuto(sourceFiles: string): string[] {
 	for (const [original, replacement] of [
 		[/\{js,jsx\}/, "{ts,tsx}"],
 		[/\.js$/, ".{ts,tsx}"],
diff --git a/src/runtime/providers/createInstallMissingTypesProvider.ts b/src/runtime/providers/createInstallMissingTypesProvider.ts
index 8e56249..8be37ba 100644
--- a/src/runtime/providers/createInstallMissingTypesProvider.ts
+++ b/src/runtime/providers/createInstallMissingTypesProvider.ts
@@ -1,6 +1,3 @@
-import builtinModules from "builtin-modules";
-
-import { setSubtract } from "../../shared/sets.js";
 import { createFileNamesAndServices } from "../createFileNamesAndServices.js";
 import { createSingleUseProvider } from "../createSingleUseProvider.js";
 import { collectExistingTypingPackages } from "./missingTypes/collectExistingTypingPackages.js";
@@ -8,8 +5,6 @@ import { collectPackageManagerRunner } from "./missingTypes/collectPackageManage
 import { collectReferencedPackageNames } from "./missingTypes/collectReferencedPackageNames.js";
 import { filterTypedPackageNames } from "./missingTypes/filterTypedPackageNames.js";
 
-const uniqueBuiltinModules = new Set(builtinModules);
-
 /**
  * Creates a mutations provider that installs missing types modules.
  * @returns Provider to install missing types modules, if needed.
@@ -36,14 +31,10 @@ export const createInstallMissingTypesProvider = () => {
 
 					// Collect every package name referenced by every file in the project
 					const { services } = createFileNamesAndServices(options);
-					const referencedPackageNames =
-						collectReferencedPackageNames(services);
-
 					// Ignore package names already referenced in package.json or that don't exist in DefinitelyTyped
-					const missingPackageNames = setSubtract(
-						referencedPackageNames,
+					const missingPackageNames = collectReferencedPackageNames(
+						services,
 						new Set(existingPackageNames),
-						uniqueBuiltinModules,
 					);
 					const missingTypedPackageNames = await filterTypedPackageNames(
 						Array.from(missingPackageNames),
diff --git a/src/runtime/providers/missingTypes/collectReferencedPackageNames.ts b/src/runtime/providers/missingTypes/collectReferencedPackageNames.ts
index 77ee33b..ddb9800 100644
--- a/src/runtime/providers/missingTypes/collectReferencedPackageNames.ts
+++ b/src/runtime/providers/missingTypes/collectReferencedPackageNames.ts
@@ -1,12 +1,20 @@
+import { isBuiltin } from "node:module";
 import ts from "typescript";
 
 import { LanguageServices } from "../../../services/language.js";
 
-export const collectReferencedPackageNames = (services: LanguageServices) => {
+export const collectReferencedPackageNames = (
+	services: LanguageServices,
+	ignoredPackages: ReadonlySet<string>,
+) => {
 	const packageNames = new Set<string>();
 
 	for (const sourceFile of services.program.getSourceFiles()) {
-		for (const packageName of collectFileReferencedPackageNames(sourceFile)) {
+		const collected = collectFileReferencedPackageNames(
+			sourceFile,
+			ignoredPackages,
+		);
+		for (const packageName of collected) {
 			packageNames.add(packageName);
 		}
 	}
@@ -14,13 +22,20 @@ export const collectReferencedPackageNames = (services: LanguageServices) => {
 	return packageNames;
 };
 
-const collectFileReferencedPackageNames = (sourceFile: ts.SourceFile) => {
+const collectFileReferencedPackageNames = (
+	sourceFile: ts.SourceFile,
+	ignoredPackages: ReadonlySet<string>,
+) => {
 	const packageNames = new Set<string>();
 
 	const visitNode = (node: ts.Node) => {
 		const packageName = parsePackageNameFromNode(node);
 
-		if (packageName !== undefined) {
+		if (
+			packageName !== undefined &&
+			!isBuiltin(packageName) &&
+			!ignoredPackages.has(packageName)
+		) {
 			packageNames.add(packageName);
 		}
 


Test patch:
diff --git a/src/initialization/initializeJavaScript/createJavaScriptConfig.test.ts b/src/initialization/initializeJavaScript/createJavaScriptConfig.test.ts
index 21effe1..68d78a8 100644
--- a/src/initialization/initializeJavaScript/createJavaScriptConfig.test.ts
+++ b/src/initialization/initializeJavaScript/createJavaScriptConfig.test.ts
@@ -1,12 +1,22 @@
 import { describe, expect, it } from "vitest";
 
+import { RawTypeStatOptions } from "../../options/types.js";
 import { InitializationCleanups } from "./cleanups.js";
-import { createJavaScriptConfig } from "./createJavaScriptConfig.js";
+import {
+	createJavaScriptConfig,
+	JavaScriptConfigSettings,
+} from "./createJavaScriptConfig.js";
 import { InitializationImports } from "./imports.js";
 import { InitializationRenames } from "./renames.js";
 
+interface TestArguments {
+	expected: RawTypeStatOptions | RawTypeStatOptions[];
+	name: string;
+	settings: JavaScriptConfigSettings;
+}
+
 describe("createJavaScriptConfig", () => {
-	it.each([
+	it.each<TestArguments>([
 		{
 			expected: {
 				files: { renameExtensions: "ts" },
@@ -15,7 +25,7 @@ describe("createJavaScriptConfig", () => {
 					missingProperties: true,
 					noImplicitAny: true,
 				},
-				project: "tsconfig.json",
+				projectPath: "tsconfig.json",
 			},
 			name: "Basic",
 			settings: {
@@ -36,7 +46,7 @@ describe("createJavaScriptConfig", () => {
 					missingProperties: true,
 					noImplicitAny: true,
 				},
-				project: "tsconfig.json",
+				projectPath: "tsconfig.json",
 			},
 			name: "Basic with Suppressions",
 			settings: {
@@ -54,7 +64,7 @@ describe("createJavaScriptConfig", () => {
 					files: { renameExtensions: "ts" },
 					fixes: { importExtensions: true },
 					include: ["src/**/*.{js,jsx}"],
-					project: "tsconfig.json",
+					projectPath: "tsconfig.json",
 				},
 				{
 					fixes: {
@@ -63,7 +73,7 @@ describe("createJavaScriptConfig", () => {
 						noImplicitAny: true,
 					},
 					include: ["src/**/*.ts"],
-					project: "tsconfig.json",
+					projectPath: "tsconfig.json",
 				},
 			],
 			name: "TS Renames (multiple sourceFiles extensions)",
@@ -83,7 +93,7 @@ describe("createJavaScriptConfig", () => {
 					files: { renameExtensions: "tsx" },
 					fixes: { importExtensions: true },
 					include: ["src/**/*.{js,jsx}"],
-					project: "tsconfig.json",
+					projectPath: "tsconfig.json",
 				},
 				{
 					fixes: {
@@ -92,7 +102,7 @@ describe("createJavaScriptConfig", () => {
 						noImplicitAny: true,
 					},
 					include: ["src/**/*.tsx"],
-					project: "tsconfig.json",
+					projectPath: "tsconfig.json",
 				},
 			],
 			name: "TSX Renames (multiple sourceFiles extensions)",
@@ -111,7 +121,7 @@ describe("createJavaScriptConfig", () => {
 				{
 					files: { renameExtensions: true },
 					fixes: { importExtensions: true },
-					project: "tsconfig.json",
+					projectPath: "tsconfig.json",
 				},
 				{
 					fixes: {
@@ -119,7 +129,7 @@ describe("createJavaScriptConfig", () => {
 						missingProperties: true,
 						noImplicitAny: true,
 					},
-					project: "tsconfig.json",
+					projectPath: "tsconfig.json",
 				},
 			],
 			name: "Auto Renames (no sourceFiles)",
@@ -138,7 +148,7 @@ describe("createJavaScriptConfig", () => {
 					files: { renameExtensions: true },
 					fixes: { importExtensions: true },
 					include: ["src/**/*.js"],
-					project: "tsconfig.json",
+					projectPath: "tsconfig.json",
 				},
 				{
 					fixes: {
@@ -147,7 +157,7 @@ describe("createJavaScriptConfig", () => {
 						noImplicitAny: true,
 					},
 					include: ["src/**/*.{ts,tsx}"],
-					project: "tsconfig.json",
+					projectPath: "tsconfig.json",
 				},
 			],
 			name: "Auto Renames (single sourceFiles extension)",
@@ -167,7 +177,7 @@ describe("createJavaScriptConfig", () => {
 					files: { renameExtensions: true },
 					fixes: { importExtensions: true },
 					include: ["src/**/*.{js,jsx}"],
-					project: "tsconfig.json",
+					projectPath: "tsconfig.json",
 				},
 				{
 					fixes: {
@@ -176,7 +186,7 @@ describe("createJavaScriptConfig", () => {
 						noImplicitAny: true,
 					},
 					include: ["src/**/*.{ts,tsx}"],
-					project: "tsconfig.json",
+					projectPath: "tsconfig.json",
 				},
 			],
 			name: "Auto Renames (multiple sourceFiles extensions)",
@@ -196,7 +206,7 @@ describe("createJavaScriptConfig", () => {
 					files: { renameExtensions: true },
 					fixes: { importExtensions: true },
 					include: ["src/**/*.js(x)"],
-					project: "tsconfig.json",
+					projectPath: "tsconfig.json",
 				},
 				{
 					fixes: {
@@ -205,7 +215,7 @@ describe("createJavaScriptConfig", () => {
 						noImplicitAny: true,
 					},
 					include: ["src/**/*.ts(x)"],
-					project: "tsconfig.json",
+					projectPath: "tsconfig.json",
 				},
 			],
 			name: "Auto Renames (parenthesized sourceFiles extensions)",
diff --git a/src/runtime/providers/missingTypes/collectReferencedPackageNames.test.ts b/src/runtime/providers/missingTypes/collectReferencedPackageNames.test.ts
new file mode 100644
index 0000000..2fe29eb
--- /dev/null
+++ b/src/runtime/providers/missingTypes/collectReferencedPackageNames.test.ts
@@ -0,0 +1,50 @@
+import { describe, expect, it } from "vitest";
+
+import {
+	TypeStatCompilerOptions,
+	TypeStatOptions,
+} from "../../../options/types.js";
+import { createLanguageServices } from "../../../services/language.js";
+import { collectReferencedPackageNames } from "./collectReferencedPackageNames.js";
+
+describe("collectReferencedPackageNames", () => {
+	it("should return package names", () => {
+		const options: Partial<TypeStatOptions> = {
+			compilerOptions: {} as Readonly<TypeStatCompilerOptions>,
+			package: {
+				directory: process.cwd(),
+				file: "package.json",
+				missingTypes: true,
+			},
+			projectPath: "tsconfig.json",
+		};
+		const services = createLanguageServices(options as TypeStatOptions);
+
+		const packageNames = collectReferencedPackageNames(
+			services,
+			new Set<string>(),
+		);
+
+		expect(Array.from(packageNames)).toStrictEqual(["node", "automutate"]);
+	});
+
+	it("should ignore defined package names", () => {
+		const options: Partial<TypeStatOptions> = {
+			compilerOptions: {} as Readonly<TypeStatCompilerOptions>,
+			package: {
+				directory: process.cwd(),
+				file: "package.json",
+				missingTypes: true,
+			},
+			projectPath: "tsconfig.json",
+		};
+		const services = createLanguageServices(options as TypeStatOptions);
+
+		const packageNames = collectReferencedPackageNames(
+			services,
+			new Set<string>(["automutate"]),
+		);
+
+		expect(Array.from(packageNames)).toStrictEqual(["node"]);
+	});
+});