{"version":3,"sources":["../index.ts"],"sourcesContent":["import { tokenize } from \"@tonaljs/chord\";\nimport { distance, transpose } from \"@tonaljs/pitch-distance\";\nimport { interval } from \"@tonaljs/pitch-interval\";\nimport { NoteLiteral } from \"@tonaljs/pitch-note\";\nimport { get as romanNumeral } from \"@tonaljs/roman-numeral\";\n\n/**\n * Given a tonic and a chord list expressed with roman numeral notation\n * returns the progression expressed with leadsheet chords symbols notation\n * @example\n * fromRomanNumerals(\"C\", [\"I\", \"IIm7\", \"V7\"]);\n * // => [\"C\", \"Dm7\", \"G7\"]\n */\nexport function fromRomanNumerals(\n  tonic: NoteLiteral,\n  chords: string[],\n): string[] {\n  const romanNumerals = chords.map(romanNumeral);\n  return romanNumerals.map(\n    (rn) => transpose(tonic, interval(rn)) + rn.chordType,\n  );\n}\n\n/**\n * Given a tonic and a chord list with leadsheet symbols notation,\n * return the chord list with roman numeral notation\n * @example\n * toRomanNumerals(\"C\", [\"CMaj7\", \"Dm7\", \"G7\"]);\n * // => [\"IMaj7\", \"IIm7\", \"V7\"]\n */\nexport function toRomanNumerals(\n  tonic: NoteLiteral,\n  chords: string[],\n): string[] {\n  return chords.map((chord) => {\n    const [note, chordType] = tokenize(chord);\n    const intervalName = distance(tonic, note);\n    const roman = romanNumeral(interval(intervalName));\n    return roman.name + chordType;\n  });\n}\n\n/** @deprecated */\nexport default { fromRomanNumerals, toRomanNumerals };\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,UAAU,iBAAiB;AACpC,SAAS,gBAAgB;AAEzB,SAAS,OAAO,oBAAoB;AAS7B,SAAS,kBACd,OACA,QACU;AACV,QAAM,gBAAgB,OAAO,IAAI,YAAY;AAC7C,SAAO,cAAc;AAAA,IACnB,CAAC,OAAO,UAAU,OAAO,SAAS,EAAE,CAAC,IAAI,GAAG;AAAA,EAC9C;AACF;AASO,SAAS,gBACd,OACA,QACU;AACV,SAAO,OAAO,IAAI,CAAC,UAAU;AAC3B,UAAM,CAAC,MAAM,SAAS,IAAI,SAAS,KAAK;AACxC,UAAM,eAAe,SAAS,OAAO,IAAI;AACzC,UAAM,QAAQ,aAAa,SAAS,YAAY,CAAC;AACjD,WAAO,MAAM,OAAO;AAAA,EACtB,CAAC;AACH;AAGA,IAAO,gBAAQ,EAAE,mBAAmB,gBAAgB;","names":[]}