{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/fast-extract/src/streams/transforms/Tar.mjs"],"sourcesContent":["import { PassThrough, Transform } from 'stream';\n\nimport TarIterator from 'tar-iterator';\n\nexport default class TarTransform extends Transform {\n  constructor(options) {\n    options = options ? { ...options, objectMode: true } : { objectMode: true };\n    super(options);\n  }\n\n  _transform(chunk, encoding, callback) {\n    if (this._stream) return this._stream.write(chunk, encoding, callback);\n    this._stream = new PassThrough();\n    this._iterator = new TarIterator(this._stream);\n    this._iterator.forEach(\n      (entry) => {\n        this.push(entry);\n      },\n      { concurrency: 1 },\n      (err) => {\n        if (!this._iterator) return;\n        err || this.push(null);\n        this._stream = null;\n        this._iterator.destroy();\n        this._iterator = null;\n        this._callback ? this._callback(err) : this.end(err);\n        this._callback = null;\n      }\n    );\n    this._stream.write(chunk, encoding, callback);\n  }\n\n  _flush = function _flush(callback) {\n    if (!this._stream) return callback();\n    this._callback = callback;\n    this._stream.end();\n    this._stream = null;\n  };\n\n  destroy(err) {\n    if (this._stream) {\n      this._stream.end(err);\n      this._stream = null;\n    }\n    if (this._iterator) {\n      const iterator = this._iterator;\n      this._iterator = null;\n      iterator.destroy(err);\n      this.end(err);\n    }\n  }\n}\n"],"names":["TarTransform","options","objectMode","_flush","callback","_stream","_callback","end","_transform","chunk","encoding","write","PassThrough","_iterator","TarIterator","forEach","entry","push","concurrency","err","destroy","iterator","Transform"],"mappings":";;;;;;;eAIqBA;;;sBAJkB;kEAEf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAET,IAAA,AAAMA,6BAAN;;cAAMA;aAAAA,aACPC,OAAO;gCADAD;;QAEjBC,UAAUA,UAAU,wCAAKA;YAASC,YAAY;aAAS;YAAEA,YAAY;QAAK;gBAC1E,kBAHiBF;YAGXC;kBAyBRE,SAAS,SAASA,OAAOC,QAAQ;YAC/B,IAAI,CAAC,IAAI,CAACC,OAAO,EAAE,OAAOD;YAC1B,IAAI,CAACE,SAAS,GAAGF;YACjB,IAAI,CAACC,OAAO,CAACE,GAAG;YAChB,IAAI,CAACF,OAAO,GAAG;QACjB;;;iBAjCmBL;IAMnBQ,OAAAA,UAoBC,GApBDA,SAAAA,WAAWC,KAAK,EAAEC,QAAQ,EAAEN,QAAQ;;QAClC,IAAI,IAAI,CAACC,OAAO,EAAE,OAAO,IAAI,CAACA,OAAO,CAACM,KAAK,CAACF,OAAOC,UAAUN;QAC7D,IAAI,CAACC,OAAO,GAAG,IAAIO,mBAAW;QAC9B,IAAI,CAACC,SAAS,GAAG,IAAIC,oBAAW,CAAC,IAAI,CAACT,OAAO;QAC7C,IAAI,CAACQ,SAAS,CAACE,OAAO,CACpB,SAACC;YACC,MAAKC,IAAI,CAACD;QACZ,GACA;YAAEE,aAAa;QAAE,GACjB,SAACC;YACC,IAAI,CAAC,MAAKN,SAAS,EAAE;YACrBM,OAAO,MAAKF,IAAI,CAAC;YACjB,MAAKZ,OAAO,GAAG;YACf,MAAKQ,SAAS,CAACO,OAAO;YACtB,MAAKP,SAAS,GAAG;YACjB,MAAKP,SAAS,GAAG,MAAKA,SAAS,CAACa,OAAO,MAAKZ,GAAG,CAACY;YAChD,MAAKb,SAAS,GAAG;QACnB;QAEF,IAAI,CAACD,OAAO,CAACM,KAAK,CAACF,OAAOC,UAAUN;IACtC;IASAgB,OAAAA,OAWC,GAXDA,SAAAA,QAAQD,GAAG;QACT,IAAI,IAAI,CAACd,OAAO,EAAE;YAChB,IAAI,CAACA,OAAO,CAACE,GAAG,CAACY;YACjB,IAAI,CAACd,OAAO,GAAG;QACjB;QACA,IAAI,IAAI,CAACQ,SAAS,EAAE;YAClB,IAAMQ,WAAW,IAAI,CAACR,SAAS;YAC/B,IAAI,CAACA,SAAS,GAAG;YACjBQ,SAASD,OAAO,CAACD;YACjB,IAAI,CAACZ,GAAG,CAACY;QACX;IACF;WA9CmBnB;EAAqBsB,iBAAS"}