このプロジェクトについて

jsdiffはMyers O(ND)差分アルゴリズムに基づくJavaScriptテキスト差分ライブラリです。複数の粒度でテキストを比較するための包括的なAPIを提供します。 - **文字レベルの差分**(`diffChars`):各Unicodeコードポイントをトークンとして扱い、オプションで大文字小文字を区別しない比較が可能です。 - **単語レベルの差分**(`diffWords`、`diffWordsWithSpace`):単語と句読点をトークンとして扱い、オプションで`Intl.Segmenter`をサポートし、英語以外の単語分割を改善します。 - **行レベルの差分**(`diffLines`):各行をトークンとして扱い、空白の無視、末尾のCR文字の処理、改行を別トークンとして扱うオプションがあります。 - **文レベルの差分**(`diffSentences`):文と文間の空白をトークンとして扱います。 - **CSS差分**(`diffCss`):CSSトークンを比較します。 - **JSON差分**(`diffJson`):オブジェクトを整形されたJSONにシリアライズし、プロパティをアルファベット順に並べて行単位で差分を取ります。 - **配列差分**(`diffArrays`):トークンの配列を密等価またはカスタム比較関数で比較します。 このライブラリはパッチ管理機能も提供します。 - **パッチ作成**:`createPatch`と`createTwoFilesPatch`は、コンテキスト行数とヘッダーオプションを設定可能なunified diff形式のパッチを生成します。 - **構造化パッチ**:`structuredPatch`は、プログラムで処理するのに適したhunkオブジェクトを含むデータ構造を返します。 - **パッチ適用**:`applyPatch`と`applyPatches`は、ファズファクター対応、自動改行コード変換、カスタム行比較コールバックを備えたunified diffパッチを適用します。 - **パッチ解析**:`parsePatch`はunified diff形式(リネーム、コピー、作成、削除、バイナリファイル用のGit固有の拡張ヘッダーを含む)を構造化オブジェクトに解析します。 - **パッチ反転**:`reversePatch`は逆パッチを生成します。 - **形式変換**:`convertChangesToXML`と`convertChangesToDMP`は、変更オブジェクトをXMLまたはGoogleのdiff-match-patch形式に変換します。 共通オプションには、非同期コールバックモード、最大編集長の制限、タイムアウト対応、トークンごとの変更オブジェクト粒度があります。また、`Diff`クラスを通じてカスタム差分動作をサポートし、入力のキャスト、トークン化、空トークンの削除、等価判定、結合関数をオーバーライドできます。 このライブラリはnpm(`npm install diff`)で入手でき、ESMとCommonJSの両方のインートに対応し、`dist/diff.js`を介してブラウザで直接使用することもできます。