@shopify/cli-hydrogen 1.0.9 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/{Command-720f737d.js → Command-a8d57e22.js} +590 -528
- package/dist/Command-a8d57e22.js.map +1 -0
- package/dist/commands/hydrogen/build.js +77 -0
- package/dist/commands/hydrogen/build.js.map +1 -0
- package/dist/commands/hydrogen/check.js +1 -1
- package/dist/commands/hydrogen/dev.js +39 -0
- package/dist/commands/hydrogen/dev.js.map +1 -0
- package/dist/commands/hydrogen/init.js +8 -7
- package/dist/commands/hydrogen/init.js.map +1 -1
- package/dist/commands/hydrogen/preview.js +32 -3321
- package/dist/commands/hydrogen/preview.js.map +1 -1
- package/package.json +7 -11
- package/dist/Command-720f737d.js.map +0 -1
|
@@ -6,7 +6,7 @@ import require$$0$6 from 'assert';
|
|
|
6
6
|
import require$$0$8, { join, dirname, basename, parse as parse$b, resolve as resolve$2 } from 'path';
|
|
7
7
|
import require$$0$9 from 'os';
|
|
8
8
|
import require$$0$a from 'events';
|
|
9
|
-
import { path as path$t, output
|
|
9
|
+
import { path as path$t, output } from '@shopify/cli-kit';
|
|
10
10
|
import require$$0$2 from 'tty';
|
|
11
11
|
import require$$1$1 from 'readline';
|
|
12
12
|
import require$$0$b from 'buffer';
|
|
@@ -21,7 +21,7 @@ import 'prettier';
|
|
|
21
21
|
import { Command as Command$1 } from '@oclif/core';
|
|
22
22
|
|
|
23
23
|
var name = "@shopify/cli-hydrogen";
|
|
24
|
-
var version$1 = "
|
|
24
|
+
var version$1 = "2.0.0";
|
|
25
25
|
var description$1 = "Commands for building Hydrogen storefronts";
|
|
26
26
|
var type$2 = "module";
|
|
27
27
|
var files = [
|
|
@@ -54,22 +54,18 @@ var eslintConfig = {
|
|
|
54
54
|
};
|
|
55
55
|
var dependencies$1 = {
|
|
56
56
|
"@oclif/core": "1.3.6",
|
|
57
|
-
"@
|
|
58
|
-
"@miniflare/core": "^2.2.0",
|
|
59
|
-
"@miniflare/runner-vm": "^2.2.0",
|
|
60
|
-
"@miniflare/shared": "^2.2.0",
|
|
61
|
-
"@miniflare/storage-memory": "^2.2.0",
|
|
62
|
-
"@miniflare/web-sockets": "^2.2.0",
|
|
57
|
+
"@shopify/mini-oxygen": "^0.0.5",
|
|
63
58
|
"@types/prettier": "^2.4.4",
|
|
64
|
-
prettier: "^2.6.1"
|
|
59
|
+
prettier: "^2.6.1",
|
|
60
|
+
vite: "^2.9.1"
|
|
65
61
|
};
|
|
66
62
|
var peerDependencies = {
|
|
67
|
-
"@shopify/cli-kit": "1.
|
|
63
|
+
"@shopify/cli-kit": "1.1.1"
|
|
68
64
|
};
|
|
69
65
|
var devDependencies = {
|
|
70
|
-
"@shopify/cli-testing": "0.30.2",
|
|
71
66
|
"@babel/core": "^7.17.8",
|
|
72
67
|
"@shopify/ast-utilities": "^1.3.4",
|
|
68
|
+
"@shopify/cli-testing": "0.30.2",
|
|
73
69
|
"@shopify/prettier-config": "^1.1.2",
|
|
74
70
|
"@types/change-case": "^2.3.1",
|
|
75
71
|
"@types/connect": "^3.4.35",
|
|
@@ -103,7 +99,7 @@ var devDependencies = {
|
|
|
103
99
|
typescript: "^4.2.3",
|
|
104
100
|
unconfig: "^0.3.2",
|
|
105
101
|
vite: "^2.9.1",
|
|
106
|
-
vitest: "0.
|
|
102
|
+
vitest: "0.9.4"
|
|
107
103
|
};
|
|
108
104
|
var engines = {
|
|
109
105
|
node: "^14.13.1 || ^16.0.0 || ^17.0.0"
|
|
@@ -154,7 +150,7 @@ const SEMVER_SPEC_VERSION = '2.0.0';
|
|
|
154
150
|
|
|
155
151
|
const MAX_LENGTH$4 = 256;
|
|
156
152
|
const MAX_SAFE_INTEGER$3 = Number.MAX_SAFE_INTEGER ||
|
|
157
|
-
|
|
153
|
+
/* istanbul ignore next */ 9007199254740991;
|
|
158
154
|
|
|
159
155
|
// Max safe segment length for coercion.
|
|
160
156
|
const MAX_SAFE_COMPONENT_LENGTH = 16;
|
|
@@ -163,7 +159,7 @@ var constants$6 = {
|
|
|
163
159
|
SEMVER_SPEC_VERSION,
|
|
164
160
|
MAX_LENGTH: MAX_LENGTH$4,
|
|
165
161
|
MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$3,
|
|
166
|
-
MAX_SAFE_COMPONENT_LENGTH
|
|
162
|
+
MAX_SAFE_COMPONENT_LENGTH,
|
|
167
163
|
};
|
|
168
164
|
|
|
169
165
|
const debug$5 = (
|
|
@@ -189,7 +185,7 @@ let R = 0;
|
|
|
189
185
|
|
|
190
186
|
const createToken = (name, value, isGlobal) => {
|
|
191
187
|
const index = R++;
|
|
192
|
-
debug(index, value);
|
|
188
|
+
debug(name, index, value);
|
|
193
189
|
t[name] = index;
|
|
194
190
|
src[index] = value;
|
|
195
191
|
re[index] = new RegExp(value, isGlobal ? 'g' : undefined);
|
|
@@ -357,8 +353,8 @@ createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` +
|
|
|
357
353
|
// Star ranges basically just allow anything at all.
|
|
358
354
|
createToken('STAR', '(<|>)?=?\\s*\\*');
|
|
359
355
|
// >=0.0.0 is like a star
|
|
360
|
-
createToken('GTE0', '^\\s*>=\\s*0
|
|
361
|
-
createToken('GTE0PRE', '^\\s*>=\\s*0
|
|
356
|
+
createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$');
|
|
357
|
+
createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$');
|
|
362
358
|
}(re$5, re$5.exports));
|
|
363
359
|
|
|
364
360
|
// parse out just the options we care about so we always get a consistent
|
|
@@ -367,9 +363,9 @@ const opts = ['includePrerelease', 'loose', 'rtl'];
|
|
|
367
363
|
const parseOptions$4 = options =>
|
|
368
364
|
!options ? {}
|
|
369
365
|
: typeof options !== 'object' ? { loose: true }
|
|
370
|
-
: opts.filter(k => options[k]).reduce((
|
|
371
|
-
|
|
372
|
-
return
|
|
366
|
+
: opts.filter(k => options[k]).reduce((o, k) => {
|
|
367
|
+
o[k] = true;
|
|
368
|
+
return o
|
|
373
369
|
}, {});
|
|
374
370
|
var parseOptions_1 = parseOptions$4;
|
|
375
371
|
|
|
@@ -394,7 +390,7 @@ const rcompareIdentifiers = (a, b) => compareIdentifiers$1(b, a);
|
|
|
394
390
|
|
|
395
391
|
var identifiers = {
|
|
396
392
|
compareIdentifiers: compareIdentifiers$1,
|
|
397
|
-
rcompareIdentifiers
|
|
393
|
+
rcompareIdentifiers,
|
|
398
394
|
};
|
|
399
395
|
|
|
400
396
|
const debug$4 = debug_1;
|
|
@@ -664,7 +660,7 @@ class SemVer$e {
|
|
|
664
660
|
if (identifier) {
|
|
665
661
|
// 1.2.0-beta.1 bumps to 1.2.0-beta.2,
|
|
666
662
|
// 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
|
|
667
|
-
if (this.prerelease[0] ===
|
|
663
|
+
if (compareIdentifiers(this.prerelease[0], identifier) === 0) {
|
|
668
664
|
if (isNaN(this.prerelease[1])) {
|
|
669
665
|
this.prerelease = [identifier, 0];
|
|
670
666
|
}
|
|
@@ -685,7 +681,7 @@ class SemVer$e {
|
|
|
685
681
|
|
|
686
682
|
var semver$1 = SemVer$e;
|
|
687
683
|
|
|
688
|
-
const {MAX_LENGTH: MAX_LENGTH$2} = constants$6;
|
|
684
|
+
const { MAX_LENGTH: MAX_LENGTH$2 } = constants$6;
|
|
689
685
|
const { re: re$3, t: t$3 } = re$5.exports;
|
|
690
686
|
const SemVer$d = semver$1;
|
|
691
687
|
|
|
@@ -742,7 +738,10 @@ const inc = (version, release, options, identifier) => {
|
|
|
742
738
|
}
|
|
743
739
|
|
|
744
740
|
try {
|
|
745
|
-
return new SemVer$c(
|
|
741
|
+
return new SemVer$c(
|
|
742
|
+
version instanceof SemVer$c ? version.version : version,
|
|
743
|
+
options
|
|
744
|
+
).inc(release, identifier).version
|
|
746
745
|
} catch (er) {
|
|
747
746
|
return null
|
|
748
747
|
}
|
|
@@ -856,17 +855,21 @@ const lte$1 = lte_1;
|
|
|
856
855
|
const cmp$1 = (a, op, b, loose) => {
|
|
857
856
|
switch (op) {
|
|
858
857
|
case '===':
|
|
859
|
-
if (typeof a === 'object')
|
|
858
|
+
if (typeof a === 'object') {
|
|
860
859
|
a = a.version;
|
|
861
|
-
|
|
860
|
+
}
|
|
861
|
+
if (typeof b === 'object') {
|
|
862
862
|
b = b.version;
|
|
863
|
+
}
|
|
863
864
|
return a === b
|
|
864
865
|
|
|
865
866
|
case '!==':
|
|
866
|
-
if (typeof a === 'object')
|
|
867
|
+
if (typeof a === 'object') {
|
|
867
868
|
a = a.version;
|
|
868
|
-
|
|
869
|
+
}
|
|
870
|
+
if (typeof b === 'object') {
|
|
869
871
|
b = b.version;
|
|
872
|
+
}
|
|
870
873
|
return a !== b
|
|
871
874
|
|
|
872
875
|
case '':
|
|
@@ -897,7 +900,7 @@ var cmp_1 = cmp$1;
|
|
|
897
900
|
|
|
898
901
|
const SemVer$6 = semver$1;
|
|
899
902
|
const parse$5 = parse_1$2;
|
|
900
|
-
const {re: re$2, t: t$2} = re$5.exports;
|
|
903
|
+
const { re: re$2, t: t$2 } = re$5.exports;
|
|
901
904
|
|
|
902
905
|
const coerce = (version, options) => {
|
|
903
906
|
if (version instanceof SemVer$6) {
|
|
@@ -940,8 +943,9 @@ const coerce = (version, options) => {
|
|
|
940
943
|
re$2[t$2.COERCERTL].lastIndex = -1;
|
|
941
944
|
}
|
|
942
945
|
|
|
943
|
-
if (match === null)
|
|
946
|
+
if (match === null) {
|
|
944
947
|
return null
|
|
948
|
+
}
|
|
945
949
|
|
|
946
950
|
return parse$5(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)
|
|
947
951
|
};
|
|
@@ -1737,9 +1741,9 @@ class Range$a {
|
|
|
1737
1741
|
// First, split based on boolean or ||
|
|
1738
1742
|
this.raw = range;
|
|
1739
1743
|
this.set = range
|
|
1740
|
-
.split(
|
|
1744
|
+
.split('||')
|
|
1741
1745
|
// map the range to a 2d array of comparators
|
|
1742
|
-
.map(
|
|
1746
|
+
.map(r => this.parseRange(r.trim()))
|
|
1743
1747
|
// throw out any comparator lists that are empty
|
|
1744
1748
|
// this generally means that it was not a valid range, which is allowed
|
|
1745
1749
|
// in loose mode, but will still throw if the WHOLE range is invalid.
|
|
@@ -1754,9 +1758,9 @@ class Range$a {
|
|
|
1754
1758
|
// keep the first one, in case they're all null sets
|
|
1755
1759
|
const first = this.set[0];
|
|
1756
1760
|
this.set = this.set.filter(c => !isNullSet(c[0]));
|
|
1757
|
-
if (this.set.length === 0)
|
|
1761
|
+
if (this.set.length === 0) {
|
|
1758
1762
|
this.set = [first];
|
|
1759
|
-
else if (this.set.length > 1) {
|
|
1763
|
+
} else if (this.set.length > 1) {
|
|
1760
1764
|
// if we have any that are *, then the range is just *
|
|
1761
1765
|
for (const c of this.set) {
|
|
1762
1766
|
if (c.length === 1 && isAny(c[0])) {
|
|
@@ -1792,8 +1796,9 @@ class Range$a {
|
|
|
1792
1796
|
const memoOpts = Object.keys(this.options).join(',');
|
|
1793
1797
|
const memoKey = `parseRange:${memoOpts}:${range}`;
|
|
1794
1798
|
const cached = cache.get(memoKey);
|
|
1795
|
-
if (cached)
|
|
1799
|
+
if (cached) {
|
|
1796
1800
|
return cached
|
|
1801
|
+
}
|
|
1797
1802
|
|
|
1798
1803
|
const loose = this.options.loose;
|
|
1799
1804
|
// `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
|
|
@@ -1802,7 +1807,7 @@ class Range$a {
|
|
|
1802
1807
|
debug$3('hyphen replace', range);
|
|
1803
1808
|
// `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
|
|
1804
1809
|
range = range.replace(re$1[t$1.COMPARATORTRIM], comparatorTrimReplace);
|
|
1805
|
-
debug$3('comparator trim', range
|
|
1810
|
+
debug$3('comparator trim', range);
|
|
1806
1811
|
|
|
1807
1812
|
// `~ 1.2.3` => `~1.2.3`
|
|
1808
1813
|
range = range.replace(re$1[t$1.TILDETRIM], tildeTrimReplace);
|
|
@@ -1816,30 +1821,37 @@ class Range$a {
|
|
|
1816
1821
|
// At this point, the range is completely trimmed and
|
|
1817
1822
|
// ready to be split into comparators.
|
|
1818
1823
|
|
|
1819
|
-
|
|
1820
|
-
const rangeList = range
|
|
1824
|
+
let rangeList = range
|
|
1821
1825
|
.split(' ')
|
|
1822
1826
|
.map(comp => parseComparator(comp, this.options))
|
|
1823
1827
|
.join(' ')
|
|
1824
1828
|
.split(/\s+/)
|
|
1825
1829
|
// >=0.0.0 is equivalent to *
|
|
1826
|
-
.map(comp => replaceGTE0(comp, this.options))
|
|
1830
|
+
.map(comp => replaceGTE0(comp, this.options));
|
|
1831
|
+
|
|
1832
|
+
if (loose) {
|
|
1827
1833
|
// in loose mode, throw out any that are not valid comparators
|
|
1828
|
-
.filter(
|
|
1829
|
-
|
|
1834
|
+
rangeList = rangeList.filter(comp => {
|
|
1835
|
+
debug$3('loose invalid filter', comp, this.options);
|
|
1836
|
+
return !!comp.match(re$1[t$1.COMPARATORLOOSE])
|
|
1837
|
+
});
|
|
1838
|
+
}
|
|
1839
|
+
debug$3('range list', rangeList);
|
|
1830
1840
|
|
|
1831
1841
|
// if any comparators are the null set, then replace with JUST null set
|
|
1832
1842
|
// if more than one comparator, remove any * comparators
|
|
1833
1843
|
// also, don't include the same comparator more than once
|
|
1834
|
-
rangeList.length;
|
|
1835
1844
|
const rangeMap = new Map();
|
|
1836
|
-
|
|
1837
|
-
|
|
1845
|
+
const comparators = rangeList.map(comp => new Comparator$3(comp, this.options));
|
|
1846
|
+
for (const comp of comparators) {
|
|
1847
|
+
if (isNullSet(comp)) {
|
|
1838
1848
|
return [comp]
|
|
1849
|
+
}
|
|
1839
1850
|
rangeMap.set(comp.value, comp);
|
|
1840
1851
|
}
|
|
1841
|
-
if (rangeMap.size > 1 && rangeMap.has(''))
|
|
1852
|
+
if (rangeMap.size > 1 && rangeMap.has('')) {
|
|
1842
1853
|
rangeMap.delete('');
|
|
1854
|
+
}
|
|
1843
1855
|
|
|
1844
1856
|
const result = [...rangeMap.values()];
|
|
1845
1857
|
cache.set(memoKey, result);
|
|
@@ -1904,7 +1916,7 @@ const {
|
|
|
1904
1916
|
t: t$1,
|
|
1905
1917
|
comparatorTrimReplace,
|
|
1906
1918
|
tildeTrimReplace,
|
|
1907
|
-
caretTrimReplace
|
|
1919
|
+
caretTrimReplace,
|
|
1908
1920
|
} = re$5.exports;
|
|
1909
1921
|
|
|
1910
1922
|
const isNullSet = c => c.value === '<0.0.0-0';
|
|
@@ -1953,8 +1965,8 @@ const isX = id => !id || id.toLowerCase() === 'x' || id === '*';
|
|
|
1953
1965
|
// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0
|
|
1954
1966
|
// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0
|
|
1955
1967
|
const replaceTildes = (comp, options) =>
|
|
1956
|
-
comp.trim().split(/\s+/).map((
|
|
1957
|
-
return replaceTilde(
|
|
1968
|
+
comp.trim().split(/\s+/).map((c) => {
|
|
1969
|
+
return replaceTilde(c, options)
|
|
1958
1970
|
}).join(' ');
|
|
1959
1971
|
|
|
1960
1972
|
const replaceTilde = (comp, options) => {
|
|
@@ -1992,8 +2004,8 @@ const replaceTilde = (comp, options) => {
|
|
|
1992
2004
|
// ^1.2.3 --> >=1.2.3 <2.0.0-0
|
|
1993
2005
|
// ^1.2.0 --> >=1.2.0 <2.0.0-0
|
|
1994
2006
|
const replaceCarets = (comp, options) =>
|
|
1995
|
-
comp.trim().split(/\s+/).map((
|
|
1996
|
-
return replaceCaret(
|
|
2007
|
+
comp.trim().split(/\s+/).map((c) => {
|
|
2008
|
+
return replaceCaret(c, options)
|
|
1997
2009
|
}).join(' ');
|
|
1998
2010
|
|
|
1999
2011
|
const replaceCaret = (comp, options) => {
|
|
@@ -2051,8 +2063,8 @@ const replaceCaret = (comp, options) => {
|
|
|
2051
2063
|
|
|
2052
2064
|
const replaceXRanges = (comp, options) => {
|
|
2053
2065
|
debug$3('replaceXRanges', comp, options);
|
|
2054
|
-
return comp.split(/\s+/).map((
|
|
2055
|
-
return replaceXRange(
|
|
2066
|
+
return comp.split(/\s+/).map((c) => {
|
|
2067
|
+
return replaceXRange(c, options)
|
|
2056
2068
|
}).join(' ')
|
|
2057
2069
|
};
|
|
2058
2070
|
|
|
@@ -2113,8 +2125,9 @@ const replaceXRange = (comp, options) => {
|
|
|
2113
2125
|
}
|
|
2114
2126
|
}
|
|
2115
2127
|
|
|
2116
|
-
if (gtlt === '<')
|
|
2128
|
+
if (gtlt === '<') {
|
|
2117
2129
|
pr = '-0';
|
|
2130
|
+
}
|
|
2118
2131
|
|
|
2119
2132
|
ret = `${gtlt + M}.${m}.${p}${pr}`;
|
|
2120
2133
|
} else if (xm) {
|
|
@@ -2223,6 +2236,7 @@ class Comparator$2 {
|
|
|
2223
2236
|
static get ANY () {
|
|
2224
2237
|
return ANY$2
|
|
2225
2238
|
}
|
|
2239
|
+
|
|
2226
2240
|
constructor (comp, options) {
|
|
2227
2241
|
options = parseOptions(options);
|
|
2228
2242
|
|
|
@@ -2299,7 +2313,7 @@ class Comparator$2 {
|
|
|
2299
2313
|
if (!options || typeof options !== 'object') {
|
|
2300
2314
|
options = {
|
|
2301
2315
|
loose: !!options,
|
|
2302
|
-
includePrerelease: false
|
|
2316
|
+
includePrerelease: false,
|
|
2303
2317
|
};
|
|
2304
2318
|
}
|
|
2305
2319
|
|
|
@@ -2347,7 +2361,7 @@ class Comparator$2 {
|
|
|
2347
2361
|
var comparator = Comparator$2;
|
|
2348
2362
|
|
|
2349
2363
|
const parseOptions = parseOptions_1;
|
|
2350
|
-
const {re, t} = re$5.exports;
|
|
2364
|
+
const { re, t } = re$5.exports;
|
|
2351
2365
|
const cmp = cmp_1;
|
|
2352
2366
|
const debug$2 = debug_1;
|
|
2353
2367
|
const SemVer$4 = semver$1;
|
|
@@ -2473,8 +2487,9 @@ const minVersion = (range, loose) => {
|
|
|
2473
2487
|
throw new Error(`Unexpected operation: ${comparator.operator}`)
|
|
2474
2488
|
}
|
|
2475
2489
|
});
|
|
2476
|
-
if (setMin && (!minver || gt$1(minver, setMin)))
|
|
2490
|
+
if (setMin && (!minver || gt$1(minver, setMin))) {
|
|
2477
2491
|
minver = setMin;
|
|
2492
|
+
}
|
|
2478
2493
|
}
|
|
2479
2494
|
|
|
2480
2495
|
if (minver && range.test(minver)) {
|
|
@@ -2499,7 +2514,7 @@ var valid = validRange;
|
|
|
2499
2514
|
|
|
2500
2515
|
const SemVer = semver$1;
|
|
2501
2516
|
const Comparator$1 = comparator;
|
|
2502
|
-
const {ANY: ANY$1} = Comparator$1;
|
|
2517
|
+
const { ANY: ANY$1 } = Comparator$1;
|
|
2503
2518
|
const Range$2 = range$2;
|
|
2504
2519
|
const satisfies$2 = satisfies_1;
|
|
2505
2520
|
const gt = gt_1;
|
|
@@ -2603,38 +2618,41 @@ const satisfies$1 = satisfies_1;
|
|
|
2603
2618
|
const compare$2 = compare_1;
|
|
2604
2619
|
var simplify = (versions, range, options) => {
|
|
2605
2620
|
const set = [];
|
|
2606
|
-
let
|
|
2621
|
+
let first = null;
|
|
2607
2622
|
let prev = null;
|
|
2608
2623
|
const v = versions.sort((a, b) => compare$2(a, b, options));
|
|
2609
2624
|
for (const version of v) {
|
|
2610
2625
|
const included = satisfies$1(version, range, options);
|
|
2611
2626
|
if (included) {
|
|
2612
2627
|
prev = version;
|
|
2613
|
-
if (!
|
|
2614
|
-
|
|
2628
|
+
if (!first) {
|
|
2629
|
+
first = version;
|
|
2630
|
+
}
|
|
2615
2631
|
} else {
|
|
2616
2632
|
if (prev) {
|
|
2617
|
-
set.push([
|
|
2633
|
+
set.push([first, prev]);
|
|
2618
2634
|
}
|
|
2619
2635
|
prev = null;
|
|
2620
|
-
|
|
2636
|
+
first = null;
|
|
2621
2637
|
}
|
|
2622
2638
|
}
|
|
2623
|
-
if (
|
|
2624
|
-
set.push([
|
|
2639
|
+
if (first) {
|
|
2640
|
+
set.push([first, null]);
|
|
2641
|
+
}
|
|
2625
2642
|
|
|
2626
2643
|
const ranges = [];
|
|
2627
2644
|
for (const [min, max] of set) {
|
|
2628
|
-
if (min === max)
|
|
2645
|
+
if (min === max) {
|
|
2629
2646
|
ranges.push(min);
|
|
2630
|
-
else if (!max && min === v[0])
|
|
2647
|
+
} else if (!max && min === v[0]) {
|
|
2631
2648
|
ranges.push('*');
|
|
2632
|
-
else if (!max)
|
|
2649
|
+
} else if (!max) {
|
|
2633
2650
|
ranges.push(`>=${min}`);
|
|
2634
|
-
else if (min === v[0])
|
|
2651
|
+
} else if (min === v[0]) {
|
|
2635
2652
|
ranges.push(`<=${max}`);
|
|
2636
|
-
else
|
|
2653
|
+
} else {
|
|
2637
2654
|
ranges.push(`${min} - ${max}`);
|
|
2655
|
+
}
|
|
2638
2656
|
}
|
|
2639
2657
|
const simplified = ranges.join(' || ');
|
|
2640
2658
|
const original = typeof range.raw === 'string' ? range.raw : String(range);
|
|
@@ -2684,8 +2702,9 @@ const compare$1 = compare_1;
|
|
|
2684
2702
|
// - Else return true
|
|
2685
2703
|
|
|
2686
2704
|
const subset = (sub, dom, options = {}) => {
|
|
2687
|
-
if (sub === dom)
|
|
2705
|
+
if (sub === dom) {
|
|
2688
2706
|
return true
|
|
2707
|
+
}
|
|
2689
2708
|
|
|
2690
2709
|
sub = new Range(sub, options);
|
|
2691
2710
|
dom = new Range(dom, options);
|
|
@@ -2695,73 +2714,84 @@ const subset = (sub, dom, options = {}) => {
|
|
|
2695
2714
|
for (const simpleDom of dom.set) {
|
|
2696
2715
|
const isSub = simpleSubset(simpleSub, simpleDom, options);
|
|
2697
2716
|
sawNonNull = sawNonNull || isSub !== null;
|
|
2698
|
-
if (isSub)
|
|
2717
|
+
if (isSub) {
|
|
2699
2718
|
continue OUTER
|
|
2719
|
+
}
|
|
2700
2720
|
}
|
|
2701
2721
|
// the null set is a subset of everything, but null simple ranges in
|
|
2702
2722
|
// a complex range should be ignored. so if we saw a non-null range,
|
|
2703
2723
|
// then we know this isn't a subset, but if EVERY simple range was null,
|
|
2704
2724
|
// then it is a subset.
|
|
2705
|
-
if (sawNonNull)
|
|
2725
|
+
if (sawNonNull) {
|
|
2706
2726
|
return false
|
|
2727
|
+
}
|
|
2707
2728
|
}
|
|
2708
2729
|
return true
|
|
2709
2730
|
};
|
|
2710
2731
|
|
|
2711
2732
|
const simpleSubset = (sub, dom, options) => {
|
|
2712
|
-
if (sub === dom)
|
|
2733
|
+
if (sub === dom) {
|
|
2713
2734
|
return true
|
|
2735
|
+
}
|
|
2714
2736
|
|
|
2715
2737
|
if (sub.length === 1 && sub[0].semver === ANY) {
|
|
2716
|
-
if (dom.length === 1 && dom[0].semver === ANY)
|
|
2738
|
+
if (dom.length === 1 && dom[0].semver === ANY) {
|
|
2717
2739
|
return true
|
|
2718
|
-
else if (options.includePrerelease)
|
|
2719
|
-
sub = [
|
|
2720
|
-
else
|
|
2721
|
-
sub = [
|
|
2740
|
+
} else if (options.includePrerelease) {
|
|
2741
|
+
sub = [new Comparator('>=0.0.0-0')];
|
|
2742
|
+
} else {
|
|
2743
|
+
sub = [new Comparator('>=0.0.0')];
|
|
2744
|
+
}
|
|
2722
2745
|
}
|
|
2723
2746
|
|
|
2724
2747
|
if (dom.length === 1 && dom[0].semver === ANY) {
|
|
2725
|
-
if (options.includePrerelease)
|
|
2748
|
+
if (options.includePrerelease) {
|
|
2726
2749
|
return true
|
|
2727
|
-
else
|
|
2728
|
-
dom = [
|
|
2750
|
+
} else {
|
|
2751
|
+
dom = [new Comparator('>=0.0.0')];
|
|
2752
|
+
}
|
|
2729
2753
|
}
|
|
2730
2754
|
|
|
2731
2755
|
const eqSet = new Set();
|
|
2732
2756
|
let gt, lt;
|
|
2733
2757
|
for (const c of sub) {
|
|
2734
|
-
if (c.operator === '>' || c.operator === '>=')
|
|
2758
|
+
if (c.operator === '>' || c.operator === '>=') {
|
|
2735
2759
|
gt = higherGT(gt, c, options);
|
|
2736
|
-
else if (c.operator === '<' || c.operator === '<=')
|
|
2760
|
+
} else if (c.operator === '<' || c.operator === '<=') {
|
|
2737
2761
|
lt = lowerLT(lt, c, options);
|
|
2738
|
-
else
|
|
2762
|
+
} else {
|
|
2739
2763
|
eqSet.add(c.semver);
|
|
2764
|
+
}
|
|
2740
2765
|
}
|
|
2741
2766
|
|
|
2742
|
-
if (eqSet.size > 1)
|
|
2767
|
+
if (eqSet.size > 1) {
|
|
2743
2768
|
return null
|
|
2769
|
+
}
|
|
2744
2770
|
|
|
2745
2771
|
let gtltComp;
|
|
2746
2772
|
if (gt && lt) {
|
|
2747
2773
|
gtltComp = compare$1(gt.semver, lt.semver, options);
|
|
2748
|
-
if (gtltComp > 0)
|
|
2774
|
+
if (gtltComp > 0) {
|
|
2749
2775
|
return null
|
|
2750
|
-
else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))
|
|
2776
|
+
} else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {
|
|
2751
2777
|
return null
|
|
2778
|
+
}
|
|
2752
2779
|
}
|
|
2753
2780
|
|
|
2754
2781
|
// will iterate one or zero times
|
|
2755
2782
|
for (const eq of eqSet) {
|
|
2756
|
-
if (gt && !satisfies(eq, String(gt), options))
|
|
2783
|
+
if (gt && !satisfies(eq, String(gt), options)) {
|
|
2757
2784
|
return null
|
|
2785
|
+
}
|
|
2758
2786
|
|
|
2759
|
-
if (lt && !satisfies(eq, String(lt), options))
|
|
2787
|
+
if (lt && !satisfies(eq, String(lt), options)) {
|
|
2760
2788
|
return null
|
|
2789
|
+
}
|
|
2761
2790
|
|
|
2762
2791
|
for (const c of dom) {
|
|
2763
|
-
if (!satisfies(eq, String(c), options))
|
|
2792
|
+
if (!satisfies(eq, String(c), options)) {
|
|
2764
2793
|
return false
|
|
2794
|
+
}
|
|
2765
2795
|
}
|
|
2766
2796
|
|
|
2767
2797
|
return true
|
|
@@ -2797,10 +2827,12 @@ const simpleSubset = (sub, dom, options) => {
|
|
|
2797
2827
|
}
|
|
2798
2828
|
if (c.operator === '>' || c.operator === '>=') {
|
|
2799
2829
|
higher = higherGT(gt, c, options);
|
|
2800
|
-
if (higher === c && higher !== gt)
|
|
2830
|
+
if (higher === c && higher !== gt) {
|
|
2801
2831
|
return false
|
|
2802
|
-
|
|
2832
|
+
}
|
|
2833
|
+
} else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {
|
|
2803
2834
|
return false
|
|
2835
|
+
}
|
|
2804
2836
|
}
|
|
2805
2837
|
if (lt) {
|
|
2806
2838
|
if (needDomLTPre) {
|
|
@@ -2813,37 +2845,44 @@ const simpleSubset = (sub, dom, options) => {
|
|
|
2813
2845
|
}
|
|
2814
2846
|
if (c.operator === '<' || c.operator === '<=') {
|
|
2815
2847
|
lower = lowerLT(lt, c, options);
|
|
2816
|
-
if (lower === c && lower !== lt)
|
|
2848
|
+
if (lower === c && lower !== lt) {
|
|
2817
2849
|
return false
|
|
2818
|
-
|
|
2850
|
+
}
|
|
2851
|
+
} else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {
|
|
2819
2852
|
return false
|
|
2853
|
+
}
|
|
2820
2854
|
}
|
|
2821
|
-
if (!c.operator && (lt || gt) && gtltComp !== 0)
|
|
2855
|
+
if (!c.operator && (lt || gt) && gtltComp !== 0) {
|
|
2822
2856
|
return false
|
|
2857
|
+
}
|
|
2823
2858
|
}
|
|
2824
2859
|
|
|
2825
2860
|
// if there was a < or >, and nothing in the dom, then must be false
|
|
2826
2861
|
// UNLESS it was limited by another range in the other direction.
|
|
2827
2862
|
// Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0
|
|
2828
|
-
if (gt && hasDomLT && !lt && gtltComp !== 0)
|
|
2863
|
+
if (gt && hasDomLT && !lt && gtltComp !== 0) {
|
|
2829
2864
|
return false
|
|
2865
|
+
}
|
|
2830
2866
|
|
|
2831
|
-
if (lt && hasDomGT && !gt && gtltComp !== 0)
|
|
2867
|
+
if (lt && hasDomGT && !gt && gtltComp !== 0) {
|
|
2832
2868
|
return false
|
|
2869
|
+
}
|
|
2833
2870
|
|
|
2834
2871
|
// we needed a prerelease range in a specific tuple, but didn't get one
|
|
2835
2872
|
// then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,
|
|
2836
2873
|
// because it includes prereleases in the 1.2.3 tuple
|
|
2837
|
-
if (needDomGTPre || needDomLTPre)
|
|
2874
|
+
if (needDomGTPre || needDomLTPre) {
|
|
2838
2875
|
return false
|
|
2876
|
+
}
|
|
2839
2877
|
|
|
2840
2878
|
return true
|
|
2841
2879
|
};
|
|
2842
2880
|
|
|
2843
2881
|
// >=1.2.3 is lower than >1.2.3
|
|
2844
2882
|
const higherGT = (a, b, options) => {
|
|
2845
|
-
if (!a)
|
|
2883
|
+
if (!a) {
|
|
2846
2884
|
return b
|
|
2885
|
+
}
|
|
2847
2886
|
const comp = compare$1(a.semver, b.semver, options);
|
|
2848
2887
|
return comp > 0 ? a
|
|
2849
2888
|
: comp < 0 ? b
|
|
@@ -2853,8 +2892,9 @@ const higherGT = (a, b, options) => {
|
|
|
2853
2892
|
|
|
2854
2893
|
// <=1.2.3 is higher than <1.2.3
|
|
2855
2894
|
const lowerLT = (a, b, options) => {
|
|
2856
|
-
if (!a)
|
|
2895
|
+
if (!a) {
|
|
2857
2896
|
return b
|
|
2897
|
+
}
|
|
2858
2898
|
const comp = compare$1(a.semver, b.semver, options);
|
|
2859
2899
|
return comp < 0 ? a
|
|
2860
2900
|
: comp > 0 ? b
|
|
@@ -4059,13 +4099,13 @@ function patch$1 (fs) {
|
|
|
4059
4099
|
fs.lstatSync = statFixSync(fs.lstatSync);
|
|
4060
4100
|
|
|
4061
4101
|
// if lchmod/lchown do not exist, then make them no-ops
|
|
4062
|
-
if (!fs.lchmod) {
|
|
4102
|
+
if (fs.chmod && !fs.lchmod) {
|
|
4063
4103
|
fs.lchmod = function (path, mode, cb) {
|
|
4064
4104
|
if (cb) process.nextTick(cb);
|
|
4065
4105
|
};
|
|
4066
4106
|
fs.lchmodSync = function () {};
|
|
4067
4107
|
}
|
|
4068
|
-
if (!fs.lchown) {
|
|
4108
|
+
if (fs.chown && !fs.lchown) {
|
|
4069
4109
|
fs.lchown = function (path, uid, gid, cb) {
|
|
4070
4110
|
if (cb) process.nextTick(cb);
|
|
4071
4111
|
};
|
|
@@ -4082,32 +4122,38 @@ function patch$1 (fs) {
|
|
|
4082
4122
|
// CPU to a busy looping process, which can cause the program causing the lock
|
|
4083
4123
|
// contention to be starved of CPU by node, so the contention doesn't resolve.
|
|
4084
4124
|
if (platform$1 === "win32") {
|
|
4085
|
-
fs.rename =
|
|
4086
|
-
|
|
4087
|
-
|
|
4088
|
-
|
|
4089
|
-
|
|
4090
|
-
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
|
|
4095
|
-
|
|
4096
|
-
|
|
4097
|
-
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
|
|
4101
|
-
backoff
|
|
4102
|
-
|
|
4103
|
-
|
|
4104
|
-
|
|
4105
|
-
|
|
4106
|
-
|
|
4125
|
+
fs.rename = typeof fs.rename !== 'function' ? fs.rename
|
|
4126
|
+
: (function (fs$rename) {
|
|
4127
|
+
function rename (from, to, cb) {
|
|
4128
|
+
var start = Date.now();
|
|
4129
|
+
var backoff = 0;
|
|
4130
|
+
fs$rename(from, to, function CB (er) {
|
|
4131
|
+
if (er
|
|
4132
|
+
&& (er.code === "EACCES" || er.code === "EPERM")
|
|
4133
|
+
&& Date.now() - start < 60000) {
|
|
4134
|
+
setTimeout(function() {
|
|
4135
|
+
fs.stat(to, function (stater, st) {
|
|
4136
|
+
if (stater && stater.code === "ENOENT")
|
|
4137
|
+
fs$rename(from, to, CB);
|
|
4138
|
+
else
|
|
4139
|
+
cb(er);
|
|
4140
|
+
});
|
|
4141
|
+
}, backoff);
|
|
4142
|
+
if (backoff < 100)
|
|
4143
|
+
backoff += 10;
|
|
4144
|
+
return;
|
|
4145
|
+
}
|
|
4146
|
+
if (cb) cb(er);
|
|
4147
|
+
});
|
|
4148
|
+
}
|
|
4149
|
+
if (Object.setPrototypeOf) Object.setPrototypeOf(rename, fs$rename);
|
|
4150
|
+
return rename
|
|
4151
|
+
})(fs.rename);
|
|
4107
4152
|
}
|
|
4108
4153
|
|
|
4109
4154
|
// if read() returns EAGAIN, then just try it again.
|
|
4110
|
-
fs.read =
|
|
4155
|
+
fs.read = typeof fs.read !== 'function' ? fs.read
|
|
4156
|
+
: (function (fs$read) {
|
|
4111
4157
|
function read (fd, buffer, offset, length, position, callback_) {
|
|
4112
4158
|
var callback;
|
|
4113
4159
|
if (callback_ && typeof callback_ === 'function') {
|
|
@@ -4128,7 +4174,8 @@ function patch$1 (fs) {
|
|
|
4128
4174
|
return read
|
|
4129
4175
|
})(fs.read);
|
|
4130
4176
|
|
|
4131
|
-
fs.readSync =
|
|
4177
|
+
fs.readSync = typeof fs.readSync !== 'function' ? fs.readSync
|
|
4178
|
+
: (function (fs$readSync) { return function (fd, buffer, offset, length, position) {
|
|
4132
4179
|
var eagCounter = 0;
|
|
4133
4180
|
while (true) {
|
|
4134
4181
|
try {
|
|
@@ -4187,7 +4234,7 @@ function patch$1 (fs) {
|
|
|
4187
4234
|
}
|
|
4188
4235
|
|
|
4189
4236
|
function patchLutimes (fs) {
|
|
4190
|
-
if (constants$5.hasOwnProperty("O_SYMLINK")) {
|
|
4237
|
+
if (constants$5.hasOwnProperty("O_SYMLINK") && fs.futimes) {
|
|
4191
4238
|
fs.lutimes = function (path, at, mt, cb) {
|
|
4192
4239
|
fs.open(path, constants$5.O_SYMLINK, function (er, fd) {
|
|
4193
4240
|
if (er) {
|
|
@@ -4221,7 +4268,7 @@ function patch$1 (fs) {
|
|
|
4221
4268
|
return ret
|
|
4222
4269
|
};
|
|
4223
4270
|
|
|
4224
|
-
} else {
|
|
4271
|
+
} else if (fs.futimes) {
|
|
4225
4272
|
fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb); };
|
|
4226
4273
|
fs.lutimesSync = function () {};
|
|
4227
4274
|
}
|
|
@@ -4669,16 +4716,35 @@ function patch (fs) {
|
|
|
4669
4716
|
|
|
4670
4717
|
var fs$readdir = fs.readdir;
|
|
4671
4718
|
fs.readdir = readdir;
|
|
4719
|
+
var noReaddirOptionVersions = /^v[0-5]\./;
|
|
4672
4720
|
function readdir (path, options, cb) {
|
|
4673
4721
|
if (typeof options === 'function')
|
|
4674
4722
|
cb = options, options = null;
|
|
4675
4723
|
|
|
4724
|
+
var go$readdir = noReaddirOptionVersions.test(process.version)
|
|
4725
|
+
? function go$readdir (path, options, cb, startTime) {
|
|
4726
|
+
return fs$readdir(path, fs$readdirCallback(
|
|
4727
|
+
path, options, cb, startTime
|
|
4728
|
+
))
|
|
4729
|
+
}
|
|
4730
|
+
: function go$readdir (path, options, cb, startTime) {
|
|
4731
|
+
return fs$readdir(path, options, fs$readdirCallback(
|
|
4732
|
+
path, options, cb, startTime
|
|
4733
|
+
))
|
|
4734
|
+
};
|
|
4735
|
+
|
|
4676
4736
|
return go$readdir(path, options, cb)
|
|
4677
4737
|
|
|
4678
|
-
function
|
|
4679
|
-
return
|
|
4738
|
+
function fs$readdirCallback (path, options, cb, startTime) {
|
|
4739
|
+
return function (err, files) {
|
|
4680
4740
|
if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
|
|
4681
|
-
enqueue([
|
|
4741
|
+
enqueue([
|
|
4742
|
+
go$readdir,
|
|
4743
|
+
[path, options, cb],
|
|
4744
|
+
err,
|
|
4745
|
+
startTime || Date.now(),
|
|
4746
|
+
Date.now()
|
|
4747
|
+
]);
|
|
4682
4748
|
else {
|
|
4683
4749
|
if (files && files.sort)
|
|
4684
4750
|
files.sort();
|
|
@@ -4686,7 +4752,7 @@ function patch (fs) {
|
|
|
4686
4752
|
if (typeof cb === 'function')
|
|
4687
4753
|
cb.call(this, err, files);
|
|
4688
4754
|
}
|
|
4689
|
-
}
|
|
4755
|
+
}
|
|
4690
4756
|
}
|
|
4691
4757
|
}
|
|
4692
4758
|
|
|
@@ -4962,7 +5028,6 @@ Object.assign(exports, fs);
|
|
|
4962
5028
|
api.forEach(method => {
|
|
4963
5029
|
exports[method] = u(fs[method]);
|
|
4964
5030
|
});
|
|
4965
|
-
exports.realpath.native = u(fs.realpath.native);
|
|
4966
5031
|
|
|
4967
5032
|
// We differ from mz/fs in that we still ship the old, broken, fs.exists()
|
|
4968
5033
|
// since we are a drop-in replacement for the native module
|
|
@@ -5025,6 +5090,16 @@ if (typeof fs.writev === 'function') {
|
|
|
5025
5090
|
})
|
|
5026
5091
|
};
|
|
5027
5092
|
}
|
|
5093
|
+
|
|
5094
|
+
// fs.realpath.native sometimes not available if fs is monkey-patched
|
|
5095
|
+
if (typeof fs.realpath.native === 'function') {
|
|
5096
|
+
exports.realpath.native = u(fs.realpath.native);
|
|
5097
|
+
} else {
|
|
5098
|
+
process.emitWarning(
|
|
5099
|
+
'fs.realpath.native is not a function. Is fs being monkey-patched?',
|
|
5100
|
+
'Warning', 'fs-extra-WARN0003'
|
|
5101
|
+
);
|
|
5102
|
+
}
|
|
5028
5103
|
}(fs$v));
|
|
5029
5104
|
|
|
5030
5105
|
var makeDir$1 = {};
|
|
@@ -5088,14 +5163,26 @@ var mkdirs$2 = {
|
|
|
5088
5163
|
ensureDirSync: makeDirSync
|
|
5089
5164
|
};
|
|
5090
5165
|
|
|
5091
|
-
const
|
|
5166
|
+
const u$9 = universalify$1.fromPromise;
|
|
5167
|
+
const fs$s = fs$v;
|
|
5168
|
+
|
|
5169
|
+
function pathExists$8 (path) {
|
|
5170
|
+
return fs$s.access(path).then(() => true).catch(() => false)
|
|
5171
|
+
}
|
|
5172
|
+
|
|
5173
|
+
var pathExists_1 = {
|
|
5174
|
+
pathExists: u$9(pathExists$8),
|
|
5175
|
+
pathExistsSync: fs$s.existsSync
|
|
5176
|
+
};
|
|
5177
|
+
|
|
5178
|
+
const fs$r = gracefulFs;
|
|
5092
5179
|
|
|
5093
5180
|
function utimesMillis$1 (path, atime, mtime, callback) {
|
|
5094
5181
|
// if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback)
|
|
5095
|
-
fs$
|
|
5182
|
+
fs$r.open(path, 'r+', (err, fd) => {
|
|
5096
5183
|
if (err) return callback(err)
|
|
5097
|
-
fs$
|
|
5098
|
-
fs$
|
|
5184
|
+
fs$r.futimes(fd, atime, mtime, futimesErr => {
|
|
5185
|
+
fs$r.close(fd, closeErr => {
|
|
5099
5186
|
if (callback) callback(futimesErr || closeErr);
|
|
5100
5187
|
});
|
|
5101
5188
|
});
|
|
@@ -5103,9 +5190,9 @@ function utimesMillis$1 (path, atime, mtime, callback) {
|
|
|
5103
5190
|
}
|
|
5104
5191
|
|
|
5105
5192
|
function utimesMillisSync$1 (path, atime, mtime) {
|
|
5106
|
-
const fd = fs$
|
|
5107
|
-
fs$
|
|
5108
|
-
return fs$
|
|
5193
|
+
const fd = fs$r.openSync(path, 'r+');
|
|
5194
|
+
fs$r.futimesSync(fd, atime, mtime);
|
|
5195
|
+
return fs$r.closeSync(fd)
|
|
5109
5196
|
}
|
|
5110
5197
|
|
|
5111
5198
|
var utimes = {
|
|
@@ -5113,14 +5200,14 @@ var utimes = {
|
|
|
5113
5200
|
utimesMillisSync: utimesMillisSync$1
|
|
5114
5201
|
};
|
|
5115
5202
|
|
|
5116
|
-
const fs$
|
|
5203
|
+
const fs$q = fs$v;
|
|
5117
5204
|
const path$r = require$$0$8;
|
|
5118
5205
|
const util$6 = require$$0$3;
|
|
5119
5206
|
|
|
5120
5207
|
function getStats$2 (src, dest, opts) {
|
|
5121
5208
|
const statFunc = opts.dereference
|
|
5122
|
-
? (file) => fs$
|
|
5123
|
-
: (file) => fs$
|
|
5209
|
+
? (file) => fs$q.stat(file, { bigint: true })
|
|
5210
|
+
: (file) => fs$q.lstat(file, { bigint: true });
|
|
5124
5211
|
return Promise.all([
|
|
5125
5212
|
statFunc(src),
|
|
5126
5213
|
statFunc(dest).catch(err => {
|
|
@@ -5133,8 +5220,8 @@ function getStats$2 (src, dest, opts) {
|
|
|
5133
5220
|
function getStatsSync (src, dest, opts) {
|
|
5134
5221
|
let destStat;
|
|
5135
5222
|
const statFunc = opts.dereference
|
|
5136
|
-
? (file) => fs$
|
|
5137
|
-
: (file) => fs$
|
|
5223
|
+
? (file) => fs$q.statSync(file, { bigint: true })
|
|
5224
|
+
: (file) => fs$q.lstatSync(file, { bigint: true });
|
|
5138
5225
|
const srcStat = statFunc(src);
|
|
5139
5226
|
try {
|
|
5140
5227
|
destStat = statFunc(dest);
|
|
@@ -5212,7 +5299,7 @@ function checkParentPaths (src, srcStat, dest, funcName, cb) {
|
|
|
5212
5299
|
const srcParent = path$r.resolve(path$r.dirname(src));
|
|
5213
5300
|
const destParent = path$r.resolve(path$r.dirname(dest));
|
|
5214
5301
|
if (destParent === srcParent || destParent === path$r.parse(destParent).root) return cb()
|
|
5215
|
-
fs$
|
|
5302
|
+
fs$q.stat(destParent, { bigint: true }, (err, destStat) => {
|
|
5216
5303
|
if (err) {
|
|
5217
5304
|
if (err.code === 'ENOENT') return cb()
|
|
5218
5305
|
return cb(err)
|
|
@@ -5230,7 +5317,7 @@ function checkParentPathsSync (src, srcStat, dest, funcName) {
|
|
|
5230
5317
|
if (destParent === srcParent || destParent === path$r.parse(destParent).root) return
|
|
5231
5318
|
let destStat;
|
|
5232
5319
|
try {
|
|
5233
|
-
destStat = fs$
|
|
5320
|
+
destStat = fs$q.statSync(destParent, { bigint: true });
|
|
5234
5321
|
} catch (err) {
|
|
5235
5322
|
if (err.code === 'ENOENT') return
|
|
5236
5323
|
throw err
|
|
@@ -5266,193 +5353,12 @@ var stat$5 = {
|
|
|
5266
5353
|
areIdentical: areIdentical$2
|
|
5267
5354
|
};
|
|
5268
5355
|
|
|
5269
|
-
const fs$
|
|
5356
|
+
const fs$p = gracefulFs;
|
|
5270
5357
|
const path$q = require$$0$8;
|
|
5271
|
-
const mkdirsSync$1 = mkdirs$2.mkdirsSync;
|
|
5272
|
-
const utimesMillisSync = utimes.utimesMillisSync;
|
|
5273
|
-
const stat$4 = stat$5;
|
|
5274
|
-
|
|
5275
|
-
function copySync$2 (src, dest, opts) {
|
|
5276
|
-
if (typeof opts === 'function') {
|
|
5277
|
-
opts = { filter: opts };
|
|
5278
|
-
}
|
|
5279
|
-
|
|
5280
|
-
opts = opts || {};
|
|
5281
|
-
opts.clobber = 'clobber' in opts ? !!opts.clobber : true; // default to true for now
|
|
5282
|
-
opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber; // overwrite falls back to clobber
|
|
5283
|
-
|
|
5284
|
-
// Warn about using preserveTimestamps on 32-bit node
|
|
5285
|
-
if (opts.preserveTimestamps && process.arch === 'ia32') {
|
|
5286
|
-
console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n
|
|
5287
|
-
see https://github.com/jprichardson/node-fs-extra/issues/269`);
|
|
5288
|
-
}
|
|
5289
|
-
|
|
5290
|
-
const { srcStat, destStat } = stat$4.checkPathsSync(src, dest, 'copy', opts);
|
|
5291
|
-
stat$4.checkParentPathsSync(src, srcStat, dest, 'copy');
|
|
5292
|
-
return handleFilterAndCopy(destStat, src, dest, opts)
|
|
5293
|
-
}
|
|
5294
|
-
|
|
5295
|
-
function handleFilterAndCopy (destStat, src, dest, opts) {
|
|
5296
|
-
if (opts.filter && !opts.filter(src, dest)) return
|
|
5297
|
-
const destParent = path$q.dirname(dest);
|
|
5298
|
-
if (!fs$q.existsSync(destParent)) mkdirsSync$1(destParent);
|
|
5299
|
-
return getStats$1(destStat, src, dest, opts)
|
|
5300
|
-
}
|
|
5301
|
-
|
|
5302
|
-
function startCopy$1 (destStat, src, dest, opts) {
|
|
5303
|
-
if (opts.filter && !opts.filter(src, dest)) return
|
|
5304
|
-
return getStats$1(destStat, src, dest, opts)
|
|
5305
|
-
}
|
|
5306
|
-
|
|
5307
|
-
function getStats$1 (destStat, src, dest, opts) {
|
|
5308
|
-
const statSync = opts.dereference ? fs$q.statSync : fs$q.lstatSync;
|
|
5309
|
-
const srcStat = statSync(src);
|
|
5310
|
-
|
|
5311
|
-
if (srcStat.isDirectory()) return onDir$1(srcStat, destStat, src, dest, opts)
|
|
5312
|
-
else if (srcStat.isFile() ||
|
|
5313
|
-
srcStat.isCharacterDevice() ||
|
|
5314
|
-
srcStat.isBlockDevice()) return onFile$1(srcStat, destStat, src, dest, opts)
|
|
5315
|
-
else if (srcStat.isSymbolicLink()) return onLink$1(destStat, src, dest, opts)
|
|
5316
|
-
else if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`)
|
|
5317
|
-
else if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`)
|
|
5318
|
-
throw new Error(`Unknown file: ${src}`)
|
|
5319
|
-
}
|
|
5320
|
-
|
|
5321
|
-
function onFile$1 (srcStat, destStat, src, dest, opts) {
|
|
5322
|
-
if (!destStat) return copyFile$1(srcStat, src, dest, opts)
|
|
5323
|
-
return mayCopyFile$1(srcStat, src, dest, opts)
|
|
5324
|
-
}
|
|
5325
|
-
|
|
5326
|
-
function mayCopyFile$1 (srcStat, src, dest, opts) {
|
|
5327
|
-
if (opts.overwrite) {
|
|
5328
|
-
fs$q.unlinkSync(dest);
|
|
5329
|
-
return copyFile$1(srcStat, src, dest, opts)
|
|
5330
|
-
} else if (opts.errorOnExist) {
|
|
5331
|
-
throw new Error(`'${dest}' already exists`)
|
|
5332
|
-
}
|
|
5333
|
-
}
|
|
5334
|
-
|
|
5335
|
-
function copyFile$1 (srcStat, src, dest, opts) {
|
|
5336
|
-
fs$q.copyFileSync(src, dest);
|
|
5337
|
-
if (opts.preserveTimestamps) handleTimestamps(srcStat.mode, src, dest);
|
|
5338
|
-
return setDestMode$1(dest, srcStat.mode)
|
|
5339
|
-
}
|
|
5340
|
-
|
|
5341
|
-
function handleTimestamps (srcMode, src, dest) {
|
|
5342
|
-
// Make sure the file is writable before setting the timestamp
|
|
5343
|
-
// otherwise open fails with EPERM when invoked with 'r+'
|
|
5344
|
-
// (through utimes call)
|
|
5345
|
-
if (fileIsNotWritable$1(srcMode)) makeFileWritable$1(dest, srcMode);
|
|
5346
|
-
return setDestTimestamps$1(src, dest)
|
|
5347
|
-
}
|
|
5348
|
-
|
|
5349
|
-
function fileIsNotWritable$1 (srcMode) {
|
|
5350
|
-
return (srcMode & 0o200) === 0
|
|
5351
|
-
}
|
|
5352
|
-
|
|
5353
|
-
function makeFileWritable$1 (dest, srcMode) {
|
|
5354
|
-
return setDestMode$1(dest, srcMode | 0o200)
|
|
5355
|
-
}
|
|
5356
|
-
|
|
5357
|
-
function setDestMode$1 (dest, srcMode) {
|
|
5358
|
-
return fs$q.chmodSync(dest, srcMode)
|
|
5359
|
-
}
|
|
5360
|
-
|
|
5361
|
-
function setDestTimestamps$1 (src, dest) {
|
|
5362
|
-
// The initial srcStat.atime cannot be trusted
|
|
5363
|
-
// because it is modified by the read(2) system call
|
|
5364
|
-
// (See https://nodejs.org/api/fs.html#fs_stat_time_values)
|
|
5365
|
-
const updatedSrcStat = fs$q.statSync(src);
|
|
5366
|
-
return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime)
|
|
5367
|
-
}
|
|
5368
|
-
|
|
5369
|
-
function onDir$1 (srcStat, destStat, src, dest, opts) {
|
|
5370
|
-
if (!destStat) return mkDirAndCopy$1(srcStat.mode, src, dest, opts)
|
|
5371
|
-
return copyDir$1(src, dest, opts)
|
|
5372
|
-
}
|
|
5373
|
-
|
|
5374
|
-
function mkDirAndCopy$1 (srcMode, src, dest, opts) {
|
|
5375
|
-
fs$q.mkdirSync(dest);
|
|
5376
|
-
copyDir$1(src, dest, opts);
|
|
5377
|
-
return setDestMode$1(dest, srcMode)
|
|
5378
|
-
}
|
|
5379
|
-
|
|
5380
|
-
function copyDir$1 (src, dest, opts) {
|
|
5381
|
-
fs$q.readdirSync(src).forEach(item => copyDirItem$1(item, src, dest, opts));
|
|
5382
|
-
}
|
|
5383
|
-
|
|
5384
|
-
function copyDirItem$1 (item, src, dest, opts) {
|
|
5385
|
-
const srcItem = path$q.join(src, item);
|
|
5386
|
-
const destItem = path$q.join(dest, item);
|
|
5387
|
-
const { destStat } = stat$4.checkPathsSync(srcItem, destItem, 'copy', opts);
|
|
5388
|
-
return startCopy$1(destStat, srcItem, destItem, opts)
|
|
5389
|
-
}
|
|
5390
|
-
|
|
5391
|
-
function onLink$1 (destStat, src, dest, opts) {
|
|
5392
|
-
let resolvedSrc = fs$q.readlinkSync(src);
|
|
5393
|
-
if (opts.dereference) {
|
|
5394
|
-
resolvedSrc = path$q.resolve(process.cwd(), resolvedSrc);
|
|
5395
|
-
}
|
|
5396
|
-
|
|
5397
|
-
if (!destStat) {
|
|
5398
|
-
return fs$q.symlinkSync(resolvedSrc, dest)
|
|
5399
|
-
} else {
|
|
5400
|
-
let resolvedDest;
|
|
5401
|
-
try {
|
|
5402
|
-
resolvedDest = fs$q.readlinkSync(dest);
|
|
5403
|
-
} catch (err) {
|
|
5404
|
-
// dest exists and is a regular file or directory,
|
|
5405
|
-
// Windows may throw UNKNOWN error. If dest already exists,
|
|
5406
|
-
// fs throws error anyway, so no need to guard against it here.
|
|
5407
|
-
if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs$q.symlinkSync(resolvedSrc, dest)
|
|
5408
|
-
throw err
|
|
5409
|
-
}
|
|
5410
|
-
if (opts.dereference) {
|
|
5411
|
-
resolvedDest = path$q.resolve(process.cwd(), resolvedDest);
|
|
5412
|
-
}
|
|
5413
|
-
if (stat$4.isSrcSubdir(resolvedSrc, resolvedDest)) {
|
|
5414
|
-
throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)
|
|
5415
|
-
}
|
|
5416
|
-
|
|
5417
|
-
// prevent copy if src is a subdir of dest since unlinking
|
|
5418
|
-
// dest in this case would result in removing src contents
|
|
5419
|
-
// and therefore a broken symlink would be created.
|
|
5420
|
-
if (fs$q.statSync(dest).isDirectory() && stat$4.isSrcSubdir(resolvedDest, resolvedSrc)) {
|
|
5421
|
-
throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)
|
|
5422
|
-
}
|
|
5423
|
-
return copyLink$1(resolvedSrc, dest)
|
|
5424
|
-
}
|
|
5425
|
-
}
|
|
5426
|
-
|
|
5427
|
-
function copyLink$1 (resolvedSrc, dest) {
|
|
5428
|
-
fs$q.unlinkSync(dest);
|
|
5429
|
-
return fs$q.symlinkSync(resolvedSrc, dest)
|
|
5430
|
-
}
|
|
5431
|
-
|
|
5432
|
-
var copySync_1 = copySync$2;
|
|
5433
|
-
|
|
5434
|
-
var copySync$1 = {
|
|
5435
|
-
copySync: copySync_1
|
|
5436
|
-
};
|
|
5437
|
-
|
|
5438
|
-
const u$9 = universalify$1.fromPromise;
|
|
5439
|
-
const fs$p = fs$v;
|
|
5440
|
-
|
|
5441
|
-
function pathExists$8 (path) {
|
|
5442
|
-
return fs$p.access(path).then(() => true).catch(() => false)
|
|
5443
|
-
}
|
|
5444
|
-
|
|
5445
|
-
var pathExists_1 = {
|
|
5446
|
-
pathExists: u$9(pathExists$8),
|
|
5447
|
-
pathExistsSync: fs$p.existsSync
|
|
5448
|
-
};
|
|
5449
|
-
|
|
5450
|
-
const fs$o = gracefulFs;
|
|
5451
|
-
const path$p = require$$0$8;
|
|
5452
5358
|
const mkdirs$1 = mkdirs$2.mkdirs;
|
|
5453
5359
|
const pathExists$7 = pathExists_1.pathExists;
|
|
5454
5360
|
const utimesMillis = utimes.utimesMillis;
|
|
5455
|
-
const stat$
|
|
5361
|
+
const stat$4 = stat$5;
|
|
5456
5362
|
|
|
5457
5363
|
function copy$2 (src, dest, opts, cb) {
|
|
5458
5364
|
if (typeof opts === 'function' && !cb) {
|
|
@@ -5470,14 +5376,17 @@ function copy$2 (src, dest, opts, cb) {
|
|
|
5470
5376
|
|
|
5471
5377
|
// Warn about using preserveTimestamps on 32-bit node
|
|
5472
5378
|
if (opts.preserveTimestamps && process.arch === 'ia32') {
|
|
5473
|
-
|
|
5474
|
-
|
|
5379
|
+
process.emitWarning(
|
|
5380
|
+
'Using the preserveTimestamps option in 32-bit node is not recommended;\n\n' +
|
|
5381
|
+
'\tsee https://github.com/jprichardson/node-fs-extra/issues/269',
|
|
5382
|
+
'Warning', 'fs-extra-WARN0001'
|
|
5383
|
+
);
|
|
5475
5384
|
}
|
|
5476
5385
|
|
|
5477
|
-
stat$
|
|
5386
|
+
stat$4.checkPaths(src, dest, 'copy', opts, (err, stats) => {
|
|
5478
5387
|
if (err) return cb(err)
|
|
5479
5388
|
const { srcStat, destStat } = stats;
|
|
5480
|
-
stat$
|
|
5389
|
+
stat$4.checkParentPaths(src, srcStat, dest, 'copy', err => {
|
|
5481
5390
|
if (err) return cb(err)
|
|
5482
5391
|
if (opts.filter) return handleFilter(checkParentDir, destStat, src, dest, opts, cb)
|
|
5483
5392
|
return checkParentDir(destStat, src, dest, opts, cb)
|
|
@@ -5486,13 +5395,13 @@ function copy$2 (src, dest, opts, cb) {
|
|
|
5486
5395
|
}
|
|
5487
5396
|
|
|
5488
5397
|
function checkParentDir (destStat, src, dest, opts, cb) {
|
|
5489
|
-
const destParent = path$
|
|
5398
|
+
const destParent = path$q.dirname(dest);
|
|
5490
5399
|
pathExists$7(destParent, (err, dirExists) => {
|
|
5491
5400
|
if (err) return cb(err)
|
|
5492
|
-
if (dirExists) return getStats(destStat, src, dest, opts, cb)
|
|
5401
|
+
if (dirExists) return getStats$1(destStat, src, dest, opts, cb)
|
|
5493
5402
|
mkdirs$1(destParent, err => {
|
|
5494
5403
|
if (err) return cb(err)
|
|
5495
|
-
return getStats(destStat, src, dest, opts, cb)
|
|
5404
|
+
return getStats$1(destStat, src, dest, opts, cb)
|
|
5496
5405
|
});
|
|
5497
5406
|
});
|
|
5498
5407
|
}
|
|
@@ -5504,48 +5413,48 @@ function handleFilter (onInclude, destStat, src, dest, opts, cb) {
|
|
|
5504
5413
|
}, error => cb(error));
|
|
5505
5414
|
}
|
|
5506
5415
|
|
|
5507
|
-
function startCopy (destStat, src, dest, opts, cb) {
|
|
5508
|
-
if (opts.filter) return handleFilter(getStats, destStat, src, dest, opts, cb)
|
|
5509
|
-
return getStats(destStat, src, dest, opts, cb)
|
|
5416
|
+
function startCopy$1 (destStat, src, dest, opts, cb) {
|
|
5417
|
+
if (opts.filter) return handleFilter(getStats$1, destStat, src, dest, opts, cb)
|
|
5418
|
+
return getStats$1(destStat, src, dest, opts, cb)
|
|
5510
5419
|
}
|
|
5511
5420
|
|
|
5512
|
-
function getStats (destStat, src, dest, opts, cb) {
|
|
5513
|
-
const stat = opts.dereference ? fs$
|
|
5421
|
+
function getStats$1 (destStat, src, dest, opts, cb) {
|
|
5422
|
+
const stat = opts.dereference ? fs$p.stat : fs$p.lstat;
|
|
5514
5423
|
stat(src, (err, srcStat) => {
|
|
5515
5424
|
if (err) return cb(err)
|
|
5516
5425
|
|
|
5517
|
-
if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts, cb)
|
|
5426
|
+
if (srcStat.isDirectory()) return onDir$1(srcStat, destStat, src, dest, opts, cb)
|
|
5518
5427
|
else if (srcStat.isFile() ||
|
|
5519
5428
|
srcStat.isCharacterDevice() ||
|
|
5520
|
-
srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts, cb)
|
|
5521
|
-
else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts, cb)
|
|
5429
|
+
srcStat.isBlockDevice()) return onFile$1(srcStat, destStat, src, dest, opts, cb)
|
|
5430
|
+
else if (srcStat.isSymbolicLink()) return onLink$1(destStat, src, dest, opts, cb)
|
|
5522
5431
|
else if (srcStat.isSocket()) return cb(new Error(`Cannot copy a socket file: ${src}`))
|
|
5523
5432
|
else if (srcStat.isFIFO()) return cb(new Error(`Cannot copy a FIFO pipe: ${src}`))
|
|
5524
5433
|
return cb(new Error(`Unknown file: ${src}`))
|
|
5525
5434
|
});
|
|
5526
5435
|
}
|
|
5527
5436
|
|
|
5528
|
-
function onFile (srcStat, destStat, src, dest, opts, cb) {
|
|
5529
|
-
if (!destStat) return copyFile(srcStat, src, dest, opts, cb)
|
|
5530
|
-
return mayCopyFile(srcStat, src, dest, opts, cb)
|
|
5437
|
+
function onFile$1 (srcStat, destStat, src, dest, opts, cb) {
|
|
5438
|
+
if (!destStat) return copyFile$1(srcStat, src, dest, opts, cb)
|
|
5439
|
+
return mayCopyFile$1(srcStat, src, dest, opts, cb)
|
|
5531
5440
|
}
|
|
5532
5441
|
|
|
5533
|
-
function mayCopyFile (srcStat, src, dest, opts, cb) {
|
|
5442
|
+
function mayCopyFile$1 (srcStat, src, dest, opts, cb) {
|
|
5534
5443
|
if (opts.overwrite) {
|
|
5535
|
-
fs$
|
|
5444
|
+
fs$p.unlink(dest, err => {
|
|
5536
5445
|
if (err) return cb(err)
|
|
5537
|
-
return copyFile(srcStat, src, dest, opts, cb)
|
|
5446
|
+
return copyFile$1(srcStat, src, dest, opts, cb)
|
|
5538
5447
|
});
|
|
5539
5448
|
} else if (opts.errorOnExist) {
|
|
5540
5449
|
return cb(new Error(`'${dest}' already exists`))
|
|
5541
5450
|
} else return cb()
|
|
5542
5451
|
}
|
|
5543
5452
|
|
|
5544
|
-
function copyFile (srcStat, src, dest, opts, cb) {
|
|
5545
|
-
fs$
|
|
5453
|
+
function copyFile$1 (srcStat, src, dest, opts, cb) {
|
|
5454
|
+
fs$p.copyFile(src, dest, err => {
|
|
5546
5455
|
if (err) return cb(err)
|
|
5547
5456
|
if (opts.preserveTimestamps) return handleTimestampsAndMode(srcStat.mode, src, dest, cb)
|
|
5548
|
-
return setDestMode(dest, srcStat.mode, cb)
|
|
5457
|
+
return setDestMode$1(dest, srcStat.mode, cb)
|
|
5549
5458
|
});
|
|
5550
5459
|
}
|
|
5551
5460
|
|
|
@@ -5553,8 +5462,8 @@ function handleTimestampsAndMode (srcMode, src, dest, cb) {
|
|
|
5553
5462
|
// Make sure the file is writable before setting the timestamp
|
|
5554
5463
|
// otherwise open fails with EPERM when invoked with 'r+'
|
|
5555
5464
|
// (through utimes call)
|
|
5556
|
-
if (fileIsNotWritable(srcMode)) {
|
|
5557
|
-
return makeFileWritable(dest, srcMode, err => {
|
|
5465
|
+
if (fileIsNotWritable$1(srcMode)) {
|
|
5466
|
+
return makeFileWritable$1(dest, srcMode, err => {
|
|
5558
5467
|
if (err) return cb(err)
|
|
5559
5468
|
return setDestTimestampsAndMode(srcMode, src, dest, cb)
|
|
5560
5469
|
})
|
|
@@ -5562,52 +5471,52 @@ function handleTimestampsAndMode (srcMode, src, dest, cb) {
|
|
|
5562
5471
|
return setDestTimestampsAndMode(srcMode, src, dest, cb)
|
|
5563
5472
|
}
|
|
5564
5473
|
|
|
5565
|
-
function fileIsNotWritable (srcMode) {
|
|
5474
|
+
function fileIsNotWritable$1 (srcMode) {
|
|
5566
5475
|
return (srcMode & 0o200) === 0
|
|
5567
5476
|
}
|
|
5568
5477
|
|
|
5569
|
-
function makeFileWritable (dest, srcMode, cb) {
|
|
5570
|
-
return setDestMode(dest, srcMode | 0o200, cb)
|
|
5478
|
+
function makeFileWritable$1 (dest, srcMode, cb) {
|
|
5479
|
+
return setDestMode$1(dest, srcMode | 0o200, cb)
|
|
5571
5480
|
}
|
|
5572
5481
|
|
|
5573
5482
|
function setDestTimestampsAndMode (srcMode, src, dest, cb) {
|
|
5574
|
-
setDestTimestamps(src, dest, err => {
|
|
5483
|
+
setDestTimestamps$1(src, dest, err => {
|
|
5575
5484
|
if (err) return cb(err)
|
|
5576
|
-
return setDestMode(dest, srcMode, cb)
|
|
5485
|
+
return setDestMode$1(dest, srcMode, cb)
|
|
5577
5486
|
});
|
|
5578
5487
|
}
|
|
5579
5488
|
|
|
5580
|
-
function setDestMode (dest, srcMode, cb) {
|
|
5581
|
-
return fs$
|
|
5489
|
+
function setDestMode$1 (dest, srcMode, cb) {
|
|
5490
|
+
return fs$p.chmod(dest, srcMode, cb)
|
|
5582
5491
|
}
|
|
5583
5492
|
|
|
5584
|
-
function setDestTimestamps (src, dest, cb) {
|
|
5493
|
+
function setDestTimestamps$1 (src, dest, cb) {
|
|
5585
5494
|
// The initial srcStat.atime cannot be trusted
|
|
5586
5495
|
// because it is modified by the read(2) system call
|
|
5587
5496
|
// (See https://nodejs.org/api/fs.html#fs_stat_time_values)
|
|
5588
|
-
fs$
|
|
5497
|
+
fs$p.stat(src, (err, updatedSrcStat) => {
|
|
5589
5498
|
if (err) return cb(err)
|
|
5590
5499
|
return utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime, cb)
|
|
5591
5500
|
});
|
|
5592
5501
|
}
|
|
5593
5502
|
|
|
5594
|
-
function onDir (srcStat, destStat, src, dest, opts, cb) {
|
|
5595
|
-
if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts, cb)
|
|
5596
|
-
return copyDir(src, dest, opts, cb)
|
|
5503
|
+
function onDir$1 (srcStat, destStat, src, dest, opts, cb) {
|
|
5504
|
+
if (!destStat) return mkDirAndCopy$1(srcStat.mode, src, dest, opts, cb)
|
|
5505
|
+
return copyDir$1(src, dest, opts, cb)
|
|
5597
5506
|
}
|
|
5598
5507
|
|
|
5599
|
-
function mkDirAndCopy (srcMode, src, dest, opts, cb) {
|
|
5600
|
-
fs$
|
|
5508
|
+
function mkDirAndCopy$1 (srcMode, src, dest, opts, cb) {
|
|
5509
|
+
fs$p.mkdir(dest, err => {
|
|
5601
5510
|
if (err) return cb(err)
|
|
5602
|
-
copyDir(src, dest, opts, err => {
|
|
5511
|
+
copyDir$1(src, dest, opts, err => {
|
|
5603
5512
|
if (err) return cb(err)
|
|
5604
|
-
return setDestMode(dest, srcMode, cb)
|
|
5513
|
+
return setDestMode$1(dest, srcMode, cb)
|
|
5605
5514
|
});
|
|
5606
5515
|
});
|
|
5607
5516
|
}
|
|
5608
5517
|
|
|
5609
|
-
function copyDir (src, dest, opts, cb) {
|
|
5610
|
-
fs$
|
|
5518
|
+
function copyDir$1 (src, dest, opts, cb) {
|
|
5519
|
+
fs$p.readdir(src, (err, items) => {
|
|
5611
5520
|
if (err) return cb(err)
|
|
5612
5521
|
return copyDirItems(items, src, dest, opts, cb)
|
|
5613
5522
|
});
|
|
@@ -5616,71 +5525,240 @@ function copyDir (src, dest, opts, cb) {
|
|
|
5616
5525
|
function copyDirItems (items, src, dest, opts, cb) {
|
|
5617
5526
|
const item = items.pop();
|
|
5618
5527
|
if (!item) return cb()
|
|
5619
|
-
return copyDirItem(items, item, src, dest, opts, cb)
|
|
5528
|
+
return copyDirItem$1(items, item, src, dest, opts, cb)
|
|
5620
5529
|
}
|
|
5621
5530
|
|
|
5622
|
-
function copyDirItem (items, item, src, dest, opts, cb) {
|
|
5623
|
-
const srcItem = path$
|
|
5624
|
-
const destItem = path$
|
|
5625
|
-
stat$
|
|
5531
|
+
function copyDirItem$1 (items, item, src, dest, opts, cb) {
|
|
5532
|
+
const srcItem = path$q.join(src, item);
|
|
5533
|
+
const destItem = path$q.join(dest, item);
|
|
5534
|
+
stat$4.checkPaths(srcItem, destItem, 'copy', opts, (err, stats) => {
|
|
5626
5535
|
if (err) return cb(err)
|
|
5627
5536
|
const { destStat } = stats;
|
|
5628
|
-
startCopy(destStat, srcItem, destItem, opts, err => {
|
|
5537
|
+
startCopy$1(destStat, srcItem, destItem, opts, err => {
|
|
5629
5538
|
if (err) return cb(err)
|
|
5630
5539
|
return copyDirItems(items, src, dest, opts, cb)
|
|
5631
5540
|
});
|
|
5632
5541
|
});
|
|
5633
5542
|
}
|
|
5634
5543
|
|
|
5635
|
-
function onLink (destStat, src, dest, opts, cb) {
|
|
5636
|
-
fs$
|
|
5544
|
+
function onLink$1 (destStat, src, dest, opts, cb) {
|
|
5545
|
+
fs$p.readlink(src, (err, resolvedSrc) => {
|
|
5637
5546
|
if (err) return cb(err)
|
|
5638
5547
|
if (opts.dereference) {
|
|
5639
|
-
resolvedSrc = path$
|
|
5548
|
+
resolvedSrc = path$q.resolve(process.cwd(), resolvedSrc);
|
|
5640
5549
|
}
|
|
5641
5550
|
|
|
5642
5551
|
if (!destStat) {
|
|
5643
|
-
return fs$
|
|
5552
|
+
return fs$p.symlink(resolvedSrc, dest, cb)
|
|
5644
5553
|
} else {
|
|
5645
|
-
fs$
|
|
5554
|
+
fs$p.readlink(dest, (err, resolvedDest) => {
|
|
5646
5555
|
if (err) {
|
|
5647
5556
|
// dest exists and is a regular file or directory,
|
|
5648
5557
|
// Windows may throw UNKNOWN error. If dest already exists,
|
|
5649
5558
|
// fs throws error anyway, so no need to guard against it here.
|
|
5650
|
-
if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs$
|
|
5559
|
+
if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs$p.symlink(resolvedSrc, dest, cb)
|
|
5651
5560
|
return cb(err)
|
|
5652
5561
|
}
|
|
5653
5562
|
if (opts.dereference) {
|
|
5654
|
-
resolvedDest = path$
|
|
5563
|
+
resolvedDest = path$q.resolve(process.cwd(), resolvedDest);
|
|
5655
5564
|
}
|
|
5656
|
-
if (stat$
|
|
5565
|
+
if (stat$4.isSrcSubdir(resolvedSrc, resolvedDest)) {
|
|
5657
5566
|
return cb(new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`))
|
|
5658
5567
|
}
|
|
5659
5568
|
|
|
5660
5569
|
// do not copy if src is a subdir of dest since unlinking
|
|
5661
5570
|
// dest in this case would result in removing src contents
|
|
5662
5571
|
// and therefore a broken symlink would be created.
|
|
5663
|
-
if (destStat.isDirectory() && stat$
|
|
5572
|
+
if (destStat.isDirectory() && stat$4.isSrcSubdir(resolvedDest, resolvedSrc)) {
|
|
5664
5573
|
return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`))
|
|
5665
5574
|
}
|
|
5666
|
-
return copyLink(resolvedSrc, dest, cb)
|
|
5575
|
+
return copyLink$1(resolvedSrc, dest, cb)
|
|
5667
5576
|
});
|
|
5668
5577
|
}
|
|
5669
5578
|
});
|
|
5670
5579
|
}
|
|
5671
5580
|
|
|
5672
|
-
function copyLink (resolvedSrc, dest, cb) {
|
|
5673
|
-
fs$
|
|
5581
|
+
function copyLink$1 (resolvedSrc, dest, cb) {
|
|
5582
|
+
fs$p.unlink(dest, err => {
|
|
5674
5583
|
if (err) return cb(err)
|
|
5675
|
-
return fs$
|
|
5584
|
+
return fs$p.symlink(resolvedSrc, dest, cb)
|
|
5676
5585
|
});
|
|
5677
5586
|
}
|
|
5678
5587
|
|
|
5679
5588
|
var copy_1 = copy$2;
|
|
5680
5589
|
|
|
5590
|
+
const fs$o = gracefulFs;
|
|
5591
|
+
const path$p = require$$0$8;
|
|
5592
|
+
const mkdirsSync$1 = mkdirs$2.mkdirsSync;
|
|
5593
|
+
const utimesMillisSync = utimes.utimesMillisSync;
|
|
5594
|
+
const stat$3 = stat$5;
|
|
5595
|
+
|
|
5596
|
+
function copySync$1 (src, dest, opts) {
|
|
5597
|
+
if (typeof opts === 'function') {
|
|
5598
|
+
opts = { filter: opts };
|
|
5599
|
+
}
|
|
5600
|
+
|
|
5601
|
+
opts = opts || {};
|
|
5602
|
+
opts.clobber = 'clobber' in opts ? !!opts.clobber : true; // default to true for now
|
|
5603
|
+
opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber; // overwrite falls back to clobber
|
|
5604
|
+
|
|
5605
|
+
// Warn about using preserveTimestamps on 32-bit node
|
|
5606
|
+
if (opts.preserveTimestamps && process.arch === 'ia32') {
|
|
5607
|
+
process.emitWarning(
|
|
5608
|
+
'Using the preserveTimestamps option in 32-bit node is not recommended;\n\n' +
|
|
5609
|
+
'\tsee https://github.com/jprichardson/node-fs-extra/issues/269',
|
|
5610
|
+
'Warning', 'fs-extra-WARN0002'
|
|
5611
|
+
);
|
|
5612
|
+
}
|
|
5613
|
+
|
|
5614
|
+
const { srcStat, destStat } = stat$3.checkPathsSync(src, dest, 'copy', opts);
|
|
5615
|
+
stat$3.checkParentPathsSync(src, srcStat, dest, 'copy');
|
|
5616
|
+
return handleFilterAndCopy(destStat, src, dest, opts)
|
|
5617
|
+
}
|
|
5618
|
+
|
|
5619
|
+
function handleFilterAndCopy (destStat, src, dest, opts) {
|
|
5620
|
+
if (opts.filter && !opts.filter(src, dest)) return
|
|
5621
|
+
const destParent = path$p.dirname(dest);
|
|
5622
|
+
if (!fs$o.existsSync(destParent)) mkdirsSync$1(destParent);
|
|
5623
|
+
return getStats(destStat, src, dest, opts)
|
|
5624
|
+
}
|
|
5625
|
+
|
|
5626
|
+
function startCopy (destStat, src, dest, opts) {
|
|
5627
|
+
if (opts.filter && !opts.filter(src, dest)) return
|
|
5628
|
+
return getStats(destStat, src, dest, opts)
|
|
5629
|
+
}
|
|
5630
|
+
|
|
5631
|
+
function getStats (destStat, src, dest, opts) {
|
|
5632
|
+
const statSync = opts.dereference ? fs$o.statSync : fs$o.lstatSync;
|
|
5633
|
+
const srcStat = statSync(src);
|
|
5634
|
+
|
|
5635
|
+
if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts)
|
|
5636
|
+
else if (srcStat.isFile() ||
|
|
5637
|
+
srcStat.isCharacterDevice() ||
|
|
5638
|
+
srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts)
|
|
5639
|
+
else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts)
|
|
5640
|
+
else if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`)
|
|
5641
|
+
else if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`)
|
|
5642
|
+
throw new Error(`Unknown file: ${src}`)
|
|
5643
|
+
}
|
|
5644
|
+
|
|
5645
|
+
function onFile (srcStat, destStat, src, dest, opts) {
|
|
5646
|
+
if (!destStat) return copyFile(srcStat, src, dest, opts)
|
|
5647
|
+
return mayCopyFile(srcStat, src, dest, opts)
|
|
5648
|
+
}
|
|
5649
|
+
|
|
5650
|
+
function mayCopyFile (srcStat, src, dest, opts) {
|
|
5651
|
+
if (opts.overwrite) {
|
|
5652
|
+
fs$o.unlinkSync(dest);
|
|
5653
|
+
return copyFile(srcStat, src, dest, opts)
|
|
5654
|
+
} else if (opts.errorOnExist) {
|
|
5655
|
+
throw new Error(`'${dest}' already exists`)
|
|
5656
|
+
}
|
|
5657
|
+
}
|
|
5658
|
+
|
|
5659
|
+
function copyFile (srcStat, src, dest, opts) {
|
|
5660
|
+
fs$o.copyFileSync(src, dest);
|
|
5661
|
+
if (opts.preserveTimestamps) handleTimestamps(srcStat.mode, src, dest);
|
|
5662
|
+
return setDestMode(dest, srcStat.mode)
|
|
5663
|
+
}
|
|
5664
|
+
|
|
5665
|
+
function handleTimestamps (srcMode, src, dest) {
|
|
5666
|
+
// Make sure the file is writable before setting the timestamp
|
|
5667
|
+
// otherwise open fails with EPERM when invoked with 'r+'
|
|
5668
|
+
// (through utimes call)
|
|
5669
|
+
if (fileIsNotWritable(srcMode)) makeFileWritable(dest, srcMode);
|
|
5670
|
+
return setDestTimestamps(src, dest)
|
|
5671
|
+
}
|
|
5672
|
+
|
|
5673
|
+
function fileIsNotWritable (srcMode) {
|
|
5674
|
+
return (srcMode & 0o200) === 0
|
|
5675
|
+
}
|
|
5676
|
+
|
|
5677
|
+
function makeFileWritable (dest, srcMode) {
|
|
5678
|
+
return setDestMode(dest, srcMode | 0o200)
|
|
5679
|
+
}
|
|
5680
|
+
|
|
5681
|
+
function setDestMode (dest, srcMode) {
|
|
5682
|
+
return fs$o.chmodSync(dest, srcMode)
|
|
5683
|
+
}
|
|
5684
|
+
|
|
5685
|
+
function setDestTimestamps (src, dest) {
|
|
5686
|
+
// The initial srcStat.atime cannot be trusted
|
|
5687
|
+
// because it is modified by the read(2) system call
|
|
5688
|
+
// (See https://nodejs.org/api/fs.html#fs_stat_time_values)
|
|
5689
|
+
const updatedSrcStat = fs$o.statSync(src);
|
|
5690
|
+
return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime)
|
|
5691
|
+
}
|
|
5692
|
+
|
|
5693
|
+
function onDir (srcStat, destStat, src, dest, opts) {
|
|
5694
|
+
if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts)
|
|
5695
|
+
return copyDir(src, dest, opts)
|
|
5696
|
+
}
|
|
5697
|
+
|
|
5698
|
+
function mkDirAndCopy (srcMode, src, dest, opts) {
|
|
5699
|
+
fs$o.mkdirSync(dest);
|
|
5700
|
+
copyDir(src, dest, opts);
|
|
5701
|
+
return setDestMode(dest, srcMode)
|
|
5702
|
+
}
|
|
5703
|
+
|
|
5704
|
+
function copyDir (src, dest, opts) {
|
|
5705
|
+
fs$o.readdirSync(src).forEach(item => copyDirItem(item, src, dest, opts));
|
|
5706
|
+
}
|
|
5707
|
+
|
|
5708
|
+
function copyDirItem (item, src, dest, opts) {
|
|
5709
|
+
const srcItem = path$p.join(src, item);
|
|
5710
|
+
const destItem = path$p.join(dest, item);
|
|
5711
|
+
const { destStat } = stat$3.checkPathsSync(srcItem, destItem, 'copy', opts);
|
|
5712
|
+
return startCopy(destStat, srcItem, destItem, opts)
|
|
5713
|
+
}
|
|
5714
|
+
|
|
5715
|
+
function onLink (destStat, src, dest, opts) {
|
|
5716
|
+
let resolvedSrc = fs$o.readlinkSync(src);
|
|
5717
|
+
if (opts.dereference) {
|
|
5718
|
+
resolvedSrc = path$p.resolve(process.cwd(), resolvedSrc);
|
|
5719
|
+
}
|
|
5720
|
+
|
|
5721
|
+
if (!destStat) {
|
|
5722
|
+
return fs$o.symlinkSync(resolvedSrc, dest)
|
|
5723
|
+
} else {
|
|
5724
|
+
let resolvedDest;
|
|
5725
|
+
try {
|
|
5726
|
+
resolvedDest = fs$o.readlinkSync(dest);
|
|
5727
|
+
} catch (err) {
|
|
5728
|
+
// dest exists and is a regular file or directory,
|
|
5729
|
+
// Windows may throw UNKNOWN error. If dest already exists,
|
|
5730
|
+
// fs throws error anyway, so no need to guard against it here.
|
|
5731
|
+
if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs$o.symlinkSync(resolvedSrc, dest)
|
|
5732
|
+
throw err
|
|
5733
|
+
}
|
|
5734
|
+
if (opts.dereference) {
|
|
5735
|
+
resolvedDest = path$p.resolve(process.cwd(), resolvedDest);
|
|
5736
|
+
}
|
|
5737
|
+
if (stat$3.isSrcSubdir(resolvedSrc, resolvedDest)) {
|
|
5738
|
+
throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)
|
|
5739
|
+
}
|
|
5740
|
+
|
|
5741
|
+
// prevent copy if src is a subdir of dest since unlinking
|
|
5742
|
+
// dest in this case would result in removing src contents
|
|
5743
|
+
// and therefore a broken symlink would be created.
|
|
5744
|
+
if (fs$o.statSync(dest).isDirectory() && stat$3.isSrcSubdir(resolvedDest, resolvedSrc)) {
|
|
5745
|
+
throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)
|
|
5746
|
+
}
|
|
5747
|
+
return copyLink(resolvedSrc, dest)
|
|
5748
|
+
}
|
|
5749
|
+
}
|
|
5750
|
+
|
|
5751
|
+
function copyLink (resolvedSrc, dest) {
|
|
5752
|
+
fs$o.unlinkSync(dest);
|
|
5753
|
+
return fs$o.symlinkSync(resolvedSrc, dest)
|
|
5754
|
+
}
|
|
5755
|
+
|
|
5756
|
+
var copySync_1 = copySync$1;
|
|
5757
|
+
|
|
5681
5758
|
const u$8 = universalify$1.fromCallback;
|
|
5682
5759
|
var copy$1 = {
|
|
5683
|
-
copy: u$8(copy_1)
|
|
5760
|
+
copy: u$8(copy_1),
|
|
5761
|
+
copySync: copySync_1
|
|
5684
5762
|
};
|
|
5685
5763
|
|
|
5686
5764
|
const fs$n = gracefulFs;
|
|
@@ -6048,7 +6126,7 @@ const path$m = require$$0$8;
|
|
|
6048
6126
|
const fs$k = gracefulFs;
|
|
6049
6127
|
const mkdir$2 = mkdirs$2;
|
|
6050
6128
|
|
|
6051
|
-
function createFile (file, callback) {
|
|
6129
|
+
function createFile$1 (file, callback) {
|
|
6052
6130
|
function makeFile () {
|
|
6053
6131
|
fs$k.writeFile(file, '', err => {
|
|
6054
6132
|
if (err) return callback(err)
|
|
@@ -6083,7 +6161,7 @@ function createFile (file, callback) {
|
|
|
6083
6161
|
});
|
|
6084
6162
|
}
|
|
6085
6163
|
|
|
6086
|
-
function createFileSync (file) {
|
|
6164
|
+
function createFileSync$1 (file) {
|
|
6087
6165
|
let stats;
|
|
6088
6166
|
try {
|
|
6089
6167
|
stats = fs$k.statSync(file);
|
|
@@ -6106,9 +6184,9 @@ function createFileSync (file) {
|
|
|
6106
6184
|
fs$k.writeFileSync(file, '');
|
|
6107
6185
|
}
|
|
6108
6186
|
|
|
6109
|
-
var file$
|
|
6110
|
-
createFile: u$5(createFile),
|
|
6111
|
-
createFileSync
|
|
6187
|
+
var file$1 = {
|
|
6188
|
+
createFile: u$5(createFile$1),
|
|
6189
|
+
createFileSync: createFileSync$1
|
|
6112
6190
|
};
|
|
6113
6191
|
|
|
6114
6192
|
const u$4 = universalify$1.fromCallback;
|
|
@@ -6118,7 +6196,7 @@ const mkdir$1 = mkdirs$2;
|
|
|
6118
6196
|
const pathExists$6 = pathExists_1.pathExists;
|
|
6119
6197
|
const { areIdentical: areIdentical$1 } = stat$5;
|
|
6120
6198
|
|
|
6121
|
-
function createLink (srcpath, dstpath, callback) {
|
|
6199
|
+
function createLink$1 (srcpath, dstpath, callback) {
|
|
6122
6200
|
function makeLink (srcpath, dstpath) {
|
|
6123
6201
|
fs$j.link(srcpath, dstpath, err => {
|
|
6124
6202
|
if (err) return callback(err)
|
|
@@ -6147,7 +6225,7 @@ function createLink (srcpath, dstpath, callback) {
|
|
|
6147
6225
|
});
|
|
6148
6226
|
}
|
|
6149
6227
|
|
|
6150
|
-
function createLinkSync (srcpath, dstpath) {
|
|
6228
|
+
function createLinkSync$1 (srcpath, dstpath) {
|
|
6151
6229
|
let dstStat;
|
|
6152
6230
|
try {
|
|
6153
6231
|
dstStat = fs$j.lstatSync(dstpath);
|
|
@@ -6169,9 +6247,9 @@ function createLinkSync (srcpath, dstpath) {
|
|
|
6169
6247
|
return fs$j.linkSync(srcpath, dstpath)
|
|
6170
6248
|
}
|
|
6171
6249
|
|
|
6172
|
-
var link$
|
|
6173
|
-
createLink: u$4(createLink),
|
|
6174
|
-
createLinkSync
|
|
6250
|
+
var link$1 = {
|
|
6251
|
+
createLink: u$4(createLink$1),
|
|
6252
|
+
createLinkSync: createLinkSync$1
|
|
6175
6253
|
};
|
|
6176
6254
|
|
|
6177
6255
|
const path$k = require$$0$8;
|
|
@@ -6321,7 +6399,7 @@ const pathExists$4 = pathExists_1.pathExists;
|
|
|
6321
6399
|
|
|
6322
6400
|
const { areIdentical } = stat$5;
|
|
6323
6401
|
|
|
6324
|
-
function createSymlink (srcpath, dstpath, type, callback) {
|
|
6402
|
+
function createSymlink$1 (srcpath, dstpath, type, callback) {
|
|
6325
6403
|
callback = (typeof type === 'function') ? type : callback;
|
|
6326
6404
|
type = (typeof type === 'function') ? false : type;
|
|
6327
6405
|
|
|
@@ -6357,7 +6435,7 @@ function _createSymlink (srcpath, dstpath, type, callback) {
|
|
|
6357
6435
|
});
|
|
6358
6436
|
}
|
|
6359
6437
|
|
|
6360
|
-
function createSymlinkSync (srcpath, dstpath, type) {
|
|
6438
|
+
function createSymlinkSync$1 (srcpath, dstpath, type) {
|
|
6361
6439
|
let stats;
|
|
6362
6440
|
try {
|
|
6363
6441
|
stats = fs$g.lstatSync(dstpath);
|
|
@@ -6378,31 +6456,31 @@ function createSymlinkSync (srcpath, dstpath, type) {
|
|
|
6378
6456
|
return fs$g.symlinkSync(srcpath, dstpath, type)
|
|
6379
6457
|
}
|
|
6380
6458
|
|
|
6381
|
-
var symlink
|
|
6382
|
-
createSymlink: u$3(createSymlink),
|
|
6383
|
-
createSymlinkSync
|
|
6459
|
+
var symlink = {
|
|
6460
|
+
createSymlink: u$3(createSymlink$1),
|
|
6461
|
+
createSymlinkSync: createSymlinkSync$1
|
|
6384
6462
|
};
|
|
6385
6463
|
|
|
6386
|
-
const
|
|
6387
|
-
const
|
|
6388
|
-
const
|
|
6464
|
+
const { createFile, createFileSync } = file$1;
|
|
6465
|
+
const { createLink, createLinkSync } = link$1;
|
|
6466
|
+
const { createSymlink, createSymlinkSync } = symlink;
|
|
6389
6467
|
|
|
6390
6468
|
var ensure = {
|
|
6391
6469
|
// file
|
|
6392
|
-
createFile
|
|
6393
|
-
createFileSync
|
|
6394
|
-
ensureFile:
|
|
6395
|
-
ensureFileSync:
|
|
6470
|
+
createFile,
|
|
6471
|
+
createFileSync,
|
|
6472
|
+
ensureFile: createFile,
|
|
6473
|
+
ensureFileSync: createFileSync,
|
|
6396
6474
|
// link
|
|
6397
|
-
createLink
|
|
6398
|
-
createLinkSync
|
|
6399
|
-
ensureLink:
|
|
6400
|
-
ensureLinkSync:
|
|
6475
|
+
createLink,
|
|
6476
|
+
createLinkSync,
|
|
6477
|
+
ensureLink: createLink,
|
|
6478
|
+
ensureLinkSync: createLinkSync,
|
|
6401
6479
|
// symlink
|
|
6402
|
-
createSymlink
|
|
6403
|
-
createSymlinkSync
|
|
6404
|
-
ensureSymlink:
|
|
6405
|
-
ensureSymlinkSync:
|
|
6480
|
+
createSymlink,
|
|
6481
|
+
createSymlinkSync,
|
|
6482
|
+
ensureSymlink: createSymlink,
|
|
6483
|
+
ensureSymlinkSync: createSymlinkSync
|
|
6406
6484
|
};
|
|
6407
6485
|
|
|
6408
6486
|
function stringify$8 (obj, { EOL = '\n', finalEOL = true, replacer = null, spaces } = {}) {
|
|
@@ -6553,13 +6631,13 @@ function outputFileSync$1 (file, ...args) {
|
|
|
6553
6631
|
fs$f.writeFileSync(file, ...args);
|
|
6554
6632
|
}
|
|
6555
6633
|
|
|
6556
|
-
var
|
|
6634
|
+
var outputFile_1 = {
|
|
6557
6635
|
outputFile: u$2(outputFile$1),
|
|
6558
6636
|
outputFileSync: outputFileSync$1
|
|
6559
6637
|
};
|
|
6560
6638
|
|
|
6561
6639
|
const { stringify: stringify$6 } = utils$n;
|
|
6562
|
-
const { outputFile } =
|
|
6640
|
+
const { outputFile } = outputFile_1;
|
|
6563
6641
|
|
|
6564
6642
|
async function outputJson (file, data, options = {}) {
|
|
6565
6643
|
const str = stringify$6(data, options);
|
|
@@ -6570,7 +6648,7 @@ async function outputJson (file, data, options = {}) {
|
|
|
6570
6648
|
var outputJson_1 = outputJson;
|
|
6571
6649
|
|
|
6572
6650
|
const { stringify: stringify$5 } = utils$n;
|
|
6573
|
-
const { outputFileSync } =
|
|
6651
|
+
const { outputFileSync } = outputFile_1;
|
|
6574
6652
|
|
|
6575
6653
|
function outputJsonSync (file, data, options) {
|
|
6576
6654
|
const str = stringify$5(data, options);
|
|
@@ -6597,68 +6675,11 @@ var json = jsonFile;
|
|
|
6597
6675
|
|
|
6598
6676
|
const fs$e = gracefulFs;
|
|
6599
6677
|
const path$h = require$$0$8;
|
|
6600
|
-
const copySync = copySync$1.copySync;
|
|
6601
|
-
const removeSync = remove_1.removeSync;
|
|
6602
|
-
const mkdirpSync = mkdirs$2.mkdirpSync;
|
|
6603
|
-
const stat$2 = stat$5;
|
|
6604
|
-
|
|
6605
|
-
function moveSync$1 (src, dest, opts) {
|
|
6606
|
-
opts = opts || {};
|
|
6607
|
-
const overwrite = opts.overwrite || opts.clobber || false;
|
|
6608
|
-
|
|
6609
|
-
const { srcStat, isChangingCase = false } = stat$2.checkPathsSync(src, dest, 'move', opts);
|
|
6610
|
-
stat$2.checkParentPathsSync(src, srcStat, dest, 'move');
|
|
6611
|
-
if (!isParentRoot$1(dest)) mkdirpSync(path$h.dirname(dest));
|
|
6612
|
-
return doRename$1(src, dest, overwrite, isChangingCase)
|
|
6613
|
-
}
|
|
6614
|
-
|
|
6615
|
-
function isParentRoot$1 (dest) {
|
|
6616
|
-
const parent = path$h.dirname(dest);
|
|
6617
|
-
const parsedPath = path$h.parse(parent);
|
|
6618
|
-
return parsedPath.root === parent
|
|
6619
|
-
}
|
|
6620
|
-
|
|
6621
|
-
function doRename$1 (src, dest, overwrite, isChangingCase) {
|
|
6622
|
-
if (isChangingCase) return rename$1(src, dest, overwrite)
|
|
6623
|
-
if (overwrite) {
|
|
6624
|
-
removeSync(dest);
|
|
6625
|
-
return rename$1(src, dest, overwrite)
|
|
6626
|
-
}
|
|
6627
|
-
if (fs$e.existsSync(dest)) throw new Error('dest already exists.')
|
|
6628
|
-
return rename$1(src, dest, overwrite)
|
|
6629
|
-
}
|
|
6630
|
-
|
|
6631
|
-
function rename$1 (src, dest, overwrite) {
|
|
6632
|
-
try {
|
|
6633
|
-
fs$e.renameSync(src, dest);
|
|
6634
|
-
} catch (err) {
|
|
6635
|
-
if (err.code !== 'EXDEV') throw err
|
|
6636
|
-
return moveAcrossDevice$1(src, dest, overwrite)
|
|
6637
|
-
}
|
|
6638
|
-
}
|
|
6639
|
-
|
|
6640
|
-
function moveAcrossDevice$1 (src, dest, overwrite) {
|
|
6641
|
-
const opts = {
|
|
6642
|
-
overwrite,
|
|
6643
|
-
errorOnExist: true
|
|
6644
|
-
};
|
|
6645
|
-
copySync(src, dest, opts);
|
|
6646
|
-
return removeSync(src)
|
|
6647
|
-
}
|
|
6648
|
-
|
|
6649
|
-
var moveSync_1 = moveSync$1;
|
|
6650
|
-
|
|
6651
|
-
var moveSync = {
|
|
6652
|
-
moveSync: moveSync_1
|
|
6653
|
-
};
|
|
6654
|
-
|
|
6655
|
-
const fs$d = gracefulFs;
|
|
6656
|
-
const path$g = require$$0$8;
|
|
6657
6678
|
const copy = copy$1.copy;
|
|
6658
6679
|
const remove = remove_1.remove;
|
|
6659
6680
|
const mkdirp = mkdirs$2.mkdirp;
|
|
6660
6681
|
const pathExists$2 = pathExists_1.pathExists;
|
|
6661
|
-
const stat$
|
|
6682
|
+
const stat$2 = stat$5;
|
|
6662
6683
|
|
|
6663
6684
|
function move$1 (src, dest, opts, cb) {
|
|
6664
6685
|
if (typeof opts === 'function') {
|
|
@@ -6666,52 +6687,54 @@ function move$1 (src, dest, opts, cb) {
|
|
|
6666
6687
|
opts = {};
|
|
6667
6688
|
}
|
|
6668
6689
|
|
|
6690
|
+
opts = opts || {};
|
|
6691
|
+
|
|
6669
6692
|
const overwrite = opts.overwrite || opts.clobber || false;
|
|
6670
6693
|
|
|
6671
|
-
stat$
|
|
6694
|
+
stat$2.checkPaths(src, dest, 'move', opts, (err, stats) => {
|
|
6672
6695
|
if (err) return cb(err)
|
|
6673
6696
|
const { srcStat, isChangingCase = false } = stats;
|
|
6674
|
-
stat$
|
|
6697
|
+
stat$2.checkParentPaths(src, srcStat, dest, 'move', err => {
|
|
6675
6698
|
if (err) return cb(err)
|
|
6676
|
-
if (isParentRoot(dest)) return doRename(src, dest, overwrite, isChangingCase, cb)
|
|
6677
|
-
mkdirp(path$
|
|
6699
|
+
if (isParentRoot$1(dest)) return doRename$1(src, dest, overwrite, isChangingCase, cb)
|
|
6700
|
+
mkdirp(path$h.dirname(dest), err => {
|
|
6678
6701
|
if (err) return cb(err)
|
|
6679
|
-
return doRename(src, dest, overwrite, isChangingCase, cb)
|
|
6702
|
+
return doRename$1(src, dest, overwrite, isChangingCase, cb)
|
|
6680
6703
|
});
|
|
6681
6704
|
});
|
|
6682
6705
|
});
|
|
6683
6706
|
}
|
|
6684
6707
|
|
|
6685
|
-
function isParentRoot (dest) {
|
|
6686
|
-
const parent = path$
|
|
6687
|
-
const parsedPath = path$
|
|
6708
|
+
function isParentRoot$1 (dest) {
|
|
6709
|
+
const parent = path$h.dirname(dest);
|
|
6710
|
+
const parsedPath = path$h.parse(parent);
|
|
6688
6711
|
return parsedPath.root === parent
|
|
6689
6712
|
}
|
|
6690
6713
|
|
|
6691
|
-
function doRename (src, dest, overwrite, isChangingCase, cb) {
|
|
6692
|
-
if (isChangingCase) return rename(src, dest, overwrite, cb)
|
|
6714
|
+
function doRename$1 (src, dest, overwrite, isChangingCase, cb) {
|
|
6715
|
+
if (isChangingCase) return rename$1(src, dest, overwrite, cb)
|
|
6693
6716
|
if (overwrite) {
|
|
6694
6717
|
return remove(dest, err => {
|
|
6695
6718
|
if (err) return cb(err)
|
|
6696
|
-
return rename(src, dest, overwrite, cb)
|
|
6719
|
+
return rename$1(src, dest, overwrite, cb)
|
|
6697
6720
|
})
|
|
6698
6721
|
}
|
|
6699
6722
|
pathExists$2(dest, (err, destExists) => {
|
|
6700
6723
|
if (err) return cb(err)
|
|
6701
6724
|
if (destExists) return cb(new Error('dest already exists.'))
|
|
6702
|
-
return rename(src, dest, overwrite, cb)
|
|
6725
|
+
return rename$1(src, dest, overwrite, cb)
|
|
6703
6726
|
});
|
|
6704
6727
|
}
|
|
6705
6728
|
|
|
6706
|
-
function rename (src, dest, overwrite, cb) {
|
|
6707
|
-
fs$
|
|
6729
|
+
function rename$1 (src, dest, overwrite, cb) {
|
|
6730
|
+
fs$e.rename(src, dest, err => {
|
|
6708
6731
|
if (!err) return cb()
|
|
6709
6732
|
if (err.code !== 'EXDEV') return cb(err)
|
|
6710
|
-
return moveAcrossDevice(src, dest, overwrite, cb)
|
|
6733
|
+
return moveAcrossDevice$1(src, dest, overwrite, cb)
|
|
6711
6734
|
});
|
|
6712
6735
|
}
|
|
6713
6736
|
|
|
6714
|
-
function moveAcrossDevice (src, dest, overwrite, cb) {
|
|
6737
|
+
function moveAcrossDevice$1 (src, dest, overwrite, cb) {
|
|
6715
6738
|
const opts = {
|
|
6716
6739
|
overwrite,
|
|
6717
6740
|
errorOnExist: true
|
|
@@ -6724,24 +6747,76 @@ function moveAcrossDevice (src, dest, overwrite, cb) {
|
|
|
6724
6747
|
|
|
6725
6748
|
var move_1 = move$1;
|
|
6726
6749
|
|
|
6750
|
+
const fs$d = gracefulFs;
|
|
6751
|
+
const path$g = require$$0$8;
|
|
6752
|
+
const copySync = copy$1.copySync;
|
|
6753
|
+
const removeSync = remove_1.removeSync;
|
|
6754
|
+
const mkdirpSync = mkdirs$2.mkdirpSync;
|
|
6755
|
+
const stat$1 = stat$5;
|
|
6756
|
+
|
|
6757
|
+
function moveSync (src, dest, opts) {
|
|
6758
|
+
opts = opts || {};
|
|
6759
|
+
const overwrite = opts.overwrite || opts.clobber || false;
|
|
6760
|
+
|
|
6761
|
+
const { srcStat, isChangingCase = false } = stat$1.checkPathsSync(src, dest, 'move', opts);
|
|
6762
|
+
stat$1.checkParentPathsSync(src, srcStat, dest, 'move');
|
|
6763
|
+
if (!isParentRoot(dest)) mkdirpSync(path$g.dirname(dest));
|
|
6764
|
+
return doRename(src, dest, overwrite, isChangingCase)
|
|
6765
|
+
}
|
|
6766
|
+
|
|
6767
|
+
function isParentRoot (dest) {
|
|
6768
|
+
const parent = path$g.dirname(dest);
|
|
6769
|
+
const parsedPath = path$g.parse(parent);
|
|
6770
|
+
return parsedPath.root === parent
|
|
6771
|
+
}
|
|
6772
|
+
|
|
6773
|
+
function doRename (src, dest, overwrite, isChangingCase) {
|
|
6774
|
+
if (isChangingCase) return rename(src, dest, overwrite)
|
|
6775
|
+
if (overwrite) {
|
|
6776
|
+
removeSync(dest);
|
|
6777
|
+
return rename(src, dest, overwrite)
|
|
6778
|
+
}
|
|
6779
|
+
if (fs$d.existsSync(dest)) throw new Error('dest already exists.')
|
|
6780
|
+
return rename(src, dest, overwrite)
|
|
6781
|
+
}
|
|
6782
|
+
|
|
6783
|
+
function rename (src, dest, overwrite) {
|
|
6784
|
+
try {
|
|
6785
|
+
fs$d.renameSync(src, dest);
|
|
6786
|
+
} catch (err) {
|
|
6787
|
+
if (err.code !== 'EXDEV') throw err
|
|
6788
|
+
return moveAcrossDevice(src, dest, overwrite)
|
|
6789
|
+
}
|
|
6790
|
+
}
|
|
6791
|
+
|
|
6792
|
+
function moveAcrossDevice (src, dest, overwrite) {
|
|
6793
|
+
const opts = {
|
|
6794
|
+
overwrite,
|
|
6795
|
+
errorOnExist: true
|
|
6796
|
+
};
|
|
6797
|
+
copySync(src, dest, opts);
|
|
6798
|
+
return removeSync(src)
|
|
6799
|
+
}
|
|
6800
|
+
|
|
6801
|
+
var moveSync_1 = moveSync;
|
|
6802
|
+
|
|
6727
6803
|
const u = universalify$1.fromCallback;
|
|
6728
6804
|
var move = {
|
|
6729
|
-
move: u(move_1)
|
|
6805
|
+
move: u(move_1),
|
|
6806
|
+
moveSync: moveSync_1
|
|
6730
6807
|
};
|
|
6731
6808
|
|
|
6732
6809
|
var lib$2 = {
|
|
6733
6810
|
// Export promiseified graceful-fs:
|
|
6734
6811
|
...fs$v,
|
|
6735
6812
|
// Export extra methods:
|
|
6736
|
-
...copySync$1,
|
|
6737
6813
|
...copy$1,
|
|
6738
6814
|
...empty$2,
|
|
6739
6815
|
...ensure,
|
|
6740
6816
|
...json,
|
|
6741
6817
|
...mkdirs$2,
|
|
6742
|
-
...moveSync,
|
|
6743
6818
|
...move,
|
|
6744
|
-
...
|
|
6819
|
+
...outputFile_1,
|
|
6745
6820
|
...pathExists_1,
|
|
6746
6821
|
...remove_1
|
|
6747
6822
|
};
|
|
@@ -10698,10 +10773,10 @@ micromatch$1.not = (list, patterns, options = {}) => {
|
|
|
10698
10773
|
items.push(state.output);
|
|
10699
10774
|
};
|
|
10700
10775
|
|
|
10701
|
-
let matches = micromatch$1(list, patterns, { ...options, onResult });
|
|
10776
|
+
let matches = new Set(micromatch$1(list, patterns, { ...options, onResult }));
|
|
10702
10777
|
|
|
10703
10778
|
for (let item of items) {
|
|
10704
|
-
if (!matches.
|
|
10779
|
+
if (!matches.has(item)) {
|
|
10705
10780
|
result.add(item);
|
|
10706
10781
|
}
|
|
10707
10782
|
}
|
|
@@ -10951,7 +11026,7 @@ micromatch$1.scan = (...args) => picomatch.scan(...args);
|
|
|
10951
11026
|
*
|
|
10952
11027
|
* ```js
|
|
10953
11028
|
* const mm = require('micromatch');
|
|
10954
|
-
* const state = mm(pattern[, options]);
|
|
11029
|
+
* const state = mm.parse(pattern[, options]);
|
|
10955
11030
|
* ```
|
|
10956
11031
|
* @param {String} `glob`
|
|
10957
11032
|
* @param {Object} `options`
|
|
@@ -52044,16 +52119,16 @@ class Interface {
|
|
|
52044
52119
|
message.forEach((msg) => {
|
|
52045
52120
|
const [label, ...values] = msg;
|
|
52046
52121
|
const spacer = [INDENT, INDENT].join("");
|
|
52047
|
-
output
|
|
52122
|
+
output.info(source$1.cyan([spacer, label, ...values].join(spacer)));
|
|
52048
52123
|
});
|
|
52049
52124
|
return;
|
|
52050
52125
|
}
|
|
52051
52126
|
const styledText = options.error ? source$1.redBright`${message}` : message;
|
|
52052
52127
|
const type = options.error ? `${source$1.black.bgRedBright` error `}${INDENT}` : "";
|
|
52053
52128
|
const combinedMessage = [type, styledText].join("");
|
|
52054
|
-
output
|
|
52129
|
+
output.info(options.strong ? source$1.bold(combinedMessage) : combinedMessage);
|
|
52055
52130
|
if (options.breakAfter) {
|
|
52056
|
-
output
|
|
52131
|
+
output.info("");
|
|
52057
52132
|
}
|
|
52058
52133
|
}
|
|
52059
52134
|
printFile({ path, overwritten, diff }) {
|
|
@@ -54142,7 +54217,7 @@ function _defu(baseObj, defaults, namespace = ".", merger) {
|
|
|
54142
54217
|
continue;
|
|
54143
54218
|
}
|
|
54144
54219
|
if (Array.isArray(val) && Array.isArray(obj[key])) {
|
|
54145
|
-
obj[key] = obj[key]
|
|
54220
|
+
obj[key] = val.concat(obj[key]);
|
|
54146
54221
|
} else if (isObject(val) && isObject(obj[key])) {
|
|
54147
54222
|
obj[key] = _defu(val, obj[key], (namespace ? `${namespace}.` : "") + key.toString(), merger);
|
|
54148
54223
|
} else {
|
|
@@ -54151,23 +54226,10 @@ function _defu(baseObj, defaults, namespace = ".", merger) {
|
|
|
54151
54226
|
}
|
|
54152
54227
|
return obj;
|
|
54153
54228
|
}
|
|
54154
|
-
function
|
|
54229
|
+
function createDefu(merger) {
|
|
54155
54230
|
return (...args) => args.reduce((p, c) => _defu(p, c, "", merger), {});
|
|
54156
54231
|
}
|
|
54157
|
-
const defu =
|
|
54158
|
-
defu.fn = extend((obj, key, currentValue, _namespace) => {
|
|
54159
|
-
if (typeof obj[key] !== "undefined" && typeof currentValue === "function") {
|
|
54160
|
-
obj[key] = currentValue(obj[key]);
|
|
54161
|
-
return true;
|
|
54162
|
-
}
|
|
54163
|
-
});
|
|
54164
|
-
defu.arrayFn = extend((obj, key, currentValue, _namespace) => {
|
|
54165
|
-
if (Array.isArray(obj[key]) && typeof currentValue === "function") {
|
|
54166
|
-
obj[key] = currentValue(obj[key]);
|
|
54167
|
-
return true;
|
|
54168
|
-
}
|
|
54169
|
-
});
|
|
54170
|
-
defu.extend = extend;
|
|
54232
|
+
const defu = createDefu();
|
|
54171
54233
|
|
|
54172
54234
|
const defaultExtensions = ["mts", "cts", "ts", "mjs", "cjs", "js", "json", ""];
|
|
54173
54235
|
|
|
@@ -63395,4 +63457,4 @@ class Command extends Command$1 {
|
|
|
63395
63457
|
}
|
|
63396
63458
|
|
|
63397
63459
|
export { Command as C, HelpfulError as H, source$1 as a, commonjsGlobal as b, cliHydrogenPackageJson as c, commonjsRequire as d, semver as s };
|
|
63398
|
-
//# sourceMappingURL=Command-
|
|
63460
|
+
//# sourceMappingURL=Command-a8d57e22.js.map
|