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