{"_id":"@braccato/parsers","_rev":"10-60f1732e3e80c1530307f394a9335b4d","name":"@braccato/parsers","dist-tags":{"latest":"0.3.2"},"versions":{"0.1.0":{"name":"@braccato/parsers","version":"0.1.0","keywords":["lyrics","parser","ttml","lrc","srt","qrc"],"license":"MIT","_id":"@braccato/parsers@0.1.0","maintainers":[{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"}],"homepage":"https://github.com/better-lyrics/braccato","bugs":{"url":"https://github.com/better-lyrics/braccato/issues"},"dist":{"shasum":"31ac77f7d02c55c77e60a24121784e0c74ef6cc1","tarball":"https://registry.npmjs.org/@braccato/parsers/-/parsers-0.1.0.tgz","fileCount":4,"integrity":"sha512-yF6yQTzfmaGHDJ2hQPO/skJT/9FZ/8PnefeSWhr4J7EFsxYjsuP8XSygSiVZwt6qyQcxPd8YiHvMwT68EXaNOA==","signatures":[{"sig":"MEUCIQCsxkPDRWyigTiKRmmL9CSGRzY+UYmR2fTUOJ7QyG0EHQIgGh8amKx+aKY6F3K1MfRc0YD9n2S2M8ajBmBKnkAH2K8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15873},"main":"dist/index.js","type":"module","_from":"file:braccato-parsers-0.1.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","test":"vitest run","build":"vite build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"},"_resolved":"/private/var/folders/_r/j57rksd52ps9r_z_c5d8p86r0000gn/T/4f325ba1e4e714557407fa1dbe00cbed/braccato-parsers-0.1.0.tgz","_integrity":"sha512-yF6yQTzfmaGHDJ2hQPO/skJT/9FZ/8PnefeSWhr4J7EFsxYjsuP8XSygSiVZwt6qyQcxPd8YiHvMwT68EXaNOA==","repository":{"url":"git+https://github.com/better-lyrics/braccato.git","type":"git","directory":"packages/parsers"},"_npmVersion":"10.9.3","description":"Lyrics format parsers: TTML, LRC, SRT, QRC, Plain","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.7","jsdom":"^28.1.0","vitest":"^3.0.4","typescript":"^5.7.3","vite-plugin-dts":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/parsers_0.1.0_1773177583823_0.6685200448575879","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@braccato/parsers","version":"0.1.1","keywords":["lyrics","parser","ttml","lrc","srt","qrc"],"license":"MIT","_id":"@braccato/parsers@0.1.1","maintainers":[{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"}],"homepage":"https://github.com/better-lyrics/braccato","bugs":{"url":"https://github.com/better-lyrics/braccato/issues"},"dist":{"shasum":"2ef57e92d052b352bd0aa5d20342c57c30577a91","tarball":"https://registry.npmjs.org/@braccato/parsers/-/parsers-0.1.1.tgz","fileCount":4,"integrity":"sha512-S4LlT8vTMNiXvVUC5iaQiLvu8KUNZn7oAI0LRaQ0W75THlX/pTSEp3EoB3UBzI2F0k3ARvxL9qNuxpd3+WHmeQ==","signatures":[{"sig":"MEQCIBInIhkB7OkA+HlKIt0xKcWTTKAWX1uE06s8ukEOj7HYAiBZz8c/KCo/I/3Ml/T4K06HmvniiiOtwQdYZLlyxly/7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15675},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d66811954321f61c8c85e6647462bfc333e47586","scripts":{"dev":"vite build --watch","test":"vitest run","build":"vite build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"},"repository":{"url":"git+https://github.com/better-lyrics/braccato.git","type":"git","directory":"packages/parsers"},"_npmVersion":"10.9.3","description":"Lyrics format parsers: TTML, LRC, SRT, QRC, Plain","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.7","jsdom":"^28.1.0","vitest":"^3.0.4","typescript":"^5.7.3","vite-plugin-dts":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/parsers_0.1.1_1773177887939_0.22526664951425412","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@braccato/parsers","version":"0.1.2","keywords":["lyrics","parser","ttml","lrc","srt","qrc"],"license":"MIT","_id":"@braccato/parsers@0.1.2","maintainers":[{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"}],"homepage":"https://braccato.boidu.dev","bugs":{"url":"https://github.com/better-lyrics/braccato/issues"},"dist":{"shasum":"25dd262148fe6252d788fa7411b5e744c6be3c57","tarball":"https://registry.npmjs.org/@braccato/parsers/-/parsers-0.1.2.tgz","fileCount":5,"integrity":"sha512-v1AIekHvH43hOOybJmwpoon3B7L6649NFJawsa0sm9202klsqSXkA/k3SQ/VlM8KIkghmd+nhUERtp0ITxzxnQ==","signatures":[{"sig":"MEUCIQC4mdtscuTNvqn5Xdg2jmBMEGZT2ImMtxBdVw+TA8eCQAIgFPa+GVPELVy7jMPp2s7wKc3bdBUyIIANNM8ILu53o2c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16742},"main":"dist/index.js","type":"module","_from":"file:braccato-parsers-0.1.2.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","test":"vitest run","build":"vite build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"},"_resolved":"/private/var/folders/_r/j57rksd52ps9r_z_c5d8p86r0000gn/T/618c59291326538bd5a8f105b7e671bc/braccato-parsers-0.1.2.tgz","_integrity":"sha512-v1AIekHvH43hOOybJmwpoon3B7L6649NFJawsa0sm9202klsqSXkA/k3SQ/VlM8KIkghmd+nhUERtp0ITxzxnQ==","repository":{"url":"git+https://github.com/better-lyrics/braccato.git","type":"git","directory":"packages/parsers"},"_npmVersion":"10.9.3","description":"Lyrics format parsers: TTML, LRC, SRT, QRC, Plain","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.7","jsdom":"^28.1.0","vitest":"^3.0.4","typescript":"^5.7.3","vite-plugin-dts":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/parsers_0.1.2_1780771973020_0.9956127206868883","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@braccato/parsers","version":"0.2.0","keywords":["lyrics","parser","ttml","lrc","srt","qrc"],"license":"MIT","_id":"@braccato/parsers@0.2.0","maintainers":[{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"}],"homepage":"https://braccato.boidu.dev","bugs":{"url":"https://github.com/better-lyrics/braccato/issues"},"dist":{"shasum":"eee63f8dd9ed7eee516ace3e7897d133704e82db","tarball":"https://registry.npmjs.org/@braccato/parsers/-/parsers-0.2.0.tgz","fileCount":5,"integrity":"sha512-vHdNv7t1DQnKw7tWTc/AfrGsK/nHLiihqM/xLm0gbTE+iN9WNKsupQ/jAeheQHaQQzZNCYnZicnXb5cxiXjqwg==","signatures":[{"sig":"MEUCIH+QJOsQjHaBEuTDgmO+VwYqRTSxarRobElsY/HKF3QoAiEA6P6gBqSN3P58fIemVoqM8xI6tbpIUJ5sCebWt+xdoPw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27819},"main":"dist/index.js","type":"module","_from":"file:braccato-parsers-0.2.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","test":"vitest run","build":"vite build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"},"_resolved":"/private/var/folders/_r/j57rksd52ps9r_z_c5d8p86r0000gn/T/023c3d990190b7090472123f4dc1e4a9/braccato-parsers-0.2.0.tgz","_integrity":"sha512-vHdNv7t1DQnKw7tWTc/AfrGsK/nHLiihqM/xLm0gbTE+iN9WNKsupQ/jAeheQHaQQzZNCYnZicnXb5cxiXjqwg==","repository":{"url":"git+https://github.com/better-lyrics/braccato.git","type":"git","directory":"packages/parsers"},"_npmVersion":"10.9.7","description":"Lyrics format parsers: TTML, LRC, SRT, QRC, Plain","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"@braccato/types":"^1.0.0","fast-xml-parser":"^5.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.7","vitest":"^3.0.4","typescript":"^5.7.3","vite-plugin-dts":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/parsers_0.2.0_1785837369232_0.7372625196549156","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@braccato/parsers","version":"0.2.1","keywords":["lyrics","parser","ttml","lrc","srt","qrc"],"license":"MIT","_id":"@braccato/parsers@0.2.1","maintainers":[{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"}],"homepage":"https://braccato.boidu.dev","bugs":{"url":"https://github.com/better-lyrics/braccato/issues"},"dist":{"shasum":"b53cef5a50871e9437f56611c0139e6878e97c16","tarball":"https://registry.npmjs.org/@braccato/parsers/-/parsers-0.2.1.tgz","fileCount":5,"integrity":"sha512-Yzmj6KlPkGd2NXMQUSvm9NV2oZuJrGwf2xk5aOXCOazty6wgivXrOqtXQoOejAkzgiCUpnDeNFza6wd8rYHrow==","signatures":[{"sig":"MEQCIG68u96IQYqboJcTdDBydmVETi79D/p58APr4B1GhpIgAiAdHblfSgz8t8BayqXvsilQtLNLxMdtQ3ZCR3UQAciy8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27839},"main":"dist/index.js","type":"module","_from":"file:braccato-parsers-0.2.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","test":"vitest run","build":"vite build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"},"_resolved":"/private/var/folders/_r/j57rksd52ps9r_z_c5d8p86r0000gn/T/c65311b4c76fd76403bf5d637c6501e0/braccato-parsers-0.2.1.tgz","_integrity":"sha512-Yzmj6KlPkGd2NXMQUSvm9NV2oZuJrGwf2xk5aOXCOazty6wgivXrOqtXQoOejAkzgiCUpnDeNFza6wd8rYHrow==","repository":{"url":"git+https://github.com/better-lyrics/braccato.git","type":"git","directory":"packages/parsers"},"_npmVersion":"10.9.7","description":"Lyrics format parsers: TTML, LRC, SRT, QRC, Plain","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"@braccato/types":"^1.0.0","fast-xml-parser":"^5.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.7","vitest":"^3.0.4","typescript":"^5.7.3","vite-plugin-dts":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/parsers_0.2.1_1788108787718_0.784239832884301","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@braccato/parsers","version":"0.2.2","keywords":["lyrics","parser","ttml","lrc","srt","qrc"],"license":"MIT","_id":"@braccato/parsers@0.2.2","maintainers":[{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"}],"homepage":"https://braccato.boidu.dev","bugs":{"url":"https://github.com/better-lyrics/braccato/issues"},"dist":{"shasum":"45897ea2249aed5bbe8288cd55f5392789d23d83","tarball":"https://registry.npmjs.org/@braccato/parsers/-/parsers-0.2.2.tgz","fileCount":5,"integrity":"sha512-+KZunj3u6Q+1jajJ+xt1aqOBIdCG1aXAPif9qxGqtQWlSvN2nL9WxbgDoxqie01GBHufB6KLKhYu5WJnDXGrxw==","signatures":[{"sig":"MEYCIQCe7poGXXLGmBJPGaGGwHPENJTMs4orhJRwblOqld81JwIhAPqA1x3ajGNuUeGu5MRsDixeq/6i2OFDmUS+bVV2917t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28073},"main":"dist/index.js","type":"module","_from":"file:braccato-parsers-0.2.2.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","test":"vitest run","build":"vite build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"},"_resolved":"/private/var/folders/_r/j57rksd52ps9r_z_c5d8p86r0000gn/T/60b24cabc63ae5bce7a9e620d3477f50/braccato-parsers-0.2.2.tgz","_integrity":"sha512-+KZunj3u6Q+1jajJ+xt1aqOBIdCG1aXAPif9qxGqtQWlSvN2nL9WxbgDoxqie01GBHufB6KLKhYu5WJnDXGrxw==","repository":{"url":"git+https://github.com/better-lyrics/braccato.git","type":"git","directory":"packages/parsers"},"_npmVersion":"10.9.7","description":"Lyrics format parsers: TTML, LRC, SRT, QRC, Plain","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"@braccato/types":"^1.0.0","fast-xml-parser":"^5.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.7","vitest":"^3.0.4","typescript":"^5.7.3","vite-plugin-dts":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/parsers_0.2.2_1789573790916_0.7620774929495164","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@braccato/parsers","version":"0.2.3","keywords":["lyrics","parser","ttml","lrc","srt","qrc"],"license":"MIT","_id":"@braccato/parsers@0.2.3","maintainers":[{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"}],"homepage":"https://braccato.boidu.dev","bugs":{"url":"https://github.com/better-lyrics/braccato/issues"},"dist":{"shasum":"a2fa863af6c636d1e1dbc950b42e8f07f1797520","tarball":"https://registry.npmjs.org/@braccato/parsers/-/parsers-0.2.3.tgz","fileCount":5,"integrity":"sha512-CRRT0IB21Sc6CkejxeJQHH51rlMrnN5p07oFKxN0IH3P+44p4GkLjlVJEZzRMFXQQXDL7v36OcMM5hQOcIIGFw==","signatures":[{"sig":"MEUCIQCGcV6vDQWD3Nx5vI6sQPK9gNJYLtWOZRQ0d+DNgUP8hAIgLzHNE4lqa3oz/7AWPNpoZb/QBl3ogYxsIvibUESYZRo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braccato%2fparsers@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28052},"main":"dist/index.js","type":"module","_from":"file:braccato-parsers-0.2.3.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","test":"vitest run","build":"vite build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99387871-37ad-4f88-a9f3-8262f43cf574"}},"_resolved":"/tmp/a80c7a53983be4c361f7833f3f44adf1/braccato-parsers-0.2.3.tgz","_integrity":"sha512-CRRT0IB21Sc6CkejxeJQHH51rlMrnN5p07oFKxN0IH3P+44p4GkLjlVJEZzRMFXQQXDL7v36OcMM5hQOcIIGFw==","repository":{"url":"git+https://github.com/better-lyrics/braccato.git","type":"git","directory":"packages/parsers"},"_npmVersion":"11.19.0","description":"Lyrics format parsers: TTML, LRC, SRT, QRC, Plain","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@braccato/types":"^1.0.0","fast-xml-parser":"^5.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.7","vitest":"^3.0.4","typescript":"^5.7.3","vite-plugin-dts":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/parsers_0.2.3_1789598945964_0.6565025914070268","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@braccato/parsers","version":"0.3.0","keywords":["lyrics","parser","ttml","lrc","srt","qrc"],"license":"MIT","_id":"@braccato/parsers@0.3.0","maintainers":[{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"}],"homepage":"https://braccato.boidu.dev","bugs":{"url":"https://github.com/better-lyrics/braccato/issues"},"dist":{"shasum":"b8e1d52137110ca509e3e437e4426525358dc5a2","tarball":"https://registry.npmjs.org/@braccato/parsers/-/parsers-0.3.0.tgz","fileCount":5,"integrity":"sha512-zmquZ6o/7gpdF0CplaWDo2hSIM3sSsokhfahiIADfysednHUz93ehnzZZXMd/FFVsjFofqbkaeJrD8uByXoKpQ==","signatures":[{"sig":"MEQCIDJd0iXLvBz2o3IPqUe06IzBF+k59yicdP0X+KqukugfAiA0sMVNzw2qlrM7SHG2lOgqTojQl/eFQyy74ynzqAwVYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICwzabcmW+IH7DL28Zv5kDTfTAwAazHHsGk2Sxum8zLDAiBSbsj6LtYcjSCzq4PjDII/ggUxzPUwNAk5vv8wgklwtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braccato%2fparsers@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30833},"main":"dist/index.js","type":"module","_from":"file:braccato-parsers-0.3.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","test":"vitest run","build":"vite build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99387871-37ad-4f88-a9f3-8262f43cf574"}},"_resolved":"/tmp/4ae0fbbfecca98c30c4aed9463bd96ad/braccato-parsers-0.3.0.tgz","_integrity":"sha512-zmquZ6o/7gpdF0CplaWDo2hSIM3sSsokhfahiIADfysednHUz93ehnzZZXMd/FFVsjFofqbkaeJrD8uByXoKpQ==","repository":{"url":"git+https://github.com/better-lyrics/braccato.git","type":"git","directory":"packages/parsers"},"_npmVersion":"11.19.0","description":"Lyrics format parsers: TTML, LRC, SRT, QRC, Plain","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"@braccato/types":"^1.0.0","fast-xml-parser":"^5.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.7","vitest":"^3.0.4","typescript":"^5.7.3","vite-plugin-dts":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/parsers_0.3.0_1790352953530_0.03161408515848829","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@braccato/parsers","version":"0.3.1","keywords":["lyrics","parser","ttml","lrc","srt","qrc"],"license":"MIT","_id":"@braccato/parsers@0.3.1","maintainers":[{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"}],"homepage":"https://braccato.boidu.dev","bugs":{"url":"https://github.com/better-lyrics/braccato/issues"},"dist":{"shasum":"c40083fe2e9d6e491fd780c05e99a99d858401a3","tarball":"https://registry.npmjs.org/@braccato/parsers/-/parsers-0.3.1.tgz","fileCount":5,"integrity":"sha512-7UB9YobxbPL6M2SS5rV3fb5mUKLnbIL4xnhyF1uCNABqsS/rsO2ZoFELiD7pb8oJamdgrAw6ZwbVRahnzISsjw==","signatures":[{"sig":"MEUCIQCLLuwucR+/l12p3t6TR1MXvPxEo1ggTdthxyaxTfVG+gIgFX/t1wsnbt+8LHbj8c738StB4S5e95D5xqDWALfULhk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHD4tj7+wN5JSEclJuro5ZlSFWHDYu59WuMpPieQ/aN4AiEA1DTWgiROtR0lF1B/wHdoXgrBAhfnjJrSQbomIzYgIDg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braccato%2fparsers@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31665},"main":"dist/index.js","type":"module","_from":"file:braccato-parsers-0.3.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","test":"vitest run","build":"vite build","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99387871-37ad-4f88-a9f3-8262f43cf574"}},"_resolved":"/tmp/dbb92d4d31069536d9e4e45aed8bbc3f/braccato-parsers-0.3.1.tgz","_integrity":"sha512-7UB9YobxbPL6M2SS5rV3fb5mUKLnbIL4xnhyF1uCNABqsS/rsO2ZoFELiD7pb8oJamdgrAw6ZwbVRahnzISsjw==","repository":{"url":"git+https://github.com/better-lyrics/braccato.git","type":"git","directory":"packages/parsers"},"_npmVersion":"11.19.0","description":"Lyrics format parsers: TTML, LRC, SRT, QRC, Plain","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"@braccato/types":"^1.0.0","fast-xml-parser":"^5.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.7","vitest":"^3.0.4","typescript":"^5.7.3","vite-plugin-dts":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/parsers_0.3.1_1790368207062_0.08705630905622219","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"_id":"@braccato/parsers@0.3.2","bugs":{"url":"https://github.com/better-lyrics/braccato/issues"},"dist":{"shasum":"74884016c3a429f7468760364032e0d2a5e493a9","tarball":"https://registry.npmjs.org/@braccato/parsers/-/parsers-0.3.2.tgz","fileCount":8,"integrity":"sha512-Ppsq3f8s8MW+EXsGJES7FCqrihec2ReUnRfUM3fasQIMNaZkmh/KqenzMtJ6TTCat119raZVOljb2vUFPVePGQ==","signatures":[{"sig":"MEUCIQC7qN1K0tuk1qw2vjnU8WhmuNAwe4p559/A6DrjBfJVngIgbHsERHxGOuPqeYWiq5jJuDudQ238FcJGMwzqLii8UjA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDFDmu+X/KBa2oI+xRz6XuFrE8KuI9l1PRx2wyzrd2J1gIgAbOyO6SMPOrREqP57tD/nRQlILmJ+WqKF41Cc6gz8VI="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braccato%2fparsers@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32783},"main":"dist/index.js","name":"@braccato/parsers","type":"module","_from":"file:braccato-parsers-0.3.2.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./format":{"types":"./dist/format.d.ts","import":"./dist/format.js"}},"license":"MIT","scripts":{"dev":"vite build --watch","test":"vitest run","build":"vite build","typecheck":"tsc --noEmit","test:watch":"vitest"},"version":"0.3.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"99387871-37ad-4f88-a9f3-8262f43cf574"}},"homepage":"https://braccato.boidu.dev","keywords":["lyrics","parser","ttml","lrc","srt","qrc"],"_resolved":"/tmp/e52857981871dc6d1912f68216feabc8/braccato-parsers-0.3.2.tgz","_integrity":"sha512-Ppsq3f8s8MW+EXsGJES7FCqrihec2ReUnRfUM3fasQIMNaZkmh/KqenzMtJ6TTCat119raZVOljb2vUFPVePGQ==","repository":{"url":"git+https://github.com/better-lyrics/braccato.git","type":"git","directory":"packages/parsers"},"_npmVersion":"11.19.0","description":"Lyrics format parsers: TTML, LRC, SRT, QRC, Plain","directories":{},"maintainers":[{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"@braccato/types":"^1.0.0","fast-xml-parser":"^5.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.7","vitest":"^3.0.4","typescript":"^5.7.3","vite-plugin-dts":"^4.3.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/parsers_0.3.2_1790809285512_0.5177324217387853"}}},"time":{"created":"2026-03-10T21:19:43.718Z","modified":"2026-09-30T23:01:25.939Z","0.1.0":"2026-03-10T21:19:44.013Z","0.1.1":"2026-03-10T21:24:48.102Z","0.1.2":"2026-06-06T18:52:53.170Z","0.2.0":"2026-08-04T09:56:09.361Z","0.2.1":"2026-08-30T16:53:07.869Z","0.2.2":"2026-09-16T15:49:51.034Z","0.2.3":"2026-09-16T22:49:06.113Z","0.3.0":"2026-09-25T16:15:53.645Z","0.3.1":"2026-09-25T20:30:07.165Z","0.3.2":"2026-09-30T23:01:25.618Z"},"bugs":{"url":"https://github.com/better-lyrics/braccato/issues"},"license":"MIT","homepage":"https://braccato.boidu.dev","keywords":["lyrics","parser","ttml","lrc","srt","qrc"],"repository":{"url":"git+https://github.com/better-lyrics/braccato.git","type":"git","directory":"packages/parsers"},"description":"Lyrics format parsers: TTML, LRC, SRT, QRC, Plain","maintainers":[{"name":"boidushya","email":"boidushyabhattacharya@gmail.com"}],"readme":"# @braccato/parsers\n\nLyrics format parsers for TTML, LRC, SRT, QRC, and plain text, with automatic format detection. Produces the `Lyric[]` array that [`@braccato/core`](https://www.npmjs.com/package/@braccato/core) renders.\n\nThe [parsers guide](https://docs.betterlyrics.org/braccato/parsers) shows how to parse the response from each Better Lyrics API provider.\n\n## Install\n\n```bash\nnpm i @braccato/parsers\n```\n\n## Usage\n\n```typescript\nimport { detectParser } from \"@braccato/parsers\";\n\nconst parser = detectParser(inputText);\nconst lyrics = parser.parse(inputText, durationMs);\n```\n\nOr use a specific parser directly:\n\n```typescript\nimport { TTMLParser, LRCParser, SRTParser, QRCParser, PlainParser } from \"@braccato/parsers\";\n\nconst lyrics = TTMLParser.parse(ttmlString);\n```\n\n## Parser Interface\n\nAll parsers implement:\n\n```typescript\ninterface LyricParser {\n  parse(input: string, duration?: number): Lyric[];\n  metadata(input: string): LyricMetadata;\n  detect(input: string): boolean;\n}\n```\n\n`metadata` reads what the file says about the song rather than its lines, which today is who wrote it. `songwriters` is empty when the file credits nobody:\n\n```typescript\nconst { songwriters } = detectParser(inputText).metadata(inputText); // [\"Max Martin\", \"Savan Kotecha\"]\n```\n\n| Format | Where the songwriters come from |\n| --- | --- |\n| TTML | `<songwriters>` in any metadata container (Apple's `iTunesMetadata`, lrc.red's `sourceMetadata`), and Composer's `<composer:meta key=\"songwriter\">` |\n| LRC | `[au:]` and `[lr:]`. `[by:]` names whoever made the file and is left out |\n| QRC | Credit lines such as `作词:` or `Written by:`. Producer, mixing and the other roles are left out |\n| SRT, Plain | Nothing |\n\nNames that LRC and QRC hold as free text are split on `/`, `、`, `，` and `,`. Every format drops duplicates and keeps the order the file gives.\n\n`detectParser` tries each format in priority order: TTML, LRC, SRT, QRC, Plain. The same rules are exported on their own as `detectFormat` from the dependency-free `@braccato/parsers/format` subpath, which returns `\"ttml\" | \"lrc\" | \"srt\" | \"qrc\" | \"plain\"` without loading the XML parser.\n\n`TTMLParser.parse` ignores its `duration` argument, because a TTML document states its own duration on `<body dur>`. Pass a duration through `parseTTMLContent` instead when the document omits it.\n\n## Format specifics\n\n### TTML\n\n`parseTTMLContent` returns the parsed lines along with whether the document is word synced and the language it declares:\n\n```typescript\nimport { parseTTMLContent } from \"@braccato/parsers\";\n\nconst { lyrics, isWordSynced, language } = parseTTMLContent(ttmlString, {\n  songDurationMs: 214000, // only used when <body> carries no dur\n  instrumentalGapMs: 5000, // silence longer than this becomes an instrumental line\n});\n```\n\nInstrumental lines are inserted whether or not the document states a duration. This changed in 0.2.0: 0.1.x only inserted them for a document whose `<body>` carried a `dur`, and the implementation this package was rewritten from does not gate them, so the gate is gone. A document with no `dur` now gains an intro instrumental when its first line starts more than `instrumentalGapMs` in, and one between any two lines separated by more than that. The outro is the exception, since nothing states where the song ends: pass `songDurationMs` to get it.\n\nIt reads syllable timing, `ttm:role=\"x-bg\"` background vocals, `ttm:agent` (mapped to stable vocalist slots `v1`, `v2`, and `v1000` for a group), explicit flags from either `explicit` or AMLL's `obscene`, `itunes:key`, translations and transliterations. Namespace prefixes that a document uses without declaring are recovered rather than rejected, and times may be clock values or offset times such as `432.25s`, `5m` or `250ms`.\n\n### LRC\n\n`LRCParser.parse` runs a set of timing fixers suited to Musixmatch word by word lyrics. For a source whose timings are already clean, use `parseLRC`, which returns the document exactly as stated:\n\n```typescript\nimport { parseLRC, lrcFixers } from \"@braccato/parsers\";\n\nconst lyrics = parseLRC(lrcText, durationMs);\nlrcFixers(lyrics); // optional, mutates in place\n```\n\n### QRC\n\n`QRCParser.parse` accepts either the `<QrcInfos>` envelope QQ Music returns or a bare QRC body. Pass song metadata through `parseQRC` to drop the opening lines that only echo the title or artist:\n\n```typescript\nimport { parseQRC } from \"@braccato/parsers\";\n\nconst lyrics = parseQRC(qrcXml, durationMs, { title: \"Song\", artist: \"Artist\" });\n```\n\nSinger prefixes (`Name:` at the head of a line) become agents and are stripped from the text, sticking to the following lines until the next one appears. Credit lines are dropped.\n\nSee the [full documentation](https://braccato.boidu.dev) for type definitions.\n","readmeFilename":"README.md"}