(targetPath: string)
| 45 | ] |
| 46 | |
| 47 | function hasTraversal(targetPath: string): boolean { |
| 48 | const normalized = path.normalize(targetPath) |
| 49 | return path.isAbsolute(normalized) || normalized.startsWith('..') |
| 50 | } |
| 51 | |
| 52 | function normalizeLineEndings(input: string): string { |
| 53 | return input.replace(/\r\n/g, '\n') |