{"version":3,"file":"findModelAnswerDirs.cjs","names":["path","fs"],"sources":["../../src/helpers/findModelAnswerDirs.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport path from 'node:path';\n\nexport const MODEL_ANSWERS_DIRNAME = 'model_answers';\nexport const FAILING_MODEL_ANSWERS_DIRNAME = 'model_answers.fails';\n\n/**\n * Find model answer directories under `<problemDir>/model_answers/`.\n * Returns absolute paths sorted lexicographically.\n */\nexport async function findModelAnswerDirs(problemDir: string): Promise<string[]> {\n  return findAnswerDirs(problemDir, MODEL_ANSWERS_DIRNAME);\n}\n\n/**\n * Find failing model answer directories under `<problemDir>/model_answers.fails/`.\n * Returns absolute paths sorted lexicographically.\n */\nexport async function findFailingModelAnswerDirs(problemDir: string): Promise<string[]> {\n  return findAnswerDirs(problemDir, FAILING_MODEL_ANSWERS_DIRNAME);\n}\n\nasync function findAnswerDirs(problemDir: string, dirname: string): Promise<string[]> {\n  const modelAnswersDir = path.join(problemDir, dirname);\n  let entries;\n  try {\n    entries = await fs.readdir(modelAnswersDir, { withFileTypes: true });\n  } catch (error) {\n    if ((error as NodeJS.ErrnoException).code === 'ENOENT') return [];\n    throw error;\n  }\n  return entries\n    .filter((entry) => entry.isDirectory())\n    .map((entry) => path.join(modelAnswersDir, entry.name))\n    .toSorted();\n}\n"],"mappings":"iKAGA,MAAa,EAAwB,gBACxB,EAAgC,sBAM7C,eAAsB,EAAoB,EAAuC,CAC/E,OAAO,EAAe,EAAY,CAAqB,CACzD,CAMA,eAAsB,EAA2B,EAAuC,CACtF,OAAO,EAAe,EAAY,CAA6B,CACjE,CAEA,eAAe,EAAe,EAAoB,EAAoC,CACpF,IAAM,EAAkBA,EAAAA,QAAK,KAAK,EAAY,CAAO,EACjD,EACJ,GAAI,CACF,EAAU,MAAMC,EAAAA,QAAG,QAAQ,EAAiB,CAAE,cAAe,EAAK,CAAC,CACrE,OAAS,EAAO,CACd,GAAK,EAAgC,OAAS,SAAU,MAAO,CAAC,EAChE,MAAM,CACR,CACA,OAAO,EACJ,OAAQ,GAAU,EAAM,YAAY,CAAC,CAAC,CACtC,IAAK,GAAUD,EAAAA,QAAK,KAAK,EAAiB,EAAM,IAAI,CAAC,CAAC,CACtD,SAAS,CACd"}