rimraf 4.2.0 → 4.3.1

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 (100) hide show
  1. package/README.md +57 -22
  2. package/dist/cjs/package.json +2 -2
  3. package/dist/cjs/src/bin.d.ts.map +1 -1
  4. package/dist/cjs/src/bin.js +119 -17
  5. package/dist/cjs/src/bin.js.map +1 -1
  6. package/dist/cjs/src/fs.d.ts +5 -3
  7. package/dist/cjs/src/fs.d.ts.map +1 -1
  8. package/dist/cjs/src/fs.js +8 -3
  9. package/dist/cjs/src/fs.js.map +1 -1
  10. package/dist/cjs/src/ignore-enoent.d.ts.map +1 -1
  11. package/dist/cjs/src/ignore-enoent.js.map +1 -1
  12. package/dist/cjs/src/index-cjs.d.ts +40 -40
  13. package/dist/cjs/src/index.d.ts +43 -38
  14. package/dist/cjs/src/index.d.ts.map +1 -1
  15. package/dist/cjs/src/index.js +19 -10
  16. package/dist/cjs/src/index.js.map +1 -1
  17. package/dist/cjs/src/opt-arg.d.ts +14 -6
  18. package/dist/cjs/src/opt-arg.d.ts.map +1 -1
  19. package/dist/cjs/src/opt-arg.js +8 -2
  20. package/dist/cjs/src/opt-arg.js.map +1 -1
  21. package/dist/cjs/src/path-arg.d.ts +2 -2
  22. package/dist/cjs/src/path-arg.d.ts.map +1 -1
  23. package/dist/cjs/src/path-arg.js +1 -1
  24. package/dist/cjs/src/path-arg.js.map +1 -1
  25. package/dist/cjs/src/readdir-or-error.d.ts +3 -2
  26. package/dist/cjs/src/readdir-or-error.d.ts.map +1 -1
  27. package/dist/cjs/src/readdir-or-error.js.map +1 -1
  28. package/dist/cjs/src/retry-busy.d.ts +2 -2
  29. package/dist/cjs/src/retry-busy.d.ts.map +1 -1
  30. package/dist/cjs/src/retry-busy.js.map +1 -1
  31. package/dist/cjs/src/rimraf-manual.d.ts +2 -2
  32. package/dist/cjs/src/rimraf-manual.d.ts.map +1 -1
  33. package/dist/cjs/src/rimraf-move-remove.d.ts +3 -3
  34. package/dist/cjs/src/rimraf-move-remove.d.ts.map +1 -1
  35. package/dist/cjs/src/rimraf-move-remove.js +86 -24
  36. package/dist/cjs/src/rimraf-move-remove.js.map +1 -1
  37. package/dist/cjs/src/rimraf-native.d.ts +3 -3
  38. package/dist/cjs/src/rimraf-native.d.ts.map +1 -1
  39. package/dist/cjs/src/rimraf-native.js +16 -10
  40. package/dist/cjs/src/rimraf-native.js.map +1 -1
  41. package/dist/cjs/src/rimraf-posix.d.ts +3 -3
  42. package/dist/cjs/src/rimraf-posix.d.ts.map +1 -1
  43. package/dist/cjs/src/rimraf-posix.js +87 -26
  44. package/dist/cjs/src/rimraf-posix.js.map +1 -1
  45. package/dist/cjs/src/rimraf-windows.d.ts +3 -3
  46. package/dist/cjs/src/rimraf-windows.d.ts.map +1 -1
  47. package/dist/cjs/src/rimraf-windows.js +100 -39
  48. package/dist/cjs/src/rimraf-windows.js.map +1 -1
  49. package/dist/cjs/src/use-native.d.ts +2 -2
  50. package/dist/cjs/src/use-native.d.ts.map +1 -1
  51. package/dist/cjs/src/use-native.js +6 -2
  52. package/dist/cjs/src/use-native.js.map +1 -1
  53. package/dist/mjs/fs.d.ts +5 -3
  54. package/dist/mjs/fs.d.ts.map +1 -1
  55. package/dist/mjs/fs.js +6 -2
  56. package/dist/mjs/fs.js.map +1 -1
  57. package/dist/mjs/ignore-enoent.d.ts.map +1 -1
  58. package/dist/mjs/ignore-enoent.js.map +1 -1
  59. package/dist/mjs/index.d.ts +43 -38
  60. package/dist/mjs/index.d.ts.map +1 -1
  61. package/dist/mjs/index.js +18 -9
  62. package/dist/mjs/index.js.map +1 -1
  63. package/dist/mjs/opt-arg.d.ts +14 -6
  64. package/dist/mjs/opt-arg.d.ts.map +1 -1
  65. package/dist/mjs/opt-arg.js +6 -3
  66. package/dist/mjs/opt-arg.js.map +1 -1
  67. package/dist/mjs/package.json +1 -1
  68. package/dist/mjs/path-arg.d.ts +2 -2
  69. package/dist/mjs/path-arg.d.ts.map +1 -1
  70. package/dist/mjs/path-arg.js +2 -2
  71. package/dist/mjs/path-arg.js.map +1 -1
  72. package/dist/mjs/readdir-or-error.d.ts +3 -2
  73. package/dist/mjs/readdir-or-error.d.ts.map +1 -1
  74. package/dist/mjs/readdir-or-error.js.map +1 -1
  75. package/dist/mjs/retry-busy.d.ts +2 -2
  76. package/dist/mjs/retry-busy.d.ts.map +1 -1
  77. package/dist/mjs/retry-busy.js.map +1 -1
  78. package/dist/mjs/rimraf-manual.d.ts +2 -2
  79. package/dist/mjs/rimraf-manual.d.ts.map +1 -1
  80. package/dist/mjs/rimraf-move-remove.d.ts +3 -3
  81. package/dist/mjs/rimraf-move-remove.d.ts.map +1 -1
  82. package/dist/mjs/rimraf-move-remove.js +85 -23
  83. package/dist/mjs/rimraf-move-remove.js.map +1 -1
  84. package/dist/mjs/rimraf-native.d.ts +3 -3
  85. package/dist/mjs/rimraf-native.d.ts.map +1 -1
  86. package/dist/mjs/rimraf-native.js +16 -10
  87. package/dist/mjs/rimraf-native.js.map +1 -1
  88. package/dist/mjs/rimraf-posix.d.ts +3 -3
  89. package/dist/mjs/rimraf-posix.d.ts.map +1 -1
  90. package/dist/mjs/rimraf-posix.js +86 -25
  91. package/dist/mjs/rimraf-posix.js.map +1 -1
  92. package/dist/mjs/rimraf-windows.d.ts +3 -3
  93. package/dist/mjs/rimraf-windows.d.ts.map +1 -1
  94. package/dist/mjs/rimraf-windows.js +99 -38
  95. package/dist/mjs/rimraf-windows.js.map +1 -1
  96. package/dist/mjs/use-native.d.ts +2 -2
  97. package/dist/mjs/use-native.d.ts.map +1 -1
  98. package/dist/mjs/use-native.js +6 -2
  99. package/dist/mjs/use-native.js.map +1 -1
  100. package/package.json +2 -2
@@ -3,16 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.rimrafNativeSync = exports.rimrafNative = void 0;
4
4
  const fs_js_1 = require("./fs.js");
5
5
  const { rm } = fs_js_1.promises;
6
- const rimrafNative = (path, opt) => rm(path, {
7
- ...opt,
8
- force: true,
9
- recursive: true,
10
- });
6
+ const rimrafNative = async (path, opt) => {
7
+ await rm(path, {
8
+ ...opt,
9
+ force: true,
10
+ recursive: true,
11
+ });
12
+ return true;
13
+ };
11
14
  exports.rimrafNative = rimrafNative;
12
- const rimrafNativeSync = (path, opt) => (0, fs_js_1.rmSync)(path, {
13
- ...opt,
14
- force: true,
15
- recursive: true,
16
- });
15
+ const rimrafNativeSync = (path, opt) => {
16
+ (0, fs_js_1.rmSync)(path, {
17
+ ...opt,
18
+ force: true,
19
+ recursive: true,
20
+ });
21
+ return true;
22
+ };
17
23
  exports.rimrafNativeSync = rimrafNativeSync;
18
24
  //# sourceMappingURL=rimraf-native.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rimraf-native.js","sourceRoot":"","sources":["../../../src/rimraf-native.ts"],"names":[],"mappings":";;;AACA,mCAA0C;AAC1C,MAAM,EAAE,EAAE,EAAE,GAAG,gBAAQ,CAAA;AAEhB,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,GAAkB,EAAE,EAAE,CAC/D,EAAE,CAAC,IAAI,EAAE;IACP,GAAG,GAAG;IACN,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI;CAChB,CAAC,CAAA;AALS,QAAA,YAAY,gBAKrB;AAEG,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,GAAkB,EAAE,EAAE,CACnE,IAAA,cAAM,EAAC,IAAI,EAAE;IACX,GAAG,GAAG;IACN,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI;CAChB,CAAC,CAAA;AALS,QAAA,gBAAgB,oBAKzB"}
1
+ {"version":3,"file":"rimraf-native.js","sourceRoot":"","sources":["../../../src/rimraf-native.ts"],"names":[],"mappings":";;;AACA,mCAA0C;AAC1C,MAAM,EAAE,EAAE,EAAE,GAAG,gBAAQ,CAAA;AAEhB,MAAM,YAAY,GAAG,KAAK,EAC/B,IAAY,EACZ,GAAuB,EACL,EAAE;IACpB,MAAM,EAAE,CAAC,IAAI,EAAE;QACb,GAAG,GAAG;QACN,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAVY,QAAA,YAAY,gBAUxB;AAEM,MAAM,gBAAgB,GAAG,CAC9B,IAAY,EACZ,GAAsB,EACb,EAAE;IACX,IAAA,cAAM,EAAC,IAAI,EAAE;QACX,GAAG,GAAG;QACN,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAVY,QAAA,gBAAgB,oBAU5B"}
@@ -1,4 +1,4 @@
1
- import { RimrafOptions } from '.';
2
- export declare const rimrafPosix: (path: string, opt: RimrafOptions) => Promise<any>;
3
- export declare const rimrafPosixSync: (path: string, opt: RimrafOptions) => any;
1
+ import { RimrafAsyncOptions, RimrafSyncOptions } from '.';
2
+ export declare const rimrafPosix: (path: string, opt: RimrafAsyncOptions) => Promise<boolean>;
3
+ export declare const rimrafPosixSync: (path: string, opt: RimrafSyncOptions) => boolean;
4
4
  //# sourceMappingURL=rimraf-posix.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rimraf-posix.d.ts","sourceRoot":"","sources":["../../../src/rimraf-posix.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,CAAA;AAGjC,eAAO,MAAM,WAAW,SAAgB,MAAM,OAAO,aAAa,iBA0BjE,CAAA;AAED,eAAO,MAAM,eAAe,SAAU,MAAM,OAAO,aAAa,QAuB/D,CAAA"}
1
+ {"version":3,"file":"rimraf-posix.d.ts","sourceRoot":"","sources":["../../../src/rimraf-posix.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAA;AAGzD,eAAO,MAAM,WAAW,SAAgB,MAAM,OAAO,kBAAkB,qBAUtE,CAAA;AAED,eAAO,MAAM,eAAe,SAAU,MAAM,OAAO,iBAAiB,YAUnE,CAAA"}
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  // the simple recursive removal, where unlink and rmdir are atomic
3
3
  // Note that this approach does NOT work on Windows!
4
- // We rmdir before unlink even though that is arguably less efficient
5
- // (since the average folder contains >1 file, it means more system
6
- // calls), because sunos will let root unlink a directory, and some
4
+ // We stat first and only unlink if the Dirent isn't a directory,
5
+ // because sunos will let root unlink a directory, and some
7
6
  // SUPER weird breakage happens as a result.
8
7
  Object.defineProperty(exports, "__esModule", { value: true });
9
8
  exports.rimrafPosixSync = exports.rimrafPosix = void 0;
10
9
  const fs_js_1 = require("./fs.js");
11
- const { rmdir, unlink } = fs_js_1.promises;
10
+ const { lstat, rmdir, unlink } = fs_js_1.promises;
12
11
  const path_1 = require("path");
13
12
  const readdir_or_error_js_1 = require("./readdir-or-error.js");
14
13
  const ignore_enoent_js_1 = require("./ignore-enoent.js");
@@ -16,47 +15,109 @@ const rimrafPosix = async (path, opt) => {
16
15
  if (opt?.signal?.aborted) {
17
16
  throw opt.signal.reason;
18
17
  }
19
- const entries = await (0, readdir_or_error_js_1.readdirOrError)(path);
18
+ try {
19
+ return await rimrafPosixDir(path, opt, await lstat(path));
20
+ }
21
+ catch (er) {
22
+ if (er?.code === 'ENOENT')
23
+ return true;
24
+ throw er;
25
+ }
26
+ };
27
+ exports.rimrafPosix = rimrafPosix;
28
+ const rimrafPosixSync = (path, opt) => {
29
+ if (opt?.signal?.aborted) {
30
+ throw opt.signal.reason;
31
+ }
32
+ try {
33
+ return rimrafPosixDirSync(path, opt, (0, fs_js_1.lstatSync)(path));
34
+ }
35
+ catch (er) {
36
+ if (er?.code === 'ENOENT')
37
+ return true;
38
+ throw er;
39
+ }
40
+ };
41
+ exports.rimrafPosixSync = rimrafPosixSync;
42
+ const rimrafPosixDir = async (path, opt, ent) => {
43
+ if (opt?.signal?.aborted) {
44
+ throw opt.signal.reason;
45
+ }
46
+ const entries = ent.isDirectory() ? await (0, readdir_or_error_js_1.readdirOrError)(path) : null;
20
47
  if (!Array.isArray(entries)) {
21
- if (entries.code === 'ENOENT') {
22
- return;
48
+ // this can only happen if lstat/readdir lied, or if the dir was
49
+ // swapped out with a file at just the right moment.
50
+ /* c8 ignore start */
51
+ if (entries) {
52
+ if (entries.code === 'ENOENT') {
53
+ return true;
54
+ }
55
+ if (entries.code !== 'ENOTDIR') {
56
+ throw entries;
57
+ }
23
58
  }
24
- if (entries.code !== 'ENOTDIR') {
25
- throw entries;
59
+ /* c8 ignore stop */
60
+ if (opt.filter && !(await opt.filter(path))) {
61
+ return false;
26
62
  }
27
- return (0, ignore_enoent_js_1.ignoreENOENT)(unlink(path));
63
+ await (0, ignore_enoent_js_1.ignoreENOENT)(unlink(path));
64
+ return true;
65
+ }
66
+ const removedAll = (await Promise.all(entries.map(ent => rimrafPosixDir((0, path_1.resolve)(path, ent.name), opt, ent)))).reduce((a, b) => a && b, true);
67
+ if (!removedAll) {
68
+ return false;
28
69
  }
29
- await Promise.all(entries.map(entry => (0, exports.rimrafPosix)((0, path_1.resolve)(path, entry), opt)));
30
70
  // we don't ever ACTUALLY try to unlink /, because that can never work
31
71
  // but when preserveRoot is false, we could be operating on it.
32
72
  // No need to check if preserveRoot is not false.
33
73
  if (opt.preserveRoot === false && path === (0, path_1.parse)(path).root) {
34
- return;
74
+ return false;
75
+ }
76
+ if (opt.filter && !(await opt.filter(path))) {
77
+ return false;
35
78
  }
36
- return (0, ignore_enoent_js_1.ignoreENOENT)(rmdir(path));
79
+ await (0, ignore_enoent_js_1.ignoreENOENT)(rmdir(path));
80
+ return true;
37
81
  };
38
- exports.rimrafPosix = rimrafPosix;
39
- const rimrafPosixSync = (path, opt) => {
82
+ const rimrafPosixDirSync = (path, opt, ent) => {
40
83
  if (opt?.signal?.aborted) {
41
84
  throw opt.signal.reason;
42
85
  }
43
- const entries = (0, readdir_or_error_js_1.readdirOrErrorSync)(path);
86
+ const entries = ent.isDirectory() ? (0, readdir_or_error_js_1.readdirOrErrorSync)(path) : null;
44
87
  if (!Array.isArray(entries)) {
45
- if (entries.code === 'ENOENT') {
46
- return;
88
+ // this can only happen if lstat/readdir lied, or if the dir was
89
+ // swapped out with a file at just the right moment.
90
+ /* c8 ignore start */
91
+ if (entries) {
92
+ if (entries.code === 'ENOENT') {
93
+ return true;
94
+ }
95
+ if (entries.code !== 'ENOTDIR') {
96
+ throw entries;
97
+ }
47
98
  }
48
- if (entries.code !== 'ENOTDIR') {
49
- throw entries;
99
+ /* c8 ignore stop */
100
+ if (opt.filter && !opt.filter(path)) {
101
+ return false;
50
102
  }
51
- return (0, ignore_enoent_js_1.ignoreENOENTSync)(() => (0, fs_js_1.unlinkSync)(path));
103
+ (0, ignore_enoent_js_1.ignoreENOENTSync)(() => (0, fs_js_1.unlinkSync)(path));
104
+ return true;
52
105
  }
53
- for (const entry of entries) {
54
- (0, exports.rimrafPosixSync)((0, path_1.resolve)(path, entry), opt);
106
+ let removedAll = true;
107
+ for (const ent of entries) {
108
+ const p = (0, path_1.resolve)(path, ent.name);
109
+ removedAll = rimrafPosixDirSync(p, opt, ent) && removedAll;
55
110
  }
56
111
  if (opt.preserveRoot === false && path === (0, path_1.parse)(path).root) {
57
- return;
112
+ return false;
113
+ }
114
+ if (!removedAll) {
115
+ return false;
58
116
  }
59
- return (0, ignore_enoent_js_1.ignoreENOENTSync)(() => (0, fs_js_1.rmdirSync)(path));
117
+ if (opt.filter && !opt.filter(path)) {
118
+ return false;
119
+ }
120
+ (0, ignore_enoent_js_1.ignoreENOENTSync)(() => (0, fs_js_1.rmdirSync)(path));
121
+ return true;
60
122
  };
61
- exports.rimrafPosixSync = rimrafPosixSync;
62
123
  //# sourceMappingURL=rimraf-posix.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rimraf-posix.js","sourceRoot":"","sources":["../../../src/rimraf-posix.ts"],"names":[],"mappings":";AAAA,kEAAkE;AAClE,oDAAoD;AACpD,qEAAqE;AACrE,mEAAmE;AACnE,mEAAmE;AACnE,4CAA4C;;;AAE5C,mCAAyD;AACzD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,gBAAQ,CAAA;AAElC,+BAAqC;AAErC,+DAA0E;AAG1E,yDAAmE;AAE5D,MAAM,WAAW,GAAG,KAAK,EAAE,IAAY,EAAE,GAAkB,EAAE,EAAE;IACpE,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QACxB,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA;KACxB;IACD,MAAM,OAAO,GAAG,MAAM,IAAA,oCAAc,EAAC,IAAI,CAAC,CAAA;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC7B,OAAM;SACP;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YAC9B,MAAM,OAAO,CAAA;SACd;QACD,OAAO,IAAA,+BAAY,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;KAClC;IACD,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAA,mBAAW,EAAC,IAAA,cAAO,EAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAC7D,CAAA;IAED,sEAAsE;IACtE,+DAA+D;IAC/D,iDAAiD;IACjD,IAAI,GAAG,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,KAAK,IAAA,YAAK,EAAC,IAAI,CAAC,CAAC,IAAI,EAAE;QAC3D,OAAM;KACP;IAED,OAAO,IAAA,+BAAY,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;AAClC,CAAC,CAAA;AA1BY,QAAA,WAAW,eA0BvB;AAEM,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,GAAkB,EAAE,EAAE;IAClE,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QACxB,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA;KACxB;IACD,MAAM,OAAO,GAAG,IAAA,wCAAkB,EAAC,IAAI,CAAC,CAAA;IACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC7B,OAAM;SACP;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YAC9B,MAAM,OAAO,CAAA;SACd;QACD,OAAO,IAAA,mCAAgB,EAAC,GAAG,EAAE,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC,CAAA;KAChD;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC3B,IAAA,uBAAe,EAAC,IAAA,cAAO,EAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;KAC3C;IAED,IAAI,GAAG,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,KAAK,IAAA,YAAK,EAAC,IAAI,CAAC,CAAC,IAAI,EAAE;QAC3D,OAAM;KACP;IAED,OAAO,IAAA,mCAAgB,EAAC,GAAG,EAAE,CAAC,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC,CAAA;AAChD,CAAC,CAAA;AAvBY,QAAA,eAAe,mBAuB3B"}
1
+ {"version":3,"file":"rimraf-posix.js","sourceRoot":"","sources":["../../../src/rimraf-posix.ts"],"names":[],"mappings":";AAAA,kEAAkE;AAClE,oDAAoD;AACpD,iEAAiE;AACjE,2DAA2D;AAC3D,4CAA4C;;;AAE5C,mCAAoE;AACpE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,gBAAQ,CAAA;AAEzC,+BAAqC;AAErC,+DAA0E;AAI1E,yDAAmE;AAE5D,MAAM,WAAW,GAAG,KAAK,EAAE,IAAY,EAAE,GAAuB,EAAE,EAAE;IACzE,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QACxB,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA;KACxB;IACD,IAAI;QACF,OAAO,MAAM,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;KAC1D;IAAC,OAAO,EAAE,EAAE;QACX,IAAK,EAA4B,EAAE,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAA;QACjE,MAAM,EAAE,CAAA;KACT;AACH,CAAC,CAAA;AAVY,QAAA,WAAW,eAUvB;AAEM,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,GAAsB,EAAE,EAAE;IACtE,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QACxB,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA;KACxB;IACD,IAAI;QACF,OAAO,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC,CAAA;KACtD;IAAC,OAAO,EAAE,EAAE;QACX,IAAK,EAA4B,EAAE,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAA;QACjE,MAAM,EAAE,CAAA;KACT;AACH,CAAC,CAAA;AAVY,QAAA,eAAe,mBAU3B;AAED,MAAM,cAAc,GAAG,KAAK,EAC1B,IAAY,EACZ,GAAuB,EACvB,GAAmB,EACD,EAAE;IACpB,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QACxB,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA;KACxB;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,IAAA,oCAAc,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,gEAAgE;QAChE,oDAAoD;QACpD,qBAAqB;QACrB,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC7B,OAAO,IAAI,CAAA;aACZ;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC9B,MAAM,OAAO,CAAA;aACd;SACF;QACD,oBAAoB;QACpB,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;YAC3C,OAAO,KAAK,CAAA;SACb;QACD,MAAM,IAAA,+BAAY,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QAChC,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,UAAU,GAAG,CACjB,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,IAAA,cAAO,EAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CACtE,CACF,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;IAEhC,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,KAAK,CAAA;KACb;IAED,sEAAsE;IACtE,+DAA+D;IAC/D,iDAAiD;IACjD,IAAI,GAAG,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,KAAK,IAAA,YAAK,EAAC,IAAI,CAAC,CAAC,IAAI,EAAE;QAC3D,OAAO,KAAK,CAAA;KACb;IAED,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;QAC3C,OAAO,KAAK,CAAA;KACb;IAED,MAAM,IAAA,+BAAY,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/B,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CACzB,IAAY,EACZ,GAAsB,EACtB,GAAmB,EACV,EAAE;IACX,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QACxB,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA;KACxB;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAA,wCAAkB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,gEAAgE;QAChE,oDAAoD;QACpD,qBAAqB;QACrB,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC7B,OAAO,IAAI,CAAA;aACZ;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC9B,MAAM,OAAO,CAAA;aACd;SACF;QACD,oBAAoB;QACpB,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACnC,OAAO,KAAK,CAAA;SACb;QACD,IAAA,mCAAgB,EAAC,GAAG,EAAE,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC,CAAA;QACxC,OAAO,IAAI,CAAA;KACZ;IACD,IAAI,UAAU,GAAY,IAAI,CAAA;IAC9B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;QACzB,MAAM,CAAC,GAAG,IAAA,cAAO,EAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QACjC,UAAU,GAAG,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,UAAU,CAAA;KAC3D;IACD,IAAI,GAAG,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,KAAK,IAAA,YAAK,EAAC,IAAI,CAAC,CAAC,IAAI,EAAE;QAC3D,OAAO,KAAK,CAAA;KACb;IAED,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,KAAK,CAAA;KACb;IAED,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACnC,OAAO,KAAK,CAAA;KACb;IAED,IAAA,mCAAgB,EAAC,GAAG,EAAE,CAAC,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC,CAAA;IACvC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { RimrafOptions } from '.';
2
- export declare const rimrafWindows: (path: string, opt: RimrafOptions, state?: symbol) => Promise<void>;
3
- export declare const rimrafWindowsSync: (path: string, opt: RimrafOptions, state?: symbol) => void;
1
+ import { RimrafAsyncOptions, RimrafSyncOptions } from '.';
2
+ export declare const rimrafWindows: (path: string, opt: RimrafAsyncOptions) => Promise<boolean>;
3
+ export declare const rimrafWindowsSync: (path: string, opt: RimrafSyncOptions) => boolean;
4
4
  //# sourceMappingURL=rimraf-windows.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rimraf-windows.d.ts","sourceRoot":"","sources":["../../../src/rimraf-windows.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,CAAA;AAuDjC,eAAO,MAAM,aAAa,SAClB,MAAM,OACP,aAAa,qBAEjB,QAAQ,IAAI,CAkCd,CAAA;AAED,eAAO,MAAM,iBAAiB,SACtB,MAAM,OACP,aAAa,qBAEjB,IAgCF,CAAA"}
1
+ {"version":3,"file":"rimraf-windows.d.ts","sourceRoot":"","sources":["../../../src/rimraf-windows.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAA;AA2DzD,eAAO,MAAM,aAAa,SAAgB,MAAM,OAAO,kBAAkB,qBAUxE,CAAA;AAED,eAAO,MAAM,iBAAiB,SAAU,MAAM,OAAO,iBAAiB,YAUrE,CAAA"}
@@ -17,23 +17,25 @@ const ignore_enoent_js_1 = require("./ignore-enoent.js");
17
17
  const readdir_or_error_js_1 = require("./readdir-or-error.js");
18
18
  const retry_busy_js_1 = require("./retry-busy.js");
19
19
  const rimraf_move_remove_js_1 = require("./rimraf-move-remove.js");
20
- const { unlink, rmdir } = fs_js_1.promises;
20
+ const { unlink, rmdir, lstat } = fs_js_1.promises;
21
21
  const rimrafWindowsFile = (0, retry_busy_js_1.retryBusy)((0, fix_eperm_js_1.fixEPERM)(unlink));
22
22
  const rimrafWindowsFileSync = (0, retry_busy_js_1.retryBusySync)((0, fix_eperm_js_1.fixEPERMSync)(fs_js_1.unlinkSync));
23
- const rimrafWindowsDir = (0, retry_busy_js_1.retryBusy)((0, fix_eperm_js_1.fixEPERM)(rmdir));
24
- const rimrafWindowsDirSync = (0, retry_busy_js_1.retryBusySync)((0, fix_eperm_js_1.fixEPERMSync)(fs_js_1.rmdirSync));
23
+ const rimrafWindowsDirRetry = (0, retry_busy_js_1.retryBusy)((0, fix_eperm_js_1.fixEPERM)(rmdir));
24
+ const rimrafWindowsDirRetrySync = (0, retry_busy_js_1.retryBusySync)((0, fix_eperm_js_1.fixEPERMSync)(fs_js_1.rmdirSync));
25
25
  const rimrafWindowsDirMoveRemoveFallback = async (path, opt) => {
26
26
  /* c8 ignore start */
27
27
  if (opt?.signal?.aborted) {
28
28
  throw opt.signal.reason;
29
29
  }
30
30
  /* c8 ignore stop */
31
+ // already filtered, remove from options so we don't call unnecessarily
32
+ const { filter, ...options } = opt;
31
33
  try {
32
- await rimrafWindowsDir(path, opt);
34
+ return await rimrafWindowsDirRetry(path, options);
33
35
  }
34
36
  catch (er) {
35
37
  if (er?.code === 'ENOTEMPTY') {
36
- return await (0, rimraf_move_remove_js_1.rimrafMoveRemove)(path, opt);
38
+ return await (0, rimraf_move_remove_js_1.rimrafMoveRemove)(path, options);
37
39
  }
38
40
  throw er;
39
41
  }
@@ -42,12 +44,15 @@ const rimrafWindowsDirMoveRemoveFallbackSync = (path, opt) => {
42
44
  if (opt?.signal?.aborted) {
43
45
  throw opt.signal.reason;
44
46
  }
47
+ // already filtered, remove from options so we don't call unnecessarily
48
+ const { filter, ...options } = opt;
45
49
  try {
46
- rimrafWindowsDirSync(path, opt);
50
+ return rimrafWindowsDirRetrySync(path, options);
47
51
  }
48
52
  catch (er) {
49
- if (er?.code === 'ENOTEMPTY') {
50
- return (0, rimraf_move_remove_js_1.rimrafMoveRemoveSync)(path, opt);
53
+ const fer = er;
54
+ if (fer?.code === 'ENOTEMPTY') {
55
+ return (0, rimraf_move_remove_js_1.rimrafMoveRemoveSync)(path, options);
51
56
  }
52
57
  throw er;
53
58
  }
@@ -55,67 +60,123 @@ const rimrafWindowsDirMoveRemoveFallbackSync = (path, opt) => {
55
60
  const START = Symbol('start');
56
61
  const CHILD = Symbol('child');
57
62
  const FINISH = Symbol('finish');
58
- const states = new Set([START, CHILD, FINISH]);
59
- const rimrafWindows = async (path, opt, state = START) => {
63
+ const rimrafWindows = async (path, opt) => {
64
+ if (opt?.signal?.aborted) {
65
+ throw opt.signal.reason;
66
+ }
67
+ try {
68
+ return await rimrafWindowsDir(path, opt, await lstat(path), START);
69
+ }
70
+ catch (er) {
71
+ if (er?.code === 'ENOENT')
72
+ return true;
73
+ throw er;
74
+ }
75
+ };
76
+ exports.rimrafWindows = rimrafWindows;
77
+ const rimrafWindowsSync = (path, opt) => {
60
78
  if (opt?.signal?.aborted) {
61
79
  throw opt.signal.reason;
62
80
  }
63
- if (!states.has(state)) {
64
- throw new TypeError('invalid third argument passed to rimraf');
81
+ try {
82
+ return rimrafWindowsDirSync(path, opt, (0, fs_js_1.lstatSync)(path), START);
65
83
  }
66
- const entries = await (0, readdir_or_error_js_1.readdirOrError)(path);
84
+ catch (er) {
85
+ if (er?.code === 'ENOENT')
86
+ return true;
87
+ throw er;
88
+ }
89
+ };
90
+ exports.rimrafWindowsSync = rimrafWindowsSync;
91
+ const rimrafWindowsDir = async (path, opt, ent, state = START) => {
92
+ if (opt?.signal?.aborted) {
93
+ throw opt.signal.reason;
94
+ }
95
+ const entries = ent.isDirectory() ? await (0, readdir_or_error_js_1.readdirOrError)(path) : null;
67
96
  if (!Array.isArray(entries)) {
68
- if (entries.code === 'ENOENT') {
69
- return;
97
+ // this can only happen if lstat/readdir lied, or if the dir was
98
+ // swapped out with a file at just the right moment.
99
+ /* c8 ignore start */
100
+ if (entries) {
101
+ if (entries.code === 'ENOENT') {
102
+ return true;
103
+ }
104
+ if (entries.code !== 'ENOTDIR') {
105
+ throw entries;
106
+ }
70
107
  }
71
- if (entries.code !== 'ENOTDIR') {
72
- throw entries;
108
+ /* c8 ignore stop */
109
+ if (opt.filter && !(await opt.filter(path))) {
110
+ return false;
73
111
  }
74
112
  // is a file
75
- return (0, ignore_enoent_js_1.ignoreENOENT)(rimrafWindowsFile(path, opt));
113
+ await (0, ignore_enoent_js_1.ignoreENOENT)(rimrafWindowsFile(path, opt));
114
+ return true;
76
115
  }
77
- await Promise.all(entries.map(entry => (0, exports.rimrafWindows)((0, path_1.resolve)(path, entry), opt, state === START ? CHILD : state)));
116
+ const s = state === START ? CHILD : state;
117
+ const removedAll = (await Promise.all(entries.map(ent => rimrafWindowsDir((0, path_1.resolve)(path, ent.name), opt, ent, s)))).reduce((a, b) => a && b, true);
78
118
  if (state === START) {
79
- return (0, exports.rimrafWindows)(path, opt, FINISH);
119
+ return rimrafWindowsDir(path, opt, ent, FINISH);
80
120
  }
81
121
  else if (state === FINISH) {
82
122
  if (opt.preserveRoot === false && path === (0, path_1.parse)(path).root) {
83
- return;
123
+ return false;
124
+ }
125
+ if (!removedAll) {
126
+ return false;
84
127
  }
85
- return (0, ignore_enoent_js_1.ignoreENOENT)(rimrafWindowsDirMoveRemoveFallback(path, opt));
128
+ if (opt.filter && !(await opt.filter(path))) {
129
+ return false;
130
+ }
131
+ await (0, ignore_enoent_js_1.ignoreENOENT)(rimrafWindowsDirMoveRemoveFallback(path, opt));
86
132
  }
133
+ return true;
87
134
  };
88
- exports.rimrafWindows = rimrafWindows;
89
- const rimrafWindowsSync = (path, opt, state = START) => {
90
- if (!states.has(state)) {
91
- throw new TypeError('invalid third argument passed to rimraf');
92
- }
93
- const entries = (0, readdir_or_error_js_1.readdirOrErrorSync)(path);
135
+ const rimrafWindowsDirSync = (path, opt, ent, state = START) => {
136
+ const entries = ent.isDirectory() ? (0, readdir_or_error_js_1.readdirOrErrorSync)(path) : null;
94
137
  if (!Array.isArray(entries)) {
95
- if (entries.code === 'ENOENT') {
96
- return;
138
+ // this can only happen if lstat/readdir lied, or if the dir was
139
+ // swapped out with a file at just the right moment.
140
+ /* c8 ignore start */
141
+ if (entries) {
142
+ if (entries.code === 'ENOENT') {
143
+ return true;
144
+ }
145
+ if (entries.code !== 'ENOTDIR') {
146
+ throw entries;
147
+ }
97
148
  }
98
- if (entries.code !== 'ENOTDIR') {
99
- throw entries;
149
+ /* c8 ignore stop */
150
+ if (opt.filter && !opt.filter(path)) {
151
+ return false;
100
152
  }
101
153
  // is a file
102
- return (0, ignore_enoent_js_1.ignoreENOENTSync)(() => rimrafWindowsFileSync(path, opt));
154
+ (0, ignore_enoent_js_1.ignoreENOENTSync)(() => rimrafWindowsFileSync(path, opt));
155
+ return true;
103
156
  }
104
- for (const entry of entries) {
157
+ let removedAll = true;
158
+ for (const ent of entries) {
105
159
  const s = state === START ? CHILD : state;
106
- (0, exports.rimrafWindowsSync)((0, path_1.resolve)(path, entry), opt, s);
160
+ const p = (0, path_1.resolve)(path, ent.name);
161
+ removedAll = rimrafWindowsDirSync(p, opt, ent, s) && removedAll;
107
162
  }
108
163
  if (state === START) {
109
- return (0, exports.rimrafWindowsSync)(path, opt, FINISH);
164
+ return rimrafWindowsDirSync(path, opt, ent, FINISH);
110
165
  }
111
166
  else if (state === FINISH) {
112
167
  if (opt.preserveRoot === false && path === (0, path_1.parse)(path).root) {
113
- return;
168
+ return false;
114
169
  }
115
- return (0, ignore_enoent_js_1.ignoreENOENTSync)(() => {
170
+ if (!removedAll) {
171
+ return false;
172
+ }
173
+ if (opt.filter && !opt.filter(path)) {
174
+ return false;
175
+ }
176
+ (0, ignore_enoent_js_1.ignoreENOENTSync)(() => {
116
177
  rimrafWindowsDirMoveRemoveFallbackSync(path, opt);
117
178
  });
118
179
  }
180
+ return true;
119
181
  };
120
- exports.rimrafWindowsSync = rimrafWindowsSync;
121
182
  //# sourceMappingURL=rimraf-windows.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rimraf-windows.js","sourceRoot":"","sources":["../../../src/rimraf-windows.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,wEAAwE;AACxE,gCAAgC;AAChC,0EAA0E;AAC1E,sBAAsB;AACtB,EAAE;AACF,yEAAyE;;;AAEzE,+BAAqC;AAErC,iDAAuD;AACvD,mCAAyD;AACzD,yDAAmE;AACnE,+DAA0E;AAC1E,mDAA0D;AAC1D,mEAAgF;AAChF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,gBAAQ,CAAA;AAElC,MAAM,iBAAiB,GAAG,IAAA,yBAAS,EAAC,IAAA,uBAAQ,EAAC,MAAM,CAAC,CAAC,CAAA;AACrD,MAAM,qBAAqB,GAAG,IAAA,6BAAa,EAAC,IAAA,2BAAY,EAAC,kBAAU,CAAC,CAAC,CAAA;AACrE,MAAM,gBAAgB,GAAG,IAAA,yBAAS,EAAC,IAAA,uBAAQ,EAAC,KAAK,CAAC,CAAC,CAAA;AACnD,MAAM,oBAAoB,GAAG,IAAA,6BAAa,EAAC,IAAA,2BAAY,EAAC,iBAAS,CAAC,CAAC,CAAA;AAEnE,MAAM,kCAAkC,GAAG,KAAK,EAC9C,IAAY,EACZ,GAAkB,EAClB,EAAE;IACF,qBAAqB;IACrB,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QACxB,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA;KACxB;IACD,oBAAoB;IACpB,IAAI;QACF,MAAM,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;KAClC;IAAC,OAAO,EAAE,EAAE;QACX,IAAK,EAA4B,EAAE,IAAI,KAAK,WAAW,EAAE;YACvD,OAAO,MAAM,IAAA,wCAAgB,EAAC,IAAI,EAAE,GAAG,CAAC,CAAA;SACzC;QACD,MAAM,EAAE,CAAA;KACT;AACH,CAAC,CAAA;AAED,MAAM,sCAAsC,GAAG,CAC7C,IAAY,EACZ,GAAkB,EAClB,EAAE;IACF,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QACxB,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA;KACxB;IACD,IAAI;QACF,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;KAChC;IAAC,OAAO,EAAE,EAAE;QACX,IAAK,EAA4B,EAAE,IAAI,KAAK,WAAW,EAAE;YACvD,OAAO,IAAA,4CAAoB,EAAC,IAAI,EAAE,GAAG,CAAC,CAAA;SACvC;QACD,MAAM,EAAE,CAAA;KACT;AACH,CAAC,CAAA;AAED,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;AAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;AAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;AAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;AAEvC,MAAM,aAAa,GAAG,KAAK,EAChC,IAAY,EACZ,GAAkB,EAClB,KAAK,GAAG,KAAK,EACE,EAAE;IACjB,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QACxB,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA;KACxB;IACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACtB,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAA;KAC/D;IAED,MAAM,OAAO,GAAG,MAAM,IAAA,oCAAc,EAAC,IAAI,CAAC,CAAA;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC7B,OAAM;SACP;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YAC9B,MAAM,OAAO,CAAA;SACd;QACD,YAAY;QACZ,OAAO,IAAA,+BAAY,EAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;KAClD;IAED,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAClB,IAAA,qBAAa,EAAC,IAAA,cAAO,EAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAC1E,CACF,CAAA;IAED,IAAI,KAAK,KAAK,KAAK,EAAE;QACnB,OAAO,IAAA,qBAAa,EAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;KACxC;SAAM,IAAI,KAAK,KAAK,MAAM,EAAE;QAC3B,IAAI,GAAG,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,KAAK,IAAA,YAAK,EAAC,IAAI,CAAC,CAAC,IAAI,EAAE;YAC3D,OAAM;SACP;QACD,OAAO,IAAA,+BAAY,EAAC,kCAAkC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;KACnE;AACH,CAAC,CAAA;AAtCY,QAAA,aAAa,iBAsCzB;AAEM,MAAM,iBAAiB,GAAG,CAC/B,IAAY,EACZ,GAAkB,EAClB,KAAK,GAAG,KAAK,EACP,EAAE;IACR,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACtB,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAA;KAC/D;IAED,MAAM,OAAO,GAAG,IAAA,wCAAkB,EAAC,IAAI,CAAC,CAAA;IACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC7B,OAAM;SACP;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YAC9B,MAAM,OAAO,CAAA;SACd;QACD,YAAY;QACZ,OAAO,IAAA,mCAAgB,EAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;KAChE;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC3B,MAAM,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;QACzC,IAAA,yBAAiB,EAAC,IAAA,cAAO,EAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;KAChD;IAED,IAAI,KAAK,KAAK,KAAK,EAAE;QACnB,OAAO,IAAA,yBAAiB,EAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;KAC5C;SAAM,IAAI,KAAK,KAAK,MAAM,EAAE;QAC3B,IAAI,GAAG,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,KAAK,IAAA,YAAK,EAAC,IAAI,CAAC,CAAC,IAAI,EAAE;YAC3D,OAAM;SACP;QACD,OAAO,IAAA,mCAAgB,EAAC,GAAG,EAAE;YAC3B,sCAAsC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;KACH;AACH,CAAC,CAAA;AApCY,QAAA,iBAAiB,qBAoC7B"}
1
+ {"version":3,"file":"rimraf-windows.js","sourceRoot":"","sources":["../../../src/rimraf-windows.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { RimrafOptions } from './index.js';
2
- export declare const useNative: (opt?: RimrafOptions) => boolean;
1
+ import { RimrafAsyncOptions, RimrafOptions } from './index.js';
2
+ export declare const useNative: (opt?: RimrafAsyncOptions) => boolean;
3
3
  export declare const useNativeSync: (opt?: RimrafOptions) => boolean;
4
4
  //# sourceMappingURL=use-native.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-native.d.ts","sourceRoot":"","sources":["../../../src/use-native.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAI1C,eAAO,MAAM,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,KAAK,OACuB,CAAA;AACxE,eAAO,MAAM,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,KAAK,OACmB,CAAA"}
1
+ {"version":3,"file":"use-native.d.ts","sourceRoot":"","sources":["../../../src/use-native.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAI9D,eAAO,MAAM,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,kBAAkB,KAAK,OAGb,CAAA;AACzC,eAAO,MAAM,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,KAAK,OAGZ,CAAA"}
@@ -10,6 +10,10 @@ const hasNative = +versArr[0] > 14 || (+versArr[0] === 14 && +versArr[1] >= 14);
10
10
  // we do NOT use native by default on Windows, because Node's native
11
11
  // rm implementation is less advanced. Change this code if that changes.
12
12
  const platform_js_1 = __importDefault(require("./platform.js"));
13
- exports.useNative = !hasNative || platform_js_1.default === 'win32' ? () => false : opt => !opt?.signal;
14
- exports.useNativeSync = !hasNative || platform_js_1.default === 'win32' ? () => false : opt => !opt?.signal;
13
+ exports.useNative = !hasNative || platform_js_1.default === 'win32'
14
+ ? () => false
15
+ : opt => !opt?.signal && !opt?.filter;
16
+ exports.useNativeSync = !hasNative || platform_js_1.default === 'win32'
17
+ ? () => false
18
+ : opt => !opt?.signal && !opt?.filter;
15
19
  //# sourceMappingURL=use-native.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-native.js","sourceRoot":"","sources":["../../../src/use-native.ts"],"names":[],"mappings":";;;;;;AAAA,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,OAAO,CAAC,OAAO,CAAA;AAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACpD,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAE/E,oEAAoE;AACpE,yEAAyE;AACzE,gEAAoC;AACvB,QAAA,SAAS,GACpB,CAAC,SAAS,IAAI,qBAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAA;AAC3D,QAAA,aAAa,GACxB,CAAC,SAAS,IAAI,qBAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAA"}
1
+ {"version":3,"file":"use-native.js","sourceRoot":"","sources":["../../../src/use-native.ts"],"names":[],"mappings":";;;;;;AAAA,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,OAAO,CAAC,OAAO,CAAA;AAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACpD,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAE/E,oEAAoE;AACpE,yEAAyE;AACzE,gEAAoC;AACvB,QAAA,SAAS,GACpB,CAAC,SAAS,IAAI,qBAAQ,KAAK,OAAO;IAChC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;IACb,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,MAAM,CAAA;AAC5B,QAAA,aAAa,GACxB,CAAC,SAAS,IAAI,qBAAQ,KAAK,OAAO;IAChC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;IACb,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,MAAM,CAAA"}
package/dist/mjs/fs.d.ts CHANGED
@@ -1,15 +1,17 @@
1
- import fs from 'fs';
2
- export { chmodSync, mkdirSync, readdirSync, renameSync, rmdirSync, rmSync, statSync, unlinkSync, } from 'fs';
1
+ import fs, { Dirent } from 'fs';
2
+ export { chmodSync, mkdirSync, renameSync, rmdirSync, rmSync, statSync, lstatSync, unlinkSync, } from 'fs';
3
+ export declare const readdirSync: (path: fs.PathLike) => Dirent[];
3
4
  export declare const promises: {
4
5
  chmod: (path: fs.PathLike, mode: fs.Mode) => Promise<void>;
5
6
  mkdir: (path: fs.PathLike, options?: fs.Mode | (fs.MakeDirectoryOptions & {
6
7
  recursive?: boolean | null;
7
8
  }) | undefined | null) => Promise<string | undefined>;
8
- readdir: (path: fs.PathLike) => Promise<string[]>;
9
+ readdir: (path: fs.PathLike) => Promise<Dirent[]>;
9
10
  rename: (oldPath: fs.PathLike, newPath: fs.PathLike) => Promise<void>;
10
11
  rm: (path: fs.PathLike, options: fs.RmOptions) => Promise<void>;
11
12
  rmdir: (path: fs.PathLike) => Promise<void>;
12
13
  stat: (path: fs.PathLike) => Promise<fs.Stats>;
14
+ lstat: (path: fs.PathLike) => Promise<fs.Stats>;
13
15
  unlink: (path: fs.PathLike) => Promise<void>;
14
16
  };
15
17
  //# sourceMappingURL=fs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/fs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,CAAA;AAGnB,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,MAAM,EACN,QAAQ,EACR,UAAU,GACX,MAAM,IAAI,CAAA;AAsDX,eAAO,MAAM,QAAQ;kBA/CA,GAAG,QAAQ,QAAQ,GAAG,IAAI,KAAG,QAAQ,IAAI,CAAC;kBAMvD,GAAG,QAAQ,YAEb,GAAG,IAAI,GACP,CAAC,GAAG,oBAAoB,GAAG;QAAE,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,CAAC,GAC1D,SAAS,GACT,IAAI,KACP,QAAQ,MAAM,GAAG,SAAS,CAAC;oBAKP,GAAG,QAAQ,KAAG,QAAQ,MAAM,EAAE,CAAC;sBAK7B,GAAG,QAAQ,WAAW,GAAG,QAAQ,KAAG,QAAQ,IAAI,CAAC;eAKxD,GAAG,QAAQ,WAAW,GAAG,SAAS,KAAG,QAAQ,IAAI,CAAC;kBAK/C,GAAG,QAAQ,KAAG,QAAQ,IAAI,CAAC;iBAK5B,GAAG,QAAQ,KAAG,QAAQ,GAAG,KAAK,CAAC;mBAK7B,GAAG,QAAQ,KAAG,QAAQ,IAAI,CAAC;CAchD,CAAA"}
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/fs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAG/B,OAAO,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,EACT,UAAU,GACX,MAAM,IAAI,CAAA;AAGX,eAAO,MAAM,WAAW,SAAU,GAAG,QAAQ,KAAG,MAAM,EACf,CAAA;AA6DvC,eAAO,MAAM,QAAQ;kBAtDA,GAAG,QAAQ,QAAQ,GAAG,IAAI,KAAG,QAAQ,IAAI,CAAC;kBAMvD,GAAG,QAAQ,YAEb,GAAG,IAAI,GACP,CAAC,GAAG,oBAAoB,GAAG;QAAE,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,CAAC,GAC1D,SAAS,GACT,IAAI,KACP,QAAQ,MAAM,GAAG,SAAS,CAAC;oBAKP,GAAG,QAAQ,KAAG,QAAQ,MAAM,EAAE,CAAC;sBAO7B,GAAG,QAAQ,WAAW,GAAG,QAAQ,KAAG,QAAQ,IAAI,CAAC;eAKxD,GAAG,QAAQ,WAAW,GAAG,SAAS,KAAG,QAAQ,IAAI,CAAC;kBAK/C,GAAG,QAAQ,KAAG,QAAQ,IAAI,CAAC;iBAK5B,GAAG,QAAQ,KAAG,QAAQ,GAAG,KAAK,CAAC;kBAK9B,GAAG,QAAQ,KAAG,QAAQ,GAAG,KAAK,CAAC;mBAK9B,GAAG,QAAQ,KAAG,QAAQ,IAAI,CAAC;CAehD,CAAA"}
package/dist/mjs/fs.js CHANGED
@@ -1,18 +1,21 @@
1
1
  // promisify ourselves, because older nodes don't have fs.promises
2
2
  import fs from 'fs';
3
3
  // sync ones just take the sync version from node
4
- export { chmodSync, mkdirSync, readdirSync, renameSync, rmdirSync, rmSync, statSync, unlinkSync, } from 'fs';
4
+ export { chmodSync, mkdirSync, renameSync, rmdirSync, rmSync, statSync, lstatSync, unlinkSync, } from 'fs';
5
+ import { readdirSync as rdSync } from 'fs';
6
+ export const readdirSync = (path) => rdSync(path, { withFileTypes: true });
5
7
  // unrolled for better inlining, this seems to get better performance
6
8
  // than something like:
7
9
  // const makeCb = (res, rej) => (er, ...d) => er ? rej(er) : res(...d)
8
10
  // which would be a bit cleaner.
9
11
  const chmod = (path, mode) => new Promise((res, rej) => fs.chmod(path, mode, (er, ...d) => (er ? rej(er) : res(...d))));
10
12
  const mkdir = (path, options) => new Promise((res, rej) => fs.mkdir(path, options, (er, made) => (er ? rej(er) : res(made))));
11
- const readdir = (path) => new Promise((res, rej) => fs.readdir(path, (er, data) => (er ? rej(er) : res(data))));
13
+ const readdir = (path) => new Promise((res, rej) => fs.readdir(path, { withFileTypes: true }, (er, data) => er ? rej(er) : res(data)));
12
14
  const rename = (oldPath, newPath) => new Promise((res, rej) => fs.rename(oldPath, newPath, (er, ...d) => (er ? rej(er) : res(...d))));
13
15
  const rm = (path, options) => new Promise((res, rej) => fs.rm(path, options, (er, ...d) => (er ? rej(er) : res(...d))));
14
16
  const rmdir = (path) => new Promise((res, rej) => fs.rmdir(path, (er, ...d) => (er ? rej(er) : res(...d))));
15
17
  const stat = (path) => new Promise((res, rej) => fs.stat(path, (er, data) => (er ? rej(er) : res(data))));
18
+ const lstat = (path) => new Promise((res, rej) => fs.lstat(path, (er, data) => (er ? rej(er) : res(data))));
16
19
  const unlink = (path) => new Promise((res, rej) => fs.unlink(path, (er, ...d) => (er ? rej(er) : res(...d))));
17
20
  export const promises = {
18
21
  chmod,
@@ -22,6 +25,7 @@ export const promises = {
22
25
  rm,
23
26
  rmdir,
24
27
  stat,
28
+ lstat,
25
29
  unlink,
26
30
  };
27
31
  //# sourceMappingURL=fs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/fs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/fs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ignore-enoent.d.ts","sourceRoot":"","sources":["../../src/ignore-enoent.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,MAAa,QAAQ,GAAG,CAAC,iBAK9C,CAAA;AAEJ,eAAO,MAAM,gBAAgB,OAAQ,MAAM,GAAG,QAQ7C,CAAA"}
1
+ {"version":3,"file":"ignore-enoent.d.ts","sourceRoot":"","sources":["../../src/ignore-enoent.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,MAAa,QAAQ,GAAG,CAAC,iBAK9C,CAAA;AAEJ,eAAO,MAAM,gBAAgB,OAAQ,MAAM,GAAG,QAQ7C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ignore-enoent.js","sourceRoot":"","sources":["../../src/ignore-enoent.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,CAAe,EAAE,EAAE,CACpD,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;IACX,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE;QACxB,MAAM,EAAE,CAAA;KACT;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAa,EAAE,EAAE;IAChD,IAAI;QACF,OAAO,EAAE,EAAE,CAAA;KACZ;IAAC,OAAO,EAAE,EAAE;QACX,IAAK,EAA4B,EAAE,IAAI,KAAK,QAAQ,EAAE;YACpD,MAAM,EAAE,CAAA;SACT;KACF;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"ignore-enoent.js","sourceRoot":"","sources":["../../src/ignore-enoent.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,CAAe,EAAE,EAAE,CACpD,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;IACX,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE;QACxB,MAAM,EAAE,CAAA;KACT;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAa,EAAE,EAAE;IAChD,IAAI;QACF,OAAO,EAAE,EAAE,CAAA;KACZ;IAAC,OAAO,EAAE,EAAE;QACX,IAAK,EAA4B,EAAE,IAAI,KAAK,QAAQ,EAAE;YACpD,MAAM,EAAE,CAAA;SACT;KACF;AACH,CAAC,CAAA"}