///|
pub fn parse_baseline(text : String) -> Array[String] raise @json.ParseError {
  let value = @json.parse(text)
  match value {
    Object(map) =>
      match map.get("fingerprints") {
        Some(Array(items)) => {
          let result : Array[String] = []
          for item in items {
            match item {
              String(value) => result.push(value)
              _ => ()
            }
          }
          result
        }
        Some(String(value)) => [value]
        _ => []
      }
    Array(items) => {
      let result : Array[String] = []
      for item in items {
        match item {
          String(value) => result.push(value)
          _ => ()
        }
      }
      result
    }
    _ => []
  }
}

///|
pub fn baseline_json(report : AuditReport) -> String {
  let fingerprints = all_fingerprints(report)
  let items = "[" + fingerprints.map(fn(x) { "\"" + x + "\"" }).join(",") + "]"
  "{\"version\":1,\"fingerprints\":\{items}}"
}