mirror of
https://github.com/agentclientprotocol/claude-agent-acp.git
synced 2026-10-27 04:30:59 +00:00
chore(deps): Bump diff from 8.0.4 to 9.0.0 (#1187)
Bumps [diff](https://github.com/kpdecker/jsdiff) from 8.0.4 to 9.0.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/kpdecker/jsdiff/blob/master/release-notes.md">diff's changelog</a>.</em></p> <blockquote> <h2>9.0.0</h2> <p>(All changes part of PR <a href="https://redirect.github.com/kpdecker/jsdiff/pull/672">#672</a>.)</p> <ul> <li> <p><strong>ES5 support is dropped</strong>. <code>parsePatch</code> now uses <code>TextDecoder</code> and <code>Uint8Array</code>, which are not available in ES5, and TypeScript is now compiled with the "es6" <code>target</code>. From now on, I intend to freely use any features that are deemed "Widely available" by <a href="https://web.dev/baseline">Baseline</a>. Users who need ES5 support should stick to version 8.</p> </li> <li> <p><strong>C-style quoted strings in filename headers are now properly supported</strong>.</p> <p>When the name of either the old or new file in a patch contains "special characters", both GNU <code>diff</code> and Git quote the filename in the patch's headers and escape special characters using the same escape sequences that are used in string literals in C, including octal escapes for all non-ASCII characters. Previously, jsdiff had very little support for this; <code>parsePatch</code> would remove the quotes, and unescape any escaped backslashes, but would not unescape other escape sequences. <code>formatPatch</code>, meanwhile, did not quote or escape special characters at all.</p> <p>Now, <code>parsePatch</code> parses all the possible escape sequences that GNU diff (or Git) ever output, and <code>formatPatch</code> quotes and escapes filenames containing special characters in the same way GNU diff does.</p> </li> <li> <p><strong><code>formatPatch</code> now omits file headers when <code>oldFileName</code> or <code>newFileName</code> in the provided patch object are <code>undefined</code></strong>, regardless of the <code>headerOptions</code> parameter. (Previously, it would treat the absence of <code>oldFileName</code> or <code>newFileName</code> as indicating the filename was the word "undefined" and emit headers <code>--- undefined</code> / <code>+++ undefined</code>.)</p> </li> <li> <p><strong><code>formatPatch</code> no longer outputs trailing tab characters at the end of <code>---</code>/<code>+++</code> headers.</strong></p> <p>Previously, if <code>formatPatch</code> was passed a patch object to serialize that had empty strings for the <code>oldHeader</code> or <code>newHeader</code> property, it would include a trailing tab character after the filename in the <code>---</code> and/or <code>+++</code> file header. Now, this scenario is treated the same as when <code>oldHeader</code>/<code>newHeader</code> is <code>undefined</code> - i.e. the trailing tab is omitted.</p> </li> <li> <p><strong><code>formatPatch</code> no longer mutates its input</strong> when serializing a patch containing a hunk where either the old or new content contained zero lines. (Such a hunk occurs only when the hunk has no context lines and represents a pure insertion or pure deletion, which for instance will occur whenever one of the two files being diffed is completely empty.) Previously <code>formatPatch</code> would provide the correct output but also mutate the <code>oldLines</code> or <code>newLines</code> property on the hunk, changing the meaning of the underlying patch.</p> </li> <li> <p><strong>Git-style patches are now supported by <code>parsePatch</code>, <code>formatPatch</code>, and <code>reversePatch</code></strong>.</p> <p>Patches output by <code>git diff</code> can include some features that are unlike those output by GNU <code>diff</code>, and therefore not handled by an ordinary unified diff format parser. An ordinary diff simply describes the differences between the <em>content</em> of two files, but Git diffs can also indicate, via "extended headers", the creation or deletion of (potentially empty) files, indicate that a file was renamed, and contain information about file mode changes. Furthermore, when these changes appear in a diff in the absence of a content change (e.g. when an empty file is created, or a file is renamed without content changes), the patch will contain no associated <code>---</code>/<code>+++</code> file headers nor any hunks.</p> <p>jsdiff previously did not support parsing Git's extended headers, nor hunkless patches. Now <code>parsePatch</code> parses some of the extended headers, parses hunkless Git patches, and can determine filenames (e.g. from the extended headers) when parsing a patch that includes no <code>---</code> or <code>+++</code> file headers. The additional information conveyed by the extended headers we support is recorded on new fields on the result object returned by <code>parsePatch</code>. See <code>isGit</code> and subsequent properties in the docs in the README.md file.</p> <p><code>formatPatch</code> now outputs extended headers based on these new Git-specific properties, and <code>reversePatch</code> respects them as far as possible (with one unavoidable caveat noted in the README.md file).</p> </li> <li> <p><strong>Unpaired file headers now cause <code>parsePatch</code> to throw</strong>.</p> <p>It remains acceptable to have a patch with no file headers whatsoever (e.g. one that begins with a <code>@@</code> hunk header on the very first line), but a patch with <em>only</em> a <code>---</code> header or only a <code>+++</code> header is now considered an error.</p> </li> <li> <p><strong><code>parsePatch</code> is now more tolerant of "trailing garbage"</strong></p> <p>That is: after a patch, or between files/indexes in a patch, it is now acceptable to have arbitrary lines of "garbage" (so long as they unambiguously have no syntactic meaning - e.g. trailing garbage that leads with a <code>+</code>, <code>-</code>, or <code> </code> and thus is interpretable as part of a hunk still triggers a throw).</p> <p>This means we no longer reject patches output by tools that include extra data in "garbage" lines not understood by generic unified diff parsers. (For example, SVN patches can include "Property changes on:" lines that generic unified diff parsers should discard as garbage; jsdiff previously threw errors when encountering them.)</p> <p>This change brings jsdiff's behaviour more in line with GNU <code>patch</code>, which is highly permissive of "garbage".</p> </li> <li> <p><strong>The <code>oldFileName</code> and <code>newFileName</code> fields of <code>StructuredPatch</code> are now typed as <code>string | undefined</code> instead of <code>string</code></strong>. This type change reflects the (pre-existing) reality that <code>parsePatch</code> can produce patches without filenames (e.g. when parsing a patch that simply contains hunks with no file headers).</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="ed13aca03a"><code>ed13aca</code></a> Update version in package.json and in release notes (<a href="https://redirect.github.com/kpdecker/jsdiff/issues/683">#683</a>)</li> <li><a href="7a49317b50"><code>7a49317</code></a> Bump dependencies again (<a href="https://redirect.github.com/kpdecker/jsdiff/issues/682">#682</a>)</li> <li><a href="afe5aecad1"><code>afe5aec</code></a> Add Git support, and otherwise variously improve & fix parsePatch (and other ...</li> <li><a href="2e46779d88"><code>2e46779</code></a> Fix a typo (<a href="https://redirect.github.com/kpdecker/jsdiff/issues/679">#679</a>)</li> <li>See full diff in <a href="https://github.com/kpdecker/jsdiff/compare/8.0.4...v9.0.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -67,7 +67,7 @@
|
||||
"dependencies": {
|
||||
"@agentclientprotocol/sdk": "1.5.0",
|
||||
"@anthropic-ai/claude-agent-sdk": "0.3.280",
|
||||
"diff": "^8.0.3",
|
||||
"diff": "9.0.0",
|
||||
"zod": "4.6.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
Reference in New Issue
Block a user