#!/usr/bin/env node

/**
 * Script Node.js standalone pour extraire le texte d'un PDF avec pdf-parse
 * N'utilise PAS Webpack, donc pas de conflit avec pdfjs-dist
 * 
 * Usage: node extract-pdf-text.js < input.pdf
 * ou: node extract-pdf-text.js /path/to/file.pdf
 * 
 * Retourne JSON: { text: "...", numPages: 3, info: {...} }
 */

const fs = require('fs');
const { PDFParse } = require('pdf-parse');

async function extractText() {
  try {
    // Lire le PDF depuis stdin ou fichier
    let buffer;
    
    if (process.argv[2]) {
      // Fichier passé en argument
      buffer = fs.readFileSync(process.argv[2]);
    } else {
      // Lire depuis stdin
      const chunks = [];
      for await (const chunk of process.stdin) {
        chunks.push(chunk);
      }
      buffer = Buffer.concat(chunks);
    }

    // Extraire le texte avec pdf-parse v2
    // Si on a un fichier, passer le chemin comme url
    const options = process.argv[2] 
      ? { url: process.argv[2] }
      : { buffer };
    
    const parser = new PDFParse(options);
    const data = await parser.getText();

    // Retourner le résultat en JSON
    const result = {
      text: data.text,
      numPages: data.pages?.length || 0,
      info: data.info,
      metadata: data.metadata
    };

    console.log(JSON.stringify(result));
    process.exit(0);
  } catch (error) {
    console.error(JSON.stringify({
      error: error.message,
      stack: error.stack
    }));
    process.exit(1);
  }
}

extractText();
