{"_id":"songsheet","_rev":"31-8a485408528be6f949ac62764e0a7762","name":"songsheet","dist-tags":{"latest":"7.8.0"},"versions":{"1.0.0":{"name":"songsheet","version":"1.0.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@1.0.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"bb050b1ac6154a1cce30209700afd0d0e85ff229","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-1.0.0.tgz","integrity":"sha512-tYiRNWOcEmJiKWjg8MwwTanKzON8zHFT1Sduty5gbGYR4kAWCr5XDqPqUKqRGs9dPGMiVmxsfajKxLBugXmWpg==","signatures":[{"sig":"MEYCIQC50a2Q+u4uCzyggTMQKdTDzHenRF+NQjF64cmoV2nBTAIhAOBC27A9K9FlYGQ2nRhuvgMH+ivNW2Txo4A6kJvL2nOx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"bb050b1ac6154a1cce30209700afd0d0e85ff229","gitHead":"cd7563299a8ec6ee8d4af5488c4d703b3be2ed11","scripts":{"test":"node test.js"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"3.9.5","description":"A songsheet interpreter","_nodeVersion":"6.2.2","dependencies":{"tokenizer":"^1.1.2"},"devDependencies":{"tape":"^4.5.1","fs-promise":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet-1.0.0.tgz_1475184813338_0.6602723505347967","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"2.0.0":{"name":"songsheet","version":"2.0.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@2.0.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"3dbe62f3594516598dd3c49e156a2e1e59b3caaa","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-2.0.0.tgz","integrity":"sha512-q0UYATsmPrUE2144aS+bt0tyW6AkGE/ZvJgJ8L6FPUrEZQE7nQXLKB8XFdf8w0Hdw53qzeFACRsWw7NY7Vg6qg==","signatures":[{"sig":"MEQCIG3NiDivkE2ccJPJX82fUYShJeIV3bjy3TUrXuhKyxsCAiAchZTJY7h9LcEv9bJFQvEhTyVQ0vKBtjQD6fPBX9Paag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"3dbe62f3594516598dd3c49e156a2e1e59b3caaa","gitHead":"22be7db624f940d7240e32461bb89290a3b6196a","scripts":{"test":"node test.js"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"3.10.3","description":"A songsheet interpreter","_nodeVersion":"6.7.0","dependencies":{"tokenizer":"^1.1.2"},"devDependencies":{"tape":"^4.5.1","fs-promise":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet-2.0.0.tgz_1475300931050_0.46997959073632956","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"2.1.0":{"name":"songsheet","version":"2.1.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@2.1.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"6c58d4d0cbdefcdc6dde9079214489a9febf2fd4","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-2.1.0.tgz","integrity":"sha512-prhTKZwQp7IR+yaORZsXkJkuU/e+aA7XSLLph98sxCPENmozA0hhvjN4NNoNwZZkPlxJtiV9l7JttFEhCS0ODQ==","signatures":[{"sig":"MEYCIQDbxTfZsRq9HNUA9pajBSwopSIygUjI7TlljQNkt5I+ZQIhAObbmfcdqZrAICnukviyJ4dYAvrIM1su3bf66rorVwqc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"6c58d4d0cbdefcdc6dde9079214489a9febf2fd4","gitHead":"a895cafe7077436c5d110c0cee259f5c5ee60f0d","scripts":{"test":"node test.js"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"3.10.3","description":"A songsheet interpreter","_nodeVersion":"6.7.0","dependencies":{"tokenizer":"^1.1.2"},"devDependencies":{"tape":"^4.5.1","fs-promise":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet-2.1.0.tgz_1475306607306_0.43518864712677896","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"3.0.0":{"name":"songsheet","version":"3.0.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@3.0.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"6d242eb16a8cc11f3c7979ce2d0c8b2ebfd20a23","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-3.0.0.tgz","integrity":"sha512-Wxr2KSmm4H6Y7R2sEPbQZV8TjCK9mios6woAX6F2VaEQCELrtH6o9e+ETpEQBhNT/DyZEJanVqUGN8p2aOZuiw==","signatures":[{"sig":"MEQCIEIiZYV++H7A1V+Kwnj5WuwIymt50lidDGyFmMUQrmS0AiBeh00gM2Z6bIYgzu4l+NfCdpQ1xyDATwNlk+NhJvI46A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"6d242eb16a8cc11f3c7979ce2d0c8b2ebfd20a23","gitHead":"5bdb151c992fe1fb22800e5dafb95d0f5ba3022f","scripts":{"test":"node test.js"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"3.10.3","description":"A songsheet interpreter","_nodeVersion":"6.7.0","dependencies":{"immutable":"^3.8.1","tokenizer":"^1.1.2","react-addons-pure-render-mixin":"^15.3.2"},"devDependencies":{"tape":"^4.5.1","fs-promise":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet-3.0.0.tgz_1475343985289_0.38716191705316305","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"3.1.0":{"name":"songsheet","version":"3.1.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@3.1.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"7417ed80ceecbfbae4dc7fbd55f0eb1e698ae8ee","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-3.1.0.tgz","integrity":"sha512-VrEyn9d1lviEhE/tp1qnIGOTXV6pMK2xaeT8GgnEbGaLjxzfFcl9ZX+unsbJ4/fX2KxJTn4Ky9cRHq6QMCYrPw==","signatures":[{"sig":"MEUCIQC/+gGcaql59jmDQSjxHnSESysiuDqXHz5MFDhmfbaVFQIgWKYi8VnmiUCdrJz/fgxqi+Dc3vZpQ7PIuoXt4hT7gKQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"7417ed80ceecbfbae4dc7fbd55f0eb1e698ae8ee","gitHead":"bc1f17152d878b570b93f5969233ef62a08ae5bb","scripts":{"test":"node test.js"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"3.10.3","description":"A songsheet interpreter","_nodeVersion":"6.7.0","dependencies":{"immutable":"^3.8.1","tokenizer":"^1.1.2","react-addons-pure-render-mixin":"^15.3.2"},"devDependencies":{"tape":"^4.5.1","fs-promise":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet-3.1.0.tgz_1475344911942_0.6473325684200972","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"3.2.0":{"name":"songsheet","version":"3.2.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@3.2.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"cf2068030243f1b06cc1479bcd01653fa4d3f29c","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-3.2.0.tgz","integrity":"sha512-2g2/7vAlJlODXD+JoiFyB0w6WjPYGoBzY0pp1WwffO7Z0+1exhvM4953bE7kIdlGjRyq2jcSquBQjjdQlmlEOQ==","signatures":[{"sig":"MEUCIBAhsgCJeA2Ttv/QbfNPZ6IOh6yTSx6qBTSkwq/Y6v33AiEA4oB6OTaCMSY6hgznQCD9BNIf3UOFZGGgmgZg0CS9RJs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"cf2068030243f1b06cc1479bcd01653fa4d3f29c","gitHead":"b19733e83f43572576d630dc96eb45ba0ef1a471","scripts":{"test":"node test.js"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"3.10.3","description":"A songsheet interpreter","_nodeVersion":"6.7.0","dependencies":{"immutable":"^3.8.1","tokenizer":"^1.1.2","react-addons-pure-render-mixin":"^15.3.2"},"devDependencies":{"tape":"^4.5.1","fs-promise":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet-3.2.0.tgz_1475353461599_0.47046130895614624","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"3.2.1":{"name":"songsheet","version":"3.2.1","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@3.2.1","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"5dcd7fc552e0e467333efca57260a2a2f708c76a","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-3.2.1.tgz","integrity":"sha512-WITd+y9i0+XPAQiQsJTpIucUleVAKk2z8yBJl26Tlbv2Y47lkbQQZ6yGxNCC8hzqdX97/o/4oijF6HAXnaTHgA==","signatures":[{"sig":"MEUCIHjnf2tmsbV6TgadB+QnjcwZWySKUZf0Txk34sqUYhB+AiEA5IGtmmlj0tmhaPFG5f2tOJkZEKRAe5BHqMOfoaVTsog=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"5dcd7fc552e0e467333efca57260a2a2f708c76a","gitHead":"fadf94261dac842ddfdb79611489a05b6e3aabf6","scripts":{"test":"node test.js"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"3.10.3","description":"A songsheet interpreter","_nodeVersion":"6.7.0","dependencies":{"immutable":"^3.8.1","tokenizer":"^1.1.2","react-addons-pure-render-mixin":"^15.3.2"},"devDependencies":{"tape":"^4.5.1","fs-promise":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet-3.2.1.tgz_1475356350931_0.2351808703970164","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"3.2.2":{"name":"songsheet","version":"3.2.2","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@3.2.2","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"9292fe6de4213ed8230bd02e8a94df34fe72297e","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-3.2.2.tgz","integrity":"sha512-AveH/U3fhzYNwTRHa3+9KnupA9jbuge7hF3efvY975kxRwUMJq9RD+KkVhenqi0NdxM+/IGj1yB3Y6d1v6WFvw==","signatures":[{"sig":"MEUCIBExsgEcH0BdIuwYPWRzhwmFA+6u82SSlClCTE0r7pkRAiEA11dWm8asRCiND47XmIiWZzdPsVcrKC3ri52gIqOq1rs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"9292fe6de4213ed8230bd02e8a94df34fe72297e","gitHead":"485f51817e73fdd86bbd965412faa82210eb1109","scripts":{"test":"node test.js"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"3.10.3","description":"A songsheet interpreter","_nodeVersion":"6.7.0","dependencies":{"immutable":"^3.8.1","tokenizer":"^1.1.2","react-addons-pure-render-mixin":"^15.3.2"},"devDependencies":{"tape":"^4.5.1","fs-promise":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet-3.2.2.tgz_1475510846473_0.6770258222240955","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"3.3.0":{"name":"songsheet","version":"3.3.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@3.3.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"6589d2a7f01f92381b29252d1265c53b2fdf02a9","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-3.3.0.tgz","integrity":"sha512-wWZeweHxKBsy8OSGcwRpmwhePSde2niZxdzlGqb8e+F9wiZom85ga+oPuuEsHxVP83p1/Wg3qgypBClOYZ9e+g==","signatures":[{"sig":"MEUCIQCQTje/ozBsbkmPFuhtVOxERwjAD4vP+BNbX5SeqkBxpgIgVqWpTYVjB6z42KNpLvZd4okqkVZNwagwwJcBNQ8z5aU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"6589d2a7f01f92381b29252d1265c53b2fdf02a9","gitHead":"3d370780c3dcb7e7cb4d0843679c42fb9fb01b7f","scripts":{"test":"node test.js"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"3.10.3","description":"A songsheet interpreter","_nodeVersion":"6.7.0","dependencies":{"immutable":"^3.8.1","tokenizer":"^1.1.2","react-addons-pure-render-mixin":"^15.3.2"},"devDependencies":{"tape":"^4.5.1","fs-promise":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet-3.3.0.tgz_1475615825167_0.9867082573473454","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"3.4.0":{"name":"songsheet","version":"3.4.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@3.4.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"2bc992b7f9fede065e5b885e42b39fd4f3e08087","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-3.4.0.tgz","integrity":"sha512-gTawgFnB6hOn/n5Jp/plPyP22G+NlZCyzOrGWOFBW1+nVD0aiQX1l/eES9fO9lPd+Hc8p6MqUTyvKKeL+bkD3g==","signatures":[{"sig":"MEQCIEf3i83kYYAVxSeF9srzMKiU72qrdnQMBjCg6Zt2rIBdAiAS7KspOfakEqpNUoFD2WKDqWNtByW9+hsqW8NtoXr8mQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"2bc992b7f9fede065e5b885e42b39fd4f3e08087","gitHead":"7be03de8c03bdb6df3198f193674b78ffdd58c71","scripts":{"test":"node test.js"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"3.10.3","description":"A songsheet interpreter","_nodeVersion":"6.7.0","dependencies":{"immutable":"^3.8.1","tokenizer":"^1.1.2","react-addons-pure-render-mixin":"^15.3.2"},"devDependencies":{"tape":"^4.5.1","fs-promise":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet-3.4.0.tgz_1476562356381_0.3198337072972208","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"3.5.0":{"name":"songsheet","version":"3.5.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@3.5.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"2036f3789a126df6cba9efd689797a1bbcea0b83","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-3.5.0.tgz","integrity":"sha512-Y0+ZK6yroKICkT75pCSLyyBJn5MMb5cOHTONkT/eN/E3cHa+IGrQ7o5ODOkFF4vvcGDREdjZdHUj0LljoK5qnw==","signatures":[{"sig":"MEUCIEVOFMj3MrI99KJPXyuIJ4JB5Bb55b/94C39Mc2o34wSAiEA3fxKjD7oxUxSCO22voRh0oAqx5lAl9/EWn+lKIv8m/4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"2036f3789a126df6cba9efd689797a1bbcea0b83","gitHead":"7834833d2ca4c6fd3d44d56dc262806cc8e2efb7","scripts":{"test":"node test.js"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"3.10.3","description":"A songsheet interpreter","_nodeVersion":"6.7.0","dependencies":{"immutable":"^3.8.1","tokenizer":"^1.1.2","react-addons-pure-render-mixin":"^15.3.2"},"devDependencies":{"tape":"^4.5.1","fs-promise":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet-3.5.0.tgz_1476563092740_0.18420804222114384","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"4.0.0":{"name":"songsheet","version":"4.0.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@4.0.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"d316b316705e4736ff2e2c39afadcbc0145465e2","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-4.0.0.tgz","integrity":"sha512-dAu26O9AFZ9fZIy13KlCXVQ78mzbyS6YiA8oCXgZh88XqbdSnfIFY++6GB1kFPdn82x4ACNeTr/E7h/XAtSnSg==","signatures":[{"sig":"MEUCIQCIohnpWh7azOXisy3LEzchvIGgiolPAok+AtcQkrZJJgIge2mkg8WyA/ZA5gVARZgFkJ5Jgjk+QlRJlEepxVsrb/A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"d316b316705e4736ff2e2c39afadcbc0145465e2","gitHead":"9a7f978ffee2a34daf8b696a632bc121d7f41ea0","scripts":{"test":"node test.js"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"3.10.3","description":"A songsheet interpreter","_nodeVersion":"6.7.0","dependencies":{"immutable":"^3.8.1","tokenizer":"^1.1.2","react-addons-pure-render-mixin":"^15.3.2"},"devDependencies":{"tape":"^4.5.1","fs-promise":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet-4.0.0.tgz_1476590115995_0.1324282109271735","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"5.0.0":{"name":"songsheet","version":"5.0.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@5.0.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"097160f8d1ddef7ff3d8aa3843567022e3cde6c8","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-5.0.0.tgz","integrity":"sha512-QGZlNTD0jk83IiAr9CbNeovoWIBrQuumqYoIMMjydQySeeWGgEbsjeJeG7FuFtgCn68EwO30ywCYa2JJa7RrEQ==","signatures":[{"sig":"MEQCIFsrvl4O2MXQNhhwSKWA/06km7Do9XIRkMX/ST0aGrDvAiBw8BT+Z5d7zKhLAY/h39WJVZLOClpzST0YgXGQDvYkSA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"097160f8d1ddef7ff3d8aa3843567022e3cde6c8","gitHead":"ec71de02425cedfd8cb075443f88d2e386d45f2f","scripts":{"test":"node test.js"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"3.10.3","description":"A songsheet interpreter","_nodeVersion":"6.7.0","dependencies":{"immutable":"^3.8.1","tokenizer":"^1.1.2","react-addons-pure-render-mixin":"^15.3.2"},"devDependencies":{"tape":"^4.5.1","fs-promise":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet-5.0.0.tgz_1476671387495_0.5648808078840375","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"5.1.0":{"name":"songsheet","version":"5.1.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@5.1.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"a0d6abc375f75ee00d0c676dcbd07f19dd119b3a","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-5.1.0.tgz","integrity":"sha512-z/Aofs414QoCY36a/DYeMPxOxcKqp0BCdnmgeEOk929u2IFRX6C7zNiuzZN9E3E++WBdrUMBaJ4scvBkVCZZUw==","signatures":[{"sig":"MEUCIE9oeT7E4hObadraEV/R0qRqnVEcuWwWKd4bUXgXq5N8AiEAs1gutKJj3TVLIqi3bf6XM5flJFdP0XzjqOXB1ExnHY4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"a0d6abc375f75ee00d0c676dcbd07f19dd119b3a","gitHead":"1698c166527cba53608810bf83db7fb32fee342b","scripts":{"test":"node test.js"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"3.10.3","description":"A songsheet interpreter","_nodeVersion":"6.7.0","dependencies":{"immutable":"^3.8.1","tokenizer":"^1.1.2","react-addons-pure-render-mixin":"^15.3.2"},"devDependencies":{"tape":"^4.5.1","fs-promise":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet-5.1.0.tgz_1476672561618_0.5009474400430918","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"6.0.0":{"name":"songsheet","version":"6.0.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@6.0.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"a49357570f4398295e50a99fcfbb00f7cfd68397","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-6.0.0.tgz","fileCount":18,"integrity":"sha512-waSzNxMLWKSQX14CQWIm0th2hSl5mKOhoQT4wZLWqr+yKvjLISZO72uC7TCYG+5j0pBXOyU5QMP1bwozi47ahw==","signatures":[{"sig":"MEYCIQCfsCJzGSSaJYxffbbY0g+2ZX0DtGRmoi01q1QcoUUZ2QIhAL8TMj4K4jB8dyi1gG3FJehpOPgZfeWK2nwT/vqykkq1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58074},"type":"module","types":"./index.d.ts","exports":"./index.js","gitHead":"29c8275cff07d12c8c503def2929d304ce5d04f8","scripts":{"test":"vitest run"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"11.7.0","description":"A songsheet interpreter","directories":{},"_nodeVersion":"23.6.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet_6.0.0_1771521081023_0.8303394200693837","host":"s3://npm-registry-packages-npm-production"}},"6.1.0":{"name":"songsheet","version":"6.1.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@6.1.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"e6a7588e158982ff345f69006f04290db473ed28","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-6.1.0.tgz","fileCount":18,"integrity":"sha512-+/kBkSVxVa8TSbTfg2S/X5LEDf3JGiGS91gTdZMy7GIFmNiPzrgltQi473zqwMIoSVCrnejD7i4GlsArcKsT7g==","signatures":[{"sig":"MEYCIQCVjKTup/HLercBksmMi1qAedRVDIw/f6PV5uxm3BIWSwIhAK0zvJr/jk7yFNRJ+GFFKu/36BbspehbFDYm7dNOnBzN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65366},"type":"module","types":"./index.d.ts","exports":"./index.js","gitHead":"731b293c7330a7b4bd4cefe45448c8167dd771ee","scripts":{"test":"vitest run"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"11.7.0","description":"A songsheet interpreter","directories":{},"_nodeVersion":"23.6.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet_6.1.0_1771524091769_0.24689821868260964","host":"s3://npm-registry-packages-npm-production"}},"6.2.0":{"name":"songsheet","version":"6.2.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@6.2.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"81d221efebfe9c3830fadc3e722b6fc6cfbad88a","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-6.2.0.tgz","fileCount":20,"integrity":"sha512-ZCZzX7xviQboZ2DuvxNQEEiX3CXzouPMD5X8Itw+mm20MvHJO2xg9g7AHXwTRFTv6SglgUNSHUS31P81G92myg==","signatures":[{"sig":"MEQCHyLQGNiEYcgMG9tosk6WQ6c29o9HMa6eqGTxMC/9aAICIQCcH9Zh4Whns9+Rk9ZHg9OSRkXHmwLt44R3QZEhQZGzhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94681},"type":"module","types":"./index.d.ts","exports":"./index.js","gitHead":"5825dd7d5b42813c96a7c7cc50b13bd3ba3024e2","scripts":{"test":"vitest run"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"11.7.0","description":"A songsheet interpreter","directories":{},"_nodeVersion":"23.6.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet_6.2.0_1771608676031_0.010032253209774966","host":"s3://npm-registry-packages-npm-production"}},"6.3.0":{"name":"songsheet","version":"6.3.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@6.3.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"d22ea7556de56050a729400df1e99df94dfa35f0","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-6.3.0.tgz","fileCount":20,"integrity":"sha512-9CeSSIfJSaALX6QW1QZYVaRmmQIoszJrdThMls1D4xxM3ADUQbdQcUdn1AqiJ+EkeDglUKfCq2wG9ZFGQicBVQ==","signatures":[{"sig":"MEUCIQCqFVUZA30bbSjzx1/Y+6NGHLbF2d/B0M8ArpWbzNq6vQIgXXC00bSaF0XXSW7Cj1xzNElWOhqMTyP9zDt5L+m8UGk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96616},"type":"module","types":"./index.d.ts","exports":"./index.js","gitHead":"bc55fb480a4c9bc22b114b58ba1e8690414362c6","scripts":{"test":"vitest run"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"11.7.0","description":"A songsheet interpreter","directories":{},"_nodeVersion":"23.6.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet_6.3.0_1771635631549_0.9724640463282961","host":"s3://npm-registry-packages-npm-production"}},"6.4.0":{"name":"songsheet","version":"6.4.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@6.4.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"74f3e897ae5703994d38b98886f0ebfffb6c1511","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-6.4.0.tgz","fileCount":19,"integrity":"sha512-ecfJwqT3xZGFyCvNc8PV560lrzBOsaYBD1O29fo4z+qKzWzLnfBn4VFpTqSARNErTHqNPp0JF2NXz4T6mwZm7w==","signatures":[{"sig":"MEUCIQDkqqgMb4VLTwTA7VMQjQXfncSgKLeBeY47RCcgLuTbswIgSU2Ti/bNFdTchxcerCFrFGh1Wq4ARhAObG6zIaix7Yc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96009},"type":"module","types":"./index.d.ts","exports":"./index.js","gitHead":"bc55fb480a4c9bc22b114b58ba1e8690414362c6","scripts":{"test":"vitest run"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"11.6.2","description":"A songsheet interpreter","directories":{},"_nodeVersion":"25.1.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet_6.4.0_1771677582151_0.5324429122170324","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"name":"songsheet","version":"7.0.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@7.0.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"34ff02d6d5e8ded18dcc1dcd58c3d7e7a12905ff","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-7.0.0.tgz","fileCount":22,"integrity":"sha512-i+paWcI1KOK2ehkOQ5EmAaq8JynGXWnwyv6nB8JEml9BI34TuG4f7yOvLSYu3v3pV0q6NMGAeebE/HPVLKZabQ==","signatures":[{"sig":"MEQCIECIDkW4W3SBdBnXrLDmxbniXg8AZBPhvZt1D5qvuCYqAiAWf3DWOWPLBW+Rb3pOrmAaNmmh9AItve+eg6udg+PmpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109675},"type":"module","types":"./index.d.ts","exports":"./index.js","gitHead":"1780bb4b7f0ca7eacadf7ea24f1339cb7debcb6c","scripts":{"test":"vitest run"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"11.7.0","description":"A songsheet interpreter","directories":{},"_nodeVersion":"23.6.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet_7.0.0_1772198809759_0.31097868731791545","host":"s3://npm-registry-packages-npm-production"}},"7.1.0":{"name":"songsheet","version":"7.1.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@7.1.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"417096c4c8029277c5dc58e0b46674d059eba786","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-7.1.0.tgz","fileCount":22,"integrity":"sha512-//DSj4H7pAXPUWMbwPOgMV/pDHLvOFGGNQKhuLtBJJVW2dxRDxl1xjMUaFZm4kIjKbjLf7mNC6v8IoGJbweCSA==","signatures":[{"sig":"MEQCIGqmyujpsA14sGsVnldvFwWfJ/roT1XNwLWoX/AGjqhOAiADRw25vGg+lxPDxbZFQEQzzwmWghNHHKY7LKd0MapwPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111311},"type":"module","types":"./index.d.ts","exports":"./index.js","gitHead":"34a0cd0749b68404a107ef2b27687c1fe9c534f1","scripts":{"test":"vitest run"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"11.7.0","description":"A songsheet interpreter","directories":{},"_nodeVersion":"23.6.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet_7.1.0_1772200121699_0.8647786003026434","host":"s3://npm-registry-packages-npm-production"}},"7.2.0":{"name":"songsheet","version":"7.2.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@7.2.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"f13d47b4a185131ccb1fa3126e620a57662a3acb","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-7.2.0.tgz","fileCount":22,"integrity":"sha512-gTarm9K3fXaiT9FcEHNvM7Cp05yIubD/ZP/U2Sil0eCEn7w2cIUIFqdd0TPol0kMlGno6Qq4GZcyn/IJEzZ+Hg==","signatures":[{"sig":"MEUCIDLqVkzMcgb5JxpZd4da9j9y9CfBO9WTxxaK7G6Nx/2hAiEAqCTyoEsNhg0si2lJze7Icdi5deMrFA2NPO53RQj3UPA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112798},"type":"module","types":"./index.d.ts","exports":"./index.js","gitHead":"d11f45f7bf05bed46857269deaef4aca2aa7d503","scripts":{"test":"vitest run"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"11.7.0","description":"A songsheet interpreter","directories":{},"_nodeVersion":"23.6.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet_7.2.0_1772201021050_0.7917870434271443","host":"s3://npm-registry-packages-npm-production"}},"7.3.0":{"name":"songsheet","version":"7.3.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@7.3.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"b887e4a029bb453793f908b6ad4701cb7fed39ac","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-7.3.0.tgz","fileCount":22,"integrity":"sha512-3qDUOr3LL8bXaIw4Z2nLuN7Skh1YCakeOGh2nX7GIic7syb/1EG8O1ma8r5ThdEJCl4LA0NBJiWyGmYypE0Gzg==","signatures":[{"sig":"MEQCICpnamYHaW7b/eSEWli/y+RrTz3b+eNSlI9uuC1//8mMAiA+YECX/m8cgLuYEx81YkDeMBSyn57aJqb0FxFeiu07Ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115239},"type":"module","types":"./index.d.ts","exports":"./index.js","gitHead":"44b20f4da0767499e22db8328412647dcb61b027","scripts":{"test":"vitest run"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"11.7.0","description":"A songsheet interpreter","directories":{},"_nodeVersion":"23.6.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet_7.3.0_1772201758103_0.4804000756445237","host":"s3://npm-registry-packages-npm-production"}},"7.4.0":{"name":"songsheet","version":"7.4.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@7.4.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"0c978369905a02a0cca44808810cb49e2b8e23e8","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-7.4.0.tgz","fileCount":22,"integrity":"sha512-yu+KfrIy65Avgimx5O7LoqOjEcstyDo74iVr8KHvD1Muw1fuO4cRgL5psXHQkdOQDTjamY4a2VXzVqLM4afEaw==","signatures":[{"sig":"MEUCIQDHwCXpxkfJauSoy85OHz4PPowrIv6aHk9RP8UuT36S5wIgKjcNZAq7b6BRNNIKaxj/KvP+la6T8ug6RvocuaM8UJA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115073},"type":"module","types":"./index.d.ts","exports":"./index.js","gitHead":"1c06998642d2dcf578a6b31a7d95567baf5fc688","scripts":{"test":"vitest run"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"11.7.0","description":"A songsheet interpreter","directories":{},"_nodeVersion":"23.6.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet_7.4.0_1772213986217_0.8893027532620565","host":"s3://npm-registry-packages-npm-production"}},"7.5.0":{"name":"songsheet","version":"7.5.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@7.5.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"318bcd48abfea4816dbc35ba32c41b14ec657d42","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-7.5.0.tgz","fileCount":21,"integrity":"sha512-LPrxjkJ1K7dS1XXZy634Uh69ssj2oWBWsi5OvzmGYvKFxpW0VoEmNJlIi3KghJMUd6NUdiik0Sz0MUmCfNf2YQ==","signatures":[{"sig":"MEYCIQDy2BLnfaoeJjs3TBsGfoQ7siedmcD7El8DlxqlLSqAqQIhAKEg8dmuUfdFlEFBIXgN7C/QtqZ0v4O6VTFFgtOnWMpI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114495},"type":"module","types":"./index.d.ts","exports":"./index.js","gitHead":"a2d6a25379c0d33e0294aea0b46745c82cb1d851","scripts":{"test":"vitest run"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"11.6.2","description":"A songsheet interpreter","directories":{},"_nodeVersion":"25.1.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet_7.5.0_1772291368330_0.25272003549648736","host":"s3://npm-registry-packages-npm-production"}},"7.6.0":{"name":"songsheet","version":"7.6.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@7.6.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"17cc48d210dbd2aada54df25362dc8d7d96ad7c0","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-7.6.0.tgz","fileCount":21,"integrity":"sha512-dLiGdXvz5fGTQyWwJ+ZgsYwf7BGFt3LfDp82YfLXc7IwZZXDm1bTeh/7oB738mvqmi6OdmfTLe1jMz42lXhd3g==","signatures":[{"sig":"MEUCIB6Sfh2aLHA2WbEc9yVqMsN9wJBTjc53jTS/LW8hdLQsAiEA+KW9dLyl7FbrSS+Vnp8X40/6uj1M0ygkPhW0PHVpFRo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125796},"type":"module","types":"./index.d.ts","exports":"./index.js","gitHead":"864ae92e5568e48e27d393c010a7bcef99da133e","scripts":{"test":"vitest run"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"11.6.2","description":"A songsheet interpreter","directories":{},"_nodeVersion":"25.1.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet_7.6.0_1772677349998_0.9640050927809416","host":"s3://npm-registry-packages-npm-production"}},"7.7.0":{"name":"songsheet","version":"7.7.0","keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","_id":"songsheet@7.7.0","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"homepage":"https://github.com/williamcotton/songsheet#readme","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"dist":{"shasum":"ce34bd35976a5823cf428714aa36ca633591e349","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-7.7.0.tgz","fileCount":21,"integrity":"sha512-d95CZaAQCe53290DWus/op4R6bRxGQMEowwV31Ueb9WXR9LGlk/VIJclzmt7k49WdVGnLGHqrzO4nbVSvi4JNg==","signatures":[{"sig":"MEQCIC/NGEUhu/v47TmNNr3Dg5ohMAxwYn6Yi6vZtYZvktL2AiAk+jk3BAEO8j3QeCv2dXaVa//vbJVVVgO4GwYTNIIdZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127749},"type":"module","types":"./index.d.ts","exports":"./index.js","gitHead":"3d317f15e0d2fbd33ef94a7a53576c0bbdee1b6e","scripts":{"test":"vitest run"},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"repository":{"url":"git+ssh://git@github.com/williamcotton/songsheet.git","type":"git"},"_npmVersion":"11.6.2","description":"A songsheet interpreter","directories":{},"_nodeVersion":"25.1.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/songsheet_7.7.0_1772677853989_0.5838872856485697","host":"s3://npm-registry-packages-npm-production"}},"7.8.0":{"name":"songsheet","version":"7.8.0","description":"A songsheet interpreter","type":"module","exports":"./index.js","scripts":{"test":"vitest run"},"repository":{"type":"git","url":"git+ssh://git@github.com/williamcotton/songsheet.git"},"keywords":["music","chord","lyrics","songsheet","interpreter"],"author":{"name":"William Cotton"},"license":"ISC","bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"homepage":"https://github.com/williamcotton/songsheet#readme","devDependencies":{"vitest":"^3.0.0"},"gitHead":"e0684f39f4129edbb175b5fe5a02b27b0fe69522","types":"./index.d.ts","_id":"songsheet@7.8.0","_nodeVersion":"25.1.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-jVi1lKfMivPejcbAAu+ax4HJ5L1Q2fyPxdojh2/jplJLaC25iNCG2AIUNfj0kysfl96+NNnPKzQRneHzZTQxxg==","shasum":"126ba1d3031d5c1b7f49bed7617398f7363f4c4c","tarball":"https://registry.npmjs.org/songsheet/-/songsheet-7.8.0.tgz","fileCount":21,"unpackedSize":129022,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEfeZnXU6l9O4H5PaVZyr3fyG0Uqfq27ZDpudFb/90JcAiEAg/V/V8i6I3dWyjROjjnYcNlMoNwVQ8EEyVg7nWvM4r8="}]},"_npmUser":{"name":"williamcotton","email":"williamcotton@gmail.com"},"directories":{},"maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/songsheet_7.8.0_1772706214025_0.07565379651089033"},"_hasShrinkwrap":false}},"time":{"created":"2016-09-29T21:33:34.371Z","modified":"2026-03-05T10:23:34.378Z","1.0.0":"2016-09-29T21:33:34.371Z","2.0.0":"2016-10-01T05:48:52.304Z","2.1.0":"2016-10-01T07:23:29.109Z","3.0.0":"2016-10-01T17:46:26.808Z","3.1.0":"2016-10-01T18:01:53.800Z","3.2.0":"2016-10-01T20:24:23.416Z","3.2.1":"2016-10-01T21:12:32.228Z","3.2.2":"2016-10-03T16:07:28.196Z","3.3.0":"2016-10-04T21:17:07.029Z","3.4.0":"2016-10-15T20:12:38.317Z","3.5.0":"2016-10-15T20:24:54.259Z","4.0.0":"2016-10-16T03:55:17.509Z","5.0.0":"2016-10-17T02:29:49.196Z","5.1.0":"2016-10-17T02:49:23.311Z","6.0.0":"2026-02-19T17:11:21.169Z","6.1.0":"2026-02-19T18:01:31.939Z","6.2.0":"2026-02-20T17:31:16.181Z","6.3.0":"2026-02-21T01:00:31.704Z","6.4.0":"2026-02-21T12:39:42.293Z","7.0.0":"2026-02-27T13:26:49.934Z","7.1.0":"2026-02-27T13:48:41.854Z","7.2.0":"2026-02-27T14:03:41.210Z","7.3.0":"2026-02-27T14:15:58.261Z","7.4.0":"2026-02-27T17:39:46.369Z","7.5.0":"2026-02-28T15:09:28.473Z","7.6.0":"2026-03-05T02:22:30.145Z","7.7.0":"2026-03-05T02:30:54.169Z","7.8.0":"2026-03-05T10:23:34.262Z"},"bugs":{"url":"https://github.com/williamcotton/songsheet/issues"},"author":{"name":"William Cotton"},"license":"ISC","homepage":"https://github.com/williamcotton/songsheet#readme","keywords":["music","chord","lyrics","songsheet","interpreter"],"repository":{"type":"git","url":"git+ssh://git@github.com/williamcotton/songsheet.git"},"description":"A songsheet interpreter","maintainers":[{"name":"williamcotton","email":"williamcotton@gmail.com"}],"readme":"# songsheet\n\nA zero-dependency songsheet parser and transposer. Parses plaintext songsheet files into a structured AST with chord-lyric alignment and builds a playback timeline.\n\n## Install\n\n```bash\nnpm install songsheet\n```\n\n## Usage\n\n```js\nimport { parse, transpose } from 'songsheet'\n\nconst song = parse(rawText)          // synchronous, returns plain object\nconst songInA = transpose(song, 2)   // up 2 semitones\nconst songInF = transpose(song, -2)  // down 2 semitones\nconst songInBb = transpose(song, 3, { preferFlats: true })\n```\n\n## Songsheet Format\n\n```\nSONG TITLE - AUTHOR NAME\n(120 BPM, 3/4 time)\n\nG                               F\n Lyrics aligned under chords...\n               C/E              G/B\n More lyrics here\n\nF                C             D\n Chorus lyrics...\n\n Verse lyrics without chords (inherits first verse's chord pattern)\n\nCHORUS\nCHORUS*2\n\nPRECHORUS:\nD\n Labeled section with chords...\n\nINSTRUMENTAL: (VERSE, CHORUS*2)\nFILL: D G D A D\n\nBRIDGE\n```\n\n### Metadata\n\nBPM and time signature can be specified in parentheses after the title line:\n\n```\nSONG TITLE - AUTHOR NAME\n(120 BPM)\n(3/4 time)\n(120 BPM, 3/4 time)\n```\n\n### Slash Chords\n\nSlash chords like `G/B`, `Am7/E`, `F#m/C#` are supported in both chord lines and expressions. The bass note is stored separately:\n\n```js\n{ root: 'G', type: '', bass: 'B' }\n```\n\n### Section Type Inference\n\n1. 1st block with chords+lyrics → `verse`\n2. 2nd block with chords+lyrics → `chorus`\n3. 3rd block with chords+lyrics → `bridge`\n4. Subsequent lyric-only blocks → `verse` (inherits first verse's chords)\n5. `LABEL:` with body → named section (e.g., `prechorus`)\n6. `LABEL: expression` → directive (e.g., `instrumental`, `fill`)\n7. `LABEL` or `LABEL*N` → section reference / repeat\n\n### Expression Grammar\n\n```\nExpression = Sequence\nSequence   = Item (',' Item)*\nItem       = Atom ('*' Number)?\nAtom       = SectionRef | ChordList | '(' Sequence ')'\n```\n\nExamples: `(VERSE, CHORUS*2)`, `(D G D A)*4`, `D G D A D`\n\n## AST Shape\n\n`parse()` returns:\n\n```js\n{\n  title: 'SONG TITLE',\n  author: 'AUTHOR NAME',\n  bpm: 120,                // number | null\n  timeSignature: {         // { beats, value } | null\n    beats: 3,\n    value: 4,\n  },\n\n  // Unique section definitions\n  sections: {\n    verse: {\n      count: 4,\n      chords: [{ root: 'G', type: '' }, { root: 'F', type: '', bass: 'B' }, ...],\n      lyrics: ['lyric line 1', ...],\n      lines: [\n        {\n          chords: [{ root: 'G', type: '', column: 0 }, ...],\n          barLines: [             // | markers with optional carried chord context\n            { column: 12, chord: { root: 'G', type: '' } }\n          ],\n          lyrics: 'lyric line 1',\n          characters: [\n            { character: 'B', chord: { root: 'G', type: '' } },\n            { character: '|', barLine: true },\n            { character: 'l' },\n            ...\n          ]\n        }\n      ]\n    },\n    chorus: { ... },\n  },\n\n  // Ordered playback structure\n  structure: [\n    {\n      sectionType: 'verse',\n      sectionIndex: 0,\n      chords: [...],\n      lyrics: [...],\n      lines: [...],\n      expression: null,   // non-null on directive entries\n    },\n    ...\n  ],\n\n  // Flattened playback timeline (measure-by-measure)\n  playback: [\n    {\n      measureIndex: 0,\n      structureIndex: 0,\n      lineIndex: 0,\n      timeSignature: { beats: 3, value: 4 },\n      chords: [\n        {\n          root: 'G',\n          type: '',\n          markerIndex: 0,       // marker index in the rendered line (optional)\n          beatStart: 0,\n          durationInBeats: 3\n        }\n      ]\n    }\n  ]\n}\n```\n\n## Playback Barline Semantics\n\nPlayback is derived from each line's chords and `|` markers using these rules:\n\n1. Each chord token is its own measure unless written as bracket split syntax (`[C D]`).\n2. Each `|` repeats a measure.\n3. Barline repeats use chord context carried by the parser, so leading bars on a line can repeat the previous line's chord.\n\nExamples:\n\n- `[C D]` -> one measure split evenly between `C` and `D`\n- `C D |` -> `C`, `D`, `D`\n- `| C D |` -> `C`, `D`, `D`\n- `| G | C | D |` -> `G`, `G`, `C`, `C`, `D`, `D`\n- `C C/B Am G F | Fsus4 F` -> `C`, `C/B`, `Am`, `G`, `F`, `F`, `Fsus4`, `F`\n- `C | F C` then `| | G |` -> `C`, `C`, `F`, `C`, `C`, `C`, `G`, `G`\n\n## Transposition\n\n`transpose()` deep-walks the AST and replaces every chord root (and bass note on slash chords). It auto-detects whether the song uses flats or sharps, or you can override with `{ preferFlats: true }`. Playback timing metadata (`beatStart`, `durationInBeats`, `markerIndex`) is preserved.\n\n```js\nconst song = parse(rawText)\nconst up2 = transpose(song, 2)                       // G → A\nconst down3 = transpose(song, -3, { preferFlats: true }) // G → Eb\n```\n\n## Development\n\n```bash\nnpm test              # vitest run — all tests\nnpx vitest            # watch mode\nnpx vitest run test/parser.test.js   # single file\n```\n\n## License\n\nISC\n","readmeFilename":"README.md"}