{"version":3,"file":"prompt_template.cjs","names":[],"sources":["../../src/schema/prompt_template.ts"],"sourcesContent":["import { Document } from \"@langchain/core/documents\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\n\n/**\n * Formats a document using a given prompt template.\n *\n * @async\n * @param {Document} document - The document to format.\n * @param {BasePromptTemplate} prompt - The prompt template to use for formatting.\n * @returns {Promise<string>} A Promise that resolves to the formatted document as a string.\n * @throws {Error} If the document is missing required metadata variables specified in the prompt template.\n */\nexport const formatDocument = async (\n  document: Document,\n  prompt: BasePromptTemplate\n): Promise<string> => {\n  const baseInfo = {\n    pageContent: document.pageContent,\n    ...document.metadata,\n  };\n  const variables = new Set(prompt.inputVariables);\n  const requiredMetadata = new Set(\n    prompt.inputVariables\n      .map((v) => (v !== \"pageContent\" ? v : null))\n      .filter((v) => v !== null)\n  );\n  const missingMetadata = [];\n  for (const variable of variables) {\n    if (!(variable in baseInfo) && variable !== \"pageContent\") {\n      missingMetadata.push(variable);\n    }\n  }\n  if (missingMetadata.length) {\n    throw new Error(\n      `Document prompt requires documents to have metadata variables: ${JSON.stringify(\n        requiredMetadata\n      )}. Received document with missing metadata: ${JSON.stringify(\n        missingMetadata\n      )}`\n    );\n  }\n  return prompt.format(baseInfo);\n};\n"],"mappings":";;;;;;;;;;;;AAYA,MAAa,iBAAiB,OAC5B,UACA,WACoB;CACpB,MAAM,WAAW;EACf,aAAa,SAAS;EACtB,GAAG,SAAS;EACb;CACD,MAAM,YAAY,IAAI,IAAI,OAAO,eAAe;CAChD,MAAM,mBAAmB,IAAI,IAC3B,OAAO,eACJ,KAAK,MAAO,MAAM,gBAAgB,IAAI,KAAM,CAC5C,QAAQ,MAAM,MAAM,KAAK,CAC7B;CACD,MAAM,kBAAkB,EAAE;AAC1B,MAAK,MAAM,YAAY,UACrB,KAAI,EAAE,YAAY,aAAa,aAAa,cAC1C,iBAAgB,KAAK,SAAS;AAGlC,KAAI,gBAAgB,OAClB,OAAM,IAAI,MACR,kEAAkE,KAAK,UACrE,iBACD,CAAC,6CAA6C,KAAK,UAClD,gBACD,GACF;AAEH,QAAO,OAAO,OAAO,SAAS"}