rimraf 4.3.0 → 4.4.0

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 (55) hide show
  1. package/README.md +10 -6
  2. package/dist/cjs/package.json +1 -1
  3. package/dist/cjs/src/bin.d.ts.map +1 -1
  4. package/dist/cjs/src/bin.js +4 -4
  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.d.ts +4 -2
  13. package/dist/cjs/src/index.d.ts.map +1 -1
  14. package/dist/cjs/src/index.js.map +1 -1
  15. package/dist/cjs/src/readdir-or-error.d.ts +3 -2
  16. package/dist/cjs/src/readdir-or-error.d.ts.map +1 -1
  17. package/dist/cjs/src/readdir-or-error.js.map +1 -1
  18. package/dist/cjs/src/rimraf-manual.d.ts +2 -2
  19. package/dist/cjs/src/rimraf-manual.d.ts.map +1 -1
  20. package/dist/cjs/src/rimraf-move-remove.d.ts.map +1 -1
  21. package/dist/cjs/src/rimraf-move-remove.js +63 -24
  22. package/dist/cjs/src/rimraf-move-remove.js.map +1 -1
  23. package/dist/cjs/src/rimraf-posix.d.ts.map +1 -1
  24. package/dist/cjs/src/rimraf-posix.js +64 -26
  25. package/dist/cjs/src/rimraf-posix.js.map +1 -1
  26. package/dist/cjs/src/rimraf-windows.d.ts +2 -2
  27. package/dist/cjs/src/rimraf-windows.d.ts.map +1 -1
  28. package/dist/cjs/src/rimraf-windows.js +68 -36
  29. package/dist/cjs/src/rimraf-windows.js.map +1 -1
  30. package/dist/mjs/fs.d.ts +5 -3
  31. package/dist/mjs/fs.d.ts.map +1 -1
  32. package/dist/mjs/fs.js +6 -2
  33. package/dist/mjs/fs.js.map +1 -1
  34. package/dist/mjs/ignore-enoent.d.ts.map +1 -1
  35. package/dist/mjs/ignore-enoent.js.map +1 -1
  36. package/dist/mjs/index.d.ts +4 -2
  37. package/dist/mjs/index.d.ts.map +1 -1
  38. package/dist/mjs/index.js.map +1 -1
  39. package/dist/mjs/package.json +1 -1
  40. package/dist/mjs/readdir-or-error.d.ts +3 -2
  41. package/dist/mjs/readdir-or-error.d.ts.map +1 -1
  42. package/dist/mjs/readdir-or-error.js.map +1 -1
  43. package/dist/mjs/rimraf-manual.d.ts +2 -2
  44. package/dist/mjs/rimraf-manual.d.ts.map +1 -1
  45. package/dist/mjs/rimraf-move-remove.d.ts.map +1 -1
  46. package/dist/mjs/rimraf-move-remove.js +62 -23
  47. package/dist/mjs/rimraf-move-remove.js.map +1 -1
  48. package/dist/mjs/rimraf-posix.d.ts.map +1 -1
  49. package/dist/mjs/rimraf-posix.js +63 -25
  50. package/dist/mjs/rimraf-posix.js.map +1 -1
  51. package/dist/mjs/rimraf-windows.d.ts +2 -2
  52. package/dist/mjs/rimraf-windows.d.ts.map +1 -1
  53. package/dist/mjs/rimraf-windows.js +67 -35
  54. package/dist/mjs/rimraf-windows.js.map +1 -1
  55. package/package.json +1 -1
@@ -13,8 +13,8 @@
13
13
  import { basename, parse, resolve } from 'path';
14
14
  import { defaultTmp, defaultTmpSync } from './default-tmp.js';
15
15
  import { ignoreENOENT, ignoreENOENTSync } from './ignore-enoent.js';
16
- import { chmodSync, promises as fsPromises, renameSync, rmdirSync, unlinkSync, } from './fs.js';
17
- const { rename, unlink, rmdir, chmod } = fsPromises;
16
+ import { chmodSync, lstatSync, promises as fsPromises, renameSync, rmdirSync, unlinkSync, } from './fs.js';
17
+ const { lstat, rename, unlink, rmdir, chmod } = fsPromises;
18
18
  import { readdirOrError, readdirOrErrorSync } from './readdir-or-error.js';
19
19
  // crypto.randomBytes is much slower, and Math.random() is enough here
20
20
  const uniqueFilename = (path) => `.${basename(path)}.${Math.random()}`;
@@ -55,30 +55,49 @@ const unlinkFixEPERMSync = (path) => {
55
55
  }
56
56
  };
57
57
  export const rimrafMoveRemove = async (path, opt) => {
58
+ if (opt?.signal?.aborted) {
59
+ throw opt.signal.reason;
60
+ }
61
+ try {
62
+ return await rimrafMoveRemoveDir(path, opt, await lstat(path));
63
+ }
64
+ catch (er) {
65
+ if (er?.code === 'ENOENT')
66
+ return true;
67
+ throw er;
68
+ }
69
+ };
70
+ const rimrafMoveRemoveDir = async (path, opt, ent) => {
58
71
  if (opt?.signal?.aborted) {
59
72
  throw opt.signal.reason;
60
73
  }
61
74
  if (!opt.tmp) {
62
- return rimrafMoveRemove(path, { ...opt, tmp: await defaultTmp(path) });
75
+ return rimrafMoveRemoveDir(path, { ...opt, tmp: await defaultTmp(path) }, ent);
63
76
  }
64
77
  if (path === opt.tmp && parse(path).root !== path) {
65
78
  throw new Error('cannot delete temp directory used for deletion');
66
79
  }
67
- const entries = await readdirOrError(path);
80
+ const entries = ent.isDirectory() ? await readdirOrError(path) : null;
68
81
  if (!Array.isArray(entries)) {
69
- if (entries.code === 'ENOENT') {
70
- return true;
71
- }
72
- if (entries.code !== 'ENOTDIR') {
73
- throw entries;
82
+ // this can only happen if lstat/readdir lied, or if the dir was
83
+ // swapped out with a file at just the right moment.
84
+ /* c8 ignore start */
85
+ if (entries) {
86
+ if (entries.code === 'ENOENT') {
87
+ return true;
88
+ }
89
+ if (entries.code !== 'ENOTDIR') {
90
+ throw entries;
91
+ }
74
92
  }
75
- if (opt.filter && !(await opt.filter(path))) {
93
+ /* c8 ignore stop */
94
+ if (opt.filter && !(await opt.filter(path, ent))) {
76
95
  return false;
77
96
  }
78
97
  await ignoreENOENT(tmpUnlink(path, opt.tmp, unlinkFixEPERM));
79
98
  return true;
80
99
  }
81
- const removedAll = (await Promise.all(entries.map(entry => rimrafMoveRemove(resolve(path, entry), opt)))).reduce((a, b) => a && b, true);
100
+ const removedAll = (await Promise.all(entries.map(ent => rimrafMoveRemoveDir(resolve(path, ent.name), opt, ent)))).reduce((a, b) => a && b, true);
82
101
  if (!removedAll) {
83
102
  return false;
84
103
  }
@@ -88,7 +107,7 @@ export const rimrafMoveRemove = async (path, opt) => {
88
107
  if (opt.preserveRoot === false && path === parse(path).root) {
89
108
  return false;
90
109
  }
91
- if (opt.filter && !(await opt.filter(path))) {
110
+ if (opt.filter && !(await opt.filter(path, ent))) {
92
111
  return false;
93
112
  }
94
113
  await ignoreENOENT(tmpUnlink(path, opt.tmp, rmdir));
@@ -100,33 +119,53 @@ const tmpUnlink = async (path, tmp, rm) => {
100
119
  return await rm(tmpFile);
101
120
  };
102
121
  export const rimrafMoveRemoveSync = (path, opt) => {
122
+ if (opt?.signal?.aborted) {
123
+ throw opt.signal.reason;
124
+ }
125
+ try {
126
+ return rimrafMoveRemoveDirSync(path, opt, lstatSync(path));
127
+ }
128
+ catch (er) {
129
+ if (er?.code === 'ENOENT')
130
+ return true;
131
+ throw er;
132
+ }
133
+ };
134
+ const rimrafMoveRemoveDirSync = (path, opt, ent) => {
103
135
  if (opt?.signal?.aborted) {
104
136
  throw opt.signal.reason;
105
137
  }
106
138
  if (!opt.tmp) {
107
- return rimrafMoveRemoveSync(path, { ...opt, tmp: defaultTmpSync(path) });
139
+ return rimrafMoveRemoveDirSync(path, { ...opt, tmp: defaultTmpSync(path) }, ent);
108
140
  }
109
141
  const tmp = opt.tmp;
110
142
  if (path === opt.tmp && parse(path).root !== path) {
111
143
  throw new Error('cannot delete temp directory used for deletion');
112
144
  }
113
- const entries = readdirOrErrorSync(path);
145
+ const entries = ent.isDirectory() ? readdirOrErrorSync(path) : null;
114
146
  if (!Array.isArray(entries)) {
115
- if (entries.code === 'ENOENT') {
116
- return true;
117
- }
118
- if (entries.code !== 'ENOTDIR') {
119
- throw entries;
147
+ // this can only happen if lstat/readdir lied, or if the dir was
148
+ // swapped out with a file at just the right moment.
149
+ /* c8 ignore start */
150
+ if (entries) {
151
+ if (entries.code === 'ENOENT') {
152
+ return true;
153
+ }
154
+ if (entries.code !== 'ENOTDIR') {
155
+ throw entries;
156
+ }
120
157
  }
121
- if (opt.filter && !opt.filter(path)) {
158
+ /* c8 ignore stop */
159
+ if (opt.filter && !opt.filter(path, ent)) {
122
160
  return false;
123
161
  }
124
162
  ignoreENOENTSync(() => tmpUnlinkSync(path, tmp, unlinkFixEPERMSync));
125
163
  return true;
126
164
  }
127
165
  let removedAll = true;
128
- for (const entry of entries) {
129
- removedAll = rimrafMoveRemoveSync(resolve(path, entry), opt) && removedAll;
166
+ for (const ent of entries) {
167
+ const p = resolve(path, ent.name);
168
+ removedAll = rimrafMoveRemoveDirSync(p, opt, ent) && removedAll;
130
169
  }
131
170
  if (!removedAll) {
132
171
  return false;
@@ -134,7 +173,7 @@ export const rimrafMoveRemoveSync = (path, opt) => {
134
173
  if (opt.preserveRoot === false && path === parse(path).root) {
135
174
  return false;
136
175
  }
137
- if (opt.filter && !opt.filter(path)) {
176
+ if (opt.filter && !opt.filter(path, ent)) {
138
177
  return false;
139
178
  }
140
179
  ignoreENOENTSync(() => tmpUnlinkSync(path, tmp, rmdirSync));
@@ -1 +1 @@
1
- {"version":3,"file":"rimraf-move-remove.js","sourceRoot":"","sources":["../../src/rimraf-move-remove.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rimraf-move-remove.js","sourceRoot":"","sources":["../../src/rimraf-move-remove.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
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,SAChB,MAAM,OACP,kBAAkB,KACtB,QAAQ,OAAO,CA0CjB,CAAA;AAED,eAAO,MAAM,eAAe,SACpB,MAAM,OACP,iBAAiB,KACrB,OAoCF,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,11 +1,10 @@
1
1
  // the simple recursive removal, where unlink and rmdir are atomic
2
2
  // Note that this approach does NOT work on Windows!
3
- // We rmdir before unlink even though that is arguably less efficient
4
- // (since the average folder contains >1 file, it means more system
5
- // calls), because sunos will let root unlink a directory, and some
3
+ // We stat first and only unlink if the Dirent isn't a directory,
4
+ // because sunos will let root unlink a directory, and some
6
5
  // SUPER weird breakage happens as a result.
7
- import { promises, rmdirSync, unlinkSync } from './fs.js';
8
- const { rmdir, unlink } = promises;
6
+ import { lstatSync, promises, rmdirSync, unlinkSync } from './fs.js';
7
+ const { lstat, rmdir, unlink } = promises;
9
8
  import { parse, resolve } from 'path';
10
9
  import { readdirOrError, readdirOrErrorSync } from './readdir-or-error.js';
11
10
  import { ignoreENOENT, ignoreENOENTSync } from './ignore-enoent.js';
@@ -13,21 +12,53 @@ export const rimrafPosix = async (path, opt) => {
13
12
  if (opt?.signal?.aborted) {
14
13
  throw opt.signal.reason;
15
14
  }
16
- const entries = await readdirOrError(path);
17
- if (!Array.isArray(entries)) {
18
- if (entries.code === 'ENOENT') {
15
+ try {
16
+ return await rimrafPosixDir(path, opt, await lstat(path));
17
+ }
18
+ catch (er) {
19
+ if (er?.code === 'ENOENT')
19
20
  return true;
21
+ throw er;
22
+ }
23
+ };
24
+ export const rimrafPosixSync = (path, opt) => {
25
+ if (opt?.signal?.aborted) {
26
+ throw opt.signal.reason;
27
+ }
28
+ try {
29
+ return rimrafPosixDirSync(path, opt, lstatSync(path));
30
+ }
31
+ catch (er) {
32
+ if (er?.code === 'ENOENT')
33
+ return true;
34
+ throw er;
35
+ }
36
+ };
37
+ const rimrafPosixDir = async (path, opt, ent) => {
38
+ if (opt?.signal?.aborted) {
39
+ throw opt.signal.reason;
40
+ }
41
+ const entries = ent.isDirectory() ? await readdirOrError(path) : null;
42
+ if (!Array.isArray(entries)) {
43
+ // this can only happen if lstat/readdir lied, or if the dir was
44
+ // swapped out with a file at just the right moment.
45
+ /* c8 ignore start */
46
+ if (entries) {
47
+ if (entries.code === 'ENOENT') {
48
+ return true;
49
+ }
50
+ if (entries.code !== 'ENOTDIR') {
51
+ throw entries;
52
+ }
20
53
  }
21
- if (entries.code !== 'ENOTDIR') {
22
- throw entries;
23
- }
24
- if (opt.filter && !(await opt.filter(path))) {
54
+ /* c8 ignore stop */
55
+ if (opt.filter && !(await opt.filter(path, ent))) {
25
56
  return false;
26
57
  }
27
58
  await ignoreENOENT(unlink(path));
28
59
  return true;
29
60
  }
30
- const removedAll = (await Promise.all(entries.map(entry => rimrafPosix(resolve(path, entry), opt)))).reduce((a, b) => a && b, true);
61
+ const removedAll = (await Promise.all(entries.map(ent => rimrafPosixDir(resolve(path, ent.name), opt, ent)))).reduce((a, b) => a && b, true);
31
62
  if (!removedAll) {
32
63
  return false;
33
64
  }
@@ -37,33 +68,40 @@ export const rimrafPosix = async (path, opt) => {
37
68
  if (opt.preserveRoot === false && path === parse(path).root) {
38
69
  return false;
39
70
  }
40
- if (opt.filter && !(await opt.filter(path))) {
71
+ if (opt.filter && !(await opt.filter(path, ent))) {
41
72
  return false;
42
73
  }
43
74
  await ignoreENOENT(rmdir(path));
44
75
  return true;
45
76
  };
46
- export const rimrafPosixSync = (path, opt) => {
77
+ const rimrafPosixDirSync = (path, opt, ent) => {
47
78
  if (opt?.signal?.aborted) {
48
79
  throw opt.signal.reason;
49
80
  }
50
- const entries = readdirOrErrorSync(path);
81
+ const entries = ent.isDirectory() ? readdirOrErrorSync(path) : null;
51
82
  if (!Array.isArray(entries)) {
52
- if (entries.code === 'ENOENT') {
53
- return true;
54
- }
55
- if (entries.code !== 'ENOTDIR') {
56
- throw entries;
83
+ // this can only happen if lstat/readdir lied, or if the dir was
84
+ // swapped out with a file at just the right moment.
85
+ /* c8 ignore start */
86
+ if (entries) {
87
+ if (entries.code === 'ENOENT') {
88
+ return true;
89
+ }
90
+ if (entries.code !== 'ENOTDIR') {
91
+ throw entries;
92
+ }
57
93
  }
58
- if (opt.filter && !opt.filter(path)) {
94
+ /* c8 ignore stop */
95
+ if (opt.filter && !opt.filter(path, ent)) {
59
96
  return false;
60
97
  }
61
98
  ignoreENOENTSync(() => unlinkSync(path));
62
99
  return true;
63
100
  }
64
101
  let removedAll = true;
65
- for (const entry of entries) {
66
- removedAll = rimrafPosixSync(resolve(path, entry), opt) && removedAll;
102
+ for (const ent of entries) {
103
+ const p = resolve(path, ent.name);
104
+ removedAll = rimrafPosixDirSync(p, opt, ent) && removedAll;
67
105
  }
68
106
  if (opt.preserveRoot === false && path === parse(path).root) {
69
107
  return false;
@@ -71,7 +109,7 @@ export const rimrafPosixSync = (path, opt) => {
71
109
  if (!removedAll) {
72
110
  return false;
73
111
  }
74
- if (opt.filter && !opt.filter(path)) {
112
+ if (opt.filter && !opt.filter(path, ent)) {
75
113
  return false;
76
114
  }
77
115
  ignoreENOENTSync(() => rmdirSync(path));
@@ -1 +1 @@
1
- {"version":3,"file":"rimraf-posix.js","sourceRoot":"","sources":["../../src/rimraf-posix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rimraf-posix.js","sourceRoot":"","sources":["../../src/rimraf-posix.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { RimrafAsyncOptions, RimrafSyncOptions } from '.';
2
- export declare const rimrafWindows: (path: string, opt: RimrafAsyncOptions, state?: symbol) => Promise<boolean>;
3
- export declare const rimrafWindowsSync: (path: string, opt: RimrafSyncOptions, state?: symbol) => boolean;
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,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAA;AA4DzD,eAAO,MAAM,aAAa,SAClB,MAAM,OACP,kBAAkB,qBAEtB,QAAQ,OAAO,CA8CjB,CAAA;AAED,eAAO,MAAM,iBAAiB,SACtB,MAAM,OACP,iBAAiB,qBAErB,OA4CF,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"}
@@ -9,16 +9,16 @@
9
9
  // Note: "move then remove" is 2-10 times slower, and just as unreliable.
10
10
  import { parse, resolve } from 'path';
11
11
  import { fixEPERM, fixEPERMSync } from './fix-eperm.js';
12
- import { promises, rmdirSync, unlinkSync } from './fs.js';
12
+ import { lstatSync, promises, rmdirSync, unlinkSync } from './fs.js';
13
13
  import { ignoreENOENT, ignoreENOENTSync } from './ignore-enoent.js';
14
14
  import { readdirOrError, readdirOrErrorSync } from './readdir-or-error.js';
15
15
  import { retryBusy, retryBusySync } from './retry-busy.js';
16
16
  import { rimrafMoveRemove, rimrafMoveRemoveSync } from './rimraf-move-remove.js';
17
- const { unlink, rmdir } = promises;
17
+ const { unlink, rmdir, lstat } = promises;
18
18
  const rimrafWindowsFile = retryBusy(fixEPERM(unlink));
19
19
  const rimrafWindowsFileSync = retryBusySync(fixEPERMSync(unlinkSync));
20
- const rimrafWindowsDir = retryBusy(fixEPERM(rmdir));
21
- const rimrafWindowsDirSync = retryBusySync(fixEPERMSync(rmdirSync));
20
+ const rimrafWindowsDirRetry = retryBusy(fixEPERM(rmdir));
21
+ const rimrafWindowsDirRetrySync = retryBusySync(fixEPERMSync(rmdirSync));
22
22
  const rimrafWindowsDirMoveRemoveFallback = async (path, opt) => {
23
23
  /* c8 ignore start */
24
24
  if (opt?.signal?.aborted) {
@@ -28,7 +28,7 @@ const rimrafWindowsDirMoveRemoveFallback = async (path, opt) => {
28
28
  // already filtered, remove from options so we don't call unnecessarily
29
29
  const { filter, ...options } = opt;
30
30
  try {
31
- return await rimrafWindowsDir(path, options);
31
+ return await rimrafWindowsDirRetry(path, options);
32
32
  }
33
33
  catch (er) {
34
34
  if (er?.code === 'ENOTEMPTY') {
@@ -44,7 +44,7 @@ const rimrafWindowsDirMoveRemoveFallbackSync = (path, opt) => {
44
44
  // already filtered, remove from options so we don't call unnecessarily
45
45
  const { filter, ...options } = opt;
46
46
  try {
47
- return rimrafWindowsDirSync(path, options);
47
+ return rimrafWindowsDirRetrySync(path, options);
48
48
  }
49
49
  catch (er) {
50
50
  const fer = er;
@@ -57,23 +57,51 @@ const rimrafWindowsDirMoveRemoveFallbackSync = (path, opt) => {
57
57
  const START = Symbol('start');
58
58
  const CHILD = Symbol('child');
59
59
  const FINISH = Symbol('finish');
60
- const states = new Set([START, CHILD, FINISH]);
61
- export const rimrafWindows = async (path, opt, state = START) => {
60
+ export const rimrafWindows = async (path, opt) => {
62
61
  if (opt?.signal?.aborted) {
63
62
  throw opt.signal.reason;
64
63
  }
65
- if (!states.has(state)) {
66
- throw new TypeError('invalid third argument passed to rimraf');
64
+ try {
65
+ return await rimrafWindowsDir(path, opt, await lstat(path), START);
67
66
  }
68
- const entries = await readdirOrError(path);
69
- if (!Array.isArray(entries)) {
70
- if (entries.code === 'ENOENT') {
67
+ catch (er) {
68
+ if (er?.code === 'ENOENT')
71
69
  return true;
70
+ throw er;
71
+ }
72
+ };
73
+ export const rimrafWindowsSync = (path, opt) => {
74
+ if (opt?.signal?.aborted) {
75
+ throw opt.signal.reason;
76
+ }
77
+ try {
78
+ return rimrafWindowsDirSync(path, opt, lstatSync(path), START);
79
+ }
80
+ catch (er) {
81
+ if (er?.code === 'ENOENT')
82
+ return true;
83
+ throw er;
84
+ }
85
+ };
86
+ const rimrafWindowsDir = async (path, opt, ent, state = START) => {
87
+ if (opt?.signal?.aborted) {
88
+ throw opt.signal.reason;
89
+ }
90
+ const entries = ent.isDirectory() ? await readdirOrError(path) : null;
91
+ if (!Array.isArray(entries)) {
92
+ // this can only happen if lstat/readdir lied, or if the dir was
93
+ // swapped out with a file at just the right moment.
94
+ /* c8 ignore start */
95
+ if (entries) {
96
+ if (entries.code === 'ENOENT') {
97
+ return true;
98
+ }
99
+ if (entries.code !== 'ENOTDIR') {
100
+ throw entries;
101
+ }
72
102
  }
73
- if (entries.code !== 'ENOTDIR') {
74
- throw entries;
75
- }
76
- if (opt.filter && !(await opt.filter(path))) {
103
+ /* c8 ignore stop */
104
+ if (opt.filter && !(await opt.filter(path, ent))) {
77
105
  return false;
78
106
  }
79
107
  // is a file
@@ -81,9 +109,9 @@ export const rimrafWindows = async (path, opt, state = START) => {
81
109
  return true;
82
110
  }
83
111
  const s = state === START ? CHILD : state;
84
- const removedAll = (await Promise.all(entries.map(entry => rimrafWindows(resolve(path, entry), opt, s)))).reduce((a, b) => a && b, true);
112
+ const removedAll = (await Promise.all(entries.map(ent => rimrafWindowsDir(resolve(path, ent.name), opt, ent, s)))).reduce((a, b) => a && b, true);
85
113
  if (state === START) {
86
- return rimrafWindows(path, opt, FINISH);
114
+ return rimrafWindowsDir(path, opt, ent, FINISH);
87
115
  }
88
116
  else if (state === FINISH) {
89
117
  if (opt.preserveRoot === false && path === parse(path).root) {
@@ -92,26 +120,29 @@ export const rimrafWindows = async (path, opt, state = START) => {
92
120
  if (!removedAll) {
93
121
  return false;
94
122
  }
95
- if (opt.filter && !(await opt.filter(path))) {
123
+ if (opt.filter && !(await opt.filter(path, ent))) {
96
124
  return false;
97
125
  }
98
126
  await ignoreENOENT(rimrafWindowsDirMoveRemoveFallback(path, opt));
99
127
  }
100
128
  return true;
101
129
  };
102
- export const rimrafWindowsSync = (path, opt, state = START) => {
103
- if (!states.has(state)) {
104
- throw new TypeError('invalid third argument passed to rimraf');
105
- }
106
- const entries = readdirOrErrorSync(path);
130
+ const rimrafWindowsDirSync = (path, opt, ent, state = START) => {
131
+ const entries = ent.isDirectory() ? readdirOrErrorSync(path) : null;
107
132
  if (!Array.isArray(entries)) {
108
- if (entries.code === 'ENOENT') {
109
- return true;
110
- }
111
- if (entries.code !== 'ENOTDIR') {
112
- throw entries;
133
+ // this can only happen if lstat/readdir lied, or if the dir was
134
+ // swapped out with a file at just the right moment.
135
+ /* c8 ignore start */
136
+ if (entries) {
137
+ if (entries.code === 'ENOENT') {
138
+ return true;
139
+ }
140
+ if (entries.code !== 'ENOTDIR') {
141
+ throw entries;
142
+ }
113
143
  }
114
- if (opt.filter && !opt.filter(path)) {
144
+ /* c8 ignore stop */
145
+ if (opt.filter && !opt.filter(path, ent)) {
115
146
  return false;
116
147
  }
117
148
  // is a file
@@ -119,12 +150,13 @@ export const rimrafWindowsSync = (path, opt, state = START) => {
119
150
  return true;
120
151
  }
121
152
  let removedAll = true;
122
- for (const entry of entries) {
153
+ for (const ent of entries) {
123
154
  const s = state === START ? CHILD : state;
124
- removedAll = rimrafWindowsSync(resolve(path, entry), opt, s) && removedAll;
155
+ const p = resolve(path, ent.name);
156
+ removedAll = rimrafWindowsDirSync(p, opt, ent, s) && removedAll;
125
157
  }
126
158
  if (state === START) {
127
- return rimrafWindowsSync(path, opt, FINISH);
159
+ return rimrafWindowsDirSync(path, opt, ent, FINISH);
128
160
  }
129
161
  else if (state === FINISH) {
130
162
  if (opt.preserveRoot === false && path === parse(path).root) {
@@ -133,7 +165,7 @@ export const rimrafWindowsSync = (path, opt, state = START) => {
133
165
  if (!removedAll) {
134
166
  return false;
135
167
  }
136
- if (opt.filter && !opt.filter(path)) {
168
+ if (opt.filter && !opt.filter(path, ent)) {
137
169
  return false;
138
170
  }
139
171
  ignoreENOENTSync(() => {
@@ -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,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAErC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAChF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAA;AAElC,MAAM,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;AACrD,MAAM,qBAAqB,GAAG,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAA;AACrE,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;AACnD,MAAM,oBAAoB,GAAG,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAA;AAEnE,MAAM,kCAAkC,GAAG,KAAK,EAC9C,IAAY,EACZ,GAAuB,EACL,EAAE;IACpB,qBAAqB;IACrB,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QACxB,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA;KACxB;IACD,oBAAoB;IACpB,uEAAuE;IACvE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,CAAA;IAClC,IAAI;QACF,OAAO,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAC7C;IAAC,OAAO,EAAE,EAAE;QACX,IAAK,EAA4B,EAAE,IAAI,KAAK,WAAW,EAAE;YACvD,OAAO,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;SAC7C;QACD,MAAM,EAAE,CAAA;KACT;AACH,CAAC,CAAA;AAED,MAAM,sCAAsC,GAAG,CAC7C,IAAY,EACZ,GAAsB,EACb,EAAE;IACX,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QACxB,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA;KACxB;IACD,uEAAuE;IACvE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,CAAA;IAClC,IAAI;QACF,OAAO,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAC3C;IAAC,OAAO,EAAE,EAAE;QACX,MAAM,GAAG,GAAG,EAA2B,CAAA;QACvC,IAAI,GAAG,EAAE,IAAI,KAAK,WAAW,EAAE;YAC7B,OAAO,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;SAC3C;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;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,IAAY,EACZ,GAAuB,EACvB,KAAK,GAAG,KAAK,EACK,EAAE;IACpB,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,cAAc,CAAC,IAAI,CAAC,CAAA;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YAC9B,MAAM,OAAO,CAAA;SACd;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;YAC3C,OAAO,KAAK,CAAA;SACb;QACD,YAAY;QACZ,MAAM,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;QAChD,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IACzC,MAAM,UAAU,GAAG,CACjB,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAClE,CACF,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;IAEhC,IAAI,KAAK,KAAK,KAAK,EAAE;QACnB,OAAO,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;KACxC;SAAM,IAAI,KAAK,KAAK,MAAM,EAAE;QAC3B,IAAI,GAAG,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;YAC3D,OAAO,KAAK,CAAA;SACb;QACD,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,KAAK,CAAA;SACb;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;YAC3C,OAAO,KAAK,CAAA;SACb;QACD,MAAM,YAAY,CAAC,kCAAkC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;KAClE;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,IAAY,EACZ,GAAsB,EACtB,KAAK,GAAG,KAAK,EACJ,EAAE;IACX,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACtB,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAA;KAC/D;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YAC9B,MAAM,OAAO,CAAA;SACd;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACnC,OAAO,KAAK,CAAA;SACb;QACD,YAAY;QACZ,gBAAgB,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;QACxD,OAAO,IAAI,CAAA;KACZ;IAED,IAAI,UAAU,GAAG,IAAI,CAAA;IACrB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC3B,MAAM,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;QACzC,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,UAAU,CAAA;KAC3E;IAED,IAAI,KAAK,KAAK,KAAK,EAAE;QACnB,OAAO,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;KAC5C;SAAM,IAAI,KAAK,KAAK,MAAM,EAAE;QAC3B,IAAI,GAAG,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;YAC3D,OAAO,KAAK,CAAA;SACb;QACD,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,KAAK,CAAA;SACb;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACnC,OAAO,KAAK,CAAA;SACb;QACD,gBAAgB,CAAC,GAAG,EAAE;YACpB,sCAAsC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;KACH;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
1
+ {"version":3,"file":"rimraf-windows.js","sourceRoot":"","sources":["../../src/rimraf-windows.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rimraf",
3
- "version": "4.3.0",
3
+ "version": "4.4.0",
4
4
  "main": "./dist/cjs/src/index-cjs.js",
5
5
  "module": "./dist/mjs/index.js",
6
6
  "types": "./dist/mjs/index.d.ts",