{"version":3,"file":"impl-DmODS2cY.mjs","names":[],"sources":["../src/commands/policy/eval/impl.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport colors from 'colors';\n\nimport type { LocalContext } from '../../../context.js';\nimport { doneInputValidation } from '../../../lib/cli/done-input-validation.js';\nimport { logger } from '../../../logger.js';\nimport { assertOpaInstalled, runOpa } from '../helpers/index.js';\n\n/** CLI flags for `transcend policy eval`. */\nexport interface EvalCommandFlags {\n  /** OPA package/query to evaluate (e.g. `data.transcend.decision`) */\n  pkg: string;\n  /** Path to a JSON envelope input file */\n  input: string;\n  /** Optional local policy bundle directory */\n  bundle?: string;\n}\n\n/**\n * Evaluate one envelope against a local policy bundle via `opa eval`.\n *\n * @param this - CLI context\n * @param flags - Command flags\n */\nexport async function _eval(\n  this: LocalContext,\n  { pkg, input, bundle }: EvalCommandFlags,\n): Promise<void> {\n  doneInputValidation(this.process.exit);\n\n  assertOpaInstalled();\n\n  const inputPath = path.resolve(input);\n  if (!fs.existsSync(inputPath)) {\n    throw new Error(`Input file not found: ${inputPath}`);\n  }\n\n  const args = ['eval', '--format', 'pretty', '--input', inputPath];\n  if (bundle) {\n    args.push('-b', path.resolve(bundle));\n  }\n  args.push(pkg);\n\n  logger.info(colors.green(`Evaluating ${pkg} with input ${inputPath}...`));\n\n  const exitCode = await runOpa(args);\n  if (exitCode !== 0) {\n    this.process.exit(exitCode);\n  }\n}\n"],"mappings":"0NA0BA,eAAsB,EAEpB,CAAE,MAAK,QAAO,UACC,CACf,EAAoB,KAAK,QAAQ,KAAK,CAEtC,GAAoB,CAEpB,IAAM,EAAY,EAAK,QAAQ,EAAM,CACrC,GAAI,CAAC,EAAG,WAAW,EAAU,CAC3B,MAAU,MAAM,yBAAyB,IAAY,CAGvD,IAAM,EAAO,CAAC,OAAQ,WAAY,SAAU,UAAW,EAAU,CAC7D,GACF,EAAK,KAAK,KAAM,EAAK,QAAQ,EAAO,CAAC,CAEvC,EAAK,KAAK,EAAI,CAEd,EAAO,KAAK,EAAO,MAAM,cAAc,EAAI,cAAc,EAAU,KAAK,CAAC,CAEzE,IAAM,EAAW,MAAM,EAAO,EAAK,CAC/B,IAAa,GACf,KAAK,QAAQ,KAAK,EAAS"}