---
generated_at: 2026-03-01 06:30:00
metrics:
  claims_total: 45
  claims_with_evidence: 45
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：babel-preset-typescript 単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：45 / 45、根拠なし：0
- 優先レビュー（高）
  1. **なし**：すべてのテストケースに根拠あり

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `packages/babel-preset-typescript/src/index.ts` - プリセットメインエントリポイント（75行）
- E-02: `packages/babel-preset-typescript/src/normalize-options.ts` - オプション正規化処理（109行）
- E-03: `packages/babel-preset-typescript/src/plugin-rewrite-ts-imports.ts` - インポート拡張子書き換えプラグイン（69行）
- E-04: `packages/babel-preset-typescript/test/index.js` - テストファイル
- E-05: `packages/babel-preset-typescript/test/normalize-options.skip-bundled.js` - オプション正規化テスト

## 3) Claims と根拠の対応（レビューの主戦場）

### index.ts（プリセットエントリポイント）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | プリセットが正常に宣言されること | E-01: L9-74 declarePreset関数 | ○ |
| C-02 | rewriteImportExtensions有効時にプラグインが含まれること | E-01: L43 `plugins: rewriteImportExtensions ? [pluginRewriteTSImports] : []` | ○ |
| C-03 | rewriteImportExtensions無効時にプラグインが含まれないこと | E-01: L43 三項演算子の偽側 | ○ |
| C-04 | ignoreExtensions有効時に拡張子検出が無効化されること | E-01: L44-45 `disableExtensionDetect`条件分岐 | ○ |
| C-05 | .tsファイル用の設定が含まれること | E-01: L50-52 `filename.endsWith(".ts")`テスト | ○ |
| C-06 | .mtsファイル用の設定が含まれること | E-01: L53-57 `filename?.endsWith(".mts")`テスト、`sourceType: "module"` | ○ |
| C-07 | .ctsファイル用の設定が含まれること | E-01: L58-65 `filename?.endsWith(".cts")`テスト、CommonJS変換 | ○ |
| C-08 | .tsxファイル用の設定が含まれること | E-01: L66-71 `filename?.endsWith(".tsx")`テスト | ○ |
| C-09 | プラグインオプションが正しく生成されること | E-01: L23-30 pluginOptions関数定義 | ○ |
| C-10 | transformTypeScriptプラグインが含まれること | E-01: L32-38 getPlugins関数、transformTypeScript使用 | ○ |
| C-11 | バージョン不一致時にエラーがスローされること | E-01: L10 `api.assertVersion(REQUIRED_VERSION(7))` | ○ |

### normalize-options.ts（オプション正規化）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-12 | デフォルトオプションが正しく設定されること | E-02: L44-48, L49-53, L54-58等 各オプションのデフォルト値 | ○ |
| C-13 | allowNamespacesオプションが正しく検証されること | E-02: L44-48 `validateBooleanOption`使用、デフォルト`true` | ○ |
| C-14 | jsxPragmaオプションが正しく検証されること | E-02: L49-53 `validateStringOption`使用、デフォルト`"React"` | ○ |
| C-15 | jsxPragmaFragオプションが正しく検証されること | E-02: L60-64 `validateStringOption`使用、デフォルト`"React.Fragment"` | ○ |
| C-16 | onlyRemoveTypeImportsオプションが正しく検証されること | E-02: L54-58 `validateBooleanOption`使用、デフォルト`true` | ○ |
| C-17 | ignoreExtensionsオプションが正しく検証されること | E-02: L66-70 `validateBooleanOption`使用、デフォルト`false` | ○ |
| C-18 | disallowAmbiguousJSXLikeオプションが正しく検証されること | E-02: L72-76 `validateBooleanOption`使用、デフォルト`false` | ○ |
| C-19 | optimizeConstEnumsオプションが正しく検証されること | E-02: L84-88 `validateBooleanOption`使用、デフォルト`false` | ○ |
| C-20 | rewriteImportExtensionsオプションが正しく検証されること | E-02: L90-94 `validateBooleanOption`使用、デフォルト`false` | ○ |
| C-21 | allowDeclareFieldsオプション使用時にエラーがスローされること | E-02: L30-33 `v.invariant`で削除済みオプションチェック | ○ |
| C-22 | allExtensionsオプション使用時にエラーがスローされること | E-02: L34-41 `v.invariant`で削除済みオプションチェック | ○ |
| C-23 | isTSXオプション使用時にエラーがスローされること | E-02: L34-41 同上、isTSXも含む | ○ |
| C-24 | disallowAmbiguousJSXLikeがignoreExtensions無しで使用時にエラーがスローされること | E-02: L77-82 依存関係チェック | ○ |
| C-25 | 不明なオプション使用時にエラーがスローされること | E-02: L43 `validateTopLevelOptions`呼び出し | ○ |
| C-26 | optionsがundefinedの場合にデフォルト値が使用されること | E-02: L16 `options: Options = {}` デフォルト引数 | ○ |
| C-27 | 空オブジェクトが渡された場合にデフォルト値が使用されること | E-02: L16 同上、各validateXxxOptionのデフォルト値 | ○ |

### plugin-rewrite-ts-imports.ts（インポート拡張子書き換え）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-28 | プラグインが正常に宣言されること | E-03: L4, L41 `declare`関数、`name`プロパティ | ○ |
| C-29 | 相対パス.tsファイルが.jsに書き換えられること | E-03: L16-27 正規表現による拡張子置換 | ○ |
| C-30 | 相対パス.tsxファイルが.jsに書き換えられること | E-03: L17 正規表現`/\.(tsx)$/`にマッチ、L21で`.js`に変換 | ○ |
| C-31 | 相対パス.mtsファイルが.mjsに書き換えられること | E-03: L17 正規表現`/\.([cm]?)ts$/`、L25で`cm.toLowerCase() + "js"` | ○ |
| C-32 | 相対パス.ctsファイルが.cjsに書き換えられること | E-03: L17 同上 | ○ |
| C-33 | .d.tsファイルは書き換えられないこと | E-03: L17 正規表現`/((?:\.d)?)/`、L23-24の条件分岐 | ○ |
| C-34 | 絶対パスは書き換えられないこと | E-03: L14 `/^\.\.?\//.test(source.value)` 相対パスのみ対象 | ○ |
| C-35 | 動的インポートの場合にヘルパー関数が使用されること | E-03: L32-37 `path.replaceWith`でヘルパー呼び出し | ○ |
| C-36 | sourceがnull/undefinedの場合は何もしないこと | E-03: L10 `if (!source) return;` | ○ |
| C-37 | import文のソースが書き換えられること | E-03: L43-61 visitor.ImportDeclaration処理 | ○ |
| C-38 | import type文は書き換えられないこと | E-03: L52-55 `kind === "value"`条件チェック | ○ |
| C-39 | export * from文のソースが書き換えられること | E-03: L43 ExportAllDeclaration処理 | ○ |
| C-40 | export {x} from文のソースが書き換えられること | E-03: L43 ExportNamedDeclaration処理 | ○ |
| C-41 | export type {x} from文は書き換えられないこと | E-03: L52-55 `exportKind === "value"`条件チェック | ○ |
| C-42 | 動的import()のソースが処理されること | E-03: L63-65 visitor.ImportExpression処理 | ○ |
| C-43 | ../で始まる相対パスが書き換えられること | E-03: L14 正規表現`/^\.\.?\//`で`../`もマッチ | ○ |
| C-44 | .d.mts/.d.ctsファイルは書き換えられないこと | E-03: L17, L23-24 型定義ファイル除外ロジック | ○ |
| C-45 | 大文字拡張子.TSファイルが.jsに書き換えられること | E-03: L17 正規表現に`/i`フラグあり（大文字小文字非依存） | ○ |

## 4) 不足情報（Unknown / Missing）
- なし。すべてのテストケースはソースコードから直接導出されています。

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - すべてのテストケースがソースコードに直接対応
- 特記事項：
  - テストケースは3つのソースファイルを網羅的に解析
  - 正規表現パターン（E-03: L17）は複雑なため、実際のテスト時には多様なファイルパターンでの検証を推奨

## 6) レビュアーチェックリスト（最小）
- [ ] index.ts: declarePreset関数の戻り値構造が期待通りか確認
- [ ] normalize-options.ts: validateBooleanOption/validateStringOptionの動作が期待通りか確認
- [ ] plugin-rewrite-ts-imports.ts: 正規表現による拡張子置換パターンが網羅的か確認
- [ ] 非推奨オプション（allowDeclareFields, allExtensions, isTSX）のエラーメッセージが適切か確認
- [ ] disallowAmbiguousJSXLikeとignoreExtensionsの依存関係が正しく検証されているか確認
