# biome nursery/useVueBaseImport: fix changes program behavior

Internal evidence sheet generated by fixhunt. Not an issue text. A human re-verifies, checks the duplicates
below, and writes the upstream report in their own words following the project's AI policy.

- Tool: biome 2.5.15
- Rule: nursery/useVueBaseImport (tool labels the fix: safe, this fix reported as safe)
- Oracle: fix-changes-behavior
- Judge (Nemotron 3 Ultra, advisory): program-bug, severity low. Both the original and fixed programs fail with ERR_MODULE_NOT_FOUND because neither '@vue/shared' nor 'vue' is installed in the execution environment. The oracle's observed difference is caused by the missing third-party package, not by the rewrite itself.
- Program: minimized from 6 to 3 lines

## Reproducer

```js
import { isRef } from "@vue/shared";
Object.defineProperty(obj, "value", {
});
```

## Commands

```sh
node prog.js
bunx @biomejs/biome lint --only=nursery/useVueBaseImport --write prog.js
node prog.js
```

## Observed

```
stderr before: Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@vue/shared' imported from /w/prog.js
stderr after: Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'vue' imported from /w/prog.js
```

## Diff applied by the fix

```diff
--- orig.js	2026-10-22 13:33:47.146352669 -0400
+++ fixed.js	2026-10-22 13:33:49.280388603 -0400
@@ -1,3 +1,3 @@
-import { isRef } from "@vue/shared";
+import { isRef } from "vue";
 Object.defineProperty(obj, "value", {
 });
```

## Why the rewrite is not equivalent (model draft, verify before use)

The original import targets @vue/shared, which contains only utility functions like isRef without Vue’s reactivity system; replacing it with vue imports the full framework where isRef may behave differently or trigger side effects during module evaluation. Since the program does not use any Vue-specific features beyond isRef, but the module resolution now fails because vue is not installed (whereas @vue/shared was), the error shifts from missing @vue/shared to missing vue—indicating the dependency graph changed. Even if both packages existed, importing vue could initialize global state or plugins absent in @vue/shared, altering runtime behavior despite identical source code structure. Thus, the rewrite is not semantics-preserving due to differing module semantics and potential initialization effects.

## Upstream search

Queries: "useVueBaseImport fix", "nursery useVueBaseImport import specifier", "Biome Vue shared to vue migration", "fix changes behavior module resolution"

- duplicate: https://github.com/biomejs/biome/pull/7597
  same rule nursery/useImportExtensions rewriting @vue/shared to vue on an import specifier
- related: https://github.com/biomejs/biome/pull/3274
  same rule useImportExtensions but about importMapping options feature, not the @vue/shared rewrite defect

<details><summary>All hits</summary>

- [tavily] fix(linter): fix aliased paths in `useImportExtensions` by arendjr · Pull Request #7597 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/7597
- [tavily] fix(parse/html): fix disabled vue error message by dyc3 · Pull Request #9879 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/9879
- [tavily] fix(js_analyze): mention which dependency the useExhaustiveDependencies fix adds to the list by Netail · Pull Request #9243 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/9243
- [tavily] fix(css_parser): fix is at unicode range check by xin2017338 · Pull Request #3745 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/3745
- [tavily] fix(useConsistentTestIt): fix panic when applying code fix by dyc3 · Pull Request #9942 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/9942
- [tavily] feat(lint): add nursery rule `useImportsFirst` by terror · Pull Request #9272 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/9272
- [tavily] feat(biome_js_analyze): `useImportExtensions` - add `importMapping` options by drdaemos · Pull Request #3274 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/3274
- [tavily] noUnresolvedImports: False positives for installed packages (zod, clsx types) in standard Next.js setup · Issue #6464 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/6464
- [tavily] feat(biome_css_analyzer): implement noInvalidPositionAtImportRule by t-shiratori · Pull Request #2717 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/2717
- [tavily] 🐛 fix of `lint/nursery/noUnusedImports` does not work correctly · Issue #688 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/688
- [tavily] feat(js_analyze): implement useQwikLoaderLocation by Netail · Pull Request #9809 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/9809
- [github, closed] ☂️  Tailwind class sorting lint rule — https://github.com/biomejs/biome/issues/1274
- [github, closed] 🐛 Unable to find the eslint flat config with no way to specify the config file — https://github.com/biomejs/biome/issues/5353
- [tavily] 🐛 eslint migration find/replace bug · Issue #3079 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/3079
- [tavily] 💅 Linter: `lint --write` is not idempotent on Astro frontmatter, while `lint` reports no issues · Issue #7912 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/7912
- [github, open] 🐛 LSP daemon does not discover npm workspace packages added after startup — https://github.com/biomejs/biome/issues/12085
- [tavily] 🐛 Providing `--config-path` changes cwd for `"extends"` module resolving · Issue #2231 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/2231
- [tavily] 🐛 Unable to migrate ESLint configuration that extends @vercel/style-guide/eslint to Biome · Issue #4528 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/4528
- [tavily] Eslint Migration - Nextjs · Issue #2935 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/2935
- [tavily] 🐛 Multiple false positives reported by biome check · Issue #9478 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/9478
- [tavily] 🐛 Unable to get Biome running in a subfolder of a single-folder workspace · Issue #403 · biomejs/biome-vscode · GitHub — https://github.com/biomejs/biome-vscode/issues/403
- [tavily] 💅 `noUnusedImports` false negative with TypeScript ambient types · Issue #2796 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/2796

</details>
