{"version":3,"file":"gz.mjs","names":["createGunzip","ArchiveTar","ArchiveTarGz","FILE_EXTENSIONS","constructor","path","_decompress","input","gz","datas","on","data","push","chunk","length","shift","Promise","resolve","reject","write","err","once","end"],"sources":["../../../src/archive/tar/gz.ts"],"sourcesContent":["import {createGunzip} from 'node:zlib';\n\nimport {ArchiveTar} from '../tar.ts';\n\n/**\n * ArchiveTarGz object.\n */\nexport class ArchiveTarGz extends ArchiveTar {\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic static readonly FILE_EXTENSIONS: readonly string[] | null = [\n\t\t'.tar.gz',\n\t\t'.tgz'\n\t];\n\n\t/**\n\t * ArchiveTarGz 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 gz = createGunzip();\n\t\tconst datas: Buffer[] = [];\n\t\tgz.on('data', (data: Buffer) => {\n\t\t\tdatas.push(data);\n\t\t});\n\t\tfor await (const chunk of input) {\n\t\t\twhile (datas.length) {\n\t\t\t\tyield datas.shift() as Buffer;\n\t\t\t}\n\t\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\t\tgz.write(chunk, err => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tresolve();\n\t\t\t\t});\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\twhile (datas.length) {\n\t\t\tyield datas.shift() as Buffer;\n\t\t}\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tgz.once('end', resolve);\n\t\t\tgz.once('error', reject);\n\t\t\tgz.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,SAAQA,YAAY,QAAO,WAAW;AAEtC,SAAQC,UAAU,QAAO,YAAW;;AAEpC;AACA;AACA;AACA,OAAO,MAAMC,YAAY,SAASD,UAAU,CAAC;EAC5C;AACD;AACA;EACC,OAAuBE,eAAe,GAA6B,CAClE,SAAS,EACT,MAAM,CACN;;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,YAAY,CAAC,CAAC;IACzB,MAAMS,KAAe,GAAG,EAAE;IAC1BD,EAAE,CAACE,EAAE,CAAC,MAAM,EAAGC,IAAY,IAAK;MAC/BF,KAAK,CAACG,IAAI,CAACD,IAAI,CAAC;IACjB,CAAC,CAAC;IACF,WAAW,MAAME,KAAK,IAAIN,KAAK,EAAE;MAChC,OAAOE,KAAK,CAACK,MAAM,EAAE;QACpB,MAAML,KAAK,CAACM,KAAK,CAAC,CAAW;MAC9B;MACA,MAAM,IAAIC,OAAO,CAAO,CAACC,OAAO,EAAEC,MAAM,KAAK;QAC5CV,EAAE,CAACW,KAAK,CAACN,KAAK,EAAEO,GAAG,IAAI;UACtB,IAAIA,GAAG,EAAE;YACRF,MAAM,CAACE,GAAG,CAAC;YACX;UACD;UACAH,OAAO,CAAC,CAAC;QACV,CAAC,CAAC;MACH,CAAC,CAAC;MACF,OAAOR,KAAK,CAACK,MAAM,EAAE;QACpB,MAAML,KAAK,CAACM,KAAK,CAAC,CAAW;MAC9B;IACD;IACA,OAAON,KAAK,CAACK,MAAM,EAAE;MACpB,MAAML,KAAK,CAACM,KAAK,CAAC,CAAW;IAC9B;IACA,MAAM,IAAIC,OAAO,CAAO,CAACC,OAAO,EAAEC,MAAM,KAAK;MAC5CV,EAAE,CAACa,IAAI,CAAC,KAAK,EAAEJ,OAAO,CAAC;MACvBT,EAAE,CAACa,IAAI,CAAC,OAAO,EAAEH,MAAM,CAAC;MACxBV,EAAE,CAACc,GAAG,CAAC,CAAC;IACT,CAAC,CAAC;IACF,OAAOb,KAAK,CAACK,MAAM,EAAE;MACpB,MAAML,KAAK,CAACM,KAAK,CAAC,CAAW;IAC9B;EACD;AACD","ignoreList":[]}