@andersbakken/fisk 4.0.29 → 4.0.31
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/builder/fisk-builder.js +3117 -3117
- package/monitor/fisk-monitor.js +348 -335
- package/package.json +2 -2
- package/scheduler/fisk-scheduler.js +634 -621
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var fs$
|
|
4
|
+
var fs$o = require('fs');
|
|
5
5
|
var assert$1 = require('assert');
|
|
6
6
|
var require$$0$3 = require('constants');
|
|
7
7
|
var require$$0$4 = require('stream');
|
|
8
8
|
var require$$4$1 = require('util');
|
|
9
|
-
var path$
|
|
9
|
+
var path$k = require('path');
|
|
10
10
|
var require$$1$1 = require('os');
|
|
11
11
|
var child_process = require('child_process');
|
|
12
12
|
var require$$0$5 = require('events');
|
|
@@ -26,12 +26,12 @@ var posix = require('posix');
|
|
|
26
26
|
|
|
27
27
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
28
28
|
|
|
29
|
-
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs$
|
|
29
|
+
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs$o);
|
|
30
30
|
var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert$1);
|
|
31
31
|
var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0$3);
|
|
32
32
|
var require$$0__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$0$4);
|
|
33
33
|
var require$$4__default = /*#__PURE__*/_interopDefaultLegacy(require$$4$1);
|
|
34
|
-
var path__default = /*#__PURE__*/_interopDefaultLegacy(path$
|
|
34
|
+
var path__default = /*#__PURE__*/_interopDefaultLegacy(path$k);
|
|
35
35
|
var require$$1__default = /*#__PURE__*/_interopDefaultLegacy(require$$1$1);
|
|
36
36
|
var child_process__default = /*#__PURE__*/_interopDefaultLegacy(child_process);
|
|
37
37
|
var require$$0__default$2 = /*#__PURE__*/_interopDefaultLegacy(require$$0$5);
|
|
@@ -231,7 +231,7 @@ var lib$3 = {
|
|
|
231
231
|
set exports(v){ libExports$1 = v; },
|
|
232
232
|
};
|
|
233
233
|
|
|
234
|
-
var fs$
|
|
234
|
+
var fs$n = {};
|
|
235
235
|
|
|
236
236
|
var universalify = {};
|
|
237
237
|
|
|
@@ -756,7 +756,7 @@ function clone$1 (obj) {
|
|
|
756
756
|
return copy
|
|
757
757
|
}
|
|
758
758
|
|
|
759
|
-
var fs$
|
|
759
|
+
var fs$m = fs__default["default"];
|
|
760
760
|
var polyfills = polyfills$1;
|
|
761
761
|
var legacy = legacyStreams;
|
|
762
762
|
var clone = clone_1;
|
|
@@ -798,18 +798,18 @@ else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || ''))
|
|
|
798
798
|
};
|
|
799
799
|
|
|
800
800
|
// Once time initialization
|
|
801
|
-
if (!fs$
|
|
801
|
+
if (!fs$m[gracefulQueue]) {
|
|
802
802
|
// This queue can be shared by multiple loaded instances
|
|
803
803
|
var queue = commonjsGlobal[gracefulQueue] || [];
|
|
804
|
-
publishQueue(fs$
|
|
804
|
+
publishQueue(fs$m, queue);
|
|
805
805
|
|
|
806
806
|
// Patch fs.close/closeSync to shared queue version, because we need
|
|
807
807
|
// to retry() whenever a close happens *anywhere* in the program.
|
|
808
808
|
// This is essential when multiple graceful-fs instances are
|
|
809
809
|
// in play at the same time.
|
|
810
|
-
fs$
|
|
810
|
+
fs$m.close = (function (fs$close) {
|
|
811
811
|
function close (fd, cb) {
|
|
812
|
-
return fs$close.call(fs$
|
|
812
|
+
return fs$close.call(fs$m, fd, function (err) {
|
|
813
813
|
// This function uses the graceful-fs shared queue
|
|
814
814
|
if (!err) {
|
|
815
815
|
resetQueue();
|
|
@@ -824,12 +824,12 @@ if (!fs$n[gracefulQueue]) {
|
|
|
824
824
|
value: fs$close
|
|
825
825
|
});
|
|
826
826
|
return close
|
|
827
|
-
})(fs$
|
|
827
|
+
})(fs$m.close);
|
|
828
828
|
|
|
829
|
-
fs$
|
|
829
|
+
fs$m.closeSync = (function (fs$closeSync) {
|
|
830
830
|
function closeSync (fd) {
|
|
831
831
|
// This function uses the graceful-fs shared queue
|
|
832
|
-
fs$closeSync.apply(fs$
|
|
832
|
+
fs$closeSync.apply(fs$m, arguments);
|
|
833
833
|
resetQueue();
|
|
834
834
|
}
|
|
835
835
|
|
|
@@ -837,24 +837,24 @@ if (!fs$n[gracefulQueue]) {
|
|
|
837
837
|
value: fs$closeSync
|
|
838
838
|
});
|
|
839
839
|
return closeSync
|
|
840
|
-
})(fs$
|
|
840
|
+
})(fs$m.closeSync);
|
|
841
841
|
|
|
842
842
|
if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) {
|
|
843
843
|
process.on('exit', function() {
|
|
844
|
-
debug$7(fs$
|
|
845
|
-
assert__default["default"].equal(fs$
|
|
844
|
+
debug$7(fs$m[gracefulQueue]);
|
|
845
|
+
assert__default["default"].equal(fs$m[gracefulQueue].length, 0);
|
|
846
846
|
});
|
|
847
847
|
}
|
|
848
848
|
}
|
|
849
849
|
|
|
850
850
|
if (!commonjsGlobal[gracefulQueue]) {
|
|
851
|
-
publishQueue(commonjsGlobal, fs$
|
|
851
|
+
publishQueue(commonjsGlobal, fs$m[gracefulQueue]);
|
|
852
852
|
}
|
|
853
853
|
|
|
854
|
-
var gracefulFs = patch(clone(fs$
|
|
855
|
-
if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs$
|
|
856
|
-
gracefulFs = patch(fs$
|
|
857
|
-
fs$
|
|
854
|
+
var gracefulFs = patch(clone(fs$m));
|
|
855
|
+
if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs$m.__patched) {
|
|
856
|
+
gracefulFs = patch(fs$m);
|
|
857
|
+
fs$m.__patched = true;
|
|
858
858
|
}
|
|
859
859
|
|
|
860
860
|
function patch (fs) {
|
|
@@ -1128,7 +1128,7 @@ function patch (fs) {
|
|
|
1128
1128
|
|
|
1129
1129
|
function enqueue (elem) {
|
|
1130
1130
|
debug$7('ENQUEUE', elem[0].name, elem[1]);
|
|
1131
|
-
fs$
|
|
1131
|
+
fs$m[gracefulQueue].push(elem);
|
|
1132
1132
|
retry();
|
|
1133
1133
|
}
|
|
1134
1134
|
|
|
@@ -1140,12 +1140,12 @@ var retryTimer;
|
|
|
1140
1140
|
// delay between attempts so that we'll retry these jobs sooner
|
|
1141
1141
|
function resetQueue () {
|
|
1142
1142
|
var now = Date.now();
|
|
1143
|
-
for (var i = 0; i < fs$
|
|
1143
|
+
for (var i = 0; i < fs$m[gracefulQueue].length; ++i) {
|
|
1144
1144
|
// entries that are only a length of 2 are from an older version, don't
|
|
1145
1145
|
// bother modifying those since they'll be retried anyway.
|
|
1146
|
-
if (fs$
|
|
1147
|
-
fs$
|
|
1148
|
-
fs$
|
|
1146
|
+
if (fs$m[gracefulQueue][i].length > 2) {
|
|
1147
|
+
fs$m[gracefulQueue][i][3] = now; // startTime
|
|
1148
|
+
fs$m[gracefulQueue][i][4] = now; // lastTime
|
|
1149
1149
|
}
|
|
1150
1150
|
}
|
|
1151
1151
|
// call retry to make sure we're actively processing the queue
|
|
@@ -1157,10 +1157,10 @@ function retry () {
|
|
|
1157
1157
|
clearTimeout(retryTimer);
|
|
1158
1158
|
retryTimer = undefined;
|
|
1159
1159
|
|
|
1160
|
-
if (fs$
|
|
1160
|
+
if (fs$m[gracefulQueue].length === 0)
|
|
1161
1161
|
return
|
|
1162
1162
|
|
|
1163
|
-
var elem = fs$
|
|
1163
|
+
var elem = fs$m[gracefulQueue].shift();
|
|
1164
1164
|
var fn = elem[0];
|
|
1165
1165
|
var args = elem[1];
|
|
1166
1166
|
// these items may be unset if they were added by an older graceful-fs
|
|
@@ -1195,7 +1195,7 @@ function retry () {
|
|
|
1195
1195
|
} else {
|
|
1196
1196
|
// if we can't do this job yet, push it to the end of the queue
|
|
1197
1197
|
// and let the next iteration check again
|
|
1198
|
-
fs$
|
|
1198
|
+
fs$m[gracefulQueue].push(elem);
|
|
1199
1199
|
}
|
|
1200
1200
|
}
|
|
1201
1201
|
|
|
@@ -1308,13 +1308,13 @@ function retry () {
|
|
|
1308
1308
|
});
|
|
1309
1309
|
})
|
|
1310
1310
|
};
|
|
1311
|
-
} (fs$
|
|
1311
|
+
} (fs$n));
|
|
1312
1312
|
|
|
1313
|
-
const path$
|
|
1313
|
+
const path$j = path__default["default"];
|
|
1314
1314
|
|
|
1315
1315
|
// get drive on windows
|
|
1316
1316
|
function getRootPath (p) {
|
|
1317
|
-
p = path$
|
|
1317
|
+
p = path$j.normalize(path$j.resolve(p)).split(path$j.sep);
|
|
1318
1318
|
if (p.length > 0) return p[0]
|
|
1319
1319
|
return null
|
|
1320
1320
|
}
|
|
@@ -1334,8 +1334,8 @@ var win32 = {
|
|
|
1334
1334
|
invalidWin32Path: invalidWin32Path$2
|
|
1335
1335
|
};
|
|
1336
1336
|
|
|
1337
|
-
const fs$
|
|
1338
|
-
const path$
|
|
1337
|
+
const fs$l = gracefulFs;
|
|
1338
|
+
const path$i = path__default["default"];
|
|
1339
1339
|
const invalidWin32Path$1 = win32.invalidWin32Path;
|
|
1340
1340
|
|
|
1341
1341
|
const o777$1 = parseInt('0777', 8);
|
|
@@ -1355,7 +1355,7 @@ function mkdirs$2 (p, opts, callback, made) {
|
|
|
1355
1355
|
}
|
|
1356
1356
|
|
|
1357
1357
|
let mode = opts.mode;
|
|
1358
|
-
const xfs = opts.fs || fs$
|
|
1358
|
+
const xfs = opts.fs || fs$l;
|
|
1359
1359
|
|
|
1360
1360
|
if (mode === undefined) {
|
|
1361
1361
|
mode = o777$1 & (~process.umask());
|
|
@@ -1363,7 +1363,7 @@ function mkdirs$2 (p, opts, callback, made) {
|
|
|
1363
1363
|
if (!made) made = null;
|
|
1364
1364
|
|
|
1365
1365
|
callback = callback || function () {};
|
|
1366
|
-
p = path$
|
|
1366
|
+
p = path$i.resolve(p);
|
|
1367
1367
|
|
|
1368
1368
|
xfs.mkdir(p, mode, er => {
|
|
1369
1369
|
if (!er) {
|
|
@@ -1372,8 +1372,8 @@ function mkdirs$2 (p, opts, callback, made) {
|
|
|
1372
1372
|
}
|
|
1373
1373
|
switch (er.code) {
|
|
1374
1374
|
case 'ENOENT':
|
|
1375
|
-
if (path$
|
|
1376
|
-
mkdirs$2(path$
|
|
1375
|
+
if (path$i.dirname(p) === p) return callback(er)
|
|
1376
|
+
mkdirs$2(path$i.dirname(p), opts, (er, made) => {
|
|
1377
1377
|
if (er) callback(er, made);
|
|
1378
1378
|
else mkdirs$2(p, opts, callback, made);
|
|
1379
1379
|
});
|
|
@@ -1396,8 +1396,8 @@ function mkdirs$2 (p, opts, callback, made) {
|
|
|
1396
1396
|
|
|
1397
1397
|
var mkdirs_1$1 = mkdirs$2;
|
|
1398
1398
|
|
|
1399
|
-
const fs$
|
|
1400
|
-
const path$
|
|
1399
|
+
const fs$k = gracefulFs;
|
|
1400
|
+
const path$h = path__default["default"];
|
|
1401
1401
|
const invalidWin32Path = win32.invalidWin32Path;
|
|
1402
1402
|
|
|
1403
1403
|
const o777 = parseInt('0777', 8);
|
|
@@ -1408,7 +1408,7 @@ function mkdirsSync$2 (p, opts, made) {
|
|
|
1408
1408
|
}
|
|
1409
1409
|
|
|
1410
1410
|
let mode = opts.mode;
|
|
1411
|
-
const xfs = opts.fs || fs$
|
|
1411
|
+
const xfs = opts.fs || fs$k;
|
|
1412
1412
|
|
|
1413
1413
|
if (process.platform === 'win32' && invalidWin32Path(p)) {
|
|
1414
1414
|
const errInval = new Error(p + ' contains invalid WIN32 path characters.');
|
|
@@ -1421,15 +1421,15 @@ function mkdirsSync$2 (p, opts, made) {
|
|
|
1421
1421
|
}
|
|
1422
1422
|
if (!made) made = null;
|
|
1423
1423
|
|
|
1424
|
-
p = path$
|
|
1424
|
+
p = path$h.resolve(p);
|
|
1425
1425
|
|
|
1426
1426
|
try {
|
|
1427
1427
|
xfs.mkdirSync(p, mode);
|
|
1428
1428
|
made = made || p;
|
|
1429
1429
|
} catch (err0) {
|
|
1430
1430
|
if (err0.code === 'ENOENT') {
|
|
1431
|
-
if (path$
|
|
1432
|
-
made = mkdirsSync$2(path$
|
|
1431
|
+
if (path$h.dirname(p) === p) throw err0
|
|
1432
|
+
made = mkdirsSync$2(path$h.dirname(p), opts, made);
|
|
1433
1433
|
mkdirsSync$2(p, opts, made);
|
|
1434
1434
|
} else {
|
|
1435
1435
|
// In the case of any other error, just see if there's a dir there
|
|
@@ -1463,39 +1463,39 @@ var mkdirs_1 = {
|
|
|
1463
1463
|
ensureDirSync: mkdirsSync$1
|
|
1464
1464
|
};
|
|
1465
1465
|
|
|
1466
|
-
const fs$
|
|
1466
|
+
const fs$j = gracefulFs;
|
|
1467
1467
|
const os = require$$1__default["default"];
|
|
1468
|
-
const path$
|
|
1468
|
+
const path$g = path__default["default"];
|
|
1469
1469
|
|
|
1470
1470
|
// HFS, ext{2,3}, FAT do not, Node.js v0.10 does not
|
|
1471
1471
|
function hasMillisResSync () {
|
|
1472
|
-
let tmpfile = path$
|
|
1473
|
-
tmpfile = path$
|
|
1472
|
+
let tmpfile = path$g.join('millis-test-sync' + Date.now().toString() + Math.random().toString().slice(2));
|
|
1473
|
+
tmpfile = path$g.join(os.tmpdir(), tmpfile);
|
|
1474
1474
|
|
|
1475
1475
|
// 550 millis past UNIX epoch
|
|
1476
1476
|
const d = new Date(1435410243862);
|
|
1477
|
-
fs$
|
|
1478
|
-
const fd = fs$
|
|
1479
|
-
fs$
|
|
1480
|
-
fs$
|
|
1481
|
-
return fs$
|
|
1477
|
+
fs$j.writeFileSync(tmpfile, 'https://github.com/jprichardson/node-fs-extra/pull/141');
|
|
1478
|
+
const fd = fs$j.openSync(tmpfile, 'r+');
|
|
1479
|
+
fs$j.futimesSync(fd, d, d);
|
|
1480
|
+
fs$j.closeSync(fd);
|
|
1481
|
+
return fs$j.statSync(tmpfile).mtime > 1435410243000
|
|
1482
1482
|
}
|
|
1483
1483
|
|
|
1484
1484
|
function hasMillisRes (callback) {
|
|
1485
|
-
let tmpfile = path$
|
|
1486
|
-
tmpfile = path$
|
|
1485
|
+
let tmpfile = path$g.join('millis-test' + Date.now().toString() + Math.random().toString().slice(2));
|
|
1486
|
+
tmpfile = path$g.join(os.tmpdir(), tmpfile);
|
|
1487
1487
|
|
|
1488
1488
|
// 550 millis past UNIX epoch
|
|
1489
1489
|
const d = new Date(1435410243862);
|
|
1490
|
-
fs$
|
|
1490
|
+
fs$j.writeFile(tmpfile, 'https://github.com/jprichardson/node-fs-extra/pull/141', err => {
|
|
1491
1491
|
if (err) return callback(err)
|
|
1492
|
-
fs$
|
|
1492
|
+
fs$j.open(tmpfile, 'r+', (err, fd) => {
|
|
1493
1493
|
if (err) return callback(err)
|
|
1494
|
-
fs$
|
|
1494
|
+
fs$j.futimes(fd, d, d, err => {
|
|
1495
1495
|
if (err) return callback(err)
|
|
1496
|
-
fs$
|
|
1496
|
+
fs$j.close(fd, err => {
|
|
1497
1497
|
if (err) return callback(err)
|
|
1498
|
-
fs$
|
|
1498
|
+
fs$j.stat(tmpfile, (err, stats) => {
|
|
1499
1499
|
if (err) return callback(err)
|
|
1500
1500
|
callback(null, stats.mtime > 1435410243000);
|
|
1501
1501
|
});
|
|
@@ -1517,10 +1517,10 @@ function timeRemoveMillis (timestamp) {
|
|
|
1517
1517
|
|
|
1518
1518
|
function utimesMillis (path, atime, mtime, callback) {
|
|
1519
1519
|
// if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback)
|
|
1520
|
-
fs$
|
|
1520
|
+
fs$j.open(path, 'r+', (err, fd) => {
|
|
1521
1521
|
if (err) return callback(err)
|
|
1522
|
-
fs$
|
|
1523
|
-
fs$
|
|
1522
|
+
fs$j.futimes(fd, atime, mtime, futimesErr => {
|
|
1523
|
+
fs$j.close(fd, closeErr => {
|
|
1524
1524
|
if (callback) callback(futimesErr || closeErr);
|
|
1525
1525
|
});
|
|
1526
1526
|
});
|
|
@@ -1528,9 +1528,9 @@ function utimesMillis (path, atime, mtime, callback) {
|
|
|
1528
1528
|
}
|
|
1529
1529
|
|
|
1530
1530
|
function utimesMillisSync (path, atime, mtime) {
|
|
1531
|
-
const fd = fs$
|
|
1532
|
-
fs$
|
|
1533
|
-
return fs$
|
|
1531
|
+
const fd = fs$j.openSync(path, 'r+');
|
|
1532
|
+
fs$j.futimesSync(fd, atime, mtime);
|
|
1533
|
+
return fs$j.closeSync(fd)
|
|
1534
1534
|
}
|
|
1535
1535
|
|
|
1536
1536
|
var utimes$1 = {
|
|
@@ -1553,8 +1553,8 @@ var buffer$1 = function (size) {
|
|
|
1553
1553
|
return new Buffer(size)
|
|
1554
1554
|
};
|
|
1555
1555
|
|
|
1556
|
-
const fs$
|
|
1557
|
-
const path$
|
|
1556
|
+
const fs$i = gracefulFs;
|
|
1557
|
+
const path$f = path__default["default"];
|
|
1558
1558
|
const mkdirpSync$1 = mkdirs_1.mkdirsSync;
|
|
1559
1559
|
const utimesSync = utimes$1.utimesMillisSync;
|
|
1560
1560
|
|
|
@@ -1580,8 +1580,8 @@ function copySync$2 (src, dest, opts) {
|
|
|
1580
1580
|
|
|
1581
1581
|
if (opts.filter && !opts.filter(src, dest)) return
|
|
1582
1582
|
|
|
1583
|
-
const destParent = path$
|
|
1584
|
-
if (!fs$
|
|
1583
|
+
const destParent = path$f.dirname(dest);
|
|
1584
|
+
if (!fs$i.existsSync(destParent)) mkdirpSync$1(destParent);
|
|
1585
1585
|
return startCopy$1(resolvedDest, src, dest, opts)
|
|
1586
1586
|
}
|
|
1587
1587
|
|
|
@@ -1591,7 +1591,7 @@ function startCopy$1 (resolvedDest, src, dest, opts) {
|
|
|
1591
1591
|
}
|
|
1592
1592
|
|
|
1593
1593
|
function getStats$1 (resolvedDest, src, dest, opts) {
|
|
1594
|
-
const statSync = opts.dereference ? fs$
|
|
1594
|
+
const statSync = opts.dereference ? fs$i.statSync : fs$i.lstatSync;
|
|
1595
1595
|
const st = statSync(src);
|
|
1596
1596
|
|
|
1597
1597
|
if (st.isDirectory()) return onDir$1(st, resolvedDest, src, dest, opts)
|
|
@@ -1609,7 +1609,7 @@ function onFile$1 (srcStat, resolvedDest, src, dest, opts) {
|
|
|
1609
1609
|
|
|
1610
1610
|
function mayCopyFile$1 (srcStat, src, dest, opts) {
|
|
1611
1611
|
if (opts.overwrite) {
|
|
1612
|
-
fs$
|
|
1612
|
+
fs$i.unlinkSync(dest);
|
|
1613
1613
|
return copyFile$1(srcStat, src, dest, opts)
|
|
1614
1614
|
} else if (opts.errorOnExist) {
|
|
1615
1615
|
throw new Error(`'${dest}' already exists`)
|
|
@@ -1617,9 +1617,9 @@ function mayCopyFile$1 (srcStat, src, dest, opts) {
|
|
|
1617
1617
|
}
|
|
1618
1618
|
|
|
1619
1619
|
function copyFile$1 (srcStat, src, dest, opts) {
|
|
1620
|
-
if (typeof fs$
|
|
1621
|
-
fs$
|
|
1622
|
-
fs$
|
|
1620
|
+
if (typeof fs$i.copyFileSync === 'function') {
|
|
1621
|
+
fs$i.copyFileSync(src, dest);
|
|
1622
|
+
fs$i.chmodSync(dest, srcStat.mode);
|
|
1623
1623
|
if (opts.preserveTimestamps) {
|
|
1624
1624
|
return utimesSync(dest, srcStat.atime, srcStat.mtime)
|
|
1625
1625
|
}
|
|
@@ -1632,20 +1632,20 @@ function copyFileFallback$1 (srcStat, src, dest, opts) {
|
|
|
1632
1632
|
const BUF_LENGTH = 64 * 1024;
|
|
1633
1633
|
const _buff = buffer$1(BUF_LENGTH);
|
|
1634
1634
|
|
|
1635
|
-
const fdr = fs$
|
|
1636
|
-
const fdw = fs$
|
|
1635
|
+
const fdr = fs$i.openSync(src, 'r');
|
|
1636
|
+
const fdw = fs$i.openSync(dest, 'w', srcStat.mode);
|
|
1637
1637
|
let pos = 0;
|
|
1638
1638
|
|
|
1639
1639
|
while (pos < srcStat.size) {
|
|
1640
|
-
const bytesRead = fs$
|
|
1641
|
-
fs$
|
|
1640
|
+
const bytesRead = fs$i.readSync(fdr, _buff, 0, BUF_LENGTH, pos);
|
|
1641
|
+
fs$i.writeSync(fdw, _buff, 0, bytesRead);
|
|
1642
1642
|
pos += bytesRead;
|
|
1643
1643
|
}
|
|
1644
1644
|
|
|
1645
|
-
if (opts.preserveTimestamps) fs$
|
|
1645
|
+
if (opts.preserveTimestamps) fs$i.futimesSync(fdw, srcStat.atime, srcStat.mtime);
|
|
1646
1646
|
|
|
1647
|
-
fs$
|
|
1648
|
-
fs$
|
|
1647
|
+
fs$i.closeSync(fdr);
|
|
1648
|
+
fs$i.closeSync(fdw);
|
|
1649
1649
|
}
|
|
1650
1650
|
|
|
1651
1651
|
function onDir$1 (srcStat, resolvedDest, src, dest, opts) {
|
|
@@ -1664,50 +1664,50 @@ function onDir$1 (srcStat, resolvedDest, src, dest, opts) {
|
|
|
1664
1664
|
}
|
|
1665
1665
|
|
|
1666
1666
|
function mayCopyDir$1 (src, dest, opts) {
|
|
1667
|
-
if (!fs$
|
|
1667
|
+
if (!fs$i.statSync(dest).isDirectory()) {
|
|
1668
1668
|
throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)
|
|
1669
1669
|
}
|
|
1670
1670
|
return copyDir$1(src, dest, opts)
|
|
1671
1671
|
}
|
|
1672
1672
|
|
|
1673
1673
|
function mkDirAndCopy$1 (srcStat, src, dest, opts) {
|
|
1674
|
-
fs$
|
|
1675
|
-
fs$
|
|
1674
|
+
fs$i.mkdirSync(dest, srcStat.mode);
|
|
1675
|
+
fs$i.chmodSync(dest, srcStat.mode);
|
|
1676
1676
|
return copyDir$1(src, dest, opts)
|
|
1677
1677
|
}
|
|
1678
1678
|
|
|
1679
1679
|
function copyDir$1 (src, dest, opts) {
|
|
1680
|
-
fs$
|
|
1680
|
+
fs$i.readdirSync(src).forEach(item => copyDirItem$1(item, src, dest, opts));
|
|
1681
1681
|
}
|
|
1682
1682
|
|
|
1683
1683
|
function copyDirItem$1 (item, src, dest, opts) {
|
|
1684
|
-
const srcItem = path$
|
|
1685
|
-
const destItem = path$
|
|
1684
|
+
const srcItem = path$f.join(src, item);
|
|
1685
|
+
const destItem = path$f.join(dest, item);
|
|
1686
1686
|
const resolvedDest = checkPaths$1(srcItem, destItem);
|
|
1687
1687
|
return startCopy$1(resolvedDest, srcItem, destItem, opts)
|
|
1688
1688
|
}
|
|
1689
1689
|
|
|
1690
1690
|
function onLink$1 (resolvedDest, src, dest, opts) {
|
|
1691
|
-
let resolvedSrc = fs$
|
|
1691
|
+
let resolvedSrc = fs$i.readlinkSync(src);
|
|
1692
1692
|
|
|
1693
1693
|
if (opts.dereference) {
|
|
1694
|
-
resolvedSrc = path$
|
|
1694
|
+
resolvedSrc = path$f.resolve(process.cwd(), resolvedSrc);
|
|
1695
1695
|
}
|
|
1696
1696
|
|
|
1697
1697
|
if (resolvedDest === notExist$1 || resolvedDest === existsReg$1) {
|
|
1698
1698
|
// if dest already exists, fs throws error anyway,
|
|
1699
1699
|
// so no need to guard against it here.
|
|
1700
|
-
return fs$
|
|
1700
|
+
return fs$i.symlinkSync(resolvedSrc, dest)
|
|
1701
1701
|
} else {
|
|
1702
1702
|
if (opts.dereference) {
|
|
1703
|
-
resolvedDest = path$
|
|
1703
|
+
resolvedDest = path$f.resolve(process.cwd(), resolvedDest);
|
|
1704
1704
|
}
|
|
1705
1705
|
if (pathsAreIdentical$1(resolvedSrc, resolvedDest)) return
|
|
1706
1706
|
|
|
1707
1707
|
// prevent copy if src is a subdir of dest since unlinking
|
|
1708
1708
|
// dest in this case would result in removing src contents
|
|
1709
1709
|
// and therefore a broken symlink would be created.
|
|
1710
|
-
if (fs$
|
|
1710
|
+
if (fs$i.statSync(dest).isDirectory() && isSrcSubdir$3(resolvedDest, resolvedSrc)) {
|
|
1711
1711
|
throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)
|
|
1712
1712
|
}
|
|
1713
1713
|
return copyLink$1(resolvedSrc, dest)
|
|
@@ -1715,15 +1715,15 @@ function onLink$1 (resolvedDest, src, dest, opts) {
|
|
|
1715
1715
|
}
|
|
1716
1716
|
|
|
1717
1717
|
function copyLink$1 (resolvedSrc, dest) {
|
|
1718
|
-
fs$
|
|
1719
|
-
return fs$
|
|
1718
|
+
fs$i.unlinkSync(dest);
|
|
1719
|
+
return fs$i.symlinkSync(resolvedSrc, dest)
|
|
1720
1720
|
}
|
|
1721
1721
|
|
|
1722
1722
|
// return true if dest is a subdir of src, otherwise false.
|
|
1723
1723
|
// extract dest base dir and check if that is the same as src basename.
|
|
1724
1724
|
function isSrcSubdir$3 (src, dest) {
|
|
1725
|
-
const srcArray = path$
|
|
1726
|
-
const destArray = path$
|
|
1725
|
+
const srcArray = path$f.resolve(src).split(path$f.sep);
|
|
1726
|
+
const destArray = path$f.resolve(dest).split(path$f.sep);
|
|
1727
1727
|
|
|
1728
1728
|
return srcArray.reduce((acc, current, i) => {
|
|
1729
1729
|
return acc && destArray[i] === current
|
|
@@ -1734,7 +1734,7 @@ function isSrcSubdir$3 (src, dest) {
|
|
|
1734
1734
|
function checkDest$1 (dest) {
|
|
1735
1735
|
let resolvedPath;
|
|
1736
1736
|
try {
|
|
1737
|
-
resolvedPath = fs$
|
|
1737
|
+
resolvedPath = fs$i.readlinkSync(dest);
|
|
1738
1738
|
} catch (err) {
|
|
1739
1739
|
if (err.code === 'ENOENT') return notExist$1
|
|
1740
1740
|
|
|
@@ -1748,8 +1748,8 @@ function checkDest$1 (dest) {
|
|
|
1748
1748
|
|
|
1749
1749
|
function pathsAreIdentical$1 (src, dest) {
|
|
1750
1750
|
const os = process.platform;
|
|
1751
|
-
const resolvedSrc = path$
|
|
1752
|
-
const resolvedDest = path$
|
|
1751
|
+
const resolvedSrc = path$f.resolve(src);
|
|
1752
|
+
const resolvedDest = path$f.resolve(dest);
|
|
1753
1753
|
// case-insensitive paths
|
|
1754
1754
|
if (os === 'darwin' || os === 'win32') {
|
|
1755
1755
|
return resolvedSrc.toLowerCase() === resolvedDest.toLowerCase()
|
|
@@ -1776,19 +1776,19 @@ var copySync$1 = {
|
|
|
1776
1776
|
};
|
|
1777
1777
|
|
|
1778
1778
|
const u$a = universalify.fromPromise;
|
|
1779
|
-
const fs$
|
|
1779
|
+
const fs$h = fs$n;
|
|
1780
1780
|
|
|
1781
1781
|
function pathExists$8 (path) {
|
|
1782
|
-
return fs$
|
|
1782
|
+
return fs$h.access(path).then(() => true).catch(() => false)
|
|
1783
1783
|
}
|
|
1784
1784
|
|
|
1785
1785
|
var pathExists_1 = {
|
|
1786
1786
|
pathExists: u$a(pathExists$8),
|
|
1787
|
-
pathExistsSync: fs$
|
|
1787
|
+
pathExistsSync: fs$h.existsSync
|
|
1788
1788
|
};
|
|
1789
1789
|
|
|
1790
|
-
const fs$
|
|
1791
|
-
const path$
|
|
1790
|
+
const fs$g = gracefulFs;
|
|
1791
|
+
const path$e = path__default["default"];
|
|
1792
1792
|
const mkdirp$1 = mkdirs_1.mkdirs;
|
|
1793
1793
|
const pathExists$7 = pathExists_1.pathExists;
|
|
1794
1794
|
const utimes = utimes$1.utimesMillis;
|
|
@@ -1824,7 +1824,7 @@ function copy$2 (src, dest, opts, cb) {
|
|
|
1824
1824
|
}
|
|
1825
1825
|
|
|
1826
1826
|
function checkParentDir (resolvedDest, src, dest, opts, cb) {
|
|
1827
|
-
const destParent = path$
|
|
1827
|
+
const destParent = path$e.dirname(dest);
|
|
1828
1828
|
pathExists$7(destParent, (err, dirExists) => {
|
|
1829
1829
|
if (err) return cb(err)
|
|
1830
1830
|
if (dirExists) return startCopy(resolvedDest, src, dest, opts, cb)
|
|
@@ -1851,7 +1851,7 @@ function handleFilter (onInclude, resolvedDest, src, dest, opts, cb) {
|
|
|
1851
1851
|
}
|
|
1852
1852
|
|
|
1853
1853
|
function getStats (resolvedDest, src, dest, opts, cb) {
|
|
1854
|
-
const stat = opts.dereference ? fs$
|
|
1854
|
+
const stat = opts.dereference ? fs$g.stat : fs$g.lstat;
|
|
1855
1855
|
stat(src, (err, st) => {
|
|
1856
1856
|
if (err) return cb(err)
|
|
1857
1857
|
|
|
@@ -1871,7 +1871,7 @@ function onFile (srcStat, resolvedDest, src, dest, opts, cb) {
|
|
|
1871
1871
|
|
|
1872
1872
|
function mayCopyFile (srcStat, src, dest, opts, cb) {
|
|
1873
1873
|
if (opts.overwrite) {
|
|
1874
|
-
fs$
|
|
1874
|
+
fs$g.unlink(dest, err => {
|
|
1875
1875
|
if (err) return cb(err)
|
|
1876
1876
|
return copyFile(srcStat, src, dest, opts, cb)
|
|
1877
1877
|
});
|
|
@@ -1881,8 +1881,8 @@ function mayCopyFile (srcStat, src, dest, opts, cb) {
|
|
|
1881
1881
|
}
|
|
1882
1882
|
|
|
1883
1883
|
function copyFile (srcStat, src, dest, opts, cb) {
|
|
1884
|
-
if (typeof fs$
|
|
1885
|
-
return fs$
|
|
1884
|
+
if (typeof fs$g.copyFile === 'function') {
|
|
1885
|
+
return fs$g.copyFile(src, dest, err => {
|
|
1886
1886
|
if (err) return cb(err)
|
|
1887
1887
|
return setDestModeAndTimestamps(srcStat, dest, opts, cb)
|
|
1888
1888
|
})
|
|
@@ -1891,9 +1891,9 @@ function copyFile (srcStat, src, dest, opts, cb) {
|
|
|
1891
1891
|
}
|
|
1892
1892
|
|
|
1893
1893
|
function copyFileFallback (srcStat, src, dest, opts, cb) {
|
|
1894
|
-
const rs = fs$
|
|
1894
|
+
const rs = fs$g.createReadStream(src);
|
|
1895
1895
|
rs.on('error', err => cb(err)).once('open', () => {
|
|
1896
|
-
const ws = fs$
|
|
1896
|
+
const ws = fs$g.createWriteStream(dest, { mode: srcStat.mode });
|
|
1897
1897
|
ws.on('error', err => cb(err))
|
|
1898
1898
|
.on('open', () => rs.pipe(ws))
|
|
1899
1899
|
.once('close', () => setDestModeAndTimestamps(srcStat, dest, opts, cb));
|
|
@@ -1901,7 +1901,7 @@ function copyFileFallback (srcStat, src, dest, opts, cb) {
|
|
|
1901
1901
|
}
|
|
1902
1902
|
|
|
1903
1903
|
function setDestModeAndTimestamps (srcStat, dest, opts, cb) {
|
|
1904
|
-
fs$
|
|
1904
|
+
fs$g.chmod(dest, srcStat.mode, err => {
|
|
1905
1905
|
if (err) return cb(err)
|
|
1906
1906
|
if (opts.preserveTimestamps) {
|
|
1907
1907
|
return utimes(dest, srcStat.atime, srcStat.mtime, cb)
|
|
@@ -1926,7 +1926,7 @@ function onDir (srcStat, resolvedDest, src, dest, opts, cb) {
|
|
|
1926
1926
|
}
|
|
1927
1927
|
|
|
1928
1928
|
function mayCopyDir (src, dest, opts, cb) {
|
|
1929
|
-
fs$
|
|
1929
|
+
fs$g.stat(dest, (err, st) => {
|
|
1930
1930
|
if (err) return cb(err)
|
|
1931
1931
|
if (!st.isDirectory()) {
|
|
1932
1932
|
return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`))
|
|
@@ -1936,9 +1936,9 @@ function mayCopyDir (src, dest, opts, cb) {
|
|
|
1936
1936
|
}
|
|
1937
1937
|
|
|
1938
1938
|
function mkDirAndCopy (srcStat, src, dest, opts, cb) {
|
|
1939
|
-
fs$
|
|
1939
|
+
fs$g.mkdir(dest, srcStat.mode, err => {
|
|
1940
1940
|
if (err) return cb(err)
|
|
1941
|
-
fs$
|
|
1941
|
+
fs$g.chmod(dest, srcStat.mode, err => {
|
|
1942
1942
|
if (err) return cb(err)
|
|
1943
1943
|
return copyDir(src, dest, opts, cb)
|
|
1944
1944
|
});
|
|
@@ -1946,7 +1946,7 @@ function mkDirAndCopy (srcStat, src, dest, opts, cb) {
|
|
|
1946
1946
|
}
|
|
1947
1947
|
|
|
1948
1948
|
function copyDir (src, dest, opts, cb) {
|
|
1949
|
-
fs$
|
|
1949
|
+
fs$g.readdir(src, (err, items) => {
|
|
1950
1950
|
if (err) return cb(err)
|
|
1951
1951
|
return copyDirItems(items, src, dest, opts, cb)
|
|
1952
1952
|
});
|
|
@@ -1959,8 +1959,8 @@ function copyDirItems (items, src, dest, opts, cb) {
|
|
|
1959
1959
|
}
|
|
1960
1960
|
|
|
1961
1961
|
function copyDirItem (items, item, src, dest, opts, cb) {
|
|
1962
|
-
const srcItem = path$
|
|
1963
|
-
const destItem = path$
|
|
1962
|
+
const srcItem = path$e.join(src, item);
|
|
1963
|
+
const destItem = path$e.join(dest, item);
|
|
1964
1964
|
checkPaths(srcItem, destItem, (err, resolvedDest) => {
|
|
1965
1965
|
if (err) return cb(err)
|
|
1966
1966
|
startCopy(resolvedDest, srcItem, destItem, opts, err => {
|
|
@@ -1971,27 +1971,27 @@ function copyDirItem (items, item, src, dest, opts, cb) {
|
|
|
1971
1971
|
}
|
|
1972
1972
|
|
|
1973
1973
|
function onLink (resolvedDest, src, dest, opts, cb) {
|
|
1974
|
-
fs$
|
|
1974
|
+
fs$g.readlink(src, (err, resolvedSrc) => {
|
|
1975
1975
|
if (err) return cb(err)
|
|
1976
1976
|
|
|
1977
1977
|
if (opts.dereference) {
|
|
1978
|
-
resolvedSrc = path$
|
|
1978
|
+
resolvedSrc = path$e.resolve(process.cwd(), resolvedSrc);
|
|
1979
1979
|
}
|
|
1980
1980
|
|
|
1981
1981
|
if (resolvedDest === notExist || resolvedDest === existsReg) {
|
|
1982
1982
|
// if dest already exists, fs throws error anyway,
|
|
1983
1983
|
// so no need to guard against it here.
|
|
1984
|
-
return fs$
|
|
1984
|
+
return fs$g.symlink(resolvedSrc, dest, cb)
|
|
1985
1985
|
} else {
|
|
1986
1986
|
if (opts.dereference) {
|
|
1987
|
-
resolvedDest = path$
|
|
1987
|
+
resolvedDest = path$e.resolve(process.cwd(), resolvedDest);
|
|
1988
1988
|
}
|
|
1989
1989
|
if (pathsAreIdentical(resolvedSrc, resolvedDest)) return cb()
|
|
1990
1990
|
|
|
1991
1991
|
// prevent copy if src is a subdir of dest since unlinking
|
|
1992
1992
|
// dest in this case would result in removing src contents
|
|
1993
1993
|
// and therefore a broken symlink would be created.
|
|
1994
|
-
fs$
|
|
1994
|
+
fs$g.stat(dest, (err, st) => {
|
|
1995
1995
|
if (err) return cb(err)
|
|
1996
1996
|
if (st.isDirectory() && isSrcSubdir$2(resolvedDest, resolvedSrc)) {
|
|
1997
1997
|
return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`))
|
|
@@ -2003,17 +2003,17 @@ function onLink (resolvedDest, src, dest, opts, cb) {
|
|
|
2003
2003
|
}
|
|
2004
2004
|
|
|
2005
2005
|
function copyLink (resolvedSrc, dest, cb) {
|
|
2006
|
-
fs$
|
|
2006
|
+
fs$g.unlink(dest, err => {
|
|
2007
2007
|
if (err) return cb(err)
|
|
2008
|
-
return fs$
|
|
2008
|
+
return fs$g.symlink(resolvedSrc, dest, cb)
|
|
2009
2009
|
});
|
|
2010
2010
|
}
|
|
2011
2011
|
|
|
2012
2012
|
// return true if dest is a subdir of src, otherwise false.
|
|
2013
2013
|
// extract dest base dir and check if that is the same as src basename.
|
|
2014
2014
|
function isSrcSubdir$2 (src, dest) {
|
|
2015
|
-
const srcArray = path$
|
|
2016
|
-
const destArray = path$
|
|
2015
|
+
const srcArray = path$e.resolve(src).split(path$e.sep);
|
|
2016
|
+
const destArray = path$e.resolve(dest).split(path$e.sep);
|
|
2017
2017
|
|
|
2018
2018
|
return srcArray.reduce((acc, current, i) => {
|
|
2019
2019
|
return acc && destArray[i] === current
|
|
@@ -2022,7 +2022,7 @@ function isSrcSubdir$2 (src, dest) {
|
|
|
2022
2022
|
|
|
2023
2023
|
// check if dest exists and is a symlink.
|
|
2024
2024
|
function checkDest (dest, cb) {
|
|
2025
|
-
fs$
|
|
2025
|
+
fs$g.readlink(dest, (err, resolvedPath) => {
|
|
2026
2026
|
if (err) {
|
|
2027
2027
|
if (err.code === 'ENOENT') return cb(null, notExist)
|
|
2028
2028
|
|
|
@@ -2037,8 +2037,8 @@ function checkDest (dest, cb) {
|
|
|
2037
2037
|
|
|
2038
2038
|
function pathsAreIdentical (src, dest) {
|
|
2039
2039
|
const os = process.platform;
|
|
2040
|
-
const resolvedSrc = path$
|
|
2041
|
-
const resolvedDest = path$
|
|
2040
|
+
const resolvedSrc = path$e.resolve(src);
|
|
2041
|
+
const resolvedDest = path$e.resolve(dest);
|
|
2042
2042
|
// case-insensitive paths
|
|
2043
2043
|
if (os === 'darwin' || os === 'win32') {
|
|
2044
2044
|
return resolvedSrc.toLowerCase() === resolvedDest.toLowerCase()
|
|
@@ -2067,8 +2067,8 @@ var copy$1 = {
|
|
|
2067
2067
|
copy: u$9(copy_1)
|
|
2068
2068
|
};
|
|
2069
2069
|
|
|
2070
|
-
const fs$
|
|
2071
|
-
const path$
|
|
2070
|
+
const fs$f = gracefulFs;
|
|
2071
|
+
const path$d = path__default["default"];
|
|
2072
2072
|
const assert = assert__default["default"];
|
|
2073
2073
|
|
|
2074
2074
|
const isWindows = (process.platform === 'win32');
|
|
@@ -2083,9 +2083,9 @@ function defaults (options) {
|
|
|
2083
2083
|
'readdir'
|
|
2084
2084
|
];
|
|
2085
2085
|
methods.forEach(m => {
|
|
2086
|
-
options[m] = options[m] || fs$
|
|
2086
|
+
options[m] = options[m] || fs$f[m];
|
|
2087
2087
|
m = m + 'Sync';
|
|
2088
|
-
options[m] = options[m] || fs$
|
|
2088
|
+
options[m] = options[m] || fs$f[m];
|
|
2089
2089
|
});
|
|
2090
2090
|
|
|
2091
2091
|
options.maxBusyTries = options.maxBusyTries || 3;
|
|
@@ -2273,7 +2273,7 @@ function rmkids (p, options, cb) {
|
|
|
2273
2273
|
if (n === 0) return options.rmdir(p, cb)
|
|
2274
2274
|
|
|
2275
2275
|
files.forEach(f => {
|
|
2276
|
-
rimraf$1(path$
|
|
2276
|
+
rimraf$1(path$d.join(p, f), options, er => {
|
|
2277
2277
|
if (errState) {
|
|
2278
2278
|
return
|
|
2279
2279
|
}
|
|
@@ -2355,7 +2355,7 @@ function rmdirSync (p, options, originalEr) {
|
|
|
2355
2355
|
function rmkidsSync (p, options) {
|
|
2356
2356
|
assert(p);
|
|
2357
2357
|
assert(options);
|
|
2358
|
-
options.readdirSync(p).forEach(f => rimrafSync(path$
|
|
2358
|
+
options.readdirSync(p).forEach(f => rimrafSync(path$d.join(p, f), options));
|
|
2359
2359
|
|
|
2360
2360
|
// We only end up here once we got ENOTEMPTY at least once, and
|
|
2361
2361
|
// at this point, we are guaranteed to have removed all the kids.
|
|
@@ -2389,17 +2389,17 @@ var remove$2 = {
|
|
|
2389
2389
|
};
|
|
2390
2390
|
|
|
2391
2391
|
const u$7 = universalify.fromCallback;
|
|
2392
|
-
const fs$
|
|
2393
|
-
const path$
|
|
2392
|
+
const fs$e = fs__default["default"];
|
|
2393
|
+
const path$c = path__default["default"];
|
|
2394
2394
|
const mkdir$5 = mkdirs_1;
|
|
2395
2395
|
const remove$1 = remove$2;
|
|
2396
2396
|
|
|
2397
2397
|
const emptyDir = u$7(function emptyDir (dir, callback) {
|
|
2398
2398
|
callback = callback || function () {};
|
|
2399
|
-
fs$
|
|
2399
|
+
fs$e.readdir(dir, (err, items) => {
|
|
2400
2400
|
if (err) return mkdir$5.mkdirs(dir, callback)
|
|
2401
2401
|
|
|
2402
|
-
items = items.map(item => path$
|
|
2402
|
+
items = items.map(item => path$c.join(dir, item));
|
|
2403
2403
|
|
|
2404
2404
|
deleteItem();
|
|
2405
2405
|
|
|
@@ -2417,13 +2417,13 @@ const emptyDir = u$7(function emptyDir (dir, callback) {
|
|
|
2417
2417
|
function emptyDirSync (dir) {
|
|
2418
2418
|
let items;
|
|
2419
2419
|
try {
|
|
2420
|
-
items = fs$
|
|
2420
|
+
items = fs$e.readdirSync(dir);
|
|
2421
2421
|
} catch (err) {
|
|
2422
2422
|
return mkdir$5.mkdirsSync(dir)
|
|
2423
2423
|
}
|
|
2424
2424
|
|
|
2425
2425
|
items.forEach(item => {
|
|
2426
|
-
item = path$
|
|
2426
|
+
item = path$c.join(dir, item);
|
|
2427
2427
|
remove$1.removeSync(item);
|
|
2428
2428
|
});
|
|
2429
2429
|
}
|
|
@@ -2436,22 +2436,22 @@ var empty = {
|
|
|
2436
2436
|
};
|
|
2437
2437
|
|
|
2438
2438
|
const u$6 = universalify.fromCallback;
|
|
2439
|
-
const path$
|
|
2440
|
-
const fs$
|
|
2439
|
+
const path$b = path__default["default"];
|
|
2440
|
+
const fs$d = gracefulFs;
|
|
2441
2441
|
const mkdir$4 = mkdirs_1;
|
|
2442
2442
|
const pathExists$6 = pathExists_1.pathExists;
|
|
2443
2443
|
|
|
2444
2444
|
function createFile$1 (file, callback) {
|
|
2445
2445
|
function makeFile () {
|
|
2446
|
-
fs$
|
|
2446
|
+
fs$d.writeFile(file, '', err => {
|
|
2447
2447
|
if (err) return callback(err)
|
|
2448
2448
|
callback();
|
|
2449
2449
|
});
|
|
2450
2450
|
}
|
|
2451
2451
|
|
|
2452
|
-
fs$
|
|
2452
|
+
fs$d.stat(file, (err, stats) => { // eslint-disable-line handle-callback-err
|
|
2453
2453
|
if (!err && stats.isFile()) return callback()
|
|
2454
|
-
const dir = path$
|
|
2454
|
+
const dir = path$b.dirname(file);
|
|
2455
2455
|
pathExists$6(dir, (err, dirExists) => {
|
|
2456
2456
|
if (err) return callback(err)
|
|
2457
2457
|
if (dirExists) return makeFile()
|
|
@@ -2466,16 +2466,16 @@ function createFile$1 (file, callback) {
|
|
|
2466
2466
|
function createFileSync$1 (file) {
|
|
2467
2467
|
let stats;
|
|
2468
2468
|
try {
|
|
2469
|
-
stats = fs$
|
|
2469
|
+
stats = fs$d.statSync(file);
|
|
2470
2470
|
} catch (e) {}
|
|
2471
2471
|
if (stats && stats.isFile()) return
|
|
2472
2472
|
|
|
2473
|
-
const dir = path$
|
|
2474
|
-
if (!fs$
|
|
2473
|
+
const dir = path$b.dirname(file);
|
|
2474
|
+
if (!fs$d.existsSync(dir)) {
|
|
2475
2475
|
mkdir$4.mkdirsSync(dir);
|
|
2476
2476
|
}
|
|
2477
2477
|
|
|
2478
|
-
fs$
|
|
2478
|
+
fs$d.writeFileSync(file, '');
|
|
2479
2479
|
}
|
|
2480
2480
|
|
|
2481
2481
|
var file$1 = {
|
|
@@ -2484,14 +2484,14 @@ var file$1 = {
|
|
|
2484
2484
|
};
|
|
2485
2485
|
|
|
2486
2486
|
const u$5 = universalify.fromCallback;
|
|
2487
|
-
const path$
|
|
2488
|
-
const fs$
|
|
2487
|
+
const path$a = path__default["default"];
|
|
2488
|
+
const fs$c = gracefulFs;
|
|
2489
2489
|
const mkdir$3 = mkdirs_1;
|
|
2490
2490
|
const pathExists$5 = pathExists_1.pathExists;
|
|
2491
2491
|
|
|
2492
2492
|
function createLink (srcpath, dstpath, callback) {
|
|
2493
2493
|
function makeLink (srcpath, dstpath) {
|
|
2494
|
-
fs$
|
|
2494
|
+
fs$c.link(srcpath, dstpath, err => {
|
|
2495
2495
|
if (err) return callback(err)
|
|
2496
2496
|
callback(null);
|
|
2497
2497
|
});
|
|
@@ -2500,13 +2500,13 @@ function createLink (srcpath, dstpath, callback) {
|
|
|
2500
2500
|
pathExists$5(dstpath, (err, destinationExists) => {
|
|
2501
2501
|
if (err) return callback(err)
|
|
2502
2502
|
if (destinationExists) return callback(null)
|
|
2503
|
-
fs$
|
|
2503
|
+
fs$c.lstat(srcpath, (err) => {
|
|
2504
2504
|
if (err) {
|
|
2505
2505
|
err.message = err.message.replace('lstat', 'ensureLink');
|
|
2506
2506
|
return callback(err)
|
|
2507
2507
|
}
|
|
2508
2508
|
|
|
2509
|
-
const dir = path$
|
|
2509
|
+
const dir = path$a.dirname(dstpath);
|
|
2510
2510
|
pathExists$5(dir, (err, dirExists) => {
|
|
2511
2511
|
if (err) return callback(err)
|
|
2512
2512
|
if (dirExists) return makeLink(srcpath, dstpath)
|
|
@@ -2520,22 +2520,22 @@ function createLink (srcpath, dstpath, callback) {
|
|
|
2520
2520
|
}
|
|
2521
2521
|
|
|
2522
2522
|
function createLinkSync (srcpath, dstpath) {
|
|
2523
|
-
const destinationExists = fs$
|
|
2523
|
+
const destinationExists = fs$c.existsSync(dstpath);
|
|
2524
2524
|
if (destinationExists) return undefined
|
|
2525
2525
|
|
|
2526
2526
|
try {
|
|
2527
|
-
fs$
|
|
2527
|
+
fs$c.lstatSync(srcpath);
|
|
2528
2528
|
} catch (err) {
|
|
2529
2529
|
err.message = err.message.replace('lstat', 'ensureLink');
|
|
2530
2530
|
throw err
|
|
2531
2531
|
}
|
|
2532
2532
|
|
|
2533
|
-
const dir = path$
|
|
2534
|
-
const dirExists = fs$
|
|
2535
|
-
if (dirExists) return fs$
|
|
2533
|
+
const dir = path$a.dirname(dstpath);
|
|
2534
|
+
const dirExists = fs$c.existsSync(dir);
|
|
2535
|
+
if (dirExists) return fs$c.linkSync(srcpath, dstpath)
|
|
2536
2536
|
mkdir$3.mkdirsSync(dir);
|
|
2537
2537
|
|
|
2538
|
-
return fs$
|
|
2538
|
+
return fs$c.linkSync(srcpath, dstpath)
|
|
2539
2539
|
}
|
|
2540
2540
|
|
|
2541
2541
|
var link$1 = {
|
|
@@ -2543,8 +2543,8 @@ var link$1 = {
|
|
|
2543
2543
|
createLinkSync
|
|
2544
2544
|
};
|
|
2545
2545
|
|
|
2546
|
-
const path$
|
|
2547
|
-
const fs$
|
|
2546
|
+
const path$9 = path__default["default"];
|
|
2547
|
+
const fs$b = gracefulFs;
|
|
2548
2548
|
const pathExists$4 = pathExists_1.pathExists;
|
|
2549
2549
|
|
|
2550
2550
|
/**
|
|
@@ -2570,8 +2570,8 @@ const pathExists$4 = pathExists_1.pathExists;
|
|
|
2570
2570
|
*/
|
|
2571
2571
|
|
|
2572
2572
|
function symlinkPaths$1 (srcpath, dstpath, callback) {
|
|
2573
|
-
if (path$
|
|
2574
|
-
return fs$
|
|
2573
|
+
if (path$9.isAbsolute(srcpath)) {
|
|
2574
|
+
return fs$b.lstat(srcpath, (err) => {
|
|
2575
2575
|
if (err) {
|
|
2576
2576
|
err.message = err.message.replace('lstat', 'ensureSymlink');
|
|
2577
2577
|
return callback(err)
|
|
@@ -2582,8 +2582,8 @@ function symlinkPaths$1 (srcpath, dstpath, callback) {
|
|
|
2582
2582
|
})
|
|
2583
2583
|
})
|
|
2584
2584
|
} else {
|
|
2585
|
-
const dstdir = path$
|
|
2586
|
-
const relativeToDst = path$
|
|
2585
|
+
const dstdir = path$9.dirname(dstpath);
|
|
2586
|
+
const relativeToDst = path$9.join(dstdir, srcpath);
|
|
2587
2587
|
return pathExists$4(relativeToDst, (err, exists) => {
|
|
2588
2588
|
if (err) return callback(err)
|
|
2589
2589
|
if (exists) {
|
|
@@ -2592,14 +2592,14 @@ function symlinkPaths$1 (srcpath, dstpath, callback) {
|
|
|
2592
2592
|
'toDst': srcpath
|
|
2593
2593
|
})
|
|
2594
2594
|
} else {
|
|
2595
|
-
return fs$
|
|
2595
|
+
return fs$b.lstat(srcpath, (err) => {
|
|
2596
2596
|
if (err) {
|
|
2597
2597
|
err.message = err.message.replace('lstat', 'ensureSymlink');
|
|
2598
2598
|
return callback(err)
|
|
2599
2599
|
}
|
|
2600
2600
|
return callback(null, {
|
|
2601
2601
|
'toCwd': srcpath,
|
|
2602
|
-
'toDst': path$
|
|
2602
|
+
'toDst': path$9.relative(dstdir, srcpath)
|
|
2603
2603
|
})
|
|
2604
2604
|
})
|
|
2605
2605
|
}
|
|
@@ -2609,28 +2609,28 @@ function symlinkPaths$1 (srcpath, dstpath, callback) {
|
|
|
2609
2609
|
|
|
2610
2610
|
function symlinkPathsSync$1 (srcpath, dstpath) {
|
|
2611
2611
|
let exists;
|
|
2612
|
-
if (path$
|
|
2613
|
-
exists = fs$
|
|
2612
|
+
if (path$9.isAbsolute(srcpath)) {
|
|
2613
|
+
exists = fs$b.existsSync(srcpath);
|
|
2614
2614
|
if (!exists) throw new Error('absolute srcpath does not exist')
|
|
2615
2615
|
return {
|
|
2616
2616
|
'toCwd': srcpath,
|
|
2617
2617
|
'toDst': srcpath
|
|
2618
2618
|
}
|
|
2619
2619
|
} else {
|
|
2620
|
-
const dstdir = path$
|
|
2621
|
-
const relativeToDst = path$
|
|
2622
|
-
exists = fs$
|
|
2620
|
+
const dstdir = path$9.dirname(dstpath);
|
|
2621
|
+
const relativeToDst = path$9.join(dstdir, srcpath);
|
|
2622
|
+
exists = fs$b.existsSync(relativeToDst);
|
|
2623
2623
|
if (exists) {
|
|
2624
2624
|
return {
|
|
2625
2625
|
'toCwd': relativeToDst,
|
|
2626
2626
|
'toDst': srcpath
|
|
2627
2627
|
}
|
|
2628
2628
|
} else {
|
|
2629
|
-
exists = fs$
|
|
2629
|
+
exists = fs$b.existsSync(srcpath);
|
|
2630
2630
|
if (!exists) throw new Error('relative srcpath does not exist')
|
|
2631
2631
|
return {
|
|
2632
2632
|
'toCwd': srcpath,
|
|
2633
|
-
'toDst': path$
|
|
2633
|
+
'toDst': path$9.relative(dstdir, srcpath)
|
|
2634
2634
|
}
|
|
2635
2635
|
}
|
|
2636
2636
|
}
|
|
@@ -2641,13 +2641,13 @@ var symlinkPaths_1 = {
|
|
|
2641
2641
|
symlinkPathsSync: symlinkPathsSync$1
|
|
2642
2642
|
};
|
|
2643
2643
|
|
|
2644
|
-
const fs$
|
|
2644
|
+
const fs$a = gracefulFs;
|
|
2645
2645
|
|
|
2646
2646
|
function symlinkType$1 (srcpath, type, callback) {
|
|
2647
2647
|
callback = (typeof type === 'function') ? type : callback;
|
|
2648
2648
|
type = (typeof type === 'function') ? false : type;
|
|
2649
2649
|
if (type) return callback(null, type)
|
|
2650
|
-
fs$
|
|
2650
|
+
fs$a.lstat(srcpath, (err, stats) => {
|
|
2651
2651
|
if (err) return callback(null, 'file')
|
|
2652
2652
|
type = (stats && stats.isDirectory()) ? 'dir' : 'file';
|
|
2653
2653
|
callback(null, type);
|
|
@@ -2659,7 +2659,7 @@ function symlinkTypeSync$1 (srcpath, type) {
|
|
|
2659
2659
|
|
|
2660
2660
|
if (type) return type
|
|
2661
2661
|
try {
|
|
2662
|
-
stats = fs$
|
|
2662
|
+
stats = fs$a.lstatSync(srcpath);
|
|
2663
2663
|
} catch (e) {
|
|
2664
2664
|
return 'file'
|
|
2665
2665
|
}
|
|
@@ -2672,8 +2672,8 @@ var symlinkType_1 = {
|
|
|
2672
2672
|
};
|
|
2673
2673
|
|
|
2674
2674
|
const u$4 = universalify.fromCallback;
|
|
2675
|
-
const path$
|
|
2676
|
-
const fs$
|
|
2675
|
+
const path$8 = path__default["default"];
|
|
2676
|
+
const fs$9 = gracefulFs;
|
|
2677
2677
|
const _mkdirs = mkdirs_1;
|
|
2678
2678
|
const mkdirs = _mkdirs.mkdirs;
|
|
2679
2679
|
const mkdirsSync = _mkdirs.mkdirsSync;
|
|
@@ -2700,13 +2700,13 @@ function createSymlink (srcpath, dstpath, type, callback) {
|
|
|
2700
2700
|
srcpath = relative.toDst;
|
|
2701
2701
|
symlinkType(relative.toCwd, type, (err, type) => {
|
|
2702
2702
|
if (err) return callback(err)
|
|
2703
|
-
const dir = path$
|
|
2703
|
+
const dir = path$8.dirname(dstpath);
|
|
2704
2704
|
pathExists$3(dir, (err, dirExists) => {
|
|
2705
2705
|
if (err) return callback(err)
|
|
2706
|
-
if (dirExists) return fs$
|
|
2706
|
+
if (dirExists) return fs$9.symlink(srcpath, dstpath, type, callback)
|
|
2707
2707
|
mkdirs(dir, err => {
|
|
2708
2708
|
if (err) return callback(err)
|
|
2709
|
-
fs$
|
|
2709
|
+
fs$9.symlink(srcpath, dstpath, type, callback);
|
|
2710
2710
|
});
|
|
2711
2711
|
});
|
|
2712
2712
|
});
|
|
@@ -2715,17 +2715,17 @@ function createSymlink (srcpath, dstpath, type, callback) {
|
|
|
2715
2715
|
}
|
|
2716
2716
|
|
|
2717
2717
|
function createSymlinkSync (srcpath, dstpath, type) {
|
|
2718
|
-
const destinationExists = fs$
|
|
2718
|
+
const destinationExists = fs$9.existsSync(dstpath);
|
|
2719
2719
|
if (destinationExists) return undefined
|
|
2720
2720
|
|
|
2721
2721
|
const relative = symlinkPathsSync(srcpath, dstpath);
|
|
2722
2722
|
srcpath = relative.toDst;
|
|
2723
2723
|
type = symlinkTypeSync(relative.toCwd, type);
|
|
2724
|
-
const dir = path$
|
|
2725
|
-
const exists = fs$
|
|
2726
|
-
if (exists) return fs$
|
|
2724
|
+
const dir = path$8.dirname(dstpath);
|
|
2725
|
+
const exists = fs$9.existsSync(dir);
|
|
2726
|
+
if (exists) return fs$9.symlinkSync(srcpath, dstpath, type)
|
|
2727
2727
|
mkdirsSync(dir);
|
|
2728
|
-
return fs$
|
|
2728
|
+
return fs$9.symlinkSync(srcpath, dstpath, type)
|
|
2729
2729
|
}
|
|
2730
2730
|
|
|
2731
2731
|
var symlink$1 = {
|
|
@@ -2901,7 +2901,7 @@ var jsonfile = {
|
|
|
2901
2901
|
writeJsonSync: jsonFile$3.writeFileSync
|
|
2902
2902
|
};
|
|
2903
2903
|
|
|
2904
|
-
const path$
|
|
2904
|
+
const path$7 = path__default["default"];
|
|
2905
2905
|
const mkdir$2 = mkdirs_1;
|
|
2906
2906
|
const pathExists$2 = pathExists_1.pathExists;
|
|
2907
2907
|
const jsonFile$2 = jsonfile;
|
|
@@ -2912,7 +2912,7 @@ function outputJson (file, data, options, callback) {
|
|
|
2912
2912
|
options = {};
|
|
2913
2913
|
}
|
|
2914
2914
|
|
|
2915
|
-
const dir = path$
|
|
2915
|
+
const dir = path$7.dirname(file);
|
|
2916
2916
|
|
|
2917
2917
|
pathExists$2(dir, (err, itDoes) => {
|
|
2918
2918
|
if (err) return callback(err)
|
|
@@ -2927,15 +2927,15 @@ function outputJson (file, data, options, callback) {
|
|
|
2927
2927
|
|
|
2928
2928
|
var outputJson_1 = outputJson;
|
|
2929
2929
|
|
|
2930
|
-
const fs$
|
|
2931
|
-
const path$
|
|
2930
|
+
const fs$8 = gracefulFs;
|
|
2931
|
+
const path$6 = path__default["default"];
|
|
2932
2932
|
const mkdir$1 = mkdirs_1;
|
|
2933
2933
|
const jsonFile$1 = jsonfile;
|
|
2934
2934
|
|
|
2935
2935
|
function outputJsonSync (file, data, options) {
|
|
2936
|
-
const dir = path$
|
|
2936
|
+
const dir = path$6.dirname(file);
|
|
2937
2937
|
|
|
2938
|
-
if (!fs$
|
|
2938
|
+
if (!fs$8.existsSync(dir)) {
|
|
2939
2939
|
mkdir$1.mkdirsSync(dir);
|
|
2940
2940
|
}
|
|
2941
2941
|
|
|
@@ -2959,8 +2959,8 @@ jsonFile.readJSONSync = jsonFile.readJsonSync;
|
|
|
2959
2959
|
|
|
2960
2960
|
var json = jsonFile;
|
|
2961
2961
|
|
|
2962
|
-
const fs$
|
|
2963
|
-
const path$
|
|
2962
|
+
const fs$7 = gracefulFs;
|
|
2963
|
+
const path$5 = path__default["default"];
|
|
2964
2964
|
const copySync = copySync$1.copySync;
|
|
2965
2965
|
const removeSync = remove$2.removeSync;
|
|
2966
2966
|
const mkdirpSync = mkdirs_1.mkdirsSync;
|
|
@@ -2970,20 +2970,20 @@ function moveSync (src, dest, options) {
|
|
|
2970
2970
|
options = options || {};
|
|
2971
2971
|
const overwrite = options.overwrite || options.clobber || false;
|
|
2972
2972
|
|
|
2973
|
-
src = path$
|
|
2974
|
-
dest = path$
|
|
2973
|
+
src = path$5.resolve(src);
|
|
2974
|
+
dest = path$5.resolve(dest);
|
|
2975
2975
|
|
|
2976
|
-
if (src === dest) return fs$
|
|
2976
|
+
if (src === dest) return fs$7.accessSync(src)
|
|
2977
2977
|
|
|
2978
2978
|
if (isSrcSubdir$1(src, dest)) throw new Error(`Cannot move '${src}' into itself '${dest}'.`)
|
|
2979
2979
|
|
|
2980
|
-
mkdirpSync(path$
|
|
2980
|
+
mkdirpSync(path$5.dirname(dest));
|
|
2981
2981
|
tryRenameSync();
|
|
2982
2982
|
|
|
2983
2983
|
function tryRenameSync () {
|
|
2984
2984
|
if (overwrite) {
|
|
2985
2985
|
try {
|
|
2986
|
-
return fs$
|
|
2986
|
+
return fs$7.renameSync(src, dest)
|
|
2987
2987
|
} catch (err) {
|
|
2988
2988
|
if (err.code === 'ENOTEMPTY' || err.code === 'EEXIST' || err.code === 'EPERM') {
|
|
2989
2989
|
removeSync(dest);
|
|
@@ -2996,8 +2996,8 @@ function moveSync (src, dest, options) {
|
|
|
2996
2996
|
}
|
|
2997
2997
|
} else {
|
|
2998
2998
|
try {
|
|
2999
|
-
fs$
|
|
3000
|
-
return fs$
|
|
2999
|
+
fs$7.linkSync(src, dest);
|
|
3000
|
+
return fs$7.unlinkSync(src)
|
|
3001
3001
|
} catch (err) {
|
|
3002
3002
|
if (err.code === 'EXDEV' || err.code === 'EISDIR' || err.code === 'EPERM' || err.code === 'ENOTSUP') {
|
|
3003
3003
|
return moveSyncAcrossDevice(src, dest, overwrite)
|
|
@@ -3009,7 +3009,7 @@ function moveSync (src, dest, options) {
|
|
|
3009
3009
|
}
|
|
3010
3010
|
|
|
3011
3011
|
function moveSyncAcrossDevice (src, dest, overwrite) {
|
|
3012
|
-
const stat = fs$
|
|
3012
|
+
const stat = fs$7.statSync(src);
|
|
3013
3013
|
|
|
3014
3014
|
if (stat.isDirectory()) {
|
|
3015
3015
|
return moveDirSyncAcrossDevice(src, dest, overwrite)
|
|
@@ -3024,20 +3024,20 @@ function moveFileSyncAcrossDevice (src, dest, overwrite) {
|
|
|
3024
3024
|
|
|
3025
3025
|
const flags = overwrite ? 'w' : 'wx';
|
|
3026
3026
|
|
|
3027
|
-
const fdr = fs$
|
|
3028
|
-
const stat = fs$
|
|
3029
|
-
const fdw = fs$
|
|
3027
|
+
const fdr = fs$7.openSync(src, 'r');
|
|
3028
|
+
const stat = fs$7.fstatSync(fdr);
|
|
3029
|
+
const fdw = fs$7.openSync(dest, flags, stat.mode);
|
|
3030
3030
|
let pos = 0;
|
|
3031
3031
|
|
|
3032
3032
|
while (pos < stat.size) {
|
|
3033
|
-
const bytesRead = fs$
|
|
3034
|
-
fs$
|
|
3033
|
+
const bytesRead = fs$7.readSync(fdr, _buff, 0, BUF_LENGTH, pos);
|
|
3034
|
+
fs$7.writeSync(fdw, _buff, 0, bytesRead);
|
|
3035
3035
|
pos += bytesRead;
|
|
3036
3036
|
}
|
|
3037
3037
|
|
|
3038
|
-
fs$
|
|
3039
|
-
fs$
|
|
3040
|
-
return fs$
|
|
3038
|
+
fs$7.closeSync(fdr);
|
|
3039
|
+
fs$7.closeSync(fdw);
|
|
3040
|
+
return fs$7.unlinkSync(src)
|
|
3041
3041
|
}
|
|
3042
3042
|
|
|
3043
3043
|
function moveDirSyncAcrossDevice (src, dest, overwrite) {
|
|
@@ -3062,10 +3062,10 @@ function moveDirSyncAcrossDevice (src, dest, overwrite) {
|
|
|
3062
3062
|
// extract dest base dir and check if that is the same as src basename
|
|
3063
3063
|
function isSrcSubdir$1 (src, dest) {
|
|
3064
3064
|
try {
|
|
3065
|
-
return fs$
|
|
3065
|
+
return fs$7.statSync(src).isDirectory() &&
|
|
3066
3066
|
src !== dest &&
|
|
3067
3067
|
dest.indexOf(src) > -1 &&
|
|
3068
|
-
dest.split(path$
|
|
3068
|
+
dest.split(path$5.dirname(src) + path$5.sep)[1].split(path$5.sep)[0] === path$5.basename(src)
|
|
3069
3069
|
} catch (e) {
|
|
3070
3070
|
return false
|
|
3071
3071
|
}
|
|
@@ -3076,8 +3076,8 @@ var moveSync_1 = {
|
|
|
3076
3076
|
};
|
|
3077
3077
|
|
|
3078
3078
|
const u$1 = universalify.fromCallback;
|
|
3079
|
-
const fs$
|
|
3080
|
-
const path$
|
|
3079
|
+
const fs$6 = gracefulFs;
|
|
3080
|
+
const path$4 = path__default["default"];
|
|
3081
3081
|
const copy = copy$1.copy;
|
|
3082
3082
|
const remove = remove$2.remove;
|
|
3083
3083
|
const mkdirp = mkdirs_1.mkdirp;
|
|
@@ -3091,18 +3091,18 @@ function move (src, dest, opts, cb) {
|
|
|
3091
3091
|
|
|
3092
3092
|
const overwrite = opts.overwrite || opts.clobber || false;
|
|
3093
3093
|
|
|
3094
|
-
src = path$
|
|
3095
|
-
dest = path$
|
|
3094
|
+
src = path$4.resolve(src);
|
|
3095
|
+
dest = path$4.resolve(dest);
|
|
3096
3096
|
|
|
3097
|
-
if (src === dest) return fs$
|
|
3097
|
+
if (src === dest) return fs$6.access(src, cb)
|
|
3098
3098
|
|
|
3099
|
-
fs$
|
|
3099
|
+
fs$6.stat(src, (err, st) => {
|
|
3100
3100
|
if (err) return cb(err)
|
|
3101
3101
|
|
|
3102
3102
|
if (st.isDirectory() && isSrcSubdir(src, dest)) {
|
|
3103
3103
|
return cb(new Error(`Cannot move '${src}' to a subdirectory of itself, '${dest}'.`))
|
|
3104
3104
|
}
|
|
3105
|
-
mkdirp(path$
|
|
3105
|
+
mkdirp(path$4.dirname(dest), err => {
|
|
3106
3106
|
if (err) return cb(err)
|
|
3107
3107
|
return doRename(src, dest, overwrite, cb)
|
|
3108
3108
|
});
|
|
@@ -3124,7 +3124,7 @@ function doRename (src, dest, overwrite, cb) {
|
|
|
3124
3124
|
}
|
|
3125
3125
|
|
|
3126
3126
|
function rename (src, dest, overwrite, cb) {
|
|
3127
|
-
fs$
|
|
3127
|
+
fs$6.rename(src, dest, err => {
|
|
3128
3128
|
if (!err) return cb()
|
|
3129
3129
|
if (err.code !== 'EXDEV') return cb(err)
|
|
3130
3130
|
return moveAcrossDevice(src, dest, overwrite, cb)
|
|
@@ -3144,8 +3144,8 @@ function moveAcrossDevice (src, dest, overwrite, cb) {
|
|
|
3144
3144
|
}
|
|
3145
3145
|
|
|
3146
3146
|
function isSrcSubdir (src, dest) {
|
|
3147
|
-
const srcArray = src.split(path$
|
|
3148
|
-
const destArray = dest.split(path$
|
|
3147
|
+
const srcArray = src.split(path$4.sep);
|
|
3148
|
+
const destArray = dest.split(path$4.sep);
|
|
3149
3149
|
|
|
3150
3150
|
return srcArray.reduce((acc, current, i) => {
|
|
3151
3151
|
return acc && destArray[i] === current
|
|
@@ -3157,8 +3157,8 @@ var move_1 = {
|
|
|
3157
3157
|
};
|
|
3158
3158
|
|
|
3159
3159
|
const u = universalify.fromCallback;
|
|
3160
|
-
const fs$
|
|
3161
|
-
const path$
|
|
3160
|
+
const fs$5 = gracefulFs;
|
|
3161
|
+
const path$3 = path__default["default"];
|
|
3162
3162
|
const mkdir = mkdirs_1;
|
|
3163
3163
|
const pathExists = pathExists_1.pathExists;
|
|
3164
3164
|
|
|
@@ -3168,26 +3168,26 @@ function outputFile (file, data, encoding, callback) {
|
|
|
3168
3168
|
encoding = 'utf8';
|
|
3169
3169
|
}
|
|
3170
3170
|
|
|
3171
|
-
const dir = path$
|
|
3171
|
+
const dir = path$3.dirname(file);
|
|
3172
3172
|
pathExists(dir, (err, itDoes) => {
|
|
3173
3173
|
if (err) return callback(err)
|
|
3174
|
-
if (itDoes) return fs$
|
|
3174
|
+
if (itDoes) return fs$5.writeFile(file, data, encoding, callback)
|
|
3175
3175
|
|
|
3176
3176
|
mkdir.mkdirs(dir, err => {
|
|
3177
3177
|
if (err) return callback(err)
|
|
3178
3178
|
|
|
3179
|
-
fs$
|
|
3179
|
+
fs$5.writeFile(file, data, encoding, callback);
|
|
3180
3180
|
});
|
|
3181
3181
|
});
|
|
3182
3182
|
}
|
|
3183
3183
|
|
|
3184
3184
|
function outputFileSync (file, ...args) {
|
|
3185
|
-
const dir = path$
|
|
3186
|
-
if (fs$
|
|
3187
|
-
return fs$
|
|
3185
|
+
const dir = path$3.dirname(file);
|
|
3186
|
+
if (fs$5.existsSync(dir)) {
|
|
3187
|
+
return fs$5.writeFileSync(file, ...args)
|
|
3188
3188
|
}
|
|
3189
3189
|
mkdir.mkdirsSync(dir);
|
|
3190
|
-
fs$
|
|
3190
|
+
fs$5.writeFileSync(file, ...args);
|
|
3191
3191
|
}
|
|
3192
3192
|
|
|
3193
3193
|
var output = {
|
|
@@ -3200,7 +3200,7 @@ var output = {
|
|
|
3200
3200
|
module.exports = Object.assign(
|
|
3201
3201
|
{},
|
|
3202
3202
|
// Export promiseified graceful-fs:
|
|
3203
|
-
fs$
|
|
3203
|
+
fs$n,
|
|
3204
3204
|
// Export extra methods:
|
|
3205
3205
|
copySync$1,
|
|
3206
3206
|
copy$1,
|
|
@@ -3225,13 +3225,13 @@ var output = {
|
|
|
3225
3225
|
}
|
|
3226
3226
|
} (lib$3));
|
|
3227
3227
|
|
|
3228
|
-
var fs$
|
|
3228
|
+
var fs$4 = libExports$1;
|
|
3229
3229
|
|
|
3230
3230
|
class File {
|
|
3231
3231
|
constructor(path, hash) {
|
|
3232
3232
|
this.path = path;
|
|
3233
3233
|
this.hash = hash;
|
|
3234
|
-
this._fd = fs$
|
|
3234
|
+
this._fd = fs$4.openSync(path, "w");
|
|
3235
3235
|
this.system = undefined;
|
|
3236
3236
|
this._writing = false;
|
|
3237
3237
|
this.originalPath = undefined;
|
|
@@ -3258,14 +3258,14 @@ class File {
|
|
|
3258
3258
|
if (!this._fd) {
|
|
3259
3259
|
throw new Error(`No fd for ${this.path}`);
|
|
3260
3260
|
}
|
|
3261
|
-
fs$
|
|
3262
|
-
fs$
|
|
3261
|
+
fs$4.closeSync(this._fd);
|
|
3262
|
+
fs$4.unlinkSync(this.path);
|
|
3263
3263
|
}
|
|
3264
3264
|
close() {
|
|
3265
3265
|
if (this._fd === undefined) {
|
|
3266
3266
|
throw new Error(`No fd for ${this.path}`);
|
|
3267
3267
|
}
|
|
3268
|
-
fs$
|
|
3268
|
+
fs$4.closeSync(this._fd);
|
|
3269
3269
|
this._fd = undefined;
|
|
3270
3270
|
}
|
|
3271
3271
|
_write() {
|
|
@@ -3273,7 +3273,7 @@ class File {
|
|
|
3273
3273
|
const pending = this._pending.shift();
|
|
3274
3274
|
if (pending) {
|
|
3275
3275
|
assert__default["default"](this._fd !== undefined);
|
|
3276
|
-
fs$
|
|
3276
|
+
fs$4.write(this._fd, pending.data)
|
|
3277
3277
|
.then(() => {
|
|
3278
3278
|
pending.resolve();
|
|
3279
3279
|
assert__default["default"](this._pending);
|
|
@@ -3288,7 +3288,7 @@ class File {
|
|
|
3288
3288
|
})
|
|
3289
3289
|
.catch((e) => {
|
|
3290
3290
|
assert__default["default"](this._fd !== undefined);
|
|
3291
|
-
fs$
|
|
3291
|
+
fs$4.closeSync(this._fd);
|
|
3292
3292
|
this._fd = undefined;
|
|
3293
3293
|
pending.reject(e);
|
|
3294
3294
|
this._clearPending(e);
|
|
@@ -3394,7 +3394,7 @@ var randomstring$1 = {
|
|
|
3394
3394
|
generate: generate
|
|
3395
3395
|
};
|
|
3396
3396
|
|
|
3397
|
-
var fs$
|
|
3397
|
+
var fs$3 = fs__default["default"],
|
|
3398
3398
|
randomstring = randomstring$1;
|
|
3399
3399
|
|
|
3400
3400
|
|
|
@@ -3425,7 +3425,7 @@ function createFile(template, callback) {
|
|
|
3425
3425
|
}
|
|
3426
3426
|
}
|
|
3427
3427
|
|
|
3428
|
-
fs$
|
|
3428
|
+
fs$3.open(filename, 'ax+', 384 /*=0600*/, function(err, fd) {
|
|
3429
3429
|
if (err) {
|
|
3430
3430
|
if (err.code === 'EEXIST') {
|
|
3431
3431
|
// FIXME: infinite loop
|
|
@@ -3441,7 +3441,7 @@ function createFile(template, callback) {
|
|
|
3441
3441
|
}
|
|
3442
3442
|
|
|
3443
3443
|
if (fd) {
|
|
3444
|
-
fs$
|
|
3444
|
+
fs$3.close(fd, function(err) {
|
|
3445
3445
|
callback(err, filename);
|
|
3446
3446
|
});
|
|
3447
3447
|
} else {
|
|
@@ -3466,7 +3466,7 @@ function createFileSync(template) {
|
|
|
3466
3466
|
isExist = false;
|
|
3467
3467
|
filename = randomstring.generate(template);
|
|
3468
3468
|
try {
|
|
3469
|
-
fd = fs$
|
|
3469
|
+
fd = fs$3.openSync(filename, 'ax+', 384 /*=0600*/);
|
|
3470
3470
|
} catch (e) {
|
|
3471
3471
|
if (e.code === 'EEXIST') {
|
|
3472
3472
|
isExist = true;
|
|
@@ -3474,7 +3474,7 @@ function createFileSync(template) {
|
|
|
3474
3474
|
throw e;
|
|
3475
3475
|
}
|
|
3476
3476
|
} finally {
|
|
3477
|
-
fd && fs$
|
|
3477
|
+
fd && fs$3.closeSync(fd);
|
|
3478
3478
|
}
|
|
3479
3479
|
} while (isExist);
|
|
3480
3480
|
|
|
@@ -3509,7 +3509,7 @@ function createDir(template, callback) {
|
|
|
3509
3509
|
}
|
|
3510
3510
|
}
|
|
3511
3511
|
|
|
3512
|
-
fs$
|
|
3512
|
+
fs$3.mkdir(dirname, 448 /*=0700*/, function(err) {
|
|
3513
3513
|
if (err) {
|
|
3514
3514
|
if (err.code === 'EEXIST') {
|
|
3515
3515
|
// FIXME: infinite loop
|
|
@@ -3543,7 +3543,7 @@ function createDirSync(template) {
|
|
|
3543
3543
|
isExist = false;
|
|
3544
3544
|
dirname = randomstring.generate(template);
|
|
3545
3545
|
try {
|
|
3546
|
-
fs$
|
|
3546
|
+
fs$3.mkdirSync(dirname, 448 /*=0700*/);
|
|
3547
3547
|
} catch (e) {
|
|
3548
3548
|
if (e.code === 'EEXIST') {
|
|
3549
3549
|
isExist = true;
|
|
@@ -3592,7 +3592,7 @@ function untarFile(archive, file) {
|
|
|
3592
3592
|
child_process__default["default"].exec(`tar -zxf "${archive}" ${file}`, { cwd: tmpdir }, (err) => {
|
|
3593
3593
|
if (err) {
|
|
3594
3594
|
try {
|
|
3595
|
-
fs$
|
|
3595
|
+
fs$4.removeSync(tmpdir);
|
|
3596
3596
|
}
|
|
3597
3597
|
catch (e) {
|
|
3598
3598
|
console.error("Got an error removing the temp dir", tmpdir);
|
|
@@ -3600,9 +3600,9 @@ function untarFile(archive, file) {
|
|
|
3600
3600
|
reject(err);
|
|
3601
3601
|
return;
|
|
3602
3602
|
}
|
|
3603
|
-
fs$
|
|
3603
|
+
fs$4.readFile(path__default["default"].join(tmpdir, file), "utf8", (error, data) => {
|
|
3604
3604
|
try {
|
|
3605
|
-
fs$
|
|
3605
|
+
fs$4.removeSync(tmpdir);
|
|
3606
3606
|
}
|
|
3607
3607
|
catch (e) {
|
|
3608
3608
|
console.error("Got an error removing the temp dir", tmpdir);
|
|
@@ -3645,12 +3645,12 @@ class Environments {
|
|
|
3645
3645
|
}
|
|
3646
3646
|
}
|
|
3647
3647
|
return new Promise((resolve, reject) => {
|
|
3648
|
-
fs$
|
|
3648
|
+
fs$4.stat(p)
|
|
3649
3649
|
.then((st) => {
|
|
3650
3650
|
if (st.isDirectory()) {
|
|
3651
3651
|
// we're good
|
|
3652
3652
|
this._path = p;
|
|
3653
|
-
fs$
|
|
3653
|
+
fs$4.readdir(p).then((files) => {
|
|
3654
3654
|
const promises = [];
|
|
3655
3655
|
files.forEach((e) => {
|
|
3656
3656
|
if (e.length === 47 && e.indexOf(".tar.gz", 40) === 40) {
|
|
@@ -3685,7 +3685,7 @@ class Environments {
|
|
|
3685
3685
|
.catch((e) => {
|
|
3686
3686
|
if ("code" in e && e.code === "ENOENT") {
|
|
3687
3687
|
// make the directory
|
|
3688
|
-
fs$
|
|
3688
|
+
fs$4.mkdirp(p, (err) => {
|
|
3689
3689
|
if (err) {
|
|
3690
3690
|
reject(`Can't make directory ${p}: ${e.message}`);
|
|
3691
3691
|
return;
|
|
@@ -3707,7 +3707,7 @@ class Environments {
|
|
|
3707
3707
|
return undefined;
|
|
3708
3708
|
}
|
|
3709
3709
|
assert__default["default"](this._path);
|
|
3710
|
-
fs$
|
|
3710
|
+
fs$4.mkdirpSync(this._path);
|
|
3711
3711
|
return new File(path__default["default"].join(this._path, `${environment.hash}.tar.gz`), environment.hash);
|
|
3712
3712
|
}
|
|
3713
3713
|
complete(file) {
|
|
@@ -3798,7 +3798,7 @@ class Environments {
|
|
|
3798
3798
|
remove(hash) {
|
|
3799
3799
|
// ### this should be promisified
|
|
3800
3800
|
try {
|
|
3801
|
-
fs$
|
|
3801
|
+
fs$4.removeSync(this._data[hash].path);
|
|
3802
3802
|
delete this._data[hash];
|
|
3803
3803
|
this.unlink(hash);
|
|
3804
3804
|
this.unlink(undefined, hash);
|
|
@@ -41046,19 +41046,19 @@ function requireQuery () {
|
|
|
41046
41046
|
*/
|
|
41047
41047
|
|
|
41048
41048
|
var debug$1 = requireSrc()('express:view');
|
|
41049
|
-
var path$
|
|
41050
|
-
var fs$
|
|
41049
|
+
var path$2 = path__default["default"];
|
|
41050
|
+
var fs$2 = fs__default["default"];
|
|
41051
41051
|
|
|
41052
41052
|
/**
|
|
41053
41053
|
* Module variables.
|
|
41054
41054
|
* @private
|
|
41055
41055
|
*/
|
|
41056
41056
|
|
|
41057
|
-
var dirname = path$
|
|
41058
|
-
var basename$1 = path$
|
|
41059
|
-
var extname$2 = path$
|
|
41060
|
-
var join$1 = path$
|
|
41061
|
-
var resolve$3 = path$
|
|
41057
|
+
var dirname = path$2.dirname;
|
|
41058
|
+
var basename$1 = path$2.basename;
|
|
41059
|
+
var extname$2 = path$2.extname;
|
|
41060
|
+
var join$1 = path$2.join;
|
|
41061
|
+
var resolve$3 = path$2.resolve;
|
|
41062
41062
|
|
|
41063
41063
|
/**
|
|
41064
41064
|
* Module exports.
|
|
@@ -41207,7 +41207,7 @@ function tryStat(path) {
|
|
|
41207
41207
|
debug$1('stat "%s"', path);
|
|
41208
41208
|
|
|
41209
41209
|
try {
|
|
41210
|
-
return fs$
|
|
41210
|
+
return fs$2.statSync(path);
|
|
41211
41211
|
} catch (e) {
|
|
41212
41212
|
return undefined;
|
|
41213
41213
|
}
|
|
@@ -44785,7 +44785,7 @@ var require$$2 = {
|
|
|
44785
44785
|
]
|
|
44786
44786
|
};
|
|
44787
44787
|
|
|
44788
|
-
var fs$
|
|
44788
|
+
var fs$1 = fs__default["default"];
|
|
44789
44789
|
|
|
44790
44790
|
function Mime() {
|
|
44791
44791
|
// Map of extension -> mime type
|
|
@@ -44835,7 +44835,7 @@ Mime.prototype.load = function(file) {
|
|
|
44835
44835
|
this._loading = file;
|
|
44836
44836
|
// Read file and split into lines
|
|
44837
44837
|
var map = {},
|
|
44838
|
-
content = fs$
|
|
44838
|
+
content = fs$1.readFileSync(file, 'ascii'),
|
|
44839
44839
|
lines = content.split(/[\r\n]+/);
|
|
44840
44840
|
|
|
44841
44841
|
lines.forEach(function(line) {
|
|
@@ -45237,12 +45237,12 @@ var encodeUrl$1 = encodeurl;
|
|
|
45237
45237
|
var escapeHtml$1 = escapeHtml_1;
|
|
45238
45238
|
var etag = etag_1;
|
|
45239
45239
|
var fresh$1 = fresh_1;
|
|
45240
|
-
var fs
|
|
45240
|
+
var fs = fs__default["default"];
|
|
45241
45241
|
var mime$2 = mime_1;
|
|
45242
45242
|
var ms = ms$1;
|
|
45243
45243
|
var onFinished$1 = requireOnFinished();
|
|
45244
45244
|
var parseRange$1 = rangeParser_1;
|
|
45245
|
-
var path$
|
|
45245
|
+
var path$1 = path__default["default"];
|
|
45246
45246
|
var statuses$1 = statuses$3;
|
|
45247
45247
|
var Stream = require$$0__default$1["default"];
|
|
45248
45248
|
var util = require$$4__default["default"];
|
|
@@ -45252,11 +45252,11 @@ var util = require$$4__default["default"];
|
|
|
45252
45252
|
* @private
|
|
45253
45253
|
*/
|
|
45254
45254
|
|
|
45255
|
-
var extname$1 = path$
|
|
45256
|
-
var join = path$
|
|
45257
|
-
var normalize = path$
|
|
45258
|
-
var resolve$2 = path$
|
|
45259
|
-
var sep = path$
|
|
45255
|
+
var extname$1 = path$1.extname;
|
|
45256
|
+
var join = path$1.join;
|
|
45257
|
+
var normalize = path$1.normalize;
|
|
45258
|
+
var resolve$2 = path$1.resolve;
|
|
45259
|
+
var sep = path$1.sep;
|
|
45260
45260
|
|
|
45261
45261
|
/**
|
|
45262
45262
|
* Regular expression for identifying a bytes Range header.
|
|
@@ -45931,7 +45931,7 @@ SendStream.prototype.sendFile = function sendFile (path) {
|
|
|
45931
45931
|
var self = this;
|
|
45932
45932
|
|
|
45933
45933
|
debug('stat "%s"', path);
|
|
45934
|
-
fs
|
|
45934
|
+
fs.stat(path, function onstat (err, stat) {
|
|
45935
45935
|
if (err && err.code === 'ENOENT' && !extname$1(path) && path[path.length - 1] !== sep) {
|
|
45936
45936
|
// not found, check extensions
|
|
45937
45937
|
return next(err)
|
|
@@ -45952,7 +45952,7 @@ SendStream.prototype.sendFile = function sendFile (path) {
|
|
|
45952
45952
|
var p = path + '.' + self._extensions[i++];
|
|
45953
45953
|
|
|
45954
45954
|
debug('stat "%s"', p);
|
|
45955
|
-
fs
|
|
45955
|
+
fs.stat(p, function (err, stat) {
|
|
45956
45956
|
if (err) return next(err)
|
|
45957
45957
|
if (stat.isDirectory()) return next()
|
|
45958
45958
|
self.emit('file', p, stat);
|
|
@@ -45980,7 +45980,7 @@ SendStream.prototype.sendIndex = function sendIndex (path) {
|
|
|
45980
45980
|
var p = join(path, self._index[i]);
|
|
45981
45981
|
|
|
45982
45982
|
debug('stat "%s"', p);
|
|
45983
|
-
fs
|
|
45983
|
+
fs.stat(p, function (err, stat) {
|
|
45984
45984
|
if (err) return next(err)
|
|
45985
45985
|
if (stat.isDirectory()) return next()
|
|
45986
45986
|
self.emit('file', p, stat);
|
|
@@ -46004,7 +46004,7 @@ SendStream.prototype.stream = function stream (path, options) {
|
|
|
46004
46004
|
var res = this.res;
|
|
46005
46005
|
|
|
46006
46006
|
// pipe
|
|
46007
|
-
var stream = fs
|
|
46007
|
+
var stream = fs.createReadStream(path, options);
|
|
46008
46008
|
this.emit('stream', stream);
|
|
46009
46009
|
stream.pipe(res);
|
|
46010
46010
|
|
|
@@ -50617,7 +50617,7 @@ var escapeHtml = escapeHtml_1;
|
|
|
50617
50617
|
var http = require$$2__default["default"];
|
|
50618
50618
|
var isAbsolute = utils.isAbsolute;
|
|
50619
50619
|
var onFinished = requireOnFinished();
|
|
50620
|
-
var path
|
|
50620
|
+
var path = path__default["default"];
|
|
50621
50621
|
var statuses = statuses$3;
|
|
50622
50622
|
var merge = utilsMergeExports;
|
|
50623
50623
|
var sign = cookieSignature.sign;
|
|
@@ -50626,9 +50626,9 @@ var normalizeTypes = utils.normalizeTypes;
|
|
|
50626
50626
|
var setCharset = utils.setCharset;
|
|
50627
50627
|
var cookie = cookie$1;
|
|
50628
50628
|
var send = sendExports;
|
|
50629
|
-
var extname = path
|
|
50629
|
+
var extname = path.extname;
|
|
50630
50630
|
var mime = send.mime;
|
|
50631
|
-
var resolve$1 = path
|
|
50631
|
+
var resolve$1 = path.resolve;
|
|
50632
50632
|
var vary = varyExports;
|
|
50633
50633
|
|
|
50634
50634
|
/**
|
|
@@ -52484,7 +52484,7 @@ function validateCache(option) {
|
|
|
52484
52484
|
// console.log(dir);
|
|
52485
52485
|
let version;
|
|
52486
52486
|
try {
|
|
52487
|
-
version = fs$
|
|
52487
|
+
version = fs$4.readFileSync(file);
|
|
52488
52488
|
if (version.readUInt32BE() === Version) {
|
|
52489
52489
|
return;
|
|
52490
52490
|
}
|
|
@@ -52495,11 +52495,11 @@ function validateCache(option) {
|
|
|
52495
52495
|
if (version) {
|
|
52496
52496
|
console.log(`Wrong version. Destroying cache ${dir}`);
|
|
52497
52497
|
}
|
|
52498
|
-
fs$
|
|
52499
|
-
fs$
|
|
52498
|
+
fs$4.removeSync(dir);
|
|
52499
|
+
fs$4.mkdirpSync(dir);
|
|
52500
52500
|
const buf = Buffer.allocUnsafe(4);
|
|
52501
52501
|
buf.writeUInt32BE(Version);
|
|
52502
|
-
fs$
|
|
52502
|
+
fs$4.writeFileSync(file, buf);
|
|
52503
52503
|
}
|
|
52504
52504
|
function common$1(option) {
|
|
52505
52505
|
validateCache(option);
|
|
@@ -53490,273 +53490,269 @@ var xdgBasedir = {};
|
|
|
53490
53490
|
}
|
|
53491
53491
|
} (xdgBasedir));
|
|
53492
53492
|
|
|
53493
|
-
|
|
53494
|
-
var
|
|
53493
|
+
function hasKey(obj, keys) {
|
|
53494
|
+
var o = obj;
|
|
53495
|
+
keys.slice(0, -1).forEach(function (key) {
|
|
53496
|
+
o = o[key] || {};
|
|
53497
|
+
});
|
|
53495
53498
|
|
|
53496
|
-
|
|
53497
|
-
|
|
53498
|
-
|
|
53499
|
-
minimist = function (args, opts) {
|
|
53500
|
-
if (!opts) opts = {};
|
|
53501
|
-
|
|
53502
|
-
var flags = { bools : {}, strings : {}, unknownFn: null };
|
|
53499
|
+
var key = keys[keys.length - 1];
|
|
53500
|
+
return key in o;
|
|
53501
|
+
}
|
|
53503
53502
|
|
|
53504
|
-
|
|
53505
|
-
|
|
53506
|
-
|
|
53503
|
+
function isNumber(x) {
|
|
53504
|
+
if (typeof x === 'number') { return true; }
|
|
53505
|
+
if ((/^0x[0-9a-f]+$/i).test(x)) { return true; }
|
|
53506
|
+
return (/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/).test(x);
|
|
53507
|
+
}
|
|
53507
53508
|
|
|
53508
|
-
|
|
53509
|
-
|
|
53510
|
-
|
|
53511
|
-
[].concat(opts['boolean']).filter(Boolean).forEach(function (key) {
|
|
53512
|
-
flags.bools[key] = true;
|
|
53513
|
-
});
|
|
53514
|
-
}
|
|
53515
|
-
|
|
53516
|
-
var aliases = {};
|
|
53517
|
-
Object.keys(opts.alias || {}).forEach(function (key) {
|
|
53518
|
-
aliases[key] = [].concat(opts.alias[key]);
|
|
53519
|
-
aliases[key].forEach(function (x) {
|
|
53520
|
-
aliases[x] = [key].concat(aliases[key].filter(function (y) {
|
|
53521
|
-
return x !== y;
|
|
53522
|
-
}));
|
|
53523
|
-
});
|
|
53524
|
-
});
|
|
53509
|
+
function isConstructorOrProto(obj, key) {
|
|
53510
|
+
return (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__';
|
|
53511
|
+
}
|
|
53525
53512
|
|
|
53526
|
-
|
|
53527
|
-
|
|
53528
|
-
if (aliases[key]) {
|
|
53529
|
-
flags.strings[aliases[key]] = true;
|
|
53530
|
-
}
|
|
53531
|
-
});
|
|
53513
|
+
var minimist = function (args, opts) {
|
|
53514
|
+
if (!opts) { opts = {}; }
|
|
53532
53515
|
|
|
53533
|
-
|
|
53534
|
-
|
|
53535
|
-
|
|
53536
|
-
|
|
53537
|
-
|
|
53538
|
-
});
|
|
53539
|
-
|
|
53540
|
-
var notFlags = [];
|
|
53516
|
+
var flags = {
|
|
53517
|
+
bools: {},
|
|
53518
|
+
strings: {},
|
|
53519
|
+
unknownFn: null,
|
|
53520
|
+
};
|
|
53541
53521
|
|
|
53542
|
-
|
|
53543
|
-
|
|
53544
|
-
|
|
53545
|
-
}
|
|
53522
|
+
if (typeof opts.unknown === 'function') {
|
|
53523
|
+
flags.unknownFn = opts.unknown;
|
|
53524
|
+
}
|
|
53546
53525
|
|
|
53547
|
-
|
|
53548
|
-
|
|
53549
|
-
|
|
53550
|
-
|
|
53526
|
+
if (typeof opts.boolean === 'boolean' && opts.boolean) {
|
|
53527
|
+
flags.allBools = true;
|
|
53528
|
+
} else {
|
|
53529
|
+
[].concat(opts.boolean).filter(Boolean).forEach(function (key) {
|
|
53530
|
+
flags.bools[key] = true;
|
|
53531
|
+
});
|
|
53532
|
+
}
|
|
53551
53533
|
|
|
53552
|
-
|
|
53553
|
-
if (arg && flags.unknownFn && !argDefined(key, arg)) {
|
|
53554
|
-
if (flags.unknownFn(arg) === false) return;
|
|
53555
|
-
}
|
|
53534
|
+
var aliases = {};
|
|
53556
53535
|
|
|
53557
|
-
|
|
53558
|
-
|
|
53559
|
-
|
|
53560
|
-
|
|
53561
|
-
|
|
53562
|
-
(aliases[key] || []).forEach(function (x) {
|
|
53563
|
-
setKey(argv, x.split('.'), value);
|
|
53564
|
-
});
|
|
53565
|
-
}
|
|
53536
|
+
function aliasIsBoolean(key) {
|
|
53537
|
+
return aliases[key].some(function (x) {
|
|
53538
|
+
return flags.bools[x];
|
|
53539
|
+
});
|
|
53540
|
+
}
|
|
53566
53541
|
|
|
53567
|
-
|
|
53568
|
-
|
|
53569
|
-
|
|
53570
|
-
|
|
53571
|
-
|
|
53572
|
-
|
|
53573
|
-
|
|
53574
|
-
|
|
53575
|
-
if (o[key] === Array.prototype) o[key] = [];
|
|
53576
|
-
o = o[key];
|
|
53577
|
-
}
|
|
53542
|
+
Object.keys(opts.alias || {}).forEach(function (key) {
|
|
53543
|
+
aliases[key] = [].concat(opts.alias[key]);
|
|
53544
|
+
aliases[key].forEach(function (x) {
|
|
53545
|
+
aliases[x] = [key].concat(aliases[key].filter(function (y) {
|
|
53546
|
+
return x !== y;
|
|
53547
|
+
}));
|
|
53548
|
+
});
|
|
53549
|
+
});
|
|
53578
53550
|
|
|
53579
|
-
|
|
53580
|
-
|
|
53581
|
-
|
|
53582
|
-
|
|
53583
|
-
|
|
53584
|
-
|
|
53585
|
-
|
|
53586
|
-
|
|
53587
|
-
else if (Array.isArray(o[key])) {
|
|
53588
|
-
o[key].push(value);
|
|
53589
|
-
}
|
|
53590
|
-
else {
|
|
53591
|
-
o[key] = [ o[key], value ];
|
|
53592
|
-
}
|
|
53593
|
-
}
|
|
53594
|
-
|
|
53595
|
-
function aliasIsBoolean(key) {
|
|
53596
|
-
return aliases[key].some(function (x) {
|
|
53597
|
-
return flags.bools[x];
|
|
53598
|
-
});
|
|
53599
|
-
}
|
|
53551
|
+
[].concat(opts.string).filter(Boolean).forEach(function (key) {
|
|
53552
|
+
flags.strings[key] = true;
|
|
53553
|
+
if (aliases[key]) {
|
|
53554
|
+
[].concat(aliases[key]).forEach(function (k) {
|
|
53555
|
+
flags.strings[k] = true;
|
|
53556
|
+
});
|
|
53557
|
+
}
|
|
53558
|
+
});
|
|
53600
53559
|
|
|
53601
|
-
|
|
53602
|
-
var arg = args[i];
|
|
53603
|
-
|
|
53604
|
-
if (/^--.+=/.test(arg)) {
|
|
53605
|
-
// Using [\s\S] instead of . because js doesn't support the
|
|
53606
|
-
// 'dotall' regex modifier. See:
|
|
53607
|
-
// http://stackoverflow.com/a/1068308/13216
|
|
53608
|
-
var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
|
|
53609
|
-
var key = m[1];
|
|
53610
|
-
var value = m[2];
|
|
53611
|
-
if (flags.bools[key]) {
|
|
53612
|
-
value = value !== 'false';
|
|
53613
|
-
}
|
|
53614
|
-
setArg(key, value, arg);
|
|
53615
|
-
}
|
|
53616
|
-
else if (/^--no-.+/.test(arg)) {
|
|
53617
|
-
var key = arg.match(/^--no-(.+)/)[1];
|
|
53618
|
-
setArg(key, false, arg);
|
|
53619
|
-
}
|
|
53620
|
-
else if (/^--.+/.test(arg)) {
|
|
53621
|
-
var key = arg.match(/^--(.+)/)[1];
|
|
53622
|
-
var next = args[i + 1];
|
|
53623
|
-
if (next !== undefined && !/^-/.test(next)
|
|
53624
|
-
&& !flags.bools[key]
|
|
53625
|
-
&& !flags.allBools
|
|
53626
|
-
&& (aliases[key] ? !aliasIsBoolean(key) : true)) {
|
|
53627
|
-
setArg(key, next, arg);
|
|
53628
|
-
i++;
|
|
53629
|
-
}
|
|
53630
|
-
else if (/^(true|false)$/.test(next)) {
|
|
53631
|
-
setArg(key, next === 'true', arg);
|
|
53632
|
-
i++;
|
|
53633
|
-
}
|
|
53634
|
-
else {
|
|
53635
|
-
setArg(key, flags.strings[key] ? '' : true, arg);
|
|
53636
|
-
}
|
|
53637
|
-
}
|
|
53638
|
-
else if (/^-[^-]+/.test(arg)) {
|
|
53639
|
-
var letters = arg.slice(1,-1).split('');
|
|
53640
|
-
|
|
53641
|
-
var broken = false;
|
|
53642
|
-
for (var j = 0; j < letters.length; j++) {
|
|
53643
|
-
var next = arg.slice(j+2);
|
|
53644
|
-
|
|
53645
|
-
if (next === '-') {
|
|
53646
|
-
setArg(letters[j], next, arg);
|
|
53647
|
-
continue;
|
|
53648
|
-
}
|
|
53649
|
-
|
|
53650
|
-
if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) {
|
|
53651
|
-
setArg(letters[j], next.split('=')[1], arg);
|
|
53652
|
-
broken = true;
|
|
53653
|
-
break;
|
|
53654
|
-
}
|
|
53655
|
-
|
|
53656
|
-
if (/[A-Za-z]/.test(letters[j])
|
|
53657
|
-
&& /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
|
|
53658
|
-
setArg(letters[j], next, arg);
|
|
53659
|
-
broken = true;
|
|
53660
|
-
break;
|
|
53661
|
-
}
|
|
53662
|
-
|
|
53663
|
-
if (letters[j+1] && letters[j+1].match(/\W/)) {
|
|
53664
|
-
setArg(letters[j], arg.slice(j+2), arg);
|
|
53665
|
-
broken = true;
|
|
53666
|
-
break;
|
|
53667
|
-
}
|
|
53668
|
-
else {
|
|
53669
|
-
setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);
|
|
53670
|
-
}
|
|
53671
|
-
}
|
|
53672
|
-
|
|
53673
|
-
var key = arg.slice(-1)[0];
|
|
53674
|
-
if (!broken && key !== '-') {
|
|
53675
|
-
if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1])
|
|
53676
|
-
&& !flags.bools[key]
|
|
53677
|
-
&& (aliases[key] ? !aliasIsBoolean(key) : true)) {
|
|
53678
|
-
setArg(key, args[i+1], arg);
|
|
53679
|
-
i++;
|
|
53680
|
-
}
|
|
53681
|
-
else if (args[i+1] && /^(true|false)$/.test(args[i+1])) {
|
|
53682
|
-
setArg(key, args[i+1] === 'true', arg);
|
|
53683
|
-
i++;
|
|
53684
|
-
}
|
|
53685
|
-
else {
|
|
53686
|
-
setArg(key, flags.strings[key] ? '' : true, arg);
|
|
53687
|
-
}
|
|
53688
|
-
}
|
|
53689
|
-
}
|
|
53690
|
-
else {
|
|
53691
|
-
if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
|
|
53692
|
-
argv._.push(
|
|
53693
|
-
flags.strings['_'] || !isNumber(arg) ? arg : Number(arg)
|
|
53694
|
-
);
|
|
53695
|
-
}
|
|
53696
|
-
if (opts.stopEarly) {
|
|
53697
|
-
argv._.push.apply(argv._, args.slice(i + 1));
|
|
53698
|
-
break;
|
|
53699
|
-
}
|
|
53700
|
-
}
|
|
53701
|
-
}
|
|
53702
|
-
|
|
53703
|
-
Object.keys(defaults).forEach(function (key) {
|
|
53704
|
-
if (!hasKey(argv, key.split('.'))) {
|
|
53705
|
-
setKey(argv, key.split('.'), defaults[key]);
|
|
53706
|
-
|
|
53707
|
-
(aliases[key] || []).forEach(function (x) {
|
|
53708
|
-
setKey(argv, x.split('.'), defaults[key]);
|
|
53709
|
-
});
|
|
53710
|
-
}
|
|
53711
|
-
});
|
|
53712
|
-
|
|
53713
|
-
if (opts['--']) {
|
|
53714
|
-
argv['--'] = new Array();
|
|
53715
|
-
notFlags.forEach(function(key) {
|
|
53716
|
-
argv['--'].push(key);
|
|
53717
|
-
});
|
|
53718
|
-
}
|
|
53719
|
-
else {
|
|
53720
|
-
notFlags.forEach(function(key) {
|
|
53721
|
-
argv._.push(key);
|
|
53722
|
-
});
|
|
53723
|
-
}
|
|
53560
|
+
var defaults = opts.default || {};
|
|
53724
53561
|
|
|
53725
|
-
|
|
53726
|
-
};
|
|
53562
|
+
var argv = { _: [] };
|
|
53727
53563
|
|
|
53728
|
-
function
|
|
53729
|
-
|
|
53730
|
-
|
|
53731
|
-
|
|
53732
|
-
|
|
53564
|
+
function argDefined(key, arg) {
|
|
53565
|
+
return (flags.allBools && (/^--[^=]+$/).test(arg))
|
|
53566
|
+
|| flags.strings[key]
|
|
53567
|
+
|| flags.bools[key]
|
|
53568
|
+
|| aliases[key];
|
|
53569
|
+
}
|
|
53570
|
+
|
|
53571
|
+
function setKey(obj, keys, value) {
|
|
53572
|
+
var o = obj;
|
|
53573
|
+
for (var i = 0; i < keys.length - 1; i++) {
|
|
53574
|
+
var key = keys[i];
|
|
53575
|
+
if (isConstructorOrProto(o, key)) { return; }
|
|
53576
|
+
if (o[key] === undefined) { o[key] = {}; }
|
|
53577
|
+
if (
|
|
53578
|
+
o[key] === Object.prototype
|
|
53579
|
+
|| o[key] === Number.prototype
|
|
53580
|
+
|| o[key] === String.prototype
|
|
53581
|
+
) {
|
|
53582
|
+
o[key] = {};
|
|
53583
|
+
}
|
|
53584
|
+
if (o[key] === Array.prototype) { o[key] = []; }
|
|
53585
|
+
o = o[key];
|
|
53586
|
+
}
|
|
53733
53587
|
|
|
53734
|
-
|
|
53735
|
-
|
|
53588
|
+
var lastKey = keys[keys.length - 1];
|
|
53589
|
+
if (isConstructorOrProto(o, lastKey)) { return; }
|
|
53590
|
+
if (
|
|
53591
|
+
o === Object.prototype
|
|
53592
|
+
|| o === Number.prototype
|
|
53593
|
+
|| o === String.prototype
|
|
53594
|
+
) {
|
|
53595
|
+
o = {};
|
|
53596
|
+
}
|
|
53597
|
+
if (o === Array.prototype) { o = []; }
|
|
53598
|
+
if (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') {
|
|
53599
|
+
o[lastKey] = value;
|
|
53600
|
+
} else if (Array.isArray(o[lastKey])) {
|
|
53601
|
+
o[lastKey].push(value);
|
|
53602
|
+
} else {
|
|
53603
|
+
o[lastKey] = [o[lastKey], value];
|
|
53604
|
+
}
|
|
53736
53605
|
}
|
|
53737
53606
|
|
|
53738
|
-
function
|
|
53739
|
-
|
|
53740
|
-
|
|
53741
|
-
|
|
53607
|
+
function setArg(key, val, arg) {
|
|
53608
|
+
if (arg && flags.unknownFn && !argDefined(key, arg)) {
|
|
53609
|
+
if (flags.unknownFn(arg) === false) { return; }
|
|
53610
|
+
}
|
|
53611
|
+
|
|
53612
|
+
var value = !flags.strings[key] && isNumber(val)
|
|
53613
|
+
? Number(val)
|
|
53614
|
+
: val;
|
|
53615
|
+
setKey(argv, key.split('.'), value);
|
|
53616
|
+
|
|
53617
|
+
(aliases[key] || []).forEach(function (x) {
|
|
53618
|
+
setKey(argv, x.split('.'), value);
|
|
53619
|
+
});
|
|
53742
53620
|
}
|
|
53743
53621
|
|
|
53622
|
+
Object.keys(flags.bools).forEach(function (key) {
|
|
53623
|
+
setArg(key, defaults[key] === undefined ? false : defaults[key]);
|
|
53624
|
+
});
|
|
53625
|
+
|
|
53626
|
+
var notFlags = [];
|
|
53744
53627
|
|
|
53745
|
-
|
|
53746
|
-
|
|
53628
|
+
if (args.indexOf('--') !== -1) {
|
|
53629
|
+
notFlags = args.slice(args.indexOf('--') + 1);
|
|
53630
|
+
args = args.slice(0, args.indexOf('--'));
|
|
53747
53631
|
}
|
|
53748
|
-
return minimist;
|
|
53749
|
-
}
|
|
53750
53632
|
|
|
53751
|
-
|
|
53633
|
+
for (var i = 0; i < args.length; i++) {
|
|
53634
|
+
var arg = args[i];
|
|
53635
|
+
var key;
|
|
53636
|
+
var next;
|
|
53637
|
+
|
|
53638
|
+
if ((/^--.+=/).test(arg)) {
|
|
53639
|
+
// Using [\s\S] instead of . because js doesn't support the
|
|
53640
|
+
// 'dotall' regex modifier. See:
|
|
53641
|
+
// http://stackoverflow.com/a/1068308/13216
|
|
53642
|
+
var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
|
|
53643
|
+
key = m[1];
|
|
53644
|
+
var value = m[2];
|
|
53645
|
+
if (flags.bools[key]) {
|
|
53646
|
+
value = value !== 'false';
|
|
53647
|
+
}
|
|
53648
|
+
setArg(key, value, arg);
|
|
53649
|
+
} else if ((/^--no-.+/).test(arg)) {
|
|
53650
|
+
key = arg.match(/^--no-(.+)/)[1];
|
|
53651
|
+
setArg(key, false, arg);
|
|
53652
|
+
} else if ((/^--.+/).test(arg)) {
|
|
53653
|
+
key = arg.match(/^--(.+)/)[1];
|
|
53654
|
+
next = args[i + 1];
|
|
53655
|
+
if (
|
|
53656
|
+
next !== undefined
|
|
53657
|
+
&& !(/^(-|--)[^-]/).test(next)
|
|
53658
|
+
&& !flags.bools[key]
|
|
53659
|
+
&& !flags.allBools
|
|
53660
|
+
&& (aliases[key] ? !aliasIsBoolean(key) : true)
|
|
53661
|
+
) {
|
|
53662
|
+
setArg(key, next, arg);
|
|
53663
|
+
i += 1;
|
|
53664
|
+
} else if ((/^(true|false)$/).test(next)) {
|
|
53665
|
+
setArg(key, next === 'true', arg);
|
|
53666
|
+
i += 1;
|
|
53667
|
+
} else {
|
|
53668
|
+
setArg(key, flags.strings[key] ? '' : true, arg);
|
|
53669
|
+
}
|
|
53670
|
+
} else if ((/^-[^-]+/).test(arg)) {
|
|
53671
|
+
var letters = arg.slice(1, -1).split('');
|
|
53672
|
+
|
|
53673
|
+
var broken = false;
|
|
53674
|
+
for (var j = 0; j < letters.length; j++) {
|
|
53675
|
+
next = arg.slice(j + 2);
|
|
53752
53676
|
|
|
53753
|
-
|
|
53754
|
-
|
|
53755
|
-
|
|
53756
|
-
|
|
53677
|
+
if (next === '-') {
|
|
53678
|
+
setArg(letters[j], next, arg);
|
|
53679
|
+
continue;
|
|
53680
|
+
}
|
|
53757
53681
|
|
|
53758
|
-
|
|
53759
|
-
|
|
53682
|
+
if ((/[A-Za-z]/).test(letters[j]) && next[0] === '=') {
|
|
53683
|
+
setArg(letters[j], next.slice(1), arg);
|
|
53684
|
+
broken = true;
|
|
53685
|
+
break;
|
|
53686
|
+
}
|
|
53687
|
+
|
|
53688
|
+
if (
|
|
53689
|
+
(/[A-Za-z]/).test(letters[j])
|
|
53690
|
+
&& (/-?\d+(\.\d*)?(e-?\d+)?$/).test(next)
|
|
53691
|
+
) {
|
|
53692
|
+
setArg(letters[j], next, arg);
|
|
53693
|
+
broken = true;
|
|
53694
|
+
break;
|
|
53695
|
+
}
|
|
53696
|
+
|
|
53697
|
+
if (letters[j + 1] && letters[j + 1].match(/\W/)) {
|
|
53698
|
+
setArg(letters[j], arg.slice(j + 2), arg);
|
|
53699
|
+
broken = true;
|
|
53700
|
+
break;
|
|
53701
|
+
} else {
|
|
53702
|
+
setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);
|
|
53703
|
+
}
|
|
53704
|
+
}
|
|
53705
|
+
|
|
53706
|
+
key = arg.slice(-1)[0];
|
|
53707
|
+
if (!broken && key !== '-') {
|
|
53708
|
+
if (
|
|
53709
|
+
args[i + 1]
|
|
53710
|
+
&& !(/^(-|--)[^-]/).test(args[i + 1])
|
|
53711
|
+
&& !flags.bools[key]
|
|
53712
|
+
&& (aliases[key] ? !aliasIsBoolean(key) : true)
|
|
53713
|
+
) {
|
|
53714
|
+
setArg(key, args[i + 1], arg);
|
|
53715
|
+
i += 1;
|
|
53716
|
+
} else if (args[i + 1] && (/^(true|false)$/).test(args[i + 1])) {
|
|
53717
|
+
setArg(key, args[i + 1] === 'true', arg);
|
|
53718
|
+
i += 1;
|
|
53719
|
+
} else {
|
|
53720
|
+
setArg(key, flags.strings[key] ? '' : true, arg);
|
|
53721
|
+
}
|
|
53722
|
+
}
|
|
53723
|
+
} else {
|
|
53724
|
+
if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
|
|
53725
|
+
argv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));
|
|
53726
|
+
}
|
|
53727
|
+
if (opts.stopEarly) {
|
|
53728
|
+
argv._.push.apply(argv._, args.slice(i + 1));
|
|
53729
|
+
break;
|
|
53730
|
+
}
|
|
53731
|
+
}
|
|
53732
|
+
}
|
|
53733
|
+
|
|
53734
|
+
Object.keys(defaults).forEach(function (k) {
|
|
53735
|
+
if (!hasKey(argv, k.split('.'))) {
|
|
53736
|
+
setKey(argv, k.split('.'), defaults[k]);
|
|
53737
|
+
|
|
53738
|
+
(aliases[k] || []).forEach(function (x) {
|
|
53739
|
+
setKey(argv, x.split('.'), defaults[k]);
|
|
53740
|
+
});
|
|
53741
|
+
}
|
|
53742
|
+
});
|
|
53743
|
+
|
|
53744
|
+
if (opts['--']) {
|
|
53745
|
+
argv['--'] = notFlags.slice();
|
|
53746
|
+
} else {
|
|
53747
|
+
notFlags.forEach(function (k) {
|
|
53748
|
+
argv._.push(k);
|
|
53749
|
+
});
|
|
53750
|
+
}
|
|
53751
|
+
|
|
53752
|
+
return argv;
|
|
53753
|
+
};
|
|
53754
|
+
|
|
53755
|
+
function split(data) {
|
|
53760
53756
|
const pre = data.split("\n");
|
|
53761
53757
|
// rejoin with lines that starts with a whitespace
|
|
53762
53758
|
const out = [];
|
|
@@ -53775,7 +53771,8 @@ function split(data)
|
|
|
53775
53771
|
--idx;
|
|
53776
53772
|
if (idx < cur.length - 1)
|
|
53777
53773
|
cur = cur.substr(0, idx + 1);
|
|
53778
|
-
}
|
|
53774
|
+
}
|
|
53775
|
+
else if (cur.length > 0) {
|
|
53779
53776
|
out.push(cur.trim());
|
|
53780
53777
|
cur = line.trim();
|
|
53781
53778
|
}
|
|
@@ -53785,9 +53782,7 @@ function split(data)
|
|
|
53785
53782
|
}
|
|
53786
53783
|
return out;
|
|
53787
53784
|
}
|
|
53788
|
-
|
|
53789
|
-
function realValue(v)
|
|
53790
|
-
{
|
|
53785
|
+
function realValue(v) {
|
|
53791
53786
|
if (typeof v !== "string")
|
|
53792
53787
|
return v;
|
|
53793
53788
|
if (/^[-0-9.]+$/.exec(v)) {
|
|
@@ -53796,119 +53791,130 @@ function realValue(v)
|
|
|
53796
53791
|
return vf;
|
|
53797
53792
|
}
|
|
53798
53793
|
switch (v) {
|
|
53799
|
-
|
|
53800
|
-
|
|
53801
|
-
|
|
53802
|
-
|
|
53794
|
+
case "true":
|
|
53795
|
+
return true;
|
|
53796
|
+
case "false":
|
|
53797
|
+
return false;
|
|
53803
53798
|
}
|
|
53804
53799
|
return v;
|
|
53805
53800
|
}
|
|
53806
|
-
|
|
53807
|
-
|
|
53801
|
+
class Engine {
|
|
53802
|
+
argv;
|
|
53803
|
+
prefix;
|
|
53804
|
+
additionalFiles;
|
|
53805
|
+
applicationPath;
|
|
53806
|
+
debug;
|
|
53807
|
+
options;
|
|
53808
|
+
configDirs;
|
|
53808
53809
|
constructor(options, argv) {
|
|
53809
53810
|
this.argv = Object.assign({}, argv);
|
|
53810
53811
|
this.prefix = options.prefix;
|
|
53811
53812
|
this.additionalFiles = options.additionalFiles || [];
|
|
53812
|
-
this.applicationPath = options.noApplicationPath ? "" :
|
|
53813
|
-
this.debug = options.debug;
|
|
53813
|
+
this.applicationPath = options.noApplicationPath ? "" : appRootPath.toString();
|
|
53814
|
+
this.debug = options.debug ?? false;
|
|
53814
53815
|
this.options = {};
|
|
53815
|
-
this.configDirs = this.argv["config-dir"] ||
|
|
53816
|
+
this.configDirs = this.argv["config-dir"] || options.configDirs || xdgBasedir.configDirs;
|
|
53816
53817
|
this._read();
|
|
53817
53818
|
}
|
|
53818
|
-
|
|
53819
53819
|
value(name) {
|
|
53820
53820
|
// foo-bar becomes FOO_BAR as env
|
|
53821
|
-
if (name in this.argv)
|
|
53821
|
+
if (name in this.argv) {
|
|
53822
53822
|
return this.argv[name];
|
|
53823
|
+
}
|
|
53823
53824
|
const envname = (this.prefix + "_" + name).replace(/-/g, "_").toUpperCase();
|
|
53824
|
-
if (envname in process.env)
|
|
53825
|
+
if (envname in process.env) {
|
|
53825
53826
|
return realValue(process.env[envname]);
|
|
53826
|
-
|
|
53827
|
-
if (name in this.options)
|
|
53827
|
+
}
|
|
53828
|
+
if (name in this.options) {
|
|
53828
53829
|
return this.options[name];
|
|
53830
|
+
}
|
|
53829
53831
|
return undefined;
|
|
53830
53832
|
}
|
|
53831
|
-
|
|
53833
|
+
string(name) {
|
|
53834
|
+
const ret = this.value(name);
|
|
53835
|
+
if (ret === undefined) {
|
|
53836
|
+
return undefined;
|
|
53837
|
+
}
|
|
53838
|
+
return String(ret);
|
|
53839
|
+
}
|
|
53832
53840
|
_homedir() {
|
|
53833
53841
|
let home = process.env.home;
|
|
53834
53842
|
if (home) {
|
|
53835
|
-
return
|
|
53843
|
+
return path__default["default"].join(home, ".config");
|
|
53836
53844
|
}
|
|
53837
53845
|
return undefined;
|
|
53838
53846
|
}
|
|
53839
|
-
|
|
53840
53847
|
_log(...args) {
|
|
53841
53848
|
if (this.debug)
|
|
53842
53849
|
console.log(...args);
|
|
53843
53850
|
}
|
|
53844
|
-
|
|
53845
53851
|
_read() {
|
|
53846
53852
|
// if we have a config file passed, read it
|
|
53847
|
-
let file = this.
|
|
53853
|
+
let file = this.string("config-file");
|
|
53848
53854
|
if (!file && this.prefix)
|
|
53849
53855
|
file = this.prefix + ".conf";
|
|
53850
53856
|
if (!file)
|
|
53851
53857
|
return;
|
|
53852
|
-
|
|
53853
53858
|
let data = [];
|
|
53854
53859
|
let seen = new Set();
|
|
53855
|
-
const
|
|
53856
|
-
const Success = 1;
|
|
53857
|
-
const Seen = 2;
|
|
53858
|
-
const read = file => {
|
|
53860
|
+
const read = (file) => {
|
|
53859
53861
|
if (seen.has(file))
|
|
53860
|
-
return Seen
|
|
53862
|
+
return 2 /* OptionsReadResult.Seen */;
|
|
53861
53863
|
seen.add(file);
|
|
53862
53864
|
try {
|
|
53863
|
-
const contents =
|
|
53865
|
+
const contents = fs__default["default"].readFileSync(file, "utf8");
|
|
53864
53866
|
this._log(`Loaded ${contents.length} bytes from ${file}`);
|
|
53865
|
-
|
|
53866
53867
|
if (contents) {
|
|
53867
|
-
data.push({ file
|
|
53868
|
-
return Success
|
|
53868
|
+
data.push({ file, contents });
|
|
53869
|
+
return 1 /* OptionsReadResult.Success */;
|
|
53869
53870
|
}
|
|
53870
|
-
}
|
|
53871
|
+
}
|
|
53872
|
+
catch (e) {
|
|
53871
53873
|
this._log(`Failed to load ${file}`);
|
|
53872
53874
|
}
|
|
53873
|
-
return Failed
|
|
53875
|
+
return 0 /* OptionsReadResult.Failed */;
|
|
53874
53876
|
};
|
|
53875
|
-
|
|
53876
53877
|
// console.log("about to read file", file, "additionalFiles", this.additionalFiles, "configDirs", this.configDirs, "applicationPath", this.applicationPath, "homedir", this._homedir());
|
|
53877
|
-
if (
|
|
53878
|
+
if (path__default["default"].isAbsolute(file)) {
|
|
53878
53879
|
read(file);
|
|
53879
|
-
}
|
|
53880
|
+
}
|
|
53881
|
+
else {
|
|
53880
53882
|
this.additionalFiles.forEach(file => {
|
|
53881
|
-
if (
|
|
53883
|
+
if (path__default["default"].isAbsolute(file) && read(file) == 0 /* OptionsReadResult.Failed */) {
|
|
53882
53884
|
read(file + ".conf");
|
|
53885
|
+
}
|
|
53883
53886
|
});
|
|
53884
53887
|
([this.applicationPath, this._homedir()].concat(this.configDirs)).forEach(root => {
|
|
53885
53888
|
// in case we appended with undefined
|
|
53886
|
-
if (!root)
|
|
53889
|
+
if (!root) {
|
|
53887
53890
|
return;
|
|
53891
|
+
}
|
|
53888
53892
|
this.additionalFiles.forEach(additional => {
|
|
53889
|
-
if (!
|
|
53890
|
-
let file =
|
|
53891
|
-
if (read(file) == Failed)
|
|
53893
|
+
if (!path__default["default"].isAbsolute(additional)) {
|
|
53894
|
+
let file = path__default["default"].join(root, additional);
|
|
53895
|
+
if (read(file) == 0 /* OptionsReadResult.Failed */)
|
|
53892
53896
|
read(file + ".conf");
|
|
53893
53897
|
}
|
|
53894
53898
|
});
|
|
53895
|
-
|
|
53896
|
-
|
|
53897
|
-
if (read(filePath) == Failed)
|
|
53899
|
+
let filePath = path__default["default"].join(root, file);
|
|
53900
|
+
if (read(filePath) == 0 /* OptionsReadResult.Failed */) {
|
|
53898
53901
|
read(filePath + ".conf");
|
|
53902
|
+
}
|
|
53899
53903
|
});
|
|
53900
53904
|
}
|
|
53901
53905
|
for (let i = data.length - 1; i >= 0; --i) {
|
|
53902
53906
|
let str = data[i].contents;
|
|
53903
|
-
if (!str)
|
|
53907
|
+
if (!str) {
|
|
53904
53908
|
continue;
|
|
53909
|
+
}
|
|
53905
53910
|
try {
|
|
53906
53911
|
let obj = JSON.parse(str);
|
|
53907
53912
|
for (let key in obj) {
|
|
53908
53913
|
this._log(`Assigning ${JSON.stringify(obj[key])} over ${JSON.stringify(this.options[key])} for ${key} from ${data[i].file} (JSON)`);
|
|
53909
53914
|
this.options[key] = obj[key];
|
|
53910
53915
|
}
|
|
53911
|
-
}
|
|
53916
|
+
}
|
|
53917
|
+
catch (err) {
|
|
53912
53918
|
const items = split(str);
|
|
53913
53919
|
for (let j = 0; j < items.length; ++j) {
|
|
53914
53920
|
const item = items[j].trim();
|
|
@@ -53921,12 +53927,12 @@ class Options {
|
|
|
53921
53927
|
this._log("Couldn't find =", item);
|
|
53922
53928
|
continue;
|
|
53923
53929
|
}
|
|
53924
|
-
const key = item.
|
|
53930
|
+
const key = item.substring(0, eq).trim();
|
|
53925
53931
|
if (!key.length) {
|
|
53926
53932
|
this._log("empty key", item);
|
|
53927
53933
|
continue;
|
|
53928
53934
|
}
|
|
53929
|
-
const value = item.
|
|
53935
|
+
const value = item.substring(eq + 1).trim();
|
|
53930
53936
|
this._log(`Assigning ${value} over ${this.options[key]} for ${key} from ${data[i].file} (INI)`);
|
|
53931
53937
|
this.options[key] = value;
|
|
53932
53938
|
}
|
|
@@ -53934,37 +53940,34 @@ class Options {
|
|
|
53934
53940
|
}
|
|
53935
53941
|
}
|
|
53936
53942
|
}
|
|
53937
|
-
|
|
53938
|
-
|
|
53939
|
-
|
|
53940
|
-
|
|
53941
|
-
if (!
|
|
53942
|
-
|
|
53943
|
-
|
|
53944
|
-
|
|
53945
|
-
|
|
53946
|
-
|
|
53947
|
-
|
|
53948
|
-
const val = data.options.value(name);
|
|
53949
|
-
if (typeof val === "undefined")
|
|
53943
|
+
function options (optionsOptions, argv) {
|
|
53944
|
+
if (!argv) {
|
|
53945
|
+
argv = minimist(process.argv.slice(2));
|
|
53946
|
+
}
|
|
53947
|
+
if (!(optionsOptions instanceof Object)) {
|
|
53948
|
+
optionsOptions = { prefix: optionsOptions || "" };
|
|
53949
|
+
}
|
|
53950
|
+
const engine = new Engine(optionsOptions, argv);
|
|
53951
|
+
function value(name, defaultValue) {
|
|
53952
|
+
const val = engine.value(name);
|
|
53953
|
+
if (val === undefined)
|
|
53950
53954
|
return defaultValue;
|
|
53951
53955
|
return val;
|
|
53952
|
-
}
|
|
53953
|
-
|
|
53954
|
-
|
|
53955
|
-
const v = parseInt(data.options.value(name));
|
|
53956
|
+
}
|
|
53957
|
+
function float(name, defaultValue) {
|
|
53958
|
+
const v = parseFloat(engine.string(name) || "");
|
|
53956
53959
|
if (typeof v === "number" && !isNaN(v))
|
|
53957
53960
|
return v;
|
|
53958
53961
|
return defaultValue;
|
|
53959
|
-
}
|
|
53960
|
-
|
|
53961
|
-
const v =
|
|
53962
|
+
}
|
|
53963
|
+
function int(name, defaultValue) {
|
|
53964
|
+
const v = parseInt(engine.string(name) || "");
|
|
53962
53965
|
if (typeof v === "number" && !isNaN(v))
|
|
53963
53966
|
return v;
|
|
53964
53967
|
return defaultValue;
|
|
53965
|
-
}
|
|
53966
|
-
|
|
53967
|
-
const opt =
|
|
53968
|
+
}
|
|
53969
|
+
function json(name, defaultValue) {
|
|
53970
|
+
const opt = engine.value(name);
|
|
53968
53971
|
if (opt === undefined)
|
|
53969
53972
|
return defaultValue;
|
|
53970
53973
|
if (typeof opt !== "string")
|
|
@@ -53972,12 +53975,22 @@ var options = function(options, argv) {
|
|
|
53972
53975
|
try {
|
|
53973
53976
|
const json = JSON.parse(opt);
|
|
53974
53977
|
return json;
|
|
53975
|
-
}
|
|
53978
|
+
}
|
|
53979
|
+
catch (e) {
|
|
53976
53980
|
}
|
|
53977
53981
|
return defaultValue;
|
|
53978
|
-
}
|
|
53979
|
-
|
|
53980
|
-
|
|
53982
|
+
}
|
|
53983
|
+
function string(name, defaultValue) {
|
|
53984
|
+
return engine.string(name) ?? defaultValue;
|
|
53985
|
+
}
|
|
53986
|
+
return Object.assign(value, {
|
|
53987
|
+
prefix: optionsOptions.prefix,
|
|
53988
|
+
float,
|
|
53989
|
+
int,
|
|
53990
|
+
json,
|
|
53991
|
+
string,
|
|
53992
|
+
});
|
|
53993
|
+
}
|
|
53981
53994
|
|
|
53982
53995
|
const option = options({
|
|
53983
53996
|
prefix: "fisk/scheduler",
|
|
@@ -54005,7 +54018,7 @@ server.on("error", (error) => {
|
|
|
54005
54018
|
});
|
|
54006
54019
|
let schedulerNpmVersion;
|
|
54007
54020
|
try {
|
|
54008
|
-
schedulerNpmVersion = String(JSON.parse(fs$
|
|
54021
|
+
schedulerNpmVersion = String(JSON.parse(fs$4.readFileSync(path__default["default"].join(__dirname, "../package.json"), "utf8")).version);
|
|
54009
54022
|
}
|
|
54010
54023
|
catch (err) {
|
|
54011
54024
|
console.log("Couldn't parse package json", err);
|
|
@@ -54025,7 +54038,7 @@ const db = new Database(path__default["default"].join(common.cacheDir(), "db.jso
|
|
|
54025
54038
|
let objectCache;
|
|
54026
54039
|
const logFileDir = path__default["default"].join(common.cacheDir(), "logs");
|
|
54027
54040
|
try {
|
|
54028
|
-
fs$
|
|
54041
|
+
fs$4.mkdirSync(logFileDir);
|
|
54029
54042
|
}
|
|
54030
54043
|
catch (err) {
|
|
54031
54044
|
/* */
|
|
@@ -54266,14 +54279,14 @@ function purgeEnvironmentsToMaxSize() {
|
|
|
54266
54279
|
const p = Environments.instance.path;
|
|
54267
54280
|
try {
|
|
54268
54281
|
let purged = false;
|
|
54269
|
-
fs$
|
|
54282
|
+
fs$4.readdirSync(p)
|
|
54270
54283
|
.map((file) => {
|
|
54271
54284
|
// console.log("got file", file);
|
|
54272
54285
|
const abs = path__default["default"].join(p, file);
|
|
54273
54286
|
if (file.length !== 47 || file.indexOf(".tar.gz", 40) !== 40) {
|
|
54274
54287
|
try {
|
|
54275
54288
|
console.log("Removing unexpected file", abs);
|
|
54276
|
-
fs$
|
|
54289
|
+
fs$4.removeSync(abs);
|
|
54277
54290
|
}
|
|
54278
54291
|
catch (err) {
|
|
54279
54292
|
console.error("Failed to remove file", abs, err);
|
|
@@ -54282,7 +54295,7 @@ function purgeEnvironmentsToMaxSize() {
|
|
|
54282
54295
|
}
|
|
54283
54296
|
let stat;
|
|
54284
54297
|
try {
|
|
54285
|
-
stat = fs$
|
|
54298
|
+
stat = fs$4.statSync(abs);
|
|
54286
54299
|
}
|
|
54287
54300
|
catch (err) {
|
|
54288
54301
|
return undefined;
|
|
@@ -54490,7 +54503,7 @@ server.on("listen", (app) => {
|
|
|
54490
54503
|
res.sendStatus(404);
|
|
54491
54504
|
return;
|
|
54492
54505
|
}
|
|
54493
|
-
const rstream = fs$
|
|
54506
|
+
const rstream = fs$4.createReadStream(env.path);
|
|
54494
54507
|
rstream.on("error", (err) => {
|
|
54495
54508
|
console.error("Got read stream error for", env.path, err);
|
|
54496
54509
|
rstream.close();
|
|
@@ -54501,7 +54514,7 @@ server.on("listen", (app) => {
|
|
|
54501
54514
|
console.log("quitting", req.query);
|
|
54502
54515
|
if ("purge_environments" in req.query) {
|
|
54503
54516
|
try {
|
|
54504
|
-
fs$
|
|
54517
|
+
fs$4.removeSync(path__default["default"].join(common.cacheDir(), "environments"));
|
|
54505
54518
|
}
|
|
54506
54519
|
catch (err) {
|
|
54507
54520
|
/* */
|
|
@@ -54575,7 +54588,7 @@ ${msg.stdout ? "stdout:\n" + msg.stdout + "\n" : ""}${msg.stderr ? "stderr:\n" +
|
|
|
54575
54588
|
});
|
|
54576
54589
|
function updateLogFilesToMonitors() {
|
|
54577
54590
|
if (monitors.length) {
|
|
54578
|
-
fs$
|
|
54591
|
+
fs$4.readdir(logFileDir, (err, files) => {
|
|
54579
54592
|
if (files) {
|
|
54580
54593
|
files = files.reverse();
|
|
54581
54594
|
}
|
|
@@ -54588,13 +54601,13 @@ function updateLogFilesToMonitors() {
|
|
|
54588
54601
|
}
|
|
54589
54602
|
}
|
|
54590
54603
|
function clearLogFiles() {
|
|
54591
|
-
fs$
|
|
54604
|
+
fs$4.readdir(logFileDir, (err, files) => {
|
|
54592
54605
|
if (err) {
|
|
54593
54606
|
console.log("Got error removing log files", err);
|
|
54594
54607
|
return;
|
|
54595
54608
|
}
|
|
54596
54609
|
for (const file of files) {
|
|
54597
|
-
fs$
|
|
54610
|
+
fs$4.unlink(path__default["default"].join(logFileDir, file), (error) => {
|
|
54598
54611
|
if (error) {
|
|
54599
54612
|
console.log("failed to remove file", path__default["default"].join(logFileDir, file), error);
|
|
54600
54613
|
}
|
|
@@ -54604,7 +54617,7 @@ function clearLogFiles() {
|
|
|
54604
54617
|
});
|
|
54605
54618
|
}
|
|
54606
54619
|
try {
|
|
54607
|
-
fs$
|
|
54620
|
+
fs$4.watch(logFileDir, (type) => {
|
|
54608
54621
|
if (type === "rename") {
|
|
54609
54622
|
updateLogFilesToMonitors();
|
|
54610
54623
|
}
|
|
@@ -54639,7 +54652,7 @@ function formatDate(date) {
|
|
|
54639
54652
|
}
|
|
54640
54653
|
function addLogFile(log) {
|
|
54641
54654
|
try {
|
|
54642
|
-
fs$
|
|
54655
|
+
fs$4.writeFileSync(path__default["default"].join(logFileDir, `${formatDate(new Date())} ${log.source} ${log.ip}`), log.contents);
|
|
54643
54656
|
}
|
|
54644
54657
|
catch (err) {
|
|
54645
54658
|
console.error(`Failed to write log file from ${log.ip}`, err);
|
|
@@ -55055,7 +55068,7 @@ server.on("monitor", (client) => {
|
|
|
55055
55068
|
break;
|
|
55056
55069
|
case "logFiles":
|
|
55057
55070
|
// console.log("logFiles:", message);
|
|
55058
|
-
fs$
|
|
55071
|
+
fs$4.readdir(logFileDir, (err, files) => {
|
|
55059
55072
|
if (files) {
|
|
55060
55073
|
files = files.reverse();
|
|
55061
55074
|
}
|
|
@@ -55070,7 +55083,7 @@ server.on("monitor", (client) => {
|
|
|
55070
55083
|
return;
|
|
55071
55084
|
}
|
|
55072
55085
|
const f = path__default["default"].join(logFileDir, message.file);
|
|
55073
|
-
fs$
|
|
55086
|
+
fs$4.readFile(f, "utf8", (err, contents) => {
|
|
55074
55087
|
// console.log("sending file", f, contents.length);
|
|
55075
55088
|
client.send({ type: "logFile", file: f, contents: contents || "" });
|
|
55076
55089
|
});
|