| 174 | } |
| 175 | |
| 176 | private findRelevantHeader(headers: HeaderInfo[], position: number): HeaderInfo | null { |
| 177 | if (headers.length === 0) return null |
| 178 | |
| 179 | let relevantHeader: HeaderInfo | null = null |
| 180 | |
| 181 | for (const header of headers) { |
| 182 | if (header.position !== undefined && header.position <= position) { |
| 183 | relevantHeader = header |
| 184 | } else { |
| 185 | break |
| 186 | } |
| 187 | } |
| 188 | |
| 189 | return relevantHeader |
| 190 | } |
| 191 | |
| 192 | /** Returns both chunks and cleaned content so header extraction uses aligned positions. */ |
| 193 | private async splitContent( |