{"version":3,"file":"bz2.mjs","names":["unbzip2Stream","ArchiveTar","ArchiveTarBz2","FILE_EXTENSIONS","constructor","path","_decompress","input","bz","error","onError","err","on","datas","data","push","chunk","length","shift","write","off","Promise","resolve","reject","once","end"],"sources":["../../../src/archive/tar/bz2.ts"],"sourcesContent":["import unbzip2Stream from 'unbzip2-stream';\n\nimport {ArchiveTar} from '../tar.ts';\n\n/**\n * ArchiveTarBz2 object.\n */\nexport class ArchiveTarBz2 extends ArchiveTar {\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic static readonly FILE_EXTENSIONS: readonly string[] | null = [\n\t\t'.tar.bz2',\n\t\t'.tbz2'\n\t];\n\n\t/**\n\t * ArchiveTarBz2 constructor.\n\t *\n\t * @param path File path.\n\t */\n\tconstructor(path: string) {\n\t\tsuper(path);\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tprotected async *_decompress(input: AsyncGenerator<Buffer>) {\n\t\tconst bz = unbzip2Stream();\n\t\tlet error: Error | null = null;\n\n\t\t/**\n\t\t * This stream has no callbacks for write, listen for error.\n\t\t *\n\t\t * @param err Stream error.\n\t\t */\n\t\tconst onError = (err: Error) => {\n\t\t\terror = error || err;\n\t\t};\n\t\tbz.on('error', onError);\n\n\t\tconst datas: Buffer[] = [];\n\t\tbz.on('data', (data: Buffer) => {\n\t\t\tdatas.push(data);\n\t\t});\n\t\tfor await (const chunk of input) {\n\t\t\tif (error) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\twhile (datas.length) {\n\t\t\t\tyield datas.shift() as Buffer;\n\t\t\t}\n\t\t\tbz.write(chunk);\n\t\t\tif (error) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\twhile (datas.length) {\n\t\t\t\tyield datas.shift() as Buffer;\n\t\t\t}\n\t\t}\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\t\twhile (datas.length) {\n\t\t\tyield datas.shift() as Buffer;\n\t\t}\n\t\tbz.off('error', onError);\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tbz.once('end', resolve);\n\t\t\tbz.once('error', reject);\n\t\t\tbz.end();\n\t\t});\n\t\twhile (datas.length) {\n\t\t\tyield datas.shift() as Buffer;\n\t\t}\n\t}\n}\n"],"mappings":"AAAA,OAAOA,aAAa,MAAM,gBAAgB;AAE1C,SAAQC,UAAU,QAAO,YAAW;;AAEpC;AACA;AACA;AACA,OAAO,MAAMC,aAAa,SAASD,UAAU,CAAC;EAC7C;AACD;AACA;EACC,OAAuBE,eAAe,GAA6B,CAClE,UAAU,EACV,OAAO,CACP;;EAED;AACD;AACA;AACA;AACA;EACCC,WAAWA,CAACC,IAAY,EAAE;IACzB,KAAK,CAACA,IAAI,CAAC;EACZ;;EAEA;AACD;AACA;EACC,OAAiBC,WAAWA,CAACC,KAA6B,EAAE;IAC3D,MAAMC,EAAE,GAAGR,aAAa,CAAC,CAAC;IAC1B,IAAIS,KAAmB,GAAG,IAAI;;IAE9B;AACF;AACA;AACA;AACA;IACE,MAAMC,OAAO,GAAIC,GAAU,IAAK;MAC/BF,KAAK,GAAGA,KAAK,IAAIE,GAAG;IACrB,CAAC;IACDH,EAAE,CAACI,EAAE,CAAC,OAAO,EAAEF,OAAO,CAAC;IAEvB,MAAMG,KAAe,GAAG,EAAE;IAC1BL,EAAE,CAACI,EAAE,CAAC,MAAM,EAAGE,IAAY,IAAK;MAC/BD,KAAK,CAACE,IAAI,CAACD,IAAI,CAAC;IACjB,CAAC,CAAC;IACF,WAAW,MAAME,KAAK,IAAIT,KAAK,EAAE;MAChC,IAAIE,KAAK,EAAE;QACV,MAAMA,KAAK;MACZ;MACA,OAAOI,KAAK,CAACI,MAAM,EAAE;QACpB,MAAMJ,KAAK,CAACK,KAAK,CAAC,CAAW;MAC9B;MACAV,EAAE,CAACW,KAAK,CAACH,KAAK,CAAC;MACf,IAAIP,KAAK,EAAE;QACV,MAAMA,KAAK;MACZ;MACA,OAAOI,KAAK,CAACI,MAAM,EAAE;QACpB,MAAMJ,KAAK,CAACK,KAAK,CAAC,CAAW;MAC9B;IACD;IACA,IAAIT,KAAK,EAAE;MACV,MAAMA,KAAK;IACZ;IACA,OAAOI,KAAK,CAACI,MAAM,EAAE;MACpB,MAAMJ,KAAK,CAACK,KAAK,CAAC,CAAW;IAC9B;IACAV,EAAE,CAACY,GAAG,CAAC,OAAO,EAAEV,OAAO,CAAC;IACxB,MAAM,IAAIW,OAAO,CAAO,CAACC,OAAO,EAAEC,MAAM,KAAK;MAC5Cf,EAAE,CAACgB,IAAI,CAAC,KAAK,EAAEF,OAAO,CAAC;MACvBd,EAAE,CAACgB,IAAI,CAAC,OAAO,EAAED,MAAM,CAAC;MACxBf,EAAE,CAACiB,GAAG,CAAC,CAAC;IACT,CAAC,CAAC;IACF,OAAOZ,KAAK,CAACI,MAAM,EAAE;MACpB,MAAMJ,KAAK,CAACK,KAAK,CAAC,CAAW;IAC9B;EACD;AACD","ignoreList":[]}