pnpm 10.33.0 → 10.33.2
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.
- package/dist/node_modules/.modules.yaml +78 -78
- package/dist/node_modules/.pnpm/lock.yaml +34 -25
- package/dist/node_modules/.pnpm-workspace-state-v1.json +11 -1
- package/dist/node_modules/brace-expansion/index.js +13 -11
- package/dist/node_modules/brace-expansion/package.json +1 -1
- package/dist/node_modules/minipass-flush/package.json +6 -3
- package/dist/node_modules/picomatch/lib/constants.js +4 -0
- package/dist/node_modules/picomatch/lib/parse.js +301 -0
- package/dist/node_modules/picomatch/lib/picomatch.js +11 -3
- package/dist/node_modules/picomatch/package.json +2 -3
- package/dist/node_modules/tar/dist/commonjs/get-write-flag.d.ts.map +1 -1
- package/dist/node_modules/tar/dist/commonjs/get-write-flag.js +7 -4
- package/dist/node_modules/tar/dist/commonjs/get-write-flag.js.map +1 -1
- package/dist/node_modules/tar/dist/commonjs/index.min.js +3 -3
- package/dist/node_modules/tar/dist/commonjs/index.min.js.map +3 -3
- package/dist/node_modules/tar/dist/esm/get-write-flag.d.ts.map +1 -1
- package/dist/node_modules/tar/dist/esm/get-write-flag.js +7 -4
- package/dist/node_modules/tar/dist/esm/get-write-flag.js.map +1 -1
- package/dist/node_modules/tar/dist/esm/index.min.js +3 -3
- package/dist/node_modules/tar/dist/esm/index.min.js.map +3 -3
- package/dist/node_modules/tar/package.json +1 -1
- package/dist/node_modules/tinyglobby/dist/index.cjs +132 -148
- package/dist/node_modules/tinyglobby/dist/index.d.cts +33 -32
- package/dist/node_modules/tinyglobby/dist/index.d.mts +33 -32
- package/dist/node_modules/tinyglobby/dist/index.mjs +134 -146
- package/dist/node_modules/tinyglobby/package.json +10 -10
- package/dist/pnpm.cjs +906 -305
- package/package.json +1 -1
- package/dist/node_modules/minipass-flush/LICENSE +0 -15
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
const WIN_SLASH = '\\\\/';
|
|
4
4
|
const WIN_NO_SLASH = `[^${WIN_SLASH}]`;
|
|
5
5
|
|
|
6
|
+
const DEFAULT_MAX_EXTGLOB_RECURSION = 0;
|
|
7
|
+
|
|
6
8
|
/**
|
|
7
9
|
* Posix glob regex
|
|
8
10
|
*/
|
|
@@ -69,6 +71,7 @@ const WINDOWS_CHARS = {
|
|
|
69
71
|
*/
|
|
70
72
|
|
|
71
73
|
const POSIX_REGEX_SOURCE = {
|
|
74
|
+
__proto__: null,
|
|
72
75
|
alnum: 'a-zA-Z0-9',
|
|
73
76
|
alpha: 'a-zA-Z',
|
|
74
77
|
ascii: '\\x00-\\x7F',
|
|
@@ -86,6 +89,7 @@ const POSIX_REGEX_SOURCE = {
|
|
|
86
89
|
};
|
|
87
90
|
|
|
88
91
|
module.exports = {
|
|
92
|
+
DEFAULT_MAX_EXTGLOB_RECURSION,
|
|
89
93
|
MAX_LENGTH: 1024 * 64,
|
|
90
94
|
POSIX_REGEX_SOURCE,
|
|
91
95
|
|
|
@@ -45,6 +45,277 @@ const syntaxError = (type, char) => {
|
|
|
45
45
|
return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
|
|
46
46
|
};
|
|
47
47
|
|
|
48
|
+
const splitTopLevel = input => {
|
|
49
|
+
const parts = [];
|
|
50
|
+
let bracket = 0;
|
|
51
|
+
let paren = 0;
|
|
52
|
+
let quote = 0;
|
|
53
|
+
let value = '';
|
|
54
|
+
let escaped = false;
|
|
55
|
+
|
|
56
|
+
for (const ch of input) {
|
|
57
|
+
if (escaped === true) {
|
|
58
|
+
value += ch;
|
|
59
|
+
escaped = false;
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (ch === '\\') {
|
|
64
|
+
value += ch;
|
|
65
|
+
escaped = true;
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (ch === '"') {
|
|
70
|
+
quote = quote === 1 ? 0 : 1;
|
|
71
|
+
value += ch;
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (quote === 0) {
|
|
76
|
+
if (ch === '[') {
|
|
77
|
+
bracket++;
|
|
78
|
+
} else if (ch === ']' && bracket > 0) {
|
|
79
|
+
bracket--;
|
|
80
|
+
} else if (bracket === 0) {
|
|
81
|
+
if (ch === '(') {
|
|
82
|
+
paren++;
|
|
83
|
+
} else if (ch === ')' && paren > 0) {
|
|
84
|
+
paren--;
|
|
85
|
+
} else if (ch === '|' && paren === 0) {
|
|
86
|
+
parts.push(value);
|
|
87
|
+
value = '';
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
value += ch;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
parts.push(value);
|
|
97
|
+
return parts;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
const isPlainBranch = branch => {
|
|
101
|
+
let escaped = false;
|
|
102
|
+
|
|
103
|
+
for (const ch of branch) {
|
|
104
|
+
if (escaped === true) {
|
|
105
|
+
escaped = false;
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (ch === '\\') {
|
|
110
|
+
escaped = true;
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if (/[?*+@!()[\]{}]/.test(ch)) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return true;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
const normalizeSimpleBranch = branch => {
|
|
123
|
+
let value = branch.trim();
|
|
124
|
+
let changed = true;
|
|
125
|
+
|
|
126
|
+
while (changed === true) {
|
|
127
|
+
changed = false;
|
|
128
|
+
|
|
129
|
+
if (/^@\([^\\()[\]{}|]+\)$/.test(value)) {
|
|
130
|
+
value = value.slice(2, -1);
|
|
131
|
+
changed = true;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if (!isPlainBranch(value)) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return value.replace(/\\(.)/g, '$1');
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
const hasRepeatedCharPrefixOverlap = branches => {
|
|
143
|
+
const values = branches.map(normalizeSimpleBranch).filter(Boolean);
|
|
144
|
+
|
|
145
|
+
for (let i = 0; i < values.length; i++) {
|
|
146
|
+
for (let j = i + 1; j < values.length; j++) {
|
|
147
|
+
const a = values[i];
|
|
148
|
+
const b = values[j];
|
|
149
|
+
const char = a[0];
|
|
150
|
+
|
|
151
|
+
if (!char || a !== char.repeat(a.length) || b !== char.repeat(b.length)) {
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if (a === b || a.startsWith(b) || b.startsWith(a)) {
|
|
156
|
+
return true;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return false;
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
const parseRepeatedExtglob = (pattern, requireEnd = true) => {
|
|
165
|
+
if ((pattern[0] !== '+' && pattern[0] !== '*') || pattern[1] !== '(') {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
let bracket = 0;
|
|
170
|
+
let paren = 0;
|
|
171
|
+
let quote = 0;
|
|
172
|
+
let escaped = false;
|
|
173
|
+
|
|
174
|
+
for (let i = 1; i < pattern.length; i++) {
|
|
175
|
+
const ch = pattern[i];
|
|
176
|
+
|
|
177
|
+
if (escaped === true) {
|
|
178
|
+
escaped = false;
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if (ch === '\\') {
|
|
183
|
+
escaped = true;
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (ch === '"') {
|
|
188
|
+
quote = quote === 1 ? 0 : 1;
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
if (quote === 1) {
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
if (ch === '[') {
|
|
197
|
+
bracket++;
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
if (ch === ']' && bracket > 0) {
|
|
202
|
+
bracket--;
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
if (bracket > 0) {
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
if (ch === '(') {
|
|
211
|
+
paren++;
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
if (ch === ')') {
|
|
216
|
+
paren--;
|
|
217
|
+
|
|
218
|
+
if (paren === 0) {
|
|
219
|
+
if (requireEnd === true && i !== pattern.length - 1) {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
return {
|
|
224
|
+
type: pattern[0],
|
|
225
|
+
body: pattern.slice(2, i),
|
|
226
|
+
end: i
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
const getStarExtglobSequenceOutput = pattern => {
|
|
234
|
+
let index = 0;
|
|
235
|
+
const chars = [];
|
|
236
|
+
|
|
237
|
+
while (index < pattern.length) {
|
|
238
|
+
const match = parseRepeatedExtglob(pattern.slice(index), false);
|
|
239
|
+
|
|
240
|
+
if (!match || match.type !== '*') {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
const branches = splitTopLevel(match.body).map(branch => branch.trim());
|
|
245
|
+
if (branches.length !== 1) {
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
const branch = normalizeSimpleBranch(branches[0]);
|
|
250
|
+
if (!branch || branch.length !== 1) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
chars.push(branch);
|
|
255
|
+
index += match.end + 1;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
if (chars.length < 1) {
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
const source = chars.length === 1
|
|
263
|
+
? utils.escapeRegex(chars[0])
|
|
264
|
+
: `[${chars.map(ch => utils.escapeRegex(ch)).join('')}]`;
|
|
265
|
+
|
|
266
|
+
return `${source}*`;
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
const repeatedExtglobRecursion = pattern => {
|
|
270
|
+
let depth = 0;
|
|
271
|
+
let value = pattern.trim();
|
|
272
|
+
let match = parseRepeatedExtglob(value);
|
|
273
|
+
|
|
274
|
+
while (match) {
|
|
275
|
+
depth++;
|
|
276
|
+
value = match.body.trim();
|
|
277
|
+
match = parseRepeatedExtglob(value);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
return depth;
|
|
281
|
+
};
|
|
282
|
+
|
|
283
|
+
const analyzeRepeatedExtglob = (body, options) => {
|
|
284
|
+
if (options.maxExtglobRecursion === false) {
|
|
285
|
+
return { risky: false };
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
const max =
|
|
289
|
+
typeof options.maxExtglobRecursion === 'number'
|
|
290
|
+
? options.maxExtglobRecursion
|
|
291
|
+
: constants.DEFAULT_MAX_EXTGLOB_RECURSION;
|
|
292
|
+
|
|
293
|
+
const branches = splitTopLevel(body).map(branch => branch.trim());
|
|
294
|
+
|
|
295
|
+
if (branches.length > 1) {
|
|
296
|
+
if (
|
|
297
|
+
branches.some(branch => branch === '') ||
|
|
298
|
+
branches.some(branch => /^[*?]+$/.test(branch)) ||
|
|
299
|
+
hasRepeatedCharPrefixOverlap(branches)
|
|
300
|
+
) {
|
|
301
|
+
return { risky: true };
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
for (const branch of branches) {
|
|
306
|
+
const safeOutput = getStarExtglobSequenceOutput(branch);
|
|
307
|
+
if (safeOutput) {
|
|
308
|
+
return { risky: true, safeOutput };
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
if (repeatedExtglobRecursion(branch) > max) {
|
|
312
|
+
return { risky: true };
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
return { risky: false };
|
|
317
|
+
};
|
|
318
|
+
|
|
48
319
|
/**
|
|
49
320
|
* Parse the given input string.
|
|
50
321
|
* @param {String} input
|
|
@@ -225,6 +496,8 @@ const parse = (input, options) => {
|
|
|
225
496
|
token.prev = prev;
|
|
226
497
|
token.parens = state.parens;
|
|
227
498
|
token.output = state.output;
|
|
499
|
+
token.startIndex = state.index;
|
|
500
|
+
token.tokensIndex = tokens.length;
|
|
228
501
|
const output = (opts.capture ? '(' : '') + token.open;
|
|
229
502
|
|
|
230
503
|
increment('parens');
|
|
@@ -234,6 +507,34 @@ const parse = (input, options) => {
|
|
|
234
507
|
};
|
|
235
508
|
|
|
236
509
|
const extglobClose = token => {
|
|
510
|
+
const literal = input.slice(token.startIndex, state.index + 1);
|
|
511
|
+
const body = input.slice(token.startIndex + 2, state.index);
|
|
512
|
+
const analysis = analyzeRepeatedExtglob(body, opts);
|
|
513
|
+
|
|
514
|
+
if ((token.type === 'plus' || token.type === 'star') && analysis.risky) {
|
|
515
|
+
const safeOutput = analysis.safeOutput
|
|
516
|
+
? (token.output ? '' : ONE_CHAR) + (opts.capture ? `(${analysis.safeOutput})` : analysis.safeOutput)
|
|
517
|
+
: undefined;
|
|
518
|
+
const open = tokens[token.tokensIndex];
|
|
519
|
+
|
|
520
|
+
open.type = 'text';
|
|
521
|
+
open.value = literal;
|
|
522
|
+
open.output = safeOutput || utils.escapeRegex(literal);
|
|
523
|
+
|
|
524
|
+
for (let i = token.tokensIndex + 1; i < tokens.length; i++) {
|
|
525
|
+
tokens[i].value = '';
|
|
526
|
+
tokens[i].output = '';
|
|
527
|
+
delete tokens[i].suffix;
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
state.output = token.output + open.output;
|
|
531
|
+
state.backtrack = true;
|
|
532
|
+
|
|
533
|
+
push({ type: 'paren', extglob: true, value, output: '' });
|
|
534
|
+
decrement('parens');
|
|
535
|
+
return;
|
|
536
|
+
}
|
|
537
|
+
|
|
237
538
|
let output = token.close + (opts.capture ? ')' : '');
|
|
238
539
|
let rest;
|
|
239
540
|
|
|
@@ -233,6 +233,14 @@ picomatch.scan = (input, options) => scan(input, options);
|
|
|
233
233
|
* Compile a regular expression from the `state` object returned by the
|
|
234
234
|
* [parse()](#parse) method.
|
|
235
235
|
*
|
|
236
|
+
* ```js
|
|
237
|
+
* const picomatch = require('picomatch');
|
|
238
|
+
* const state = picomatch.parse('*.js');
|
|
239
|
+
* // picomatch.compileRe(state[, options]);
|
|
240
|
+
*
|
|
241
|
+
* console.log(picomatch.compileRe(state));
|
|
242
|
+
* //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/
|
|
243
|
+
* ```
|
|
236
244
|
* @param {Object} `state`
|
|
237
245
|
* @param {Object} `options`
|
|
238
246
|
* @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.
|
|
@@ -268,10 +276,10 @@ picomatch.compileRe = (state, options, returnOutput = false, returnState = false
|
|
|
268
276
|
*
|
|
269
277
|
* ```js
|
|
270
278
|
* const picomatch = require('picomatch');
|
|
271
|
-
*
|
|
272
|
-
* // picomatch.compileRe(state[, options]);
|
|
279
|
+
* // picomatch.makeRe(state[, options]);
|
|
273
280
|
*
|
|
274
|
-
*
|
|
281
|
+
* const result = picomatch.makeRe('*.js');
|
|
282
|
+
* console.log(result);
|
|
275
283
|
* //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/
|
|
276
284
|
* ```
|
|
277
285
|
* @param {String} `state` The object returned from the `.parse` method.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "picomatch",
|
|
3
3
|
"description": "Blazing fast and accurate glob matcher written in JavaScript, with no dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions.",
|
|
4
|
-
"version": "4.0.
|
|
4
|
+
"version": "4.0.4",
|
|
5
5
|
"homepage": "https://github.com/micromatch/picomatch",
|
|
6
6
|
"author": "Jon Schlinkert (https://github.com/jonschlinkert)",
|
|
7
7
|
"funding": "https://github.com/sponsors/jonschlinkert",
|
|
@@ -32,8 +32,7 @@
|
|
|
32
32
|
"fill-range": "^7.0.1",
|
|
33
33
|
"gulp-format-md": "^2.0.0",
|
|
34
34
|
"mocha": "^10.4.0",
|
|
35
|
-
"nyc": "^15.1.0"
|
|
36
|
-
"time-require": "github:jonschlinkert/time-require"
|
|
35
|
+
"nyc": "^15.1.0"
|
|
37
36
|
},
|
|
38
37
|
"keywords": [
|
|
39
38
|
"glob",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-write-flag.d.ts","sourceRoot":"","sources":["../../src/get-write-flag.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-write-flag.d.ts","sourceRoot":"","sources":["../../src/get-write-flag.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,YAAY,2BAGd,MAAM,kBAAwC,CAAA"}
|
|
@@ -15,7 +15,7 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
15
15
|
const platform = process.env.__FAKE_PLATFORM__ || process.platform;
|
|
16
16
|
const isWindows = platform === 'win32';
|
|
17
17
|
/* c8 ignore start */
|
|
18
|
-
const { O_CREAT, O_TRUNC, O_WRONLY } = fs_1.default.constants;
|
|
18
|
+
const { O_CREAT, O_NOFOLLOW, O_TRUNC, O_WRONLY } = fs_1.default.constants;
|
|
19
19
|
const UV_FS_O_FILEMAP = Number(process.env.__FAKE_FS_O_FILENAME__) ||
|
|
20
20
|
fs_1.default.constants.UV_FS_O_FILEMAP ||
|
|
21
21
|
0;
|
|
@@ -23,7 +23,10 @@ const UV_FS_O_FILEMAP = Number(process.env.__FAKE_FS_O_FILENAME__) ||
|
|
|
23
23
|
const fMapEnabled = isWindows && !!UV_FS_O_FILEMAP;
|
|
24
24
|
const fMapLimit = 512 * 1024;
|
|
25
25
|
const fMapFlag = UV_FS_O_FILEMAP | O_TRUNC | O_CREAT | O_WRONLY;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
:
|
|
26
|
+
const noFollowFlag = !isWindows && typeof O_NOFOLLOW === 'number' ?
|
|
27
|
+
O_NOFOLLOW | O_TRUNC | O_CREAT | O_WRONLY
|
|
28
|
+
: null;
|
|
29
|
+
exports.getWriteFlag = noFollowFlag !== null ? () => noFollowFlag
|
|
30
|
+
: !fMapEnabled ? () => 'w'
|
|
31
|
+
: (size) => (size < fMapLimit ? fMapFlag : 'w');
|
|
29
32
|
//# sourceMappingURL=get-write-flag.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-write-flag.js","sourceRoot":"","sources":["../../src/get-write-flag.ts"],"names":[],"mappings":";AAAA,qDAAqD;AACrD,uDAAuD;AACvD,wDAAwD;AACxD,wDAAwD;AACxD,qDAAqD;AACrD,uDAAuD;AACvD,8CAA8C;;;;;;AAE9C,4CAAmB;AAEnB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,QAAQ,CAAA;AAClE,MAAM,SAAS,GAAG,QAAQ,KAAK,OAAO,CAAA;AAEtC,qBAAqB;AACrB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,YAAE,CAAC,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"get-write-flag.js","sourceRoot":"","sources":["../../src/get-write-flag.ts"],"names":[],"mappings":";AAAA,qDAAqD;AACrD,uDAAuD;AACvD,wDAAwD;AACxD,wDAAwD;AACxD,qDAAqD;AACrD,uDAAuD;AACvD,8CAA8C;;;;;;AAE9C,4CAAmB;AAEnB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,QAAQ,CAAA;AAClE,MAAM,SAAS,GAAG,QAAQ,KAAK,OAAO,CAAA;AAEtC,qBAAqB;AACrB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,YAAE,CAAC,SAAS,CAAA;AAC/D,MAAM,eAAe,GACnB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC1C,YAAE,CAAC,SAAS,CAAC,eAAe;IAC5B,CAAC,CAAA;AACH,oBAAoB;AAEpB,MAAM,WAAW,GAAG,SAAS,IAAI,CAAC,CAAC,eAAe,CAAA;AAClD,MAAM,SAAS,GAAG,GAAG,GAAG,IAAI,CAAA;AAC5B,MAAM,QAAQ,GAAG,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;AAC/D,MAAM,YAAY,GAChB,CAAC,SAAS,IAAI,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC;IAC5C,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ;IAC3C,CAAC,CAAC,IAAI,CAAA;AACK,QAAA,YAAY,GACvB,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY;IAC1C,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG;QAC1B,CAAC,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA","sourcesContent":["// Get the appropriate flag to use for creating files\n// We use fmap on Windows platforms for files less than\n// 512kb. This is a fairly low limit, but avoids making\n// things slower in some cases. Since most of what this\n// library is used for is extracting tarballs of many\n// relatively small files in npm packages and the like,\n// it can be a big boost on Windows platforms.\n\nimport fs from 'fs'\n\nconst platform = process.env.__FAKE_PLATFORM__ || process.platform\nconst isWindows = platform === 'win32'\n\n/* c8 ignore start */\nconst { O_CREAT, O_NOFOLLOW, O_TRUNC, O_WRONLY } = fs.constants\nconst UV_FS_O_FILEMAP =\n Number(process.env.__FAKE_FS_O_FILENAME__) ||\n fs.constants.UV_FS_O_FILEMAP ||\n 0\n/* c8 ignore stop */\n\nconst fMapEnabled = isWindows && !!UV_FS_O_FILEMAP\nconst fMapLimit = 512 * 1024\nconst fMapFlag = UV_FS_O_FILEMAP | O_TRUNC | O_CREAT | O_WRONLY\nconst noFollowFlag =\n !isWindows && typeof O_NOFOLLOW === 'number' ?\n O_NOFOLLOW | O_TRUNC | O_CREAT | O_WRONLY\n : null\nexport const getWriteFlag =\n noFollowFlag !== null ? () => noFollowFlag\n : !fMapEnabled ? () => 'w'\n : (size: number) => (size < fMapLimit ? fMapFlag : 'w')\n"]}
|