wp-studio 1.7.7-alpha1

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 (48) hide show
  1. package/LICENSE.md +257 -0
  2. package/README.md +87 -0
  3. package/dist/cli/_events-BeOo0LuG.js +116 -0
  4. package/dist/cli/appdata-07CF2rhg.js +21090 -0
  5. package/dist/cli/archive-xDmkN4wb.js +15942 -0
  6. package/dist/cli/browser-CgWK-yoe.js +44 -0
  7. package/dist/cli/certificate-manager-DdBumKZp.js +250 -0
  8. package/dist/cli/create-BHVhkvTx.js +80 -0
  9. package/dist/cli/create-ZS29BDDi.js +40999 -0
  10. package/dist/cli/delete-BgQn-elT.js +56 -0
  11. package/dist/cli/delete-g8pgaLna.js +132 -0
  12. package/dist/cli/get-wordpress-version-BwSCJujO.js +18 -0
  13. package/dist/cli/index-7pbG_s_U.js +434 -0
  14. package/dist/cli/index-BXRYeCYG.js +1393 -0
  15. package/dist/cli/index-T3F1GwxX.js +2668 -0
  16. package/dist/cli/is-errno-exception-t38xF2pB.js +6 -0
  17. package/dist/cli/list-BE_UBjL5.js +105 -0
  18. package/dist/cli/list-DKz0XxM7.js +1032 -0
  19. package/dist/cli/logger-actions-OaIvl-ai.js +45 -0
  20. package/dist/cli/login-B4PkfKOu.js +82 -0
  21. package/dist/cli/logout-BC9gKlTj.js +48 -0
  22. package/dist/cli/main.js +5 -0
  23. package/dist/cli/mu-plugins-GEfKsl5U.js +530 -0
  24. package/dist/cli/passwords-DyzWd9Xi.js +80 -0
  25. package/dist/cli/process-manager-daemon.js +327 -0
  26. package/dist/cli/process-manager-ipc-AUZeYYDT.js +454 -0
  27. package/dist/cli/proxy-daemon.js +197 -0
  28. package/dist/cli/run-wp-cli-command-BctnMDWG.js +88 -0
  29. package/dist/cli/sequential-BQFuixXz.js +46 -0
  30. package/dist/cli/server-files-C_oy-mnI.js +26 -0
  31. package/dist/cli/set-DknhAZpw.js +327 -0
  32. package/dist/cli/site-utils-CfsabjUn.js +243 -0
  33. package/dist/cli/snapshots-6XE53y_F.js +874 -0
  34. package/dist/cli/sqlite-integration-H4OwSlwR.js +83 -0
  35. package/dist/cli/start-CRJqm09_.js +90 -0
  36. package/dist/cli/status-CWNHIOaY.js +44 -0
  37. package/dist/cli/status-CWWx9jYF.js +110 -0
  38. package/dist/cli/stop-CQosmjqA.js +117 -0
  39. package/dist/cli/update-BgL2HKHW.js +101 -0
  40. package/dist/cli/validation-error-DqLxqQuA.js +40 -0
  41. package/dist/cli/wordpress-server-child.js +514 -0
  42. package/dist/cli/wordpress-server-ipc-Dwsg9jSb.js +140 -0
  43. package/dist/cli/wordpress-server-manager-CtiuJqEb.js +566 -0
  44. package/dist/cli/wordpress-version-utils-B6UVeTh_.js +51 -0
  45. package/dist/cli/wp-UGSnlkN0.js +103 -0
  46. package/package.json +73 -0
  47. package/patches/@wp-playground+wordpress+3.1.12.patch +28 -0
  48. package/scripts/postinstall-npm.mjs +38 -0
@@ -0,0 +1,1393 @@
1
+ import { x as requireGracefulFs, y as getDefaultExportFromCjs } from "./appdata-07CF2rhg.js";
2
+ import path from "path";
3
+ import fs$2 from "fs";
4
+ var fs$1 = {};
5
+ var universalify = {};
6
+ var hasRequiredUniversalify;
7
+ function requireUniversalify() {
8
+ if (hasRequiredUniversalify) return universalify;
9
+ hasRequiredUniversalify = 1;
10
+ universalify.fromCallback = function(fn) {
11
+ return Object.defineProperty(function(...args) {
12
+ if (typeof args[args.length - 1] === "function") fn.apply(this, args);
13
+ else {
14
+ return new Promise((resolve, reject) => {
15
+ args.push((err, res) => err != null ? reject(err) : resolve(res));
16
+ fn.apply(this, args);
17
+ });
18
+ }
19
+ }, "name", { value: fn.name });
20
+ };
21
+ universalify.fromPromise = function(fn) {
22
+ return Object.defineProperty(function(...args) {
23
+ const cb = args[args.length - 1];
24
+ if (typeof cb !== "function") return fn.apply(this, args);
25
+ else {
26
+ args.pop();
27
+ fn.apply(this, args).then((r) => cb(null, r), cb);
28
+ }
29
+ }, "name", { value: fn.name });
30
+ };
31
+ return universalify;
32
+ }
33
+ var hasRequiredFs;
34
+ function requireFs() {
35
+ if (hasRequiredFs) return fs$1;
36
+ hasRequiredFs = 1;
37
+ (function(exports$1) {
38
+ const u = requireUniversalify().fromCallback;
39
+ const fs2 = requireGracefulFs();
40
+ const api = [
41
+ "access",
42
+ "appendFile",
43
+ "chmod",
44
+ "chown",
45
+ "close",
46
+ "copyFile",
47
+ "cp",
48
+ "fchmod",
49
+ "fchown",
50
+ "fdatasync",
51
+ "fstat",
52
+ "fsync",
53
+ "ftruncate",
54
+ "futimes",
55
+ "glob",
56
+ "lchmod",
57
+ "lchown",
58
+ "lutimes",
59
+ "link",
60
+ "lstat",
61
+ "mkdir",
62
+ "mkdtemp",
63
+ "open",
64
+ "opendir",
65
+ "readdir",
66
+ "readFile",
67
+ "readlink",
68
+ "realpath",
69
+ "rename",
70
+ "rm",
71
+ "rmdir",
72
+ "stat",
73
+ "statfs",
74
+ "symlink",
75
+ "truncate",
76
+ "unlink",
77
+ "utimes",
78
+ "writeFile"
79
+ ].filter((key) => {
80
+ return typeof fs2[key] === "function";
81
+ });
82
+ Object.assign(exports$1, fs2);
83
+ api.forEach((method) => {
84
+ exports$1[method] = u(fs2[method]);
85
+ });
86
+ exports$1.exists = function(filename, callback) {
87
+ if (typeof callback === "function") {
88
+ return fs2.exists(filename, callback);
89
+ }
90
+ return new Promise((resolve) => {
91
+ return fs2.exists(filename, resolve);
92
+ });
93
+ };
94
+ exports$1.read = function(fd, buffer, offset, length, position, callback) {
95
+ if (typeof callback === "function") {
96
+ return fs2.read(fd, buffer, offset, length, position, callback);
97
+ }
98
+ return new Promise((resolve, reject) => {
99
+ fs2.read(fd, buffer, offset, length, position, (err, bytesRead, buffer2) => {
100
+ if (err) return reject(err);
101
+ resolve({ bytesRead, buffer: buffer2 });
102
+ });
103
+ });
104
+ };
105
+ exports$1.write = function(fd, buffer, ...args) {
106
+ if (typeof args[args.length - 1] === "function") {
107
+ return fs2.write(fd, buffer, ...args);
108
+ }
109
+ return new Promise((resolve, reject) => {
110
+ fs2.write(fd, buffer, ...args, (err, bytesWritten, buffer2) => {
111
+ if (err) return reject(err);
112
+ resolve({ bytesWritten, buffer: buffer2 });
113
+ });
114
+ });
115
+ };
116
+ exports$1.readv = function(fd, buffers, ...args) {
117
+ if (typeof args[args.length - 1] === "function") {
118
+ return fs2.readv(fd, buffers, ...args);
119
+ }
120
+ return new Promise((resolve, reject) => {
121
+ fs2.readv(fd, buffers, ...args, (err, bytesRead, buffers2) => {
122
+ if (err) return reject(err);
123
+ resolve({ bytesRead, buffers: buffers2 });
124
+ });
125
+ });
126
+ };
127
+ exports$1.writev = function(fd, buffers, ...args) {
128
+ if (typeof args[args.length - 1] === "function") {
129
+ return fs2.writev(fd, buffers, ...args);
130
+ }
131
+ return new Promise((resolve, reject) => {
132
+ fs2.writev(fd, buffers, ...args, (err, bytesWritten, buffers2) => {
133
+ if (err) return reject(err);
134
+ resolve({ bytesWritten, buffers: buffers2 });
135
+ });
136
+ });
137
+ };
138
+ if (typeof fs2.realpath.native === "function") {
139
+ exports$1.realpath.native = u(fs2.realpath.native);
140
+ } else {
141
+ process.emitWarning(
142
+ "fs.realpath.native is not a function. Is fs being monkey-patched?",
143
+ "Warning",
144
+ "fs-extra-WARN0003"
145
+ );
146
+ }
147
+ })(fs$1);
148
+ return fs$1;
149
+ }
150
+ var makeDir = {};
151
+ var utils$1 = {};
152
+ var hasRequiredUtils$1;
153
+ function requireUtils$1() {
154
+ if (hasRequiredUtils$1) return utils$1;
155
+ hasRequiredUtils$1 = 1;
156
+ const path$1 = path;
157
+ utils$1.checkPath = function checkPath(pth) {
158
+ if (process.platform === "win32") {
159
+ const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path$1.parse(pth).root, ""));
160
+ if (pathHasInvalidWinCharacters) {
161
+ const error = new Error(`Path contains invalid characters: ${pth}`);
162
+ error.code = "EINVAL";
163
+ throw error;
164
+ }
165
+ }
166
+ };
167
+ return utils$1;
168
+ }
169
+ var hasRequiredMakeDir;
170
+ function requireMakeDir() {
171
+ if (hasRequiredMakeDir) return makeDir;
172
+ hasRequiredMakeDir = 1;
173
+ const fs2 = /* @__PURE__ */ requireFs();
174
+ const { checkPath } = /* @__PURE__ */ requireUtils$1();
175
+ const getMode = (options) => {
176
+ const defaults = { mode: 511 };
177
+ if (typeof options === "number") return options;
178
+ return { ...defaults, ...options }.mode;
179
+ };
180
+ makeDir.makeDir = async (dir, options) => {
181
+ checkPath(dir);
182
+ return fs2.mkdir(dir, {
183
+ mode: getMode(options),
184
+ recursive: true
185
+ });
186
+ };
187
+ makeDir.makeDirSync = (dir, options) => {
188
+ checkPath(dir);
189
+ return fs2.mkdirSync(dir, {
190
+ mode: getMode(options),
191
+ recursive: true
192
+ });
193
+ };
194
+ return makeDir;
195
+ }
196
+ var mkdirs;
197
+ var hasRequiredMkdirs;
198
+ function requireMkdirs() {
199
+ if (hasRequiredMkdirs) return mkdirs;
200
+ hasRequiredMkdirs = 1;
201
+ const u = requireUniversalify().fromPromise;
202
+ const { makeDir: _makeDir, makeDirSync } = /* @__PURE__ */ requireMakeDir();
203
+ const makeDir2 = u(_makeDir);
204
+ mkdirs = {
205
+ mkdirs: makeDir2,
206
+ mkdirsSync: makeDirSync,
207
+ // alias
208
+ mkdirp: makeDir2,
209
+ mkdirpSync: makeDirSync,
210
+ ensureDir: makeDir2,
211
+ ensureDirSync: makeDirSync
212
+ };
213
+ return mkdirs;
214
+ }
215
+ var pathExists_1;
216
+ var hasRequiredPathExists;
217
+ function requirePathExists() {
218
+ if (hasRequiredPathExists) return pathExists_1;
219
+ hasRequiredPathExists = 1;
220
+ const u = requireUniversalify().fromPromise;
221
+ const fs2 = /* @__PURE__ */ requireFs();
222
+ function pathExists(path2) {
223
+ return fs2.access(path2).then(() => true).catch(() => false);
224
+ }
225
+ pathExists_1 = {
226
+ pathExists: u(pathExists),
227
+ pathExistsSync: fs2.existsSync
228
+ };
229
+ return pathExists_1;
230
+ }
231
+ var utimes;
232
+ var hasRequiredUtimes;
233
+ function requireUtimes() {
234
+ if (hasRequiredUtimes) return utimes;
235
+ hasRequiredUtimes = 1;
236
+ const fs2 = /* @__PURE__ */ requireFs();
237
+ const u = requireUniversalify().fromPromise;
238
+ async function utimesMillis(path2, atime, mtime) {
239
+ const fd = await fs2.open(path2, "r+");
240
+ let closeErr = null;
241
+ try {
242
+ await fs2.futimes(fd, atime, mtime);
243
+ } finally {
244
+ try {
245
+ await fs2.close(fd);
246
+ } catch (e) {
247
+ closeErr = e;
248
+ }
249
+ }
250
+ if (closeErr) {
251
+ throw closeErr;
252
+ }
253
+ }
254
+ function utimesMillisSync(path2, atime, mtime) {
255
+ const fd = fs2.openSync(path2, "r+");
256
+ fs2.futimesSync(fd, atime, mtime);
257
+ return fs2.closeSync(fd);
258
+ }
259
+ utimes = {
260
+ utimesMillis: u(utimesMillis),
261
+ utimesMillisSync
262
+ };
263
+ return utimes;
264
+ }
265
+ var stat;
266
+ var hasRequiredStat;
267
+ function requireStat() {
268
+ if (hasRequiredStat) return stat;
269
+ hasRequiredStat = 1;
270
+ const fs2 = /* @__PURE__ */ requireFs();
271
+ const path$1 = path;
272
+ const u = requireUniversalify().fromPromise;
273
+ function getStats(src, dest, opts) {
274
+ const statFunc = opts.dereference ? (file2) => fs2.stat(file2, { bigint: true }) : (file2) => fs2.lstat(file2, { bigint: true });
275
+ return Promise.all([
276
+ statFunc(src),
277
+ statFunc(dest).catch((err) => {
278
+ if (err.code === "ENOENT") return null;
279
+ throw err;
280
+ })
281
+ ]).then(([srcStat, destStat]) => ({ srcStat, destStat }));
282
+ }
283
+ function getStatsSync(src, dest, opts) {
284
+ let destStat;
285
+ const statFunc = opts.dereference ? (file2) => fs2.statSync(file2, { bigint: true }) : (file2) => fs2.lstatSync(file2, { bigint: true });
286
+ const srcStat = statFunc(src);
287
+ try {
288
+ destStat = statFunc(dest);
289
+ } catch (err) {
290
+ if (err.code === "ENOENT") return { srcStat, destStat: null };
291
+ throw err;
292
+ }
293
+ return { srcStat, destStat };
294
+ }
295
+ async function checkPaths(src, dest, funcName, opts) {
296
+ const { srcStat, destStat } = await getStats(src, dest, opts);
297
+ if (destStat) {
298
+ if (areIdentical(srcStat, destStat)) {
299
+ const srcBaseName = path$1.basename(src);
300
+ const destBaseName = path$1.basename(dest);
301
+ if (funcName === "move" && srcBaseName !== destBaseName && srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {
302
+ return { srcStat, destStat, isChangingCase: true };
303
+ }
304
+ throw new Error("Source and destination must not be the same.");
305
+ }
306
+ if (srcStat.isDirectory() && !destStat.isDirectory()) {
307
+ throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`);
308
+ }
309
+ if (!srcStat.isDirectory() && destStat.isDirectory()) {
310
+ throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`);
311
+ }
312
+ }
313
+ if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
314
+ throw new Error(errMsg(src, dest, funcName));
315
+ }
316
+ return { srcStat, destStat };
317
+ }
318
+ function checkPathsSync(src, dest, funcName, opts) {
319
+ const { srcStat, destStat } = getStatsSync(src, dest, opts);
320
+ if (destStat) {
321
+ if (areIdentical(srcStat, destStat)) {
322
+ const srcBaseName = path$1.basename(src);
323
+ const destBaseName = path$1.basename(dest);
324
+ if (funcName === "move" && srcBaseName !== destBaseName && srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {
325
+ return { srcStat, destStat, isChangingCase: true };
326
+ }
327
+ throw new Error("Source and destination must not be the same.");
328
+ }
329
+ if (srcStat.isDirectory() && !destStat.isDirectory()) {
330
+ throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`);
331
+ }
332
+ if (!srcStat.isDirectory() && destStat.isDirectory()) {
333
+ throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`);
334
+ }
335
+ }
336
+ if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
337
+ throw new Error(errMsg(src, dest, funcName));
338
+ }
339
+ return { srcStat, destStat };
340
+ }
341
+ async function checkParentPaths(src, srcStat, dest, funcName) {
342
+ const srcParent = path$1.resolve(path$1.dirname(src));
343
+ const destParent = path$1.resolve(path$1.dirname(dest));
344
+ if (destParent === srcParent || destParent === path$1.parse(destParent).root) return;
345
+ let destStat;
346
+ try {
347
+ destStat = await fs2.stat(destParent, { bigint: true });
348
+ } catch (err) {
349
+ if (err.code === "ENOENT") return;
350
+ throw err;
351
+ }
352
+ if (areIdentical(srcStat, destStat)) {
353
+ throw new Error(errMsg(src, dest, funcName));
354
+ }
355
+ return checkParentPaths(src, srcStat, destParent, funcName);
356
+ }
357
+ function checkParentPathsSync(src, srcStat, dest, funcName) {
358
+ const srcParent = path$1.resolve(path$1.dirname(src));
359
+ const destParent = path$1.resolve(path$1.dirname(dest));
360
+ if (destParent === srcParent || destParent === path$1.parse(destParent).root) return;
361
+ let destStat;
362
+ try {
363
+ destStat = fs2.statSync(destParent, { bigint: true });
364
+ } catch (err) {
365
+ if (err.code === "ENOENT") return;
366
+ throw err;
367
+ }
368
+ if (areIdentical(srcStat, destStat)) {
369
+ throw new Error(errMsg(src, dest, funcName));
370
+ }
371
+ return checkParentPathsSync(src, srcStat, destParent, funcName);
372
+ }
373
+ function areIdentical(srcStat, destStat) {
374
+ return destStat.ino !== void 0 && destStat.dev !== void 0 && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev;
375
+ }
376
+ function isSrcSubdir(src, dest) {
377
+ const srcArr = path$1.resolve(src).split(path$1.sep).filter((i) => i);
378
+ const destArr = path$1.resolve(dest).split(path$1.sep).filter((i) => i);
379
+ return srcArr.every((cur, i) => destArr[i] === cur);
380
+ }
381
+ function errMsg(src, dest, funcName) {
382
+ return `Cannot ${funcName} '${src}' to a subdirectory of itself, '${dest}'.`;
383
+ }
384
+ stat = {
385
+ // checkPaths
386
+ checkPaths: u(checkPaths),
387
+ checkPathsSync,
388
+ // checkParent
389
+ checkParentPaths: u(checkParentPaths),
390
+ checkParentPathsSync,
391
+ // Misc
392
+ isSrcSubdir,
393
+ areIdentical
394
+ };
395
+ return stat;
396
+ }
397
+ var async;
398
+ var hasRequiredAsync;
399
+ function requireAsync() {
400
+ if (hasRequiredAsync) return async;
401
+ hasRequiredAsync = 1;
402
+ async function asyncIteratorConcurrentProcess(iterator, fn) {
403
+ const promises = [];
404
+ for await (const item of iterator) {
405
+ promises.push(
406
+ fn(item).then(
407
+ () => null,
408
+ (err) => err ?? new Error("unknown error")
409
+ )
410
+ );
411
+ }
412
+ await Promise.all(
413
+ promises.map(
414
+ (promise) => promise.then((possibleErr) => {
415
+ if (possibleErr !== null) throw possibleErr;
416
+ })
417
+ )
418
+ );
419
+ }
420
+ async = {
421
+ asyncIteratorConcurrentProcess
422
+ };
423
+ return async;
424
+ }
425
+ var copy_1;
426
+ var hasRequiredCopy$1;
427
+ function requireCopy$1() {
428
+ if (hasRequiredCopy$1) return copy_1;
429
+ hasRequiredCopy$1 = 1;
430
+ const fs2 = /* @__PURE__ */ requireFs();
431
+ const path$1 = path;
432
+ const { mkdirs: mkdirs2 } = /* @__PURE__ */ requireMkdirs();
433
+ const { pathExists } = /* @__PURE__ */ requirePathExists();
434
+ const { utimesMillis } = /* @__PURE__ */ requireUtimes();
435
+ const stat2 = /* @__PURE__ */ requireStat();
436
+ const { asyncIteratorConcurrentProcess } = /* @__PURE__ */ requireAsync();
437
+ async function copy2(src, dest, opts = {}) {
438
+ if (typeof opts === "function") {
439
+ opts = { filter: opts };
440
+ }
441
+ opts.clobber = "clobber" in opts ? !!opts.clobber : true;
442
+ opts.overwrite = "overwrite" in opts ? !!opts.overwrite : opts.clobber;
443
+ if (opts.preserveTimestamps && process.arch === "ia32") {
444
+ process.emitWarning(
445
+ "Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269",
446
+ "Warning",
447
+ "fs-extra-WARN0001"
448
+ );
449
+ }
450
+ const { srcStat, destStat } = await stat2.checkPaths(src, dest, "copy", opts);
451
+ await stat2.checkParentPaths(src, srcStat, dest, "copy");
452
+ const include = await runFilter(src, dest, opts);
453
+ if (!include) return;
454
+ const destParent = path$1.dirname(dest);
455
+ const dirExists = await pathExists(destParent);
456
+ if (!dirExists) {
457
+ await mkdirs2(destParent);
458
+ }
459
+ await getStatsAndPerformCopy(destStat, src, dest, opts);
460
+ }
461
+ async function runFilter(src, dest, opts) {
462
+ if (!opts.filter) return true;
463
+ return opts.filter(src, dest);
464
+ }
465
+ async function getStatsAndPerformCopy(destStat, src, dest, opts) {
466
+ const statFn = opts.dereference ? fs2.stat : fs2.lstat;
467
+ const srcStat = await statFn(src);
468
+ if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts);
469
+ if (srcStat.isFile() || srcStat.isCharacterDevice() || srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts);
470
+ if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts);
471
+ if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`);
472
+ if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`);
473
+ throw new Error(`Unknown file: ${src}`);
474
+ }
475
+ async function onFile(srcStat, destStat, src, dest, opts) {
476
+ if (!destStat) return copyFile(srcStat, src, dest, opts);
477
+ if (opts.overwrite) {
478
+ await fs2.unlink(dest);
479
+ return copyFile(srcStat, src, dest, opts);
480
+ }
481
+ if (opts.errorOnExist) {
482
+ throw new Error(`'${dest}' already exists`);
483
+ }
484
+ }
485
+ async function copyFile(srcStat, src, dest, opts) {
486
+ await fs2.copyFile(src, dest);
487
+ if (opts.preserveTimestamps) {
488
+ if (fileIsNotWritable(srcStat.mode)) {
489
+ await makeFileWritable(dest, srcStat.mode);
490
+ }
491
+ const updatedSrcStat = await fs2.stat(src);
492
+ await utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime);
493
+ }
494
+ return fs2.chmod(dest, srcStat.mode);
495
+ }
496
+ function fileIsNotWritable(srcMode) {
497
+ return (srcMode & 128) === 0;
498
+ }
499
+ function makeFileWritable(dest, srcMode) {
500
+ return fs2.chmod(dest, srcMode | 128);
501
+ }
502
+ async function onDir(srcStat, destStat, src, dest, opts) {
503
+ if (!destStat) {
504
+ await fs2.mkdir(dest);
505
+ }
506
+ await asyncIteratorConcurrentProcess(await fs2.opendir(src), async (item) => {
507
+ const srcItem = path$1.join(src, item.name);
508
+ const destItem = path$1.join(dest, item.name);
509
+ const include = await runFilter(srcItem, destItem, opts);
510
+ if (include) {
511
+ const { destStat: destStat2 } = await stat2.checkPaths(srcItem, destItem, "copy", opts);
512
+ await getStatsAndPerformCopy(destStat2, srcItem, destItem, opts);
513
+ }
514
+ });
515
+ if (!destStat) {
516
+ await fs2.chmod(dest, srcStat.mode);
517
+ }
518
+ }
519
+ async function onLink(destStat, src, dest, opts) {
520
+ let resolvedSrc = await fs2.readlink(src);
521
+ if (opts.dereference) {
522
+ resolvedSrc = path$1.resolve(process.cwd(), resolvedSrc);
523
+ }
524
+ if (!destStat) {
525
+ return fs2.symlink(resolvedSrc, dest);
526
+ }
527
+ let resolvedDest = null;
528
+ try {
529
+ resolvedDest = await fs2.readlink(dest);
530
+ } catch (e) {
531
+ if (e.code === "EINVAL" || e.code === "UNKNOWN") return fs2.symlink(resolvedSrc, dest);
532
+ throw e;
533
+ }
534
+ if (opts.dereference) {
535
+ resolvedDest = path$1.resolve(process.cwd(), resolvedDest);
536
+ }
537
+ if (resolvedSrc !== resolvedDest) {
538
+ if (stat2.isSrcSubdir(resolvedSrc, resolvedDest)) {
539
+ throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`);
540
+ }
541
+ if (stat2.isSrcSubdir(resolvedDest, resolvedSrc)) {
542
+ throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`);
543
+ }
544
+ }
545
+ await fs2.unlink(dest);
546
+ return fs2.symlink(resolvedSrc, dest);
547
+ }
548
+ copy_1 = copy2;
549
+ return copy_1;
550
+ }
551
+ var copySync_1;
552
+ var hasRequiredCopySync;
553
+ function requireCopySync() {
554
+ if (hasRequiredCopySync) return copySync_1;
555
+ hasRequiredCopySync = 1;
556
+ const fs2 = requireGracefulFs();
557
+ const path$1 = path;
558
+ const mkdirsSync = requireMkdirs().mkdirsSync;
559
+ const utimesMillisSync = requireUtimes().utimesMillisSync;
560
+ const stat2 = /* @__PURE__ */ requireStat();
561
+ function copySync(src, dest, opts) {
562
+ if (typeof opts === "function") {
563
+ opts = { filter: opts };
564
+ }
565
+ opts = opts || {};
566
+ opts.clobber = "clobber" in opts ? !!opts.clobber : true;
567
+ opts.overwrite = "overwrite" in opts ? !!opts.overwrite : opts.clobber;
568
+ if (opts.preserveTimestamps && process.arch === "ia32") {
569
+ process.emitWarning(
570
+ "Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269",
571
+ "Warning",
572
+ "fs-extra-WARN0002"
573
+ );
574
+ }
575
+ const { srcStat, destStat } = stat2.checkPathsSync(src, dest, "copy", opts);
576
+ stat2.checkParentPathsSync(src, srcStat, dest, "copy");
577
+ if (opts.filter && !opts.filter(src, dest)) return;
578
+ const destParent = path$1.dirname(dest);
579
+ if (!fs2.existsSync(destParent)) mkdirsSync(destParent);
580
+ return getStats(destStat, src, dest, opts);
581
+ }
582
+ function getStats(destStat, src, dest, opts) {
583
+ const statSync = opts.dereference ? fs2.statSync : fs2.lstatSync;
584
+ const srcStat = statSync(src);
585
+ if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts);
586
+ else if (srcStat.isFile() || srcStat.isCharacterDevice() || srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts);
587
+ else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts);
588
+ else if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`);
589
+ else if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`);
590
+ throw new Error(`Unknown file: ${src}`);
591
+ }
592
+ function onFile(srcStat, destStat, src, dest, opts) {
593
+ if (!destStat) return copyFile(srcStat, src, dest, opts);
594
+ return mayCopyFile(srcStat, src, dest, opts);
595
+ }
596
+ function mayCopyFile(srcStat, src, dest, opts) {
597
+ if (opts.overwrite) {
598
+ fs2.unlinkSync(dest);
599
+ return copyFile(srcStat, src, dest, opts);
600
+ } else if (opts.errorOnExist) {
601
+ throw new Error(`'${dest}' already exists`);
602
+ }
603
+ }
604
+ function copyFile(srcStat, src, dest, opts) {
605
+ fs2.copyFileSync(src, dest);
606
+ if (opts.preserveTimestamps) handleTimestamps(srcStat.mode, src, dest);
607
+ return setDestMode(dest, srcStat.mode);
608
+ }
609
+ function handleTimestamps(srcMode, src, dest) {
610
+ if (fileIsNotWritable(srcMode)) makeFileWritable(dest, srcMode);
611
+ return setDestTimestamps(src, dest);
612
+ }
613
+ function fileIsNotWritable(srcMode) {
614
+ return (srcMode & 128) === 0;
615
+ }
616
+ function makeFileWritable(dest, srcMode) {
617
+ return setDestMode(dest, srcMode | 128);
618
+ }
619
+ function setDestMode(dest, srcMode) {
620
+ return fs2.chmodSync(dest, srcMode);
621
+ }
622
+ function setDestTimestamps(src, dest) {
623
+ const updatedSrcStat = fs2.statSync(src);
624
+ return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime);
625
+ }
626
+ function onDir(srcStat, destStat, src, dest, opts) {
627
+ if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts);
628
+ return copyDir(src, dest, opts);
629
+ }
630
+ function mkDirAndCopy(srcMode, src, dest, opts) {
631
+ fs2.mkdirSync(dest);
632
+ copyDir(src, dest, opts);
633
+ return setDestMode(dest, srcMode);
634
+ }
635
+ function copyDir(src, dest, opts) {
636
+ const dir = fs2.opendirSync(src);
637
+ try {
638
+ let dirent;
639
+ while ((dirent = dir.readSync()) !== null) {
640
+ copyDirItem(dirent.name, src, dest, opts);
641
+ }
642
+ } finally {
643
+ dir.closeSync();
644
+ }
645
+ }
646
+ function copyDirItem(item, src, dest, opts) {
647
+ const srcItem = path$1.join(src, item);
648
+ const destItem = path$1.join(dest, item);
649
+ if (opts.filter && !opts.filter(srcItem, destItem)) return;
650
+ const { destStat } = stat2.checkPathsSync(srcItem, destItem, "copy", opts);
651
+ return getStats(destStat, srcItem, destItem, opts);
652
+ }
653
+ function onLink(destStat, src, dest, opts) {
654
+ let resolvedSrc = fs2.readlinkSync(src);
655
+ if (opts.dereference) {
656
+ resolvedSrc = path$1.resolve(process.cwd(), resolvedSrc);
657
+ }
658
+ if (!destStat) {
659
+ return fs2.symlinkSync(resolvedSrc, dest);
660
+ } else {
661
+ let resolvedDest;
662
+ try {
663
+ resolvedDest = fs2.readlinkSync(dest);
664
+ } catch (err) {
665
+ if (err.code === "EINVAL" || err.code === "UNKNOWN") return fs2.symlinkSync(resolvedSrc, dest);
666
+ throw err;
667
+ }
668
+ if (opts.dereference) {
669
+ resolvedDest = path$1.resolve(process.cwd(), resolvedDest);
670
+ }
671
+ if (resolvedSrc !== resolvedDest) {
672
+ if (stat2.isSrcSubdir(resolvedSrc, resolvedDest)) {
673
+ throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`);
674
+ }
675
+ if (stat2.isSrcSubdir(resolvedDest, resolvedSrc)) {
676
+ throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`);
677
+ }
678
+ }
679
+ return copyLink(resolvedSrc, dest);
680
+ }
681
+ }
682
+ function copyLink(resolvedSrc, dest) {
683
+ fs2.unlinkSync(dest);
684
+ return fs2.symlinkSync(resolvedSrc, dest);
685
+ }
686
+ copySync_1 = copySync;
687
+ return copySync_1;
688
+ }
689
+ var copy;
690
+ var hasRequiredCopy;
691
+ function requireCopy() {
692
+ if (hasRequiredCopy) return copy;
693
+ hasRequiredCopy = 1;
694
+ const u = requireUniversalify().fromPromise;
695
+ copy = {
696
+ copy: u(/* @__PURE__ */ requireCopy$1()),
697
+ copySync: /* @__PURE__ */ requireCopySync()
698
+ };
699
+ return copy;
700
+ }
701
+ var remove_1;
702
+ var hasRequiredRemove;
703
+ function requireRemove() {
704
+ if (hasRequiredRemove) return remove_1;
705
+ hasRequiredRemove = 1;
706
+ const fs2 = requireGracefulFs();
707
+ const u = requireUniversalify().fromCallback;
708
+ function remove(path2, callback) {
709
+ fs2.rm(path2, { recursive: true, force: true }, callback);
710
+ }
711
+ function removeSync(path2) {
712
+ fs2.rmSync(path2, { recursive: true, force: true });
713
+ }
714
+ remove_1 = {
715
+ remove: u(remove),
716
+ removeSync
717
+ };
718
+ return remove_1;
719
+ }
720
+ var empty;
721
+ var hasRequiredEmpty;
722
+ function requireEmpty() {
723
+ if (hasRequiredEmpty) return empty;
724
+ hasRequiredEmpty = 1;
725
+ const u = requireUniversalify().fromPromise;
726
+ const fs2 = /* @__PURE__ */ requireFs();
727
+ const path$1 = path;
728
+ const mkdir = /* @__PURE__ */ requireMkdirs();
729
+ const remove = /* @__PURE__ */ requireRemove();
730
+ const emptyDir = u(async function emptyDir2(dir) {
731
+ let items;
732
+ try {
733
+ items = await fs2.readdir(dir);
734
+ } catch {
735
+ return mkdir.mkdirs(dir);
736
+ }
737
+ return Promise.all(items.map((item) => remove.remove(path$1.join(dir, item))));
738
+ });
739
+ function emptyDirSync(dir) {
740
+ let items;
741
+ try {
742
+ items = fs2.readdirSync(dir);
743
+ } catch {
744
+ return mkdir.mkdirsSync(dir);
745
+ }
746
+ items.forEach((item) => {
747
+ item = path$1.join(dir, item);
748
+ remove.removeSync(item);
749
+ });
750
+ }
751
+ empty = {
752
+ emptyDirSync,
753
+ emptydirSync: emptyDirSync,
754
+ emptyDir,
755
+ emptydir: emptyDir
756
+ };
757
+ return empty;
758
+ }
759
+ var file;
760
+ var hasRequiredFile;
761
+ function requireFile() {
762
+ if (hasRequiredFile) return file;
763
+ hasRequiredFile = 1;
764
+ const u = requireUniversalify().fromPromise;
765
+ const path$1 = path;
766
+ const fs2 = /* @__PURE__ */ requireFs();
767
+ const mkdir = /* @__PURE__ */ requireMkdirs();
768
+ async function createFile(file2) {
769
+ let stats;
770
+ try {
771
+ stats = await fs2.stat(file2);
772
+ } catch {
773
+ }
774
+ if (stats && stats.isFile()) return;
775
+ const dir = path$1.dirname(file2);
776
+ let dirStats = null;
777
+ try {
778
+ dirStats = await fs2.stat(dir);
779
+ } catch (err) {
780
+ if (err.code === "ENOENT") {
781
+ await mkdir.mkdirs(dir);
782
+ await fs2.writeFile(file2, "");
783
+ return;
784
+ } else {
785
+ throw err;
786
+ }
787
+ }
788
+ if (dirStats.isDirectory()) {
789
+ await fs2.writeFile(file2, "");
790
+ } else {
791
+ await fs2.readdir(dir);
792
+ }
793
+ }
794
+ function createFileSync(file2) {
795
+ let stats;
796
+ try {
797
+ stats = fs2.statSync(file2);
798
+ } catch {
799
+ }
800
+ if (stats && stats.isFile()) return;
801
+ const dir = path$1.dirname(file2);
802
+ try {
803
+ if (!fs2.statSync(dir).isDirectory()) {
804
+ fs2.readdirSync(dir);
805
+ }
806
+ } catch (err) {
807
+ if (err && err.code === "ENOENT") mkdir.mkdirsSync(dir);
808
+ else throw err;
809
+ }
810
+ fs2.writeFileSync(file2, "");
811
+ }
812
+ file = {
813
+ createFile: u(createFile),
814
+ createFileSync
815
+ };
816
+ return file;
817
+ }
818
+ var link;
819
+ var hasRequiredLink;
820
+ function requireLink() {
821
+ if (hasRequiredLink) return link;
822
+ hasRequiredLink = 1;
823
+ const u = requireUniversalify().fromPromise;
824
+ const path$1 = path;
825
+ const fs2 = /* @__PURE__ */ requireFs();
826
+ const mkdir = /* @__PURE__ */ requireMkdirs();
827
+ const { pathExists } = /* @__PURE__ */ requirePathExists();
828
+ const { areIdentical } = /* @__PURE__ */ requireStat();
829
+ async function createLink(srcpath, dstpath) {
830
+ let dstStat;
831
+ try {
832
+ dstStat = await fs2.lstat(dstpath);
833
+ } catch {
834
+ }
835
+ let srcStat;
836
+ try {
837
+ srcStat = await fs2.lstat(srcpath);
838
+ } catch (err) {
839
+ err.message = err.message.replace("lstat", "ensureLink");
840
+ throw err;
841
+ }
842
+ if (dstStat && areIdentical(srcStat, dstStat)) return;
843
+ const dir = path$1.dirname(dstpath);
844
+ const dirExists = await pathExists(dir);
845
+ if (!dirExists) {
846
+ await mkdir.mkdirs(dir);
847
+ }
848
+ await fs2.link(srcpath, dstpath);
849
+ }
850
+ function createLinkSync(srcpath, dstpath) {
851
+ let dstStat;
852
+ try {
853
+ dstStat = fs2.lstatSync(dstpath);
854
+ } catch {
855
+ }
856
+ try {
857
+ const srcStat = fs2.lstatSync(srcpath);
858
+ if (dstStat && areIdentical(srcStat, dstStat)) return;
859
+ } catch (err) {
860
+ err.message = err.message.replace("lstat", "ensureLink");
861
+ throw err;
862
+ }
863
+ const dir = path$1.dirname(dstpath);
864
+ const dirExists = fs2.existsSync(dir);
865
+ if (dirExists) return fs2.linkSync(srcpath, dstpath);
866
+ mkdir.mkdirsSync(dir);
867
+ return fs2.linkSync(srcpath, dstpath);
868
+ }
869
+ link = {
870
+ createLink: u(createLink),
871
+ createLinkSync
872
+ };
873
+ return link;
874
+ }
875
+ var symlinkPaths_1;
876
+ var hasRequiredSymlinkPaths;
877
+ function requireSymlinkPaths() {
878
+ if (hasRequiredSymlinkPaths) return symlinkPaths_1;
879
+ hasRequiredSymlinkPaths = 1;
880
+ const path$1 = path;
881
+ const fs2 = /* @__PURE__ */ requireFs();
882
+ const { pathExists } = /* @__PURE__ */ requirePathExists();
883
+ const u = requireUniversalify().fromPromise;
884
+ async function symlinkPaths(srcpath, dstpath) {
885
+ if (path$1.isAbsolute(srcpath)) {
886
+ try {
887
+ await fs2.lstat(srcpath);
888
+ } catch (err) {
889
+ err.message = err.message.replace("lstat", "ensureSymlink");
890
+ throw err;
891
+ }
892
+ return {
893
+ toCwd: srcpath,
894
+ toDst: srcpath
895
+ };
896
+ }
897
+ const dstdir = path$1.dirname(dstpath);
898
+ const relativeToDst = path$1.join(dstdir, srcpath);
899
+ const exists = await pathExists(relativeToDst);
900
+ if (exists) {
901
+ return {
902
+ toCwd: relativeToDst,
903
+ toDst: srcpath
904
+ };
905
+ }
906
+ try {
907
+ await fs2.lstat(srcpath);
908
+ } catch (err) {
909
+ err.message = err.message.replace("lstat", "ensureSymlink");
910
+ throw err;
911
+ }
912
+ return {
913
+ toCwd: srcpath,
914
+ toDst: path$1.relative(dstdir, srcpath)
915
+ };
916
+ }
917
+ function symlinkPathsSync(srcpath, dstpath) {
918
+ if (path$1.isAbsolute(srcpath)) {
919
+ const exists2 = fs2.existsSync(srcpath);
920
+ if (!exists2) throw new Error("absolute srcpath does not exist");
921
+ return {
922
+ toCwd: srcpath,
923
+ toDst: srcpath
924
+ };
925
+ }
926
+ const dstdir = path$1.dirname(dstpath);
927
+ const relativeToDst = path$1.join(dstdir, srcpath);
928
+ const exists = fs2.existsSync(relativeToDst);
929
+ if (exists) {
930
+ return {
931
+ toCwd: relativeToDst,
932
+ toDst: srcpath
933
+ };
934
+ }
935
+ const srcExists = fs2.existsSync(srcpath);
936
+ if (!srcExists) throw new Error("relative srcpath does not exist");
937
+ return {
938
+ toCwd: srcpath,
939
+ toDst: path$1.relative(dstdir, srcpath)
940
+ };
941
+ }
942
+ symlinkPaths_1 = {
943
+ symlinkPaths: u(symlinkPaths),
944
+ symlinkPathsSync
945
+ };
946
+ return symlinkPaths_1;
947
+ }
948
+ var symlinkType_1;
949
+ var hasRequiredSymlinkType;
950
+ function requireSymlinkType() {
951
+ if (hasRequiredSymlinkType) return symlinkType_1;
952
+ hasRequiredSymlinkType = 1;
953
+ const fs2 = /* @__PURE__ */ requireFs();
954
+ const u = requireUniversalify().fromPromise;
955
+ async function symlinkType(srcpath, type) {
956
+ if (type) return type;
957
+ let stats;
958
+ try {
959
+ stats = await fs2.lstat(srcpath);
960
+ } catch {
961
+ return "file";
962
+ }
963
+ return stats && stats.isDirectory() ? "dir" : "file";
964
+ }
965
+ function symlinkTypeSync(srcpath, type) {
966
+ if (type) return type;
967
+ let stats;
968
+ try {
969
+ stats = fs2.lstatSync(srcpath);
970
+ } catch {
971
+ return "file";
972
+ }
973
+ return stats && stats.isDirectory() ? "dir" : "file";
974
+ }
975
+ symlinkType_1 = {
976
+ symlinkType: u(symlinkType),
977
+ symlinkTypeSync
978
+ };
979
+ return symlinkType_1;
980
+ }
981
+ var symlink;
982
+ var hasRequiredSymlink;
983
+ function requireSymlink() {
984
+ if (hasRequiredSymlink) return symlink;
985
+ hasRequiredSymlink = 1;
986
+ const u = requireUniversalify().fromPromise;
987
+ const path$1 = path;
988
+ const fs2 = /* @__PURE__ */ requireFs();
989
+ const { mkdirs: mkdirs2, mkdirsSync } = /* @__PURE__ */ requireMkdirs();
990
+ const { symlinkPaths, symlinkPathsSync } = /* @__PURE__ */ requireSymlinkPaths();
991
+ const { symlinkType, symlinkTypeSync } = /* @__PURE__ */ requireSymlinkType();
992
+ const { pathExists } = /* @__PURE__ */ requirePathExists();
993
+ const { areIdentical } = /* @__PURE__ */ requireStat();
994
+ async function createSymlink(srcpath, dstpath, type) {
995
+ let stats;
996
+ try {
997
+ stats = await fs2.lstat(dstpath);
998
+ } catch {
999
+ }
1000
+ if (stats && stats.isSymbolicLink()) {
1001
+ const [srcStat, dstStat] = await Promise.all([
1002
+ fs2.stat(srcpath),
1003
+ fs2.stat(dstpath)
1004
+ ]);
1005
+ if (areIdentical(srcStat, dstStat)) return;
1006
+ }
1007
+ const relative = await symlinkPaths(srcpath, dstpath);
1008
+ srcpath = relative.toDst;
1009
+ const toType = await symlinkType(relative.toCwd, type);
1010
+ const dir = path$1.dirname(dstpath);
1011
+ if (!await pathExists(dir)) {
1012
+ await mkdirs2(dir);
1013
+ }
1014
+ return fs2.symlink(srcpath, dstpath, toType);
1015
+ }
1016
+ function createSymlinkSync(srcpath, dstpath, type) {
1017
+ let stats;
1018
+ try {
1019
+ stats = fs2.lstatSync(dstpath);
1020
+ } catch {
1021
+ }
1022
+ if (stats && stats.isSymbolicLink()) {
1023
+ const srcStat = fs2.statSync(srcpath);
1024
+ const dstStat = fs2.statSync(dstpath);
1025
+ if (areIdentical(srcStat, dstStat)) return;
1026
+ }
1027
+ const relative = symlinkPathsSync(srcpath, dstpath);
1028
+ srcpath = relative.toDst;
1029
+ type = symlinkTypeSync(relative.toCwd, type);
1030
+ const dir = path$1.dirname(dstpath);
1031
+ const exists = fs2.existsSync(dir);
1032
+ if (exists) return fs2.symlinkSync(srcpath, dstpath, type);
1033
+ mkdirsSync(dir);
1034
+ return fs2.symlinkSync(srcpath, dstpath, type);
1035
+ }
1036
+ symlink = {
1037
+ createSymlink: u(createSymlink),
1038
+ createSymlinkSync
1039
+ };
1040
+ return symlink;
1041
+ }
1042
+ var ensure;
1043
+ var hasRequiredEnsure;
1044
+ function requireEnsure() {
1045
+ if (hasRequiredEnsure) return ensure;
1046
+ hasRequiredEnsure = 1;
1047
+ const { createFile, createFileSync } = /* @__PURE__ */ requireFile();
1048
+ const { createLink, createLinkSync } = /* @__PURE__ */ requireLink();
1049
+ const { createSymlink, createSymlinkSync } = /* @__PURE__ */ requireSymlink();
1050
+ ensure = {
1051
+ // file
1052
+ createFile,
1053
+ createFileSync,
1054
+ ensureFile: createFile,
1055
+ ensureFileSync: createFileSync,
1056
+ // link
1057
+ createLink,
1058
+ createLinkSync,
1059
+ ensureLink: createLink,
1060
+ ensureLinkSync: createLinkSync,
1061
+ // symlink
1062
+ createSymlink,
1063
+ createSymlinkSync,
1064
+ ensureSymlink: createSymlink,
1065
+ ensureSymlinkSync: createSymlinkSync
1066
+ };
1067
+ return ensure;
1068
+ }
1069
+ var utils;
1070
+ var hasRequiredUtils;
1071
+ function requireUtils() {
1072
+ if (hasRequiredUtils) return utils;
1073
+ hasRequiredUtils = 1;
1074
+ function stringify(obj, { EOL = "\n", finalEOL = true, replacer = null, spaces } = {}) {
1075
+ const EOF = finalEOL ? EOL : "";
1076
+ const str = JSON.stringify(obj, replacer, spaces);
1077
+ return str.replace(/\n/g, EOL) + EOF;
1078
+ }
1079
+ function stripBom(content) {
1080
+ if (Buffer.isBuffer(content)) content = content.toString("utf8");
1081
+ return content.replace(/^\uFEFF/, "");
1082
+ }
1083
+ utils = { stringify, stripBom };
1084
+ return utils;
1085
+ }
1086
+ var jsonfile_1;
1087
+ var hasRequiredJsonfile$1;
1088
+ function requireJsonfile$1() {
1089
+ if (hasRequiredJsonfile$1) return jsonfile_1;
1090
+ hasRequiredJsonfile$1 = 1;
1091
+ let _fs;
1092
+ try {
1093
+ _fs = requireGracefulFs();
1094
+ } catch (_) {
1095
+ _fs = fs$2;
1096
+ }
1097
+ const universalify2 = requireUniversalify();
1098
+ const { stringify, stripBom } = requireUtils();
1099
+ async function _readFile(file2, options = {}) {
1100
+ if (typeof options === "string") {
1101
+ options = { encoding: options };
1102
+ }
1103
+ const fs2 = options.fs || _fs;
1104
+ const shouldThrow = "throws" in options ? options.throws : true;
1105
+ let data = await universalify2.fromCallback(fs2.readFile)(file2, options);
1106
+ data = stripBom(data);
1107
+ let obj;
1108
+ try {
1109
+ obj = JSON.parse(data, options ? options.reviver : null);
1110
+ } catch (err) {
1111
+ if (shouldThrow) {
1112
+ err.message = `${file2}: ${err.message}`;
1113
+ throw err;
1114
+ } else {
1115
+ return null;
1116
+ }
1117
+ }
1118
+ return obj;
1119
+ }
1120
+ const readFile = universalify2.fromPromise(_readFile);
1121
+ function readFileSync(file2, options = {}) {
1122
+ if (typeof options === "string") {
1123
+ options = { encoding: options };
1124
+ }
1125
+ const fs2 = options.fs || _fs;
1126
+ const shouldThrow = "throws" in options ? options.throws : true;
1127
+ try {
1128
+ let content = fs2.readFileSync(file2, options);
1129
+ content = stripBom(content);
1130
+ return JSON.parse(content, options.reviver);
1131
+ } catch (err) {
1132
+ if (shouldThrow) {
1133
+ err.message = `${file2}: ${err.message}`;
1134
+ throw err;
1135
+ } else {
1136
+ return null;
1137
+ }
1138
+ }
1139
+ }
1140
+ async function _writeFile(file2, obj, options = {}) {
1141
+ const fs2 = options.fs || _fs;
1142
+ const str = stringify(obj, options);
1143
+ await universalify2.fromCallback(fs2.writeFile)(file2, str, options);
1144
+ }
1145
+ const writeFile = universalify2.fromPromise(_writeFile);
1146
+ function writeFileSync(file2, obj, options = {}) {
1147
+ const fs2 = options.fs || _fs;
1148
+ const str = stringify(obj, options);
1149
+ return fs2.writeFileSync(file2, str, options);
1150
+ }
1151
+ const jsonfile2 = {
1152
+ readFile,
1153
+ readFileSync,
1154
+ writeFile,
1155
+ writeFileSync
1156
+ };
1157
+ jsonfile_1 = jsonfile2;
1158
+ return jsonfile_1;
1159
+ }
1160
+ var jsonfile;
1161
+ var hasRequiredJsonfile;
1162
+ function requireJsonfile() {
1163
+ if (hasRequiredJsonfile) return jsonfile;
1164
+ hasRequiredJsonfile = 1;
1165
+ const jsonFile = requireJsonfile$1();
1166
+ jsonfile = {
1167
+ // jsonfile exports
1168
+ readJson: jsonFile.readFile,
1169
+ readJsonSync: jsonFile.readFileSync,
1170
+ writeJson: jsonFile.writeFile,
1171
+ writeJsonSync: jsonFile.writeFileSync
1172
+ };
1173
+ return jsonfile;
1174
+ }
1175
+ var outputFile_1;
1176
+ var hasRequiredOutputFile;
1177
+ function requireOutputFile() {
1178
+ if (hasRequiredOutputFile) return outputFile_1;
1179
+ hasRequiredOutputFile = 1;
1180
+ const u = requireUniversalify().fromPromise;
1181
+ const fs2 = /* @__PURE__ */ requireFs();
1182
+ const path$1 = path;
1183
+ const mkdir = /* @__PURE__ */ requireMkdirs();
1184
+ const pathExists = requirePathExists().pathExists;
1185
+ async function outputFile(file2, data, encoding = "utf-8") {
1186
+ const dir = path$1.dirname(file2);
1187
+ if (!await pathExists(dir)) {
1188
+ await mkdir.mkdirs(dir);
1189
+ }
1190
+ return fs2.writeFile(file2, data, encoding);
1191
+ }
1192
+ function outputFileSync(file2, ...args) {
1193
+ const dir = path$1.dirname(file2);
1194
+ if (!fs2.existsSync(dir)) {
1195
+ mkdir.mkdirsSync(dir);
1196
+ }
1197
+ fs2.writeFileSync(file2, ...args);
1198
+ }
1199
+ outputFile_1 = {
1200
+ outputFile: u(outputFile),
1201
+ outputFileSync
1202
+ };
1203
+ return outputFile_1;
1204
+ }
1205
+ var outputJson_1;
1206
+ var hasRequiredOutputJson;
1207
+ function requireOutputJson() {
1208
+ if (hasRequiredOutputJson) return outputJson_1;
1209
+ hasRequiredOutputJson = 1;
1210
+ const { stringify } = requireUtils();
1211
+ const { outputFile } = /* @__PURE__ */ requireOutputFile();
1212
+ async function outputJson(file2, data, options = {}) {
1213
+ const str = stringify(data, options);
1214
+ await outputFile(file2, str, options);
1215
+ }
1216
+ outputJson_1 = outputJson;
1217
+ return outputJson_1;
1218
+ }
1219
+ var outputJsonSync_1;
1220
+ var hasRequiredOutputJsonSync;
1221
+ function requireOutputJsonSync() {
1222
+ if (hasRequiredOutputJsonSync) return outputJsonSync_1;
1223
+ hasRequiredOutputJsonSync = 1;
1224
+ const { stringify } = requireUtils();
1225
+ const { outputFileSync } = /* @__PURE__ */ requireOutputFile();
1226
+ function outputJsonSync(file2, data, options) {
1227
+ const str = stringify(data, options);
1228
+ outputFileSync(file2, str, options);
1229
+ }
1230
+ outputJsonSync_1 = outputJsonSync;
1231
+ return outputJsonSync_1;
1232
+ }
1233
+ var json;
1234
+ var hasRequiredJson;
1235
+ function requireJson() {
1236
+ if (hasRequiredJson) return json;
1237
+ hasRequiredJson = 1;
1238
+ const u = requireUniversalify().fromPromise;
1239
+ const jsonFile = /* @__PURE__ */ requireJsonfile();
1240
+ jsonFile.outputJson = u(/* @__PURE__ */ requireOutputJson());
1241
+ jsonFile.outputJsonSync = /* @__PURE__ */ requireOutputJsonSync();
1242
+ jsonFile.outputJSON = jsonFile.outputJson;
1243
+ jsonFile.outputJSONSync = jsonFile.outputJsonSync;
1244
+ jsonFile.writeJSON = jsonFile.writeJson;
1245
+ jsonFile.writeJSONSync = jsonFile.writeJsonSync;
1246
+ jsonFile.readJSON = jsonFile.readJson;
1247
+ jsonFile.readJSONSync = jsonFile.readJsonSync;
1248
+ json = jsonFile;
1249
+ return json;
1250
+ }
1251
+ var move_1;
1252
+ var hasRequiredMove$1;
1253
+ function requireMove$1() {
1254
+ if (hasRequiredMove$1) return move_1;
1255
+ hasRequiredMove$1 = 1;
1256
+ const fs2 = /* @__PURE__ */ requireFs();
1257
+ const path$1 = path;
1258
+ const { copy: copy2 } = /* @__PURE__ */ requireCopy();
1259
+ const { remove } = /* @__PURE__ */ requireRemove();
1260
+ const { mkdirp } = /* @__PURE__ */ requireMkdirs();
1261
+ const { pathExists } = /* @__PURE__ */ requirePathExists();
1262
+ const stat2 = /* @__PURE__ */ requireStat();
1263
+ async function move2(src, dest, opts = {}) {
1264
+ const overwrite = opts.overwrite || opts.clobber || false;
1265
+ const { srcStat, isChangingCase = false } = await stat2.checkPaths(src, dest, "move", opts);
1266
+ await stat2.checkParentPaths(src, srcStat, dest, "move");
1267
+ const destParent = path$1.dirname(dest);
1268
+ const parsedParentPath = path$1.parse(destParent);
1269
+ if (parsedParentPath.root !== destParent) {
1270
+ await mkdirp(destParent);
1271
+ }
1272
+ return doRename(src, dest, overwrite, isChangingCase);
1273
+ }
1274
+ async function doRename(src, dest, overwrite, isChangingCase) {
1275
+ if (!isChangingCase) {
1276
+ if (overwrite) {
1277
+ await remove(dest);
1278
+ } else if (await pathExists(dest)) {
1279
+ throw new Error("dest already exists.");
1280
+ }
1281
+ }
1282
+ try {
1283
+ await fs2.rename(src, dest);
1284
+ } catch (err) {
1285
+ if (err.code !== "EXDEV") {
1286
+ throw err;
1287
+ }
1288
+ await moveAcrossDevice(src, dest, overwrite);
1289
+ }
1290
+ }
1291
+ async function moveAcrossDevice(src, dest, overwrite) {
1292
+ const opts = {
1293
+ overwrite,
1294
+ errorOnExist: true,
1295
+ preserveTimestamps: true
1296
+ };
1297
+ await copy2(src, dest, opts);
1298
+ return remove(src);
1299
+ }
1300
+ move_1 = move2;
1301
+ return move_1;
1302
+ }
1303
+ var moveSync_1;
1304
+ var hasRequiredMoveSync;
1305
+ function requireMoveSync() {
1306
+ if (hasRequiredMoveSync) return moveSync_1;
1307
+ hasRequiredMoveSync = 1;
1308
+ const fs2 = requireGracefulFs();
1309
+ const path$1 = path;
1310
+ const copySync = requireCopy().copySync;
1311
+ const removeSync = requireRemove().removeSync;
1312
+ const mkdirpSync = requireMkdirs().mkdirpSync;
1313
+ const stat2 = /* @__PURE__ */ requireStat();
1314
+ function moveSync(src, dest, opts) {
1315
+ opts = opts || {};
1316
+ const overwrite = opts.overwrite || opts.clobber || false;
1317
+ const { srcStat, isChangingCase = false } = stat2.checkPathsSync(src, dest, "move", opts);
1318
+ stat2.checkParentPathsSync(src, srcStat, dest, "move");
1319
+ if (!isParentRoot(dest)) mkdirpSync(path$1.dirname(dest));
1320
+ return doRename(src, dest, overwrite, isChangingCase);
1321
+ }
1322
+ function isParentRoot(dest) {
1323
+ const parent = path$1.dirname(dest);
1324
+ const parsedPath = path$1.parse(parent);
1325
+ return parsedPath.root === parent;
1326
+ }
1327
+ function doRename(src, dest, overwrite, isChangingCase) {
1328
+ if (isChangingCase) return rename(src, dest, overwrite);
1329
+ if (overwrite) {
1330
+ removeSync(dest);
1331
+ return rename(src, dest, overwrite);
1332
+ }
1333
+ if (fs2.existsSync(dest)) throw new Error("dest already exists.");
1334
+ return rename(src, dest, overwrite);
1335
+ }
1336
+ function rename(src, dest, overwrite) {
1337
+ try {
1338
+ fs2.renameSync(src, dest);
1339
+ } catch (err) {
1340
+ if (err.code !== "EXDEV") throw err;
1341
+ return moveAcrossDevice(src, dest, overwrite);
1342
+ }
1343
+ }
1344
+ function moveAcrossDevice(src, dest, overwrite) {
1345
+ const opts = {
1346
+ overwrite,
1347
+ errorOnExist: true,
1348
+ preserveTimestamps: true
1349
+ };
1350
+ copySync(src, dest, opts);
1351
+ return removeSync(src);
1352
+ }
1353
+ moveSync_1 = moveSync;
1354
+ return moveSync_1;
1355
+ }
1356
+ var move;
1357
+ var hasRequiredMove;
1358
+ function requireMove() {
1359
+ if (hasRequiredMove) return move;
1360
+ hasRequiredMove = 1;
1361
+ const u = requireUniversalify().fromPromise;
1362
+ move = {
1363
+ move: u(/* @__PURE__ */ requireMove$1()),
1364
+ moveSync: /* @__PURE__ */ requireMoveSync()
1365
+ };
1366
+ return move;
1367
+ }
1368
+ var lib;
1369
+ var hasRequiredLib;
1370
+ function requireLib() {
1371
+ if (hasRequiredLib) return lib;
1372
+ hasRequiredLib = 1;
1373
+ lib = {
1374
+ // Export promiseified graceful-fs:
1375
+ .../* @__PURE__ */ requireFs(),
1376
+ // Export extra methods:
1377
+ .../* @__PURE__ */ requireCopy(),
1378
+ .../* @__PURE__ */ requireEmpty(),
1379
+ .../* @__PURE__ */ requireEnsure(),
1380
+ .../* @__PURE__ */ requireJson(),
1381
+ .../* @__PURE__ */ requireMkdirs(),
1382
+ .../* @__PURE__ */ requireMove(),
1383
+ .../* @__PURE__ */ requireOutputFile(),
1384
+ .../* @__PURE__ */ requirePathExists(),
1385
+ .../* @__PURE__ */ requireRemove()
1386
+ };
1387
+ return lib;
1388
+ }
1389
+ var libExports = /* @__PURE__ */ requireLib();
1390
+ const fs = /* @__PURE__ */ getDefaultExportFromCjs(libExports);
1391
+ export {
1392
+ fs as f
1393
+ };