{"mappings":"AAOA;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;CACpC;AAED;IACE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AIZD,2BAA2B,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,sBAAsB,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAGjD;AAED,qBAAqB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,IAAI,CAIzE;AAED,oBAAoB,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,CAe7E","sources":["src/src/types.ts","src/src/utils.ts","src/src/ags3.ts","src/src/ags4.ts","src/src/index.ts","src/index.ts"],"sourcesContent":[null,null,null,null,null,"/**\n * AGS parser\n *\n * @version 4.0.1\n * @author Charlie LEDUC <contact@pixeliste.fr>\n */\n\nimport type { AGSGroup, AGSMap, AGSColumn } from \"./types\";\nimport ags3 from \"./ags3\";\nimport ags4 from \"./ags4\";\n\nexport type { AGSGroup, AGSMap, AGSColumn };\n\nexport function getVersion(content: string): number {\n  return content.indexOf(\"**PROJ\") > -1 ? 3 : 4;\n}\n\nexport function parse(content: string): AGSGroup[] {\n  const version = content.indexOf(\"**PROJ\") > -1 ? 3 : 4;\n  return version === 3 ? ags3(content) : ags4(content);\n}\n\nexport function find(heading: string, groups: AGSGroup[]): AGSGroup | null {\n  if (!groups.length) return null;\n  const i = groups.findIndex((group) => group.heading === heading);\n  return i > -1 ? groups[i] : null;\n}\n\nexport function map(group: AGSGroup, keys: AGSMap[]): { [key: string]: any }[] {\n  return group.rows.map((row) => {\n    const values: { [key: string]: any } = {};\n    keys.forEach((key) => {\n      const i = group.columns.findIndex((column) => column.name === key.header);\n      let value: any = i > -1 ? row[i] : null;\n      if (key.format === \"percent\") {\n        value = Number.parseFloat(value);\n        values[key.name] = Number.isFinite(value) ? value / 100 : null;\n      } else {\n        values[key.name] = value !== null ? value : key.default ?? null;\n      }\n    });\n    return values;\n  });\n}\n"],"names":[],"version":3,"file":"types.d.ts.map"}