extract-base-iterator 2.4.3 → 2.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/cjs/DirectoryEntry.js +2 -2
  2. package/dist/cjs/DirectoryEntry.js.map +1 -1
  3. package/dist/cjs/FileEntry.js +2 -2
  4. package/dist/cjs/FileEntry.js.map +1 -1
  5. package/dist/cjs/LinkEntry.js +2 -2
  6. package/dist/cjs/LinkEntry.js.map +1 -1
  7. package/dist/cjs/SymbolicLinkEntry.js +2 -2
  8. package/dist/cjs/SymbolicLinkEntry.js.map +1 -1
  9. package/dist/cjs/index.d.cts +0 -1
  10. package/dist/cjs/index.d.ts +0 -1
  11. package/dist/cjs/index.js +0 -1
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/shared/EntryStream.d.cts +1 -1
  14. package/dist/cjs/shared/EntryStream.d.ts +1 -1
  15. package/dist/cjs/shared/EntryStream.js +6 -2
  16. package/dist/cjs/shared/EntryStream.js.map +1 -1
  17. package/dist/cjs/shared/compat.d.cts +2 -0
  18. package/dist/cjs/shared/compat.d.ts +2 -0
  19. package/dist/cjs/shared/compat.js +33 -0
  20. package/dist/cjs/shared/compat.js.map +1 -1
  21. package/dist/cjs/shared/index.d.cts +1 -1
  22. package/dist/cjs/shared/index.d.ts +1 -1
  23. package/dist/cjs/shared/index.js +6 -0
  24. package/dist/cjs/shared/index.js.map +1 -1
  25. package/dist/cjs/waitForAccess.js +2 -1
  26. package/dist/cjs/waitForAccess.js.map +1 -1
  27. package/dist/esm/DirectoryEntry.js +1 -1
  28. package/dist/esm/DirectoryEntry.js.map +1 -1
  29. package/dist/esm/FileEntry.js +1 -1
  30. package/dist/esm/FileEntry.js.map +1 -1
  31. package/dist/esm/LinkEntry.js +1 -1
  32. package/dist/esm/LinkEntry.js.map +1 -1
  33. package/dist/esm/SymbolicLinkEntry.js +1 -1
  34. package/dist/esm/SymbolicLinkEntry.js.map +1 -1
  35. package/dist/esm/index.d.ts +0 -1
  36. package/dist/esm/index.js +0 -1
  37. package/dist/esm/index.js.map +1 -1
  38. package/dist/esm/shared/EntryStream.d.ts +1 -1
  39. package/dist/esm/shared/EntryStream.js +7 -3
  40. package/dist/esm/shared/EntryStream.js.map +1 -1
  41. package/dist/esm/shared/compat.d.ts +2 -0
  42. package/dist/esm/shared/compat.js +27 -0
  43. package/dist/esm/shared/compat.js.map +1 -1
  44. package/dist/esm/shared/index.d.ts +1 -1
  45. package/dist/esm/shared/index.js +1 -1
  46. package/dist/esm/shared/index.js.map +1 -1
  47. package/dist/esm/waitForAccess.js +2 -1
  48. package/dist/esm/waitForAccess.js.map +1 -1
  49. package/package.json +2 -5
  50. package/dist/cjs/polyfills.d.cts +0 -1
  51. package/dist/cjs/polyfills.d.ts +0 -1
  52. package/dist/cjs/polyfills.js +0 -13
  53. package/dist/cjs/polyfills.js.map +0 -1
  54. package/dist/esm/polyfills.d.ts +0 -1
  55. package/dist/esm/polyfills.js +0 -3
  56. package/dist/esm/polyfills.js.map +0 -1
@@ -9,12 +9,12 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _mkdirpclassic = /*#__PURE__*/ _interop_require_default(require("mkdirp-classic"));
12
- var _objectassign = /*#__PURE__*/ _interop_require_default(require("object-assign"));
13
12
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
14
13
  var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
15
14
  var _chmodts = /*#__PURE__*/ _interop_require_default(require("./fs/chmod.js"));
16
15
  var _chownts = /*#__PURE__*/ _interop_require_default(require("./fs/chown.js"));
17
16
  var _utimests = /*#__PURE__*/ _interop_require_default(require("./fs/utimes.js"));
17
+ var _indexts = require("./shared/index.js");
18
18
  var _stripPathts = /*#__PURE__*/ _interop_require_default(require("./stripPath.js"));
19
19
  var _validateAttributests = /*#__PURE__*/ _interop_require_default(require("./validateAttributes.js"));
20
20
  function _class_call_check(instance, Constructor) {
@@ -37,7 +37,7 @@ var DirectoryEntry = /*#__PURE__*/ function() {
37
37
  function DirectoryEntry(attributes) {
38
38
  _class_call_check(this, DirectoryEntry);
39
39
  (0, _validateAttributests.default)(attributes, MANDATORY_ATTRIBUTES);
40
- (0, _objectassign.default)(this, attributes);
40
+ (0, _indexts.objectAssign)(this, attributes);
41
41
  if (this.type === undefined) this.type = 'directory';
42
42
  if (this.basename === undefined) this.basename = _path.default.basename(this.path);
43
43
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/DirectoryEntry.ts"],"sourcesContent":["import mkdirp from 'mkdirp-classic';\nimport objectAssign from 'object-assign';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport utimes from './fs/utimes.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path'];\n\nimport type { Mode } from 'fs';\nimport type { DirectoryAttributes, ExtractOptions, NoParamCallback } from './types.ts';\n\nexport default class DirectoryEntry {\n mode: Mode;\n mtime: number;\n path: string;\n basename: string;\n type: string;\n\n constructor(attributes: DirectoryAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.type === undefined) this.type = 'directory';\n if (this.basename === undefined) this.basename = path.basename(this.path);\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n\n // do not check for the existence of the directory but allow out-of-order calling\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, fullPath));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["DirectoryEntry","MANDATORY_ATTRIBUTES","attributes","validateAttributes","objectAssign","type","undefined","basename","path","create","dest","options","callback","normalizedPath","normalize","fullPath","join","stripPath","queue","Queue","defer","mkdirp","bind","chmod","chown","utimes","await","err","Promise","resolve","reject","done","destroy"],"mappings":";;;;;;;eAgBqBA;;;oEAhBF;mEACM;2DACR;8DACC;8DAEA;8DACA;+DACC;kEACG;2EACS;;;;;;;;;;;AAE/B,IAAMC,uBAAuB;IAAC;IAAQ;IAAS;CAAO;AAKvC,IAAA,AAAMD,+BAAN;;aAAMA,eAOPE,UAA+B;gCAPxBF;QAQjBG,IAAAA,6BAAkB,EAACD,YAAYD;QAC/BG,IAAAA,qBAAY,EAAC,IAAI,EAAEF;QACnB,IAAI,IAAI,CAACG,IAAI,KAAKC,WAAW,IAAI,CAACD,IAAI,GAAG;QACzC,IAAI,IAAI,CAACE,QAAQ,KAAKD,WAAW,IAAI,CAACC,QAAQ,GAAGC,aAAI,CAACD,QAAQ,CAAC,IAAI,CAACC,IAAI;;iBAXvDR;IAcnBS,OAAAA,MA6BC,GA7BDA,SAAAA,OAAOC,IAAY,EAAEC,OAAyC,EAAEC,QAA0B;;QACxF,IAAI,OAAOD,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QAEA,IAAI,OAAOC,aAAa,YAAY;YAClCD,UAAUA,WAAW,CAAC;YACtB,IAAI;gBACF,IAAME,iBAAiBL,aAAI,CAACM,SAAS,CAAC,IAAI,CAACN,IAAI;gBAC/C,IAAMO,WAAWP,aAAI,CAACQ,IAAI,CAACN,MAAMO,IAAAA,oBAAS,EAACJ,gBAAgBF;gBAE3D,iFAAiF;gBACjF,IAAMO,QAAQ,IAAIC,gBAAK,CAAC;gBACxBD,MAAME,KAAK,CAACC,sBAAM,CAACC,IAAI,CAAC,MAAMP;gBAC9BG,MAAME,KAAK,CAACG,gBAAK,CAACD,IAAI,CAAC,MAAMP,UAAU,IAAI,EAAEJ;gBAC7CO,MAAME,KAAK,CAACI,gBAAK,CAACF,IAAI,CAAC,MAAMP,UAAU,IAAI,EAAEJ;gBAC7CO,MAAME,KAAK,CAACK,iBAAM,CAACH,IAAI,CAAC,MAAMP,UAAU,IAAI,EAAEJ;gBAC9CO,MAAMQ,KAAK,CAACd;gBACZ;YACF,EAAE,OAAOe,KAAK;gBACZf,SAASe;gBACT;YACF;QACF;QAEA,OAAO,IAAIC,QAAQ,SAACC,SAASC;YAC3B,MAAKrB,MAAM,CAACC,MAAMC,SAAS,SAACgB,KAAaI;uBAAoBJ,MAAMG,OAAOH,OAAOE,QAAQE;;QAC3F;IACF;IAEAC,OAAAA,OAAY,GAAZA,SAAAA,WAAW;WA7CQhC"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/DirectoryEntry.ts"],"sourcesContent":["import mkdirp from 'mkdirp-classic';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport utimes from './fs/utimes.ts';\nimport { objectAssign } from './shared/index.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path'];\n\nimport type { Mode } from 'fs';\nimport type { DirectoryAttributes, ExtractOptions, NoParamCallback } from './types.ts';\n\nexport default class DirectoryEntry {\n mode: Mode;\n mtime: number;\n path: string;\n basename: string;\n type: string;\n\n constructor(attributes: DirectoryAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.type === undefined) this.type = 'directory';\n if (this.basename === undefined) this.basename = path.basename(this.path);\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n\n // do not check for the existence of the directory but allow out-of-order calling\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, fullPath));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["DirectoryEntry","MANDATORY_ATTRIBUTES","attributes","validateAttributes","objectAssign","type","undefined","basename","path","create","dest","options","callback","normalizedPath","normalize","fullPath","join","stripPath","queue","Queue","defer","mkdirp","bind","chmod","chown","utimes","await","err","Promise","resolve","reject","done","destroy"],"mappings":";;;;;;;eAeqBA;;;oEAfF;2DACF;8DACC;8DACA;8DACA;+DACC;uBACU;kEACP;2EACS;;;;;;;;;;;AAE/B,IAAMC,uBAAuB;IAAC;IAAQ;IAAS;CAAO;AAKvC,IAAA,AAAMD,+BAAN;;aAAMA,eAOPE,UAA+B;gCAPxBF;QAQjBG,IAAAA,6BAAkB,EAACD,YAAYD;QAC/BG,IAAAA,qBAAY,EAAC,IAAI,EAAEF;QACnB,IAAI,IAAI,CAACG,IAAI,KAAKC,WAAW,IAAI,CAACD,IAAI,GAAG;QACzC,IAAI,IAAI,CAACE,QAAQ,KAAKD,WAAW,IAAI,CAACC,QAAQ,GAAGC,aAAI,CAACD,QAAQ,CAAC,IAAI,CAACC,IAAI;;iBAXvDR;IAcnBS,OAAAA,MA6BC,GA7BDA,SAAAA,OAAOC,IAAY,EAAEC,OAAyC,EAAEC,QAA0B;;QACxF,IAAI,OAAOD,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QAEA,IAAI,OAAOC,aAAa,YAAY;YAClCD,UAAUA,WAAW,CAAC;YACtB,IAAI;gBACF,IAAME,iBAAiBL,aAAI,CAACM,SAAS,CAAC,IAAI,CAACN,IAAI;gBAC/C,IAAMO,WAAWP,aAAI,CAACQ,IAAI,CAACN,MAAMO,IAAAA,oBAAS,EAACJ,gBAAgBF;gBAE3D,iFAAiF;gBACjF,IAAMO,QAAQ,IAAIC,gBAAK,CAAC;gBACxBD,MAAME,KAAK,CAACC,sBAAM,CAACC,IAAI,CAAC,MAAMP;gBAC9BG,MAAME,KAAK,CAACG,gBAAK,CAACD,IAAI,CAAC,MAAMP,UAAU,IAAI,EAAEJ;gBAC7CO,MAAME,KAAK,CAACI,gBAAK,CAACF,IAAI,CAAC,MAAMP,UAAU,IAAI,EAAEJ;gBAC7CO,MAAME,KAAK,CAACK,iBAAM,CAACH,IAAI,CAAC,MAAMP,UAAU,IAAI,EAAEJ;gBAC9CO,MAAMQ,KAAK,CAACd;gBACZ;YACF,EAAE,OAAOe,KAAK;gBACZf,SAASe;gBACT;YACF;QACF;QAEA,OAAO,IAAIC,QAAQ,SAACC,SAASC;YAC3B,MAAKrB,MAAM,CAACC,MAAMC,SAAS,SAACgB,KAAaI;uBAAoBJ,MAAMG,OAAOH,OAAOE,QAAQE;;QAC3F;IACF;IAEAC,OAAAA,OAAY,GAAZA,SAAAA,WAAW;WA7CQhC"}
@@ -9,13 +9,13 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _mkdirpclassic = /*#__PURE__*/ _interop_require_default(require("mkdirp-classic"));
12
- var _objectassign = /*#__PURE__*/ _interop_require_default(require("object-assign"));
13
12
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
14
13
  var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
15
14
  var _rimraf2 = /*#__PURE__*/ _interop_require_default(require("rimraf2"));
16
15
  var _chmodts = /*#__PURE__*/ _interop_require_default(require("./fs/chmod.js"));
17
16
  var _chownts = /*#__PURE__*/ _interop_require_default(require("./fs/chown.js"));
18
17
  var _utimests = /*#__PURE__*/ _interop_require_default(require("./fs/utimes.js"));
18
+ var _indexts = require("./shared/index.js");
19
19
  var _stripPathts = /*#__PURE__*/ _interop_require_default(require("./stripPath.js"));
20
20
  var _validateAttributests = /*#__PURE__*/ _interop_require_default(require("./validateAttributes.js"));
21
21
  function _class_call_check(instance, Constructor) {
@@ -38,7 +38,7 @@ var FileEntry = /*#__PURE__*/ function() {
38
38
  function FileEntry(attributes) {
39
39
  _class_call_check(this, FileEntry);
40
40
  (0, _validateAttributests.default)(attributes, MANDATORY_ATTRIBUTES);
41
- (0, _objectassign.default)(this, attributes);
41
+ (0, _indexts.objectAssign)(this, attributes);
42
42
  if (this.basename === undefined) this.basename = _path.default.basename(this.path);
43
43
  if (this.type === undefined) this.type = 'file';
44
44
  if (this._writeFile === undefined) throw new Error('File this missing _writeFile. Please implement this method in your subclass');
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/FileEntry.ts"],"sourcesContent":["import mkdirp from 'mkdirp-classic';\nimport objectAssign from 'object-assign';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport rimraf2 from 'rimraf2';\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport utimes from './fs/utimes.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path'];\n\nimport type { Mode } from 'fs';\nimport type { ExtractOptions, FileAttributes, NoParamCallback, WriteFileFn } from './types.ts';\n\ninterface AbstractFileEntry {\n _writeFile: WriteFileFn;\n}\n\nexport default class FileEntry {\n mode: Mode;\n mtime: number;\n path: string;\n basename: string;\n type: string;\n\n constructor(attributes: FileAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.basename === undefined) this.basename = path.basename(this.path);\n if (this.type === undefined) this.type = 'file';\n if ((this as unknown as AbstractFileEntry)._writeFile === undefined) throw new Error('File this missing _writeFile. Please implement this method in your subclass');\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n\n const queue = new Queue(1);\n if ((options as ExtractOptions).force) {\n queue.defer((callback) => {\n rimraf2(fullPath, { disableGlob: true }, (err) => {\n err && err.code !== 'ENOENT' ? callback(err) : callback();\n });\n });\n }\n queue.defer(mkdirp.bind(null, path.dirname(fullPath)));\n queue.defer((this as unknown as AbstractFileEntry)._writeFile.bind(this, fullPath, options));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["FileEntry","MANDATORY_ATTRIBUTES","attributes","validateAttributes","objectAssign","basename","undefined","path","type","_writeFile","Error","create","dest","options","callback","normalizedPath","normalize","fullPath","join","stripPath","queue","Queue","force","defer","rimraf2","disableGlob","err","code","mkdirp","bind","dirname","chmod","chown","utimes","await","Promise","resolve","reject","done","destroy"],"mappings":";;;;;;;eAqBqBA;;;oEArBF;mEACM;2DACR;8DACC;8DAEE;8DACF;8DACA;+DACC;kEACG;2EACS;;;;;;;;;;;AAE/B,IAAMC,uBAAuB;IAAC;IAAQ;IAAS;CAAO;AASvC,IAAA,AAAMD,0BAAN;;aAAMA,UAOPE,UAA0B;gCAPnBF;QAQjBG,IAAAA,6BAAkB,EAACD,YAAYD;QAC/BG,IAAAA,qBAAY,EAAC,IAAI,EAAEF;QACnB,IAAI,IAAI,CAACG,QAAQ,KAAKC,WAAW,IAAI,CAACD,QAAQ,GAAGE,aAAI,CAACF,QAAQ,CAAC,IAAI,CAACE,IAAI;QACxE,IAAI,IAAI,CAACC,IAAI,KAAKF,WAAW,IAAI,CAACE,IAAI,GAAG;QACzC,IAAI,AAAC,IAAI,CAAkCC,UAAU,KAAKH,WAAW,MAAM,IAAII,MAAM;;iBAZpEV;IAenBW,OAAAA,MAoCC,GApCDA,SAAAA,OAAOC,IAAY,EAAEC,OAAyC,EAAEC,QAA0B;;QACxF,IAAI,OAAOD,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QAEA,IAAI,OAAOC,aAAa,YAAY;YAClCD,UAAUA,WAAW,CAAC;YACtB,IAAI;gBACF,IAAME,iBAAiBR,aAAI,CAACS,SAAS,CAAC,IAAI,CAACT,IAAI;gBAC/C,IAAMU,WAAWV,aAAI,CAACW,IAAI,CAACN,MAAMO,IAAAA,oBAAS,EAACJ,gBAAgBF;gBAE3D,IAAMO,QAAQ,IAAIC,gBAAK,CAAC;gBACxB,IAAI,AAACR,QAA2BS,KAAK,EAAE;oBACrCF,MAAMG,KAAK,CAAC,SAACT;wBACXU,IAAAA,gBAAO,EAACP,UAAU;4BAAEQ,aAAa;wBAAK,GAAG,SAACC;4BACxCA,OAAOA,IAAIC,IAAI,KAAK,WAAWb,SAASY,OAAOZ;wBACjD;oBACF;gBACF;gBACAM,MAAMG,KAAK,CAACK,sBAAM,CAACC,IAAI,CAAC,MAAMtB,aAAI,CAACuB,OAAO,CAACb;gBAC3CG,MAAMG,KAAK,CAAC,AAAC,IAAI,CAAkCd,UAAU,CAACoB,IAAI,CAAC,IAAI,EAAEZ,UAAUJ;gBACnFO,MAAMG,KAAK,CAACQ,gBAAK,CAACF,IAAI,CAAC,MAAMZ,UAAU,IAAI,EAAEJ;gBAC7CO,MAAMG,KAAK,CAACS,gBAAK,CAACH,IAAI,CAAC,MAAMZ,UAAU,IAAI,EAAEJ;gBAC7CO,MAAMG,KAAK,CAACU,iBAAM,CAACJ,IAAI,CAAC,MAAMZ,UAAU,IAAI,EAAEJ;gBAC9CO,MAAMc,KAAK,CAACpB;gBACZ;YACF,EAAE,OAAOY,KAAK;gBACZZ,SAASY;gBACT;YACF;QACF;QAEA,OAAO,IAAIS,QAAQ,SAACC,SAASC;YAC3B,MAAK1B,MAAM,CAACC,MAAMC,SAAS,SAACa,KAAaY;uBAAoBZ,MAAMW,OAAOX,OAAOU,QAAQE;;QAC3F;IACF;IAEAC,OAAAA,OAAY,GAAZA,SAAAA,WAAW;WArDQvC"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/FileEntry.ts"],"sourcesContent":["import mkdirp from 'mkdirp-classic';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport utimes from './fs/utimes.ts';\nimport { objectAssign } from './shared/index.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path'];\n\nimport type { Mode } from 'fs';\nimport type { ExtractOptions, FileAttributes, NoParamCallback, WriteFileFn } from './types.ts';\n\ninterface AbstractFileEntry {\n _writeFile: WriteFileFn;\n}\n\nexport default class FileEntry {\n mode: Mode;\n mtime: number;\n path: string;\n basename: string;\n type: string;\n\n constructor(attributes: FileAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.basename === undefined) this.basename = path.basename(this.path);\n if (this.type === undefined) this.type = 'file';\n if ((this as unknown as AbstractFileEntry)._writeFile === undefined) throw new Error('File this missing _writeFile. Please implement this method in your subclass');\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n\n const queue = new Queue(1);\n if ((options as ExtractOptions).force) {\n queue.defer((callback) => {\n rimraf2(fullPath, { disableGlob: true }, (err) => {\n err && err.code !== 'ENOENT' ? callback(err) : callback();\n });\n });\n }\n queue.defer(mkdirp.bind(null, path.dirname(fullPath)));\n queue.defer((this as unknown as AbstractFileEntry)._writeFile.bind(this, fullPath, options));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["FileEntry","MANDATORY_ATTRIBUTES","attributes","validateAttributes","objectAssign","basename","undefined","path","type","_writeFile","Error","create","dest","options","callback","normalizedPath","normalize","fullPath","join","stripPath","queue","Queue","force","defer","rimraf2","disableGlob","err","code","mkdirp","bind","dirname","chmod","chown","utimes","await","Promise","resolve","reject","done","destroy"],"mappings":";;;;;;;eAoBqBA;;;oEApBF;2DACF;8DACC;8DACE;8DACF;8DACA;+DACC;uBACU;kEACP;2EACS;;;;;;;;;;;AAE/B,IAAMC,uBAAuB;IAAC;IAAQ;IAAS;CAAO;AASvC,IAAA,AAAMD,0BAAN;;aAAMA,UAOPE,UAA0B;gCAPnBF;QAQjBG,IAAAA,6BAAkB,EAACD,YAAYD;QAC/BG,IAAAA,qBAAY,EAAC,IAAI,EAAEF;QACnB,IAAI,IAAI,CAACG,QAAQ,KAAKC,WAAW,IAAI,CAACD,QAAQ,GAAGE,aAAI,CAACF,QAAQ,CAAC,IAAI,CAACE,IAAI;QACxE,IAAI,IAAI,CAACC,IAAI,KAAKF,WAAW,IAAI,CAACE,IAAI,GAAG;QACzC,IAAI,AAAC,IAAI,CAAkCC,UAAU,KAAKH,WAAW,MAAM,IAAII,MAAM;;iBAZpEV;IAenBW,OAAAA,MAoCC,GApCDA,SAAAA,OAAOC,IAAY,EAAEC,OAAyC,EAAEC,QAA0B;;QACxF,IAAI,OAAOD,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QAEA,IAAI,OAAOC,aAAa,YAAY;YAClCD,UAAUA,WAAW,CAAC;YACtB,IAAI;gBACF,IAAME,iBAAiBR,aAAI,CAACS,SAAS,CAAC,IAAI,CAACT,IAAI;gBAC/C,IAAMU,WAAWV,aAAI,CAACW,IAAI,CAACN,MAAMO,IAAAA,oBAAS,EAACJ,gBAAgBF;gBAE3D,IAAMO,QAAQ,IAAIC,gBAAK,CAAC;gBACxB,IAAI,AAACR,QAA2BS,KAAK,EAAE;oBACrCF,MAAMG,KAAK,CAAC,SAACT;wBACXU,IAAAA,gBAAO,EAACP,UAAU;4BAAEQ,aAAa;wBAAK,GAAG,SAACC;4BACxCA,OAAOA,IAAIC,IAAI,KAAK,WAAWb,SAASY,OAAOZ;wBACjD;oBACF;gBACF;gBACAM,MAAMG,KAAK,CAACK,sBAAM,CAACC,IAAI,CAAC,MAAMtB,aAAI,CAACuB,OAAO,CAACb;gBAC3CG,MAAMG,KAAK,CAAC,AAAC,IAAI,CAAkCd,UAAU,CAACoB,IAAI,CAAC,IAAI,EAAEZ,UAAUJ;gBACnFO,MAAMG,KAAK,CAACQ,gBAAK,CAACF,IAAI,CAAC,MAAMZ,UAAU,IAAI,EAAEJ;gBAC7CO,MAAMG,KAAK,CAACS,gBAAK,CAACH,IAAI,CAAC,MAAMZ,UAAU,IAAI,EAAEJ;gBAC7CO,MAAMG,KAAK,CAACU,iBAAM,CAACJ,IAAI,CAAC,MAAMZ,UAAU,IAAI,EAAEJ;gBAC9CO,MAAMc,KAAK,CAACpB;gBACZ;YACF,EAAE,OAAOY,KAAK;gBACZZ,SAASY;gBACT;YACF;QACF;QAEA,OAAO,IAAIS,QAAQ,SAACC,SAASC;YAC3B,MAAK1B,MAAM,CAACC,MAAMC,SAAS,SAACa,KAAaY;uBAAoBZ,MAAMW,OAAOX,OAAOU,QAAQE;;QAC3F;IACF;IAEAC,OAAAA,OAAY,GAAZA,SAAAA,WAAW;WArDQvC"}
@@ -10,13 +10,13 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _gracefulfs = /*#__PURE__*/ _interop_require_default(require("graceful-fs"));
12
12
  var _mkdirpclassic = /*#__PURE__*/ _interop_require_default(require("mkdirp-classic"));
13
- var _objectassign = /*#__PURE__*/ _interop_require_default(require("object-assign"));
14
13
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
15
14
  var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
16
15
  var _rimraf2 = /*#__PURE__*/ _interop_require_default(require("rimraf2"));
17
16
  var _chmodts = /*#__PURE__*/ _interop_require_default(require("./fs/chmod.js"));
18
17
  var _chownts = /*#__PURE__*/ _interop_require_default(require("./fs/chown.js"));
19
18
  var _utimests = /*#__PURE__*/ _interop_require_default(require("./fs/utimes.js"));
19
+ var _indexts = require("./shared/index.js");
20
20
  var _stripPathts = /*#__PURE__*/ _interop_require_default(require("./stripPath.js"));
21
21
  var _validateAttributests = /*#__PURE__*/ _interop_require_default(require("./validateAttributes.js"));
22
22
  function _class_call_check(instance, Constructor) {
@@ -40,7 +40,7 @@ var LinkEntry = /*#__PURE__*/ function() {
40
40
  function LinkEntry(attributes) {
41
41
  _class_call_check(this, LinkEntry);
42
42
  (0, _validateAttributests.default)(attributes, MANDATORY_ATTRIBUTES);
43
- (0, _objectassign.default)(this, attributes);
43
+ (0, _indexts.objectAssign)(this, attributes);
44
44
  if (this.basename === undefined) this.basename = _path.default.basename(this.path);
45
45
  if (this.type === undefined) this.type = 'link';
46
46
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/LinkEntry.ts"],"sourcesContent":["import fs from 'graceful-fs';\nimport mkdirp from 'mkdirp-classic';\nimport objectAssign from 'object-assign';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\n\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport utimes from './fs/utimes.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path', 'linkpath'];\n\nimport type { Mode } from 'fs';\nimport type { ExtractOptions, LinkAttributes, NoParamCallback } from './types.ts';\n\nexport default class LinkEntry {\n mode: Mode;\n mtime: number;\n path: string;\n linkpath: string;\n basename: string;\n type: string;\n\n constructor(attributes: LinkAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.basename === undefined) this.basename = path.basename(this.path);\n if (this.type === undefined) this.type = 'link';\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n const normalizedLinkpath = path.normalize(this.linkpath);\n const linkFullPath = path.join(dest, stripPath(normalizedLinkpath, options as ExtractOptions));\n\n const queue = new Queue(1);\n if ((options as ExtractOptions).force) {\n queue.defer((callback) => {\n rimraf2(fullPath, { disableGlob: true }, (err) => {\n err && err.code !== 'ENOENT' ? callback(err) : callback();\n });\n });\n }\n queue.defer(mkdirp.bind(null, path.dirname(fullPath)));\n queue.defer(fs.link.bind(fs, linkFullPath, fullPath));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["LinkEntry","MANDATORY_ATTRIBUTES","attributes","validateAttributes","objectAssign","basename","undefined","path","type","create","dest","options","callback","normalizedPath","normalize","fullPath","join","stripPath","normalizedLinkpath","linkpath","linkFullPath","queue","Queue","force","defer","rimraf2","disableGlob","err","code","mkdirp","bind","dirname","fs","link","chmod","chown","utimes","await","Promise","resolve","reject","done","destroy"],"mappings":";;;;;;;eAkBqBA;;;iEAlBN;oEACI;mEACM;2DACR;8DACC;8DACE;8DAEF;8DACA;+DACC;kEACG;2EACS;;;;;;;;;;;AAE/B,IAAMC,uBAAuB;IAAC;IAAQ;IAAS;IAAQ;CAAW;AAKnD,IAAA,AAAMD,0BAAN;;aAAMA,UAQPE,UAA0B;gCARnBF;QASjBG,IAAAA,6BAAkB,EAACD,YAAYD;QAC/BG,IAAAA,qBAAY,EAAC,IAAI,EAAEF;QACnB,IAAI,IAAI,CAACG,QAAQ,KAAKC,WAAW,IAAI,CAACD,QAAQ,GAAGE,aAAI,CAACF,QAAQ,CAAC,IAAI,CAACE,IAAI;QACxE,IAAI,IAAI,CAACC,IAAI,KAAKF,WAAW,IAAI,CAACE,IAAI,GAAG;;iBAZxBR;IAenBS,OAAAA,MAsCC,GAtCDA,SAAAA,OAAOC,IAAY,EAAEC,OAAyC,EAAEC,QAA0B;;QACxF,IAAI,OAAOD,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QAEA,IAAI,OAAOC,aAAa,YAAY;YAClCD,UAAUA,WAAW,CAAC;YACtB,IAAI;gBACF,IAAME,iBAAiBN,aAAI,CAACO,SAAS,CAAC,IAAI,CAACP,IAAI;gBAC/C,IAAMQ,WAAWR,aAAI,CAACS,IAAI,CAACN,MAAMO,IAAAA,oBAAS,EAACJ,gBAAgBF;gBAC3D,IAAMO,qBAAqBX,aAAI,CAACO,SAAS,CAAC,IAAI,CAACK,QAAQ;gBACvD,IAAMC,eAAeb,aAAI,CAACS,IAAI,CAACN,MAAMO,IAAAA,oBAAS,EAACC,oBAAoBP;gBAEnE,IAAMU,QAAQ,IAAIC,gBAAK,CAAC;gBACxB,IAAI,AAACX,QAA2BY,KAAK,EAAE;oBACrCF,MAAMG,KAAK,CAAC,SAACZ;wBACXa,IAAAA,gBAAO,EAACV,UAAU;4BAAEW,aAAa;wBAAK,GAAG,SAACC;4BACxCA,OAAOA,IAAIC,IAAI,KAAK,WAAWhB,SAASe,OAAOf;wBACjD;oBACF;gBACF;gBACAS,MAAMG,KAAK,CAACK,sBAAM,CAACC,IAAI,CAAC,MAAMvB,aAAI,CAACwB,OAAO,CAAChB;gBAC3CM,MAAMG,KAAK,CAACQ,mBAAE,CAACC,IAAI,CAACH,IAAI,CAACE,mBAAE,EAAEZ,cAAcL;gBAC3CM,MAAMG,KAAK,CAACU,gBAAK,CAACJ,IAAI,CAAC,MAAMf,UAAU,IAAI,EAAEJ;gBAC7CU,MAAMG,KAAK,CAACW,gBAAK,CAACL,IAAI,CAAC,MAAMf,UAAU,IAAI,EAAEJ;gBAC7CU,MAAMG,KAAK,CAACY,iBAAM,CAACN,IAAI,CAAC,MAAMf,UAAU,IAAI,EAAEJ;gBAC9CU,MAAMgB,KAAK,CAACzB;gBACZ;YACF,EAAE,OAAOe,KAAK;gBACZf,SAASe;gBACT;YACF;QACF;QAEA,OAAO,IAAIW,QAAQ,SAACC,SAASC;YAC3B,MAAK/B,MAAM,CAACC,MAAMC,SAAS,SAACgB,KAAac;uBAAoBd,MAAMa,OAAOb,OAAOY,QAAQE;;QAC3F;IACF;IAEAC,OAAAA,OAAY,GAAZA,SAAAA,WAAW;WAvDQ1C"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/LinkEntry.ts"],"sourcesContent":["import fs from 'graceful-fs';\nimport mkdirp from 'mkdirp-classic';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport utimes from './fs/utimes.ts';\nimport { objectAssign } from './shared/index.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path', 'linkpath'];\n\nimport type { Mode } from 'fs';\nimport type { ExtractOptions, LinkAttributes, NoParamCallback } from './types.ts';\n\nexport default class LinkEntry {\n mode: Mode;\n mtime: number;\n path: string;\n linkpath: string;\n basename: string;\n type: string;\n\n constructor(attributes: LinkAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.basename === undefined) this.basename = path.basename(this.path);\n if (this.type === undefined) this.type = 'link';\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n const normalizedLinkpath = path.normalize(this.linkpath);\n const linkFullPath = path.join(dest, stripPath(normalizedLinkpath, options as ExtractOptions));\n\n const queue = new Queue(1);\n if ((options as ExtractOptions).force) {\n queue.defer((callback) => {\n rimraf2(fullPath, { disableGlob: true }, (err) => {\n err && err.code !== 'ENOENT' ? callback(err) : callback();\n });\n });\n }\n queue.defer(mkdirp.bind(null, path.dirname(fullPath)));\n queue.defer(fs.link.bind(fs, linkFullPath, fullPath));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["LinkEntry","MANDATORY_ATTRIBUTES","attributes","validateAttributes","objectAssign","basename","undefined","path","type","create","dest","options","callback","normalizedPath","normalize","fullPath","join","stripPath","normalizedLinkpath","linkpath","linkFullPath","queue","Queue","force","defer","rimraf2","disableGlob","err","code","mkdirp","bind","dirname","fs","link","chmod","chown","utimes","await","Promise","resolve","reject","done","destroy"],"mappings":";;;;;;;eAiBqBA;;;iEAjBN;oEACI;2DACF;8DACC;8DACE;8DACF;8DACA;+DACC;uBACU;kEACP;2EACS;;;;;;;;;;;AAE/B,IAAMC,uBAAuB;IAAC;IAAQ;IAAS;IAAQ;CAAW;AAKnD,IAAA,AAAMD,0BAAN;;aAAMA,UAQPE,UAA0B;gCARnBF;QASjBG,IAAAA,6BAAkB,EAACD,YAAYD;QAC/BG,IAAAA,qBAAY,EAAC,IAAI,EAAEF;QACnB,IAAI,IAAI,CAACG,QAAQ,KAAKC,WAAW,IAAI,CAACD,QAAQ,GAAGE,aAAI,CAACF,QAAQ,CAAC,IAAI,CAACE,IAAI;QACxE,IAAI,IAAI,CAACC,IAAI,KAAKF,WAAW,IAAI,CAACE,IAAI,GAAG;;iBAZxBR;IAenBS,OAAAA,MAsCC,GAtCDA,SAAAA,OAAOC,IAAY,EAAEC,OAAyC,EAAEC,QAA0B;;QACxF,IAAI,OAAOD,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QAEA,IAAI,OAAOC,aAAa,YAAY;YAClCD,UAAUA,WAAW,CAAC;YACtB,IAAI;gBACF,IAAME,iBAAiBN,aAAI,CAACO,SAAS,CAAC,IAAI,CAACP,IAAI;gBAC/C,IAAMQ,WAAWR,aAAI,CAACS,IAAI,CAACN,MAAMO,IAAAA,oBAAS,EAACJ,gBAAgBF;gBAC3D,IAAMO,qBAAqBX,aAAI,CAACO,SAAS,CAAC,IAAI,CAACK,QAAQ;gBACvD,IAAMC,eAAeb,aAAI,CAACS,IAAI,CAACN,MAAMO,IAAAA,oBAAS,EAACC,oBAAoBP;gBAEnE,IAAMU,QAAQ,IAAIC,gBAAK,CAAC;gBACxB,IAAI,AAACX,QAA2BY,KAAK,EAAE;oBACrCF,MAAMG,KAAK,CAAC,SAACZ;wBACXa,IAAAA,gBAAO,EAACV,UAAU;4BAAEW,aAAa;wBAAK,GAAG,SAACC;4BACxCA,OAAOA,IAAIC,IAAI,KAAK,WAAWhB,SAASe,OAAOf;wBACjD;oBACF;gBACF;gBACAS,MAAMG,KAAK,CAACK,sBAAM,CAACC,IAAI,CAAC,MAAMvB,aAAI,CAACwB,OAAO,CAAChB;gBAC3CM,MAAMG,KAAK,CAACQ,mBAAE,CAACC,IAAI,CAACH,IAAI,CAACE,mBAAE,EAAEZ,cAAcL;gBAC3CM,MAAMG,KAAK,CAACU,gBAAK,CAACJ,IAAI,CAAC,MAAMf,UAAU,IAAI,EAAEJ;gBAC7CU,MAAMG,KAAK,CAACW,gBAAK,CAACL,IAAI,CAAC,MAAMf,UAAU,IAAI,EAAEJ;gBAC7CU,MAAMG,KAAK,CAACY,iBAAM,CAACN,IAAI,CAAC,MAAMf,UAAU,IAAI,EAAEJ;gBAC9CU,MAAMgB,KAAK,CAACzB;gBACZ;YACF,EAAE,OAAOe,KAAK;gBACZf,SAASe;gBACT;YACF;QACF;QAEA,OAAO,IAAIW,QAAQ,SAACC,SAASC;YAC3B,MAAK/B,MAAM,CAACC,MAAMC,SAAS,SAACgB,KAAac;uBAAoBd,MAAMa,OAAOb,OAAOY,QAAQE;;QAC3F;IACF;IAEAC,OAAAA,OAAY,GAAZA,SAAAA,WAAW;WAvDQ1C"}
@@ -11,7 +11,6 @@ Object.defineProperty(exports, "default", {
11
11
  var _gracefulfs = /*#__PURE__*/ _interop_require_default(require("graceful-fs"));
12
12
  var _isabsolute = /*#__PURE__*/ _interop_require_default(require("is-absolute"));
13
13
  var _mkdirpclassic = /*#__PURE__*/ _interop_require_default(require("mkdirp-classic"));
14
- var _objectassign = /*#__PURE__*/ _interop_require_default(require("object-assign"));
15
14
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
16
15
  var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
17
16
  var _rimraf2 = /*#__PURE__*/ _interop_require_default(require("rimraf2"));
@@ -19,6 +18,7 @@ var _chmodts = /*#__PURE__*/ _interop_require_default(require("./fs/chmod.js"));
19
18
  var _chownts = /*#__PURE__*/ _interop_require_default(require("./fs/chown.js"));
20
19
  var _symlinkWin32ts = /*#__PURE__*/ _interop_require_default(require("./fs/symlinkWin32.js"));
21
20
  var _utimests = /*#__PURE__*/ _interop_require_default(require("./fs/utimes.js"));
21
+ var _indexts = require("./shared/index.js");
22
22
  var _stripPathts = /*#__PURE__*/ _interop_require_default(require("./stripPath.js"));
23
23
  var _validateAttributests = /*#__PURE__*/ _interop_require_default(require("./validateAttributes.js"));
24
24
  function _class_call_check(instance, Constructor) {
@@ -43,7 +43,7 @@ var SymbolicLinkEntry = /*#__PURE__*/ function() {
43
43
  function SymbolicLinkEntry(attributes) {
44
44
  _class_call_check(this, SymbolicLinkEntry);
45
45
  (0, _validateAttributests.default)(attributes, MANDATORY_ATTRIBUTES);
46
- (0, _objectassign.default)(this, attributes);
46
+ (0, _indexts.objectAssign)(this, attributes);
47
47
  if (this.basename === undefined) this.basename = _path.default.basename(this.path);
48
48
  if (this.type === undefined) this.type = 'symlink';
49
49
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/SymbolicLinkEntry.ts"],"sourcesContent":["import fs from 'graceful-fs';\nimport isAbsolute from 'is-absolute';\nimport mkdirp from 'mkdirp-classic';\nimport objectAssign from 'object-assign';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\n\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport symlinkWin32 from './fs/symlinkWin32.ts';\nimport utimes from './fs/utimes.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path', 'linkpath'];\n\nimport type { Mode } from 'fs';\nimport type { ExtractOptions, LinkAttributes, NoParamCallback } from './types.ts';\n\nexport default class SymbolicLinkEntry {\n mode: Mode;\n mtime: number;\n path: string;\n linkpath: string;\n basename: string;\n type: string;\n\n constructor(attributes: LinkAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.basename === undefined) this.basename = path.basename(this.path);\n if (this.type === undefined) this.type = 'symlink';\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n let normalizedLinkpath = path.normalize(this.linkpath);\n let linkFullPath = path.join(dest, stripPath(normalizedLinkpath, options as ExtractOptions));\n if (!isAbsolute(normalizedLinkpath)) {\n const linkRelativePath = path.join(path.dirname(normalizedPath), this.linkpath);\n linkFullPath = path.join(dest, stripPath(linkRelativePath, options as ExtractOptions));\n normalizedLinkpath = path.relative(path.dirname(fullPath), linkFullPath);\n }\n\n const queue = new Queue(1);\n if ((options as ExtractOptions).force) {\n queue.defer((callback) => {\n rimraf2(fullPath, { disableGlob: true }, (err) => {\n err && err.code !== 'ENOENT' ? callback(err) : callback();\n });\n });\n }\n queue.defer(mkdirp.bind(null, path.dirname(fullPath)));\n if (isWindows) queue.defer(symlinkWin32.bind(null, linkFullPath, normalizedLinkpath, fullPath));\n else queue.defer(fs.symlink.bind(fs, normalizedLinkpath, fullPath));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["SymbolicLinkEntry","isWindows","process","platform","test","env","OSTYPE","MANDATORY_ATTRIBUTES","attributes","validateAttributes","objectAssign","basename","undefined","path","type","create","dest","options","callback","normalizedPath","normalize","fullPath","join","stripPath","normalizedLinkpath","linkpath","linkFullPath","isAbsolute","linkRelativePath","dirname","relative","queue","Queue","force","defer","rimraf2","disableGlob","err","code","mkdirp","bind","symlinkWin32","fs","symlink","chmod","chown","utimes","await","Promise","resolve","reject","done","destroy"],"mappings":"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"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/SymbolicLinkEntry.ts"],"sourcesContent":["import fs from 'graceful-fs';\nimport isAbsolute from 'is-absolute';\nimport mkdirp from 'mkdirp-classic';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport symlinkWin32 from './fs/symlinkWin32.ts';\nimport utimes from './fs/utimes.ts';\nimport { objectAssign } from './shared/index.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path', 'linkpath'];\n\nimport type { Mode } from 'fs';\nimport type { ExtractOptions, LinkAttributes, NoParamCallback } from './types.ts';\n\nexport default class SymbolicLinkEntry {\n mode: Mode;\n mtime: number;\n path: string;\n linkpath: string;\n basename: string;\n type: string;\n\n constructor(attributes: LinkAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.basename === undefined) this.basename = path.basename(this.path);\n if (this.type === undefined) this.type = 'symlink';\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n let normalizedLinkpath = path.normalize(this.linkpath);\n let linkFullPath = path.join(dest, stripPath(normalizedLinkpath, options as ExtractOptions));\n if (!isAbsolute(normalizedLinkpath)) {\n const linkRelativePath = path.join(path.dirname(normalizedPath), this.linkpath);\n linkFullPath = path.join(dest, stripPath(linkRelativePath, options as ExtractOptions));\n normalizedLinkpath = path.relative(path.dirname(fullPath), linkFullPath);\n }\n\n const queue = new Queue(1);\n if ((options as ExtractOptions).force) {\n queue.defer((callback) => {\n rimraf2(fullPath, { disableGlob: true }, (err) => {\n err && err.code !== 'ENOENT' ? callback(err) : callback();\n });\n });\n }\n queue.defer(mkdirp.bind(null, path.dirname(fullPath)));\n if (isWindows) queue.defer(symlinkWin32.bind(null, linkFullPath, normalizedLinkpath, fullPath));\n else queue.defer(fs.symlink.bind(fs, normalizedLinkpath, fullPath));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["SymbolicLinkEntry","isWindows","process","platform","test","env","OSTYPE","MANDATORY_ATTRIBUTES","attributes","validateAttributes","objectAssign","basename","undefined","path","type","create","dest","options","callback","normalizedPath","normalize","fullPath","join","stripPath","normalizedLinkpath","linkpath","linkFullPath","isAbsolute","linkRelativePath","dirname","relative","queue","Queue","force","defer","rimraf2","disableGlob","err","code","mkdirp","bind","symlinkWin32","fs","symlink","chmod","chown","utimes","await","Promise","resolve","reject","done","destroy"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import './polyfills.js';
2
1
  import StackBaseIterator from 'stack-base-iterator';
3
2
  import type { Entry } from './types.js';
4
3
  export default class ExtractBaseIterator extends StackBaseIterator<Entry> {
@@ -1,4 +1,3 @@
1
- import './polyfills.js';
2
1
  import StackBaseIterator from 'stack-base-iterator';
3
2
  import type { Entry } from './types.js';
4
3
  export default class ExtractBaseIterator extends StackBaseIterator<Entry> {
package/dist/cjs/index.js CHANGED
@@ -28,7 +28,6 @@ _export(exports, {
28
28
  return _waitForAccessts.default;
29
29
  }
30
30
  });
31
- require("./polyfills.js");
32
31
  var _stackbaseiterator = /*#__PURE__*/ _interop_require_default(require("stack-base-iterator"));
33
32
  var _DirectoryEntryts = /*#__PURE__*/ _interop_require_default(require("./DirectoryEntry.js"));
34
33
  var _FileEntryts = /*#__PURE__*/ _interop_require_default(require("./FileEntry.js"));
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/index.ts"],"sourcesContent":["import './polyfills.ts';\nimport StackBaseIterator from 'stack-base-iterator';\n\nimport type { Entry } from './types.ts';\n\nexport default class ExtractBaseIterator extends StackBaseIterator<Entry> {}\n\nexport { default as DirectoryEntry } from './DirectoryEntry.ts';\nexport { default as FileEntry } from './FileEntry.ts';\nexport { default as LinkEntry } from './LinkEntry.ts';\nexport { default as SymbolicLinkEntry } from './SymbolicLinkEntry.ts';\n// Shared utilities for iterator libraries\nexport * from './shared/index.ts';\nexport * from './types.ts';\nexport { default as waitForAccess } from './waitForAccess.ts';\n"],"names":["DirectoryEntry","FileEntry","LinkEntry","SymbolicLinkEntry","ExtractBaseIterator","waitForAccess","StackBaseIterator"],"mappings":";;;;;;;;;;;QAOoBA;eAAAA,yBAAc;;QACdC;eAAAA,oBAAS;;QACTC;eAAAA,oBAAS;;QACTC;eAAAA,4BAAiB;;;eALhBC;;QASDC;eAAAA,wBAAa;;;QAd1B;wEACuB;uEAMY;kEACL;kEACA;0EACQ;qBAE/B;qBACA;sEAC2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAT1B,IAAA,AAAMD,oCAAN;;cAAMA;aAAAA;gCAAAA;QAAN,OAAA,kBAAMA;;WAAAA;EAA4BE,0BAAiB"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/index.ts"],"sourcesContent":["import StackBaseIterator from 'stack-base-iterator';\n\nimport type { Entry } from './types.ts';\n\nexport default class ExtractBaseIterator extends StackBaseIterator<Entry> {}\n\nexport { default as DirectoryEntry } from './DirectoryEntry.ts';\nexport { default as FileEntry } from './FileEntry.ts';\nexport { default as LinkEntry } from './LinkEntry.ts';\nexport { default as SymbolicLinkEntry } from './SymbolicLinkEntry.ts';\n// Shared utilities for iterator libraries\nexport * from './shared/index.ts';\nexport * from './types.ts';\nexport { default as waitForAccess } from './waitForAccess.ts';\n"],"names":["DirectoryEntry","FileEntry","LinkEntry","SymbolicLinkEntry","ExtractBaseIterator","waitForAccess","StackBaseIterator"],"mappings":";;;;;;;;;;;QAMoBA;eAAAA,yBAAc;;QACdC;eAAAA,oBAAS;;QACTC;eAAAA,oBAAS;;QACTC;eAAAA,4BAAiB;;;eALhBC;;QASDC;eAAAA,wBAAa;;;wEAbH;uEAMY;kEACL;kEACA;0EACQ;qBAE/B;qBACA;sEAC2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAT1B,IAAA,AAAMD,oCAAN;;cAAMA;aAAAA;gCAAAA;QAAN,OAAA,kBAAMA;;WAAAA;EAA4BE,0BAAiB"}
@@ -11,7 +11,7 @@
11
11
  * - Any other archive iterator library
12
12
  */
13
13
  import Stream from 'stream';
14
- declare const ReadableBase: typeof Stream.Readable;
14
+ declare let ReadableBase: typeof Stream.Readable;
15
15
  /**
16
16
  * Base stream class for archive entry content.
17
17
  * Can be extended for special entry types like sparse files.
@@ -11,7 +11,7 @@
11
11
  * - Any other archive iterator library
12
12
  */
13
13
  import Stream from 'stream';
14
- declare const ReadableBase: typeof Stream.Readable;
14
+ declare let ReadableBase: typeof Stream.Readable;
15
15
  /**
16
16
  * Base stream class for archive entry content.
17
17
  * Can be extended for special entry types like sparse files.
@@ -19,7 +19,6 @@ Object.defineProperty(exports, "default", {
19
19
  return EntryStream;
20
20
  }
21
21
  });
22
- var _readablestream = /*#__PURE__*/ _interop_require_default(require("readable-stream"));
23
22
  var _stream = /*#__PURE__*/ _interop_require_default(require("stream"));
24
23
  function _assert_this_initialized(self) {
25
24
  if (self === void 0) {
@@ -101,7 +100,12 @@ function _is_native_reflect_construct() {
101
100
  }
102
101
  // Use native streams when available, readable-stream only for Node 0.x
103
102
  var major = +process.versions.node.split('.')[0];
104
- var ReadableBase = major > 0 ? _stream.default.Readable : _readablestream.default.Readable;
103
+ var ReadableBase;
104
+ if (major > 0) {
105
+ ReadableBase = _stream.default.Readable;
106
+ } else {
107
+ ReadableBase = require('readable-stream').Readable;
108
+ }
105
109
  var EntryStream = /*#__PURE__*/ function(ReadableBase) {
106
110
  "use strict";
107
111
  _inherits(EntryStream, ReadableBase);
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/shared/EntryStream.ts"],"sourcesContent":["/**\n * EntryStream - Simple readable stream for entry content\n *\n * Extends Readable to emit 'data', 'end', 'error' events.\n * Node 0.8 compatible via readable-stream polyfill.\n *\n * This base class is designed to be used by:\n * - zip-iterator\n * - 7z-iterator\n * - tar-iterator\n * - Any other archive iterator library\n */\n\nimport StreamCompat from 'readable-stream';\nimport Stream from 'stream';\n\n// Use native streams when available, readable-stream only for Node 0.x\nconst major = +process.versions.node.split('.')[0];\nconst ReadableBase: typeof Stream.Readable = major > 0 ? Stream.Readable : (StreamCompat.Readable as typeof Stream.Readable);\n\n/**\n * Base stream class for archive entry content.\n * Can be extended for special entry types like sparse files.\n */\nexport default class EntryStream extends ReadableBase {\n protected _ended = false;\n\n /**\n * Signal end of stream by pushing null\n */\n end(): void {\n if (this._ended) return;\n this._ended = true;\n this.push(null);\n }\n\n /**\n * Check if stream has ended\n */\n get ended(): boolean {\n return this._ended;\n }\n\n /**\n * Required by Readable - called when consumer wants data.\n * Data is pushed externally via push(), nothing to do here.\n */\n _read(_size: number): void {\n // Data is pushed externally, nothing to do here\n }\n}\n"],"names":["EntryStream","major","process","versions","node","split","ReadableBase","Stream","Readable","StreamCompat","_ended","end","push","_read","_size","ended"],"mappings":"AAAA;;;;;;;;;;;CAWC;;;;;;;eAaoBA;;;qEAXI;6DACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEnB,uEAAuE;AACvE,IAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,IAAMC,eAAuCL,QAAQ,IAAIM,eAAM,CAACC,QAAQ,GAAIC,uBAAY,CAACD,QAAQ;AAMlF,IAAA,AAAMR,4BAAN;;cAAMA;aAAAA;gCAAAA;;gBAAN,kBAAMA,+BACTU,SAAS;;;iBADAV;IAGnB;;GAEC,GACDW,OAAAA,GAIC,GAJDA,SAAAA;QACE,IAAI,IAAI,CAACD,MAAM,EAAE;QACjB,IAAI,CAACA,MAAM,GAAG;QACd,IAAI,CAACE,IAAI,CAAC;IACZ;IASA;;;GAGC,GACDC,OAAAA,KAEC,GAFDA,SAAAA,MAAMC,KAAa;IACjB,gDAAgD;IAClD;kBAzBmBd;;YAefe,KAAAA;iBAAJ,AAHA;;GAEC,GACD;gBACE,OAAO,IAAI,CAACL,MAAM;YACpB;;;WAjBmBV;EAAoBM"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/shared/EntryStream.ts"],"sourcesContent":["/**\n * EntryStream - Simple readable stream for entry content\n *\n * Extends Readable to emit 'data', 'end', 'error' events.\n * Node 0.8 compatible via readable-stream polyfill.\n *\n * This base class is designed to be used by:\n * - zip-iterator\n * - 7z-iterator\n * - tar-iterator\n * - Any other archive iterator library\n */\n\nimport Stream from 'stream';\n\n// Use native streams when available, readable-stream only for Node 0.x\nconst major = +process.versions.node.split('.')[0];\nlet ReadableBase: typeof Stream.Readable;\nif (major > 0) {\n ReadableBase = Stream.Readable;\n} else {\n ReadableBase = require('readable-stream').Readable;\n}\n\n/**\n * Base stream class for archive entry content.\n * Can be extended for special entry types like sparse files.\n */\nexport default class EntryStream extends ReadableBase {\n protected _ended = false;\n\n /**\n * Signal end of stream by pushing null\n */\n end(): void {\n if (this._ended) return;\n this._ended = true;\n this.push(null);\n }\n\n /**\n * Check if stream has ended\n */\n get ended(): boolean {\n return this._ended;\n }\n\n /**\n * Required by Readable - called when consumer wants data.\n * Data is pushed externally via push(), nothing to do here.\n */\n _read(_size: number): void {\n // Data is pushed externally, nothing to do here\n }\n}\n"],"names":["EntryStream","major","process","versions","node","split","ReadableBase","Stream","Readable","require","_ended","end","push","_read","_size","ended"],"mappings":"AAAA;;;;;;;;;;;CAWC;;;;;;;eAiBoBA;;;6DAfF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEnB,uEAAuE;AACvE,IAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,IAAIC;AACJ,IAAIL,QAAQ,GAAG;IACbK,eAAeC,eAAM,CAACC,QAAQ;AAChC,OAAO;IACLF,eAAeG,QAAQ,mBAAmBD,QAAQ;AACpD;AAMe,IAAA,AAAMR,4BAAN;;cAAMA;aAAAA;gCAAAA;;gBAAN,kBAAMA,+BACTU,SAAS;;;iBADAV;IAGnB;;GAEC,GACDW,OAAAA,GAIC,GAJDA,SAAAA;QACE,IAAI,IAAI,CAACD,MAAM,EAAE;QACjB,IAAI,CAACA,MAAM,GAAG;QACd,IAAI,CAACE,IAAI,CAAC;IACZ;IASA;;;GAGC,GACDC,OAAAA,KAEC,GAFDA,SAAAA,MAAMC,KAAa;IACjB,gDAAgD;IAClD;kBAzBmBd;;YAefe,KAAAA;iBAAJ,AAHA;;GAEC,GACD;gBACE,OAAO,IAAI,CAACL,MAAM;YACpB;;;WAjBmBV;EAAoBM"}
@@ -78,3 +78,5 @@ export declare function bufferConcat(list: (Buffer | Uint8Array)[], totalLength?
78
78
  export declare function isNaN(value: number): boolean;
79
79
  export declare function inflateRaw(input: Buffer): Buffer;
80
80
  export declare function createInflateRawStream(): NodeJS.ReadWriteStream;
81
+ export declare function setImmediateFn(fn: () => void): void;
82
+ export declare function objectAssign<T, U>(target: T, source: U): T & U;
@@ -78,3 +78,5 @@ export declare function bufferConcat(list: (Buffer | Uint8Array)[], totalLength?
78
78
  export declare function isNaN(value: number): boolean;
79
79
  export declare function inflateRaw(input: Buffer): Buffer;
80
80
  export declare function createInflateRawStream(): NodeJS.ReadWriteStream;
81
+ export declare function setImmediateFn(fn: () => void): void;
82
+ export declare function objectAssign<T, U>(target: T, source: U): T & U;
@@ -52,9 +52,15 @@ _export(exports, {
52
52
  get isNaN () {
53
53
  return isNaN;
54
54
  },
55
+ get objectAssign () {
56
+ return objectAssign;
57
+ },
55
58
  get readUInt64LE () {
56
59
  return readUInt64LE;
57
60
  },
61
+ get setImmediateFn () {
62
+ return setImmediateFn;
63
+ },
58
64
  get writeUInt64LE () {
59
65
  return writeUInt64LE;
60
66
  }
@@ -280,4 +286,31 @@ function createInflateRawStream() {
280
286
  };
281
287
  return transform;
282
288
  }
289
+ /**
290
+ * setImmediate wrapper for Node.js 0.8+
291
+ * - Uses native setImmediate on Node 0.10+
292
+ * - Falls back to next-tick for Node 0.8
293
+ */ var hasSetImmediate = typeof setImmediate === 'function';
294
+ var _nextTick = hasSetImmediate ? setImmediate : _require('next-tick');
295
+ function setImmediateFn(fn) {
296
+ _nextTick(fn);
297
+ }
298
+ /**
299
+ * Object.assign wrapper for Node.js 0.8+
300
+ * - Uses native Object.assign on Node 4.0+
301
+ * - Falls back to manual property copy on Node 0.8-3.x
302
+ */ var hasObjectAssign = typeof Object.assign === 'function';
303
+ var _hasOwnProperty = Object.prototype.hasOwnProperty;
304
+ function objectAssign(target, source) {
305
+ if (hasObjectAssign) {
306
+ return Object.assign(target, source);
307
+ }
308
+ for(var key in source){
309
+ if (_hasOwnProperty.call(source, key)) {
310
+ // biome-ignore lint/suspicious/noExplicitAny: Generic object assignment for Node 0.8 compat
311
+ target[key] = source[key];
312
+ }
313
+ }
314
+ return target;
315
+ }
283
316
  /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/shared/compat.ts"],"sourcesContent":["/**\n * Buffer Compatibility Layer for Node.js 0.8+\n *\n * Provides buffer utilities that work across all Node.js versions\n * WITHOUT modifying global Buffer object.\n *\n * Version history:\n * - Node 0.8-4.4: Only has `new Buffer()`, no `Buffer.alloc/from`\n * - Node 4.5+: Has `Buffer.alloc/from`, deprecates `new Buffer()`\n * - Node 10+: Warns or errors on `new Buffer()`\n *\n * Solution: Feature detection with graceful fallback in both directions.\n */\n\n// ESM-compatible require - works in both CJS and ESM\nimport Module from 'module';\n\nvar _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\n// Feature detection (runs once at module load)\nvar hasBufferAlloc = typeof Buffer.alloc === 'function';\nvar hasBufferAllocUnsafe = typeof Buffer.allocUnsafe === 'function';\nvar hasBufferFrom = typeof Buffer.from === 'function' && Buffer.from !== Uint8Array.from;\n\n/**\n * Allocate a zero-filled buffer (safe)\n * - Uses Buffer.alloc() on Node 4.5+\n * - Falls back to new Buffer() + fill on Node 0.8-4.4\n */\nexport function allocBuffer(size: number): Buffer {\n if (hasBufferAlloc) {\n return Buffer.alloc(size);\n }\n // Legacy fallback: new Buffer() is uninitialized, must zero-fill\n var buf = new Buffer(size);\n buf.fill(0);\n return buf;\n}\n\n/**\n * Allocate a buffer without initialization (unsafe but faster)\n * - Uses Buffer.allocUnsafe() on Node 4.5+\n * - Falls back to new Buffer() on Node 0.8-4.4\n *\n * WARNING: Buffer contents are uninitialized and may contain sensitive data.\n * Only use when you will immediately overwrite all bytes.\n */\nexport function allocBufferUnsafe(size: number): Buffer {\n if (hasBufferAllocUnsafe) {\n return Buffer.allocUnsafe(size);\n }\n return new Buffer(size);\n}\n\n/**\n * Create a buffer from string, array, or existing buffer\n * - Uses Buffer.from() on Node 4.5+\n * - Falls back to new Buffer() on Node 0.8-4.4\n * - Handles Uint8Array conversion for Node 0.8 (crypto output compatibility)\n */\nexport function bufferFrom(data: string | number[] | Buffer | Uint8Array, encoding?: BufferEncoding): Buffer {\n if (hasBufferFrom) {\n if (typeof data === 'string') {\n return Buffer.from(data, encoding);\n }\n return Buffer.from(data as number[] | Buffer);\n }\n // Node 0.8 compatibility - deprecated Buffer constructor\n // For Uint8Array, convert to array first (needed for crypto output in Node 0.8)\n if (data instanceof Uint8Array && !(data instanceof Buffer)) {\n var arr: number[] = [];\n for (var i = 0; i < data.length; i++) {\n arr.push(data[i]);\n }\n return new Buffer(arr);\n }\n return new Buffer(data as string & number[], encoding);\n}\n\n/**\n * Compare two buffers or buffer regions\n * - Uses Buffer.compare() on Node 5.10+ (with offset support)\n * - Falls back to manual comparison on Node 0.8-5.9\n */\nexport function bufferCompare(source: Buffer, target: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number {\n sourceStart = sourceStart || 0;\n sourceEnd = sourceEnd || source.length;\n targetStart = targetStart || 0;\n targetEnd = targetEnd || target.length;\n\n // Check if native compare with offset support exists (Node 5.10+)\n if (source.compare && source.compare.length >= 5) {\n return source.compare(target, targetStart, targetEnd, sourceStart, sourceEnd);\n }\n\n // Manual comparison for older Node versions\n var sourceLen = sourceEnd - sourceStart;\n var targetLen = targetEnd - targetStart;\n var len = Math.min(sourceLen, targetLen);\n\n for (var i = 0; i < len; i++) {\n var s = source[sourceStart + i];\n var t = target[targetStart + i];\n if (s !== t) return s < t ? -1 : 1;\n }\n\n return sourceLen - targetLen;\n}\n\n/**\n * Check if buffer region equals byte array\n * Useful for magic number detection without Buffer.from()\n */\nexport function bufferEquals(buf: Buffer, offset: number, expected: number[]): boolean {\n if (offset + expected.length > buf.length) return false;\n for (var i = 0; i < expected.length; i++) {\n if (buf[offset + i] !== expected[i]) return false;\n }\n return true;\n}\n\n/**\n * Copy buffer region to new buffer\n * Works on all Node versions\n */\nexport function bufferSliceCopy(buf: Buffer, start: number, end: number): Buffer {\n var result = allocBuffer(end - start);\n buf.copy(result, 0, start, end);\n return result;\n}\n\n/**\n * Read 64-bit unsigned integer (little-endian)\n * Uses two 32-bit reads since BigInt not available until Node 10.4\n *\n * WARNING: Only accurate for values < Number.MAX_SAFE_INTEGER (2^53 - 1)\n * This covers files up to ~9 PB which is practical for all real use cases.\n */\nexport function readUInt64LE(buf: Buffer, offset: number): number {\n var low = buf.readUInt32LE(offset);\n var high = buf.readUInt32LE(offset + 4);\n return high * 0x100000000 + low;\n}\n\n/**\n * Write 64-bit unsigned integer (little-endian)\n * Same precision limitation as readUInt64LE\n */\nexport function writeUInt64LE(buf: Buffer, value: number, offset: number): void {\n var low = value >>> 0;\n var high = (value / 0x100000000) >>> 0;\n buf.writeUInt32LE(low, offset);\n buf.writeUInt32LE(high, offset + 4);\n}\n\n/**\n * Concatenate buffers - compatible with Node 0.8\n * Handles crypto output which may not be proper Buffer instances in old Node.\n *\n * NOTE: This function is primarily needed for AES decryption compatibility\n * in Node 0.8 where crypto output may not be proper Buffer instances.\n * Libraries not using crypto can use native Buffer.concat() directly.\n */\nexport function bufferConcat(list: (Buffer | Uint8Array)[], totalLength?: number): Buffer {\n // Calculate actual total length first\n var actualLength = 0;\n for (var i = 0; i < list.length; i++) {\n actualLength += list[i].length;\n }\n\n // Use specified totalLength or actual length\n var targetLength = totalLength !== undefined ? totalLength : actualLength;\n\n // Check if all items are proper Buffers AND no truncation needed\n // (Node 0.8's Buffer.concat doesn't handle truncation well)\n var allBuffers = true;\n for (var j = 0; j < list.length; j++) {\n if (!(list[j] instanceof Buffer)) {\n allBuffers = false;\n break;\n }\n }\n if (allBuffers && targetLength >= actualLength) {\n return Buffer.concat(list as Buffer[], targetLength);\n }\n\n // Manual concat for mixed types or when truncation is needed\n var result = allocBuffer(targetLength);\n var offset = 0;\n for (var k = 0; k < list.length && offset < targetLength; k++) {\n var buf = list[k];\n for (var l = 0; l < buf.length && offset < targetLength; l++) {\n result[offset++] = buf[l];\n }\n }\n return result;\n}\n\n/**\n * Node 0.8 compatible isNaN (Number.isNaN didn't exist until ES2015)\n * Uses self-comparison: NaN is the only value not equal to itself\n */\n// biome-ignore lint/suspicious/noShadowRestrictedNames: Legacy compatibility\nexport function isNaN(value: number): boolean {\n // biome-ignore lint/suspicious/noSelfCompare: NaN check pattern\n return value !== value;\n}\n\n/**\n * Decompress raw DEFLATE data (no zlib/gzip header)\n * - Uses native zlib.inflateRawSync() on Node 0.11.12+\n * - Falls back to pako for Node 0.8-0.10\n *\n * Version history:\n * - Node 0.8-0.10: No zlib sync methods, use pako\n * - Node 0.11.12+: zlib.inflateRawSync available\n */\n// Feature detection for native zlib sync methods (Node 0.11.12+)\nvar zlib: typeof import('zlib') | null = null;\ntry {\n zlib = _require('zlib');\n} catch (_e) {\n // zlib not available (shouldn't happen in Node.js)\n}\nvar hasNativeInflateRaw = zlib !== null && typeof zlib.inflateRawSync === 'function';\n\nexport function inflateRaw(input: Buffer): Buffer {\n if (hasNativeInflateRaw && zlib) {\n return zlib.inflateRawSync(input);\n }\n // Fallback to pako for Node 0.8-0.10\n var pako = _require('pako');\n return bufferFrom(pako.inflateRaw(input));\n}\n\n/**\n * Create a streaming raw DEFLATE decompressor (Transform stream)\n * Decompresses data incrementally to avoid holding full output in memory.\n *\n * - Uses native zlib.createInflateRaw() on Node 0.11.12+\n * - Falls back to pako-based Transform for Node 0.8-0.10\n *\n * @returns A Transform stream that decompresses raw DEFLATE data\n */\n// Check for native streaming inflate (Node 0.11.12+ has createInflateRaw)\n// biome-ignore lint/suspicious/noExplicitAny: createInflateRaw not in older TS definitions\nvar hasNativeStreamingInflate = zlib !== null && typeof (zlib as any).createInflateRaw === 'function';\n\nexport function createInflateRawStream(): NodeJS.ReadWriteStream {\n if (hasNativeStreamingInflate && zlib) {\n // Use native zlib streaming Transform\n // biome-ignore lint/suspicious/noExplicitAny: createInflateRaw not in older TS definitions\n return (zlib as any).createInflateRaw();\n }\n\n // Fallback to pako-based Transform for Node 0.8-0.10\n // Use readable-stream for Node 0.8 compatibility\n var Transform = _require('readable-stream').Transform;\n var pako = _require('pako');\n\n var inflate = new pako.Inflate({ raw: true, chunkSize: 16384 });\n var transform = new Transform();\n var pendingChunks: Buffer[] = [];\n var ended = false;\n\n // Pako calls onData synchronously during push()\n inflate.onData = (chunk: Uint8Array) => {\n pendingChunks.push(bufferFrom(chunk));\n };\n\n inflate.onEnd = (status: number) => {\n ended = true;\n if (status !== 0) {\n transform.emit('error', new Error(`Inflate error: ${inflate.msg || 'unknown'}`));\n }\n };\n\n transform._transform = function (chunk: Buffer, _encoding: string, callback: (err?: Error) => void) {\n try {\n inflate.push(chunk, false);\n // Push any pending decompressed chunks\n while (pendingChunks.length > 0) {\n this.push(pendingChunks.shift());\n }\n callback();\n } catch (err) {\n callback(err as Error);\n }\n };\n\n transform._flush = function (callback: (err?: Error) => void) {\n try {\n inflate.push(new Uint8Array(0), true); // Signal end\n // Push any remaining decompressed chunks\n while (pendingChunks.length > 0) {\n this.push(pendingChunks.shift());\n }\n if (ended && inflate.err) {\n callback(new Error(`Inflate error: ${inflate.msg || 'unknown'}`));\n } else {\n callback();\n }\n } catch (err) {\n callback(err as Error);\n }\n };\n\n return transform;\n}\n"],"names":["allocBuffer","allocBufferUnsafe","bufferCompare","bufferConcat","bufferEquals","bufferFrom","bufferSliceCopy","createInflateRawStream","inflateRaw","isNaN","readUInt64LE","writeUInt64LE","_require","require","Module","createRequire","hasBufferAlloc","Buffer","alloc","hasBufferAllocUnsafe","allocUnsafe","hasBufferFrom","from","Uint8Array","size","buf","fill","data","encoding","arr","i","length","push","source","target","targetStart","targetEnd","sourceStart","sourceEnd","compare","sourceLen","targetLen","len","Math","min","s","t","offset","expected","start","end","result","copy","low","readUInt32LE","high","value","writeUInt32LE","list","totalLength","actualLength","targetLength","undefined","allBuffers","j","concat","k","l","zlib","_e","hasNativeInflateRaw","inflateRawSync","input","pako","hasNativeStreamingInflate","createInflateRaw","Transform","inflate","Inflate","raw","chunkSize","transform","pendingChunks","ended","onData","chunk","onEnd","status","emit","Error","msg","_transform","_encoding","callback","shift","err","_flush"],"mappings":"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"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/shared/compat.ts"],"sourcesContent":["/**\n * Buffer Compatibility Layer for Node.js 0.8+\n *\n * Provides buffer utilities that work across all Node.js versions\n * WITHOUT modifying global Buffer object.\n *\n * Version history:\n * - Node 0.8-4.4: Only has `new Buffer()`, no `Buffer.alloc/from`\n * - Node 4.5+: Has `Buffer.alloc/from`, deprecates `new Buffer()`\n * - Node 10+: Warns or errors on `new Buffer()`\n *\n * Solution: Feature detection with graceful fallback in both directions.\n */\n\n// ESM-compatible require - works in both CJS and ESM\nimport Module from 'module';\n\nvar _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\n// Feature detection (runs once at module load)\nvar hasBufferAlloc = typeof Buffer.alloc === 'function';\nvar hasBufferAllocUnsafe = typeof Buffer.allocUnsafe === 'function';\nvar hasBufferFrom = typeof Buffer.from === 'function' && Buffer.from !== Uint8Array.from;\n\n/**\n * Allocate a zero-filled buffer (safe)\n * - Uses Buffer.alloc() on Node 4.5+\n * - Falls back to new Buffer() + fill on Node 0.8-4.4\n */\nexport function allocBuffer(size: number): Buffer {\n if (hasBufferAlloc) {\n return Buffer.alloc(size);\n }\n // Legacy fallback: new Buffer() is uninitialized, must zero-fill\n var buf = new Buffer(size);\n buf.fill(0);\n return buf;\n}\n\n/**\n * Allocate a buffer without initialization (unsafe but faster)\n * - Uses Buffer.allocUnsafe() on Node 4.5+\n * - Falls back to new Buffer() on Node 0.8-4.4\n *\n * WARNING: Buffer contents are uninitialized and may contain sensitive data.\n * Only use when you will immediately overwrite all bytes.\n */\nexport function allocBufferUnsafe(size: number): Buffer {\n if (hasBufferAllocUnsafe) {\n return Buffer.allocUnsafe(size);\n }\n return new Buffer(size);\n}\n\n/**\n * Create a buffer from string, array, or existing buffer\n * - Uses Buffer.from() on Node 4.5+\n * - Falls back to new Buffer() on Node 0.8-4.4\n * - Handles Uint8Array conversion for Node 0.8 (crypto output compatibility)\n */\nexport function bufferFrom(data: string | number[] | Buffer | Uint8Array, encoding?: BufferEncoding): Buffer {\n if (hasBufferFrom) {\n if (typeof data === 'string') {\n return Buffer.from(data, encoding);\n }\n return Buffer.from(data as number[] | Buffer);\n }\n // Node 0.8 compatibility - deprecated Buffer constructor\n // For Uint8Array, convert to array first (needed for crypto output in Node 0.8)\n if (data instanceof Uint8Array && !(data instanceof Buffer)) {\n var arr: number[] = [];\n for (var i = 0; i < data.length; i++) {\n arr.push(data[i]);\n }\n return new Buffer(arr);\n }\n return new Buffer(data as string & number[], encoding);\n}\n\n/**\n * Compare two buffers or buffer regions\n * - Uses Buffer.compare() on Node 5.10+ (with offset support)\n * - Falls back to manual comparison on Node 0.8-5.9\n */\nexport function bufferCompare(source: Buffer, target: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number {\n sourceStart = sourceStart || 0;\n sourceEnd = sourceEnd || source.length;\n targetStart = targetStart || 0;\n targetEnd = targetEnd || target.length;\n\n // Check if native compare with offset support exists (Node 5.10+)\n if (source.compare && source.compare.length >= 5) {\n return source.compare(target, targetStart, targetEnd, sourceStart, sourceEnd);\n }\n\n // Manual comparison for older Node versions\n var sourceLen = sourceEnd - sourceStart;\n var targetLen = targetEnd - targetStart;\n var len = Math.min(sourceLen, targetLen);\n\n for (var i = 0; i < len; i++) {\n var s = source[sourceStart + i];\n var t = target[targetStart + i];\n if (s !== t) return s < t ? -1 : 1;\n }\n\n return sourceLen - targetLen;\n}\n\n/**\n * Check if buffer region equals byte array\n * Useful for magic number detection without Buffer.from()\n */\nexport function bufferEquals(buf: Buffer, offset: number, expected: number[]): boolean {\n if (offset + expected.length > buf.length) return false;\n for (var i = 0; i < expected.length; i++) {\n if (buf[offset + i] !== expected[i]) return false;\n }\n return true;\n}\n\n/**\n * Copy buffer region to new buffer\n * Works on all Node versions\n */\nexport function bufferSliceCopy(buf: Buffer, start: number, end: number): Buffer {\n var result = allocBuffer(end - start);\n buf.copy(result, 0, start, end);\n return result;\n}\n\n/**\n * Read 64-bit unsigned integer (little-endian)\n * Uses two 32-bit reads since BigInt not available until Node 10.4\n *\n * WARNING: Only accurate for values < Number.MAX_SAFE_INTEGER (2^53 - 1)\n * This covers files up to ~9 PB which is practical for all real use cases.\n */\nexport function readUInt64LE(buf: Buffer, offset: number): number {\n var low = buf.readUInt32LE(offset);\n var high = buf.readUInt32LE(offset + 4);\n return high * 0x100000000 + low;\n}\n\n/**\n * Write 64-bit unsigned integer (little-endian)\n * Same precision limitation as readUInt64LE\n */\nexport function writeUInt64LE(buf: Buffer, value: number, offset: number): void {\n var low = value >>> 0;\n var high = (value / 0x100000000) >>> 0;\n buf.writeUInt32LE(low, offset);\n buf.writeUInt32LE(high, offset + 4);\n}\n\n/**\n * Concatenate buffers - compatible with Node 0.8\n * Handles crypto output which may not be proper Buffer instances in old Node.\n *\n * NOTE: This function is primarily needed for AES decryption compatibility\n * in Node 0.8 where crypto output may not be proper Buffer instances.\n * Libraries not using crypto can use native Buffer.concat() directly.\n */\nexport function bufferConcat(list: (Buffer | Uint8Array)[], totalLength?: number): Buffer {\n // Calculate actual total length first\n var actualLength = 0;\n for (var i = 0; i < list.length; i++) {\n actualLength += list[i].length;\n }\n\n // Use specified totalLength or actual length\n var targetLength = totalLength !== undefined ? totalLength : actualLength;\n\n // Check if all items are proper Buffers AND no truncation needed\n // (Node 0.8's Buffer.concat doesn't handle truncation well)\n var allBuffers = true;\n for (var j = 0; j < list.length; j++) {\n if (!(list[j] instanceof Buffer)) {\n allBuffers = false;\n break;\n }\n }\n if (allBuffers && targetLength >= actualLength) {\n return Buffer.concat(list as Buffer[], targetLength);\n }\n\n // Manual concat for mixed types or when truncation is needed\n var result = allocBuffer(targetLength);\n var offset = 0;\n for (var k = 0; k < list.length && offset < targetLength; k++) {\n var buf = list[k];\n for (var l = 0; l < buf.length && offset < targetLength; l++) {\n result[offset++] = buf[l];\n }\n }\n return result;\n}\n\n/**\n * Node 0.8 compatible isNaN (Number.isNaN didn't exist until ES2015)\n * Uses self-comparison: NaN is the only value not equal to itself\n */\n// biome-ignore lint/suspicious/noShadowRestrictedNames: Legacy compatibility\nexport function isNaN(value: number): boolean {\n // biome-ignore lint/suspicious/noSelfCompare: NaN check pattern\n return value !== value;\n}\n\n/**\n * Decompress raw DEFLATE data (no zlib/gzip header)\n * - Uses native zlib.inflateRawSync() on Node 0.11.12+\n * - Falls back to pako for Node 0.8-0.10\n *\n * Version history:\n * - Node 0.8-0.10: No zlib sync methods, use pako\n * - Node 0.11.12+: zlib.inflateRawSync available\n */\n// Feature detection for native zlib sync methods (Node 0.11.12+)\nvar zlib: typeof import('zlib') | null = null;\ntry {\n zlib = _require('zlib');\n} catch (_e) {\n // zlib not available (shouldn't happen in Node.js)\n}\nvar hasNativeInflateRaw = zlib !== null && typeof zlib.inflateRawSync === 'function';\n\nexport function inflateRaw(input: Buffer): Buffer {\n if (hasNativeInflateRaw && zlib) {\n return zlib.inflateRawSync(input);\n }\n // Fallback to pako for Node 0.8-0.10\n var pako = _require('pako');\n return bufferFrom(pako.inflateRaw(input));\n}\n\n/**\n * Create a streaming raw DEFLATE decompressor (Transform stream)\n * Decompresses data incrementally to avoid holding full output in memory.\n *\n * - Uses native zlib.createInflateRaw() on Node 0.11.12+\n * - Falls back to pako-based Transform for Node 0.8-0.10\n *\n * @returns A Transform stream that decompresses raw DEFLATE data\n */\n// Check for native streaming inflate (Node 0.11.12+ has createInflateRaw)\n// biome-ignore lint/suspicious/noExplicitAny: createInflateRaw not in older TS definitions\nvar hasNativeStreamingInflate = zlib !== null && typeof (zlib as any).createInflateRaw === 'function';\n\nexport function createInflateRawStream(): NodeJS.ReadWriteStream {\n if (hasNativeStreamingInflate && zlib) {\n // Use native zlib streaming Transform\n // biome-ignore lint/suspicious/noExplicitAny: createInflateRaw not in older TS definitions\n return (zlib as any).createInflateRaw();\n }\n\n // Fallback to pako-based Transform for Node 0.8-0.10\n // Use readable-stream for Node 0.8 compatibility\n var Transform = _require('readable-stream').Transform;\n var pako = _require('pako');\n\n var inflate = new pako.Inflate({ raw: true, chunkSize: 16384 });\n var transform = new Transform();\n var pendingChunks: Buffer[] = [];\n var ended = false;\n\n // Pako calls onData synchronously during push()\n inflate.onData = (chunk: Uint8Array) => {\n pendingChunks.push(bufferFrom(chunk));\n };\n\n inflate.onEnd = (status: number) => {\n ended = true;\n if (status !== 0) {\n transform.emit('error', new Error(`Inflate error: ${inflate.msg || 'unknown'}`));\n }\n };\n\n transform._transform = function (chunk: Buffer, _encoding: string, callback: (err?: Error) => void) {\n try {\n inflate.push(chunk, false);\n // Push any pending decompressed chunks\n while (pendingChunks.length > 0) {\n this.push(pendingChunks.shift());\n }\n callback();\n } catch (err) {\n callback(err as Error);\n }\n };\n\n transform._flush = function (callback: (err?: Error) => void) {\n try {\n inflate.push(new Uint8Array(0), true); // Signal end\n // Push any remaining decompressed chunks\n while (pendingChunks.length > 0) {\n this.push(pendingChunks.shift());\n }\n if (ended && inflate.err) {\n callback(new Error(`Inflate error: ${inflate.msg || 'unknown'}`));\n } else {\n callback();\n }\n } catch (err) {\n callback(err as Error);\n }\n };\n\n return transform;\n}\n\n/**\n * setImmediate wrapper for Node.js 0.8+\n * - Uses native setImmediate on Node 0.10+\n * - Falls back to next-tick for Node 0.8\n */\nvar hasSetImmediate = typeof setImmediate === 'function';\nvar _nextTick: (fn: () => void) => void = hasSetImmediate ? setImmediate : _require('next-tick');\n\nexport function setImmediateFn(fn: () => void): void {\n _nextTick(fn);\n}\n\n/**\n * Object.assign wrapper for Node.js 0.8+\n * - Uses native Object.assign on Node 4.0+\n * - Falls back to manual property copy on Node 0.8-3.x\n */\nvar hasObjectAssign = typeof Object.assign === 'function';\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nexport function objectAssign<T, U>(target: T, source: U): T & U {\n if (hasObjectAssign) {\n return Object.assign(target, source);\n }\n for (var key in source) {\n if (_hasOwnProperty.call(source, key)) {\n // biome-ignore lint/suspicious/noExplicitAny: Generic object assignment for Node 0.8 compat\n (target as any)[key] = (source as any)[key];\n }\n }\n return target as T & U;\n}\n"],"names":["allocBuffer","allocBufferUnsafe","bufferCompare","bufferConcat","bufferEquals","bufferFrom","bufferSliceCopy","createInflateRawStream","inflateRaw","isNaN","objectAssign","readUInt64LE","setImmediateFn","writeUInt64LE","_require","require","Module","createRequire","hasBufferAlloc","Buffer","alloc","hasBufferAllocUnsafe","allocUnsafe","hasBufferFrom","from","Uint8Array","size","buf","fill","data","encoding","arr","i","length","push","source","target","targetStart","targetEnd","sourceStart","sourceEnd","compare","sourceLen","targetLen","len","Math","min","s","t","offset","expected","start","end","result","copy","low","readUInt32LE","high","value","writeUInt32LE","list","totalLength","actualLength","targetLength","undefined","allBuffers","j","concat","k","l","zlib","_e","hasNativeInflateRaw","inflateRawSync","input","pako","hasNativeStreamingInflate","createInflateRaw","Transform","inflate","Inflate","raw","chunkSize","transform","pendingChunks","ended","onData","chunk","onEnd","status","emit","Error","msg","_transform","_encoding","callback","shift","err","_flush","hasSetImmediate","setImmediate","_nextTick","fn","hasObjectAssign","Object","assign","_hasOwnProperty","prototype","hasOwnProperty","key","call"],"mappings":"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"}
@@ -10,6 +10,6 @@
10
10
  * All utilities support Node.js 0.8+
11
11
  */
12
12
  export { default as BufferList } from './BufferList.js';
13
- export { allocBuffer, allocBufferUnsafe, bufferCompare, bufferConcat, bufferEquals, bufferFrom, bufferSliceCopy, createInflateRawStream, inflateRaw, isNaN, readUInt64LE, writeUInt64LE, } from './compat.js';
13
+ export { allocBuffer, allocBufferUnsafe, bufferCompare, bufferConcat, bufferEquals, bufferFrom, bufferSliceCopy, createInflateRawStream, inflateRaw, isNaN, objectAssign, readUInt64LE, setImmediateFn, writeUInt64LE, } from './compat.js';
14
14
  export { crc32, crc32Region, verifyCrc32, verifyCrc32Region } from './crc32.js';
15
15
  export { default as EntryStream } from './EntryStream.js';
@@ -10,6 +10,6 @@
10
10
  * All utilities support Node.js 0.8+
11
11
  */
12
12
  export { default as BufferList } from './BufferList.js';
13
- export { allocBuffer, allocBufferUnsafe, bufferCompare, bufferConcat, bufferEquals, bufferFrom, bufferSliceCopy, createInflateRawStream, inflateRaw, isNaN, readUInt64LE, writeUInt64LE, } from './compat.js';
13
+ export { allocBuffer, allocBufferUnsafe, bufferCompare, bufferConcat, bufferEquals, bufferFrom, bufferSliceCopy, createInflateRawStream, inflateRaw, isNaN, objectAssign, readUInt64LE, setImmediateFn, writeUInt64LE, } from './compat.js';
14
14
  export { crc32, crc32Region, verifyCrc32, verifyCrc32Region } from './crc32.js';
15
15
  export { default as EntryStream } from './EntryStream.js';
@@ -61,9 +61,15 @@ _export(exports, {
61
61
  get isNaN () {
62
62
  return _compatts.isNaN;
63
63
  },
64
+ get objectAssign () {
65
+ return _compatts.objectAssign;
66
+ },
64
67
  get readUInt64LE () {
65
68
  return _compatts.readUInt64LE;
66
69
  },
70
+ get setImmediateFn () {
71
+ return _compatts.setImmediateFn;
72
+ },
67
73
  get verifyCrc32 () {
68
74
  return _crc32ts.verifyCrc32;
69
75
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/shared/index.ts"],"sourcesContent":["/**\n * Shared utilities for iterator libraries\n *\n * These utilities are designed to be used by:\n * - zip-iterator\n * - 7z-iterator\n * - tar-iterator\n * - Any other archive iterator library\n *\n * All utilities support Node.js 0.8+\n */\n\nexport { default as BufferList } from './BufferList.ts';\nexport {\n allocBuffer,\n allocBufferUnsafe,\n bufferCompare,\n bufferConcat,\n bufferEquals,\n bufferFrom,\n bufferSliceCopy,\n createInflateRawStream,\n inflateRaw,\n isNaN,\n readUInt64LE,\n writeUInt64LE,\n} from './compat.ts';\nexport { crc32, crc32Region, verifyCrc32, verifyCrc32Region } from './crc32.ts';\nexport { default as EntryStream } from './EntryStream.ts';\n"],"names":["BufferList","EntryStream","allocBuffer","allocBufferUnsafe","bufferCompare","bufferConcat","bufferEquals","bufferFrom","bufferSliceCopy","crc32","crc32Region","createInflateRawStream","inflateRaw","isNaN","readUInt64LE","verifyCrc32","verifyCrc32Region","writeUInt64LE"],"mappings":"AAAA;;;;;;;;;;CAUC;;;;;;;;;;;QAEmBA;eAAAA,qBAAU;;QAgBVC;eAAAA,sBAAW;;QAd7BC;eAAAA,qBAAW;;QACXC;eAAAA,2BAAiB;;QACjBC;eAAAA,uBAAa;;QACbC;eAAAA,sBAAY;;QACZC;eAAAA,sBAAY;;QACZC;eAAAA,oBAAU;;QACVC;eAAAA,yBAAe;;QAORC;eAAAA,cAAK;;QAAEC;eAAAA,oBAAW;;QANzBC;eAAAA,gCAAsB;;QACtBC;eAAAA,oBAAU;;QACVC;eAAAA,eAAK;;QACLC;eAAAA,sBAAY;;QAGeC;eAAAA,oBAAW;;QAAEC;eAAAA,0BAAiB;;QAFzDC;eAAAA,uBAAa;;;mEAbuB;wBAc/B;uBAC4D;oEAC5B"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/shared/index.ts"],"sourcesContent":["/**\n * Shared utilities for iterator libraries\n *\n * These utilities are designed to be used by:\n * - zip-iterator\n * - 7z-iterator\n * - tar-iterator\n * - Any other archive iterator library\n *\n * All utilities support Node.js 0.8+\n */\n\nexport { default as BufferList } from './BufferList.ts';\nexport {\n allocBuffer,\n allocBufferUnsafe,\n bufferCompare,\n bufferConcat,\n bufferEquals,\n bufferFrom,\n bufferSliceCopy,\n createInflateRawStream,\n inflateRaw,\n isNaN,\n objectAssign,\n readUInt64LE,\n setImmediateFn,\n writeUInt64LE,\n} from './compat.ts';\nexport { crc32, crc32Region, verifyCrc32, verifyCrc32Region } from './crc32.ts';\nexport { default as EntryStream } from './EntryStream.ts';\n"],"names":["BufferList","EntryStream","allocBuffer","allocBufferUnsafe","bufferCompare","bufferConcat","bufferEquals","bufferFrom","bufferSliceCopy","crc32","crc32Region","createInflateRawStream","inflateRaw","isNaN","objectAssign","readUInt64LE","setImmediateFn","verifyCrc32","verifyCrc32Region","writeUInt64LE"],"mappings":"AAAA;;;;;;;;;;CAUC;;;;;;;;;;;QAEmBA;eAAAA,qBAAU;;QAkBVC;eAAAA,sBAAW;;QAhB7BC;eAAAA,qBAAW;;QACXC;eAAAA,2BAAiB;;QACjBC;eAAAA,uBAAa;;QACbC;eAAAA,sBAAY;;QACZC;eAAAA,sBAAY;;QACZC;eAAAA,oBAAU;;QACVC;eAAAA,yBAAe;;QASRC;eAAAA,cAAK;;QAAEC;eAAAA,oBAAW;;QARzBC;eAAAA,gCAAsB;;QACtBC;eAAAA,oBAAU;;QACVC;eAAAA,eAAK;;QACLC;eAAAA,sBAAY;;QACZC;eAAAA,sBAAY;;QACZC;eAAAA,wBAAc;;QAGaC;eAAAA,oBAAW;;QAAEC;eAAAA,0BAAiB;;QAFzDC;eAAAA,uBAAa;;;mEAfuB;wBAgB/B;uBAC4D;oEAC5B"}
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
+ var _indexts = require("./shared/index.js");
12
13
  function _interop_require_default(obj) {
13
14
  return obj && obj.__esModule ? obj : {
14
15
  default: obj
@@ -16,7 +17,7 @@ function _interop_require_default(obj) {
16
17
  }
17
18
  function waitForAccess(fullPath, callback) {
18
19
  _fs.default.stat(fullPath, function(err) {
19
- if (err) return setImmediate(function() {
20
+ if (err) return (0, _indexts.setImmediateFn)(function() {
20
21
  return waitForAccess(fullPath, callback);
21
22
  });
22
23
  callback();
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/waitForAccess.ts"],"sourcesContent":["import fs from 'fs';\n\nimport type { NoParamCallback } from './types.ts';\n\nexport default function waitForAccess(fullPath: string, callback: NoParamCallback): undefined {\n fs.stat(fullPath, (err) => {\n if (err) return setImmediate(() => waitForAccess(fullPath, callback));\n callback();\n });\n}\n"],"names":["waitForAccess","fullPath","callback","fs","stat","err","setImmediate"],"mappings":";;;;+BAIA;;;eAAwBA;;;yDAJT;;;;;;AAIA,SAASA,cAAcC,QAAgB,EAAEC,QAAyB;IAC/EC,WAAE,CAACC,IAAI,CAACH,UAAU,SAACI;QACjB,IAAIA,KAAK,OAAOC,aAAa;mBAAMN,cAAcC,UAAUC;;QAC3DA;IACF;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/waitForAccess.ts"],"sourcesContent":["import fs from 'fs';\n\nimport { setImmediateFn } from './shared/index.ts';\nimport type { NoParamCallback } from './types.ts';\n\nexport default function waitForAccess(fullPath: string, callback: NoParamCallback): undefined {\n fs.stat(fullPath, (err) => {\n if (err) return setImmediateFn(() => waitForAccess(fullPath, callback));\n callback();\n });\n}\n"],"names":["waitForAccess","fullPath","callback","fs","stat","err","setImmediateFn"],"mappings":";;;;+BAKA;;;eAAwBA;;;yDALT;uBAEgB;;;;;;AAGhB,SAASA,cAAcC,QAAgB,EAAEC,QAAyB;IAC/EC,WAAE,CAACC,IAAI,CAACH,UAAU,SAACI;QACjB,IAAIA,KAAK,OAAOC,IAAAA,uBAAc,EAAC;mBAAMN,cAAcC,UAAUC;;QAC7DA;IACF;AACF"}
@@ -1,10 +1,10 @@
1
1
  import mkdirp from 'mkdirp-classic';
2
- import objectAssign from 'object-assign';
3
2
  import path from 'path';
4
3
  import Queue from 'queue-cb';
5
4
  import chmod from './fs/chmod.js';
6
5
  import chown from './fs/chown.js';
7
6
  import utimes from './fs/utimes.js';
7
+ import { objectAssign } from './shared/index.js';
8
8
  import stripPath from './stripPath.js';
9
9
  import validateAttributes from './validateAttributes.js';
10
10
  const MANDATORY_ATTRIBUTES = [
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/DirectoryEntry.ts"],"sourcesContent":["import mkdirp from 'mkdirp-classic';\nimport objectAssign from 'object-assign';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport utimes from './fs/utimes.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path'];\n\nimport type { Mode } from 'fs';\nimport type { DirectoryAttributes, ExtractOptions, NoParamCallback } from './types.ts';\n\nexport default class DirectoryEntry {\n mode: Mode;\n mtime: number;\n path: string;\n basename: string;\n type: string;\n\n constructor(attributes: DirectoryAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.type === undefined) this.type = 'directory';\n if (this.basename === undefined) this.basename = path.basename(this.path);\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n\n // do not check for the existence of the directory but allow out-of-order calling\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, fullPath));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["mkdirp","objectAssign","path","Queue","chmod","chown","utimes","stripPath","validateAttributes","MANDATORY_ATTRIBUTES","DirectoryEntry","create","dest","options","callback","normalizedPath","normalize","fullPath","join","queue","defer","bind","await","err","Promise","resolve","reject","done","destroy","attributes","type","undefined","basename"],"mappings":"AAAA,OAAOA,YAAY,iBAAiB;AACpC,OAAOC,kBAAkB,gBAAgB;AACzC,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAE7B,OAAOC,WAAW,gBAAgB;AAClC,OAAOC,WAAW,gBAAgB;AAClC,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,eAAe,iBAAiB;AACvC,OAAOC,wBAAwB,0BAA0B;AAEzD,MAAMC,uBAAuB;IAAC;IAAQ;IAAS;CAAO;AAKvC,IAAA,AAAMC,iBAAN,MAAMA;IAcnBC,OAAOC,IAAY,EAAEC,OAAyC,EAAEC,QAA0B,EAAgC;QACxH,IAAI,OAAOD,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QAEA,IAAI,OAAOC,aAAa,YAAY;YAClCD,UAAUA,WAAW,CAAC;YACtB,IAAI;gBACF,MAAME,iBAAiBb,KAAKc,SAAS,CAAC,IAAI,CAACd,IAAI;gBAC/C,MAAMe,WAAWf,KAAKgB,IAAI,CAACN,MAAML,UAAUQ,gBAAgBF;gBAE3D,iFAAiF;gBACjF,MAAMM,QAAQ,IAAIhB,MAAM;gBACxBgB,MAAMC,KAAK,CAACpB,OAAOqB,IAAI,CAAC,MAAMJ;gBAC9BE,MAAMC,KAAK,CAAChB,MAAMiB,IAAI,CAAC,MAAMJ,UAAU,IAAI,EAAEJ;gBAC7CM,MAAMC,KAAK,CAACf,MAAMgB,IAAI,CAAC,MAAMJ,UAAU,IAAI,EAAEJ;gBAC7CM,MAAMC,KAAK,CAACd,OAAOe,IAAI,CAAC,MAAMJ,UAAU,IAAI,EAAEJ;gBAC9CM,MAAMG,KAAK,CAACR;gBACZ;YACF,EAAE,OAAOS,KAAK;gBACZT,SAASS;gBACT;YACF;QACF;QAEA,OAAO,IAAIC,QAAQ,CAACC,SAASC;YAC3B,IAAI,CAACf,MAAM,CAACC,MAAMC,SAAS,CAACU,KAAaI,OAAoBJ,MAAMG,OAAOH,OAAOE,QAAQE;QAC3F;IACF;IAEAC,UAAU,CAAC;IAtCX,YAAYC,UAA+B,CAAE;QAC3CrB,mBAAmBqB,YAAYpB;QAC/BR,aAAa,IAAI,EAAE4B;QACnB,IAAI,IAAI,CAACC,IAAI,KAAKC,WAAW,IAAI,CAACD,IAAI,GAAG;QACzC,IAAI,IAAI,CAACE,QAAQ,KAAKD,WAAW,IAAI,CAACC,QAAQ,GAAG9B,KAAK8B,QAAQ,CAAC,IAAI,CAAC9B,IAAI;IAC1E;AAkCF;AA9CA,SAAqBQ,4BA8CpB"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/DirectoryEntry.ts"],"sourcesContent":["import mkdirp from 'mkdirp-classic';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport utimes from './fs/utimes.ts';\nimport { objectAssign } from './shared/index.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path'];\n\nimport type { Mode } from 'fs';\nimport type { DirectoryAttributes, ExtractOptions, NoParamCallback } from './types.ts';\n\nexport default class DirectoryEntry {\n mode: Mode;\n mtime: number;\n path: string;\n basename: string;\n type: string;\n\n constructor(attributes: DirectoryAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.type === undefined) this.type = 'directory';\n if (this.basename === undefined) this.basename = path.basename(this.path);\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n\n // do not check for the existence of the directory but allow out-of-order calling\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, fullPath));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["mkdirp","path","Queue","chmod","chown","utimes","objectAssign","stripPath","validateAttributes","MANDATORY_ATTRIBUTES","DirectoryEntry","create","dest","options","callback","normalizedPath","normalize","fullPath","join","queue","defer","bind","await","err","Promise","resolve","reject","done","destroy","attributes","type","undefined","basename"],"mappings":"AAAA,OAAOA,YAAY,iBAAiB;AACpC,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,OAAOC,WAAW,gBAAgB;AAClC,OAAOC,WAAW,gBAAgB;AAClC,OAAOC,YAAY,iBAAiB;AACpC,SAASC,YAAY,QAAQ,oBAAoB;AACjD,OAAOC,eAAe,iBAAiB;AACvC,OAAOC,wBAAwB,0BAA0B;AAEzD,MAAMC,uBAAuB;IAAC;IAAQ;IAAS;CAAO;AAKvC,IAAA,AAAMC,iBAAN,MAAMA;IAcnBC,OAAOC,IAAY,EAAEC,OAAyC,EAAEC,QAA0B,EAAgC;QACxH,IAAI,OAAOD,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QAEA,IAAI,OAAOC,aAAa,YAAY;YAClCD,UAAUA,WAAW,CAAC;YACtB,IAAI;gBACF,MAAME,iBAAiBd,KAAKe,SAAS,CAAC,IAAI,CAACf,IAAI;gBAC/C,MAAMgB,WAAWhB,KAAKiB,IAAI,CAACN,MAAML,UAAUQ,gBAAgBF;gBAE3D,iFAAiF;gBACjF,MAAMM,QAAQ,IAAIjB,MAAM;gBACxBiB,MAAMC,KAAK,CAACpB,OAAOqB,IAAI,CAAC,MAAMJ;gBAC9BE,MAAMC,KAAK,CAACjB,MAAMkB,IAAI,CAAC,MAAMJ,UAAU,IAAI,EAAEJ;gBAC7CM,MAAMC,KAAK,CAAChB,MAAMiB,IAAI,CAAC,MAAMJ,UAAU,IAAI,EAAEJ;gBAC7CM,MAAMC,KAAK,CAACf,OAAOgB,IAAI,CAAC,MAAMJ,UAAU,IAAI,EAAEJ;gBAC9CM,MAAMG,KAAK,CAACR;gBACZ;YACF,EAAE,OAAOS,KAAK;gBACZT,SAASS;gBACT;YACF;QACF;QAEA,OAAO,IAAIC,QAAQ,CAACC,SAASC;YAC3B,IAAI,CAACf,MAAM,CAACC,MAAMC,SAAS,CAACU,KAAaI,OAAoBJ,MAAMG,OAAOH,OAAOE,QAAQE;QAC3F;IACF;IAEAC,UAAU,CAAC;IAtCX,YAAYC,UAA+B,CAAE;QAC3CrB,mBAAmBqB,YAAYpB;QAC/BH,aAAa,IAAI,EAAEuB;QACnB,IAAI,IAAI,CAACC,IAAI,KAAKC,WAAW,IAAI,CAACD,IAAI,GAAG;QACzC,IAAI,IAAI,CAACE,QAAQ,KAAKD,WAAW,IAAI,CAACC,QAAQ,GAAG/B,KAAK+B,QAAQ,CAAC,IAAI,CAAC/B,IAAI;IAC1E;AAkCF;AA9CA,SAAqBS,4BA8CpB"}
@@ -1,11 +1,11 @@
1
1
  import mkdirp from 'mkdirp-classic';
2
- import objectAssign from 'object-assign';
3
2
  import path from 'path';
4
3
  import Queue from 'queue-cb';
5
4
  import rimraf2 from 'rimraf2';
6
5
  import chmod from './fs/chmod.js';
7
6
  import chown from './fs/chown.js';
8
7
  import utimes from './fs/utimes.js';
8
+ import { objectAssign } from './shared/index.js';
9
9
  import stripPath from './stripPath.js';
10
10
  import validateAttributes from './validateAttributes.js';
11
11
  const MANDATORY_ATTRIBUTES = [
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/FileEntry.ts"],"sourcesContent":["import mkdirp from 'mkdirp-classic';\nimport objectAssign from 'object-assign';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport rimraf2 from 'rimraf2';\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport utimes from './fs/utimes.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path'];\n\nimport type { Mode } from 'fs';\nimport type { ExtractOptions, FileAttributes, NoParamCallback, WriteFileFn } from './types.ts';\n\ninterface AbstractFileEntry {\n _writeFile: WriteFileFn;\n}\n\nexport default class FileEntry {\n mode: Mode;\n mtime: number;\n path: string;\n basename: string;\n type: string;\n\n constructor(attributes: FileAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.basename === undefined) this.basename = path.basename(this.path);\n if (this.type === undefined) this.type = 'file';\n if ((this as unknown as AbstractFileEntry)._writeFile === undefined) throw new Error('File this missing _writeFile. Please implement this method in your subclass');\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n\n const queue = new Queue(1);\n if ((options as ExtractOptions).force) {\n queue.defer((callback) => {\n rimraf2(fullPath, { disableGlob: true }, (err) => {\n err && err.code !== 'ENOENT' ? callback(err) : callback();\n });\n });\n }\n queue.defer(mkdirp.bind(null, path.dirname(fullPath)));\n queue.defer((this as unknown as AbstractFileEntry)._writeFile.bind(this, fullPath, options));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["mkdirp","objectAssign","path","Queue","rimraf2","chmod","chown","utimes","stripPath","validateAttributes","MANDATORY_ATTRIBUTES","FileEntry","create","dest","options","callback","normalizedPath","normalize","fullPath","join","queue","force","defer","disableGlob","err","code","bind","dirname","_writeFile","await","Promise","resolve","reject","done","destroy","attributes","basename","undefined","type","Error"],"mappings":"AAAA,OAAOA,YAAY,iBAAiB;AACpC,OAAOC,kBAAkB,gBAAgB;AACzC,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAE7B,OAAOC,aAAa,UAAU;AAC9B,OAAOC,WAAW,gBAAgB;AAClC,OAAOC,WAAW,gBAAgB;AAClC,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,eAAe,iBAAiB;AACvC,OAAOC,wBAAwB,0BAA0B;AAEzD,MAAMC,uBAAuB;IAAC;IAAQ;IAAS;CAAO;AASvC,IAAA,AAAMC,YAAN,MAAMA;IAenBC,OAAOC,IAAY,EAAEC,OAAyC,EAAEC,QAA0B,EAAgC;QACxH,IAAI,OAAOD,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QAEA,IAAI,OAAOC,aAAa,YAAY;YAClCD,UAAUA,WAAW,CAAC;YACtB,IAAI;gBACF,MAAME,iBAAiBd,KAAKe,SAAS,CAAC,IAAI,CAACf,IAAI;gBAC/C,MAAMgB,WAAWhB,KAAKiB,IAAI,CAACN,MAAML,UAAUQ,gBAAgBF;gBAE3D,MAAMM,QAAQ,IAAIjB,MAAM;gBACxB,IAAI,AAACW,QAA2BO,KAAK,EAAE;oBACrCD,MAAME,KAAK,CAAC,CAACP;wBACXX,QAAQc,UAAU;4BAAEK,aAAa;wBAAK,GAAG,CAACC;4BACxCA,OAAOA,IAAIC,IAAI,KAAK,WAAWV,SAASS,OAAOT;wBACjD;oBACF;gBACF;gBACAK,MAAME,KAAK,CAACtB,OAAO0B,IAAI,CAAC,MAAMxB,KAAKyB,OAAO,CAACT;gBAC3CE,MAAME,KAAK,CAAC,AAAC,IAAI,CAAkCM,UAAU,CAACF,IAAI,CAAC,IAAI,EAAER,UAAUJ;gBACnFM,MAAME,KAAK,CAACjB,MAAMqB,IAAI,CAAC,MAAMR,UAAU,IAAI,EAAEJ;gBAC7CM,MAAME,KAAK,CAAChB,MAAMoB,IAAI,CAAC,MAAMR,UAAU,IAAI,EAAEJ;gBAC7CM,MAAME,KAAK,CAACf,OAAOmB,IAAI,CAAC,MAAMR,UAAU,IAAI,EAAEJ;gBAC9CM,MAAMS,KAAK,CAACd;gBACZ;YACF,EAAE,OAAOS,KAAK;gBACZT,SAASS;gBACT;YACF;QACF;QAEA,OAAO,IAAIM,QAAQ,CAACC,SAASC;YAC3B,IAAI,CAACpB,MAAM,CAACC,MAAMC,SAAS,CAACU,KAAaS,OAAoBT,MAAMQ,OAAOR,OAAOO,QAAQE;QAC3F;IACF;IAEAC,UAAU,CAAC;IA9CX,YAAYC,UAA0B,CAAE;QACtC1B,mBAAmB0B,YAAYzB;QAC/BT,aAAa,IAAI,EAAEkC;QACnB,IAAI,IAAI,CAACC,QAAQ,KAAKC,WAAW,IAAI,CAACD,QAAQ,GAAGlC,KAAKkC,QAAQ,CAAC,IAAI,CAAClC,IAAI;QACxE,IAAI,IAAI,CAACoC,IAAI,KAAKD,WAAW,IAAI,CAACC,IAAI,GAAG;QACzC,IAAI,AAAC,IAAI,CAAkCV,UAAU,KAAKS,WAAW,MAAM,IAAIE,MAAM;IACvF;AAyCF;AAtDA,SAAqB5B,uBAsDpB"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/FileEntry.ts"],"sourcesContent":["import mkdirp from 'mkdirp-classic';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport utimes from './fs/utimes.ts';\nimport { objectAssign } from './shared/index.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path'];\n\nimport type { Mode } from 'fs';\nimport type { ExtractOptions, FileAttributes, NoParamCallback, WriteFileFn } from './types.ts';\n\ninterface AbstractFileEntry {\n _writeFile: WriteFileFn;\n}\n\nexport default class FileEntry {\n mode: Mode;\n mtime: number;\n path: string;\n basename: string;\n type: string;\n\n constructor(attributes: FileAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.basename === undefined) this.basename = path.basename(this.path);\n if (this.type === undefined) this.type = 'file';\n if ((this as unknown as AbstractFileEntry)._writeFile === undefined) throw new Error('File this missing _writeFile. Please implement this method in your subclass');\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n\n const queue = new Queue(1);\n if ((options as ExtractOptions).force) {\n queue.defer((callback) => {\n rimraf2(fullPath, { disableGlob: true }, (err) => {\n err && err.code !== 'ENOENT' ? callback(err) : callback();\n });\n });\n }\n queue.defer(mkdirp.bind(null, path.dirname(fullPath)));\n queue.defer((this as unknown as AbstractFileEntry)._writeFile.bind(this, fullPath, options));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["mkdirp","path","Queue","rimraf2","chmod","chown","utimes","objectAssign","stripPath","validateAttributes","MANDATORY_ATTRIBUTES","FileEntry","create","dest","options","callback","normalizedPath","normalize","fullPath","join","queue","force","defer","disableGlob","err","code","bind","dirname","_writeFile","await","Promise","resolve","reject","done","destroy","attributes","basename","undefined","type","Error"],"mappings":"AAAA,OAAOA,YAAY,iBAAiB;AACpC,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,OAAOC,aAAa,UAAU;AAC9B,OAAOC,WAAW,gBAAgB;AAClC,OAAOC,WAAW,gBAAgB;AAClC,OAAOC,YAAY,iBAAiB;AACpC,SAASC,YAAY,QAAQ,oBAAoB;AACjD,OAAOC,eAAe,iBAAiB;AACvC,OAAOC,wBAAwB,0BAA0B;AAEzD,MAAMC,uBAAuB;IAAC;IAAQ;IAAS;CAAO;AASvC,IAAA,AAAMC,YAAN,MAAMA;IAenBC,OAAOC,IAAY,EAAEC,OAAyC,EAAEC,QAA0B,EAAgC;QACxH,IAAI,OAAOD,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QAEA,IAAI,OAAOC,aAAa,YAAY;YAClCD,UAAUA,WAAW,CAAC;YACtB,IAAI;gBACF,MAAME,iBAAiBf,KAAKgB,SAAS,CAAC,IAAI,CAAChB,IAAI;gBAC/C,MAAMiB,WAAWjB,KAAKkB,IAAI,CAACN,MAAML,UAAUQ,gBAAgBF;gBAE3D,MAAMM,QAAQ,IAAIlB,MAAM;gBACxB,IAAI,AAACY,QAA2BO,KAAK,EAAE;oBACrCD,MAAME,KAAK,CAAC,CAACP;wBACXZ,QAAQe,UAAU;4BAAEK,aAAa;wBAAK,GAAG,CAACC;4BACxCA,OAAOA,IAAIC,IAAI,KAAK,WAAWV,SAASS,OAAOT;wBACjD;oBACF;gBACF;gBACAK,MAAME,KAAK,CAACtB,OAAO0B,IAAI,CAAC,MAAMzB,KAAK0B,OAAO,CAACT;gBAC3CE,MAAME,KAAK,CAAC,AAAC,IAAI,CAAkCM,UAAU,CAACF,IAAI,CAAC,IAAI,EAAER,UAAUJ;gBACnFM,MAAME,KAAK,CAAClB,MAAMsB,IAAI,CAAC,MAAMR,UAAU,IAAI,EAAEJ;gBAC7CM,MAAME,KAAK,CAACjB,MAAMqB,IAAI,CAAC,MAAMR,UAAU,IAAI,EAAEJ;gBAC7CM,MAAME,KAAK,CAAChB,OAAOoB,IAAI,CAAC,MAAMR,UAAU,IAAI,EAAEJ;gBAC9CM,MAAMS,KAAK,CAACd;gBACZ;YACF,EAAE,OAAOS,KAAK;gBACZT,SAASS;gBACT;YACF;QACF;QAEA,OAAO,IAAIM,QAAQ,CAACC,SAASC;YAC3B,IAAI,CAACpB,MAAM,CAACC,MAAMC,SAAS,CAACU,KAAaS,OAAoBT,MAAMQ,OAAOR,OAAOO,QAAQE;QAC3F;IACF;IAEAC,UAAU,CAAC;IA9CX,YAAYC,UAA0B,CAAE;QACtC1B,mBAAmB0B,YAAYzB;QAC/BH,aAAa,IAAI,EAAE4B;QACnB,IAAI,IAAI,CAACC,QAAQ,KAAKC,WAAW,IAAI,CAACD,QAAQ,GAAGnC,KAAKmC,QAAQ,CAAC,IAAI,CAACnC,IAAI;QACxE,IAAI,IAAI,CAACqC,IAAI,KAAKD,WAAW,IAAI,CAACC,IAAI,GAAG;QACzC,IAAI,AAAC,IAAI,CAAkCV,UAAU,KAAKS,WAAW,MAAM,IAAIE,MAAM;IACvF;AAyCF;AAtDA,SAAqB5B,uBAsDpB"}
@@ -1,12 +1,12 @@
1
1
  import fs from 'graceful-fs';
2
2
  import mkdirp from 'mkdirp-classic';
3
- import objectAssign from 'object-assign';
4
3
  import path from 'path';
5
4
  import Queue from 'queue-cb';
6
5
  import rimraf2 from 'rimraf2';
7
6
  import chmod from './fs/chmod.js';
8
7
  import chown from './fs/chown.js';
9
8
  import utimes from './fs/utimes.js';
9
+ import { objectAssign } from './shared/index.js';
10
10
  import stripPath from './stripPath.js';
11
11
  import validateAttributes from './validateAttributes.js';
12
12
  const MANDATORY_ATTRIBUTES = [
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/LinkEntry.ts"],"sourcesContent":["import fs from 'graceful-fs';\nimport mkdirp from 'mkdirp-classic';\nimport objectAssign from 'object-assign';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\n\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport utimes from './fs/utimes.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path', 'linkpath'];\n\nimport type { Mode } from 'fs';\nimport type { ExtractOptions, LinkAttributes, NoParamCallback } from './types.ts';\n\nexport default class LinkEntry {\n mode: Mode;\n mtime: number;\n path: string;\n linkpath: string;\n basename: string;\n type: string;\n\n constructor(attributes: LinkAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.basename === undefined) this.basename = path.basename(this.path);\n if (this.type === undefined) this.type = 'link';\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n const normalizedLinkpath = path.normalize(this.linkpath);\n const linkFullPath = path.join(dest, stripPath(normalizedLinkpath, options as ExtractOptions));\n\n const queue = new Queue(1);\n if ((options as ExtractOptions).force) {\n queue.defer((callback) => {\n rimraf2(fullPath, { disableGlob: true }, (err) => {\n err && err.code !== 'ENOENT' ? callback(err) : callback();\n });\n });\n }\n queue.defer(mkdirp.bind(null, path.dirname(fullPath)));\n queue.defer(fs.link.bind(fs, linkFullPath, fullPath));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["fs","mkdirp","objectAssign","path","Queue","rimraf2","chmod","chown","utimes","stripPath","validateAttributes","MANDATORY_ATTRIBUTES","LinkEntry","create","dest","options","callback","normalizedPath","normalize","fullPath","join","normalizedLinkpath","linkpath","linkFullPath","queue","force","defer","disableGlob","err","code","bind","dirname","link","await","Promise","resolve","reject","done","destroy","attributes","basename","undefined","type"],"mappings":"AAAA,OAAOA,QAAQ,cAAc;AAC7B,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,kBAAkB,gBAAgB;AACzC,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,OAAOC,aAAa,UAAU;AAE9B,OAAOC,WAAW,gBAAgB;AAClC,OAAOC,WAAW,gBAAgB;AAClC,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,eAAe,iBAAiB;AACvC,OAAOC,wBAAwB,0BAA0B;AAEzD,MAAMC,uBAAuB;IAAC;IAAQ;IAAS;IAAQ;CAAW;AAKnD,IAAA,AAAMC,YAAN,MAAMA;IAenBC,OAAOC,IAAY,EAAEC,OAAyC,EAAEC,QAA0B,EAAgC;QACxH,IAAI,OAAOD,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QAEA,IAAI,OAAOC,aAAa,YAAY;YAClCD,UAAUA,WAAW,CAAC;YACtB,IAAI;gBACF,MAAME,iBAAiBd,KAAKe,SAAS,CAAC,IAAI,CAACf,IAAI;gBAC/C,MAAMgB,WAAWhB,KAAKiB,IAAI,CAACN,MAAML,UAAUQ,gBAAgBF;gBAC3D,MAAMM,qBAAqBlB,KAAKe,SAAS,CAAC,IAAI,CAACI,QAAQ;gBACvD,MAAMC,eAAepB,KAAKiB,IAAI,CAACN,MAAML,UAAUY,oBAAoBN;gBAEnE,MAAMS,QAAQ,IAAIpB,MAAM;gBACxB,IAAI,AAACW,QAA2BU,KAAK,EAAE;oBACrCD,MAAME,KAAK,CAAC,CAACV;wBACXX,QAAQc,UAAU;4BAAEQ,aAAa;wBAAK,GAAG,CAACC;4BACxCA,OAAOA,IAAIC,IAAI,KAAK,WAAWb,SAASY,OAAOZ;wBACjD;oBACF;gBACF;gBACAQ,MAAME,KAAK,CAACzB,OAAO6B,IAAI,CAAC,MAAM3B,KAAK4B,OAAO,CAACZ;gBAC3CK,MAAME,KAAK,CAAC1B,GAAGgC,IAAI,CAACF,IAAI,CAAC9B,IAAIuB,cAAcJ;gBAC3CK,MAAME,KAAK,CAACpB,MAAMwB,IAAI,CAAC,MAAMX,UAAU,IAAI,EAAEJ;gBAC7CS,MAAME,KAAK,CAACnB,MAAMuB,IAAI,CAAC,MAAMX,UAAU,IAAI,EAAEJ;gBAC7CS,MAAME,KAAK,CAAClB,OAAOsB,IAAI,CAAC,MAAMX,UAAU,IAAI,EAAEJ;gBAC9CS,MAAMS,KAAK,CAACjB;gBACZ;YACF,EAAE,OAAOY,KAAK;gBACZZ,SAASY;gBACT;YACF;QACF;QAEA,OAAO,IAAIM,QAAQ,CAACC,SAASC;YAC3B,IAAI,CAACvB,MAAM,CAACC,MAAMC,SAAS,CAACa,KAAaS,OAAoBT,MAAMQ,OAAOR,OAAOO,QAAQE;QAC3F;IACF;IAEAC,UAAU,CAAC;IA/CX,YAAYC,UAA0B,CAAE;QACtC7B,mBAAmB6B,YAAY5B;QAC/BT,aAAa,IAAI,EAAEqC;QACnB,IAAI,IAAI,CAACC,QAAQ,KAAKC,WAAW,IAAI,CAACD,QAAQ,GAAGrC,KAAKqC,QAAQ,CAAC,IAAI,CAACrC,IAAI;QACxE,IAAI,IAAI,CAACuC,IAAI,KAAKD,WAAW,IAAI,CAACC,IAAI,GAAG;IAC3C;AA2CF;AAxDA,SAAqB9B,uBAwDpB"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/LinkEntry.ts"],"sourcesContent":["import fs from 'graceful-fs';\nimport mkdirp from 'mkdirp-classic';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport utimes from './fs/utimes.ts';\nimport { objectAssign } from './shared/index.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path', 'linkpath'];\n\nimport type { Mode } from 'fs';\nimport type { ExtractOptions, LinkAttributes, NoParamCallback } from './types.ts';\n\nexport default class LinkEntry {\n mode: Mode;\n mtime: number;\n path: string;\n linkpath: string;\n basename: string;\n type: string;\n\n constructor(attributes: LinkAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.basename === undefined) this.basename = path.basename(this.path);\n if (this.type === undefined) this.type = 'link';\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n const normalizedLinkpath = path.normalize(this.linkpath);\n const linkFullPath = path.join(dest, stripPath(normalizedLinkpath, options as ExtractOptions));\n\n const queue = new Queue(1);\n if ((options as ExtractOptions).force) {\n queue.defer((callback) => {\n rimraf2(fullPath, { disableGlob: true }, (err) => {\n err && err.code !== 'ENOENT' ? callback(err) : callback();\n });\n });\n }\n queue.defer(mkdirp.bind(null, path.dirname(fullPath)));\n queue.defer(fs.link.bind(fs, linkFullPath, fullPath));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["fs","mkdirp","path","Queue","rimraf2","chmod","chown","utimes","objectAssign","stripPath","validateAttributes","MANDATORY_ATTRIBUTES","LinkEntry","create","dest","options","callback","normalizedPath","normalize","fullPath","join","normalizedLinkpath","linkpath","linkFullPath","queue","force","defer","disableGlob","err","code","bind","dirname","link","await","Promise","resolve","reject","done","destroy","attributes","basename","undefined","type"],"mappings":"AAAA,OAAOA,QAAQ,cAAc;AAC7B,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,OAAOC,aAAa,UAAU;AAC9B,OAAOC,WAAW,gBAAgB;AAClC,OAAOC,WAAW,gBAAgB;AAClC,OAAOC,YAAY,iBAAiB;AACpC,SAASC,YAAY,QAAQ,oBAAoB;AACjD,OAAOC,eAAe,iBAAiB;AACvC,OAAOC,wBAAwB,0BAA0B;AAEzD,MAAMC,uBAAuB;IAAC;IAAQ;IAAS;IAAQ;CAAW;AAKnD,IAAA,AAAMC,YAAN,MAAMA;IAenBC,OAAOC,IAAY,EAAEC,OAAyC,EAAEC,QAA0B,EAAgC;QACxH,IAAI,OAAOD,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QAEA,IAAI,OAAOC,aAAa,YAAY;YAClCD,UAAUA,WAAW,CAAC;YACtB,IAAI;gBACF,MAAME,iBAAiBf,KAAKgB,SAAS,CAAC,IAAI,CAAChB,IAAI;gBAC/C,MAAMiB,WAAWjB,KAAKkB,IAAI,CAACN,MAAML,UAAUQ,gBAAgBF;gBAC3D,MAAMM,qBAAqBnB,KAAKgB,SAAS,CAAC,IAAI,CAACI,QAAQ;gBACvD,MAAMC,eAAerB,KAAKkB,IAAI,CAACN,MAAML,UAAUY,oBAAoBN;gBAEnE,MAAMS,QAAQ,IAAIrB,MAAM;gBACxB,IAAI,AAACY,QAA2BU,KAAK,EAAE;oBACrCD,MAAME,KAAK,CAAC,CAACV;wBACXZ,QAAQe,UAAU;4BAAEQ,aAAa;wBAAK,GAAG,CAACC;4BACxCA,OAAOA,IAAIC,IAAI,KAAK,WAAWb,SAASY,OAAOZ;wBACjD;oBACF;gBACF;gBACAQ,MAAME,KAAK,CAACzB,OAAO6B,IAAI,CAAC,MAAM5B,KAAK6B,OAAO,CAACZ;gBAC3CK,MAAME,KAAK,CAAC1B,GAAGgC,IAAI,CAACF,IAAI,CAAC9B,IAAIuB,cAAcJ;gBAC3CK,MAAME,KAAK,CAACrB,MAAMyB,IAAI,CAAC,MAAMX,UAAU,IAAI,EAAEJ;gBAC7CS,MAAME,KAAK,CAACpB,MAAMwB,IAAI,CAAC,MAAMX,UAAU,IAAI,EAAEJ;gBAC7CS,MAAME,KAAK,CAACnB,OAAOuB,IAAI,CAAC,MAAMX,UAAU,IAAI,EAAEJ;gBAC9CS,MAAMS,KAAK,CAACjB;gBACZ;YACF,EAAE,OAAOY,KAAK;gBACZZ,SAASY;gBACT;YACF;QACF;QAEA,OAAO,IAAIM,QAAQ,CAACC,SAASC;YAC3B,IAAI,CAACvB,MAAM,CAACC,MAAMC,SAAS,CAACa,KAAaS,OAAoBT,MAAMQ,OAAOR,OAAOO,QAAQE;QAC3F;IACF;IAEAC,UAAU,CAAC;IA/CX,YAAYC,UAA0B,CAAE;QACtC7B,mBAAmB6B,YAAY5B;QAC/BH,aAAa,IAAI,EAAE+B;QACnB,IAAI,IAAI,CAACC,QAAQ,KAAKC,WAAW,IAAI,CAACD,QAAQ,GAAGtC,KAAKsC,QAAQ,CAAC,IAAI,CAACtC,IAAI;QACxE,IAAI,IAAI,CAACwC,IAAI,KAAKD,WAAW,IAAI,CAACC,IAAI,GAAG;IAC3C;AA2CF;AAxDA,SAAqB9B,uBAwDpB"}
@@ -1,7 +1,6 @@
1
1
  import fs from 'graceful-fs';
2
2
  import isAbsolute from 'is-absolute';
3
3
  import mkdirp from 'mkdirp-classic';
4
- import objectAssign from 'object-assign';
5
4
  import path from 'path';
6
5
  import Queue from 'queue-cb';
7
6
  import rimraf2 from 'rimraf2';
@@ -9,6 +8,7 @@ import chmod from './fs/chmod.js';
9
8
  import chown from './fs/chown.js';
10
9
  import symlinkWin32 from './fs/symlinkWin32.js';
11
10
  import utimes from './fs/utimes.js';
11
+ import { objectAssign } from './shared/index.js';
12
12
  import stripPath from './stripPath.js';
13
13
  import validateAttributes from './validateAttributes.js';
14
14
  const isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/SymbolicLinkEntry.ts"],"sourcesContent":["import fs from 'graceful-fs';\nimport isAbsolute from 'is-absolute';\nimport mkdirp from 'mkdirp-classic';\nimport objectAssign from 'object-assign';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\n\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport symlinkWin32 from './fs/symlinkWin32.ts';\nimport utimes from './fs/utimes.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path', 'linkpath'];\n\nimport type { Mode } from 'fs';\nimport type { ExtractOptions, LinkAttributes, NoParamCallback } from './types.ts';\n\nexport default class SymbolicLinkEntry {\n mode: Mode;\n mtime: number;\n path: string;\n linkpath: string;\n basename: string;\n type: string;\n\n constructor(attributes: LinkAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.basename === undefined) this.basename = path.basename(this.path);\n if (this.type === undefined) this.type = 'symlink';\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n let normalizedLinkpath = path.normalize(this.linkpath);\n let linkFullPath = path.join(dest, stripPath(normalizedLinkpath, options as ExtractOptions));\n if (!isAbsolute(normalizedLinkpath)) {\n const linkRelativePath = path.join(path.dirname(normalizedPath), this.linkpath);\n linkFullPath = path.join(dest, stripPath(linkRelativePath, options as ExtractOptions));\n normalizedLinkpath = path.relative(path.dirname(fullPath), linkFullPath);\n }\n\n const queue = new Queue(1);\n if ((options as ExtractOptions).force) {\n queue.defer((callback) => {\n rimraf2(fullPath, { disableGlob: true }, (err) => {\n err && err.code !== 'ENOENT' ? callback(err) : callback();\n });\n });\n }\n queue.defer(mkdirp.bind(null, path.dirname(fullPath)));\n if (isWindows) queue.defer(symlinkWin32.bind(null, linkFullPath, normalizedLinkpath, fullPath));\n else queue.defer(fs.symlink.bind(fs, normalizedLinkpath, fullPath));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["fs","isAbsolute","mkdirp","objectAssign","path","Queue","rimraf2","chmod","chown","symlinkWin32","utimes","stripPath","validateAttributes","isWindows","process","platform","test","env","OSTYPE","MANDATORY_ATTRIBUTES","SymbolicLinkEntry","create","dest","options","callback","normalizedPath","normalize","fullPath","join","normalizedLinkpath","linkpath","linkFullPath","linkRelativePath","dirname","relative","queue","force","defer","disableGlob","err","code","bind","symlink","await","Promise","resolve","reject","done","destroy","attributes","basename","undefined","type"],"mappings":"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"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/SymbolicLinkEntry.ts"],"sourcesContent":["import fs from 'graceful-fs';\nimport isAbsolute from 'is-absolute';\nimport mkdirp from 'mkdirp-classic';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\nimport chmod from './fs/chmod.ts';\nimport chown from './fs/chown.ts';\nimport symlinkWin32 from './fs/symlinkWin32.ts';\nimport utimes from './fs/utimes.ts';\nimport { objectAssign } from './shared/index.ts';\nimport stripPath from './stripPath.ts';\nimport validateAttributes from './validateAttributes.ts';\n\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path', 'linkpath'];\n\nimport type { Mode } from 'fs';\nimport type { ExtractOptions, LinkAttributes, NoParamCallback } from './types.ts';\n\nexport default class SymbolicLinkEntry {\n mode: Mode;\n mtime: number;\n path: string;\n linkpath: string;\n basename: string;\n type: string;\n\n constructor(attributes: LinkAttributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.basename === undefined) this.basename = path.basename(this.path);\n if (this.type === undefined) this.type = 'symlink';\n }\n\n create(dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined | Promise<boolean> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n try {\n const normalizedPath = path.normalize(this.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options as ExtractOptions));\n let normalizedLinkpath = path.normalize(this.linkpath);\n let linkFullPath = path.join(dest, stripPath(normalizedLinkpath, options as ExtractOptions));\n if (!isAbsolute(normalizedLinkpath)) {\n const linkRelativePath = path.join(path.dirname(normalizedPath), this.linkpath);\n linkFullPath = path.join(dest, stripPath(linkRelativePath, options as ExtractOptions));\n normalizedLinkpath = path.relative(path.dirname(fullPath), linkFullPath);\n }\n\n const queue = new Queue(1);\n if ((options as ExtractOptions).force) {\n queue.defer((callback) => {\n rimraf2(fullPath, { disableGlob: true }, (err) => {\n err && err.code !== 'ENOENT' ? callback(err) : callback();\n });\n });\n }\n queue.defer(mkdirp.bind(null, path.dirname(fullPath)));\n if (isWindows) queue.defer(symlinkWin32.bind(null, linkFullPath, normalizedLinkpath, fullPath));\n else queue.defer(fs.symlink.bind(fs, normalizedLinkpath, fullPath));\n queue.defer(chmod.bind(null, fullPath, this, options));\n queue.defer(chown.bind(null, fullPath, this, options));\n queue.defer(utimes.bind(null, fullPath, this, options));\n queue.await(callback);\n return;\n } catch (err) {\n callback(err);\n return;\n }\n }\n\n return new Promise((resolve, reject) => {\n this.create(dest, options, (err?: Error, done?: boolean) => (err ? reject(err) : resolve(done)));\n });\n }\n\n destroy() {}\n}\n"],"names":["fs","isAbsolute","mkdirp","path","Queue","rimraf2","chmod","chown","symlinkWin32","utimes","objectAssign","stripPath","validateAttributes","isWindows","process","platform","test","env","OSTYPE","MANDATORY_ATTRIBUTES","SymbolicLinkEntry","create","dest","options","callback","normalizedPath","normalize","fullPath","join","normalizedLinkpath","linkpath","linkFullPath","linkRelativePath","dirname","relative","queue","force","defer","disableGlob","err","code","bind","symlink","await","Promise","resolve","reject","done","destroy","attributes","basename","undefined","type"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import './polyfills.js';
2
1
  import StackBaseIterator from 'stack-base-iterator';
3
2
  import type { Entry } from './types.js';
4
3
  export default class ExtractBaseIterator extends StackBaseIterator<Entry> {
package/dist/esm/index.js CHANGED
@@ -1,4 +1,3 @@
1
- import './polyfills.js';
2
1
  import StackBaseIterator from 'stack-base-iterator';
3
2
  export default class ExtractBaseIterator extends StackBaseIterator {
4
3
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/index.ts"],"sourcesContent":["import './polyfills.ts';\nimport StackBaseIterator from 'stack-base-iterator';\n\nimport type { Entry } from './types.ts';\n\nexport default class ExtractBaseIterator extends StackBaseIterator<Entry> {}\n\nexport { default as DirectoryEntry } from './DirectoryEntry.ts';\nexport { default as FileEntry } from './FileEntry.ts';\nexport { default as LinkEntry } from './LinkEntry.ts';\nexport { default as SymbolicLinkEntry } from './SymbolicLinkEntry.ts';\n// Shared utilities for iterator libraries\nexport * from './shared/index.ts';\nexport * from './types.ts';\nexport { default as waitForAccess } from './waitForAccess.ts';\n"],"names":["StackBaseIterator","ExtractBaseIterator","default","DirectoryEntry","FileEntry","LinkEntry","SymbolicLinkEntry","waitForAccess"],"mappings":"AAAA,OAAO,iBAAiB;AACxB,OAAOA,uBAAuB,sBAAsB;AAIpD,eAAe,MAAMC,4BAA4BD;AAA0B;AAE3E,SAASE,WAAWC,cAAc,QAAQ,sBAAsB;AAChE,SAASD,WAAWE,SAAS,QAAQ,iBAAiB;AACtD,SAASF,WAAWG,SAAS,QAAQ,iBAAiB;AACtD,SAASH,WAAWI,iBAAiB,QAAQ,yBAAyB;AACtE,0CAA0C;AAC1C,cAAc,oBAAoB;AAClC,cAAc,aAAa;AAC3B,SAASJ,WAAWK,aAAa,QAAQ,qBAAqB"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/index.ts"],"sourcesContent":["import StackBaseIterator from 'stack-base-iterator';\n\nimport type { Entry } from './types.ts';\n\nexport default class ExtractBaseIterator extends StackBaseIterator<Entry> {}\n\nexport { default as DirectoryEntry } from './DirectoryEntry.ts';\nexport { default as FileEntry } from './FileEntry.ts';\nexport { default as LinkEntry } from './LinkEntry.ts';\nexport { default as SymbolicLinkEntry } from './SymbolicLinkEntry.ts';\n// Shared utilities for iterator libraries\nexport * from './shared/index.ts';\nexport * from './types.ts';\nexport { default as waitForAccess } from './waitForAccess.ts';\n"],"names":["StackBaseIterator","ExtractBaseIterator","default","DirectoryEntry","FileEntry","LinkEntry","SymbolicLinkEntry","waitForAccess"],"mappings":"AAAA,OAAOA,uBAAuB,sBAAsB;AAIpD,eAAe,MAAMC,4BAA4BD;AAA0B;AAE3E,SAASE,WAAWC,cAAc,QAAQ,sBAAsB;AAChE,SAASD,WAAWE,SAAS,QAAQ,iBAAiB;AACtD,SAASF,WAAWG,SAAS,QAAQ,iBAAiB;AACtD,SAASH,WAAWI,iBAAiB,QAAQ,yBAAyB;AACtE,0CAA0C;AAC1C,cAAc,oBAAoB;AAClC,cAAc,aAAa;AAC3B,SAASJ,WAAWK,aAAa,QAAQ,qBAAqB"}
@@ -11,7 +11,7 @@
11
11
  * - Any other archive iterator library
12
12
  */
13
13
  import Stream from 'stream';
14
- declare const ReadableBase: typeof Stream.Readable;
14
+ declare let ReadableBase: typeof Stream.Readable;
15
15
  /**
16
16
  * Base stream class for archive entry content.
17
17
  * Can be extended for special entry types like sparse files.
@@ -9,11 +9,15 @@
9
9
  * - 7z-iterator
10
10
  * - tar-iterator
11
11
  * - Any other archive iterator library
12
- */ import StreamCompat from 'readable-stream';
13
- import Stream from 'stream';
12
+ */ import Stream from 'stream';
14
13
  // Use native streams when available, readable-stream only for Node 0.x
15
14
  const major = +process.versions.node.split('.')[0];
16
- const ReadableBase = major > 0 ? Stream.Readable : StreamCompat.Readable;
15
+ let ReadableBase;
16
+ if (major > 0) {
17
+ ReadableBase = Stream.Readable;
18
+ } else {
19
+ ReadableBase = require('readable-stream').Readable;
20
+ }
17
21
  let EntryStream = class EntryStream extends ReadableBase {
18
22
  /**
19
23
  * Signal end of stream by pushing null
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/shared/EntryStream.ts"],"sourcesContent":["/**\n * EntryStream - Simple readable stream for entry content\n *\n * Extends Readable to emit 'data', 'end', 'error' events.\n * Node 0.8 compatible via readable-stream polyfill.\n *\n * This base class is designed to be used by:\n * - zip-iterator\n * - 7z-iterator\n * - tar-iterator\n * - Any other archive iterator library\n */\n\nimport StreamCompat from 'readable-stream';\nimport Stream from 'stream';\n\n// Use native streams when available, readable-stream only for Node 0.x\nconst major = +process.versions.node.split('.')[0];\nconst ReadableBase: typeof Stream.Readable = major > 0 ? Stream.Readable : (StreamCompat.Readable as typeof Stream.Readable);\n\n/**\n * Base stream class for archive entry content.\n * Can be extended for special entry types like sparse files.\n */\nexport default class EntryStream extends ReadableBase {\n protected _ended = false;\n\n /**\n * Signal end of stream by pushing null\n */\n end(): void {\n if (this._ended) return;\n this._ended = true;\n this.push(null);\n }\n\n /**\n * Check if stream has ended\n */\n get ended(): boolean {\n return this._ended;\n }\n\n /**\n * Required by Readable - called when consumer wants data.\n * Data is pushed externally via push(), nothing to do here.\n */\n _read(_size: number): void {\n // Data is pushed externally, nothing to do here\n }\n}\n"],"names":["StreamCompat","Stream","major","process","versions","node","split","ReadableBase","Readable","EntryStream","end","_ended","push","ended","_read","_size"],"mappings":"AAAA;;;;;;;;;;;CAWC,GAED,OAAOA,kBAAkB,kBAAkB;AAC3C,OAAOC,YAAY,SAAS;AAE5B,uEAAuE;AACvE,MAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,MAAMC,eAAuCL,QAAQ,IAAID,OAAOO,QAAQ,GAAIR,aAAaQ,QAAQ;AAMlF,IAAA,AAAMC,cAAN,MAAMA,oBAAoBF;IAGvC;;GAEC,GACDG,MAAY;QACV,IAAI,IAAI,CAACC,MAAM,EAAE;QACjB,IAAI,CAACA,MAAM,GAAG;QACd,IAAI,CAACC,IAAI,CAAC;IACZ;IAEA;;GAEC,GACD,IAAIC,QAAiB;QACnB,OAAO,IAAI,CAACF,MAAM;IACpB;IAEA;;;GAGC,GACDG,MAAMC,KAAa,EAAQ;IACzB,gDAAgD;IAClD;;QAzBa,qBACHJ,SAAS;;AAyBrB;AA9BA;;;CAGC,GACD,SAAqBF,yBA0BpB"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/shared/EntryStream.ts"],"sourcesContent":["/**\n * EntryStream - Simple readable stream for entry content\n *\n * Extends Readable to emit 'data', 'end', 'error' events.\n * Node 0.8 compatible via readable-stream polyfill.\n *\n * This base class is designed to be used by:\n * - zip-iterator\n * - 7z-iterator\n * - tar-iterator\n * - Any other archive iterator library\n */\n\nimport Stream from 'stream';\n\n// Use native streams when available, readable-stream only for Node 0.x\nconst major = +process.versions.node.split('.')[0];\nlet ReadableBase: typeof Stream.Readable;\nif (major > 0) {\n ReadableBase = Stream.Readable;\n} else {\n ReadableBase = require('readable-stream').Readable;\n}\n\n/**\n * Base stream class for archive entry content.\n * Can be extended for special entry types like sparse files.\n */\nexport default class EntryStream extends ReadableBase {\n protected _ended = false;\n\n /**\n * Signal end of stream by pushing null\n */\n end(): void {\n if (this._ended) return;\n this._ended = true;\n this.push(null);\n }\n\n /**\n * Check if stream has ended\n */\n get ended(): boolean {\n return this._ended;\n }\n\n /**\n * Required by Readable - called when consumer wants data.\n * Data is pushed externally via push(), nothing to do here.\n */\n _read(_size: number): void {\n // Data is pushed externally, nothing to do here\n }\n}\n"],"names":["Stream","major","process","versions","node","split","ReadableBase","Readable","require","EntryStream","end","_ended","push","ended","_read","_size"],"mappings":"AAAA;;;;;;;;;;;CAWC,GAED,OAAOA,YAAY,SAAS;AAE5B,uEAAuE;AACvE,MAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,IAAIC;AACJ,IAAIL,QAAQ,GAAG;IACbK,eAAeN,OAAOO,QAAQ;AAChC,OAAO;IACLD,eAAeE,QAAQ,mBAAmBD,QAAQ;AACpD;AAMe,IAAA,AAAME,cAAN,MAAMA,oBAAoBH;IAGvC;;GAEC,GACDI,MAAY;QACV,IAAI,IAAI,CAACC,MAAM,EAAE;QACjB,IAAI,CAACA,MAAM,GAAG;QACd,IAAI,CAACC,IAAI,CAAC;IACZ;IAEA;;GAEC,GACD,IAAIC,QAAiB;QACnB,OAAO,IAAI,CAACF,MAAM;IACpB;IAEA;;;GAGC,GACDG,MAAMC,KAAa,EAAQ;IACzB,gDAAgD;IAClD;;QAzBa,qBACHJ,SAAS;;AAyBrB;AA9BA;;;CAGC,GACD,SAAqBF,yBA0BpB"}
@@ -78,3 +78,5 @@ export declare function bufferConcat(list: (Buffer | Uint8Array)[], totalLength?
78
78
  export declare function isNaN(value: number): boolean;
79
79
  export declare function inflateRaw(input: Buffer): Buffer;
80
80
  export declare function createInflateRawStream(): NodeJS.ReadWriteStream;
81
+ export declare function setImmediateFn(fn: () => void): void;
82
+ export declare function objectAssign<T, U>(target: T, source: U): T & U;
@@ -266,3 +266,30 @@ export function createInflateRawStream() {
266
266
  };
267
267
  return transform;
268
268
  }
269
+ /**
270
+ * setImmediate wrapper for Node.js 0.8+
271
+ * - Uses native setImmediate on Node 0.10+
272
+ * - Falls back to next-tick for Node 0.8
273
+ */ var hasSetImmediate = typeof setImmediate === 'function';
274
+ var _nextTick = hasSetImmediate ? setImmediate : _require('next-tick');
275
+ export function setImmediateFn(fn) {
276
+ _nextTick(fn);
277
+ }
278
+ /**
279
+ * Object.assign wrapper for Node.js 0.8+
280
+ * - Uses native Object.assign on Node 4.0+
281
+ * - Falls back to manual property copy on Node 0.8-3.x
282
+ */ var hasObjectAssign = typeof Object.assign === 'function';
283
+ var _hasOwnProperty = Object.prototype.hasOwnProperty;
284
+ export function objectAssign(target, source) {
285
+ if (hasObjectAssign) {
286
+ return Object.assign(target, source);
287
+ }
288
+ for(var key in source){
289
+ if (_hasOwnProperty.call(source, key)) {
290
+ // biome-ignore lint/suspicious/noExplicitAny: Generic object assignment for Node 0.8 compat
291
+ target[key] = source[key];
292
+ }
293
+ }
294
+ return target;
295
+ }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/shared/compat.ts"],"sourcesContent":["/**\n * Buffer Compatibility Layer for Node.js 0.8+\n *\n * Provides buffer utilities that work across all Node.js versions\n * WITHOUT modifying global Buffer object.\n *\n * Version history:\n * - Node 0.8-4.4: Only has `new Buffer()`, no `Buffer.alloc/from`\n * - Node 4.5+: Has `Buffer.alloc/from`, deprecates `new Buffer()`\n * - Node 10+: Warns or errors on `new Buffer()`\n *\n * Solution: Feature detection with graceful fallback in both directions.\n */\n\n// ESM-compatible require - works in both CJS and ESM\nimport Module from 'module';\n\nvar _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\n// Feature detection (runs once at module load)\nvar hasBufferAlloc = typeof Buffer.alloc === 'function';\nvar hasBufferAllocUnsafe = typeof Buffer.allocUnsafe === 'function';\nvar hasBufferFrom = typeof Buffer.from === 'function' && Buffer.from !== Uint8Array.from;\n\n/**\n * Allocate a zero-filled buffer (safe)\n * - Uses Buffer.alloc() on Node 4.5+\n * - Falls back to new Buffer() + fill on Node 0.8-4.4\n */\nexport function allocBuffer(size: number): Buffer {\n if (hasBufferAlloc) {\n return Buffer.alloc(size);\n }\n // Legacy fallback: new Buffer() is uninitialized, must zero-fill\n var buf = new Buffer(size);\n buf.fill(0);\n return buf;\n}\n\n/**\n * Allocate a buffer without initialization (unsafe but faster)\n * - Uses Buffer.allocUnsafe() on Node 4.5+\n * - Falls back to new Buffer() on Node 0.8-4.4\n *\n * WARNING: Buffer contents are uninitialized and may contain sensitive data.\n * Only use when you will immediately overwrite all bytes.\n */\nexport function allocBufferUnsafe(size: number): Buffer {\n if (hasBufferAllocUnsafe) {\n return Buffer.allocUnsafe(size);\n }\n return new Buffer(size);\n}\n\n/**\n * Create a buffer from string, array, or existing buffer\n * - Uses Buffer.from() on Node 4.5+\n * - Falls back to new Buffer() on Node 0.8-4.4\n * - Handles Uint8Array conversion for Node 0.8 (crypto output compatibility)\n */\nexport function bufferFrom(data: string | number[] | Buffer | Uint8Array, encoding?: BufferEncoding): Buffer {\n if (hasBufferFrom) {\n if (typeof data === 'string') {\n return Buffer.from(data, encoding);\n }\n return Buffer.from(data as number[] | Buffer);\n }\n // Node 0.8 compatibility - deprecated Buffer constructor\n // For Uint8Array, convert to array first (needed for crypto output in Node 0.8)\n if (data instanceof Uint8Array && !(data instanceof Buffer)) {\n var arr: number[] = [];\n for (var i = 0; i < data.length; i++) {\n arr.push(data[i]);\n }\n return new Buffer(arr);\n }\n return new Buffer(data as string & number[], encoding);\n}\n\n/**\n * Compare two buffers or buffer regions\n * - Uses Buffer.compare() on Node 5.10+ (with offset support)\n * - Falls back to manual comparison on Node 0.8-5.9\n */\nexport function bufferCompare(source: Buffer, target: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number {\n sourceStart = sourceStart || 0;\n sourceEnd = sourceEnd || source.length;\n targetStart = targetStart || 0;\n targetEnd = targetEnd || target.length;\n\n // Check if native compare with offset support exists (Node 5.10+)\n if (source.compare && source.compare.length >= 5) {\n return source.compare(target, targetStart, targetEnd, sourceStart, sourceEnd);\n }\n\n // Manual comparison for older Node versions\n var sourceLen = sourceEnd - sourceStart;\n var targetLen = targetEnd - targetStart;\n var len = Math.min(sourceLen, targetLen);\n\n for (var i = 0; i < len; i++) {\n var s = source[sourceStart + i];\n var t = target[targetStart + i];\n if (s !== t) return s < t ? -1 : 1;\n }\n\n return sourceLen - targetLen;\n}\n\n/**\n * Check if buffer region equals byte array\n * Useful for magic number detection without Buffer.from()\n */\nexport function bufferEquals(buf: Buffer, offset: number, expected: number[]): boolean {\n if (offset + expected.length > buf.length) return false;\n for (var i = 0; i < expected.length; i++) {\n if (buf[offset + i] !== expected[i]) return false;\n }\n return true;\n}\n\n/**\n * Copy buffer region to new buffer\n * Works on all Node versions\n */\nexport function bufferSliceCopy(buf: Buffer, start: number, end: number): Buffer {\n var result = allocBuffer(end - start);\n buf.copy(result, 0, start, end);\n return result;\n}\n\n/**\n * Read 64-bit unsigned integer (little-endian)\n * Uses two 32-bit reads since BigInt not available until Node 10.4\n *\n * WARNING: Only accurate for values < Number.MAX_SAFE_INTEGER (2^53 - 1)\n * This covers files up to ~9 PB which is practical for all real use cases.\n */\nexport function readUInt64LE(buf: Buffer, offset: number): number {\n var low = buf.readUInt32LE(offset);\n var high = buf.readUInt32LE(offset + 4);\n return high * 0x100000000 + low;\n}\n\n/**\n * Write 64-bit unsigned integer (little-endian)\n * Same precision limitation as readUInt64LE\n */\nexport function writeUInt64LE(buf: Buffer, value: number, offset: number): void {\n var low = value >>> 0;\n var high = (value / 0x100000000) >>> 0;\n buf.writeUInt32LE(low, offset);\n buf.writeUInt32LE(high, offset + 4);\n}\n\n/**\n * Concatenate buffers - compatible with Node 0.8\n * Handles crypto output which may not be proper Buffer instances in old Node.\n *\n * NOTE: This function is primarily needed for AES decryption compatibility\n * in Node 0.8 where crypto output may not be proper Buffer instances.\n * Libraries not using crypto can use native Buffer.concat() directly.\n */\nexport function bufferConcat(list: (Buffer | Uint8Array)[], totalLength?: number): Buffer {\n // Calculate actual total length first\n var actualLength = 0;\n for (var i = 0; i < list.length; i++) {\n actualLength += list[i].length;\n }\n\n // Use specified totalLength or actual length\n var targetLength = totalLength !== undefined ? totalLength : actualLength;\n\n // Check if all items are proper Buffers AND no truncation needed\n // (Node 0.8's Buffer.concat doesn't handle truncation well)\n var allBuffers = true;\n for (var j = 0; j < list.length; j++) {\n if (!(list[j] instanceof Buffer)) {\n allBuffers = false;\n break;\n }\n }\n if (allBuffers && targetLength >= actualLength) {\n return Buffer.concat(list as Buffer[], targetLength);\n }\n\n // Manual concat for mixed types or when truncation is needed\n var result = allocBuffer(targetLength);\n var offset = 0;\n for (var k = 0; k < list.length && offset < targetLength; k++) {\n var buf = list[k];\n for (var l = 0; l < buf.length && offset < targetLength; l++) {\n result[offset++] = buf[l];\n }\n }\n return result;\n}\n\n/**\n * Node 0.8 compatible isNaN (Number.isNaN didn't exist until ES2015)\n * Uses self-comparison: NaN is the only value not equal to itself\n */\n// biome-ignore lint/suspicious/noShadowRestrictedNames: Legacy compatibility\nexport function isNaN(value: number): boolean {\n // biome-ignore lint/suspicious/noSelfCompare: NaN check pattern\n return value !== value;\n}\n\n/**\n * Decompress raw DEFLATE data (no zlib/gzip header)\n * - Uses native zlib.inflateRawSync() on Node 0.11.12+\n * - Falls back to pako for Node 0.8-0.10\n *\n * Version history:\n * - Node 0.8-0.10: No zlib sync methods, use pako\n * - Node 0.11.12+: zlib.inflateRawSync available\n */\n// Feature detection for native zlib sync methods (Node 0.11.12+)\nvar zlib: typeof import('zlib') | null = null;\ntry {\n zlib = _require('zlib');\n} catch (_e) {\n // zlib not available (shouldn't happen in Node.js)\n}\nvar hasNativeInflateRaw = zlib !== null && typeof zlib.inflateRawSync === 'function';\n\nexport function inflateRaw(input: Buffer): Buffer {\n if (hasNativeInflateRaw && zlib) {\n return zlib.inflateRawSync(input);\n }\n // Fallback to pako for Node 0.8-0.10\n var pako = _require('pako');\n return bufferFrom(pako.inflateRaw(input));\n}\n\n/**\n * Create a streaming raw DEFLATE decompressor (Transform stream)\n * Decompresses data incrementally to avoid holding full output in memory.\n *\n * - Uses native zlib.createInflateRaw() on Node 0.11.12+\n * - Falls back to pako-based Transform for Node 0.8-0.10\n *\n * @returns A Transform stream that decompresses raw DEFLATE data\n */\n// Check for native streaming inflate (Node 0.11.12+ has createInflateRaw)\n// biome-ignore lint/suspicious/noExplicitAny: createInflateRaw not in older TS definitions\nvar hasNativeStreamingInflate = zlib !== null && typeof (zlib as any).createInflateRaw === 'function';\n\nexport function createInflateRawStream(): NodeJS.ReadWriteStream {\n if (hasNativeStreamingInflate && zlib) {\n // Use native zlib streaming Transform\n // biome-ignore lint/suspicious/noExplicitAny: createInflateRaw not in older TS definitions\n return (zlib as any).createInflateRaw();\n }\n\n // Fallback to pako-based Transform for Node 0.8-0.10\n // Use readable-stream for Node 0.8 compatibility\n var Transform = _require('readable-stream').Transform;\n var pako = _require('pako');\n\n var inflate = new pako.Inflate({ raw: true, chunkSize: 16384 });\n var transform = new Transform();\n var pendingChunks: Buffer[] = [];\n var ended = false;\n\n // Pako calls onData synchronously during push()\n inflate.onData = (chunk: Uint8Array) => {\n pendingChunks.push(bufferFrom(chunk));\n };\n\n inflate.onEnd = (status: number) => {\n ended = true;\n if (status !== 0) {\n transform.emit('error', new Error(`Inflate error: ${inflate.msg || 'unknown'}`));\n }\n };\n\n transform._transform = function (chunk: Buffer, _encoding: string, callback: (err?: Error) => void) {\n try {\n inflate.push(chunk, false);\n // Push any pending decompressed chunks\n while (pendingChunks.length > 0) {\n this.push(pendingChunks.shift());\n }\n callback();\n } catch (err) {\n callback(err as Error);\n }\n };\n\n transform._flush = function (callback: (err?: Error) => void) {\n try {\n inflate.push(new Uint8Array(0), true); // Signal end\n // Push any remaining decompressed chunks\n while (pendingChunks.length > 0) {\n this.push(pendingChunks.shift());\n }\n if (ended && inflate.err) {\n callback(new Error(`Inflate error: ${inflate.msg || 'unknown'}`));\n } else {\n callback();\n }\n } catch (err) {\n callback(err as Error);\n }\n };\n\n return transform;\n}\n"],"names":["Module","_require","require","createRequire","url","hasBufferAlloc","Buffer","alloc","hasBufferAllocUnsafe","allocUnsafe","hasBufferFrom","from","Uint8Array","allocBuffer","size","buf","fill","allocBufferUnsafe","bufferFrom","data","encoding","arr","i","length","push","bufferCompare","source","target","targetStart","targetEnd","sourceStart","sourceEnd","compare","sourceLen","targetLen","len","Math","min","s","t","bufferEquals","offset","expected","bufferSliceCopy","start","end","result","copy","readUInt64LE","low","readUInt32LE","high","writeUInt64LE","value","writeUInt32LE","bufferConcat","list","totalLength","actualLength","targetLength","undefined","allBuffers","j","concat","k","l","isNaN","zlib","_e","hasNativeInflateRaw","inflateRawSync","inflateRaw","input","pako","hasNativeStreamingInflate","createInflateRaw","createInflateRawStream","Transform","inflate","Inflate","raw","chunkSize","transform","pendingChunks","ended","onData","chunk","onEnd","status","emit","Error","msg","_transform","_encoding","callback","shift","err","_flush"],"mappings":"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"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/shared/compat.ts"],"sourcesContent":["/**\n * Buffer Compatibility Layer for Node.js 0.8+\n *\n * Provides buffer utilities that work across all Node.js versions\n * WITHOUT modifying global Buffer object.\n *\n * Version history:\n * - Node 0.8-4.4: Only has `new Buffer()`, no `Buffer.alloc/from`\n * - Node 4.5+: Has `Buffer.alloc/from`, deprecates `new Buffer()`\n * - Node 10+: Warns or errors on `new Buffer()`\n *\n * Solution: Feature detection with graceful fallback in both directions.\n */\n\n// ESM-compatible require - works in both CJS and ESM\nimport Module from 'module';\n\nvar _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\n// Feature detection (runs once at module load)\nvar hasBufferAlloc = typeof Buffer.alloc === 'function';\nvar hasBufferAllocUnsafe = typeof Buffer.allocUnsafe === 'function';\nvar hasBufferFrom = typeof Buffer.from === 'function' && Buffer.from !== Uint8Array.from;\n\n/**\n * Allocate a zero-filled buffer (safe)\n * - Uses Buffer.alloc() on Node 4.5+\n * - Falls back to new Buffer() + fill on Node 0.8-4.4\n */\nexport function allocBuffer(size: number): Buffer {\n if (hasBufferAlloc) {\n return Buffer.alloc(size);\n }\n // Legacy fallback: new Buffer() is uninitialized, must zero-fill\n var buf = new Buffer(size);\n buf.fill(0);\n return buf;\n}\n\n/**\n * Allocate a buffer without initialization (unsafe but faster)\n * - Uses Buffer.allocUnsafe() on Node 4.5+\n * - Falls back to new Buffer() on Node 0.8-4.4\n *\n * WARNING: Buffer contents are uninitialized and may contain sensitive data.\n * Only use when you will immediately overwrite all bytes.\n */\nexport function allocBufferUnsafe(size: number): Buffer {\n if (hasBufferAllocUnsafe) {\n return Buffer.allocUnsafe(size);\n }\n return new Buffer(size);\n}\n\n/**\n * Create a buffer from string, array, or existing buffer\n * - Uses Buffer.from() on Node 4.5+\n * - Falls back to new Buffer() on Node 0.8-4.4\n * - Handles Uint8Array conversion for Node 0.8 (crypto output compatibility)\n */\nexport function bufferFrom(data: string | number[] | Buffer | Uint8Array, encoding?: BufferEncoding): Buffer {\n if (hasBufferFrom) {\n if (typeof data === 'string') {\n return Buffer.from(data, encoding);\n }\n return Buffer.from(data as number[] | Buffer);\n }\n // Node 0.8 compatibility - deprecated Buffer constructor\n // For Uint8Array, convert to array first (needed for crypto output in Node 0.8)\n if (data instanceof Uint8Array && !(data instanceof Buffer)) {\n var arr: number[] = [];\n for (var i = 0; i < data.length; i++) {\n arr.push(data[i]);\n }\n return new Buffer(arr);\n }\n return new Buffer(data as string & number[], encoding);\n}\n\n/**\n * Compare two buffers or buffer regions\n * - Uses Buffer.compare() on Node 5.10+ (with offset support)\n * - Falls back to manual comparison on Node 0.8-5.9\n */\nexport function bufferCompare(source: Buffer, target: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number {\n sourceStart = sourceStart || 0;\n sourceEnd = sourceEnd || source.length;\n targetStart = targetStart || 0;\n targetEnd = targetEnd || target.length;\n\n // Check if native compare with offset support exists (Node 5.10+)\n if (source.compare && source.compare.length >= 5) {\n return source.compare(target, targetStart, targetEnd, sourceStart, sourceEnd);\n }\n\n // Manual comparison for older Node versions\n var sourceLen = sourceEnd - sourceStart;\n var targetLen = targetEnd - targetStart;\n var len = Math.min(sourceLen, targetLen);\n\n for (var i = 0; i < len; i++) {\n var s = source[sourceStart + i];\n var t = target[targetStart + i];\n if (s !== t) return s < t ? -1 : 1;\n }\n\n return sourceLen - targetLen;\n}\n\n/**\n * Check if buffer region equals byte array\n * Useful for magic number detection without Buffer.from()\n */\nexport function bufferEquals(buf: Buffer, offset: number, expected: number[]): boolean {\n if (offset + expected.length > buf.length) return false;\n for (var i = 0; i < expected.length; i++) {\n if (buf[offset + i] !== expected[i]) return false;\n }\n return true;\n}\n\n/**\n * Copy buffer region to new buffer\n * Works on all Node versions\n */\nexport function bufferSliceCopy(buf: Buffer, start: number, end: number): Buffer {\n var result = allocBuffer(end - start);\n buf.copy(result, 0, start, end);\n return result;\n}\n\n/**\n * Read 64-bit unsigned integer (little-endian)\n * Uses two 32-bit reads since BigInt not available until Node 10.4\n *\n * WARNING: Only accurate for values < Number.MAX_SAFE_INTEGER (2^53 - 1)\n * This covers files up to ~9 PB which is practical for all real use cases.\n */\nexport function readUInt64LE(buf: Buffer, offset: number): number {\n var low = buf.readUInt32LE(offset);\n var high = buf.readUInt32LE(offset + 4);\n return high * 0x100000000 + low;\n}\n\n/**\n * Write 64-bit unsigned integer (little-endian)\n * Same precision limitation as readUInt64LE\n */\nexport function writeUInt64LE(buf: Buffer, value: number, offset: number): void {\n var low = value >>> 0;\n var high = (value / 0x100000000) >>> 0;\n buf.writeUInt32LE(low, offset);\n buf.writeUInt32LE(high, offset + 4);\n}\n\n/**\n * Concatenate buffers - compatible with Node 0.8\n * Handles crypto output which may not be proper Buffer instances in old Node.\n *\n * NOTE: This function is primarily needed for AES decryption compatibility\n * in Node 0.8 where crypto output may not be proper Buffer instances.\n * Libraries not using crypto can use native Buffer.concat() directly.\n */\nexport function bufferConcat(list: (Buffer | Uint8Array)[], totalLength?: number): Buffer {\n // Calculate actual total length first\n var actualLength = 0;\n for (var i = 0; i < list.length; i++) {\n actualLength += list[i].length;\n }\n\n // Use specified totalLength or actual length\n var targetLength = totalLength !== undefined ? totalLength : actualLength;\n\n // Check if all items are proper Buffers AND no truncation needed\n // (Node 0.8's Buffer.concat doesn't handle truncation well)\n var allBuffers = true;\n for (var j = 0; j < list.length; j++) {\n if (!(list[j] instanceof Buffer)) {\n allBuffers = false;\n break;\n }\n }\n if (allBuffers && targetLength >= actualLength) {\n return Buffer.concat(list as Buffer[], targetLength);\n }\n\n // Manual concat for mixed types or when truncation is needed\n var result = allocBuffer(targetLength);\n var offset = 0;\n for (var k = 0; k < list.length && offset < targetLength; k++) {\n var buf = list[k];\n for (var l = 0; l < buf.length && offset < targetLength; l++) {\n result[offset++] = buf[l];\n }\n }\n return result;\n}\n\n/**\n * Node 0.8 compatible isNaN (Number.isNaN didn't exist until ES2015)\n * Uses self-comparison: NaN is the only value not equal to itself\n */\n// biome-ignore lint/suspicious/noShadowRestrictedNames: Legacy compatibility\nexport function isNaN(value: number): boolean {\n // biome-ignore lint/suspicious/noSelfCompare: NaN check pattern\n return value !== value;\n}\n\n/**\n * Decompress raw DEFLATE data (no zlib/gzip header)\n * - Uses native zlib.inflateRawSync() on Node 0.11.12+\n * - Falls back to pako for Node 0.8-0.10\n *\n * Version history:\n * - Node 0.8-0.10: No zlib sync methods, use pako\n * - Node 0.11.12+: zlib.inflateRawSync available\n */\n// Feature detection for native zlib sync methods (Node 0.11.12+)\nvar zlib: typeof import('zlib') | null = null;\ntry {\n zlib = _require('zlib');\n} catch (_e) {\n // zlib not available (shouldn't happen in Node.js)\n}\nvar hasNativeInflateRaw = zlib !== null && typeof zlib.inflateRawSync === 'function';\n\nexport function inflateRaw(input: Buffer): Buffer {\n if (hasNativeInflateRaw && zlib) {\n return zlib.inflateRawSync(input);\n }\n // Fallback to pako for Node 0.8-0.10\n var pako = _require('pako');\n return bufferFrom(pako.inflateRaw(input));\n}\n\n/**\n * Create a streaming raw DEFLATE decompressor (Transform stream)\n * Decompresses data incrementally to avoid holding full output in memory.\n *\n * - Uses native zlib.createInflateRaw() on Node 0.11.12+\n * - Falls back to pako-based Transform for Node 0.8-0.10\n *\n * @returns A Transform stream that decompresses raw DEFLATE data\n */\n// Check for native streaming inflate (Node 0.11.12+ has createInflateRaw)\n// biome-ignore lint/suspicious/noExplicitAny: createInflateRaw not in older TS definitions\nvar hasNativeStreamingInflate = zlib !== null && typeof (zlib as any).createInflateRaw === 'function';\n\nexport function createInflateRawStream(): NodeJS.ReadWriteStream {\n if (hasNativeStreamingInflate && zlib) {\n // Use native zlib streaming Transform\n // biome-ignore lint/suspicious/noExplicitAny: createInflateRaw not in older TS definitions\n return (zlib as any).createInflateRaw();\n }\n\n // Fallback to pako-based Transform for Node 0.8-0.10\n // Use readable-stream for Node 0.8 compatibility\n var Transform = _require('readable-stream').Transform;\n var pako = _require('pako');\n\n var inflate = new pako.Inflate({ raw: true, chunkSize: 16384 });\n var transform = new Transform();\n var pendingChunks: Buffer[] = [];\n var ended = false;\n\n // Pako calls onData synchronously during push()\n inflate.onData = (chunk: Uint8Array) => {\n pendingChunks.push(bufferFrom(chunk));\n };\n\n inflate.onEnd = (status: number) => {\n ended = true;\n if (status !== 0) {\n transform.emit('error', new Error(`Inflate error: ${inflate.msg || 'unknown'}`));\n }\n };\n\n transform._transform = function (chunk: Buffer, _encoding: string, callback: (err?: Error) => void) {\n try {\n inflate.push(chunk, false);\n // Push any pending decompressed chunks\n while (pendingChunks.length > 0) {\n this.push(pendingChunks.shift());\n }\n callback();\n } catch (err) {\n callback(err as Error);\n }\n };\n\n transform._flush = function (callback: (err?: Error) => void) {\n try {\n inflate.push(new Uint8Array(0), true); // Signal end\n // Push any remaining decompressed chunks\n while (pendingChunks.length > 0) {\n this.push(pendingChunks.shift());\n }\n if (ended && inflate.err) {\n callback(new Error(`Inflate error: ${inflate.msg || 'unknown'}`));\n } else {\n callback();\n }\n } catch (err) {\n callback(err as Error);\n }\n };\n\n return transform;\n}\n\n/**\n * setImmediate wrapper for Node.js 0.8+\n * - Uses native setImmediate on Node 0.10+\n * - Falls back to next-tick for Node 0.8\n */\nvar hasSetImmediate = typeof setImmediate === 'function';\nvar _nextTick: (fn: () => void) => void = hasSetImmediate ? setImmediate : _require('next-tick');\n\nexport function setImmediateFn(fn: () => void): void {\n _nextTick(fn);\n}\n\n/**\n * Object.assign wrapper for Node.js 0.8+\n * - Uses native Object.assign on Node 4.0+\n * - Falls back to manual property copy on Node 0.8-3.x\n */\nvar hasObjectAssign = typeof Object.assign === 'function';\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nexport function objectAssign<T, U>(target: T, source: U): T & U {\n if (hasObjectAssign) {\n return Object.assign(target, source);\n }\n for (var key in source) {\n if (_hasOwnProperty.call(source, key)) {\n // biome-ignore lint/suspicious/noExplicitAny: Generic object assignment for Node 0.8 compat\n (target as any)[key] = (source as any)[key];\n }\n }\n return target as T & U;\n}\n"],"names":["Module","_require","require","createRequire","url","hasBufferAlloc","Buffer","alloc","hasBufferAllocUnsafe","allocUnsafe","hasBufferFrom","from","Uint8Array","allocBuffer","size","buf","fill","allocBufferUnsafe","bufferFrom","data","encoding","arr","i","length","push","bufferCompare","source","target","targetStart","targetEnd","sourceStart","sourceEnd","compare","sourceLen","targetLen","len","Math","min","s","t","bufferEquals","offset","expected","bufferSliceCopy","start","end","result","copy","readUInt64LE","low","readUInt32LE","high","writeUInt64LE","value","writeUInt32LE","bufferConcat","list","totalLength","actualLength","targetLength","undefined","allBuffers","j","concat","k","l","isNaN","zlib","_e","hasNativeInflateRaw","inflateRawSync","inflateRaw","input","pako","hasNativeStreamingInflate","createInflateRaw","createInflateRawStream","Transform","inflate","Inflate","raw","chunkSize","transform","pendingChunks","ended","onData","chunk","onEnd","status","emit","Error","msg","_transform","_encoding","callback","shift","err","_flush","hasSetImmediate","setImmediate","_nextTick","setImmediateFn","fn","hasObjectAssign","Object","assign","_hasOwnProperty","prototype","hasOwnProperty","objectAssign","key","call"],"mappings":"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"}
@@ -10,6 +10,6 @@
10
10
  * All utilities support Node.js 0.8+
11
11
  */
12
12
  export { default as BufferList } from './BufferList.js';
13
- export { allocBuffer, allocBufferUnsafe, bufferCompare, bufferConcat, bufferEquals, bufferFrom, bufferSliceCopy, createInflateRawStream, inflateRaw, isNaN, readUInt64LE, writeUInt64LE, } from './compat.js';
13
+ export { allocBuffer, allocBufferUnsafe, bufferCompare, bufferConcat, bufferEquals, bufferFrom, bufferSliceCopy, createInflateRawStream, inflateRaw, isNaN, objectAssign, readUInt64LE, setImmediateFn, writeUInt64LE, } from './compat.js';
14
14
  export { crc32, crc32Region, verifyCrc32, verifyCrc32Region } from './crc32.js';
15
15
  export { default as EntryStream } from './EntryStream.js';
@@ -9,6 +9,6 @@
9
9
  *
10
10
  * All utilities support Node.js 0.8+
11
11
  */ export { default as BufferList } from './BufferList.js';
12
- export { allocBuffer, allocBufferUnsafe, bufferCompare, bufferConcat, bufferEquals, bufferFrom, bufferSliceCopy, createInflateRawStream, inflateRaw, isNaN, readUInt64LE, writeUInt64LE } from './compat.js';
12
+ export { allocBuffer, allocBufferUnsafe, bufferCompare, bufferConcat, bufferEquals, bufferFrom, bufferSliceCopy, createInflateRawStream, inflateRaw, isNaN, objectAssign, readUInt64LE, setImmediateFn, writeUInt64LE } from './compat.js';
13
13
  export { crc32, crc32Region, verifyCrc32, verifyCrc32Region } from './crc32.js';
14
14
  export { default as EntryStream } from './EntryStream.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/shared/index.ts"],"sourcesContent":["/**\n * Shared utilities for iterator libraries\n *\n * These utilities are designed to be used by:\n * - zip-iterator\n * - 7z-iterator\n * - tar-iterator\n * - Any other archive iterator library\n *\n * All utilities support Node.js 0.8+\n */\n\nexport { default as BufferList } from './BufferList.ts';\nexport {\n allocBuffer,\n allocBufferUnsafe,\n bufferCompare,\n bufferConcat,\n bufferEquals,\n bufferFrom,\n bufferSliceCopy,\n createInflateRawStream,\n inflateRaw,\n isNaN,\n readUInt64LE,\n writeUInt64LE,\n} from './compat.ts';\nexport { crc32, crc32Region, verifyCrc32, verifyCrc32Region } from './crc32.ts';\nexport { default as EntryStream } from './EntryStream.ts';\n"],"names":["default","BufferList","allocBuffer","allocBufferUnsafe","bufferCompare","bufferConcat","bufferEquals","bufferFrom","bufferSliceCopy","createInflateRawStream","inflateRaw","isNaN","readUInt64LE","writeUInt64LE","crc32","crc32Region","verifyCrc32","verifyCrc32Region","EntryStream"],"mappings":"AAAA;;;;;;;;;;CAUC,GAED,SAASA,WAAWC,UAAU,QAAQ,kBAAkB;AACxD,SACEC,WAAW,EACXC,iBAAiB,EACjBC,aAAa,EACbC,YAAY,EACZC,YAAY,EACZC,UAAU,EACVC,eAAe,EACfC,sBAAsB,EACtBC,UAAU,EACVC,KAAK,EACLC,YAAY,EACZC,aAAa,QACR,cAAc;AACrB,SAASC,KAAK,EAAEC,WAAW,EAAEC,WAAW,EAAEC,iBAAiB,QAAQ,aAAa;AAChF,SAASjB,WAAWkB,WAAW,QAAQ,mBAAmB"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/shared/index.ts"],"sourcesContent":["/**\n * Shared utilities for iterator libraries\n *\n * These utilities are designed to be used by:\n * - zip-iterator\n * - 7z-iterator\n * - tar-iterator\n * - Any other archive iterator library\n *\n * All utilities support Node.js 0.8+\n */\n\nexport { default as BufferList } from './BufferList.ts';\nexport {\n allocBuffer,\n allocBufferUnsafe,\n bufferCompare,\n bufferConcat,\n bufferEquals,\n bufferFrom,\n bufferSliceCopy,\n createInflateRawStream,\n inflateRaw,\n isNaN,\n objectAssign,\n readUInt64LE,\n setImmediateFn,\n writeUInt64LE,\n} from './compat.ts';\nexport { crc32, crc32Region, verifyCrc32, verifyCrc32Region } from './crc32.ts';\nexport { default as EntryStream } from './EntryStream.ts';\n"],"names":["default","BufferList","allocBuffer","allocBufferUnsafe","bufferCompare","bufferConcat","bufferEquals","bufferFrom","bufferSliceCopy","createInflateRawStream","inflateRaw","isNaN","objectAssign","readUInt64LE","setImmediateFn","writeUInt64LE","crc32","crc32Region","verifyCrc32","verifyCrc32Region","EntryStream"],"mappings":"AAAA;;;;;;;;;;CAUC,GAED,SAASA,WAAWC,UAAU,QAAQ,kBAAkB;AACxD,SACEC,WAAW,EACXC,iBAAiB,EACjBC,aAAa,EACbC,YAAY,EACZC,YAAY,EACZC,UAAU,EACVC,eAAe,EACfC,sBAAsB,EACtBC,UAAU,EACVC,KAAK,EACLC,YAAY,EACZC,YAAY,EACZC,cAAc,EACdC,aAAa,QACR,cAAc;AACrB,SAASC,KAAK,EAAEC,WAAW,EAAEC,WAAW,EAAEC,iBAAiB,QAAQ,aAAa;AAChF,SAASnB,WAAWoB,WAAW,QAAQ,mBAAmB"}
@@ -1,7 +1,8 @@
1
1
  import fs from 'fs';
2
+ import { setImmediateFn } from './shared/index.js';
2
3
  export default function waitForAccess(fullPath, callback) {
3
4
  fs.stat(fullPath, (err)=>{
4
- if (err) return setImmediate(()=>waitForAccess(fullPath, callback));
5
+ if (err) return setImmediateFn(()=>waitForAccess(fullPath, callback));
5
6
  callback();
6
7
  });
7
8
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/waitForAccess.ts"],"sourcesContent":["import fs from 'fs';\n\nimport type { NoParamCallback } from './types.ts';\n\nexport default function waitForAccess(fullPath: string, callback: NoParamCallback): undefined {\n fs.stat(fullPath, (err) => {\n if (err) return setImmediate(() => waitForAccess(fullPath, callback));\n callback();\n });\n}\n"],"names":["fs","waitForAccess","fullPath","callback","stat","err","setImmediate"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AAIpB,eAAe,SAASC,cAAcC,QAAgB,EAAEC,QAAyB;IAC/EH,GAAGI,IAAI,CAACF,UAAU,CAACG;QACjB,IAAIA,KAAK,OAAOC,aAAa,IAAML,cAAcC,UAAUC;QAC3DA;IACF;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/waitForAccess.ts"],"sourcesContent":["import fs from 'fs';\n\nimport { setImmediateFn } from './shared/index.ts';\nimport type { NoParamCallback } from './types.ts';\n\nexport default function waitForAccess(fullPath: string, callback: NoParamCallback): undefined {\n fs.stat(fullPath, (err) => {\n if (err) return setImmediateFn(() => waitForAccess(fullPath, callback));\n callback();\n });\n}\n"],"names":["fs","setImmediateFn","waitForAccess","fullPath","callback","stat","err"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AAEpB,SAASC,cAAc,QAAQ,oBAAoB;AAGnD,eAAe,SAASC,cAAcC,QAAgB,EAAEC,QAAyB;IAC/EJ,GAAGK,IAAI,CAACF,UAAU,CAACG;QACjB,IAAIA,KAAK,OAAOL,eAAe,IAAMC,cAAcC,UAAUC;QAC7DA;IACF;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "extract-base-iterator",
3
- "version": "2.4.3",
3
+ "version": "2.4.5",
4
4
  "description": "Base iterator for extract iterators like tar-iterator and zip-iterator",
5
5
  "keywords": [
6
6
  "extract",
@@ -29,6 +29,7 @@
29
29
  "./package.json": "./package.json"
30
30
  },
31
31
  "main": "dist/cjs/index.js",
32
+ "source": "src/index.ts",
32
33
  "types": "dist/cjs/index.d.ts",
33
34
  "files": [
34
35
  "dist"
@@ -47,7 +48,6 @@
47
48
  "lodash.compact": "*",
48
49
  "mkdirp-classic": "*",
49
50
  "next-tick": "*",
50
- "object-assign": "*",
51
51
  "pako": "~1.0.11",
52
52
  "queue-cb": "*",
53
53
  "readable-stream": "^2.3.8",
@@ -68,8 +68,5 @@
68
68
  },
69
69
  "engines": {
70
70
  "node": ">=0.8"
71
- },
72
- "tsds": {
73
- "source": "src/index.ts"
74
71
  }
75
72
  }
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- var _module = /*#__PURE__*/ _interop_require_default(require("module"));
6
- function _interop_require_default(obj) {
7
- return obj && obj.__esModule ? obj : {
8
- default: obj
9
- };
10
- }
11
- var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
12
- if (typeof setImmediate === 'undefined') global.setImmediate = _require('next-tick');
13
- /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/polyfills.ts"],"sourcesContent":["import Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nif (typeof setImmediate === 'undefined') global.setImmediate = _require('next-tick');\n"],"names":["_require","require","Module","createRequire","setImmediate","global"],"mappings":";;;;6DAAmB;;;;;;AAEnB,IAAMA,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAE1F,IAAI,OAAOG,iBAAiB,aAAaC,OAAOD,YAAY,GAAGJ,SAAS"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,3 +0,0 @@
1
- import Module from 'module';
2
- const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
3
- if (typeof setImmediate === 'undefined') global.setImmediate = _require('next-tick');
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/polyfills.ts"],"sourcesContent":["import Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nif (typeof setImmediate === 'undefined') global.setImmediate = _require('next-tick');\n"],"names":["Module","_require","require","createRequire","url","setImmediate","global"],"mappings":"AAAA,OAAOA,YAAY,SAAS;AAE5B,MAAMC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAE1F,IAAI,OAAOG,iBAAiB,aAAaC,OAAOD,YAAY,GAAGJ,SAAS"}