इस प्रोजेक्ट के बारे में

jsdiff एक जावास्क्रिप्ट पाठ अंतर लाइब्रेरी है जो Myers O(ND) अंतर एल्गोरिथ्म पर आधारित है। यह कई स्तरों पर पाठ की तुलना के लिए एक व्यापक API प्रदान करती है: - **वर्ण-स्तरीय अंतर** (`diffChars`): प्रत्येक यूनिकोड कोड बिंदु को एक टोकन के रूप में मानता है, वैकल्पिक केस-असंवेदनशील तुलना के साथ। - **शब्द-स्तरीय अंतर** (`diffWords`, `diffWordsWithSpace`): शब्दों और विराम चिह्नों को टोकन के रूप में मानता है, बेहतर गैर-अंग्रेजी शब्द विभाजन के लिए वैकल्पिक `Intl.Segmenter` समर्थन के साथ। - **पंक्ति-स्तरीय अंतर** (`diffLines`): प्रत्येक पंक्ति को एक टोकन के रूप में मानता है, जिसमें रिक्त स्थान को अनदेखा करने, अनुगामी CR वर्णों को संभालने और नई पंक्तियों को अलग टोकन के रूप में मानने के विकल्प शामिल हैं। - **वाक्य-स्तरीय अंतर** (`diffSentences`): वाक्यों और वाक्यों के बीच के रिक्त स्थान को टोकन के रूप में मानता है। - **CSS अंतर** (`diffCss`): CSS टोकन की तुलना करता है। - **JSON अंतर** (`diffJson`): वस्तुओं को स्वरूपित JSON में क्रमबद्ध करता है और पंक्ति-दर-पंक्ति अंतर करता है, वर्णमाला क्रम में गुणों की व्यवस्था के साथ। - **सरणी अंतर** (`diffArrays`): सख्त समानता या कस्टम तुलनित्र के साथ टोकन की सरणियों की तुलना करता है। लाइब्रेरी पैच प्रबंधन क्षमताएं भी प्रदान करती है: - **पैच निर्माण**: `createPatch` और `createTwoFilesPatch` कॉन्फ़िगर करने योग्य संदर्भ पंक्तियों और हेडर विकल्पों के साथ एकीकृत अंतर प्रारूप पैच उत्पन्न करते हैं। - **संरचित पैच**: `structuredPatch` प्रोग्रामेटिक प्रसंस्करण के लिए उपयुक्त हंक वस्तुओं के साथ एक डेटा संरचना लौटाता है। - **पैच अनुप्रयोग**: `applyPatch` और `applyPatches` फ़ज़ फैक्टर समर्थन, स्वचालित पंक्ति अंत रूपांतरण और कस्टम पंक्ति तुलना कॉलबैक के साथ एकीकृत अंतर पैच लागू करते हैं। - **पैच पार्सिंग**: `parsePatch` एकीकृत अंतर प्रारूप (Git-विशिष्ट विस्तारित हेडर सहित नाम बदलने, प्रतिलिपि, निर्माण, विलोपन और बाइनरी फ़ाइलों के लिए) को संरचित वस्तुओं में पार्स करता है। - **पैच उत्क्रमण**: `reversePatch` एक व्युत्क्रम पैच उत्पन्न करता है। - **प्रारूप रूपांतरण**: `convertChangesToXML` और `convertChangesToDMP` परिवर्तन वस्तुओं को XML या Google के diff-match-patch प्रारूप में परिवर्तित करते हैं। सार्वभौमिक विकल्पों में अतुल्यकालिक कॉलबैक मोड, अधिकतम संपादन लंबाई सीमाएं, टाइमआउट समर्थन और प्रति-टोकन परिवर्तन वस्तु ग्रैन्युलैरिटी शामिल हैं। लाइब्रेरी `Diff` वर्ग के माध्यम से कस्टम अंतर व्यवहार का भी समर्थन करती है, जिससे उपयोगकर्ता इनपुट कास्टिंग, टोकनाइज़ेशन, खाली टोकन हटाने, समानता जांच और जुड़ने वाले कार्यों को ओवरराइड कर सकते हैं। लाइब्रेरी npm (`npm install diff`) के माध्यम से उपलब्ध है और ESM और CommonJS दोनों आयातों के साथ-साथ `dist/diff.js` के माध्यम से सीधे ब्राउज़र उपयोग का समर्थन करती है।