extract-base-iterator 2.0.2 → 2.0.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 (64) hide show
  1. package/dist/cjs/DirectoryEntry.d.cts +1 -1
  2. package/dist/cjs/DirectoryEntry.d.ts +1 -1
  3. package/dist/cjs/DirectoryEntry.js +10 -10
  4. package/dist/cjs/DirectoryEntry.js.map +1 -1
  5. package/dist/cjs/FileEntry.d.cts +1 -1
  6. package/dist/cjs/FileEntry.d.ts +1 -1
  7. package/dist/cjs/FileEntry.js +10 -10
  8. package/dist/cjs/FileEntry.js.map +1 -1
  9. package/dist/cjs/LinkEntry.d.cts +1 -1
  10. package/dist/cjs/LinkEntry.d.ts +1 -1
  11. package/dist/cjs/LinkEntry.js +11 -11
  12. package/dist/cjs/LinkEntry.js.map +1 -1
  13. package/dist/cjs/SymbolicLinkEntry.d.cts +1 -1
  14. package/dist/cjs/SymbolicLinkEntry.d.ts +1 -1
  15. package/dist/cjs/SymbolicLinkEntry.js +14 -14
  16. package/dist/cjs/SymbolicLinkEntry.js.map +1 -1
  17. package/dist/cjs/fs/chmod.d.cts +1 -1
  18. package/dist/cjs/fs/chmod.d.ts +1 -1
  19. package/dist/cjs/fs/chmod.js.map +1 -1
  20. package/dist/cjs/fs/chown.d.cts +1 -1
  21. package/dist/cjs/fs/chown.d.ts +1 -1
  22. package/dist/cjs/fs/chown.js.map +1 -1
  23. package/dist/cjs/fs/symlinkWin32.js +2 -2
  24. package/dist/cjs/fs/symlinkWin32.js.map +1 -1
  25. package/dist/cjs/fs/utimes.d.cts +1 -1
  26. package/dist/cjs/fs/utimes.d.ts +1 -1
  27. package/dist/cjs/fs/utimes.js.map +1 -1
  28. package/dist/cjs/index.d.cts +11 -8
  29. package/dist/cjs/index.d.ts +11 -8
  30. package/dist/cjs/index.js +79 -11
  31. package/dist/cjs/index.js.map +1 -1
  32. package/dist/cjs/stripPath.d.cts +1 -1
  33. package/dist/cjs/stripPath.d.ts +1 -1
  34. package/dist/cjs/stripPath.js.map +1 -1
  35. package/dist/cjs/types.d.cts +5 -5
  36. package/dist/cjs/types.d.ts +5 -5
  37. package/dist/cjs/waitForAccess.d.cts +1 -1
  38. package/dist/cjs/waitForAccess.d.ts +1 -1
  39. package/dist/cjs/waitForAccess.js.map +1 -1
  40. package/dist/esm/DirectoryEntry.d.ts +1 -1
  41. package/dist/esm/DirectoryEntry.js.map +1 -1
  42. package/dist/esm/FileEntry.d.ts +1 -1
  43. package/dist/esm/FileEntry.js.map +1 -1
  44. package/dist/esm/LinkEntry.d.ts +1 -1
  45. package/dist/esm/LinkEntry.js.map +1 -1
  46. package/dist/esm/SymbolicLinkEntry.d.ts +1 -1
  47. package/dist/esm/SymbolicLinkEntry.js.map +1 -1
  48. package/dist/esm/fs/chmod.d.ts +1 -1
  49. package/dist/esm/fs/chmod.js.map +1 -1
  50. package/dist/esm/fs/chown.d.ts +1 -1
  51. package/dist/esm/fs/chown.js.map +1 -1
  52. package/dist/esm/fs/symlinkWin32.js.map +1 -1
  53. package/dist/esm/fs/utimes.d.ts +1 -1
  54. package/dist/esm/fs/utimes.js.map +1 -1
  55. package/dist/esm/index.d.ts +11 -8
  56. package/dist/esm/index.js +3 -1
  57. package/dist/esm/index.js.map +1 -1
  58. package/dist/esm/stripPath.d.ts +1 -1
  59. package/dist/esm/stripPath.js.map +1 -1
  60. package/dist/esm/types.d.ts +5 -5
  61. package/dist/esm/types.js.map +1 -1
  62. package/dist/esm/waitForAccess.d.ts +1 -1
  63. package/dist/esm/waitForAccess.js.map +1 -1
  64. package/package.json +3 -4
package/dist/cjs/index.js CHANGED
@@ -10,32 +10,47 @@ function _export(target, all) {
10
10
  }
11
11
  _export(exports, {
12
12
  get DirectoryEntry () {
13
- return _DirectoryEntry.default;
13
+ return _DirectoryEntryts.default;
14
14
  },
15
15
  get FileEntry () {
16
- return _FileEntry.default;
16
+ return _FileEntryts.default;
17
17
  },
18
18
  get LinkEntry () {
19
- return _LinkEntry.default;
19
+ return _LinkEntryts.default;
20
20
  },
21
21
  get SymbolicLinkEntry () {
22
- return _SymbolicLinkEntry.default;
22
+ return _SymbolicLinkEntryts.default;
23
23
  },
24
24
  get default () {
25
- return _stackbaseiterator.default;
25
+ return ExtractBaseIterator;
26
26
  },
27
27
  get waitForAccess () {
28
- return _waitForAccess.default;
28
+ return _waitForAccessts.default;
29
29
  }
30
30
  });
31
31
  require("./polyfills.js");
32
32
  var _stackbaseiterator = /*#__PURE__*/ _interop_require_default(require("stack-base-iterator"));
33
- var _DirectoryEntry = /*#__PURE__*/ _interop_require_default(require("./DirectoryEntry.js"));
34
- var _FileEntry = /*#__PURE__*/ _interop_require_default(require("./FileEntry.js"));
35
- var _LinkEntry = /*#__PURE__*/ _interop_require_default(require("./LinkEntry.js"));
36
- var _SymbolicLinkEntry = /*#__PURE__*/ _interop_require_default(require("./SymbolicLinkEntry.js"));
33
+ var _DirectoryEntryts = /*#__PURE__*/ _interop_require_default(require("./DirectoryEntry.js"));
34
+ var _FileEntryts = /*#__PURE__*/ _interop_require_default(require("./FileEntry.js"));
35
+ var _LinkEntryts = /*#__PURE__*/ _interop_require_default(require("./LinkEntry.js"));
36
+ var _SymbolicLinkEntryts = /*#__PURE__*/ _interop_require_default(require("./SymbolicLinkEntry.js"));
37
37
  _export_star(require("./types.js"), exports);
38
- var _waitForAccess = /*#__PURE__*/ _interop_require_default(require("./waitForAccess.js"));
38
+ var _waitForAccessts = /*#__PURE__*/ _interop_require_default(require("./waitForAccess.js"));
39
+ function _assert_this_initialized(self) {
40
+ if (self === void 0) {
41
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
42
+ }
43
+ return self;
44
+ }
45
+ function _call_super(_this, derived, args) {
46
+ derived = _get_prototype_of(derived);
47
+ return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
48
+ }
49
+ function _class_call_check(instance, Constructor) {
50
+ if (!(instance instanceof Constructor)) {
51
+ throw new TypeError("Cannot call a class as a function");
52
+ }
53
+ }
39
54
  function _export_star(from, to) {
40
55
  Object.keys(from).forEach(function(k) {
41
56
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
@@ -49,9 +64,62 @@ function _export_star(from, to) {
49
64
  });
50
65
  return from;
51
66
  }
67
+ function _get_prototype_of(o) {
68
+ _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
69
+ return o.__proto__ || Object.getPrototypeOf(o);
70
+ };
71
+ return _get_prototype_of(o);
72
+ }
73
+ function _inherits(subClass, superClass) {
74
+ if (typeof superClass !== "function" && superClass !== null) {
75
+ throw new TypeError("Super expression must either be null or a function");
76
+ }
77
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
78
+ constructor: {
79
+ value: subClass,
80
+ writable: true,
81
+ configurable: true
82
+ }
83
+ });
84
+ if (superClass) _set_prototype_of(subClass, superClass);
85
+ }
52
86
  function _interop_require_default(obj) {
53
87
  return obj && obj.__esModule ? obj : {
54
88
  default: obj
55
89
  };
56
90
  }
91
+ function _possible_constructor_return(self, call) {
92
+ if (call && (_type_of(call) === "object" || typeof call === "function")) {
93
+ return call;
94
+ }
95
+ return _assert_this_initialized(self);
96
+ }
97
+ function _set_prototype_of(o, p) {
98
+ _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
99
+ o.__proto__ = p;
100
+ return o;
101
+ };
102
+ return _set_prototype_of(o, p);
103
+ }
104
+ function _type_of(obj) {
105
+ "@swc/helpers - typeof";
106
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
107
+ }
108
+ function _is_native_reflect_construct() {
109
+ try {
110
+ var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
111
+ } catch (_) {}
112
+ return (_is_native_reflect_construct = function() {
113
+ return !!result;
114
+ })();
115
+ }
116
+ var ExtractBaseIterator = /*#__PURE__*/ function(StackBaseIterator) {
117
+ "use strict";
118
+ _inherits(ExtractBaseIterator, StackBaseIterator);
119
+ function ExtractBaseIterator() {
120
+ _class_call_check(this, ExtractBaseIterator);
121
+ return _call_super(this, ExtractBaseIterator, arguments);
122
+ }
123
+ return ExtractBaseIterator;
124
+ }(_stackbaseiterator.default);
57
125
  /* 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/index.ts"],"sourcesContent":["import './polyfills.js';\n\nexport { default } from 'stack-base-iterator';\nexport { default as DirectoryEntry } from './DirectoryEntry.js';\nexport { default as FileEntry } from './FileEntry.js';\nexport { default as LinkEntry } from './LinkEntry.js';\nexport { default as SymbolicLinkEntry } from './SymbolicLinkEntry.js';\nexport * from './types.js';\nexport { default as waitForAccess } from './waitForAccess.js';\n"],"names":["DirectoryEntry","FileEntry","LinkEntry","SymbolicLinkEntry","default","waitForAccess"],"mappings":";;;;;;;;;;;QAGoBA;eAAAA,uBAAc;;QACdC;eAAAA,kBAAS;;QACTC;eAAAA,kBAAS;;QACTC;eAAAA,0BAAiB;;QAJ5BC;eAAAA,0BAAO;;QAMIC;eAAAA,sBAAa;;;QAR1B;wEAEiB;qEACkB;gEACL;gEACA;wEACQ;qBAC/B;oEAC2B"}
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';\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;;QAODC;eAAAA,wBAAa;;;QAZ1B;wEACuB;uEAMY;kEACL;kEACA;0EACQ;qBAC/B;sEAC2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAP1B,IAAA,AAAMD,oCAAN;;cAAMA;aAAAA;gCAAAA;QAAN,OAAA,kBAAMA;;WAAAA;EAA4BE,0BAAiB"}
@@ -1,2 +1,2 @@
1
- import type { ExtractOptions } from './types.js';
1
+ import type { ExtractOptions } from './types.ts';
2
2
  export default function stripPath(relativePath: string, options: ExtractOptions): string;
@@ -1,2 +1,2 @@
1
- import type { ExtractOptions } from './types.js';
1
+ import type { ExtractOptions } from './types.ts';
2
2
  export default function stripPath(relativePath: string, options: ExtractOptions): string;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/stripPath.ts"],"sourcesContent":["import compact from 'lodash.compact';\nimport path from 'path';\n\nimport type { ExtractOptions } from './types.js';\n\nexport default function stripPath(relativePath: string, options: ExtractOptions): string {\n const strip = options.strip || 0;\n if (!strip) return relativePath;\n const parts = compact(relativePath.split(path.sep));\n if (parts.length < strip) throw new Error(`You cannot strip more levels than there are directories. Strip: ${strip}. Path: ${relativePath}`);\n return parts.slice(strip).join(path.sep);\n}\n"],"names":["stripPath","relativePath","options","strip","parts","compact","split","path","sep","length","Error","slice","join"],"mappings":";;;;+BAKA;;;eAAwBA;;;oEALJ;2DACH;;;;;;AAIF,SAASA,UAAUC,YAAoB,EAAEC,OAAuB;IAC7E,IAAMC,QAAQD,QAAQC,KAAK,IAAI;IAC/B,IAAI,CAACA,OAAO,OAAOF;IACnB,IAAMG,QAAQC,IAAAA,sBAAO,EAACJ,aAAaK,KAAK,CAACC,aAAI,CAACC,GAAG;IACjD,IAAIJ,MAAMK,MAAM,GAAGN,OAAO,MAAM,IAAIO,MAAM,AAAC,mEAAkFT,OAAhBE,OAAM,YAAuB,OAAbF;IAC7H,OAAOG,MAAMO,KAAK,CAACR,OAAOS,IAAI,CAACL,aAAI,CAACC,GAAG;AACzC"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/stripPath.ts"],"sourcesContent":["import compact from 'lodash.compact';\nimport path from 'path';\n\nimport type { ExtractOptions } from './types.ts';\n\nexport default function stripPath(relativePath: string, options: ExtractOptions): string {\n const strip = options.strip || 0;\n if (!strip) return relativePath;\n const parts = compact(relativePath.split(path.sep));\n if (parts.length < strip) throw new Error(`You cannot strip more levels than there are directories. Strip: ${strip}. Path: ${relativePath}`);\n return parts.slice(strip).join(path.sep);\n}\n"],"names":["stripPath","relativePath","options","strip","parts","compact","split","path","sep","length","Error","slice","join"],"mappings":";;;;+BAKA;;;eAAwBA;;;oEALJ;2DACH;;;;;;AAIF,SAASA,UAAUC,YAAoB,EAAEC,OAAuB;IAC7E,IAAMC,QAAQD,QAAQC,KAAK,IAAI;IAC/B,IAAI,CAACA,OAAO,OAAOF;IACnB,IAAMG,QAAQC,IAAAA,sBAAO,EAACJ,aAAaK,KAAK,CAACC,aAAI,CAACC,GAAG;IACjD,IAAIJ,MAAMK,MAAM,GAAGN,OAAO,MAAM,IAAIO,MAAM,AAAC,mEAAkFT,OAAhBE,OAAM,YAAuB,OAAbF;IAC7H,OAAOG,MAAMO,KAAK,CAACR,OAAOS,IAAI,CAACL,aAAI,CAACC,GAAG;AACzC"}
@@ -14,7 +14,7 @@ export interface FileAttributes {
14
14
  }
15
15
  export interface DirectoryAttributes {
16
16
  mode: Mode;
17
- mtime: number;
17
+ mtime: number | Date;
18
18
  path: string;
19
19
  }
20
20
  export interface LinkAttributes {
@@ -23,10 +23,10 @@ export interface LinkAttributes {
23
23
  path: string;
24
24
  linkpath: string;
25
25
  }
26
- import type { default as DirectoryEntry } from './DirectoryEntry.js';
27
- import type { default as FileEntry } from './FileEntry.js';
28
- import type { default as LinkEntry } from './LinkEntry.js';
29
- import type { default as SymbolicLinkEntry } from './SymbolicLinkEntry.js';
26
+ import type { default as DirectoryEntry } from './DirectoryEntry.ts';
27
+ import type { default as FileEntry } from './FileEntry.ts';
28
+ import type { default as LinkEntry } from './LinkEntry.ts';
29
+ import type { default as SymbolicLinkEntry } from './SymbolicLinkEntry.ts';
30
30
  export type Entry = DirectoryEntry | FileEntry | LinkEntry | SymbolicLinkEntry;
31
31
  export interface AbstractEntry {
32
32
  mode: Mode;
@@ -14,7 +14,7 @@ export interface FileAttributes {
14
14
  }
15
15
  export interface DirectoryAttributes {
16
16
  mode: Mode;
17
- mtime: number;
17
+ mtime: number | Date;
18
18
  path: string;
19
19
  }
20
20
  export interface LinkAttributes {
@@ -23,10 +23,10 @@ export interface LinkAttributes {
23
23
  path: string;
24
24
  linkpath: string;
25
25
  }
26
- import type { default as DirectoryEntry } from './DirectoryEntry.js';
27
- import type { default as FileEntry } from './FileEntry.js';
28
- import type { default as LinkEntry } from './LinkEntry.js';
29
- import type { default as SymbolicLinkEntry } from './SymbolicLinkEntry.js';
26
+ import type { default as DirectoryEntry } from './DirectoryEntry.ts';
27
+ import type { default as FileEntry } from './FileEntry.ts';
28
+ import type { default as LinkEntry } from './LinkEntry.ts';
29
+ import type { default as SymbolicLinkEntry } from './SymbolicLinkEntry.ts';
30
30
  export type Entry = DirectoryEntry | FileEntry | LinkEntry | SymbolicLinkEntry;
31
31
  export interface AbstractEntry {
32
32
  mode: Mode;
@@ -1,2 +1,2 @@
1
- import type { NoParamCallback } from './types.js';
1
+ import type { NoParamCallback } from './types.ts';
2
2
  export default function waitForAccess(fullPath: string, callback: NoParamCallback): undefined;
@@ -1,2 +1,2 @@
1
- import type { NoParamCallback } from './types.js';
1
+ import type { NoParamCallback } from './types.ts';
2
2
  export default function waitForAccess(fullPath: string, callback: NoParamCallback): undefined;
@@ -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.js';\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 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,5 +1,5 @@
1
1
  import type { Mode } from 'fs';
2
- import type { DirectoryAttributes, ExtractOptions, NoParamCallback } from './types.js';
2
+ import type { DirectoryAttributes, ExtractOptions, NoParamCallback } from './types.ts';
3
3
  export default class DirectoryEntry {
4
4
  mode: Mode;
5
5
  mtime: number;
@@ -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.js';\nimport chown from './fs/chown.js';\nimport utimes from './fs/utimes.js';\nimport stripPath from './stripPath.js';\nimport validateAttributes from './validateAttributes.js';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path'];\n\nimport type { Mode } from 'fs';\nimport type { DirectoryAttributes, ExtractOptions, NoParamCallback } from './types.js';\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 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,5 +1,5 @@
1
1
  import type { Mode } from 'fs';
2
- import type { ExtractOptions, FileAttributes, NoParamCallback } from './types.js';
2
+ import type { ExtractOptions, FileAttributes, NoParamCallback } from './types.ts';
3
3
  export default class FileEntry {
4
4
  mode: Mode;
5
5
  mtime: number;
@@ -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.js';\nimport chown from './fs/chown.js';\nimport utimes from './fs/utimes.js';\nimport stripPath from './stripPath.js';\nimport validateAttributes from './validateAttributes.js';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path'];\n\nimport type { Mode } from 'fs';\nimport type { ExtractOptions, FileAttributes, NoParamCallback, WriteFileFn } from './types.js';\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 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,5 +1,5 @@
1
1
  import type { Mode } from 'fs';
2
- import type { ExtractOptions, LinkAttributes, NoParamCallback } from './types.js';
2
+ import type { ExtractOptions, LinkAttributes, NoParamCallback } from './types.ts';
3
3
  export default class LinkEntry {
4
4
  mode: Mode;
5
5
  mtime: number;
@@ -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.js';\nimport chown from './fs/chown.js';\nimport utimes from './fs/utimes.js';\nimport stripPath from './stripPath.js';\nimport validateAttributes from './validateAttributes.js';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path', 'linkpath'];\n\nimport type { Mode } from 'fs';\nimport type { ExtractOptions, LinkAttributes, NoParamCallback } from './types.js';\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 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,5 +1,5 @@
1
1
  import type { Mode } from 'fs';
2
- import type { ExtractOptions, LinkAttributes, NoParamCallback } from './types.js';
2
+ import type { ExtractOptions, LinkAttributes, NoParamCallback } from './types.ts';
3
3
  export default class SymbolicLinkEntry {
4
4
  mode: Mode;
5
5
  mtime: number;
@@ -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.js';\nimport chown from './fs/chown.js';\nimport symlinkWin32 from './fs/symlinkWin32.js';\nimport utimes from './fs/utimes.js';\nimport stripPath from './stripPath.js';\nimport validateAttributes from './validateAttributes.js';\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.js';\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 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,3 +1,3 @@
1
1
  import type { NoParamCallback } from 'fs';
2
- import type { AbstractEntry, ExtractOptions } from '../types.js';
2
+ import type { AbstractEntry, ExtractOptions } from '../types.ts';
3
3
  export default function chmodFn(fullPath: string, entry: AbstractEntry, _options: ExtractOptions, callback: NoParamCallback): void;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/fs/chmod.ts"],"sourcesContent":["// adapted from https://github.com/mafintosh/tar-fs\n\nimport type { NoParamCallback } from 'fs';\nimport fs from 'graceful-fs';\nimport type { AbstractEntry, ExtractOptions } from '../types.js';\n\nconst UMASK = process.umask ? process.umask() : null;\nconst DMODE = 0o755;\nconst FMODE = 0o644;\nconst SMODE = 0o755;\nconst LMODE = 0o644;\n\nexport default function chmodFn(fullPath: string, entry: AbstractEntry, _options: ExtractOptions, callback: NoParamCallback) {\n const chmod = entry.type === 'symlink' ? fs.lchmod : fs.chmod;\n if (!chmod || UMASK === null) {\n callback(null);\n return;\n }\n\n let mode = entry.mode;\n if (!mode) {\n switch (entry.type) {\n case 'directory':\n mode = DMODE;\n break;\n case 'file':\n mode = FMODE;\n break;\n case 'symlink':\n mode = SMODE;\n break;\n case 'link':\n mode = LMODE;\n break;\n }\n }\n chmod(fullPath, (mode as number) & ~UMASK, callback);\n}\n"],"names":["fs","UMASK","process","umask","DMODE","FMODE","SMODE","LMODE","chmodFn","fullPath","entry","_options","callback","chmod","type","lchmod","mode"],"mappings":"AAAA,mDAAmD;AAGnD,OAAOA,QAAQ,cAAc;AAG7B,MAAMC,QAAQC,QAAQC,KAAK,GAAGD,QAAQC,KAAK,KAAK;AAChD,MAAMC,QAAQ;AACd,MAAMC,QAAQ;AACd,MAAMC,QAAQ;AACd,MAAMC,QAAQ;AAEd,eAAe,SAASC,QAAQC,QAAgB,EAAEC,KAAoB,EAAEC,QAAwB,EAAEC,QAAyB;IACzH,MAAMC,QAAQH,MAAMI,IAAI,KAAK,YAAYd,GAAGe,MAAM,GAAGf,GAAGa,KAAK;IAC7D,IAAI,CAACA,SAASZ,UAAU,MAAM;QAC5BW,SAAS;QACT;IACF;IAEA,IAAII,OAAON,MAAMM,IAAI;IACrB,IAAI,CAACA,MAAM;QACT,OAAQN,MAAMI,IAAI;YAChB,KAAK;gBACHE,OAAOZ;gBACP;YACF,KAAK;gBACHY,OAAOX;gBACP;YACF,KAAK;gBACHW,OAAOV;gBACP;YACF,KAAK;gBACHU,OAAOT;gBACP;QACJ;IACF;IACAM,MAAMJ,UAAU,AAACO,OAAkB,CAACf,OAAOW;AAC7C"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/fs/chmod.ts"],"sourcesContent":["// adapted from https://github.com/mafintosh/tar-fs\n\nimport type { NoParamCallback } from 'fs';\nimport fs from 'graceful-fs';\nimport type { AbstractEntry, ExtractOptions } from '../types.ts';\n\nconst UMASK = process.umask ? process.umask() : null;\nconst DMODE = 0o755;\nconst FMODE = 0o644;\nconst SMODE = 0o755;\nconst LMODE = 0o644;\n\nexport default function chmodFn(fullPath: string, entry: AbstractEntry, _options: ExtractOptions, callback: NoParamCallback) {\n const chmod = entry.type === 'symlink' ? fs.lchmod : fs.chmod;\n if (!chmod || UMASK === null) {\n callback(null);\n return;\n }\n\n let mode = entry.mode;\n if (!mode) {\n switch (entry.type) {\n case 'directory':\n mode = DMODE;\n break;\n case 'file':\n mode = FMODE;\n break;\n case 'symlink':\n mode = SMODE;\n break;\n case 'link':\n mode = LMODE;\n break;\n }\n }\n chmod(fullPath, (mode as number) & ~UMASK, callback);\n}\n"],"names":["fs","UMASK","process","umask","DMODE","FMODE","SMODE","LMODE","chmodFn","fullPath","entry","_options","callback","chmod","type","lchmod","mode"],"mappings":"AAAA,mDAAmD;AAGnD,OAAOA,QAAQ,cAAc;AAG7B,MAAMC,QAAQC,QAAQC,KAAK,GAAGD,QAAQC,KAAK,KAAK;AAChD,MAAMC,QAAQ;AACd,MAAMC,QAAQ;AACd,MAAMC,QAAQ;AACd,MAAMC,QAAQ;AAEd,eAAe,SAASC,QAAQC,QAAgB,EAAEC,KAAoB,EAAEC,QAAwB,EAAEC,QAAyB;IACzH,MAAMC,QAAQH,MAAMI,IAAI,KAAK,YAAYd,GAAGe,MAAM,GAAGf,GAAGa,KAAK;IAC7D,IAAI,CAACA,SAASZ,UAAU,MAAM;QAC5BW,SAAS;QACT;IACF;IAEA,IAAII,OAAON,MAAMM,IAAI;IACrB,IAAI,CAACA,MAAM;QACT,OAAQN,MAAMI,IAAI;YAChB,KAAK;gBACHE,OAAOZ;gBACP;YACF,KAAK;gBACHY,OAAOX;gBACP;YACF,KAAK;gBACHW,OAAOV;gBACP;YACF,KAAK;gBACHU,OAAOT;gBACP;QACJ;IACF;IACAM,MAAMJ,UAAU,AAACO,OAAkB,CAACf,OAAOW;AAC7C"}
@@ -1,3 +1,3 @@
1
1
  import type { NoParamCallback } from 'fs';
2
- import type { AbstractEntry, ExtractOptions } from '../types.js';
2
+ import type { AbstractEntry, ExtractOptions } from '../types.ts';
3
3
  export default function chownFn(fullPath: string, entry: AbstractEntry, _options: ExtractOptions, callback: NoParamCallback): void;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/fs/chown.ts"],"sourcesContent":["// adapted from https://github.com/mafintosh/tar-fs\n\nimport type { NoParamCallback } from 'fs';\nimport fs from 'graceful-fs';\nimport type { AbstractEntry, ExtractOptions } from '../types.js';\n\nconst UID = process.getuid ? process.getuid() : -1;\nconst OWN = process.platform !== 'win32' && UID === 0;\n\nexport default function chownFn(fullPath: string, entry: AbstractEntry, _options: ExtractOptions, callback: NoParamCallback) {\n const chown = entry.type === 'symlink' ? fs.lchown : fs.chown;\n if (!chown || !OWN || !entry.uid || !entry.gid) {\n callback(null);\n return;\n }\n chown(fullPath, entry.uid, entry.gid, callback);\n}\n"],"names":["fs","UID","process","getuid","OWN","platform","chownFn","fullPath","entry","_options","callback","chown","type","lchown","uid","gid"],"mappings":"AAAA,mDAAmD;AAGnD,OAAOA,QAAQ,cAAc;AAG7B,MAAMC,MAAMC,QAAQC,MAAM,GAAGD,QAAQC,MAAM,KAAK,CAAC;AACjD,MAAMC,MAAMF,QAAQG,QAAQ,KAAK,WAAWJ,QAAQ;AAEpD,eAAe,SAASK,QAAQC,QAAgB,EAAEC,KAAoB,EAAEC,QAAwB,EAAEC,QAAyB;IACzH,MAAMC,QAAQH,MAAMI,IAAI,KAAK,YAAYZ,GAAGa,MAAM,GAAGb,GAAGW,KAAK;IAC7D,IAAI,CAACA,SAAS,CAACP,OAAO,CAACI,MAAMM,GAAG,IAAI,CAACN,MAAMO,GAAG,EAAE;QAC9CL,SAAS;QACT;IACF;IACAC,MAAMJ,UAAUC,MAAMM,GAAG,EAAEN,MAAMO,GAAG,EAAEL;AACxC"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/fs/chown.ts"],"sourcesContent":["// adapted from https://github.com/mafintosh/tar-fs\n\nimport type { NoParamCallback } from 'fs';\nimport fs from 'graceful-fs';\nimport type { AbstractEntry, ExtractOptions } from '../types.ts';\n\nconst UID = process.getuid ? process.getuid() : -1;\nconst OWN = process.platform !== 'win32' && UID === 0;\n\nexport default function chownFn(fullPath: string, entry: AbstractEntry, _options: ExtractOptions, callback: NoParamCallback) {\n const chown = entry.type === 'symlink' ? fs.lchown : fs.chown;\n if (!chown || !OWN || !entry.uid || !entry.gid) {\n callback(null);\n return;\n }\n chown(fullPath, entry.uid, entry.gid, callback);\n}\n"],"names":["fs","UID","process","getuid","OWN","platform","chownFn","fullPath","entry","_options","callback","chown","type","lchown","uid","gid"],"mappings":"AAAA,mDAAmD;AAGnD,OAAOA,QAAQ,cAAc;AAG7B,MAAMC,MAAMC,QAAQC,MAAM,GAAGD,QAAQC,MAAM,KAAK,CAAC;AACjD,MAAMC,MAAMF,QAAQG,QAAQ,KAAK,WAAWJ,QAAQ;AAEpD,eAAe,SAASK,QAAQC,QAAgB,EAAEC,KAAoB,EAAEC,QAAwB,EAAEC,QAAyB;IACzH,MAAMC,QAAQH,MAAMI,IAAI,KAAK,YAAYZ,GAAGa,MAAM,GAAGb,GAAGW,KAAK;IAC7D,IAAI,CAACA,SAAS,CAACP,OAAO,CAACI,MAAMM,GAAG,IAAI,CAACN,MAAMO,GAAG,EAAE;QAC9CL,SAAS;QACT;IACF;IACAC,MAAMJ,UAAUC,MAAMM,GAAG,EAAEN,MAAMO,GAAG,EAAEL;AACxC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/fs/symlinkWin32.ts"],"sourcesContent":["import type { NoParamCallback } from 'fs';\nimport fs from 'graceful-fs';\nimport lstatReal from './lstatReal.js';\n\nexport default function symlinkWin32(linkFullPath: string, linkpath: string, fullPath: string, callback: NoParamCallback) {\n lstatReal(linkFullPath, (err, targetStat) => {\n if (err || !targetStat) return callback(err || new Error(`Symlink path does not exist${linkFullPath}`));\n const type = targetStat.isDirectory() ? 'dir' : 'file';\n fs.symlink(linkpath, fullPath, type, callback);\n });\n}\n"],"names":["fs","lstatReal","symlinkWin32","linkFullPath","linkpath","fullPath","callback","err","targetStat","Error","type","isDirectory","symlink"],"mappings":"AACA,OAAOA,QAAQ,cAAc;AAC7B,OAAOC,eAAe,iBAAiB;AAEvC,eAAe,SAASC,aAAaC,YAAoB,EAAEC,QAAgB,EAAEC,QAAgB,EAAEC,QAAyB;IACtHL,UAAUE,cAAc,CAACI,KAAKC;QAC5B,IAAID,OAAO,CAACC,YAAY,OAAOF,SAASC,OAAO,IAAIE,MAAM,CAAC,2BAA2B,EAAEN,cAAc;QACrG,MAAMO,OAAOF,WAAWG,WAAW,KAAK,QAAQ;QAChDX,GAAGY,OAAO,CAACR,UAAUC,UAAUK,MAAMJ;IACvC;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/fs/symlinkWin32.ts"],"sourcesContent":["import type { NoParamCallback } from 'fs';\nimport fs from 'graceful-fs';\nimport lstatReal from './lstatReal.ts';\n\nexport default function symlinkWin32(linkFullPath: string, linkpath: string, fullPath: string, callback: NoParamCallback) {\n lstatReal(linkFullPath, (err, targetStat) => {\n if (err || !targetStat) return callback(err || new Error(`Symlink path does not exist${linkFullPath}`));\n const type = targetStat.isDirectory() ? 'dir' : 'file';\n fs.symlink(linkpath, fullPath, type, callback);\n });\n}\n"],"names":["fs","lstatReal","symlinkWin32","linkFullPath","linkpath","fullPath","callback","err","targetStat","Error","type","isDirectory","symlink"],"mappings":"AACA,OAAOA,QAAQ,cAAc;AAC7B,OAAOC,eAAe,iBAAiB;AAEvC,eAAe,SAASC,aAAaC,YAAoB,EAAEC,QAAgB,EAAEC,QAAgB,EAAEC,QAAyB;IACtHL,UAAUE,cAAc,CAACI,KAAKC;QAC5B,IAAID,OAAO,CAACC,YAAY,OAAOF,SAASC,OAAO,IAAIE,MAAM,CAAC,2BAA2B,EAAEN,cAAc;QACrG,MAAMO,OAAOF,WAAWG,WAAW,KAAK,QAAQ;QAChDX,GAAGY,OAAO,CAACR,UAAUC,UAAUK,MAAMJ;IACvC;AACF"}
@@ -1,3 +1,3 @@
1
1
  import type { NoParamCallback } from 'fs';
2
- import type { AbstractEntry, ExtractOptions } from '../types.js';
2
+ import type { AbstractEntry, ExtractOptions } from '../types.ts';
3
3
  export default function utimes(fullPath: string, entry: AbstractEntry, options: ExtractOptions, callback: NoParamCallback): undefined;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/fs/utimes.ts"],"sourcesContent":["// adapted from https://github.com/mafintosh/tar-fs\n\nimport type { NoParamCallback } from 'fs';\nimport fs from 'graceful-fs';\nimport type { AbstractEntry, ExtractOptions } from '../types.js';\n\nexport default function utimes(fullPath: string, entry: AbstractEntry, options: ExtractOptions, callback: NoParamCallback): undefined {\n const now = options.now || new Date();\n fs.utimes(fullPath, now, new Date(entry.mtime), callback);\n}\n"],"names":["fs","utimes","fullPath","entry","options","callback","now","Date","mtime"],"mappings":"AAAA,mDAAmD;AAGnD,OAAOA,QAAQ,cAAc;AAG7B,eAAe,SAASC,OAAOC,QAAgB,EAAEC,KAAoB,EAAEC,OAAuB,EAAEC,QAAyB;IACvH,MAAMC,MAAMF,QAAQE,GAAG,IAAI,IAAIC;IAC/BP,GAAGC,MAAM,CAACC,UAAUI,KAAK,IAAIC,KAAKJ,MAAMK,KAAK,GAAGH;AAClD"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/fs/utimes.ts"],"sourcesContent":["// adapted from https://github.com/mafintosh/tar-fs\n\nimport type { NoParamCallback } from 'fs';\nimport fs from 'graceful-fs';\nimport type { AbstractEntry, ExtractOptions } from '../types.ts';\n\nexport default function utimes(fullPath: string, entry: AbstractEntry, options: ExtractOptions, callback: NoParamCallback): undefined {\n const now = options.now || new Date();\n fs.utimes(fullPath, now, new Date(entry.mtime), callback);\n}\n"],"names":["fs","utimes","fullPath","entry","options","callback","now","Date","mtime"],"mappings":"AAAA,mDAAmD;AAGnD,OAAOA,QAAQ,cAAc;AAG7B,eAAe,SAASC,OAAOC,QAAgB,EAAEC,KAAoB,EAAEC,OAAuB,EAAEC,QAAyB;IACvH,MAAMC,MAAMF,QAAQE,GAAG,IAAI,IAAIC;IAC/BP,GAAGC,MAAM,CAACC,UAAUI,KAAK,IAAIC,KAAKJ,MAAMK,KAAK,GAAGH;AAClD"}
@@ -1,8 +1,11 @@
1
- import './polyfills.js';
2
- export { default } from 'stack-base-iterator';
3
- export { default as DirectoryEntry } from './DirectoryEntry.js';
4
- export { default as FileEntry } from './FileEntry.js';
5
- export { default as LinkEntry } from './LinkEntry.js';
6
- export { default as SymbolicLinkEntry } from './SymbolicLinkEntry.js';
7
- export * from './types.js';
8
- export { default as waitForAccess } from './waitForAccess.js';
1
+ import './polyfills.ts';
2
+ import StackBaseIterator from 'stack-base-iterator';
3
+ import type { Entry } from './types.ts';
4
+ export default class ExtractBaseIterator extends StackBaseIterator<Entry> {
5
+ }
6
+ export { default as DirectoryEntry } from './DirectoryEntry.ts';
7
+ export { default as FileEntry } from './FileEntry.ts';
8
+ export { default as LinkEntry } from './LinkEntry.ts';
9
+ export { default as SymbolicLinkEntry } from './SymbolicLinkEntry.ts';
10
+ export * from './types.ts';
11
+ export { default as waitForAccess } from './waitForAccess.ts';
package/dist/esm/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import './polyfills.js';
2
- export { default } from 'stack-base-iterator';
2
+ import StackBaseIterator from 'stack-base-iterator';
3
+ export default class ExtractBaseIterator extends StackBaseIterator {
4
+ }
3
5
  export { default as DirectoryEntry } from './DirectoryEntry.js';
4
6
  export { default as FileEntry } from './FileEntry.js';
5
7
  export { default as LinkEntry } from './LinkEntry.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/index.ts"],"sourcesContent":["import './polyfills.js';\n\nexport { default } from 'stack-base-iterator';\nexport { default as DirectoryEntry } from './DirectoryEntry.js';\nexport { default as FileEntry } from './FileEntry.js';\nexport { default as LinkEntry } from './LinkEntry.js';\nexport { default as SymbolicLinkEntry } from './SymbolicLinkEntry.js';\nexport * from './types.js';\nexport { default as waitForAccess } from './waitForAccess.js';\n"],"names":["default","DirectoryEntry","FileEntry","LinkEntry","SymbolicLinkEntry","waitForAccess"],"mappings":"AAAA,OAAO,iBAAiB;AAExB,SAASA,OAAO,QAAQ,sBAAsB;AAC9C,SAASA,WAAWC,cAAc,QAAQ,sBAAsB;AAChE,SAASD,WAAWE,SAAS,QAAQ,iBAAiB;AACtD,SAASF,WAAWG,SAAS,QAAQ,iBAAiB;AACtD,SAASH,WAAWI,iBAAiB,QAAQ,yBAAyB;AACtE,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 './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';\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,cAAc,aAAa;AAC3B,SAASJ,WAAWK,aAAa,QAAQ,qBAAqB"}
@@ -1,2 +1,2 @@
1
- import type { ExtractOptions } from './types.js';
1
+ import type { ExtractOptions } from './types.ts';
2
2
  export default function stripPath(relativePath: string, options: ExtractOptions): string;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/stripPath.ts"],"sourcesContent":["import compact from 'lodash.compact';\nimport path from 'path';\n\nimport type { ExtractOptions } from './types.js';\n\nexport default function stripPath(relativePath: string, options: ExtractOptions): string {\n const strip = options.strip || 0;\n if (!strip) return relativePath;\n const parts = compact(relativePath.split(path.sep));\n if (parts.length < strip) throw new Error(`You cannot strip more levels than there are directories. Strip: ${strip}. Path: ${relativePath}`);\n return parts.slice(strip).join(path.sep);\n}\n"],"names":["compact","path","stripPath","relativePath","options","strip","parts","split","sep","length","Error","slice","join"],"mappings":"AAAA,OAAOA,aAAa,iBAAiB;AACrC,OAAOC,UAAU,OAAO;AAIxB,eAAe,SAASC,UAAUC,YAAoB,EAAEC,OAAuB;IAC7E,MAAMC,QAAQD,QAAQC,KAAK,IAAI;IAC/B,IAAI,CAACA,OAAO,OAAOF;IACnB,MAAMG,QAAQN,QAAQG,aAAaI,KAAK,CAACN,KAAKO,GAAG;IACjD,IAAIF,MAAMG,MAAM,GAAGJ,OAAO,MAAM,IAAIK,MAAM,CAAC,gEAAgE,EAAEL,MAAM,QAAQ,EAAEF,cAAc;IAC3I,OAAOG,MAAMK,KAAK,CAACN,OAAOO,IAAI,CAACX,KAAKO,GAAG;AACzC"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/stripPath.ts"],"sourcesContent":["import compact from 'lodash.compact';\nimport path from 'path';\n\nimport type { ExtractOptions } from './types.ts';\n\nexport default function stripPath(relativePath: string, options: ExtractOptions): string {\n const strip = options.strip || 0;\n if (!strip) return relativePath;\n const parts = compact(relativePath.split(path.sep));\n if (parts.length < strip) throw new Error(`You cannot strip more levels than there are directories. Strip: ${strip}. Path: ${relativePath}`);\n return parts.slice(strip).join(path.sep);\n}\n"],"names":["compact","path","stripPath","relativePath","options","strip","parts","split","sep","length","Error","slice","join"],"mappings":"AAAA,OAAOA,aAAa,iBAAiB;AACrC,OAAOC,UAAU,OAAO;AAIxB,eAAe,SAASC,UAAUC,YAAoB,EAAEC,OAAuB;IAC7E,MAAMC,QAAQD,QAAQC,KAAK,IAAI;IAC/B,IAAI,CAACA,OAAO,OAAOF;IACnB,MAAMG,QAAQN,QAAQG,aAAaI,KAAK,CAACN,KAAKO,GAAG;IACjD,IAAIF,MAAMG,MAAM,GAAGJ,OAAO,MAAM,IAAIK,MAAM,CAAC,gEAAgE,EAAEL,MAAM,QAAQ,EAAEF,cAAc;IAC3I,OAAOG,MAAMK,KAAK,CAACN,OAAOO,IAAI,CAACX,KAAKO,GAAG;AACzC"}
@@ -14,7 +14,7 @@ export interface FileAttributes {
14
14
  }
15
15
  export interface DirectoryAttributes {
16
16
  mode: Mode;
17
- mtime: number;
17
+ mtime: number | Date;
18
18
  path: string;
19
19
  }
20
20
  export interface LinkAttributes {
@@ -23,10 +23,10 @@ export interface LinkAttributes {
23
23
  path: string;
24
24
  linkpath: string;
25
25
  }
26
- import type { default as DirectoryEntry } from './DirectoryEntry.js';
27
- import type { default as FileEntry } from './FileEntry.js';
28
- import type { default as LinkEntry } from './LinkEntry.js';
29
- import type { default as SymbolicLinkEntry } from './SymbolicLinkEntry.js';
26
+ import type { default as DirectoryEntry } from './DirectoryEntry.ts';
27
+ import type { default as FileEntry } from './FileEntry.ts';
28
+ import type { default as LinkEntry } from './LinkEntry.ts';
29
+ import type { default as SymbolicLinkEntry } from './SymbolicLinkEntry.ts';
30
30
  export type Entry = DirectoryEntry | FileEntry | LinkEntry | SymbolicLinkEntry;
31
31
  export interface AbstractEntry {
32
32
  mode: Mode;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/types.ts"],"sourcesContent":["import type { Mode } from 'fs';\nimport type { StackOptions } from 'stack-base-iterator';\n\nexport interface ExtractOptions extends StackOptions {\n force?: boolean;\n strip?: number;\n now?: Date;\n}\n\nexport type NoParamCallback = (error?: Error) => void;\nexport type WriteFileFn = (path: string, options: object, callback: NoParamCallback) => void;\n\nexport interface FileAttributes {\n mode: Mode;\n mtime: number;\n path: string;\n}\n\nexport interface DirectoryAttributes {\n mode: Mode;\n mtime: number;\n path: string;\n}\n\nexport interface LinkAttributes {\n mode: Mode;\n mtime: number;\n path: string;\n linkpath: string;\n}\n\nimport type { default as DirectoryEntry } from './DirectoryEntry.js';\nimport type { default as FileEntry } from './FileEntry.js';\nimport type { default as LinkEntry } from './LinkEntry.js';\nimport type { default as SymbolicLinkEntry } from './SymbolicLinkEntry.js';\nexport type Entry = DirectoryEntry | FileEntry | LinkEntry | SymbolicLinkEntry;\n\nexport interface AbstractEntry {\n mode: Mode;\n mtime: number;\n path: string;\n basename: string;\n type: string;\n linkpath?: string;\n uid?: number;\n gid?: number;\n}\n"],"names":[],"mappings":"AAqCA,WASC"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/types.ts"],"sourcesContent":["import type { Mode } from 'fs';\nimport type { StackOptions } from 'stack-base-iterator';\n\nexport interface ExtractOptions extends StackOptions {\n force?: boolean;\n strip?: number;\n now?: Date;\n}\n\nexport type NoParamCallback = (error?: Error) => void;\nexport type WriteFileFn = (path: string, options: object, callback: NoParamCallback) => void;\n\nexport interface FileAttributes {\n mode: Mode;\n mtime: number;\n path: string;\n}\n\nexport interface DirectoryAttributes {\n mode: Mode;\n mtime: number | Date;\n path: string;\n}\n\nexport interface LinkAttributes {\n mode: Mode;\n mtime: number;\n path: string;\n linkpath: string;\n}\n\nimport type { default as DirectoryEntry } from './DirectoryEntry.ts';\nimport type { default as FileEntry } from './FileEntry.ts';\nimport type { default as LinkEntry } from './LinkEntry.ts';\nimport type { default as SymbolicLinkEntry } from './SymbolicLinkEntry.ts';\nexport type Entry = DirectoryEntry | FileEntry | LinkEntry | SymbolicLinkEntry;\n\nexport interface AbstractEntry {\n mode: Mode;\n mtime: number;\n path: string;\n basename: string;\n type: string;\n linkpath?: string;\n uid?: number;\n gid?: number;\n}\n"],"names":[],"mappings":"AAqCA,WASC"}
@@ -1,2 +1,2 @@
1
- import type { NoParamCallback } from './types.js';
1
+ import type { NoParamCallback } from './types.ts';
2
2
  export default function waitForAccess(fullPath: string, callback: NoParamCallback): undefined;
@@ -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.js';\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 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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "extract-base-iterator",
3
- "version": "2.0.2",
3
+ "version": "2.0.5",
4
4
  "description": "Base iterator for extract iterators like tar-iterator and zip-iterator",
5
5
  "keywords": [
6
6
  "extract",
@@ -47,9 +47,9 @@
47
47
  "mkdirp-classic": "^0.5.3",
48
48
  "next-tick": "^1.1.0",
49
49
  "object-assign": "^4.1.1",
50
- "queue-cb": "^1.5.4",
50
+ "queue-cb": "^1.5.5",
51
51
  "rimraf2": "^2.8.2",
52
- "stack-base-iterator": "2.0.2"
52
+ "stack-base-iterator": "2.0.3"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@types/mocha": "*",
@@ -57,7 +57,6 @@
57
57
  "cr": "*",
58
58
  "fs-iterator": "*",
59
59
  "fs-stats-spys": "*",
60
- "inherits": "*",
61
60
  "lodash.find": "*",
62
61
  "pinkie-promise": "*"
63
62
  },