| 97 | |
| 98 | // Normalize answers into a flat key/value map per response |
| 99 | const normalizeAnswerContainer = (container: unknown): unknown => { |
| 100 | if (!container || typeof container !== 'object') return container |
| 101 | const record = container as Record<string, unknown> |
| 102 | const answers = record.answers as unknown[] | undefined |
| 103 | if (Array.isArray(answers)) { |
| 104 | const values = answers.map((entry) => { |
| 105 | if (entry && typeof entry === 'object') { |
| 106 | const er = entry as Record<string, unknown> |
| 107 | if (typeof er.value !== 'undefined') return er.value |
| 108 | } |
| 109 | return entry |
| 110 | }) |
| 111 | return values.length === 1 ? values[0] : values |
| 112 | } |
| 113 | return container |
| 114 | } |
| 115 | |
| 116 | const normalizeAnswers = (answers: unknown): Record<string, unknown> => { |
| 117 | if (!answers || typeof answers !== 'object') return {} |