diff --git a/apps/api/src/modules/templates/extract.ts b/apps/api/src/modules/templates/extract.ts index f9092f3..cb3c9f4 100644 --- a/apps/api/src/modules/templates/extract.ts +++ b/apps/api/src/modules/templates/extract.ts @@ -3,13 +3,13 @@ import { mkdtemp, readFile, readdir, rm, writeFile } from 'node:fs/promises'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; import { promisify } from 'node:util'; +import { createRequire } from 'node:module'; import mammoth from 'mammoth'; -// pdf-parse имеет auto-test mode в index.js, ломающий ESM. Импортируем функцию напрямую из lib. -// @ts-expect-error пакет без declaration на этом пути -import pdfParseRaw from 'pdf-parse/lib/pdf-parse.js'; -const pdfParse: (buf: Buffer) => Promise<{ text: string; numpages: number }> = - pdfParseRaw as unknown as (buf: Buffer) => Promise<{ text: string; numpages: number }>; +// pdf-parse — CJS-only. Прямой ESM-импорт ломается из-за auto-test mode в index.js. +// createRequire даёт CJS loader, в котором module.parent определён → test-mode не активен. +const require = createRequire(import.meta.url); +const pdfParse: (buf: Buffer) => Promise<{ text: string; numpages: number }> = require('pdf-parse'); const execFileP = promisify(execFile);