(rawDiff: string)
| 62 | } |
| 63 | |
| 64 | function sanitizeUnifiedDiff(rawDiff: string): string { |
| 65 | const diffFenceMatch = rawDiff.match(/```diff\r?\n([\s\S]*?)\r?\n```/i) |
| 66 | if (diffFenceMatch) { |
| 67 | return diffFenceMatch[1]! |
| 68 | } |
| 69 | |
| 70 | const trimmed = rawDiff.trim() |
| 71 | const fencedMatch = trimmed.match( |
| 72 | /^```(?:[a-zA-Z0-9_-]+)?\r?\n([\s\S]*?)\r?\n```$/, |
| 73 | ) |
| 74 | if (fencedMatch) { |
| 75 | return fencedMatch[1]! |
| 76 | } |
| 77 | |
| 78 | return rawDiff |
| 79 | } |
| 80 | |
| 81 | function patchHasIntendedChanges(diff: string): boolean { |
| 82 | return normalizeLineEndings(diff) |