パッケージの詳細

chrome-extension-test-framework

ibushimaru1.2kMIT1.16.1

Universal testing framework for Chrome extensions - Fast static analysis without browser dependencies

chrome-extension, browser-extension, testing, test-framework

readme

Chrome Extension Test Framework

npm version License: MIT GitHub issues GitHub stars

汎用的なChrome拡張機能テストフレームワーク - ブラウザ不要で高速な静的解析を実行

特徴

  • 🚀 高速実行 - ブラウザ不要で100ms以下での実行
  • 🔍 包括的な検証 - Manifest、セキュリティ、パフォーマンス、構造、多言語対応
  • 📊 複数の出力形式 - コンソール、JSON、HTML、Markdown
  • 🛠️ 拡張可能 - カスタムテストスイートとバリデーターの追加が可能
  • 🌍 汎用性 - あらゆるChrome拡張機能に対応
  • 🔧 CI/CD対応 - 終了コードによる自動化サポート
  • 💡 詳細なエラーメッセージ - エラーコード、修正提案、コード例、ドキュメントリンク付き (v1.2.0+)
  • 🔧 自動修正機能 - 一般的な問題を自動的に修正 (v1.3.0+)
  • 👀 ウォッチモード - ファイル変更時の自動テスト (v1.4.0+)
  • 並列実行 - 複数のテストスイートを並列で実行 (v1.4.0+)
  • 📋 プロファイル機能 - 事前定義された設定セットの利用 (v1.5.0+)
  • 🔄 インクリメンタルテスト - 変更されたファイルのみテスト (v1.5.0+)
  • 🛡️ 高度なセキュリティ分析 - APIキー検出、安全でないストレージ検出 (v1.7.0+)
  • 📈 パフォーマンス分析 - メモリリーク、重い処理、DOM操作の検出 (v1.8.0+)
  • Manifest V3完全対応 - 最新のChrome拡張機能仕様に準拠 (v1.8.0+)

インストール

npmからインストール(推奨)

⚠️ 重要: CLIツールとして使用する場合は、必ずグローバルインストールしてください:

# ✅ グローバルインストール(CLIコマンドとして使用)
npm install -g chrome-extension-test-framework

# 以下は特定の用途向け:

# ローカルインストール(package.jsonのscriptsで使用)
npm install chrome-extension-test-framework

# 開発依存としてインストール(CI/CDで使用)
npm install --save-dev chrome-extension-test-framework

グローバルインストール後の確認:

# インストール確認
cext-test --version

# ヘルプ表示
cext-test --help

GitHubからインストール

# 最新版をインストール
npm install git+https://github.com/ibushimaru/chrome-extension-test-framework.git

# 特定のバージョンをインストール
npm install git+https://github.com/ibushimaru/chrome-extension-test-framework.git#v1.0.1

クイックスタート

サンプル拡張機能でテスト

このフレームワークには、動作を確認できるサンプル拡張機能が含まれています:

# 良い例(すべてのテストに合格)
cext-test samples/good-extension

# 悪い例(多くの問題を検出)
cext-test samples/bad-extension

# 最小限の例
cext-test samples/minimal-extension

# すべてのサンプルをテスト
node samples/test-all.js

詳細はsamples/README.mdを参照してください。

使い方

CLIとして使用

# 現在のディレクトリをテスト
cext-test

# 特定の拡張機能をテスト
cext-test /path/to/extension

# 特定のテストスイートのみ実行
cext-test -s manifest,security

# カスタム出力形式
cext-test -o json,html -d ./reports

# 問題を自動修正
cext-test --fix

# 修正内容をプレビュー(実際には変更しない)
cext-test --fix-dry-run

# ウォッチモード(ファイル変更時に自動実行)
cext-test --watch

# 並列実行(高速化)
cext-test --parallel

# 変更されたファイルのみテスト
cext-test --changed

# プロファイルを使用 (v1.9.0+)
cext-test --profile development  # 開発用(緩いルール)
cext-test --profile production   # 本番用(厳しいルール)  
cext-test --profile quick        # 高速チェック

# 現在の設定を表示 (v1.9.0+)
cext-test --show-config

# 詳細モード
cext-test --verbose

# プログレス表示を無効化
cext-test --no-progress

# ヘルプを表示
cext-test --help

プログラムとして使用

const ChromeExtensionTestFramework = require('chrome-extension-test-framework');

// クイックテスト
ChromeExtensionTestFramework.test('/path/to/extension');

// カスタム設定でテスト
const framework = new ChromeExtensionTestFramework({
    extensionPath: './my-extension',
    output: {
        format: ['console', 'json'],
        directory: './test-results'
    }
});

// ビルトインテストを使用
framework.useBuiltinTests();

// カスタムテストスイートを追加
framework.addSuite({
    name: 'My Custom Tests',
    tests: [
        {
            name: 'Custom validation',
            test: async (config) => {
                // カスタム検証ロジック
            }
        }
    ]
});

// テスト実行
const results = await framework.run();

自動修正機能 (v1.3.0+)

このフレームワークは、一般的な問題を自動的に修正する機能を提供します:

修正可能な問題

manifest.json

  • Manifest V2からV3への移行
  • 不正なバージョン形式の修正
  • 必須フィールドの追加
  • 長すぎる名前・説明の短縮
  • CSPの形式変換とunsafe-eval/unsafe-inlineの削除
  • browser_actionからactionへの変換

ファイル名

  • スペースをアンダースコアに置換
  • 特殊文字の削除
  • 大文字を小文字に変換(README、LICENSE、CHANGELOGを除く)

使用方法

# 修正内容をプレビュー
cext-test --fix-dry-run

# 実際に修正を適用
cext-test --fix

# 詳細な修正内容を表示
cext-test --fix --verbose

修正例

$ cext-test samples/broken-extension --fix

🔧 Running auto-fix on: samples/broken-extension

📊 Auto-fix Summary:
   Total fixes: 11

   By type:
   - UPDATE_FIELD: 1
   - FIX_VERSION: 1
   - TRUNCATE_FIELD: 2
   - MIGRATE_V2_TO_V3: 2
   - RENAME_FILE: 2
   - MIGRATE_CSP: 1
   - REMOVE_UNSAFE: 2

✅ Fixes applied successfully!
💡 Run tests again to verify the fixes

ビルトインテストスイート

1. Manifest Validation (強化版)

  • ✅ Manifest V3準拠チェック
  • ✅ 必須フィールドの存在確認
  • ✅ バージョン形式の検証
  • ✅ アイコンファイルの存在確認
  • ✅ Service Worker設定の検証
  • 🆕 chrome.action API検証(browser_action廃止警告)
  • 🆕 Declarative Net Request API検証
  • 🆕 chrome.scripting API検証(executeScript/insertCSS廃止警告)
  • 🆕 最小Chromeバージョン検証(v88以上推奨)

2. Security Validation (v1.7.0で大幅強化)

  • ✅ CSP(Content Security Policy)の検証
  • ✅ 外部スクリプトの検出
  • ✅ eval()使用の検出
  • ✅ HTTPS強制の確認
  • ✅ 最小権限の原則チェック
  • 🆕 詳細な権限分析 (v1.9.0+)
    • 各権限の具体的な説明を表示
    • 危険度レベルで分類(high/moderate/low)
    • 権限使用の推奨事項を提示
  • 🆕 高度なセキュリティ分析 (SecurityAnalyzer)
    • APIキー・シークレットの検出(30種類以上のパターン)
    • 安全でないストレージパターン検出
    • 危険なJavaScriptパターン検出(eval、Function構造体)
    • XSS脆弱性検出
    • 安全でない通信パターン検出
  • 🆕 Chrome Storage API使用分析 (StorageAnalyzer)
    • localStorage/sessionStorage使用警告
    • chrome.storage APIへの移行提案

3. Performance Validation (v1.8.0で大幅強化)

  • ✅ ファイルサイズの制限チェック
  • ✅ 画像最適化の確認
  • ✅ JavaScript/CSSの最適化
  • ✅ アニメーションパフォーマンス
  • 🆕 包括的なパフォーマンス分析 (PerformanceAnalyzer)
    • メモリリークパターン検出(15種類以上)
    • 重い計算処理検出(ネストループ、再帰)
    • 過剰なDOM操作検出
    • バンドルサイズと最適化分析
    • CSSパフォーマンス問題検出
    • 重複コード検出

4. Structure Validation (v1.6.0で強化)

  • ✅ ディレクトリ構造の検証
  • ✅ ファイル命名規則
  • ✅ 開発用ファイルの除外確認
  • ✅ モジュール構造の検証
  • ✅ 重複ファイルの検出
  • 🆕 ファイル検証の強化
    • FileSizeAnalyzer: 個別ファイル・拡張子別のサイズ分析
    • FileNameValidator: プラットフォーム互換性、特殊文字検出
    • DirectoryAnalyzer: ディレクトリ深度・複雑度分析

5. Localization Validation

  • ✅ 多言語対応の構造確認
  • ✅ messages.jsonの形式検証
  • ✅ ロケール間の一貫性チェック
  • ✅ RTL言語サポートの確認
  • ✅ 国際化APIの使用状況
  • 🆕 ハードコードされたテキストの検出
  • 🆕 プレースホルダー使用の検証

カスタムテストの作成

TestSuiteクラスを使用

const { TestSuite } = require('chrome-extension-test-framework');

class MyTestSuite extends TestSuite {
    constructor(config) {
        super({
            name: 'My Custom Suite',
            description: 'カスタム検証スイート'
        });

        this.setupTests();
    }

    setupTests() {
        this.test('My test', async (config) => {
            // テストロジック
            const manifest = await this.loadManifest(config);
            if (!manifest.my_field) {
                throw new Error('my_field is required');
            }
        });
    }
}

TestCaseクラスを使用

const { TestCase } = require('chrome-extension-test-framework');

// 簡単なアサーション
const myTest = TestCase.assertion(
    'Check custom field',
    async (config) => {
        const manifest = require(path.join(config.extensionPath, 'manifest.json'));
        return manifest.custom_field === 'expected_value';
    }
);

// 期待値の比較
const versionTest = TestCase.expect(
    'Version check',
    async (config) => {
        const manifest = require(path.join(config.extensionPath, 'manifest.json'));
        return manifest.version;
    },
    '1.0.0'
);

設定ファイル

設定の優先順位

設定は以下の順序で適用されます(後のものが前のものを上書き):

  1. デフォルト設定 - フレームワークの組み込み設定
  2. 設定ファイル - .cextrc.jsoncext-test.config.jsなど
  3. プロファイル設定 - --profileオプションで指定
  4. CLIオプション - コマンドライン引数で指定

ファイルフィルタリングの順序

  1. exclude - 完全に除外(スキャンもテストもされない)
  2. ignorePatterns - 特定のテストでは無視(将来実装)
  3. allowedDevFiles - 開発ファイルチェックで許可される

.extensionignore ファイル (v1.16.1+)

拡張機能のルートディレクトリに .extensionignore ファイルを作成することで、プロジェクト固有の除外パターンを指定できます:

# .extensionignore の例
# デザインアセット
design-assets/
mockups/
*.psd
*.ai

# ドキュメント
docs/
*.md

# 開発ツール
.vscode/
.idea/

# カスタムビルドファイル
build-scripts/
*.config.local.js
  • .gitignore と同様の記法をサポート
  • # で始まる行はコメント
  • 空行は無視される
  • 設定ファイルの exclude パターンと併用可能

設定ファイルの作成

cext-test.config.jsまたは.cextrc.jsonを作成:

VS Code での自動補完(v1.11.0+)

.cextrc.jsonでVS Codeの自動補完を有効にするには、ファイルの先頭に以下を追加:

{
  "$schema": "./node_modules/chrome-extension-test-framework/.cextrc.schema.json",
  // 以下、設定内容
}
module.exports = {
    extensionPath: './src',
    output: {
        format: ['console', 'json', 'html'],
        directory: './test-reports',
        filename: 'extension-test'
    },
    validation: {
        manifest: true,
        permissions: true,
        csp: true,
        icons: true,
        locales: true
    },
    // 除外パターン (v1.9.0+)
    exclude: [
        'test/**',
        'docs/**',
        '*.test.js'
    ],
    // console.log使用の閾値設定 (v1.9.0+)
    consoleThresholds: {
        development: 100,   // 開発ファイルでの許容数
        production: 10,     // 本番コードでの許容数
        test: Infinity      // テストファイルでは無制限
    },
    // プロファイル設定 (v1.9.0+)
    profile: 'development',
    rules: [
        // カスタムルール
    ],
    timeout: 30000
};

高度な機能

ウォッチモード (v1.4.0+)

ファイル変更を監視し、自動的にテストを再実行します。

# ウォッチモードで起動
cext-test --watch

# 特定のディレクトリのみ監視
cext-test --watch --watch-dirs src,manifest.json

並列実行 (v1.4.0+)

複数のテストスイートを並列で実行し、テスト時間を短縮します。

# 並列実行(CPUコア数に基づく最適化)
cext-test --parallel

# ワーカー数を指定
cext-test --parallel --max-workers 4

プロファイル機能 (v1.5.0+)

事前定義された設定セットを使用して、特定の観点でテストを実行します。

# セキュリティ重視のテスト
cext-test --profile security-focused

# パフォーマンス重視のテスト
cext-test --profile performance

# 最小限のテスト
cext-test --profile minimal

# CI/CD向け設定
cext-test --profile ci

インクリメンタルテスト (v1.5.0+)

前回のテスト以降に変更されたファイルのみをテストします。

# 変更されたファイルのみテスト
cext-test --changed

# 特定のコミット以降の変更をテスト
cext-test --changed --since HEAD~3

テストシナリオ

フレームワークには40以上の実践的なテストシナリオが含まれています:

# エッジケースのテスト
cext-test test/scenarios/edge-cases/broken-manifest
cext-test test/scenarios/edge-cases/circular-dependencies

# セキュリティ問題のテスト
cext-test test/scenarios/security/api-keys
cext-test test/scenarios/security/eval-usage

# パフォーマンス問題のテスト
cext-test test/scenarios/performance/memory-leaks
cext-test test/scenarios/performance/large-dom

# 国際化のテスト
cext-test test/scenarios/i18n/missing-messages
cext-test test/scenarios/i18n/rtl-support

# Manifest V3互換性
cext-test test/scenarios/manifest-v3/deprecated-apis
cext-test test/scenarios/manifest-v3/modern-apis

CI/CD統合

GitHub Actions

- name: Test Chrome Extension
  run: |
    npm install chrome-extension-test-framework
    npx cext-test ./extension -o json

- name: Test with Security Focus
  run: npx cext-test ./extension --profile security-focused

- name: Run Parallel Tests
  run: npx cext-test ./extension --parallel -o json,html

GitLab CI

test:
  script:
    - npm install chrome-extension-test-framework
    - npx cext-test ./extension -o json,html
  artifacts:
    paths:
      - test-results/

security-test:
  script:
    - npx cext-test ./extension --profile security-focused
  only:
    - merge_requests

API リファレンス

ChromeExtensionTestFramework

Constructor

new ChromeExtensionTestFramework(config)

Methods

  • loadConfig(configPath) - 設定ファイルを読み込み
  • addSuite(suite) - テストスイートを追加
  • useBuiltinTests() - ビルトインテストを使用
  • use(plugin) - プラグインを使用
  • addValidator(name, validator) - カスタムバリデーターを追加
  • run() - テストを実行

TestSuite

Methods

  • test(name, testFn, options) - テストケースを追加
  • skip(name, testFn, options) - スキップするテストを追加
  • before(fn) - beforeAllフックを設定
  • after(fn) - afterAllフックを設定

TestCase

Static Methods

  • TestCase.create(name, test, options) - 基本的なテストケース作成
  • TestCase.assertion(name, assertion, options) - アサーションテスト
  • TestCase.expect(name, getter, expected, options) - 期待値比較テスト
  • TestCase.match(name, getter, pattern, options) - パターンマッチングテスト

トラブルシューティング

Q: ブラウザがインストールされていなくても動作しますか?

A: はい、このフレームワークは静的解析のみを使用するため、ブラウザは不要です。

Q: 実際のDOM操作やchrome.* APIのテストはできますか?

A: いいえ、このフレームワークは静的解析に特化しています。実際のブラウザ環境でのテストには別のツールが必要です。

Q: カスタムルールを追加するには?

A: addValidatorメソッドを使用するか、カスタムTestSuiteクラスを作成してください。

Q: テストが遅い場合は?

A: --parallelオプションを使用して並列実行を有効にするか、--changedオプションで変更されたファイルのみをテストしてください。

Q: 特定の警告を無視したい場合は?

A: .cextignoreファイルを作成し、除外したいファイルやディレクトリを指定してください。

バージョン履歴

v1.12.0 (2025-06-16)

  • 🆕 拡張console検出(すべてのconsoleメソッド、間接使用検出)
  • 🆕 --initコマンド(設定ファイルの初期化)
  • 🆕 --quietフラグ(CI用の静かなモード)
  • 🆕 エラー/警告の視覚的区別改善

v1.11.0 (2025-06-16)

  • 🆕 詳細なエラーメッセージ(console.log検出時のファイルリスト表示)
  • 🆕 開発ファイルサマリー表示(ディレクトリ別の集計)
  • 🆕 設定デバッグモード(--debug-config)
  • 🆕 JSON Schema提供(VS Code自動補完対応)
  • 🆕 設定優先順位のドキュメント化

v1.10.1 (2025-06-16)

  • 🔧 開発ファイル検出バグの修正(ExcludeManagerとの競合を解決)
  • 🔧 console.log閾値チェックの修正
  • 🆕 設定ファイルバリデーション機能
  • 🆕 --show-configの拡張(実効設定の表示)
  • 🆕 allowedDevFilesのglobパターン対応

v1.10.0 (2025-06-16)

  • 🆕 設定ファイルの自動検出機能
  • 🆕 プロファイル設定の詳細表示
  • 🆕 開発ファイル検出ルールの柔軟化(allowedDevFiles設定)
  • 🔧 設定ファイル読み込みの改善

v1.9.0 (2025-06-15)

  • 🆕 PermissionsAnalyzer: 詳細な権限分析と説明
  • 🆕 CodeComplexityAnalyzer: 正確なネストループ検出
  • 🆕 プロファイル機能の改善(意味のある違いを実装)
  • 🆕 --show-configオプション
  • 🆕 console.log使用の閾値設定(設定ファイルから読み込み可能)
  • 🔧 設定ファイルのexcludeパターンが正しく動作するよう修正
  • 🔧 Triple nested loopsの誤検出を修正

v1.8.0 (2025-06-15)

  • 🆕 PerformanceAnalyzer: 包括的なパフォーマンス分析
  • 🆕 Manifest V3完全対応(chrome.action、declarativeNetRequest)
  • 🆕 StorageAnalyzer: 非推奨ストレージAPI検出

v1.7.0 (2025-06-15)

  • 🆕 SecurityAnalyzer: 高度なセキュリティ脆弱性検出
  • 🆕 APIキー・シークレット検出(30種類以上のパターン)

v1.6.0 (2025-06-15)

  • 🆕 FileSizeAnalyzer: 詳細なファイルサイズ分析
  • 🆕 FileNameValidator: プラットフォーム互換性チェック
  • 🆕 DirectoryAnalyzer: ディレクトリ構造分析

v1.5.0 (2025-06-15)

  • 🆕 プロファイル機能
  • 🆕 インクリメンタルテスト
  • 🆕 設定ファイルサポート強化

v1.4.0 (2025-06-15)

  • 🆕 ウォッチモード
  • 🆕 並列実行
  • 🆕 プログレスバー表示

v1.3.0 (2025-06-15)

  • 🆕 自動修正機能(--fix)
  • 🆕 ドライラン機能(--fix-dry-run)

v1.2.0 (2025-06-15)

  • 🆕 詳細なエラーメッセージ
  • 🆕 ErrorHandlerクラス

v1.1.0 (2025-06-15)

  • 🆕 プログレス表示機能
  • 🆕 verboseオプション

v1.0.0 (2025-06-14)

  • 🎉 初回リリース

ライセンス

MIT

貢献

プルリクエストを歓迎します。大きな変更の場合は、まずissueを作成して変更内容を議論してください。

関連リンク

🔍 トラブルシューティング

行番号の不一致問題

大きな行番号(例:ファイルが663行しかないのに1413行目でエラー)が報告される場合は、診断モードを有効にして原因を特定できます:

# 診断モードでテストを実行
CEXT_DIAGNOSTIC=true cext-test your-extension-path

診断モードでは以下の情報が表示されます:

  • ファイルの実際の行数
  • 計算された行番号
  • ファイルのエンコーディング情報
  • 行末文字の種類(CRLF/LF)

考えられる原因:

  1. バンドルされたファイル: WebpackやRollupでバンドルされたファイルは元のソースより大きくなります
  2. ソースマップ: 変換されたコードを分析している可能性があります
  3. ファイルの結合: 複数のファイルが結合されている可能性があります

その他の問題

問題が解決しない場合は、GitHub Issuesで報告してください。

更新履歴

Changelog

All notable changes to Chrome Extension Test Framework will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

[1.16.1] - 2025-06-17

Fixed

  • Issue #59: Success Rate Fix (98% → 100%):

    • Fixed tabs API permission detection - chrome.tabs.query and chrome.tabs.update don't require tabs permission in Manifest V3 for basic usage
    • Reverted incorrect changes that caused false positives for tabs permission
    • Test success rate improved from 98% to 100%
  • Design Assets Exclusion:

    • Added default exclusion patterns for non-runtime directories: design-assets/, docs/, mockups/, etc.
    • Added support for .extensionignore file to allow custom exclusion patterns
    • Prevents security scanner from analyzing non-code files
  • Permission Detection Improvements:

    • More accurate tabs permission detection for Manifest V3
    • Added favicon API detection for chrome.favicon.* methods
    • Better handling of Manifest V3 specific APIs

Added

  • Support for .extensionignore file for custom exclusion patterns
  • More comprehensive default exclusion patterns for development files

[1.16.0] - 2025-06-17

Fixed

  • Issue #55: node_modules Scan Performance (23% of failures):

    • Added fast regex checks in ExcludeManager for instant node_modules detection
    • Implemented early directory exclusion in TestSuite.getAllFiles()
    • Added PerformanceMonitor class for tracking scan metrics
    • Reduced scan time from 45+ seconds to <10 seconds
  • Issue #54: Permission Detection False Positives (15% of failures):

    • Enhanced PermissionDetector to ignore comments and strings
    • Added file exclusion for test/example/documentation files
    • Improved regex patterns with better word boundary detection
    • Added fallback for browsers without lookbehind support
  • Issue #53: Success Rate Improvements (81% → 95% target):

    • Line Number Accuracy: Fixed calculation edge cases in SecurityAnalyzer
    • innerHTML False Positives: Added framework-specific safe pattern detection (React, Vue, Angular)
    • Performance Thresholds: Relaxed limits to realistic values (bundle: 500KB→1MB, memory leak: 5→10)
    • Localization Requirements: Made _locales warnings instead of errors

Added

  • Performance Monitoring: New PerformanceMonitor class with CEXT_PERF=true environment variable
  • Framework Detection: Comprehensive patterns for React, Vue, and Angular code
  • Context Awareness: Better detection of minified files and worker scripts

Changed

  • Performance Thresholds:
    • Bundle size: 500KB → 1MB
    • Memory leak threshold: 5 → 10 occurrences
    • Heavy computation: 1000ms → 2000ms
    • DOM element threshold: 1000 → 2000
  • Localization: Now shows warnings instead of errors for missing default_locale

[1.15.1] - 2025-06-16

Fixed

  • Issue #45: detector.removeNonCodeContent エラーを修正:

    • SecurityTestSuite.js で存在しない removeNonCodeContent メソッドを呼び出していた問題を修正
    • 該当のコードを削除し、ContextAwareDetector の既存機能で対応
    • テストの実行が中断される重大なバグを解消
  • Issue #44: バージョン管理の不整合を修正:

    • index.js のハードコードされたバージョン番号を削除
    • package.json から動的にバージョンを取得するように変更
    • すべてのレポートで一貫したバージョン表示を実現

Added

  • 診断モード: 行番号の不一致をデバッグするための診断機能
    • CEXT_DIAGNOSTIC=true 環境変数で有効化
    • ファイルの行数と報告された行番号の不一致を検出
    • DiagnosticHelper クラスで詳細なファイル情報を提供

Notes

  • Issue #46 について調査:
    • Permission False Positives: activeTab が未使用として報告されるのは正しい動作
    • Line Number Accuracy: 行番号計算ロジックは正確に動作することを確認
    • 大きな行番号が報告される場合は、ファイルの結合やバンドル処理が原因の可能性
    • 診断モードを追加して、ユーザーが問題を特定できるように

[1.15.0] - 2025-06-16

Added

  • Community Engagement: Established collaboration with AI testers (Kirin, Claude Debugger)
  • Project Organization: Implemented issue consolidation strategy (24 → 10 focused issues)
  • Developer Identity: Introduced Kaizen (カイゼン) as the framework's improvement companion

Changed

  • Issue Management: Closed 4 resolved issues (#8, #24, #26, #27) with comprehensive summaries
  • Community Response: Added detailed feedback to tester contributions
  • Documentation: Enhanced issue comments with actionable insights

Achievements

  • Quick mode: Maintained 100% success rate
  • Community: Strong positive feedback from multiple testers
  • Stability: Framework has reached production-ready status

Notes

  • This release focuses on project maturity and community building
  • No breaking changes; all improvements are organizational
  • Special thanks to Kirin and Claude Debugger for their invaluable contributions

[1.14.5] - 2025-06-16

Fixed

  • Issue #35, #34: フレームワーク自身のファイルをスキャンする問題を修正:

    • SecurityAnalyzer が拡張機能のディレクトリ外のファイルをスキャンしないように修正
    • ExcludeManager を SecurityAnalyzer で適切に使用するように改善
    • グローバルインストール時でもフレームワーク自身のファイルが除外されるように
  • Issue #33: scripting権限の誤検出について:

    • PermissionDetector 自体は正しく動作していることを確認
    • 誤検出はユーザーのカスタムテストの実装問題であることが判明
    • フレームワーク側の問題ではないため、ドキュメントでの説明を検討
  • Issue #32: innerHTML検出の行番号精度について:

    • 基本的な行番号検出は正確に動作していることを確認
    • 大きなファイルでも正しく行番号を検出
    • 特定のケースでの問題は、ファイル構造や使用パターンに依存する可能性

[1.14.4] - 2025-06-16

Fixed

  • Issue #32: innerHTML検出の行番号が不正確な問題を修正:
    • ContextAwareDetector でテンプレートリテラルを含む innerHTML が検出されない問題を修正
    • isSafeInnerHTMLAssignment メソッドを改善し、テンプレートリテラル内の変数展開を正しく危険と判定
    • すべての innerHTML 使用箇所が正確な行番号で検出されるように

[1.14.3] - 2025-06-16

Fixed

  • Issue #24: 除外パターンが完全に壊れている問題を修正:

    • StructureTestSuite の開発ファイル検出で除外パターンが無視されていた
    • skipExclude: truefalse に変更し、除外パターンを適用
    • node_modules や設定で除外したディレクトリが正しく除外されるように
  • Issue #31: 存在しないファイル index.js の検出を修正:

    • SecurityTestSuite の HTTPS enforcement テストでファイルパスを正しく処理
    • 拡張機能のディレクトリ外のファイルをスキップ
    • エラーメッセージで相対パスを使用するように改善
  • Issue #26: 5ファイルの拡張機能で552+の誤検出:

    • Issue #24 の修正により、node_modules の誤検出も解決
    • 除外パターンが正しく機能することで、拡張機能のファイルのみをテスト

Notes

  • Issue #33 (存在しない権限 scripting の誤検出) はカスタムテストの問題であることを確認
  • フレームワーク自体は scripting 権限を誤検出していない

[1.14.2] - 2025-06-16

Added

  • ローカルインストール検出機能:
    • LocalInstallChecker クラスを追加
    • ローカルインストール時にグローバルインストールを促す警告を表示
    • CLIコマンド実行時に自動的にインストール状態をチェック
    • postinstall スクリプトでインストール方法を案内

Changed

  • README.md のインストール手順を改善:
    • グローバルインストールの重要性を強調
    • CLIツールとして使用する場合は -g フラグが必須であることを明記
    • インストール後の確認方法を追加

Fixed

  • インストール関連のユーザビリティ向上:
    • ローカルインストールしたユーザーが cext-test コマンドを使えない問題への対処
    • postinstall でローカル/グローバルを自動判定して適切な案内を表示
    • npx や npm scripts での実行方法も案内

[1.14.1] - 2025-06-16

Fixed

  • "detector.analyze is not a function" error (Issue #22):

    • Fixed SecurityTestSuite to use specific detector methods (detectUnsafeInnerHTML, detectLocalStorageUsage)
    • ContextAwareDetector never had an analyze() method - fixed incorrect usage
  • Phantom permission detection accuracy (Issue #23):

    • Improved Chrome API detection regex to match property access patterns
    • Now correctly detects chrome.storage.local usage
    • Fixed false positives for commonly used APIs
    • Added support for await patterns and property access

Added

  • Support for new Chrome APIs:

    • chrome.sidePanel API (Chrome 114+)
    • chrome.offscreen API
    • Proper permission mapping for these new APIs
  • JSON Schema for configuration: Added .cextrc.schema.json for VS Code autocomplete

    • Comprehensive schema covering all configuration options
    • Type validation and descriptions for all fields
    • Enables IntelliSense in VS Code when editing .cextrc.json

Changed

  • Exit codes: Test failures now always return exit code 1 for proper CI/CD integration
    • Previously had conflicting logic that could return 0 on failures
    • Now consistently returns 1 for any test failures
    • --fail-on-warning still works as expected

Notes

  • Console detection already supports all methods (implemented in v1.12.0)
  • --init command already exists (implemented in v1.12.0)
  • --quiet flag already exists (implemented in v1.12.0)
  • Markdown report format already exists (implemented but not documented)
  • SeverityManager already provides ERROR/WARNING/INFO differentiation

[1.14.0] - 2025-06-16

Added

  • ChromePatternRecognizer: Chrome extension-specific pattern recognition (Issue #18)

    • Understands safe Chrome API usage patterns
    • Recognizes file context (background, content script, popup, options)
    • Detects required permissions from code usage
    • Reduces false positives for Chrome extension APIs
  • EnvironmentDetector: Environment-aware detection system

    • Identifies development, test, and production environments
    • Adjusts severity based on environment context
    • Allows console.log in development, strict in production
    • Recognizes conditional debug code
  • SeverityManager: Three-tier severity system (ERROR/WARNING/INFO)

    • Replaces old critical/high/medium/low system
    • Proper exit codes based on severity levels
    • Customizable severity mappings
    • Profile-based severity adjustments
  • ImprovedErrorMessages: Specific and actionable error messages

    • Detailed explanations for each issue type
    • Multiple solution suggestions with code examples
    • Reference links to documentation
    • Context-aware recommendations
  • PermissionDetector: Accurate phantom permission detection

    • Detects actually used Chrome APIs from code
    • Identifies unused declared permissions
    • Suggests missing required permissions
    • Recommends activeTab over broad host permissions

Fixed

  • Exclude patterns not working (Issue #16):

    • Fixed TestSuite configuration to properly pass excludeManager
    • Refined framework path exclusion to only exclude core directories
    • Exclude patterns from .cextrc.json now work correctly
  • Phantom permission detection:

    • Added accurate detection of unused permissions in manifest.json
    • Properly identifies which Chrome APIs actually need permissions
    • Distinguishes between required and optional permissions

Changed

  • ManifestTestSuite now includes phantom permission detection test
  • SecurityAnalyzer integrates with all new detection modules
  • Reporter uses new severity levels for clearer output
  • Better understanding of Chrome extension development patterns

[1.13.0] - 2025-06-16

Added

  • ContextAwareDetector: New intelligent detection system for reducing false positives
    • Ignores innerHTML/localStorage usage in comments and string literals
    • Context-aware severity levels (high/medium/low) based on usage patterns
    • Recognizes safe innerHTML patterns (empty strings, DOMPurify, chrome.i18n)
    • Better detection of sensitive data in localStorage

Fixed

  • Framework scanning its own files (Issues #8, #12):
    • ProgressReporter now correctly displays the extension path being tested
    • Framework properly focuses on target extension directory only
  • False positives in security detection (Issue #9):
    • innerHTML detection now ignores safe patterns and string literals
    • localStorage detection is more context-aware
    • Reduced noise from legitimate usage patterns

Changed

  • SecurityTestSuite now uses ContextAwareDetector for more accurate detection
  • Improved error messages with line numbers and specific suggestions
  • Better handling of comments and string literals in code analysis
  • Error categorization improvements (Issue #10):
    • More specific categorization based on error context
    • Manual category assignments are now respected
    • Better distinction between different error types
  • Output simplification (Issue #11):
    • Non-verbose mode now shows compact progress (dots instead of full test names)
    • Added SummaryReporter for concise test result overview
    • Verbose output improvements with progress bars only in verbose mode

Added

  • Quick mode (Issue #13): Fast testing with only essential checks
    • Run with --quick flag for rapid validation
    • Executes only critical security and manifest tests
    • Perfect for pre-commit hooks and CI/CD pipelines
    • Typically completes in under 1 second
  • EssentialTests module to define which tests are critical
  • Context-aware detection reduces noise and improves accuracy

1.12.3 - 2025-06-16

Fixed

  • Nested node_modules detection: Fixed false positive for nested node_modules directories
    • Now only flags root-level node_modules as problematic
    • Nested directories like icons/node_modules/** are allowed (legitimate build dependencies)
  • Environment-aware console detection: Improved console.log detection with context awareness
    • Different thresholds for service workers (5), content scripts (15), and production code (10)
    • Better file type detection (service-worker, content-script, test, development, production)
    • More helpful suggestions based on file context
    • Service workers get stricter checks due to performance impact
    • Test files and build outputs are ignored

Changed

  • ConsoleAnalyzer now provides environment-specific recommendations
  • StructureTestSuite displays file type labels in Japanese for better clarity
  • Weighted console usage counts shown when different from actual counts

1.12.2 - 2025-06-16

Fixed

  • Scope management: Fixed fundamental issues with test scope
    • Framework no longer tests its own files (lib/, suites/, etc.)
    • Fixed TestSuite.getAllFiles() to exclude framework path
    • Added framework directory exclusion to default patterns in ExcludeManager
  • Config file discovery: Fixed config file not being found in extension directory
    • ConfigLoader now searches extension directory first, then working directory
    • Proper config file path resolution for extension-specific configs
  • Exclude patterns: Fixed exclude patterns not being applied correctly
    • SecurityTestSuite now uses getAllFiles() to respect ExcludeManager
    • All test suites now properly respect exclude configuration
    • Test directories and other excluded patterns now work as expected

Changed

  • Improved error categorization to avoid INTERNAL_ERROR overuse
  • Better separation between framework code and extension code

1.12.1 - 2025-06-16

Fixed

  • node_modules false positive detection: Fixed issue where "icons/node_modules" was incorrectly detected as node_modules directory
    • Now checks complete directory names instead of partial matches
  • Error categories: Fixed incorrect INTERNAL_ERROR usage
    • Development files and console.log errors now correctly use CODE_QUALITY category
    • INTERNAL_ERROR is reserved for actual framework bugs
  • Console detection improvements: Added weighted scoring for different console methods
    • console.error and console.warn have lower weights (0.2, 0.3) than console.log (1.0)
    • More accurate console usage analysis
  • Configuration file loading: Fixed config values not being applied properly
    • ConsoleAnalyzer now correctly receives config thresholds
    • Config debug mode shows custom thresholds
  • Error output simplification: Removed duplicate error information in output
    • Cleaner error messages without redundancy
  • --quiet flag: Fixed quiet mode functionality
    • Now properly suppresses all decorative output during test execution
    • Shows only errors and warnings in condensed format
    • Warning collection system prevents duplicate output

1.12.0 - 2025-06-16

Added

  • Enhanced console detection: Now detects all console methods (table, trace, group, time, etc.)
    • Detects indirect console usage through destructuring
    • Detects aliased console methods
  • --init command: Initialize a new configuration file with sensible defaults
    • Includes VS Code schema support
    • Common exclude patterns pre-configured
    • Console thresholds for different file types
  • --quiet flag: Quiet mode for CI environments
    • Shows only errors and warnings
    • Compact output format
    • Suppresses all decorative output
  • Better error/warning differentiation: Visual improvements for error reporting
    • Color-coded error levels (ERROR, WARNING, CRITICAL)
    • ANSI color support with automatic detection
    • Clearer visual hierarchy

Changed

  • ConsoleAnalyzer now provides more comprehensive console usage detection
  • Error messages now include colored labels for better visibility

1.11.0 - 2025-06-16

Added

  • Detailed error messages for console.log detection: Shows file list with occurrence counts instead of just total count
  • Development file summary view: Shows summary by directory instead of listing hundreds of files
    • Top directories with file counts
    • More user-friendly output for large projects
  • Configuration debug mode (--debug-config): Shows detailed configuration loading process
    • File discovery and exclusion process
    • Configuration priority and final values
    • Test execution plan
  • JSON Schema for configuration files: Enables VS Code autocomplete and validation
    • Add "$schema": "./node_modules/chrome-extension-test-framework/.cextrc.schema.json" to .cextrc.json
  • Configuration priority documentation: Clear explanation of configuration precedence in README

Changed

  • Error categorization improvements:
    • Added CODE_QUALITY category for non-framework errors
    • INTERNAL_ERROR now only used for actual framework bugs
    • console.log and development file errors now use CODE_QUALITY category
  • Improved error messages: More helpful and actionable error descriptions

Fixed

  • Error categories now properly distinguish between code quality issues and internal framework errors

1.10.1 - 2025-06-16

Fixed

  • Development file detection bug: Fixed issue where development files were filtered out by ExcludeManager before validation
    • Now uses skipExclude option to get all files for development file check
    • Added more default development files (TODO.txt, TODO.md, NOTES.txt, NOTES.md, .vscode, .idea, .swp, .tmp)
  • Console.log threshold logic: Fixed profile skipTests check to use correct path (config.profile.skipTests)
  • GitHub Actions error: Fixed compatibility issues

Added

  • Config file validation: New ConfigValidator class validates configuration files
    • Type checking for all config fields
    • Conflict detection between settings
    • Helpful error messages and warnings
  • Enhanced --show-config: Now shows effective configuration after profile application
    • Shows which settings come from defaults, config file, profile, or CLI
    • Displays profile-specific settings clearly
  • Glob pattern support for allowedDevFiles: Can now use patterns like test/**/*.spec.js
    • Simple glob matching implementation in TestSuite base class
    • Supports *, ?, and [] patterns

Changed

  • Improved error messages when config validation fails
  • Better documentation of configuration precedence

1.10.0 - 2025-06-16

Added

  • Automatic config file detection: Automatically finds and loads config files (.cextrc.json, cext-test.config.js, etc.)
  • Enhanced profile display: Shows detailed profile settings when using --profile option
    • Shows number of skipped tests
    • Shows warning level configuration
    • Shows fail-on-warning/error settings
    • Shows max file size limits
  • Flexible development file detection: New allowedDevFiles config option
    • Allows specifying development files that should be allowed in the extension
    • Helpful for extensions that intentionally include package.json or other dev files
    • Shows helpful hints when package.json is detected

Changed

  • Config file is now automatically detected without requiring --config flag
  • Profile differences are now more clearly visible during test execution
  • Development file detection provides better guidance for intentional inclusions

Fixed

  • Config file loading now properly shows which file was found
  • Profile settings are now clearly displayed to show the differences between profiles

1.9.0 - 2025-06-15

Added

  • PermissionsAnalyzer: Detailed permission analysis with specific descriptions
    • Shows exactly which permissions are sensitive and why
    • Provides recommendations for permission usage
    • Categorizes permissions by risk level (high, moderate, low)
  • CodeComplexityAnalyzer: More accurate code complexity detection
    • Fixed false positives in nested loop detection
    • Analyzes cyclomatic complexity
    • Detects overly long functions
  • Enhanced Profile System: Meaningful differences between profiles
    • development: Skips certain tests, relaxed rules
    • production: Strict validation, all tests enabled
    • quick: Fast subset of tests for pre-commit hooks
  • --show-config option: Display current configuration and exclude patterns
  • Console usage thresholds: Configurable thresholds for console.log usage
    • Can be set via config file (consoleThresholds)
    • Different thresholds for development, production, and test files
    • Integrated with ConsoleAnalyzer for detailed analysis

Changed

  • ExcludeManager now properly uses extensionPath as base for relative paths
  • FileNameValidator and DirectoryAnalyzer now use ExcludeManager for consistency
  • Profile system now includes skipTests functionality
  • Improved permissions validation with detailed explanations

Fixed

  • Configuration file (.cextrc.json) exclude patterns now work correctly
  • Fixed false positives in triple nested loops detection
  • Profile functionality now has meaningful differences
  • Exclude patterns from config files are properly merged with defaults

1.8.0 - 2025-06-15

Added

  • PerformanceAnalyzer: Comprehensive performance issue detection
    • Memory leak pattern detection (event listeners, timers, growing arrays)
    • Heavy computation detection (nested loops, expensive algorithms)
    • Excessive DOM manipulation detection
    • Bundle size and optimization analysis
    • CSS performance issue detection
    • Duplicate code detection
  • Enhanced Performance Tests: Deep integration with PerformanceAnalyzer
    • Memory leak prevention with detailed pattern analysis
    • JavaScript optimization with bundle and computation checks
    • Service worker efficiency analysis
    • Loading time optimization with bundle size checks
    • Animation performance with DOM manipulation detection
  • Performance Test Scenarios: Real-world performance problem examples
    • memory-leak: Various memory leak patterns
    • heavy-computation: Blocking main thread operations
    • large-bundle: Unnecessarily large JavaScript bundles
    • excessive-dom: Creating excessive DOM elements

Changed

  • PerformanceTestSuite now uses PerformanceAnalyzer for deeper analysis
  • Improved detection of performance bottlenecks
  • Enhanced error reporting with specific performance issue details

Fixed

  • Regular expression escaping in CSS property detection

1.7.0 - 2025-06-15

Added

  • SecurityAnalyzer: Advanced security vulnerability detection
    • Detects hardcoded API keys, secrets, tokens, and passwords
    • Identifies insecure storage patterns (localStorage, chrome.storage with sensitive data)
    • Finds dangerous JavaScript patterns (eval, Function constructor, setTimeout with strings)
    • Detects XSS vulnerabilities (innerHTML, outerHTML with user input)
    • Identifies insecure communication patterns (HTTP URLs, unvalidated postMessage)
    • Provides detailed reports with line numbers and severity levels
  • Enhanced Security Tests: Three new security validation tests
    • Advanced security analysis with comprehensive vulnerability scanning
    • Hardcoded secrets detection with multiple pattern matching
    • Secure data storage validation
  • Security Test Scenarios: Real-world security vulnerability examples
    • xss-vulnerable: XSS attack vectors demonstration
    • eval-usage: Dangerous JavaScript patterns
    • insecure-storage: Insecure data storage practices
    • unsafe-permissions: Overly broad permissions

Changed

  • SecurityTestSuite now performs deeper security analysis
  • Improved detection patterns for various security vulnerabilities
  • Enhanced error reporting with more specific security issue details

Fixed

  • Security validation now properly detects chrome.storage misuse
  • Improved API key and secret detection patterns

1.6.0 - 2025-06-15

Added

  • FileNameValidator: Comprehensive file name validation with platform compatibility checks
    • Detects special characters, spaces, and other problematic patterns
    • Platform-specific compatibility checks (Windows, macOS, Linux)
    • Automatic fix suggestions for problematic file names
    • Batch validation for entire directories
  • DirectoryAnalyzer: Advanced directory structure analysis
    • Measures directory depth and complexity metrics
    • Detects overly deep nesting (configurable threshold)
    • Path length validation for Windows compatibility
    • Identifies directories with too many files
    • Generates structure visualization and improvement suggestions
  • Test Scenarios Framework: Real-world testing scenarios
    • Edge case scenarios for testing framework improvements
    • Automated scenario runner with expected results comparison
    • Framework improvement suggestions based on test results
  • Enhanced StructureTestSuite: Improved file structure validation
    • Integrated FileNameValidator for comprehensive naming checks
    • Added directory depth analysis test
    • Better error reporting with severity levels

Changed

  • StructureTestSuite now provides more detailed file naming issue reports
  • Improved file organization suggestions based on directory analysis

Fixed

  • Fixed special character detection to exclude file extensions
  • Improved error messages for file naming issues

1.5.0 - 2025-06-15

Added

  • Exclude patterns functionality with --exclude flag
  • Include patterns functionality with --include flag
  • Warning level configuration system
  • Profile support with built-in profiles (development, production, ci, quick)
  • Custom profile creation capability
  • Known issues tracking with reasons
  • Context-based exclusions (development/production/ci)
  • Incremental testing with --changed and --since-last-run flags
  • Test cache management with --clear-cache flag
  • Git-based change detection for incremental testing
  • Hash-based file change detection
  • Time-based change detection
  • Automatic test suite selection based on changed files
  • ExcludeManager class for advanced pattern matching
  • WarningManager class for flexible warning configuration
  • ProfileManager class for test profiles
  • IncrementalTester class for smart test execution
  • Advanced configuration example (examples/config-advanced.js)

Changed

  • CLI now supports exclude/include patterns and profiles
  • Test execution can be filtered based on file changes
  • Warning severity can be customized per warning type
  • Configuration files now support advanced exclude patterns
  • Improved test execution efficiency with incremental testing

Fixed

  • Pattern matching for complex glob patterns
  • Warning level inheritance in test files

1.4.0 - 2025-06-15

Added

  • Watch mode functionality with --watch or -w flag
  • FileWatcher class for intelligent file change detection
  • Automatic test re-runs on file changes
  • Debouncing to prevent excessive test runs
  • Intelligent file type detection
  • Watch mode statistics on exit (Ctrl+C)
  • Ignore patterns for common non-extension files
  • Parallel test execution with --parallel flag
  • ParallelRunner class for managing worker processes
  • Worker thread-based test distribution
  • Automatic worker count optimization based on CPU cores
  • Worker utilization statistics
  • Parallel execution progress reporting
  • Event-driven architecture for file watching and parallel execution

Changed

  • CLI now supports --watch and --parallel options
  • Enhanced help documentation with new options
  • Test execution can now run in sequential or parallel mode
  • Improved performance for multi-suite test runs

Fixed

  • Reporter error handling for undefined errors array

1.3.0 - 2025-06-15

Added

  • Automatic fix functionality with --fix and --fix-dry-run flags
  • AutoFixer class for programmatic fixing
  • Manifest.json auto-fixes:
    • Manifest V2 to V3 migration
    • Invalid version format correction
    • Required field addition
    • Name/description length truncation
    • CSP format conversion and unsafe-eval/unsafe-inline removal
    • browser_action to action conversion
  • File name auto-fixes:
    • Space to underscore conversion
    • Special character removal
    • Uppercase to lowercase conversion (except README, LICENSE, CHANGELOG)
  • Dry-run mode for previewing fixes
  • Verbose output for detailed fix information
  • Comprehensive auto-fix test suite
  • Broken extension sample for testing

Changed

  • CLI now supports --fix and --fix-dry-run options
  • Enhanced help documentation

1.2.0 - 2025-06-15

Added

  • Enhanced error messages with detailed information
  • Custom error classes (BaseError, ValidationError, SecurityError, StructureError, PerformanceError)
  • Error codes system for consistent error identification
  • Rich error metadata including:
    • Severity levels (low, medium, high, critical)
    • Contextual details
    • Fix suggestions
    • Code examples
    • Documentation links
  • ERROR_CODES.md comprehensive reference
  • Error formatting in all reporters
  • Test script for enhanced errors demonstration

Changed

  • All test suites now use custom error classes
  • TestRunner propagates error metadata
  • Reporters display formatted error messages
  • Progress reporter shows error details during execution

Fixed

  • CI workflow to exclude Node 14.x from macOS tests (arm64 incompatibility)

1.1.0 - 2025-06-15

Added

  • Progress display during test execution
  • --verbose flag for detailed progress information with progress bars
  • --no-progress flag to disable progress display
  • Real-time test status updates
  • Suite completion statistics
  • Total execution time display
  • ProgressReporter class for managing progress output

Changed

  • TestRunner now integrates with ProgressReporter
  • Improved console output formatting
  • Better visual feedback during test runs

1.0.1 - 2025-06-15

Added

  • npm package publication support
  • Improved package.json configuration for npm registry
  • .npmignore file for cleaner package distribution
  • Updated README with npm installation instructions
  • Sample Chrome extensions for testing and demonstration
  • CI/CD workflow improvements

Fixed

  • Fixed regex error in LocalizationTestSuite
  • Fixed CLI permissions issue in postinstall script
  • Fixed test framework to use sample extensions instead of parent directory

Changed

  • Updated version to 1.0.1
  • Enhanced documentation for npm users

1.0.0 - 2024-06-14

Added

  • Initial release of Chrome Extension Test Framework
  • Core testing engine with TestRunner, TestSuite, and TestCase classes
  • Built-in test suites:
    • Manifest validation (Manifest V3 compliance)
    • Security validation (CSP, eval detection, XSS prevention)
    • Performance validation (file sizes, memory leaks, optimization)
    • Structure validation (file organization, naming conventions)
    • Localization validation (i18n support, message consistency)
  • Multiple report formats:
    • Console output with colored indicators
    • JSON format for programmatic processing
    • HTML format with visual dashboard
    • Markdown format for documentation
  • CLI tool with comprehensive options:
    • Test specific directories
    • Choose output formats
    • Select specific test suites
    • Configuration file support
  • Programmatic API for integration
  • Custom test suite support
  • Plugin system for extensibility
  • Zero runtime dependencies
  • Cross-platform support (Windows, macOS, Linux)
  • Node.js version support (v12+)

Security

  • Static analysis only - no code execution
  • No external network requests
  • Read-only file system access by default

Performance

  • Sub-100ms execution time for typical extensions
  • Minimal memory footprint (~50MB)
  • No browser dependencies