rollup 2.38.4 → 2.40.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 +54 -0
- package/LICENSE.md +1 -1
- package/dist/bin/rollup +18 -16
- package/dist/es/rollup.browser.js +3 -3
- package/dist/es/rollup.js +2 -2
- package/dist/es/shared/rollup.js +437 -373
- package/dist/es/shared/watch.js +480 -426
- package/dist/loadConfigFile.js +2 -2
- package/dist/rollup.browser.js +3 -3
- package/dist/rollup.d.ts +2 -0
- package/dist/rollup.js +2 -2
- package/dist/shared/index.js +446 -397
- package/dist/shared/loadConfigFile.js +8 -8
- package/dist/shared/mergeOptions.js +4 -3
- package/dist/shared/rollup.js +497 -434
- package/dist/shared/watch-cli.js +34 -26
- package/dist/shared/watch.js +29 -25
- package/package.json +22 -18
package/dist/es/shared/watch.js
CHANGED
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
/*
|
|
2
2
|
@license
|
|
3
|
-
Rollup.js v2.
|
|
4
|
-
|
|
3
|
+
Rollup.js v2.40.0
|
|
4
|
+
Fri, 26 Feb 2021 14:39:44 GMT - commit 0a0958ff926554abe9916178f56762ba71301ddd
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
https://github.com/rollup/rollup
|
|
8
8
|
|
|
9
9
|
Released under the MIT License.
|
|
10
10
|
*/
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import {
|
|
14
|
-
import require$$0$
|
|
15
|
-
import fs from 'fs';
|
|
16
|
-
import require$$
|
|
17
|
-
import require$$
|
|
11
|
+
import require$$0$2, { sep, resolve } from 'path';
|
|
12
|
+
import require$$0$1 from 'util';
|
|
13
|
+
import { defaultOnWarn, ensureArray as ensureArray$1, warnUnknownOptions, getAugmentedNamespace, fseventsImporter, rollupInternal } from './rollup.js';
|
|
14
|
+
import require$$0$3 from 'events';
|
|
15
|
+
import fs$4 from 'fs';
|
|
16
|
+
import require$$1 from 'stream';
|
|
17
|
+
import require$$2, { platform } from 'os';
|
|
18
18
|
import 'crypto';
|
|
19
19
|
|
|
20
|
-
var utils =
|
|
20
|
+
var utils$8 = {};
|
|
21
|
+
|
|
22
|
+
(function (exports) {
|
|
21
23
|
|
|
22
24
|
exports.isInteger = num => {
|
|
23
25
|
if (typeof num === 'number') {
|
|
@@ -129,16 +131,18 @@ exports.flatten = (...args) => {
|
|
|
129
131
|
flat(args);
|
|
130
132
|
return result;
|
|
131
133
|
};
|
|
132
|
-
});
|
|
134
|
+
}(utils$8));
|
|
135
|
+
|
|
136
|
+
const utils$7 = utils$8;
|
|
133
137
|
|
|
134
|
-
var stringify = (ast, options = {}) => {
|
|
138
|
+
var stringify$4 = (ast, options = {}) => {
|
|
135
139
|
let stringify = (node, parent = {}) => {
|
|
136
|
-
let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent);
|
|
140
|
+
let invalidBlock = options.escapeInvalid && utils$7.isInvalidBrace(parent);
|
|
137
141
|
let invalidNode = node.invalid === true && options.escapeInvalid === true;
|
|
138
142
|
let output = '';
|
|
139
143
|
|
|
140
144
|
if (node.value) {
|
|
141
|
-
if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) {
|
|
145
|
+
if ((invalidBlock || invalidNode) && utils$7.isOpenOrClose(node)) {
|
|
142
146
|
return '\\' + node.value;
|
|
143
147
|
}
|
|
144
148
|
return node.value;
|
|
@@ -166,7 +170,7 @@ var stringify = (ast, options = {}) => {
|
|
|
166
170
|
* Released under the MIT License.
|
|
167
171
|
*/
|
|
168
172
|
|
|
169
|
-
var isNumber = function(num) {
|
|
173
|
+
var isNumber$2 = function(num) {
|
|
170
174
|
if (typeof num === 'number') {
|
|
171
175
|
return num - num === 0;
|
|
172
176
|
}
|
|
@@ -183,10 +187,10 @@ var isNumber = function(num) {
|
|
|
183
187
|
* Released under the MIT License.
|
|
184
188
|
*/
|
|
185
189
|
|
|
190
|
+
const isNumber$1 = isNumber$2;
|
|
186
191
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
if (isNumber(min) === false) {
|
|
192
|
+
const toRegexRange$1 = (min, max, options) => {
|
|
193
|
+
if (isNumber$1(min) === false) {
|
|
190
194
|
throw new TypeError('toRegexRange: expected the first argument to be a number');
|
|
191
195
|
}
|
|
192
196
|
|
|
@@ -194,7 +198,7 @@ const toRegexRange = (min, max, options) => {
|
|
|
194
198
|
return String(min);
|
|
195
199
|
}
|
|
196
200
|
|
|
197
|
-
if (isNumber(max) === false) {
|
|
201
|
+
if (isNumber$1(max) === false) {
|
|
198
202
|
throw new TypeError('toRegexRange: expected the second argument to be a number.');
|
|
199
203
|
}
|
|
200
204
|
|
|
@@ -209,8 +213,8 @@ const toRegexRange = (min, max, options) => {
|
|
|
209
213
|
let wrap = String(opts.wrap);
|
|
210
214
|
let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap;
|
|
211
215
|
|
|
212
|
-
if (toRegexRange.cache.hasOwnProperty(cacheKey)) {
|
|
213
|
-
return toRegexRange.cache[cacheKey].result;
|
|
216
|
+
if (toRegexRange$1.cache.hasOwnProperty(cacheKey)) {
|
|
217
|
+
return toRegexRange$1.cache[cacheKey].result;
|
|
214
218
|
}
|
|
215
219
|
|
|
216
220
|
let a = Math.min(min, max);
|
|
@@ -257,7 +261,7 @@ const toRegexRange = (min, max, options) => {
|
|
|
257
261
|
state.result = `(?:${state.result})`;
|
|
258
262
|
}
|
|
259
263
|
|
|
260
|
-
toRegexRange.cache[cacheKey] = state;
|
|
264
|
+
toRegexRange$1.cache[cacheKey] = state;
|
|
261
265
|
return state.result;
|
|
262
266
|
};
|
|
263
267
|
|
|
@@ -454,14 +458,14 @@ function padZeros(value, tok, options) {
|
|
|
454
458
|
* Cache
|
|
455
459
|
*/
|
|
456
460
|
|
|
457
|
-
toRegexRange.cache = {};
|
|
458
|
-
toRegexRange.clearCache = () => (toRegexRange.cache = {});
|
|
461
|
+
toRegexRange$1.cache = {};
|
|
462
|
+
toRegexRange$1.clearCache = () => (toRegexRange$1.cache = {});
|
|
459
463
|
|
|
460
464
|
/**
|
|
461
465
|
* Expose `toRegexRange`
|
|
462
466
|
*/
|
|
463
467
|
|
|
464
|
-
var toRegexRange_1 = toRegexRange;
|
|
468
|
+
var toRegexRange_1 = toRegexRange$1;
|
|
465
469
|
|
|
466
470
|
/*!
|
|
467
471
|
* fill-range <https://github.com/jonschlinkert/fill-range>
|
|
@@ -470,10 +474,10 @@ var toRegexRange_1 = toRegexRange;
|
|
|
470
474
|
* Licensed under the MIT License.
|
|
471
475
|
*/
|
|
472
476
|
|
|
477
|
+
const util$1 = require$$0$1;
|
|
478
|
+
const toRegexRange = toRegexRange_1;
|
|
473
479
|
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);
|
|
480
|
+
const isObject$1 = val => val !== null && typeof val === 'object' && !Array.isArray(val);
|
|
477
481
|
|
|
478
482
|
const transform = toNumber => {
|
|
479
483
|
return value => toNumber === true ? Number(value) : String(value);
|
|
@@ -483,7 +487,7 @@ const isValidValue = value => {
|
|
|
483
487
|
return typeof value === 'number' || (typeof value === 'string' && value !== '');
|
|
484
488
|
};
|
|
485
489
|
|
|
486
|
-
const isNumber
|
|
490
|
+
const isNumber = num => Number.isInteger(+num);
|
|
487
491
|
|
|
488
492
|
const zeros = input => {
|
|
489
493
|
let value = `${input}`;
|
|
@@ -494,7 +498,7 @@ const zeros = input => {
|
|
|
494
498
|
return index > 0;
|
|
495
499
|
};
|
|
496
500
|
|
|
497
|
-
const stringify$
|
|
501
|
+
const stringify$3 = (start, end, options) => {
|
|
498
502
|
if (typeof start === 'string' || typeof end === 'string') {
|
|
499
503
|
return true;
|
|
500
504
|
}
|
|
@@ -555,7 +559,7 @@ const toSequence = (parts, options) => {
|
|
|
555
559
|
|
|
556
560
|
const toRange = (a, b, isNumbers, options) => {
|
|
557
561
|
if (isNumbers) {
|
|
558
|
-
return
|
|
562
|
+
return toRegexRange(a, b, { wrap: false, ...options });
|
|
559
563
|
}
|
|
560
564
|
|
|
561
565
|
let start = String.fromCharCode(a);
|
|
@@ -571,11 +575,11 @@ const toRegex = (start, end, options) => {
|
|
|
571
575
|
let prefix = options.capture ? '' : '?:';
|
|
572
576
|
return wrap ? `(${prefix}${start.join('|')})` : start.join('|');
|
|
573
577
|
}
|
|
574
|
-
return
|
|
578
|
+
return toRegexRange(start, end, options);
|
|
575
579
|
};
|
|
576
580
|
|
|
577
581
|
const rangeError = (...args) => {
|
|
578
|
-
return new RangeError('Invalid range arguments: ' + util.inspect(...args));
|
|
582
|
+
return new RangeError('Invalid range arguments: ' + util$1.inspect(...args));
|
|
579
583
|
};
|
|
580
584
|
|
|
581
585
|
const invalidRange = (start, end, options) => {
|
|
@@ -611,7 +615,7 @@ const fillNumbers = (start, end, step = 1, options = {}) => {
|
|
|
611
615
|
|
|
612
616
|
let padded = zeros(startString) || zeros(endString) || zeros(stepString);
|
|
613
617
|
let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;
|
|
614
|
-
let toNumber = padded === false && stringify$
|
|
618
|
+
let toNumber = padded === false && stringify$3(start, end, options) === false;
|
|
615
619
|
let format = options.transform || transform(toNumber);
|
|
616
620
|
|
|
617
621
|
if (options.toRegex && step === 1) {
|
|
@@ -643,7 +647,7 @@ const fillNumbers = (start, end, step = 1, options = {}) => {
|
|
|
643
647
|
};
|
|
644
648
|
|
|
645
649
|
const fillLetters = (start, end, step = 1, options = {}) => {
|
|
646
|
-
if ((!isNumber
|
|
650
|
+
if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) {
|
|
647
651
|
return invalidRange(start, end, options);
|
|
648
652
|
}
|
|
649
653
|
|
|
@@ -676,7 +680,7 @@ const fillLetters = (start, end, step = 1, options = {}) => {
|
|
|
676
680
|
return range;
|
|
677
681
|
};
|
|
678
682
|
|
|
679
|
-
const fill = (start, end, step, options = {}) => {
|
|
683
|
+
const fill$2 = (start, end, step, options = {}) => {
|
|
680
684
|
if (end == null && isValidValue(start)) {
|
|
681
685
|
return [start];
|
|
682
686
|
}
|
|
@@ -686,34 +690,37 @@ const fill = (start, end, step, options = {}) => {
|
|
|
686
690
|
}
|
|
687
691
|
|
|
688
692
|
if (typeof step === 'function') {
|
|
689
|
-
return fill(start, end, 1, { transform: step });
|
|
693
|
+
return fill$2(start, end, 1, { transform: step });
|
|
690
694
|
}
|
|
691
695
|
|
|
692
|
-
if (isObject(step)) {
|
|
693
|
-
return fill(start, end, 0, step);
|
|
696
|
+
if (isObject$1(step)) {
|
|
697
|
+
return fill$2(start, end, 0, step);
|
|
694
698
|
}
|
|
695
699
|
|
|
696
700
|
let opts = { ...options };
|
|
697
701
|
if (opts.capture === true) opts.wrap = true;
|
|
698
702
|
step = step || opts.step || 1;
|
|
699
703
|
|
|
700
|
-
if (!isNumber
|
|
701
|
-
if (step != null && !isObject(step)) return invalidStep(step, opts);
|
|
702
|
-
return fill(start, end, 1, step);
|
|
704
|
+
if (!isNumber(step)) {
|
|
705
|
+
if (step != null && !isObject$1(step)) return invalidStep(step, opts);
|
|
706
|
+
return fill$2(start, end, 1, step);
|
|
703
707
|
}
|
|
704
708
|
|
|
705
|
-
if (isNumber
|
|
709
|
+
if (isNumber(start) && isNumber(end)) {
|
|
706
710
|
return fillNumbers(start, end, step, opts);
|
|
707
711
|
}
|
|
708
712
|
|
|
709
713
|
return fillLetters(start, end, Math.max(Math.abs(step), 1), opts);
|
|
710
714
|
};
|
|
711
715
|
|
|
712
|
-
var fillRange = fill;
|
|
716
|
+
var fillRange = fill$2;
|
|
717
|
+
|
|
718
|
+
const fill$1 = fillRange;
|
|
719
|
+
const utils$6 = utils$8;
|
|
713
720
|
|
|
714
|
-
const compile = (ast, options = {}) => {
|
|
721
|
+
const compile$1 = (ast, options = {}) => {
|
|
715
722
|
let walk = (node, parent = {}) => {
|
|
716
|
-
let invalidBlock = utils.isInvalidBrace(parent);
|
|
723
|
+
let invalidBlock = utils$6.isInvalidBrace(parent);
|
|
717
724
|
let invalidNode = node.invalid === true && options.escapeInvalid === true;
|
|
718
725
|
let invalid = invalidBlock === true || invalidNode === true;
|
|
719
726
|
let prefix = options.escapeInvalid === true ? '\\' : '';
|
|
@@ -743,8 +750,8 @@ const compile = (ast, options = {}) => {
|
|
|
743
750
|
}
|
|
744
751
|
|
|
745
752
|
if (node.nodes && node.ranges > 0) {
|
|
746
|
-
let args = utils.reduce(node.nodes);
|
|
747
|
-
let range =
|
|
753
|
+
let args = utils$6.reduce(node.nodes);
|
|
754
|
+
let range = fill$1(...args, { ...options, wrap: false, toRegex: true });
|
|
748
755
|
|
|
749
756
|
if (range.length !== 0) {
|
|
750
757
|
return args.length > 1 && range.length > 1 ? `(${range})` : range;
|
|
@@ -762,7 +769,11 @@ const compile = (ast, options = {}) => {
|
|
|
762
769
|
return walk(ast);
|
|
763
770
|
};
|
|
764
771
|
|
|
765
|
-
var compile_1 = compile;
|
|
772
|
+
var compile_1 = compile$1;
|
|
773
|
+
|
|
774
|
+
const fill = fillRange;
|
|
775
|
+
const stringify$2 = stringify$4;
|
|
776
|
+
const utils$5 = utils$8;
|
|
766
777
|
|
|
767
778
|
const append = (queue = '', stash = '', enclose = false) => {
|
|
768
779
|
let result = [];
|
|
@@ -772,7 +783,7 @@ const append = (queue = '', stash = '', enclose = false) => {
|
|
|
772
783
|
|
|
773
784
|
if (!stash.length) return queue;
|
|
774
785
|
if (!queue.length) {
|
|
775
|
-
return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash;
|
|
786
|
+
return enclose ? utils$5.flatten(stash).map(ele => `{${ele}}`) : stash;
|
|
776
787
|
}
|
|
777
788
|
|
|
778
789
|
for (let item of queue) {
|
|
@@ -787,10 +798,10 @@ const append = (queue = '', stash = '', enclose = false) => {
|
|
|
787
798
|
}
|
|
788
799
|
}
|
|
789
800
|
}
|
|
790
|
-
return utils.flatten(result);
|
|
801
|
+
return utils$5.flatten(result);
|
|
791
802
|
};
|
|
792
803
|
|
|
793
|
-
const expand = (ast, options = {}) => {
|
|
804
|
+
const expand$1 = (ast, options = {}) => {
|
|
794
805
|
let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit;
|
|
795
806
|
|
|
796
807
|
let walk = (node, parent = {}) => {
|
|
@@ -805,7 +816,7 @@ const expand = (ast, options = {}) => {
|
|
|
805
816
|
}
|
|
806
817
|
|
|
807
818
|
if (node.invalid || node.dollar) {
|
|
808
|
-
q.push(append(q.pop(), stringify(node, options)));
|
|
819
|
+
q.push(append(q.pop(), stringify$2(node, options)));
|
|
809
820
|
return;
|
|
810
821
|
}
|
|
811
822
|
|
|
@@ -815,15 +826,15 @@ const expand = (ast, options = {}) => {
|
|
|
815
826
|
}
|
|
816
827
|
|
|
817
828
|
if (node.nodes && node.ranges > 0) {
|
|
818
|
-
let args = utils.reduce(node.nodes);
|
|
829
|
+
let args = utils$5.reduce(node.nodes);
|
|
819
830
|
|
|
820
|
-
if (utils.exceedsLimit(...args, options.step, rangeLimit)) {
|
|
831
|
+
if (utils$5.exceedsLimit(...args, options.step, rangeLimit)) {
|
|
821
832
|
throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.');
|
|
822
833
|
}
|
|
823
834
|
|
|
824
|
-
let range =
|
|
835
|
+
let range = fill(...args, options);
|
|
825
836
|
if (range.length === 0) {
|
|
826
|
-
range = stringify(node, options);
|
|
837
|
+
range = stringify$2(node, options);
|
|
827
838
|
}
|
|
828
839
|
|
|
829
840
|
q.push(append(q.pop(), range));
|
|
@@ -831,7 +842,7 @@ const expand = (ast, options = {}) => {
|
|
|
831
842
|
return;
|
|
832
843
|
}
|
|
833
844
|
|
|
834
|
-
let enclose = utils.encloseBrace(node);
|
|
845
|
+
let enclose = utils$5.encloseBrace(node);
|
|
835
846
|
let queue = node.queue;
|
|
836
847
|
let block = node;
|
|
837
848
|
|
|
@@ -867,12 +878,12 @@ const expand = (ast, options = {}) => {
|
|
|
867
878
|
return queue;
|
|
868
879
|
};
|
|
869
880
|
|
|
870
|
-
return utils.flatten(walk(ast));
|
|
881
|
+
return utils$5.flatten(walk(ast));
|
|
871
882
|
};
|
|
872
883
|
|
|
873
|
-
var expand_1 = expand;
|
|
884
|
+
var expand_1 = expand$1;
|
|
874
885
|
|
|
875
|
-
var constants = {
|
|
886
|
+
var constants$4 = {
|
|
876
887
|
MAX_LENGTH: 1024 * 64,
|
|
877
888
|
|
|
878
889
|
// Digits
|
|
@@ -928,39 +939,41 @@ var constants = {
|
|
|
928
939
|
CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' /* \uFEFF */
|
|
929
940
|
};
|
|
930
941
|
|
|
942
|
+
const stringify$1 = stringify$4;
|
|
943
|
+
|
|
931
944
|
/**
|
|
932
945
|
* Constants
|
|
933
946
|
*/
|
|
934
947
|
|
|
935
948
|
const {
|
|
936
|
-
MAX_LENGTH,
|
|
949
|
+
MAX_LENGTH: MAX_LENGTH$1,
|
|
937
950
|
CHAR_BACKSLASH, /* \ */
|
|
938
951
|
CHAR_BACKTICK, /* ` */
|
|
939
|
-
CHAR_COMMA, /* , */
|
|
940
|
-
CHAR_DOT, /* . */
|
|
941
|
-
CHAR_LEFT_PARENTHESES, /* ( */
|
|
942
|
-
CHAR_RIGHT_PARENTHESES, /* ) */
|
|
943
|
-
CHAR_LEFT_CURLY_BRACE, /* { */
|
|
944
|
-
CHAR_RIGHT_CURLY_BRACE, /* } */
|
|
945
|
-
CHAR_LEFT_SQUARE_BRACKET, /* [ */
|
|
946
|
-
CHAR_RIGHT_SQUARE_BRACKET, /* ] */
|
|
952
|
+
CHAR_COMMA: CHAR_COMMA$1, /* , */
|
|
953
|
+
CHAR_DOT: CHAR_DOT$1, /* . */
|
|
954
|
+
CHAR_LEFT_PARENTHESES: CHAR_LEFT_PARENTHESES$1, /* ( */
|
|
955
|
+
CHAR_RIGHT_PARENTHESES: CHAR_RIGHT_PARENTHESES$1, /* ) */
|
|
956
|
+
CHAR_LEFT_CURLY_BRACE: CHAR_LEFT_CURLY_BRACE$1, /* { */
|
|
957
|
+
CHAR_RIGHT_CURLY_BRACE: CHAR_RIGHT_CURLY_BRACE$1, /* } */
|
|
958
|
+
CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$1, /* [ */
|
|
959
|
+
CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$1, /* ] */
|
|
947
960
|
CHAR_DOUBLE_QUOTE, /* " */
|
|
948
961
|
CHAR_SINGLE_QUOTE, /* ' */
|
|
949
962
|
CHAR_NO_BREAK_SPACE,
|
|
950
963
|
CHAR_ZERO_WIDTH_NOBREAK_SPACE
|
|
951
|
-
} = constants;
|
|
964
|
+
} = constants$4;
|
|
952
965
|
|
|
953
966
|
/**
|
|
954
967
|
* parse
|
|
955
968
|
*/
|
|
956
969
|
|
|
957
|
-
const parse = (input, options = {}) => {
|
|
970
|
+
const parse$3 = (input, options = {}) => {
|
|
958
971
|
if (typeof input !== 'string') {
|
|
959
972
|
throw new TypeError('Expected a string');
|
|
960
973
|
}
|
|
961
974
|
|
|
962
975
|
let opts = options || {};
|
|
963
|
-
let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
|
|
976
|
+
let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$1, opts.maxLength) : MAX_LENGTH$1;
|
|
964
977
|
if (input.length > max) {
|
|
965
978
|
throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);
|
|
966
979
|
}
|
|
@@ -1024,7 +1037,7 @@ const parse = (input, options = {}) => {
|
|
|
1024
1037
|
* Right square bracket (literal): ']'
|
|
1025
1038
|
*/
|
|
1026
1039
|
|
|
1027
|
-
if (value === CHAR_RIGHT_SQUARE_BRACKET) {
|
|
1040
|
+
if (value === CHAR_RIGHT_SQUARE_BRACKET$1) {
|
|
1028
1041
|
push({ type: 'text', value: '\\' + value });
|
|
1029
1042
|
continue;
|
|
1030
1043
|
}
|
|
@@ -1033,14 +1046,14 @@ const parse = (input, options = {}) => {
|
|
|
1033
1046
|
* Left square bracket: '['
|
|
1034
1047
|
*/
|
|
1035
1048
|
|
|
1036
|
-
if (value === CHAR_LEFT_SQUARE_BRACKET) {
|
|
1049
|
+
if (value === CHAR_LEFT_SQUARE_BRACKET$1) {
|
|
1037
1050
|
brackets++;
|
|
1038
1051
|
let next;
|
|
1039
1052
|
|
|
1040
1053
|
while (index < length && (next = advance())) {
|
|
1041
1054
|
value += next;
|
|
1042
1055
|
|
|
1043
|
-
if (next === CHAR_LEFT_SQUARE_BRACKET) {
|
|
1056
|
+
if (next === CHAR_LEFT_SQUARE_BRACKET$1) {
|
|
1044
1057
|
brackets++;
|
|
1045
1058
|
continue;
|
|
1046
1059
|
}
|
|
@@ -1050,7 +1063,7 @@ const parse = (input, options = {}) => {
|
|
|
1050
1063
|
continue;
|
|
1051
1064
|
}
|
|
1052
1065
|
|
|
1053
|
-
if (next === CHAR_RIGHT_SQUARE_BRACKET) {
|
|
1066
|
+
if (next === CHAR_RIGHT_SQUARE_BRACKET$1) {
|
|
1054
1067
|
brackets--;
|
|
1055
1068
|
|
|
1056
1069
|
if (brackets === 0) {
|
|
@@ -1067,14 +1080,14 @@ const parse = (input, options = {}) => {
|
|
|
1067
1080
|
* Parentheses
|
|
1068
1081
|
*/
|
|
1069
1082
|
|
|
1070
|
-
if (value === CHAR_LEFT_PARENTHESES) {
|
|
1083
|
+
if (value === CHAR_LEFT_PARENTHESES$1) {
|
|
1071
1084
|
block = push({ type: 'paren', nodes: [] });
|
|
1072
1085
|
stack.push(block);
|
|
1073
1086
|
push({ type: 'text', value });
|
|
1074
1087
|
continue;
|
|
1075
1088
|
}
|
|
1076
1089
|
|
|
1077
|
-
if (value === CHAR_RIGHT_PARENTHESES) {
|
|
1090
|
+
if (value === CHAR_RIGHT_PARENTHESES$1) {
|
|
1078
1091
|
if (block.type !== 'paren') {
|
|
1079
1092
|
push({ type: 'text', value });
|
|
1080
1093
|
continue;
|
|
@@ -1119,7 +1132,7 @@ const parse = (input, options = {}) => {
|
|
|
1119
1132
|
* Left curly brace: '{'
|
|
1120
1133
|
*/
|
|
1121
1134
|
|
|
1122
|
-
if (value === CHAR_LEFT_CURLY_BRACE) {
|
|
1135
|
+
if (value === CHAR_LEFT_CURLY_BRACE$1) {
|
|
1123
1136
|
depth++;
|
|
1124
1137
|
|
|
1125
1138
|
let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;
|
|
@@ -1144,7 +1157,7 @@ const parse = (input, options = {}) => {
|
|
|
1144
1157
|
* Right curly brace: '}'
|
|
1145
1158
|
*/
|
|
1146
1159
|
|
|
1147
|
-
if (value === CHAR_RIGHT_CURLY_BRACE) {
|
|
1160
|
+
if (value === CHAR_RIGHT_CURLY_BRACE$1) {
|
|
1148
1161
|
if (block.type !== 'brace') {
|
|
1149
1162
|
push({ type: 'text', value });
|
|
1150
1163
|
continue;
|
|
@@ -1165,11 +1178,11 @@ const parse = (input, options = {}) => {
|
|
|
1165
1178
|
* Comma: ','
|
|
1166
1179
|
*/
|
|
1167
1180
|
|
|
1168
|
-
if (value === CHAR_COMMA && depth > 0) {
|
|
1181
|
+
if (value === CHAR_COMMA$1 && depth > 0) {
|
|
1169
1182
|
if (block.ranges > 0) {
|
|
1170
1183
|
block.ranges = 0;
|
|
1171
1184
|
let open = block.nodes.shift();
|
|
1172
|
-
block.nodes = [open, { type: 'text', value: stringify(block) }];
|
|
1185
|
+
block.nodes = [open, { type: 'text', value: stringify$1(block) }];
|
|
1173
1186
|
}
|
|
1174
1187
|
|
|
1175
1188
|
push({ type: 'comma', value });
|
|
@@ -1181,7 +1194,7 @@ const parse = (input, options = {}) => {
|
|
|
1181
1194
|
* Dot: '.'
|
|
1182
1195
|
*/
|
|
1183
1196
|
|
|
1184
|
-
if (value === CHAR_DOT && depth > 0 && block.commas === 0) {
|
|
1197
|
+
if (value === CHAR_DOT$1 && depth > 0 && block.commas === 0) {
|
|
1185
1198
|
let siblings = block.nodes;
|
|
1186
1199
|
|
|
1187
1200
|
if (depth === 0 || siblings.length === 0) {
|
|
@@ -1253,7 +1266,12 @@ const parse = (input, options = {}) => {
|
|
|
1253
1266
|
return ast;
|
|
1254
1267
|
};
|
|
1255
1268
|
|
|
1256
|
-
var parse_1 = parse;
|
|
1269
|
+
var parse_1$1 = parse$3;
|
|
1270
|
+
|
|
1271
|
+
const stringify = stringify$4;
|
|
1272
|
+
const compile = compile_1;
|
|
1273
|
+
const expand = expand_1;
|
|
1274
|
+
const parse$2 = parse_1$1;
|
|
1257
1275
|
|
|
1258
1276
|
/**
|
|
1259
1277
|
* Expand the given pattern or create a regex-compatible string.
|
|
@@ -1269,12 +1287,12 @@ var parse_1 = parse;
|
|
|
1269
1287
|
* @api public
|
|
1270
1288
|
*/
|
|
1271
1289
|
|
|
1272
|
-
const braces = (input, options = {}) => {
|
|
1290
|
+
const braces$2 = (input, options = {}) => {
|
|
1273
1291
|
let output = [];
|
|
1274
1292
|
|
|
1275
1293
|
if (Array.isArray(input)) {
|
|
1276
1294
|
for (let pattern of input) {
|
|
1277
|
-
let result = braces.create(pattern, options);
|
|
1295
|
+
let result = braces$2.create(pattern, options);
|
|
1278
1296
|
if (Array.isArray(result)) {
|
|
1279
1297
|
output.push(...result);
|
|
1280
1298
|
} else {
|
|
@@ -1282,7 +1300,7 @@ const braces = (input, options = {}) => {
|
|
|
1282
1300
|
}
|
|
1283
1301
|
}
|
|
1284
1302
|
} else {
|
|
1285
|
-
output = [].concat(braces.create(input, options));
|
|
1303
|
+
output = [].concat(braces$2.create(input, options));
|
|
1286
1304
|
}
|
|
1287
1305
|
|
|
1288
1306
|
if (options && options.expand === true && options.nodupes === true) {
|
|
@@ -1305,7 +1323,7 @@ const braces = (input, options = {}) => {
|
|
|
1305
1323
|
* @api public
|
|
1306
1324
|
*/
|
|
1307
1325
|
|
|
1308
|
-
braces.parse = (input, options = {}) =>
|
|
1326
|
+
braces$2.parse = (input, options = {}) => parse$2(input, options);
|
|
1309
1327
|
|
|
1310
1328
|
/**
|
|
1311
1329
|
* Creates a braces string from an AST, or an AST node.
|
|
@@ -1321,9 +1339,9 @@ braces.parse = (input, options = {}) => parse_1(input, options);
|
|
|
1321
1339
|
* @api public
|
|
1322
1340
|
*/
|
|
1323
1341
|
|
|
1324
|
-
braces.stringify = (input, options = {}) => {
|
|
1342
|
+
braces$2.stringify = (input, options = {}) => {
|
|
1325
1343
|
if (typeof input === 'string') {
|
|
1326
|
-
return stringify(braces.parse(input, options), options);
|
|
1344
|
+
return stringify(braces$2.parse(input, options), options);
|
|
1327
1345
|
}
|
|
1328
1346
|
return stringify(input, options);
|
|
1329
1347
|
};
|
|
@@ -1343,11 +1361,11 @@ braces.stringify = (input, options = {}) => {
|
|
|
1343
1361
|
* @api public
|
|
1344
1362
|
*/
|
|
1345
1363
|
|
|
1346
|
-
braces.compile = (input, options = {}) => {
|
|
1364
|
+
braces$2.compile = (input, options = {}) => {
|
|
1347
1365
|
if (typeof input === 'string') {
|
|
1348
|
-
input = braces.parse(input, options);
|
|
1366
|
+
input = braces$2.parse(input, options);
|
|
1349
1367
|
}
|
|
1350
|
-
return
|
|
1368
|
+
return compile(input, options);
|
|
1351
1369
|
};
|
|
1352
1370
|
|
|
1353
1371
|
/**
|
|
@@ -1367,12 +1385,12 @@ braces.compile = (input, options = {}) => {
|
|
|
1367
1385
|
* @api public
|
|
1368
1386
|
*/
|
|
1369
1387
|
|
|
1370
|
-
braces.expand = (input, options = {}) => {
|
|
1388
|
+
braces$2.expand = (input, options = {}) => {
|
|
1371
1389
|
if (typeof input === 'string') {
|
|
1372
|
-
input = braces.parse(input, options);
|
|
1390
|
+
input = braces$2.parse(input, options);
|
|
1373
1391
|
}
|
|
1374
1392
|
|
|
1375
|
-
let result =
|
|
1393
|
+
let result = expand(input, options);
|
|
1376
1394
|
|
|
1377
1395
|
// filter out empty strings if specified
|
|
1378
1396
|
if (options.noempty === true) {
|
|
@@ -1403,22 +1421,25 @@ braces.expand = (input, options = {}) => {
|
|
|
1403
1421
|
* @api public
|
|
1404
1422
|
*/
|
|
1405
1423
|
|
|
1406
|
-
braces.create = (input, options = {}) => {
|
|
1424
|
+
braces$2.create = (input, options = {}) => {
|
|
1407
1425
|
if (input === '' || input.length < 3) {
|
|
1408
1426
|
return [input];
|
|
1409
1427
|
}
|
|
1410
1428
|
|
|
1411
1429
|
return options.expand !== true
|
|
1412
|
-
? braces.compile(input, options)
|
|
1413
|
-
: braces.expand(input, options);
|
|
1430
|
+
? braces$2.compile(input, options)
|
|
1431
|
+
: braces$2.expand(input, options);
|
|
1414
1432
|
};
|
|
1415
1433
|
|
|
1416
1434
|
/**
|
|
1417
1435
|
* Expose "braces"
|
|
1418
1436
|
*/
|
|
1419
1437
|
|
|
1420
|
-
var braces_1 = braces;
|
|
1438
|
+
var braces_1 = braces$2;
|
|
1421
1439
|
|
|
1440
|
+
var utils$4 = {};
|
|
1441
|
+
|
|
1442
|
+
const path$2 = require$$0$2;
|
|
1422
1443
|
const WIN_SLASH = '\\\\/';
|
|
1423
1444
|
const WIN_NO_SLASH = `[^${WIN_SLASH}]`;
|
|
1424
1445
|
|
|
@@ -1440,7 +1461,7 @@ const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;
|
|
|
1440
1461
|
const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;
|
|
1441
1462
|
const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;
|
|
1442
1463
|
const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;
|
|
1443
|
-
const STAR = `${QMARK}*?`;
|
|
1464
|
+
const STAR$1 = `${QMARK}*?`;
|
|
1444
1465
|
|
|
1445
1466
|
const POSIX_CHARS = {
|
|
1446
1467
|
DOT_LITERAL,
|
|
@@ -1456,7 +1477,7 @@ const POSIX_CHARS = {
|
|
|
1456
1477
|
NO_DOT_SLASH,
|
|
1457
1478
|
NO_DOTS_SLASH,
|
|
1458
1479
|
QMARK_NO_DOT,
|
|
1459
|
-
STAR,
|
|
1480
|
+
STAR: STAR$1,
|
|
1460
1481
|
START_ANCHOR
|
|
1461
1482
|
};
|
|
1462
1483
|
|
|
@@ -1484,7 +1505,7 @@ const WINDOWS_CHARS = {
|
|
|
1484
1505
|
* POSIX Bracket Regex
|
|
1485
1506
|
*/
|
|
1486
1507
|
|
|
1487
|
-
const POSIX_REGEX_SOURCE = {
|
|
1508
|
+
const POSIX_REGEX_SOURCE$1 = {
|
|
1488
1509
|
alnum: 'a-zA-Z0-9',
|
|
1489
1510
|
alpha: 'a-zA-Z',
|
|
1490
1511
|
ascii: '\\x00-\\x7F',
|
|
@@ -1501,9 +1522,9 @@ const POSIX_REGEX_SOURCE = {
|
|
|
1501
1522
|
xdigit: 'A-Fa-f0-9'
|
|
1502
1523
|
};
|
|
1503
1524
|
|
|
1504
|
-
var constants$
|
|
1525
|
+
var constants$3 = {
|
|
1505
1526
|
MAX_LENGTH: 1024 * 64,
|
|
1506
|
-
POSIX_REGEX_SOURCE,
|
|
1527
|
+
POSIX_REGEX_SOURCE: POSIX_REGEX_SOURCE$1,
|
|
1507
1528
|
|
|
1508
1529
|
// regular expressions
|
|
1509
1530
|
REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g,
|
|
@@ -1571,7 +1592,7 @@ var constants$1 = {
|
|
|
1571
1592
|
CHAR_VERTICAL_LINE: 124, /* | */
|
|
1572
1593
|
CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \uFEFF */
|
|
1573
1594
|
|
|
1574
|
-
SEP:
|
|
1595
|
+
SEP: path$2.sep,
|
|
1575
1596
|
|
|
1576
1597
|
/**
|
|
1577
1598
|
* Create EXTGLOB_CHARS
|
|
@@ -1596,16 +1617,16 @@ var constants$1 = {
|
|
|
1596
1617
|
}
|
|
1597
1618
|
};
|
|
1598
1619
|
|
|
1599
|
-
|
|
1600
|
-
|
|
1620
|
+
(function (exports) {
|
|
1601
1621
|
|
|
1622
|
+
const path = require$$0$2;
|
|
1602
1623
|
const win32 = process.platform === 'win32';
|
|
1603
1624
|
const {
|
|
1604
1625
|
REGEX_BACKSLASH,
|
|
1605
1626
|
REGEX_REMOVE_BACKSLASH,
|
|
1606
1627
|
REGEX_SPECIAL_CHARS,
|
|
1607
1628
|
REGEX_SPECIAL_CHARS_GLOBAL
|
|
1608
|
-
} = constants$
|
|
1629
|
+
} = constants$3;
|
|
1609
1630
|
|
|
1610
1631
|
exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);
|
|
1611
1632
|
exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);
|
|
@@ -1631,7 +1652,7 @@ exports.isWindows = options => {
|
|
|
1631
1652
|
if (options && typeof options.windows === 'boolean') {
|
|
1632
1653
|
return options.windows;
|
|
1633
1654
|
}
|
|
1634
|
-
return win32 === true ||
|
|
1655
|
+
return win32 === true || path.sep === '\\';
|
|
1635
1656
|
};
|
|
1636
1657
|
|
|
1637
1658
|
exports.escapeLast = (input, char, lastIdx) => {
|
|
@@ -1660,25 +1681,26 @@ exports.wrapOutput = (input, state = {}, options = {}) => {
|
|
|
1660
1681
|
}
|
|
1661
1682
|
return output;
|
|
1662
1683
|
};
|
|
1663
|
-
});
|
|
1684
|
+
}(utils$4));
|
|
1664
1685
|
|
|
1686
|
+
const utils$3 = utils$4;
|
|
1665
1687
|
const {
|
|
1666
1688
|
CHAR_ASTERISK, /* * */
|
|
1667
1689
|
CHAR_AT, /* @ */
|
|
1668
1690
|
CHAR_BACKWARD_SLASH, /* \ */
|
|
1669
|
-
CHAR_COMMA
|
|
1670
|
-
CHAR_DOT
|
|
1691
|
+
CHAR_COMMA, /* , */
|
|
1692
|
+
CHAR_DOT, /* . */
|
|
1671
1693
|
CHAR_EXCLAMATION_MARK, /* ! */
|
|
1672
1694
|
CHAR_FORWARD_SLASH, /* / */
|
|
1673
|
-
CHAR_LEFT_CURLY_BRACE
|
|
1674
|
-
CHAR_LEFT_PARENTHESES
|
|
1675
|
-
CHAR_LEFT_SQUARE_BRACKET
|
|
1695
|
+
CHAR_LEFT_CURLY_BRACE, /* { */
|
|
1696
|
+
CHAR_LEFT_PARENTHESES, /* ( */
|
|
1697
|
+
CHAR_LEFT_SQUARE_BRACKET, /* [ */
|
|
1676
1698
|
CHAR_PLUS, /* + */
|
|
1677
1699
|
CHAR_QUESTION_MARK, /* ? */
|
|
1678
|
-
CHAR_RIGHT_CURLY_BRACE
|
|
1679
|
-
CHAR_RIGHT_PARENTHESES
|
|
1680
|
-
CHAR_RIGHT_SQUARE_BRACKET
|
|
1681
|
-
} = constants$
|
|
1700
|
+
CHAR_RIGHT_CURLY_BRACE, /* } */
|
|
1701
|
+
CHAR_RIGHT_PARENTHESES, /* ) */
|
|
1702
|
+
CHAR_RIGHT_SQUARE_BRACKET /* ] */
|
|
1703
|
+
} = constants$3;
|
|
1682
1704
|
|
|
1683
1705
|
const isPathSeparator = code => {
|
|
1684
1706
|
return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;
|
|
@@ -1706,7 +1728,7 @@ const depth = token => {
|
|
|
1706
1728
|
* @api public
|
|
1707
1729
|
*/
|
|
1708
1730
|
|
|
1709
|
-
const scan = (input, options) => {
|
|
1731
|
+
const scan$1 = (input, options) => {
|
|
1710
1732
|
const opts = options || {};
|
|
1711
1733
|
|
|
1712
1734
|
const length = input.length - 1;
|
|
@@ -1748,13 +1770,13 @@ const scan = (input, options) => {
|
|
|
1748
1770
|
backslashes = token.backslashes = true;
|
|
1749
1771
|
code = advance();
|
|
1750
1772
|
|
|
1751
|
-
if (code === CHAR_LEFT_CURLY_BRACE
|
|
1773
|
+
if (code === CHAR_LEFT_CURLY_BRACE) {
|
|
1752
1774
|
braceEscaped = true;
|
|
1753
1775
|
}
|
|
1754
1776
|
continue;
|
|
1755
1777
|
}
|
|
1756
1778
|
|
|
1757
|
-
if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE
|
|
1779
|
+
if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {
|
|
1758
1780
|
braces++;
|
|
1759
1781
|
|
|
1760
1782
|
while (eos() !== true && (code = advance())) {
|
|
@@ -1764,12 +1786,12 @@ const scan = (input, options) => {
|
|
|
1764
1786
|
continue;
|
|
1765
1787
|
}
|
|
1766
1788
|
|
|
1767
|
-
if (code === CHAR_LEFT_CURLY_BRACE
|
|
1789
|
+
if (code === CHAR_LEFT_CURLY_BRACE) {
|
|
1768
1790
|
braces++;
|
|
1769
1791
|
continue;
|
|
1770
1792
|
}
|
|
1771
1793
|
|
|
1772
|
-
if (braceEscaped !== true && code === CHAR_DOT
|
|
1794
|
+
if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {
|
|
1773
1795
|
isBrace = token.isBrace = true;
|
|
1774
1796
|
isGlob = token.isGlob = true;
|
|
1775
1797
|
finished = true;
|
|
@@ -1781,7 +1803,7 @@ const scan = (input, options) => {
|
|
|
1781
1803
|
break;
|
|
1782
1804
|
}
|
|
1783
1805
|
|
|
1784
|
-
if (braceEscaped !== true && code === CHAR_COMMA
|
|
1806
|
+
if (braceEscaped !== true && code === CHAR_COMMA) {
|
|
1785
1807
|
isBrace = token.isBrace = true;
|
|
1786
1808
|
isGlob = token.isGlob = true;
|
|
1787
1809
|
finished = true;
|
|
@@ -1793,7 +1815,7 @@ const scan = (input, options) => {
|
|
|
1793
1815
|
break;
|
|
1794
1816
|
}
|
|
1795
1817
|
|
|
1796
|
-
if (code === CHAR_RIGHT_CURLY_BRACE
|
|
1818
|
+
if (code === CHAR_RIGHT_CURLY_BRACE) {
|
|
1797
1819
|
braces--;
|
|
1798
1820
|
|
|
1799
1821
|
if (braces === 0) {
|
|
@@ -1818,7 +1840,7 @@ const scan = (input, options) => {
|
|
|
1818
1840
|
token = { value: '', depth: 0, isGlob: false };
|
|
1819
1841
|
|
|
1820
1842
|
if (finished === true) continue;
|
|
1821
|
-
if (prev === CHAR_DOT
|
|
1843
|
+
if (prev === CHAR_DOT && index === (start + 1)) {
|
|
1822
1844
|
start += 2;
|
|
1823
1845
|
continue;
|
|
1824
1846
|
}
|
|
@@ -1834,7 +1856,7 @@ const scan = (input, options) => {
|
|
|
1834
1856
|
|| code === CHAR_QUESTION_MARK
|
|
1835
1857
|
|| code === CHAR_EXCLAMATION_MARK;
|
|
1836
1858
|
|
|
1837
|
-
if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES
|
|
1859
|
+
if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {
|
|
1838
1860
|
isGlob = token.isGlob = true;
|
|
1839
1861
|
isExtglob = token.isExtglob = true;
|
|
1840
1862
|
finished = true;
|
|
@@ -1847,7 +1869,7 @@ const scan = (input, options) => {
|
|
|
1847
1869
|
continue;
|
|
1848
1870
|
}
|
|
1849
1871
|
|
|
1850
|
-
if (code === CHAR_RIGHT_PARENTHESES
|
|
1872
|
+
if (code === CHAR_RIGHT_PARENTHESES) {
|
|
1851
1873
|
isGlob = token.isGlob = true;
|
|
1852
1874
|
finished = true;
|
|
1853
1875
|
break;
|
|
@@ -1880,7 +1902,7 @@ const scan = (input, options) => {
|
|
|
1880
1902
|
break;
|
|
1881
1903
|
}
|
|
1882
1904
|
|
|
1883
|
-
if (code === CHAR_LEFT_SQUARE_BRACKET
|
|
1905
|
+
if (code === CHAR_LEFT_SQUARE_BRACKET) {
|
|
1884
1906
|
while (eos() !== true && (next = advance())) {
|
|
1885
1907
|
if (next === CHAR_BACKWARD_SLASH) {
|
|
1886
1908
|
backslashes = token.backslashes = true;
|
|
@@ -1888,7 +1910,7 @@ const scan = (input, options) => {
|
|
|
1888
1910
|
continue;
|
|
1889
1911
|
}
|
|
1890
1912
|
|
|
1891
|
-
if (next === CHAR_RIGHT_SQUARE_BRACKET
|
|
1913
|
+
if (next === CHAR_RIGHT_SQUARE_BRACKET) {
|
|
1892
1914
|
isBracket = token.isBracket = true;
|
|
1893
1915
|
isGlob = token.isGlob = true;
|
|
1894
1916
|
finished = true;
|
|
@@ -1907,18 +1929,18 @@ const scan = (input, options) => {
|
|
|
1907
1929
|
continue;
|
|
1908
1930
|
}
|
|
1909
1931
|
|
|
1910
|
-
if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES
|
|
1932
|
+
if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {
|
|
1911
1933
|
isGlob = token.isGlob = true;
|
|
1912
1934
|
|
|
1913
1935
|
if (scanToEnd === true) {
|
|
1914
1936
|
while (eos() !== true && (code = advance())) {
|
|
1915
|
-
if (code === CHAR_LEFT_PARENTHESES
|
|
1937
|
+
if (code === CHAR_LEFT_PARENTHESES) {
|
|
1916
1938
|
backslashes = token.backslashes = true;
|
|
1917
1939
|
code = advance();
|
|
1918
1940
|
continue;
|
|
1919
1941
|
}
|
|
1920
1942
|
|
|
1921
|
-
if (code === CHAR_RIGHT_PARENTHESES
|
|
1943
|
+
if (code === CHAR_RIGHT_PARENTHESES) {
|
|
1922
1944
|
finished = true;
|
|
1923
1945
|
break;
|
|
1924
1946
|
}
|
|
@@ -1971,10 +1993,10 @@ const scan = (input, options) => {
|
|
|
1971
1993
|
}
|
|
1972
1994
|
|
|
1973
1995
|
if (opts.unescape === true) {
|
|
1974
|
-
if (glob) glob = utils$
|
|
1996
|
+
if (glob) glob = utils$3.removeBackslashes(glob);
|
|
1975
1997
|
|
|
1976
1998
|
if (base && backslashes === true) {
|
|
1977
|
-
base = utils$
|
|
1999
|
+
base = utils$3.removeBackslashes(base);
|
|
1978
2000
|
}
|
|
1979
2001
|
}
|
|
1980
2002
|
|
|
@@ -2041,19 +2063,22 @@ const scan = (input, options) => {
|
|
|
2041
2063
|
return state;
|
|
2042
2064
|
};
|
|
2043
2065
|
|
|
2044
|
-
var scan_1 = scan;
|
|
2066
|
+
var scan_1 = scan$1;
|
|
2067
|
+
|
|
2068
|
+
const constants$2 = constants$3;
|
|
2069
|
+
const utils$2 = utils$4;
|
|
2045
2070
|
|
|
2046
2071
|
/**
|
|
2047
2072
|
* Constants
|
|
2048
2073
|
*/
|
|
2049
2074
|
|
|
2050
2075
|
const {
|
|
2051
|
-
MAX_LENGTH
|
|
2052
|
-
POSIX_REGEX_SOURCE
|
|
2076
|
+
MAX_LENGTH,
|
|
2077
|
+
POSIX_REGEX_SOURCE,
|
|
2053
2078
|
REGEX_NON_SPECIAL_CHARS,
|
|
2054
2079
|
REGEX_SPECIAL_CHARS_BACKREF,
|
|
2055
2080
|
REPLACEMENTS
|
|
2056
|
-
} = constants$
|
|
2081
|
+
} = constants$2;
|
|
2057
2082
|
|
|
2058
2083
|
/**
|
|
2059
2084
|
* Helpers
|
|
@@ -2093,7 +2118,7 @@ const parse$1 = (input, options) => {
|
|
|
2093
2118
|
input = REPLACEMENTS[input] || input;
|
|
2094
2119
|
|
|
2095
2120
|
const opts = { ...options };
|
|
2096
|
-
const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH
|
|
2121
|
+
const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
|
|
2097
2122
|
|
|
2098
2123
|
let len = input.length;
|
|
2099
2124
|
if (len > max) {
|
|
@@ -2104,11 +2129,11 @@ const parse$1 = (input, options) => {
|
|
|
2104
2129
|
const tokens = [bos];
|
|
2105
2130
|
|
|
2106
2131
|
const capture = opts.capture ? '' : '?:';
|
|
2107
|
-
const win32 = utils$
|
|
2132
|
+
const win32 = utils$2.isWindows(options);
|
|
2108
2133
|
|
|
2109
2134
|
// create constants based on platform, for windows or posix
|
|
2110
|
-
const PLATFORM_CHARS = constants$
|
|
2111
|
-
const EXTGLOB_CHARS = constants$
|
|
2135
|
+
const PLATFORM_CHARS = constants$2.globChars(win32);
|
|
2136
|
+
const EXTGLOB_CHARS = constants$2.extglobChars(PLATFORM_CHARS);
|
|
2112
2137
|
|
|
2113
2138
|
const {
|
|
2114
2139
|
DOT_LITERAL,
|
|
@@ -2160,7 +2185,7 @@ const parse$1 = (input, options) => {
|
|
|
2160
2185
|
tokens
|
|
2161
2186
|
};
|
|
2162
2187
|
|
|
2163
|
-
input = utils$
|
|
2188
|
+
input = utils$2.removePrefix(input, state);
|
|
2164
2189
|
len = input.length;
|
|
2165
2190
|
|
|
2166
2191
|
const extglobs = [];
|
|
@@ -2340,7 +2365,7 @@ const parse$1 = (input, options) => {
|
|
|
2340
2365
|
return state;
|
|
2341
2366
|
}
|
|
2342
2367
|
|
|
2343
|
-
state.output = utils$
|
|
2368
|
+
state.output = utils$2.wrapOutput(output, state, options);
|
|
2344
2369
|
return state;
|
|
2345
2370
|
}
|
|
2346
2371
|
|
|
@@ -2415,7 +2440,7 @@ const parse$1 = (input, options) => {
|
|
|
2415
2440
|
const idx = prev.value.lastIndexOf('[');
|
|
2416
2441
|
const pre = prev.value.slice(0, idx);
|
|
2417
2442
|
const rest = prev.value.slice(idx + 2);
|
|
2418
|
-
const posix = POSIX_REGEX_SOURCE
|
|
2443
|
+
const posix = POSIX_REGEX_SOURCE[rest];
|
|
2419
2444
|
if (posix) {
|
|
2420
2445
|
prev.value = pre + posix;
|
|
2421
2446
|
state.backtrack = true;
|
|
@@ -2453,7 +2478,7 @@ const parse$1 = (input, options) => {
|
|
|
2453
2478
|
*/
|
|
2454
2479
|
|
|
2455
2480
|
if (state.quotes === 1 && value !== '"') {
|
|
2456
|
-
value = utils$
|
|
2481
|
+
value = utils$2.escapeRegex(value);
|
|
2457
2482
|
prev.value += value;
|
|
2458
2483
|
append({ value });
|
|
2459
2484
|
continue;
|
|
@@ -2543,11 +2568,11 @@ const parse$1 = (input, options) => {
|
|
|
2543
2568
|
|
|
2544
2569
|
// when literal brackets are explicitly disabled
|
|
2545
2570
|
// assume we should match with a regex character class
|
|
2546
|
-
if (opts.literalBrackets === false || utils$
|
|
2571
|
+
if (opts.literalBrackets === false || utils$2.hasRegexChars(prevValue)) {
|
|
2547
2572
|
continue;
|
|
2548
2573
|
}
|
|
2549
2574
|
|
|
2550
|
-
const escaped = utils$
|
|
2575
|
+
const escaped = utils$2.escapeRegex(prev.value);
|
|
2551
2576
|
state.output = state.output.slice(0, -prev.value.length);
|
|
2552
2577
|
|
|
2553
2578
|
// when literal brackets are explicitly enabled
|
|
@@ -2719,7 +2744,7 @@ const parse$1 = (input, options) => {
|
|
|
2719
2744
|
const next = peek();
|
|
2720
2745
|
let output = value;
|
|
2721
2746
|
|
|
2722
|
-
if (next === '<' && !utils$
|
|
2747
|
+
if (next === '<' && !utils$2.supportsLookbehinds()) {
|
|
2723
2748
|
throw new Error('Node.js v10 or higher is required for regex lookbehinds');
|
|
2724
2749
|
}
|
|
2725
2750
|
|
|
@@ -2979,19 +3004,19 @@ const parse$1 = (input, options) => {
|
|
|
2979
3004
|
|
|
2980
3005
|
while (state.brackets > 0) {
|
|
2981
3006
|
if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));
|
|
2982
|
-
state.output = utils$
|
|
3007
|
+
state.output = utils$2.escapeLast(state.output, '[');
|
|
2983
3008
|
decrement('brackets');
|
|
2984
3009
|
}
|
|
2985
3010
|
|
|
2986
3011
|
while (state.parens > 0) {
|
|
2987
3012
|
if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));
|
|
2988
|
-
state.output = utils$
|
|
3013
|
+
state.output = utils$2.escapeLast(state.output, '(');
|
|
2989
3014
|
decrement('parens');
|
|
2990
3015
|
}
|
|
2991
3016
|
|
|
2992
3017
|
while (state.braces > 0) {
|
|
2993
3018
|
if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));
|
|
2994
|
-
state.output = utils$
|
|
3019
|
+
state.output = utils$2.escapeLast(state.output, '{');
|
|
2995
3020
|
decrement('braces');
|
|
2996
3021
|
}
|
|
2997
3022
|
|
|
@@ -3023,14 +3048,14 @@ const parse$1 = (input, options) => {
|
|
|
3023
3048
|
|
|
3024
3049
|
parse$1.fastpaths = (input, options) => {
|
|
3025
3050
|
const opts = { ...options };
|
|
3026
|
-
const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH
|
|
3051
|
+
const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
|
|
3027
3052
|
const len = input.length;
|
|
3028
3053
|
if (len > max) {
|
|
3029
3054
|
throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
|
|
3030
3055
|
}
|
|
3031
3056
|
|
|
3032
3057
|
input = REPLACEMENTS[input] || input;
|
|
3033
|
-
const win32 = utils$
|
|
3058
|
+
const win32 = utils$2.isWindows(options);
|
|
3034
3059
|
|
|
3035
3060
|
// create constants based on platform, for windows or posix
|
|
3036
3061
|
const {
|
|
@@ -3043,7 +3068,7 @@ parse$1.fastpaths = (input, options) => {
|
|
|
3043
3068
|
NO_DOTS_SLASH,
|
|
3044
3069
|
STAR,
|
|
3045
3070
|
START_ANCHOR
|
|
3046
|
-
} = constants$
|
|
3071
|
+
} = constants$2.globChars(win32);
|
|
3047
3072
|
|
|
3048
3073
|
const nodot = opts.dot ? NO_DOTS : NO_DOT;
|
|
3049
3074
|
const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;
|
|
@@ -3098,7 +3123,7 @@ parse$1.fastpaths = (input, options) => {
|
|
|
3098
3123
|
}
|
|
3099
3124
|
};
|
|
3100
3125
|
|
|
3101
|
-
const output = utils$
|
|
3126
|
+
const output = utils$2.removePrefix(input, state);
|
|
3102
3127
|
let source = create(output);
|
|
3103
3128
|
|
|
3104
3129
|
if (source && opts.strictSlashes !== true) {
|
|
@@ -3108,9 +3133,14 @@ parse$1.fastpaths = (input, options) => {
|
|
|
3108
3133
|
return source;
|
|
3109
3134
|
};
|
|
3110
3135
|
|
|
3111
|
-
var parse_1
|
|
3136
|
+
var parse_1 = parse$1;
|
|
3112
3137
|
|
|
3113
|
-
const
|
|
3138
|
+
const path$1 = require$$0$2;
|
|
3139
|
+
const scan = scan_1;
|
|
3140
|
+
const parse = parse_1;
|
|
3141
|
+
const utils$1 = utils$4;
|
|
3142
|
+
const constants$1 = constants$3;
|
|
3143
|
+
const isObject = val => val && typeof val === 'object' && !Array.isArray(val);
|
|
3114
3144
|
|
|
3115
3145
|
/**
|
|
3116
3146
|
* Creates a matcher function from one or more glob patterns. The
|
|
@@ -3134,9 +3164,9 @@ const isObject$1 = val => val && typeof val === 'object' && !Array.isArray(val);
|
|
|
3134
3164
|
* @api public
|
|
3135
3165
|
*/
|
|
3136
3166
|
|
|
3137
|
-
const picomatch = (glob, options, returnState = false) => {
|
|
3167
|
+
const picomatch$4 = (glob, options, returnState = false) => {
|
|
3138
3168
|
if (Array.isArray(glob)) {
|
|
3139
|
-
const fns = glob.map(input => picomatch(input, options, returnState));
|
|
3169
|
+
const fns = glob.map(input => picomatch$4(input, options, returnState));
|
|
3140
3170
|
const arrayMatcher = str => {
|
|
3141
3171
|
for (const isMatch of fns) {
|
|
3142
3172
|
const state = isMatch(str);
|
|
@@ -3147,7 +3177,7 @@ const picomatch = (glob, options, returnState = false) => {
|
|
|
3147
3177
|
return arrayMatcher;
|
|
3148
3178
|
}
|
|
3149
3179
|
|
|
3150
|
-
const isState = isObject
|
|
3180
|
+
const isState = isObject(glob) && glob.tokens && glob.input;
|
|
3151
3181
|
|
|
3152
3182
|
if (glob === '' || (typeof glob !== 'string' && !isState)) {
|
|
3153
3183
|
throw new TypeError('Expected pattern to be a non-empty string');
|
|
@@ -3156,8 +3186,8 @@ const picomatch = (glob, options, returnState = false) => {
|
|
|
3156
3186
|
const opts = options || {};
|
|
3157
3187
|
const posix = utils$1.isWindows(options);
|
|
3158
3188
|
const regex = isState
|
|
3159
|
-
? picomatch.compileRe(glob, options)
|
|
3160
|
-
: picomatch.makeRe(glob, options, false, true);
|
|
3189
|
+
? picomatch$4.compileRe(glob, options)
|
|
3190
|
+
: picomatch$4.makeRe(glob, options, false, true);
|
|
3161
3191
|
|
|
3162
3192
|
const state = regex.state;
|
|
3163
3193
|
delete regex.state;
|
|
@@ -3165,11 +3195,11 @@ const picomatch = (glob, options, returnState = false) => {
|
|
|
3165
3195
|
let isIgnored = () => false;
|
|
3166
3196
|
if (opts.ignore) {
|
|
3167
3197
|
const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };
|
|
3168
|
-
isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);
|
|
3198
|
+
isIgnored = picomatch$4(opts.ignore, ignoreOpts, returnState);
|
|
3169
3199
|
}
|
|
3170
3200
|
|
|
3171
3201
|
const matcher = (input, returnObject = false) => {
|
|
3172
|
-
const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });
|
|
3202
|
+
const { isMatch, match, output } = picomatch$4.test(input, regex, options, { glob, posix });
|
|
3173
3203
|
const result = { glob, state, regex, posix, input, output, match, isMatch };
|
|
3174
3204
|
|
|
3175
3205
|
if (typeof opts.onResult === 'function') {
|
|
@@ -3219,7 +3249,7 @@ const picomatch = (glob, options, returnState = false) => {
|
|
|
3219
3249
|
* @api public
|
|
3220
3250
|
*/
|
|
3221
3251
|
|
|
3222
|
-
picomatch.test = (input, regex, options, { glob, posix } = {}) => {
|
|
3252
|
+
picomatch$4.test = (input, regex, options, { glob, posix } = {}) => {
|
|
3223
3253
|
if (typeof input !== 'string') {
|
|
3224
3254
|
throw new TypeError('Expected input to be a string');
|
|
3225
3255
|
}
|
|
@@ -3240,7 +3270,7 @@ picomatch.test = (input, regex, options, { glob, posix } = {}) => {
|
|
|
3240
3270
|
|
|
3241
3271
|
if (match === false || opts.capture === true) {
|
|
3242
3272
|
if (opts.matchBase === true || opts.basename === true) {
|
|
3243
|
-
match = picomatch.matchBase(input, regex, options, posix);
|
|
3273
|
+
match = picomatch$4.matchBase(input, regex, options, posix);
|
|
3244
3274
|
} else {
|
|
3245
3275
|
match = regex.exec(output);
|
|
3246
3276
|
}
|
|
@@ -3263,9 +3293,9 @@ picomatch.test = (input, regex, options, { glob, posix } = {}) => {
|
|
|
3263
3293
|
* @api public
|
|
3264
3294
|
*/
|
|
3265
3295
|
|
|
3266
|
-
picomatch.matchBase = (input, glob, options, posix = utils$1.isWindows(options)) => {
|
|
3267
|
-
const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);
|
|
3268
|
-
return regex.test(
|
|
3296
|
+
picomatch$4.matchBase = (input, glob, options, posix = utils$1.isWindows(options)) => {
|
|
3297
|
+
const regex = glob instanceof RegExp ? glob : picomatch$4.makeRe(glob, options);
|
|
3298
|
+
return regex.test(path$1.basename(input));
|
|
3269
3299
|
};
|
|
3270
3300
|
|
|
3271
3301
|
/**
|
|
@@ -3285,7 +3315,7 @@ picomatch.matchBase = (input, glob, options, posix = utils$1.isWindows(options))
|
|
|
3285
3315
|
* @api public
|
|
3286
3316
|
*/
|
|
3287
3317
|
|
|
3288
|
-
picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);
|
|
3318
|
+
picomatch$4.isMatch = (str, patterns, options) => picomatch$4(patterns, options)(str);
|
|
3289
3319
|
|
|
3290
3320
|
/**
|
|
3291
3321
|
* Parse a glob pattern to create the source string for a regular
|
|
@@ -3301,9 +3331,9 @@ picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str
|
|
|
3301
3331
|
* @api public
|
|
3302
3332
|
*/
|
|
3303
3333
|
|
|
3304
|
-
picomatch.parse = (pattern, options) => {
|
|
3305
|
-
if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));
|
|
3306
|
-
return
|
|
3334
|
+
picomatch$4.parse = (pattern, options) => {
|
|
3335
|
+
if (Array.isArray(pattern)) return pattern.map(p => picomatch$4.parse(p, options));
|
|
3336
|
+
return parse(pattern, { ...options, fastpaths: false });
|
|
3307
3337
|
};
|
|
3308
3338
|
|
|
3309
3339
|
/**
|
|
@@ -3333,7 +3363,7 @@ picomatch.parse = (pattern, options) => {
|
|
|
3333
3363
|
* @api public
|
|
3334
3364
|
*/
|
|
3335
3365
|
|
|
3336
|
-
picomatch.scan = (input, options) =>
|
|
3366
|
+
picomatch$4.scan = (input, options) => scan(input, options);
|
|
3337
3367
|
|
|
3338
3368
|
/**
|
|
3339
3369
|
* Create a regular expression from a parsed glob pattern.
|
|
@@ -3352,7 +3382,7 @@ picomatch.scan = (input, options) => scan_1(input, options);
|
|
|
3352
3382
|
* @api public
|
|
3353
3383
|
*/
|
|
3354
3384
|
|
|
3355
|
-
picomatch.compileRe = (parsed, options, returnOutput = false, returnState = false) => {
|
|
3385
|
+
picomatch$4.compileRe = (parsed, options, returnOutput = false, returnState = false) => {
|
|
3356
3386
|
if (returnOutput === true) {
|
|
3357
3387
|
return parsed.output;
|
|
3358
3388
|
}
|
|
@@ -3366,7 +3396,7 @@ picomatch.compileRe = (parsed, options, returnOutput = false, returnState = fals
|
|
|
3366
3396
|
source = `^(?!${source}).*$`;
|
|
3367
3397
|
}
|
|
3368
3398
|
|
|
3369
|
-
const regex = picomatch.toRegex(source, options);
|
|
3399
|
+
const regex = picomatch$4.toRegex(source, options);
|
|
3370
3400
|
if (returnState === true) {
|
|
3371
3401
|
regex.state = parsed;
|
|
3372
3402
|
}
|
|
@@ -3374,7 +3404,7 @@ picomatch.compileRe = (parsed, options, returnOutput = false, returnState = fals
|
|
|
3374
3404
|
return regex;
|
|
3375
3405
|
};
|
|
3376
3406
|
|
|
3377
|
-
picomatch.makeRe = (input, options, returnOutput = false, returnState = false) => {
|
|
3407
|
+
picomatch$4.makeRe = (input, options, returnOutput = false, returnState = false) => {
|
|
3378
3408
|
if (!input || typeof input !== 'string') {
|
|
3379
3409
|
throw new TypeError('Expected a non-empty string');
|
|
3380
3410
|
}
|
|
@@ -3390,17 +3420,17 @@ picomatch.makeRe = (input, options, returnOutput = false, returnState = false) =
|
|
|
3390
3420
|
}
|
|
3391
3421
|
|
|
3392
3422
|
if (opts.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {
|
|
3393
|
-
output =
|
|
3423
|
+
output = parse.fastpaths(input, options);
|
|
3394
3424
|
}
|
|
3395
3425
|
|
|
3396
3426
|
if (output === undefined) {
|
|
3397
|
-
parsed =
|
|
3427
|
+
parsed = parse(input, options);
|
|
3398
3428
|
parsed.prefix = prefix + (parsed.prefix || '');
|
|
3399
3429
|
} else {
|
|
3400
3430
|
parsed.output = output;
|
|
3401
3431
|
}
|
|
3402
3432
|
|
|
3403
|
-
return picomatch.compileRe(parsed, options, returnOutput, returnState);
|
|
3433
|
+
return picomatch$4.compileRe(parsed, options, returnOutput, returnState);
|
|
3404
3434
|
};
|
|
3405
3435
|
|
|
3406
3436
|
/**
|
|
@@ -3420,7 +3450,7 @@ picomatch.makeRe = (input, options, returnOutput = false, returnState = false) =
|
|
|
3420
3450
|
* @api public
|
|
3421
3451
|
*/
|
|
3422
3452
|
|
|
3423
|
-
picomatch.toRegex = (source, options) => {
|
|
3453
|
+
picomatch$4.toRegex = (source, options) => {
|
|
3424
3454
|
try {
|
|
3425
3455
|
const opts = options || {};
|
|
3426
3456
|
return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));
|
|
@@ -3435,16 +3465,20 @@ picomatch.toRegex = (source, options) => {
|
|
|
3435
3465
|
* @return {Object}
|
|
3436
3466
|
*/
|
|
3437
3467
|
|
|
3438
|
-
picomatch.constants = constants$1;
|
|
3468
|
+
picomatch$4.constants = constants$1;
|
|
3439
3469
|
|
|
3440
3470
|
/**
|
|
3441
3471
|
* Expose "picomatch"
|
|
3442
3472
|
*/
|
|
3443
3473
|
|
|
3444
|
-
var picomatch_1 = picomatch;
|
|
3474
|
+
var picomatch_1 = picomatch$4;
|
|
3445
3475
|
|
|
3446
|
-
var picomatch$
|
|
3476
|
+
var picomatch$3 = picomatch_1;
|
|
3447
3477
|
|
|
3478
|
+
const util = require$$0$1;
|
|
3479
|
+
const braces$1 = braces_1;
|
|
3480
|
+
const picomatch$2 = picomatch$3;
|
|
3481
|
+
const utils = utils$4;
|
|
3448
3482
|
const isEmptyString = val => typeof val === 'string' && (val === '' || val === './');
|
|
3449
3483
|
|
|
3450
3484
|
/**
|
|
@@ -3482,7 +3516,7 @@ const micromatch = (list, patterns, options) => {
|
|
|
3482
3516
|
};
|
|
3483
3517
|
|
|
3484
3518
|
for (let i = 0; i < patterns.length; i++) {
|
|
3485
|
-
let isMatch = picomatch$
|
|
3519
|
+
let isMatch = picomatch$2(String(patterns[i]), { ...options, onResult }, true);
|
|
3486
3520
|
let negated = isMatch.state.negated || isMatch.state.negatedExtglob;
|
|
3487
3521
|
if (negated) negatives++;
|
|
3488
3522
|
|
|
@@ -3542,7 +3576,7 @@ micromatch.match = micromatch;
|
|
|
3542
3576
|
* @api public
|
|
3543
3577
|
*/
|
|
3544
3578
|
|
|
3545
|
-
micromatch.matcher = (pattern, options) => picomatch$
|
|
3579
|
+
micromatch.matcher = (pattern, options) => picomatch$2(pattern, options);
|
|
3546
3580
|
|
|
3547
3581
|
/**
|
|
3548
3582
|
* Returns true if **any** of the given glob `patterns` match the specified `string`.
|
|
@@ -3561,7 +3595,7 @@ micromatch.matcher = (pattern, options) => picomatch$1(pattern, options);
|
|
|
3561
3595
|
* @api public
|
|
3562
3596
|
*/
|
|
3563
3597
|
|
|
3564
|
-
micromatch.isMatch = (str, patterns, options) => picomatch$
|
|
3598
|
+
micromatch.isMatch = (str, patterns, options) => picomatch$2(patterns, options)(str);
|
|
3565
3599
|
|
|
3566
3600
|
/**
|
|
3567
3601
|
* Backwards compatibility
|
|
@@ -3669,7 +3703,7 @@ micromatch.contains = (str, pattern, options) => {
|
|
|
3669
3703
|
*/
|
|
3670
3704
|
|
|
3671
3705
|
micromatch.matchKeys = (obj, patterns, options) => {
|
|
3672
|
-
if (!utils
|
|
3706
|
+
if (!utils.isObject(obj)) {
|
|
3673
3707
|
throw new TypeError('Expected the first argument to be an object');
|
|
3674
3708
|
}
|
|
3675
3709
|
let keys = micromatch(Object.keys(obj), patterns, options);
|
|
@@ -3701,7 +3735,7 @@ micromatch.some = (list, patterns, options) => {
|
|
|
3701
3735
|
let items = [].concat(list);
|
|
3702
3736
|
|
|
3703
3737
|
for (let pattern of [].concat(patterns)) {
|
|
3704
|
-
let isMatch = picomatch$
|
|
3738
|
+
let isMatch = picomatch$2(String(pattern), options);
|
|
3705
3739
|
if (items.some(item => isMatch(item))) {
|
|
3706
3740
|
return true;
|
|
3707
3741
|
}
|
|
@@ -3737,7 +3771,7 @@ micromatch.every = (list, patterns, options) => {
|
|
|
3737
3771
|
let items = [].concat(list);
|
|
3738
3772
|
|
|
3739
3773
|
for (let pattern of [].concat(patterns)) {
|
|
3740
|
-
let isMatch = picomatch$
|
|
3774
|
+
let isMatch = picomatch$2(String(pattern), options);
|
|
3741
3775
|
if (!items.every(item => isMatch(item))) {
|
|
3742
3776
|
return false;
|
|
3743
3777
|
}
|
|
@@ -3777,7 +3811,7 @@ micromatch.all = (str, patterns, options) => {
|
|
|
3777
3811
|
throw new TypeError(`Expected a string: "${util.inspect(str)}"`);
|
|
3778
3812
|
}
|
|
3779
3813
|
|
|
3780
|
-
return [].concat(patterns).every(p => picomatch$
|
|
3814
|
+
return [].concat(patterns).every(p => picomatch$2(p, options)(str));
|
|
3781
3815
|
};
|
|
3782
3816
|
|
|
3783
3817
|
/**
|
|
@@ -3800,9 +3834,9 @@ micromatch.all = (str, patterns, options) => {
|
|
|
3800
3834
|
*/
|
|
3801
3835
|
|
|
3802
3836
|
micromatch.capture = (glob, input, options) => {
|
|
3803
|
-
let posix = utils
|
|
3804
|
-
let regex = picomatch$
|
|
3805
|
-
let match = regex.exec(posix ? utils
|
|
3837
|
+
let posix = utils.isWindows(options);
|
|
3838
|
+
let regex = picomatch$2.makeRe(String(glob), { ...options, capture: true });
|
|
3839
|
+
let match = regex.exec(posix ? utils.toPosixSlashes(input) : input);
|
|
3806
3840
|
|
|
3807
3841
|
if (match) {
|
|
3808
3842
|
return match.slice(1).map(v => v === void 0 ? '' : v);
|
|
@@ -3825,7 +3859,7 @@ micromatch.capture = (glob, input, options) => {
|
|
|
3825
3859
|
* @api public
|
|
3826
3860
|
*/
|
|
3827
3861
|
|
|
3828
|
-
micromatch.makeRe = (...args) => picomatch$
|
|
3862
|
+
micromatch.makeRe = (...args) => picomatch$2.makeRe(...args);
|
|
3829
3863
|
|
|
3830
3864
|
/**
|
|
3831
3865
|
* Scan a glob pattern to separate the pattern into segments. Used
|
|
@@ -3841,7 +3875,7 @@ micromatch.makeRe = (...args) => picomatch$1.makeRe(...args);
|
|
|
3841
3875
|
* @api public
|
|
3842
3876
|
*/
|
|
3843
3877
|
|
|
3844
|
-
micromatch.scan = (...args) => picomatch$
|
|
3878
|
+
micromatch.scan = (...args) => picomatch$2.scan(...args);
|
|
3845
3879
|
|
|
3846
3880
|
/**
|
|
3847
3881
|
* Parse a glob pattern to create the source string for a regular
|
|
@@ -3860,8 +3894,8 @@ micromatch.scan = (...args) => picomatch$1.scan(...args);
|
|
|
3860
3894
|
micromatch.parse = (patterns, options) => {
|
|
3861
3895
|
let res = [];
|
|
3862
3896
|
for (let pattern of [].concat(patterns || [])) {
|
|
3863
|
-
for (let str of
|
|
3864
|
-
res.push(picomatch$
|
|
3897
|
+
for (let str of braces$1(String(pattern), options)) {
|
|
3898
|
+
res.push(picomatch$2.parse(str, options));
|
|
3865
3899
|
}
|
|
3866
3900
|
}
|
|
3867
3901
|
return res;
|
|
@@ -3889,7 +3923,7 @@ micromatch.braces = (pattern, options) => {
|
|
|
3889
3923
|
if ((options && options.nobrace === true) || !/\{.*\}/.test(pattern)) {
|
|
3890
3924
|
return [pattern];
|
|
3891
3925
|
}
|
|
3892
|
-
return
|
|
3926
|
+
return braces$1(pattern, options);
|
|
3893
3927
|
};
|
|
3894
3928
|
|
|
3895
3929
|
/**
|
|
@@ -4101,21 +4135,25 @@ function mergeOutputOptions(config, overrides, warn) {
|
|
|
4101
4135
|
sourcemapFile: getOption('sourcemapFile'),
|
|
4102
4136
|
sourcemapPathTransform: getOption('sourcemapPathTransform'),
|
|
4103
4137
|
strict: getOption('strict'),
|
|
4104
|
-
systemNullSetters: getOption('systemNullSetters')
|
|
4138
|
+
systemNullSetters: getOption('systemNullSetters'),
|
|
4139
|
+
validate: getOption('validate')
|
|
4105
4140
|
};
|
|
4106
4141
|
warnUnknownOptions(config, Object.keys(outputOptions), 'output options', warn);
|
|
4107
4142
|
return outputOptions;
|
|
4108
4143
|
}
|
|
4109
4144
|
|
|
4110
|
-
|
|
4111
|
-
|
|
4112
|
-
const { promisify } = util;
|
|
4145
|
+
var chokidar = {};
|
|
4113
4146
|
|
|
4147
|
+
const fs$3 = fs$4;
|
|
4148
|
+
const { Readable } = require$$1;
|
|
4149
|
+
const sysPath$3 = require$$0$2;
|
|
4150
|
+
const { promisify: promisify$3 } = require$$0$1;
|
|
4151
|
+
const picomatch$1 = picomatch$3;
|
|
4114
4152
|
|
|
4115
|
-
const readdir = promisify(fs.readdir);
|
|
4116
|
-
const stat = promisify(fs.stat);
|
|
4117
|
-
const lstat = promisify(fs.lstat);
|
|
4118
|
-
const realpath = promisify(fs.realpath);
|
|
4153
|
+
const readdir$1 = promisify$3(fs$3.readdir);
|
|
4154
|
+
const stat$3 = promisify$3(fs$3.stat);
|
|
4155
|
+
const lstat$2 = promisify$3(fs$3.lstat);
|
|
4156
|
+
const realpath$1 = promisify$3(fs$3.realpath);
|
|
4119
4157
|
|
|
4120
4158
|
/**
|
|
4121
4159
|
* @typedef {Object} EntryInfo
|
|
@@ -4126,7 +4164,7 @@ const realpath = promisify(fs.realpath);
|
|
|
4126
4164
|
* @property {String} basename
|
|
4127
4165
|
*/
|
|
4128
4166
|
|
|
4129
|
-
const BANG = '!';
|
|
4167
|
+
const BANG$2 = '!';
|
|
4130
4168
|
const NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP']);
|
|
4131
4169
|
const FILE_TYPE = 'files';
|
|
4132
4170
|
const DIR_TYPE = 'directories';
|
|
@@ -4150,7 +4188,7 @@ const normalizeFilter = filter => {
|
|
|
4150
4188
|
const negative = [];
|
|
4151
4189
|
for (const item of filter) {
|
|
4152
4190
|
const trimmed = item.trim();
|
|
4153
|
-
if (trimmed.charAt(0) === BANG) {
|
|
4191
|
+
if (trimmed.charAt(0) === BANG$2) {
|
|
4154
4192
|
negative.push(picomatch$1(trimmed.slice(1)));
|
|
4155
4193
|
} else {
|
|
4156
4194
|
positive.push(picomatch$1(trimmed));
|
|
@@ -4195,9 +4233,9 @@ class ReaddirpStream extends Readable {
|
|
|
4195
4233
|
this._fileFilter = normalizeFilter(opts.fileFilter);
|
|
4196
4234
|
this._directoryFilter = normalizeFilter(opts.directoryFilter);
|
|
4197
4235
|
|
|
4198
|
-
const statMethod = opts.lstat ? lstat : stat;
|
|
4236
|
+
const statMethod = opts.lstat ? lstat$2 : stat$3;
|
|
4199
4237
|
// Use bigint stats if it's windows and stat() supports options (node 10+).
|
|
4200
|
-
if (process.platform === 'win32' && stat.length === 3) {
|
|
4238
|
+
if (process.platform === 'win32' && stat$3.length === 3) {
|
|
4201
4239
|
this._stat = path => statMethod(path, { bigint: true });
|
|
4202
4240
|
} else {
|
|
4203
4241
|
this._stat = statMethod;
|
|
@@ -4207,8 +4245,8 @@ class ReaddirpStream extends Readable {
|
|
|
4207
4245
|
this._wantsDir = [DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type);
|
|
4208
4246
|
this._wantsFile = [FILE_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type);
|
|
4209
4247
|
this._wantsEverything = type === EVERYTHING_TYPE;
|
|
4210
|
-
this._root = sysPath.resolve(root);
|
|
4211
|
-
this._isDirent = ('Dirent' in fs) && !opts.alwaysStat;
|
|
4248
|
+
this._root = sysPath$3.resolve(root);
|
|
4249
|
+
this._isDirent = ('Dirent' in fs$3) && !opts.alwaysStat;
|
|
4212
4250
|
this._statsProp = this._isDirent ? 'dirent' : 'stats';
|
|
4213
4251
|
this._rdOptions = { encoding: 'utf8', withFileTypes: this._isDirent };
|
|
4214
4252
|
|
|
@@ -4268,7 +4306,7 @@ class ReaddirpStream extends Readable {
|
|
|
4268
4306
|
async _exploreDir(path, depth) {
|
|
4269
4307
|
let files;
|
|
4270
4308
|
try {
|
|
4271
|
-
files = await readdir(path, this._rdOptions);
|
|
4309
|
+
files = await readdir$1(path, this._rdOptions);
|
|
4272
4310
|
} catch (error) {
|
|
4273
4311
|
this._onError(error);
|
|
4274
4312
|
}
|
|
@@ -4279,8 +4317,8 @@ class ReaddirpStream extends Readable {
|
|
|
4279
4317
|
let entry;
|
|
4280
4318
|
try {
|
|
4281
4319
|
const basename = this._isDirent ? dirent.name : dirent;
|
|
4282
|
-
const fullPath = sysPath.resolve(sysPath.join(path, basename));
|
|
4283
|
-
entry = {path: sysPath.relative(this._root, fullPath), fullPath, basename};
|
|
4320
|
+
const fullPath = sysPath$3.resolve(sysPath$3.join(path, basename));
|
|
4321
|
+
entry = {path: sysPath$3.relative(this._root, fullPath), fullPath, basename};
|
|
4284
4322
|
entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath);
|
|
4285
4323
|
} catch (err) {
|
|
4286
4324
|
this._onError(err);
|
|
@@ -4312,14 +4350,14 @@ class ReaddirpStream extends Readable {
|
|
|
4312
4350
|
if (stats && stats.isSymbolicLink()) {
|
|
4313
4351
|
const full = entry.fullPath;
|
|
4314
4352
|
try {
|
|
4315
|
-
const entryRealPath = await realpath(full);
|
|
4316
|
-
const entryRealPathStats = await lstat(entryRealPath);
|
|
4353
|
+
const entryRealPath = await realpath$1(full);
|
|
4354
|
+
const entryRealPathStats = await lstat$2(entryRealPath);
|
|
4317
4355
|
if (entryRealPathStats.isFile()) {
|
|
4318
4356
|
return 'file';
|
|
4319
4357
|
}
|
|
4320
4358
|
if (entryRealPathStats.isDirectory()) {
|
|
4321
4359
|
const len = entryRealPath.length;
|
|
4322
|
-
if (full.startsWith(entryRealPath) && full.substr(len, 1) === sysPath.sep) {
|
|
4360
|
+
if (full.startsWith(entryRealPath) && full.substr(len, 1) === sysPath$3.sep) {
|
|
4323
4361
|
return this._onError(new Error(
|
|
4324
4362
|
`Circular symlink detected: "${full}" points to "${entryRealPath}"`
|
|
4325
4363
|
));
|
|
@@ -4355,7 +4393,7 @@ class ReaddirpStream extends Readable {
|
|
|
4355
4393
|
* @param {String} root Root directory
|
|
4356
4394
|
* @param {ReaddirpArguments=} options Options to specify root (start directory), filters and recursion depth
|
|
4357
4395
|
*/
|
|
4358
|
-
const readdirp = (root, options = {}) => {
|
|
4396
|
+
const readdirp$1 = (root, options = {}) => {
|
|
4359
4397
|
let type = options.entryType || options.type;
|
|
4360
4398
|
if (type === 'both') type = FILE_DIR_TYPE; // backwards-compatibility
|
|
4361
4399
|
if (type) options.type = type;
|
|
@@ -4374,18 +4412,20 @@ const readdirp = (root, options = {}) => {
|
|
|
4374
4412
|
const readdirpPromise = (root, options = {}) => {
|
|
4375
4413
|
return new Promise((resolve, reject) => {
|
|
4376
4414
|
const files = [];
|
|
4377
|
-
readdirp(root, options)
|
|
4415
|
+
readdirp$1(root, options)
|
|
4378
4416
|
.on('data', entry => files.push(entry))
|
|
4379
4417
|
.on('end', () => resolve(files))
|
|
4380
4418
|
.on('error', error => reject(error));
|
|
4381
4419
|
});
|
|
4382
4420
|
};
|
|
4383
4421
|
|
|
4384
|
-
readdirp.promise = readdirpPromise;
|
|
4385
|
-
readdirp.ReaddirpStream = ReaddirpStream;
|
|
4386
|
-
readdirp.default = readdirp;
|
|
4422
|
+
readdirp$1.promise = readdirpPromise;
|
|
4423
|
+
readdirp$1.ReaddirpStream = ReaddirpStream;
|
|
4424
|
+
readdirp$1.default = readdirp$1;
|
|
4425
|
+
|
|
4426
|
+
var readdirp_1 = readdirp$1;
|
|
4387
4427
|
|
|
4388
|
-
var
|
|
4428
|
+
var anymatch$2 = {exports: {}};
|
|
4389
4429
|
|
|
4390
4430
|
/*!
|
|
4391
4431
|
* normalize-path <https://github.com/jonschlinkert/normalize-path>
|
|
@@ -4393,7 +4433,8 @@ var readdirp_1 = readdirp;
|
|
|
4393
4433
|
* Copyright (c) 2014-2018, Jon Schlinkert.
|
|
4394
4434
|
* Released under the MIT License.
|
|
4395
4435
|
*/
|
|
4396
|
-
|
|
4436
|
+
|
|
4437
|
+
var normalizePath$2 = function(path, stripTrailing) {
|
|
4397
4438
|
if (typeof path !== 'string') {
|
|
4398
4439
|
throw new TypeError('expected path to be a string');
|
|
4399
4440
|
}
|
|
@@ -4422,6 +4463,11 @@ var normalizePath = function(path, stripTrailing) {
|
|
|
4422
4463
|
return prefix + segs.join('/');
|
|
4423
4464
|
};
|
|
4424
4465
|
|
|
4466
|
+
Object.defineProperty(anymatch$2.exports, "__esModule", { value: true });
|
|
4467
|
+
|
|
4468
|
+
const picomatch = picomatch$3;
|
|
4469
|
+
const normalizePath$1 = normalizePath$2;
|
|
4470
|
+
|
|
4425
4471
|
/**
|
|
4426
4472
|
* @typedef {(testString: string) => boolean} AnymatchFn
|
|
4427
4473
|
* @typedef {string|RegExp|AnymatchFn} AnymatchPattern
|
|
@@ -4429,7 +4475,7 @@ var normalizePath = function(path, stripTrailing) {
|
|
|
4429
4475
|
*/
|
|
4430
4476
|
const BANG$1 = '!';
|
|
4431
4477
|
const DEFAULT_OPTIONS = {returnIndex: false};
|
|
4432
|
-
const arrify = (item) => Array.isArray(item) ? item : [item];
|
|
4478
|
+
const arrify$1 = (item) => Array.isArray(item) ? item : [item];
|
|
4433
4479
|
|
|
4434
4480
|
/**
|
|
4435
4481
|
* @param {AnymatchPattern} matcher
|
|
@@ -4441,7 +4487,7 @@ const createPattern = (matcher, options) => {
|
|
|
4441
4487
|
return matcher;
|
|
4442
4488
|
}
|
|
4443
4489
|
if (typeof matcher === 'string') {
|
|
4444
|
-
const glob = picomatch
|
|
4490
|
+
const glob = picomatch(matcher, options);
|
|
4445
4491
|
return (string) => matcher === string || glob(string);
|
|
4446
4492
|
}
|
|
4447
4493
|
if (matcher instanceof RegExp) {
|
|
@@ -4464,7 +4510,7 @@ const matchPatterns = (patterns, negPatterns, args, returnIndex) => {
|
|
|
4464
4510
|
throw new TypeError('anymatch: second argument must be a string: got ' +
|
|
4465
4511
|
Object.prototype.toString.call(_path))
|
|
4466
4512
|
}
|
|
4467
|
-
const path = normalizePath(_path);
|
|
4513
|
+
const path = normalizePath$1(_path);
|
|
4468
4514
|
|
|
4469
4515
|
for (let index = 0; index < negPatterns.length; index++) {
|
|
4470
4516
|
const nglob = negPatterns[index];
|
|
@@ -4490,7 +4536,7 @@ const matchPatterns = (patterns, negPatterns, args, returnIndex) => {
|
|
|
4490
4536
|
* @param {object} options
|
|
4491
4537
|
* @returns {boolean|number|Function}
|
|
4492
4538
|
*/
|
|
4493
|
-
const anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => {
|
|
4539
|
+
const anymatch$1 = (matchers, testString, options = DEFAULT_OPTIONS) => {
|
|
4494
4540
|
if (matchers == null) {
|
|
4495
4541
|
throw new TypeError('anymatch: specify first argument');
|
|
4496
4542
|
}
|
|
@@ -4498,11 +4544,11 @@ const anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => {
|
|
|
4498
4544
|
const returnIndex = opts.returnIndex || false;
|
|
4499
4545
|
|
|
4500
4546
|
// Early cache for matchers.
|
|
4501
|
-
const mtchers = arrify(matchers);
|
|
4547
|
+
const mtchers = arrify$1(matchers);
|
|
4502
4548
|
const negatedGlobs = mtchers
|
|
4503
4549
|
.filter(item => typeof item === 'string' && item.charAt(0) === BANG$1)
|
|
4504
4550
|
.map(item => item.slice(1))
|
|
4505
|
-
.map(item => picomatch
|
|
4551
|
+
.map(item => picomatch(item, opts));
|
|
4506
4552
|
const patterns = mtchers.map(matcher => createPattern(matcher, opts));
|
|
4507
4553
|
|
|
4508
4554
|
if (testString == null) {
|
|
@@ -4515,8 +4561,8 @@ const anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => {
|
|
|
4515
4561
|
return matchPatterns(patterns, negatedGlobs, testString, returnIndex);
|
|
4516
4562
|
};
|
|
4517
4563
|
|
|
4518
|
-
anymatch.default = anymatch;
|
|
4519
|
-
|
|
4564
|
+
anymatch$1.default = anymatch$1;
|
|
4565
|
+
anymatch$2.exports = anymatch$1;
|
|
4520
4566
|
|
|
4521
4567
|
/*!
|
|
4522
4568
|
* is-extglob <https://github.com/jonschlinkert/is-extglob>
|
|
@@ -4524,7 +4570,8 @@ var anymatch_1 = anymatch;
|
|
|
4524
4570
|
* Copyright (c) 2014-2016, Jon Schlinkert.
|
|
4525
4571
|
* Licensed under the MIT License.
|
|
4526
4572
|
*/
|
|
4527
|
-
|
|
4573
|
+
|
|
4574
|
+
var isExtglob$1 = function isExtglob(str) {
|
|
4528
4575
|
if (typeof str !== 'string' || str === '') {
|
|
4529
4576
|
return false;
|
|
4530
4577
|
}
|
|
@@ -4545,11 +4592,12 @@ var isExtglob = function isExtglob(str) {
|
|
|
4545
4592
|
* Released under the MIT License.
|
|
4546
4593
|
*/
|
|
4547
4594
|
|
|
4595
|
+
var isExtglob = isExtglob$1;
|
|
4548
4596
|
var chars = { '{': '}', '(': ')', '[': ']'};
|
|
4549
4597
|
var strictRegex = /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/;
|
|
4550
4598
|
var relaxedRegex = /\\(.)|(^!|[*?{}()[\]]|\(\?)/;
|
|
4551
4599
|
|
|
4552
|
-
var isGlob = function isGlob(str, options) {
|
|
4600
|
+
var isGlob$2 = function isGlob(str, options) {
|
|
4553
4601
|
if (typeof str !== 'string' || str === '') {
|
|
4554
4602
|
return false;
|
|
4555
4603
|
}
|
|
@@ -4586,8 +4634,9 @@ var isGlob = function isGlob(str, options) {
|
|
|
4586
4634
|
return false;
|
|
4587
4635
|
};
|
|
4588
4636
|
|
|
4589
|
-
var
|
|
4590
|
-
var
|
|
4637
|
+
var isGlob$1 = isGlob$2;
|
|
4638
|
+
var pathPosixDirname = require$$0$2.posix.dirname;
|
|
4639
|
+
var isWin32 = require$$2.platform() === 'win32';
|
|
4591
4640
|
|
|
4592
4641
|
var slash = '/';
|
|
4593
4642
|
var backslash = /\\/g;
|
|
@@ -4600,7 +4649,7 @@ var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g;
|
|
|
4600
4649
|
* @param {Object} opts
|
|
4601
4650
|
* @param {boolean} [opts.flipBackslashes=true]
|
|
4602
4651
|
*/
|
|
4603
|
-
var globParent = function globParent(str, opts) {
|
|
4652
|
+
var globParent$1 = function globParent(str, opts) {
|
|
4604
4653
|
var options = Object.assign({ flipBackslashes: true }, opts);
|
|
4605
4654
|
|
|
4606
4655
|
// flip windows path separators
|
|
@@ -4619,7 +4668,7 @@ var globParent = function globParent(str, opts) {
|
|
|
4619
4668
|
// remove path parts that are globby
|
|
4620
4669
|
do {
|
|
4621
4670
|
str = pathPosixDirname(str);
|
|
4622
|
-
} while (isGlob(str) || globby.test(str));
|
|
4671
|
+
} while (isGlob$1(str) || globby.test(str));
|
|
4623
4672
|
|
|
4624
4673
|
// remove escape chars and return result
|
|
4625
4674
|
return str.replace(escaped, '$1');
|
|
@@ -4886,15 +4935,20 @@ var require$$0 = [
|
|
|
4886
4935
|
"zipx"
|
|
4887
4936
|
];
|
|
4888
4937
|
|
|
4889
|
-
var binaryExtensions = require$$0;
|
|
4938
|
+
var binaryExtensions$1 = require$$0;
|
|
4939
|
+
|
|
4940
|
+
const path = require$$0$2;
|
|
4941
|
+
const binaryExtensions = binaryExtensions$1;
|
|
4890
4942
|
|
|
4891
4943
|
const extensions = new Set(binaryExtensions);
|
|
4892
4944
|
|
|
4893
|
-
var isBinaryPath = filePath => extensions.has(
|
|
4945
|
+
var isBinaryPath$1 = filePath => extensions.has(path.extname(filePath).slice(1).toLowerCase());
|
|
4894
4946
|
|
|
4895
|
-
var constants
|
|
4947
|
+
var constants = {};
|
|
4896
4948
|
|
|
4897
|
-
|
|
4949
|
+
(function (exports) {
|
|
4950
|
+
|
|
4951
|
+
const {sep} = require$$0$2;
|
|
4898
4952
|
const {platform} = process;
|
|
4899
4953
|
|
|
4900
4954
|
exports.EV_ALL = 'all';
|
|
@@ -4955,38 +5009,40 @@ exports.IDENTITY_FN = val => val;
|
|
|
4955
5009
|
exports.isWindows = platform === 'win32';
|
|
4956
5010
|
exports.isMacos = platform === 'darwin';
|
|
4957
5011
|
exports.isLinux = platform === 'linux';
|
|
4958
|
-
});
|
|
4959
|
-
|
|
4960
|
-
const { promisify: promisify$1 } = util;
|
|
5012
|
+
}(constants));
|
|
4961
5013
|
|
|
5014
|
+
const fs$2 = fs$4;
|
|
5015
|
+
const sysPath$2 = require$$0$2;
|
|
5016
|
+
const { promisify: promisify$2 } = require$$0$1;
|
|
5017
|
+
const isBinaryPath = isBinaryPath$1;
|
|
4962
5018
|
const {
|
|
4963
|
-
isWindows,
|
|
5019
|
+
isWindows: isWindows$1,
|
|
4964
5020
|
isLinux,
|
|
4965
|
-
EMPTY_FN,
|
|
4966
|
-
EMPTY_STR,
|
|
5021
|
+
EMPTY_FN: EMPTY_FN$2,
|
|
5022
|
+
EMPTY_STR: EMPTY_STR$1,
|
|
4967
5023
|
KEY_LISTENERS,
|
|
4968
5024
|
KEY_ERR,
|
|
4969
5025
|
KEY_RAW,
|
|
4970
5026
|
HANDLER_KEYS,
|
|
4971
|
-
EV_CHANGE,
|
|
4972
|
-
EV_ADD,
|
|
4973
|
-
EV_ADD_DIR,
|
|
4974
|
-
EV_ERROR,
|
|
4975
|
-
STR_DATA,
|
|
4976
|
-
STR_END,
|
|
4977
|
-
BRACE_START,
|
|
4978
|
-
STAR
|
|
4979
|
-
} = constants
|
|
5027
|
+
EV_CHANGE: EV_CHANGE$2,
|
|
5028
|
+
EV_ADD: EV_ADD$2,
|
|
5029
|
+
EV_ADD_DIR: EV_ADD_DIR$2,
|
|
5030
|
+
EV_ERROR: EV_ERROR$2,
|
|
5031
|
+
STR_DATA: STR_DATA$1,
|
|
5032
|
+
STR_END: STR_END$2,
|
|
5033
|
+
BRACE_START: BRACE_START$1,
|
|
5034
|
+
STAR
|
|
5035
|
+
} = constants;
|
|
4980
5036
|
|
|
4981
5037
|
const THROTTLE_MODE_WATCH = 'watch';
|
|
4982
5038
|
|
|
4983
|
-
const open = promisify$
|
|
4984
|
-
const stat$
|
|
4985
|
-
const lstat$1 = promisify$
|
|
4986
|
-
const close = promisify$
|
|
4987
|
-
const fsrealpath = promisify$
|
|
5039
|
+
const open = promisify$2(fs$2.open);
|
|
5040
|
+
const stat$2 = promisify$2(fs$2.stat);
|
|
5041
|
+
const lstat$1 = promisify$2(fs$2.lstat);
|
|
5042
|
+
const close = promisify$2(fs$2.close);
|
|
5043
|
+
const fsrealpath = promisify$2(fs$2.realpath);
|
|
4988
5044
|
|
|
4989
|
-
const statMethods = { lstat: lstat$1, stat: stat$
|
|
5045
|
+
const statMethods$1 = { lstat: lstat$1, stat: stat$2 };
|
|
4990
5046
|
|
|
4991
5047
|
// TODO: emit errors properly. Example: EMFILE on Macos.
|
|
4992
5048
|
const foreach = (val, fn) => {
|
|
@@ -5066,12 +5122,12 @@ function createFsWatchInstance(path, options, listener, errHandler, emitRaw) {
|
|
|
5066
5122
|
// case the file's watcher misses it (and rely on throttling to de-dupe)
|
|
5067
5123
|
if (evPath && path !== evPath) {
|
|
5068
5124
|
fsWatchBroadcast(
|
|
5069
|
-
sysPath.resolve(path, evPath), KEY_LISTENERS, sysPath.join(path, evPath)
|
|
5125
|
+
sysPath$2.resolve(path, evPath), KEY_LISTENERS, sysPath$2.join(path, evPath)
|
|
5070
5126
|
);
|
|
5071
5127
|
}
|
|
5072
5128
|
};
|
|
5073
5129
|
try {
|
|
5074
|
-
return fs.watch(path, options, handleEvent);
|
|
5130
|
+
return fs$2.watch(path, options, handleEvent);
|
|
5075
5131
|
} catch (error) {
|
|
5076
5132
|
errHandler(error);
|
|
5077
5133
|
}
|
|
@@ -5126,11 +5182,11 @@ const setFsWatchListener = (path, fullPath, options, handlers) => {
|
|
|
5126
5182
|
fsWatchBroadcast.bind(null, fullPath, KEY_RAW)
|
|
5127
5183
|
);
|
|
5128
5184
|
if (!watcher) return;
|
|
5129
|
-
watcher.on(EV_ERROR, async (error) => {
|
|
5185
|
+
watcher.on(EV_ERROR$2, async (error) => {
|
|
5130
5186
|
const broadcastErr = fsWatchBroadcast.bind(null, fullPath, KEY_ERR);
|
|
5131
5187
|
cont.watcherUnusable = true; // documented since Node 10.4.1
|
|
5132
5188
|
// Workaround for https://github.com/joyent/node/issues/4337
|
|
5133
|
-
if (isWindows && error.code === 'EPERM') {
|
|
5189
|
+
if (isWindows$1 && error.code === 'EPERM') {
|
|
5134
5190
|
try {
|
|
5135
5191
|
const fd = await open(path, 'r');
|
|
5136
5192
|
await close(fd);
|
|
@@ -5190,7 +5246,7 @@ const setFsWatchFileListener = (path, fullPath, options, handlers) => {
|
|
|
5190
5246
|
|
|
5191
5247
|
const copts = cont && cont.options;
|
|
5192
5248
|
if (copts && (copts.persistent < options.persistent || copts.interval > options.interval)) {
|
|
5193
|
-
fs.unwatchFile(fullPath);
|
|
5249
|
+
fs$2.unwatchFile(fullPath);
|
|
5194
5250
|
cont = undefined;
|
|
5195
5251
|
}
|
|
5196
5252
|
|
|
@@ -5207,9 +5263,9 @@ const setFsWatchFileListener = (path, fullPath, options, handlers) => {
|
|
|
5207
5263
|
listeners: listener,
|
|
5208
5264
|
rawEmitters: rawEmitter,
|
|
5209
5265
|
options,
|
|
5210
|
-
watcher: fs.watchFile(fullPath, options, (curr, prev) => {
|
|
5266
|
+
watcher: fs$2.watchFile(fullPath, options, (curr, prev) => {
|
|
5211
5267
|
foreach(cont.rawEmitters, (rawEmitter) => {
|
|
5212
|
-
rawEmitter(EV_CHANGE, fullPath, {curr, prev});
|
|
5268
|
+
rawEmitter(EV_CHANGE$2, fullPath, {curr, prev});
|
|
5213
5269
|
});
|
|
5214
5270
|
const currmtime = curr.mtimeMs;
|
|
5215
5271
|
if (curr.size !== prev.size || currmtime > prev.mtimeMs || currmtime === 0) {
|
|
@@ -5228,7 +5284,7 @@ const setFsWatchFileListener = (path, fullPath, options, handlers) => {
|
|
|
5228
5284
|
delFromSet(cont, KEY_RAW, rawEmitter);
|
|
5229
5285
|
if (isEmptySet(cont.listeners)) {
|
|
5230
5286
|
FsWatchFileInstances.delete(fullPath);
|
|
5231
|
-
fs.unwatchFile(fullPath);
|
|
5287
|
+
fs$2.unwatchFile(fullPath);
|
|
5232
5288
|
cont.options = cont.watcher = undefined;
|
|
5233
5289
|
Object.freeze(cont);
|
|
5234
5290
|
}
|
|
@@ -5238,7 +5294,7 @@ const setFsWatchFileListener = (path, fullPath, options, handlers) => {
|
|
|
5238
5294
|
/**
|
|
5239
5295
|
* @mixin
|
|
5240
5296
|
*/
|
|
5241
|
-
class NodeFsHandler {
|
|
5297
|
+
class NodeFsHandler$1 {
|
|
5242
5298
|
|
|
5243
5299
|
/**
|
|
5244
5300
|
* @param {import("../index").FSWatcher} fsW
|
|
@@ -5256,13 +5312,13 @@ constructor(fsW) {
|
|
|
5256
5312
|
*/
|
|
5257
5313
|
_watchWithNodeFs(path, listener) {
|
|
5258
5314
|
const opts = this.fsw.options;
|
|
5259
|
-
const directory = sysPath.dirname(path);
|
|
5260
|
-
const basename = sysPath.basename(path);
|
|
5315
|
+
const directory = sysPath$2.dirname(path);
|
|
5316
|
+
const basename = sysPath$2.basename(path);
|
|
5261
5317
|
const parent = this.fsw._getWatchedDir(directory);
|
|
5262
5318
|
parent.add(basename);
|
|
5263
|
-
const absolutePath = sysPath.resolve(path);
|
|
5319
|
+
const absolutePath = sysPath$2.resolve(path);
|
|
5264
5320
|
const options = {persistent: opts.persistent};
|
|
5265
|
-
if (!listener) listener = EMPTY_FN;
|
|
5321
|
+
if (!listener) listener = EMPTY_FN$2;
|
|
5266
5322
|
|
|
5267
5323
|
let closer;
|
|
5268
5324
|
if (opts.usePolling) {
|
|
@@ -5293,8 +5349,8 @@ _handleFile(file, stats, initialAdd) {
|
|
|
5293
5349
|
if (this.fsw.closed) {
|
|
5294
5350
|
return;
|
|
5295
5351
|
}
|
|
5296
|
-
const dirname = sysPath.dirname(file);
|
|
5297
|
-
const basename = sysPath.basename(file);
|
|
5352
|
+
const dirname = sysPath$2.dirname(file);
|
|
5353
|
+
const basename = sysPath$2.basename(file);
|
|
5298
5354
|
const parent = this.fsw._getWatchedDir(dirname);
|
|
5299
5355
|
// stats is always present
|
|
5300
5356
|
let prevStats = stats;
|
|
@@ -5306,13 +5362,13 @@ _handleFile(file, stats, initialAdd) {
|
|
|
5306
5362
|
if (!this.fsw._throttle(THROTTLE_MODE_WATCH, file, 5)) return;
|
|
5307
5363
|
if (!newStats || newStats.mtimeMs === 0) {
|
|
5308
5364
|
try {
|
|
5309
|
-
const newStats = await stat$
|
|
5365
|
+
const newStats = await stat$2(file);
|
|
5310
5366
|
if (this.fsw.closed) return;
|
|
5311
5367
|
// Check that change event was not fired because of changed only accessTime.
|
|
5312
5368
|
const at = newStats.atimeMs;
|
|
5313
5369
|
const mt = newStats.mtimeMs;
|
|
5314
5370
|
if (!at || at <= mt || mt !== prevStats.mtimeMs) {
|
|
5315
|
-
this.fsw._emit(EV_CHANGE, file, newStats);
|
|
5371
|
+
this.fsw._emit(EV_CHANGE$2, file, newStats);
|
|
5316
5372
|
}
|
|
5317
5373
|
if (isLinux && prevStats.ino !== newStats.ino) {
|
|
5318
5374
|
this.fsw._closeFile(path);
|
|
@@ -5331,7 +5387,7 @@ _handleFile(file, stats, initialAdd) {
|
|
|
5331
5387
|
const at = newStats.atimeMs;
|
|
5332
5388
|
const mt = newStats.mtimeMs;
|
|
5333
5389
|
if (!at || at <= mt || mt !== prevStats.mtimeMs) {
|
|
5334
|
-
this.fsw._emit(EV_CHANGE, file, newStats);
|
|
5390
|
+
this.fsw._emit(EV_CHANGE$2, file, newStats);
|
|
5335
5391
|
}
|
|
5336
5392
|
prevStats = newStats;
|
|
5337
5393
|
}
|
|
@@ -5341,8 +5397,8 @@ _handleFile(file, stats, initialAdd) {
|
|
|
5341
5397
|
|
|
5342
5398
|
// emit an add event if we're supposed to
|
|
5343
5399
|
if (!(initialAdd && this.fsw.options.ignoreInitial) && this.fsw._isntIgnored(file)) {
|
|
5344
|
-
if (!this.fsw._throttle(EV_ADD, file, 0)) return;
|
|
5345
|
-
this.fsw._emit(EV_ADD, file, stats);
|
|
5400
|
+
if (!this.fsw._throttle(EV_ADD$2, file, 0)) return;
|
|
5401
|
+
this.fsw._emit(EV_ADD$2, file, stats);
|
|
5346
5402
|
}
|
|
5347
5403
|
|
|
5348
5404
|
return closer;
|
|
@@ -5371,12 +5427,12 @@ async _handleSymlink(entry, directory, path, item) {
|
|
|
5371
5427
|
if (dir.has(item)) {
|
|
5372
5428
|
if (this.fsw._symlinkPaths.get(full) !== linkPath) {
|
|
5373
5429
|
this.fsw._symlinkPaths.set(full, linkPath);
|
|
5374
|
-
this.fsw._emit(EV_CHANGE, path, entry.stats);
|
|
5430
|
+
this.fsw._emit(EV_CHANGE$2, path, entry.stats);
|
|
5375
5431
|
}
|
|
5376
5432
|
} else {
|
|
5377
5433
|
dir.add(item);
|
|
5378
5434
|
this.fsw._symlinkPaths.set(full, linkPath);
|
|
5379
|
-
this.fsw._emit(EV_ADD, path, entry.stats);
|
|
5435
|
+
this.fsw._emit(EV_ADD$2, path, entry.stats);
|
|
5380
5436
|
}
|
|
5381
5437
|
this.fsw._emitReady();
|
|
5382
5438
|
return true;
|
|
@@ -5392,7 +5448,7 @@ async _handleSymlink(entry, directory, path, item) {
|
|
|
5392
5448
|
|
|
5393
5449
|
_handleRead(directory, initialAdd, wh, target, dir, depth, throttler) {
|
|
5394
5450
|
// Normalize the directory name on Windows
|
|
5395
|
-
directory = sysPath.join(directory, EMPTY_STR);
|
|
5451
|
+
directory = sysPath$2.join(directory, EMPTY_STR$1);
|
|
5396
5452
|
|
|
5397
5453
|
if (!wh.hasGlob) {
|
|
5398
5454
|
throttler = this.fsw._throttle('readdir', directory, 1000);
|
|
@@ -5406,13 +5462,13 @@ _handleRead(directory, initialAdd, wh, target, dir, depth, throttler) {
|
|
|
5406
5462
|
fileFilter: entry => wh.filterPath(entry),
|
|
5407
5463
|
directoryFilter: entry => wh.filterDir(entry),
|
|
5408
5464
|
depth: 0
|
|
5409
|
-
}).on(STR_DATA, async (entry) => {
|
|
5465
|
+
}).on(STR_DATA$1, async (entry) => {
|
|
5410
5466
|
if (this.fsw.closed) {
|
|
5411
5467
|
stream = undefined;
|
|
5412
5468
|
return;
|
|
5413
5469
|
}
|
|
5414
5470
|
const item = entry.path;
|
|
5415
|
-
let path = sysPath.join(directory, item);
|
|
5471
|
+
let path = sysPath$2.join(directory, item);
|
|
5416
5472
|
current.add(item);
|
|
5417
5473
|
|
|
5418
5474
|
if (entry.stats.isSymbolicLink() && await this._handleSymlink(entry, directory, path, item)) {
|
|
@@ -5430,14 +5486,14 @@ _handleRead(directory, initialAdd, wh, target, dir, depth, throttler) {
|
|
|
5430
5486
|
this.fsw._incrReadyCount();
|
|
5431
5487
|
|
|
5432
5488
|
// ensure relativeness of path is preserved in case of watcher reuse
|
|
5433
|
-
path = sysPath.join(dir, sysPath.relative(dir, path));
|
|
5489
|
+
path = sysPath$2.join(dir, sysPath$2.relative(dir, path));
|
|
5434
5490
|
|
|
5435
5491
|
this._addToNodeFs(path, initialAdd, wh, depth + 1);
|
|
5436
5492
|
}
|
|
5437
|
-
}).on(EV_ERROR, this._boundHandleError);
|
|
5493
|
+
}).on(EV_ERROR$2, this._boundHandleError);
|
|
5438
5494
|
|
|
5439
5495
|
return new Promise(resolve =>
|
|
5440
|
-
stream.once(STR_END, () => {
|
|
5496
|
+
stream.once(STR_END$2, () => {
|
|
5441
5497
|
if (this.fsw.closed) {
|
|
5442
5498
|
stream = undefined;
|
|
5443
5499
|
return;
|
|
@@ -5456,7 +5512,7 @@ _handleRead(directory, initialAdd, wh, target, dir, depth, throttler) {
|
|
|
5456
5512
|
// a path may have been filtered out of this readdir, but
|
|
5457
5513
|
// shouldn't be removed because it matches a different glob
|
|
5458
5514
|
(!wh.hasGlob || wh.filterPath({
|
|
5459
|
-
fullPath: sysPath.resolve(directory, item)
|
|
5515
|
+
fullPath: sysPath$2.resolve(directory, item)
|
|
5460
5516
|
}));
|
|
5461
5517
|
}).forEach((item) => {
|
|
5462
5518
|
this.fsw._remove(directory, item);
|
|
@@ -5482,14 +5538,14 @@ _handleRead(directory, initialAdd, wh, target, dir, depth, throttler) {
|
|
|
5482
5538
|
* @returns {Promise<Function>} closer for the watcher instance.
|
|
5483
5539
|
*/
|
|
5484
5540
|
async _handleDir(dir, stats, initialAdd, depth, target, wh, realpath) {
|
|
5485
|
-
const parentDir = this.fsw._getWatchedDir(sysPath.dirname(dir));
|
|
5486
|
-
const tracked = parentDir.has(sysPath.basename(dir));
|
|
5541
|
+
const parentDir = this.fsw._getWatchedDir(sysPath$2.dirname(dir));
|
|
5542
|
+
const tracked = parentDir.has(sysPath$2.basename(dir));
|
|
5487
5543
|
if (!(initialAdd && this.fsw.options.ignoreInitial) && !target && !tracked) {
|
|
5488
|
-
if (!wh.hasGlob || wh.globFilter(dir)) this.fsw._emit(EV_ADD_DIR, dir, stats);
|
|
5544
|
+
if (!wh.hasGlob || wh.globFilter(dir)) this.fsw._emit(EV_ADD_DIR$2, dir, stats);
|
|
5489
5545
|
}
|
|
5490
5546
|
|
|
5491
5547
|
// ensure dir is tracked (harmless if redundant)
|
|
5492
|
-
parentDir.add(sysPath.basename(dir));
|
|
5548
|
+
parentDir.add(sysPath$2.basename(dir));
|
|
5493
5549
|
this.fsw._getWatchedDir(dir);
|
|
5494
5550
|
let throttler;
|
|
5495
5551
|
let closer;
|
|
@@ -5538,17 +5594,17 @@ async _addToNodeFs(path, initialAdd, priorWh, depth, target) {
|
|
|
5538
5594
|
|
|
5539
5595
|
// evaluate what is at the path we're being asked to watch
|
|
5540
5596
|
try {
|
|
5541
|
-
const stats = await statMethods[wh.statMethod](wh.watchPath);
|
|
5597
|
+
const stats = await statMethods$1[wh.statMethod](wh.watchPath);
|
|
5542
5598
|
if (this.fsw.closed) return;
|
|
5543
5599
|
if (this.fsw._isIgnored(wh.watchPath, stats)) {
|
|
5544
5600
|
ready();
|
|
5545
5601
|
return false;
|
|
5546
5602
|
}
|
|
5547
5603
|
|
|
5548
|
-
const follow = this.fsw.options.followSymlinks && !path.includes(STAR
|
|
5604
|
+
const follow = this.fsw.options.followSymlinks && !path.includes(STAR) && !path.includes(BRACE_START$1);
|
|
5549
5605
|
let closer;
|
|
5550
5606
|
if (stats.isDirectory()) {
|
|
5551
|
-
const absPath = sysPath.resolve(path);
|
|
5607
|
+
const absPath = sysPath$2.resolve(path);
|
|
5552
5608
|
const targetPath = follow ? await fsrealpath(path) : path;
|
|
5553
5609
|
if (this.fsw.closed) return;
|
|
5554
5610
|
closer = await this._handleDir(wh.watchPath, stats, initialAdd, depth, target, wh, targetPath);
|
|
@@ -5560,15 +5616,15 @@ async _addToNodeFs(path, initialAdd, priorWh, depth, target) {
|
|
|
5560
5616
|
} else if (stats.isSymbolicLink()) {
|
|
5561
5617
|
const targetPath = follow ? await fsrealpath(path) : path;
|
|
5562
5618
|
if (this.fsw.closed) return;
|
|
5563
|
-
const parent = sysPath.dirname(wh.watchPath);
|
|
5619
|
+
const parent = sysPath$2.dirname(wh.watchPath);
|
|
5564
5620
|
this.fsw._getWatchedDir(parent).add(wh.watchPath);
|
|
5565
|
-
this.fsw._emit(EV_ADD, wh.watchPath, stats);
|
|
5621
|
+
this.fsw._emit(EV_ADD$2, wh.watchPath, stats);
|
|
5566
5622
|
closer = await this._handleDir(parent, stats, initialAdd, depth, path, wh, targetPath);
|
|
5567
5623
|
if (this.fsw.closed) return;
|
|
5568
5624
|
|
|
5569
5625
|
// preserve this symlink's target path
|
|
5570
5626
|
if (targetPath !== undefined) {
|
|
5571
|
-
this.fsw._symlinkPaths.set(sysPath.resolve(path), targetPath);
|
|
5627
|
+
this.fsw._symlinkPaths.set(sysPath$2.resolve(path), targetPath);
|
|
5572
5628
|
}
|
|
5573
5629
|
} else {
|
|
5574
5630
|
closer = this._handleFile(wh.watchPath, stats, initialAdd);
|
|
@@ -5588,15 +5644,19 @@ async _addToNodeFs(path, initialAdd, priorWh, depth, target) {
|
|
|
5588
5644
|
|
|
5589
5645
|
}
|
|
5590
5646
|
|
|
5591
|
-
var nodefsHandler = NodeFsHandler;
|
|
5647
|
+
var nodefsHandler = NodeFsHandler$1;
|
|
5648
|
+
|
|
5649
|
+
var fseventsHandler = {exports: {}};
|
|
5592
5650
|
|
|
5593
|
-
var require$$
|
|
5651
|
+
var require$$3 = /*@__PURE__*/getAugmentedNamespace(fseventsImporter);
|
|
5594
5652
|
|
|
5595
|
-
const
|
|
5653
|
+
const fs$1 = fs$4;
|
|
5654
|
+
const sysPath$1 = require$$0$2;
|
|
5655
|
+
const { promisify: promisify$1 } = require$$0$1;
|
|
5596
5656
|
|
|
5597
5657
|
let fsevents;
|
|
5598
5658
|
try {
|
|
5599
|
-
fsevents = require$$
|
|
5659
|
+
fsevents = require$$3.getFsEvents();
|
|
5600
5660
|
} catch (error) {
|
|
5601
5661
|
if (process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR) console.error(error);
|
|
5602
5662
|
}
|
|
@@ -5617,9 +5677,9 @@ const {
|
|
|
5617
5677
|
EV_ADD: EV_ADD$1,
|
|
5618
5678
|
EV_CHANGE: EV_CHANGE$1,
|
|
5619
5679
|
EV_ADD_DIR: EV_ADD_DIR$1,
|
|
5620
|
-
EV_UNLINK,
|
|
5680
|
+
EV_UNLINK: EV_UNLINK$1,
|
|
5621
5681
|
EV_ERROR: EV_ERROR$1,
|
|
5622
|
-
STR_DATA
|
|
5682
|
+
STR_DATA,
|
|
5623
5683
|
STR_END: STR_END$1,
|
|
5624
5684
|
FSEVENT_CREATED,
|
|
5625
5685
|
FSEVENT_MODIFIED,
|
|
@@ -5634,18 +5694,18 @@ const {
|
|
|
5634
5694
|
ROOT_GLOBSTAR,
|
|
5635
5695
|
DIR_SUFFIX,
|
|
5636
5696
|
DOT_SLASH,
|
|
5637
|
-
FUNCTION_TYPE,
|
|
5697
|
+
FUNCTION_TYPE: FUNCTION_TYPE$1,
|
|
5638
5698
|
EMPTY_FN: EMPTY_FN$1,
|
|
5639
5699
|
IDENTITY_FN
|
|
5640
|
-
} = constants
|
|
5700
|
+
} = constants;
|
|
5641
5701
|
|
|
5642
5702
|
const Depth = (value) => isNaN(value) ? {} : {depth: value};
|
|
5643
5703
|
|
|
5644
|
-
const stat$
|
|
5645
|
-
const lstat
|
|
5646
|
-
const realpath
|
|
5704
|
+
const stat$1 = promisify$1(fs$1.stat);
|
|
5705
|
+
const lstat = promisify$1(fs$1.lstat);
|
|
5706
|
+
const realpath = promisify$1(fs$1.realpath);
|
|
5647
5707
|
|
|
5648
|
-
const statMethods
|
|
5708
|
+
const statMethods = { stat: stat$1, lstat };
|
|
5649
5709
|
|
|
5650
5710
|
/**
|
|
5651
5711
|
* @typedef {String} Path
|
|
@@ -5694,8 +5754,8 @@ const createFSEventsInstance = (path, callback) => {
|
|
|
5694
5754
|
* @returns {Function} closer
|
|
5695
5755
|
*/
|
|
5696
5756
|
function setFSEventsListener(path, realPath, listener, rawEmitter) {
|
|
5697
|
-
let watchPath = sysPath.extname(path) ? sysPath.dirname(path) : path;
|
|
5698
|
-
const parentPath = sysPath.dirname(watchPath);
|
|
5757
|
+
let watchPath = sysPath$1.extname(path) ? sysPath$1.dirname(path) : path;
|
|
5758
|
+
const parentPath = sysPath$1.dirname(watchPath);
|
|
5699
5759
|
let cont = FSEventsWatchers.get(watchPath);
|
|
5700
5760
|
|
|
5701
5761
|
// If we've accumulated a substantial number of paths that
|
|
@@ -5706,14 +5766,14 @@ function setFSEventsListener(path, realPath, listener, rawEmitter) {
|
|
|
5706
5766
|
watchPath = parentPath;
|
|
5707
5767
|
}
|
|
5708
5768
|
|
|
5709
|
-
const resolvedPath = sysPath.resolve(path);
|
|
5769
|
+
const resolvedPath = sysPath$1.resolve(path);
|
|
5710
5770
|
const hasSymlink = resolvedPath !== realPath;
|
|
5711
5771
|
|
|
5712
5772
|
const filteredListener = (fullPath, flags, info) => {
|
|
5713
5773
|
if (hasSymlink) fullPath = fullPath.replace(realPath, resolvedPath);
|
|
5714
5774
|
if (
|
|
5715
5775
|
fullPath === resolvedPath ||
|
|
5716
|
-
!fullPath.indexOf(resolvedPath + sysPath.sep)
|
|
5776
|
+
!fullPath.indexOf(resolvedPath + sysPath$1.sep)
|
|
5717
5777
|
) listener(fullPath, flags, info);
|
|
5718
5778
|
};
|
|
5719
5779
|
|
|
@@ -5721,7 +5781,7 @@ function setFSEventsListener(path, realPath, listener, rawEmitter) {
|
|
|
5721
5781
|
// modifies `watchPath` to the parent path when it finds a match
|
|
5722
5782
|
let watchedParent = false;
|
|
5723
5783
|
for (const watchedPath of FSEventsWatchers.keys()) {
|
|
5724
|
-
if (realPath.indexOf(sysPath.resolve(watchedPath) + sysPath.sep) === 0) {
|
|
5784
|
+
if (realPath.indexOf(sysPath$1.resolve(watchedPath) + sysPath$1.sep) === 0) {
|
|
5725
5785
|
watchPath = watchedPath;
|
|
5726
5786
|
cont = FSEventsWatchers.get(watchPath);
|
|
5727
5787
|
watchedParent = true;
|
|
@@ -5786,7 +5846,7 @@ const canUse = () => fsevents && FSEventsWatchers.size < 128;
|
|
|
5786
5846
|
// determines subdirectory traversal levels from root to path
|
|
5787
5847
|
const calcDepth = (path, root) => {
|
|
5788
5848
|
let i = 0;
|
|
5789
|
-
while (!path.indexOf(root) && (path = sysPath.dirname(path)) !== root) i++;
|
|
5849
|
+
while (!path.indexOf(root) && (path = sysPath$1.dirname(path)) !== root) i++;
|
|
5790
5850
|
return i;
|
|
5791
5851
|
};
|
|
5792
5852
|
|
|
@@ -5801,7 +5861,7 @@ const sameTypes = (info, stats) => (
|
|
|
5801
5861
|
/**
|
|
5802
5862
|
* @mixin
|
|
5803
5863
|
*/
|
|
5804
|
-
class FsEventsHandler {
|
|
5864
|
+
class FsEventsHandler$1 {
|
|
5805
5865
|
|
|
5806
5866
|
/**
|
|
5807
5867
|
* @param {import('../index').FSWatcher} fsw
|
|
@@ -5830,18 +5890,18 @@ addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts) {
|
|
|
5830
5890
|
|
|
5831
5891
|
async checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts) {
|
|
5832
5892
|
try {
|
|
5833
|
-
const stats = await stat$
|
|
5893
|
+
const stats = await stat$1(path);
|
|
5834
5894
|
if (this.fsw.closed) return;
|
|
5835
5895
|
if (sameTypes(info, stats)) {
|
|
5836
5896
|
this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts);
|
|
5837
5897
|
} else {
|
|
5838
|
-
this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts);
|
|
5898
|
+
this.handleEvent(EV_UNLINK$1, path, fullPath, realPath, parent, watchedDir, item, info, opts);
|
|
5839
5899
|
}
|
|
5840
5900
|
} catch (error) {
|
|
5841
5901
|
if (error.code === 'EACCES') {
|
|
5842
5902
|
this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts);
|
|
5843
5903
|
} else {
|
|
5844
|
-
this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts);
|
|
5904
|
+
this.handleEvent(EV_UNLINK$1, path, fullPath, realPath, parent, watchedDir, item, info, opts);
|
|
5845
5905
|
}
|
|
5846
5906
|
}
|
|
5847
5907
|
}
|
|
@@ -5849,7 +5909,7 @@ async checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts
|
|
|
5849
5909
|
handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts) {
|
|
5850
5910
|
if (this.fsw.closed || this.checkIgnored(path)) return;
|
|
5851
5911
|
|
|
5852
|
-
if (event === EV_UNLINK) {
|
|
5912
|
+
if (event === EV_UNLINK$1) {
|
|
5853
5913
|
const isDirectory = info.type === FSEVENT_TYPE_DIRECTORY;
|
|
5854
5914
|
// suppress unlink events on never before seen files
|
|
5855
5915
|
if (isDirectory || watchedDir.has(item)) {
|
|
@@ -5897,30 +5957,30 @@ _watchWithFsEvents(watchPath, realPath, transform, globFilter) {
|
|
|
5897
5957
|
opts.depth !== undefined &&
|
|
5898
5958
|
calcDepth(fullPath, realPath) > opts.depth
|
|
5899
5959
|
) return;
|
|
5900
|
-
const path = transform(sysPath.join(
|
|
5901
|
-
watchPath, sysPath.relative(watchPath, fullPath)
|
|
5960
|
+
const path = transform(sysPath$1.join(
|
|
5961
|
+
watchPath, sysPath$1.relative(watchPath, fullPath)
|
|
5902
5962
|
));
|
|
5903
5963
|
if (globFilter && !globFilter(path)) return;
|
|
5904
5964
|
// ensure directories are tracked
|
|
5905
|
-
const parent = sysPath.dirname(path);
|
|
5906
|
-
const item = sysPath.basename(path);
|
|
5965
|
+
const parent = sysPath$1.dirname(path);
|
|
5966
|
+
const item = sysPath$1.basename(path);
|
|
5907
5967
|
const watchedDir = this.fsw._getWatchedDir(
|
|
5908
5968
|
info.type === FSEVENT_TYPE_DIRECTORY ? path : parent
|
|
5909
5969
|
);
|
|
5910
5970
|
|
|
5911
5971
|
// correct for wrong events emitted
|
|
5912
5972
|
if (wrongEventFlags.has(flags) || info.event === FSEVENT_UNKNOWN) {
|
|
5913
|
-
if (typeof opts.ignored === FUNCTION_TYPE) {
|
|
5973
|
+
if (typeof opts.ignored === FUNCTION_TYPE$1) {
|
|
5914
5974
|
let stats;
|
|
5915
5975
|
try {
|
|
5916
|
-
stats = await stat$
|
|
5976
|
+
stats = await stat$1(path);
|
|
5917
5977
|
} catch (error) {}
|
|
5918
5978
|
if (this.fsw.closed) return;
|
|
5919
5979
|
if (this.checkIgnored(path, stats)) return;
|
|
5920
5980
|
if (sameTypes(info, stats)) {
|
|
5921
5981
|
this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts);
|
|
5922
5982
|
} else {
|
|
5923
|
-
this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts);
|
|
5983
|
+
this.handleEvent(EV_UNLINK$1, path, fullPath, realPath, parent, watchedDir, item, info, opts);
|
|
5924
5984
|
}
|
|
5925
5985
|
} else {
|
|
5926
5986
|
this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts);
|
|
@@ -5964,7 +6024,7 @@ async _handleFsEventsSymlink(linkPath, fullPath, transform, curDepth) {
|
|
|
5964
6024
|
this.fsw._incrReadyCount();
|
|
5965
6025
|
|
|
5966
6026
|
try {
|
|
5967
|
-
const linkTarget = await realpath
|
|
6027
|
+
const linkTarget = await realpath(linkPath);
|
|
5968
6028
|
if (this.fsw.closed) return;
|
|
5969
6029
|
if (this.fsw._isIgnored(linkTarget)) {
|
|
5970
6030
|
return this.fsw._emitReady();
|
|
@@ -5979,7 +6039,7 @@ async _handleFsEventsSymlink(linkPath, fullPath, transform, curDepth) {
|
|
|
5979
6039
|
if (linkTarget && linkTarget !== DOT_SLASH) {
|
|
5980
6040
|
aliasedPath = path.replace(linkTarget, linkPath);
|
|
5981
6041
|
} else if (path !== DOT_SLASH) {
|
|
5982
|
-
aliasedPath = sysPath.join(linkPath, path);
|
|
6042
|
+
aliasedPath = sysPath$1.join(linkPath, path);
|
|
5983
6043
|
}
|
|
5984
6044
|
return transform(aliasedPath);
|
|
5985
6045
|
}, false, curDepth);
|
|
@@ -5998,8 +6058,8 @@ async _handleFsEventsSymlink(linkPath, fullPath, transform, curDepth) {
|
|
|
5998
6058
|
emitAdd(newPath, stats, processPath, opts, forceAdd) {
|
|
5999
6059
|
const pp = processPath(newPath);
|
|
6000
6060
|
const isDir = stats.isDirectory();
|
|
6001
|
-
const dirObj = this.fsw._getWatchedDir(sysPath.dirname(pp));
|
|
6002
|
-
const base = sysPath.basename(pp);
|
|
6061
|
+
const dirObj = this.fsw._getWatchedDir(sysPath$1.dirname(pp));
|
|
6062
|
+
const base = sysPath$1.basename(pp);
|
|
6003
6063
|
|
|
6004
6064
|
// ensure empty dirs get tracked
|
|
6005
6065
|
if (isDir) this.fsw._getWatchedDir(pp);
|
|
@@ -6015,7 +6075,7 @@ initWatch(realPath, path, wh, processPath) {
|
|
|
6015
6075
|
if (this.fsw.closed) return;
|
|
6016
6076
|
const closer = this._watchWithFsEvents(
|
|
6017
6077
|
wh.watchPath,
|
|
6018
|
-
sysPath.resolve(realPath || wh.watchPath),
|
|
6078
|
+
sysPath$1.resolve(realPath || wh.watchPath),
|
|
6019
6079
|
processPath,
|
|
6020
6080
|
wh.globFilter
|
|
6021
6081
|
);
|
|
@@ -6035,13 +6095,13 @@ async _addToFsEvents(path, transform, forceAdd, priorDepth) {
|
|
|
6035
6095
|
return;
|
|
6036
6096
|
}
|
|
6037
6097
|
const opts = this.fsw.options;
|
|
6038
|
-
const processPath = typeof transform === FUNCTION_TYPE ? transform : IDENTITY_FN;
|
|
6098
|
+
const processPath = typeof transform === FUNCTION_TYPE$1 ? transform : IDENTITY_FN;
|
|
6039
6099
|
|
|
6040
6100
|
const wh = this.fsw._getWatchHelpers(path);
|
|
6041
6101
|
|
|
6042
6102
|
// evaluate what is at the path we're being asked to watch
|
|
6043
6103
|
try {
|
|
6044
|
-
const stats = await statMethods
|
|
6104
|
+
const stats = await statMethods[wh.statMethod](wh.watchPath);
|
|
6045
6105
|
if (this.fsw.closed) return;
|
|
6046
6106
|
if (this.fsw._isIgnored(wh.watchPath, stats)) {
|
|
6047
6107
|
throw null;
|
|
@@ -6058,21 +6118,21 @@ async _addToFsEvents(path, transform, forceAdd, priorDepth) {
|
|
|
6058
6118
|
fileFilter: entry => wh.filterPath(entry),
|
|
6059
6119
|
directoryFilter: entry => wh.filterDir(entry),
|
|
6060
6120
|
...Depth(opts.depth - (priorDepth || 0))
|
|
6061
|
-
}).on(STR_DATA
|
|
6121
|
+
}).on(STR_DATA, (entry) => {
|
|
6062
6122
|
// need to check filterPath on dirs b/c filterDir is less restrictive
|
|
6063
6123
|
if (this.fsw.closed) {
|
|
6064
6124
|
return;
|
|
6065
6125
|
}
|
|
6066
6126
|
if (entry.stats.isDirectory() && !wh.filterPath(entry)) return;
|
|
6067
6127
|
|
|
6068
|
-
const joinedPath = sysPath.join(wh.watchPath, entry.path);
|
|
6128
|
+
const joinedPath = sysPath$1.join(wh.watchPath, entry.path);
|
|
6069
6129
|
const {fullPath} = entry;
|
|
6070
6130
|
|
|
6071
6131
|
if (wh.followSymlinks && entry.stats.isSymbolicLink()) {
|
|
6072
6132
|
// preserve the current depth here since it can't be derived from
|
|
6073
6133
|
// real paths past the symlink
|
|
6074
6134
|
const curDepth = opts.depth === undefined ?
|
|
6075
|
-
undefined : calcDepth(joinedPath, sysPath.resolve(wh.watchPath)) + 1;
|
|
6135
|
+
undefined : calcDepth(joinedPath, sysPath$1.resolve(wh.watchPath)) + 1;
|
|
6076
6136
|
|
|
6077
6137
|
this._handleFsEventsSymlink(joinedPath, fullPath, processPath, curDepth);
|
|
6078
6138
|
} else {
|
|
@@ -6094,13 +6154,13 @@ async _addToFsEvents(path, transform, forceAdd, priorDepth) {
|
|
|
6094
6154
|
}
|
|
6095
6155
|
|
|
6096
6156
|
if (opts.persistent && forceAdd !== true) {
|
|
6097
|
-
if (typeof transform === FUNCTION_TYPE) {
|
|
6157
|
+
if (typeof transform === FUNCTION_TYPE$1) {
|
|
6098
6158
|
// realpath has already been resolved
|
|
6099
6159
|
this.initWatch(undefined, path, wh, processPath);
|
|
6100
6160
|
} else {
|
|
6101
6161
|
let realPath;
|
|
6102
6162
|
try {
|
|
6103
|
-
realPath = await realpath
|
|
6163
|
+
realPath = await realpath(wh.watchPath);
|
|
6104
6164
|
} catch (e) {}
|
|
6105
6165
|
this.initWatch(realPath, path, wh, processPath);
|
|
6106
6166
|
}
|
|
@@ -6109,36 +6169,35 @@ async _addToFsEvents(path, transform, forceAdd, priorDepth) {
|
|
|
6109
6169
|
|
|
6110
6170
|
}
|
|
6111
6171
|
|
|
6112
|
-
|
|
6113
|
-
|
|
6114
|
-
|
|
6115
|
-
|
|
6116
|
-
const
|
|
6117
|
-
|
|
6118
|
-
|
|
6119
|
-
const
|
|
6120
|
-
|
|
6121
|
-
const
|
|
6122
|
-
|
|
6123
|
-
|
|
6124
|
-
|
|
6125
|
-
|
|
6126
|
-
|
|
6127
|
-
|
|
6128
|
-
|
|
6172
|
+
fseventsHandler.exports = FsEventsHandler$1;
|
|
6173
|
+
fseventsHandler.exports.canUse = canUse;
|
|
6174
|
+
|
|
6175
|
+
const { EventEmitter } = require$$0$3;
|
|
6176
|
+
const fs = fs$4;
|
|
6177
|
+
const sysPath = require$$0$2;
|
|
6178
|
+
const { promisify } = require$$0$1;
|
|
6179
|
+
const readdirp = readdirp_1;
|
|
6180
|
+
const anymatch = anymatch$2.exports.default;
|
|
6181
|
+
const globParent = globParent$1;
|
|
6182
|
+
const isGlob = isGlob$2;
|
|
6183
|
+
const braces = braces_1;
|
|
6184
|
+
const normalizePath = normalizePath$2;
|
|
6185
|
+
|
|
6186
|
+
const NodeFsHandler = nodefsHandler;
|
|
6187
|
+
const FsEventsHandler = fseventsHandler.exports;
|
|
6129
6188
|
const {
|
|
6130
6189
|
EV_ALL,
|
|
6131
6190
|
EV_READY,
|
|
6132
|
-
EV_ADD
|
|
6133
|
-
EV_CHANGE
|
|
6134
|
-
EV_UNLINK
|
|
6135
|
-
EV_ADD_DIR
|
|
6191
|
+
EV_ADD,
|
|
6192
|
+
EV_CHANGE,
|
|
6193
|
+
EV_UNLINK,
|
|
6194
|
+
EV_ADD_DIR,
|
|
6136
6195
|
EV_UNLINK_DIR,
|
|
6137
6196
|
EV_RAW,
|
|
6138
|
-
EV_ERROR
|
|
6197
|
+
EV_ERROR,
|
|
6139
6198
|
|
|
6140
6199
|
STR_CLOSE,
|
|
6141
|
-
STR_END
|
|
6200
|
+
STR_END,
|
|
6142
6201
|
|
|
6143
6202
|
BACK_SLASH_RE,
|
|
6144
6203
|
DOUBLE_SLASH_RE,
|
|
@@ -6148,24 +6207,24 @@ const {
|
|
|
6148
6207
|
|
|
6149
6208
|
SLASH,
|
|
6150
6209
|
SLASH_SLASH,
|
|
6151
|
-
BRACE_START
|
|
6152
|
-
BANG
|
|
6210
|
+
BRACE_START,
|
|
6211
|
+
BANG,
|
|
6153
6212
|
ONE_DOT,
|
|
6154
6213
|
TWO_DOTS,
|
|
6155
6214
|
GLOBSTAR,
|
|
6156
6215
|
SLASH_GLOBSTAR,
|
|
6157
6216
|
ANYMATCH_OPTS,
|
|
6158
6217
|
STRING_TYPE,
|
|
6159
|
-
FUNCTION_TYPE
|
|
6160
|
-
EMPTY_STR
|
|
6161
|
-
EMPTY_FN
|
|
6218
|
+
FUNCTION_TYPE,
|
|
6219
|
+
EMPTY_STR,
|
|
6220
|
+
EMPTY_FN,
|
|
6162
6221
|
|
|
6163
|
-
isWindows
|
|
6222
|
+
isWindows,
|
|
6164
6223
|
isMacos
|
|
6165
|
-
} = constants
|
|
6224
|
+
} = constants;
|
|
6166
6225
|
|
|
6167
|
-
const stat
|
|
6168
|
-
const readdir
|
|
6226
|
+
const stat = promisify(fs.stat);
|
|
6227
|
+
const readdir = promisify(fs.readdir);
|
|
6169
6228
|
|
|
6170
6229
|
/**
|
|
6171
6230
|
* @typedef {String} Path
|
|
@@ -6187,7 +6246,7 @@ const readdir$1 = promisify$3(fs.readdir);
|
|
|
6187
6246
|
* @property {Function} filterDir
|
|
6188
6247
|
*/
|
|
6189
6248
|
|
|
6190
|
-
const arrify
|
|
6249
|
+
const arrify = (value = []) => Array.isArray(value) ? value : [value];
|
|
6191
6250
|
const flatten = (list, result = []) => {
|
|
6192
6251
|
list.forEach(item => {
|
|
6193
6252
|
if (Array.isArray(item)) {
|
|
@@ -6203,7 +6262,7 @@ const unifyPaths = (paths_) => {
|
|
|
6203
6262
|
/**
|
|
6204
6263
|
* @type {Array<String>}
|
|
6205
6264
|
*/
|
|
6206
|
-
const paths = flatten(arrify
|
|
6265
|
+
const paths = flatten(arrify(paths_));
|
|
6207
6266
|
if (!paths.every(p => typeof p === STRING_TYPE)) {
|
|
6208
6267
|
throw new TypeError(`Non-string provided as watch path: ${paths}`);
|
|
6209
6268
|
}
|
|
@@ -6231,7 +6290,7 @@ const toUnix = (string) => {
|
|
|
6231
6290
|
// TODO: this is not equal to path-normalize module - investigate why
|
|
6232
6291
|
const normalizePathToUnix = (path) => toUnix(sysPath.normalize(toUnix(path)));
|
|
6233
6292
|
|
|
6234
|
-
const normalizeIgnored = (cwd = EMPTY_STR
|
|
6293
|
+
const normalizeIgnored = (cwd = EMPTY_STR) => (path) => {
|
|
6235
6294
|
if (typeof path !== STRING_TYPE) return path;
|
|
6236
6295
|
return normalizePathToUnix(sysPath.isAbsolute(path) ? path : sysPath.join(cwd, path));
|
|
6237
6296
|
};
|
|
@@ -6240,8 +6299,8 @@ const getAbsolutePath = (path, cwd) => {
|
|
|
6240
6299
|
if (sysPath.isAbsolute(path)) {
|
|
6241
6300
|
return path;
|
|
6242
6301
|
}
|
|
6243
|
-
if (path.startsWith(BANG
|
|
6244
|
-
return BANG
|
|
6302
|
+
if (path.startsWith(BANG)) {
|
|
6303
|
+
return BANG + sysPath.join(cwd, path.slice(1));
|
|
6245
6304
|
}
|
|
6246
6305
|
return sysPath.join(cwd, path);
|
|
6247
6306
|
};
|
|
@@ -6279,7 +6338,7 @@ class DirEntry {
|
|
|
6279
6338
|
|
|
6280
6339
|
const dir = this.path;
|
|
6281
6340
|
try {
|
|
6282
|
-
await readdir
|
|
6341
|
+
await readdir(dir);
|
|
6283
6342
|
} catch (err) {
|
|
6284
6343
|
if (this._removeWatcher) {
|
|
6285
6344
|
this._removeWatcher(sysPath.dirname(dir), sysPath.basename(dir));
|
|
@@ -6316,14 +6375,14 @@ const STAT_METHOD_L = 'lstat';
|
|
|
6316
6375
|
class WatchHelper {
|
|
6317
6376
|
constructor(path, watchPath, follow, fsw) {
|
|
6318
6377
|
this.fsw = fsw;
|
|
6319
|
-
this.path = path = path.replace(REPLACER_RE, EMPTY_STR
|
|
6378
|
+
this.path = path = path.replace(REPLACER_RE, EMPTY_STR);
|
|
6320
6379
|
this.watchPath = watchPath;
|
|
6321
6380
|
this.fullWatchPath = sysPath.resolve(watchPath);
|
|
6322
6381
|
this.hasGlob = watchPath !== path;
|
|
6323
6382
|
/** @type {object|boolean} */
|
|
6324
|
-
if (path === EMPTY_STR
|
|
6383
|
+
if (path === EMPTY_STR) this.hasGlob = false;
|
|
6325
6384
|
this.globSymlink = this.hasGlob && follow ? undefined : false;
|
|
6326
|
-
this.globFilter = this.hasGlob ? anymatch
|
|
6385
|
+
this.globFilter = this.hasGlob ? anymatch(path, undefined, ANYMATCH_OPTS) : false;
|
|
6327
6386
|
this.dirParts = this.getDirParts(path);
|
|
6328
6387
|
this.dirParts.forEach((parts) => {
|
|
6329
6388
|
if (parts.length > 1) parts.pop();
|
|
@@ -6357,7 +6416,7 @@ class WatchHelper {
|
|
|
6357
6416
|
const {stats} = entry;
|
|
6358
6417
|
if (stats && stats.isSymbolicLink()) return this.filterDir(entry);
|
|
6359
6418
|
const resolvedPath = this.entryPath(entry);
|
|
6360
|
-
const matchesGlob = this.hasGlob && typeof this.globFilter === FUNCTION_TYPE
|
|
6419
|
+
const matchesGlob = this.hasGlob && typeof this.globFilter === FUNCTION_TYPE ?
|
|
6361
6420
|
this.globFilter(resolvedPath) : true;
|
|
6362
6421
|
return matchesGlob &&
|
|
6363
6422
|
this.fsw._isntIgnored(resolvedPath, stats) &&
|
|
@@ -6367,7 +6426,7 @@ class WatchHelper {
|
|
|
6367
6426
|
getDirParts(path) {
|
|
6368
6427
|
if (!this.hasGlob) return [];
|
|
6369
6428
|
const parts = [];
|
|
6370
|
-
const expandedPath = path.includes(BRACE_START
|
|
6429
|
+
const expandedPath = path.includes(BRACE_START) ? braces.expand(path) : [path];
|
|
6371
6430
|
expandedPath.forEach((path) => {
|
|
6372
6431
|
parts.push(sysPath.relative(this.watchPath, path).split(SLASH_OR_BACK_SLASH_RE));
|
|
6373
6432
|
});
|
|
@@ -6381,7 +6440,7 @@ class WatchHelper {
|
|
|
6381
6440
|
this.unmatchedGlob = !this.dirParts.some((parts) => {
|
|
6382
6441
|
return parts.every((part, i) => {
|
|
6383
6442
|
if (part === GLOBSTAR) globstar = true;
|
|
6384
|
-
return globstar || !entryParts[0][i] || anymatch
|
|
6443
|
+
return globstar || !entryParts[0][i] || anymatch(part, entryParts[0][i], ANYMATCH_OPTS);
|
|
6385
6444
|
});
|
|
6386
6445
|
});
|
|
6387
6446
|
}
|
|
@@ -6434,7 +6493,7 @@ constructor(_opts) {
|
|
|
6434
6493
|
if (undef(opts, 'useFsEvents')) opts.useFsEvents = !opts.usePolling;
|
|
6435
6494
|
|
|
6436
6495
|
// If we can't use fsevents, ensure the options reflect it's disabled.
|
|
6437
|
-
const canUseFsEvents =
|
|
6496
|
+
const canUseFsEvents = FsEventsHandler.canUse();
|
|
6438
6497
|
if (!canUseFsEvents) opts.useFsEvents = false;
|
|
6439
6498
|
|
|
6440
6499
|
// Use polling on Mac if not using fsevents.
|
|
@@ -6476,13 +6535,13 @@ constructor(_opts) {
|
|
|
6476
6535
|
if (!awf.pollInterval) awf.pollInterval = 100;
|
|
6477
6536
|
this._pendingWrites = new Map();
|
|
6478
6537
|
}
|
|
6479
|
-
if (opts.ignored) opts.ignored = arrify
|
|
6538
|
+
if (opts.ignored) opts.ignored = arrify(opts.ignored);
|
|
6480
6539
|
|
|
6481
6540
|
let readyCalls = 0;
|
|
6482
6541
|
this._emitReady = () => {
|
|
6483
6542
|
readyCalls++;
|
|
6484
6543
|
if (readyCalls >= this._readyCount) {
|
|
6485
|
-
this._emitReady = EMPTY_FN
|
|
6544
|
+
this._emitReady = EMPTY_FN;
|
|
6486
6545
|
this._readyEmitted = true;
|
|
6487
6546
|
// use process.nextTick to allow time for listener to be bound
|
|
6488
6547
|
process.nextTick(() => this.emit(EV_READY));
|
|
@@ -6494,9 +6553,9 @@ constructor(_opts) {
|
|
|
6494
6553
|
|
|
6495
6554
|
// Initialize with proper watcher.
|
|
6496
6555
|
if (opts.useFsEvents) {
|
|
6497
|
-
this._fsEventsHandler = new
|
|
6556
|
+
this._fsEventsHandler = new FsEventsHandler(this);
|
|
6498
6557
|
} else {
|
|
6499
|
-
this._nodeFsHandler = new
|
|
6558
|
+
this._nodeFsHandler = new NodeFsHandler(this);
|
|
6500
6559
|
}
|
|
6501
6560
|
|
|
6502
6561
|
// You’re frozen when your heart’s not open.
|
|
@@ -6530,7 +6589,7 @@ add(paths_, _origAdd, _internal) {
|
|
|
6530
6589
|
|
|
6531
6590
|
// set aside negated glob strings
|
|
6532
6591
|
paths = paths.filter((path) => {
|
|
6533
|
-
if (path.startsWith(BANG
|
|
6592
|
+
if (path.startsWith(BANG)) {
|
|
6534
6593
|
this._ignoredPaths.add(path.slice(1));
|
|
6535
6594
|
return false;
|
|
6536
6595
|
}
|
|
@@ -6645,7 +6704,7 @@ getWatched() {
|
|
|
6645
6704
|
|
|
6646
6705
|
emitWithAll(event, args) {
|
|
6647
6706
|
this.emit(...args);
|
|
6648
|
-
if (event !== EV_ERROR
|
|
6707
|
+
if (event !== EV_ERROR) this.emit(EV_ALL, ...args);
|
|
6649
6708
|
}
|
|
6650
6709
|
|
|
6651
6710
|
// Common helpers
|
|
@@ -6665,7 +6724,7 @@ async _emit(event, path, val1, val2, val3) {
|
|
|
6665
6724
|
if (this.closed) return;
|
|
6666
6725
|
|
|
6667
6726
|
const opts = this.options;
|
|
6668
|
-
if (isWindows
|
|
6727
|
+
if (isWindows) path = sysPath.normalize(path);
|
|
6669
6728
|
if (opts.cwd) path = sysPath.relative(opts.cwd, path);
|
|
6670
6729
|
/** @type Array<any> */
|
|
6671
6730
|
const args = [event, path];
|
|
@@ -6681,7 +6740,7 @@ async _emit(event, path, val1, val2, val3) {
|
|
|
6681
6740
|
}
|
|
6682
6741
|
|
|
6683
6742
|
if (opts.atomic) {
|
|
6684
|
-
if (event === EV_UNLINK
|
|
6743
|
+
if (event === EV_UNLINK) {
|
|
6685
6744
|
this._pendingUnlinks.set(path, args);
|
|
6686
6745
|
setTimeout(() => {
|
|
6687
6746
|
this._pendingUnlinks.forEach((entry, path) => {
|
|
@@ -6692,16 +6751,16 @@ async _emit(event, path, val1, val2, val3) {
|
|
|
6692
6751
|
}, typeof opts.atomic === 'number' ? opts.atomic : 100);
|
|
6693
6752
|
return this;
|
|
6694
6753
|
}
|
|
6695
|
-
if (event === EV_ADD
|
|
6696
|
-
event = args[0] = EV_CHANGE
|
|
6754
|
+
if (event === EV_ADD && this._pendingUnlinks.has(path)) {
|
|
6755
|
+
event = args[0] = EV_CHANGE;
|
|
6697
6756
|
this._pendingUnlinks.delete(path);
|
|
6698
6757
|
}
|
|
6699
6758
|
}
|
|
6700
6759
|
|
|
6701
|
-
if (awf && (event === EV_ADD
|
|
6760
|
+
if (awf && (event === EV_ADD || event === EV_CHANGE) && this._readyEmitted) {
|
|
6702
6761
|
const awfEmit = (err, stats) => {
|
|
6703
6762
|
if (err) {
|
|
6704
|
-
event = args[0] = EV_ERROR
|
|
6763
|
+
event = args[0] = EV_ERROR;
|
|
6705
6764
|
args[1] = err;
|
|
6706
6765
|
this.emitWithAll(event, args);
|
|
6707
6766
|
} else if (stats) {
|
|
@@ -6719,18 +6778,18 @@ async _emit(event, path, val1, val2, val3) {
|
|
|
6719
6778
|
return this;
|
|
6720
6779
|
}
|
|
6721
6780
|
|
|
6722
|
-
if (event === EV_CHANGE
|
|
6723
|
-
const isThrottled = !this._throttle(EV_CHANGE
|
|
6781
|
+
if (event === EV_CHANGE) {
|
|
6782
|
+
const isThrottled = !this._throttle(EV_CHANGE, path, 50);
|
|
6724
6783
|
if (isThrottled) return this;
|
|
6725
6784
|
}
|
|
6726
6785
|
|
|
6727
6786
|
if (opts.alwaysStat && val1 === undefined &&
|
|
6728
|
-
(event === EV_ADD
|
|
6787
|
+
(event === EV_ADD || event === EV_ADD_DIR || event === EV_CHANGE)
|
|
6729
6788
|
) {
|
|
6730
6789
|
const fullPath = opts.cwd ? sysPath.join(opts.cwd, path) : path;
|
|
6731
6790
|
let stats;
|
|
6732
6791
|
try {
|
|
6733
|
-
stats = await stat
|
|
6792
|
+
stats = await stat(fullPath);
|
|
6734
6793
|
} catch (err) {}
|
|
6735
6794
|
// Suppress event when fs_stat fails, to avoid sending undefined 'stat'
|
|
6736
6795
|
if (!stats || this.closed) return;
|
|
@@ -6751,7 +6810,7 @@ _handleError(error) {
|
|
|
6751
6810
|
if (error && code !== 'ENOENT' && code !== 'ENOTDIR' &&
|
|
6752
6811
|
(!this.options.ignorePermissionErrors || (code !== 'EPERM' && code !== 'EACCES'))
|
|
6753
6812
|
) {
|
|
6754
|
-
this.emit(EV_ERROR
|
|
6813
|
+
this.emit(EV_ERROR, error);
|
|
6755
6814
|
}
|
|
6756
6815
|
return error || this.closed;
|
|
6757
6816
|
}
|
|
@@ -6876,11 +6935,11 @@ _isIgnored(path, stats) {
|
|
|
6876
6935
|
const ign = this.options.ignored;
|
|
6877
6936
|
|
|
6878
6937
|
const ignored = ign && ign.map(normalizeIgnored(cwd));
|
|
6879
|
-
const paths = arrify
|
|
6938
|
+
const paths = arrify(ignored)
|
|
6880
6939
|
.filter((path) => typeof path === STRING_TYPE && !isGlob(path))
|
|
6881
6940
|
.map((path) => path + SLASH_GLOBSTAR);
|
|
6882
6941
|
const list = this._getGlobIgnored().map(normalizeIgnored(cwd)).concat(ignored, paths);
|
|
6883
|
-
this._userIgnored = anymatch
|
|
6942
|
+
this._userIgnored = anymatch(list, undefined, ANYMATCH_OPTS);
|
|
6884
6943
|
}
|
|
6885
6944
|
|
|
6886
6945
|
return this._userIgnored([path, stats]);
|
|
@@ -6991,14 +7050,14 @@ _remove(directory, item, isDirectory) {
|
|
|
6991
7050
|
if (this.options.cwd) relPath = sysPath.relative(this.options.cwd, path);
|
|
6992
7051
|
if (this.options.awaitWriteFinish && this._pendingWrites.has(relPath)) {
|
|
6993
7052
|
const event = this._pendingWrites.get(relPath).cancelWait();
|
|
6994
|
-
if (event === EV_ADD
|
|
7053
|
+
if (event === EV_ADD) return;
|
|
6995
7054
|
}
|
|
6996
7055
|
|
|
6997
7056
|
// The Entry will either be a directory that just got removed
|
|
6998
7057
|
// or a bogus entry to a file, in either case we have to remove it
|
|
6999
7058
|
this._watched.delete(path);
|
|
7000
7059
|
this._watched.delete(fullPath);
|
|
7001
|
-
const eventName = isDirectory ? EV_UNLINK_DIR : EV_UNLINK
|
|
7060
|
+
const eventName = isDirectory ? EV_UNLINK_DIR : EV_UNLINK;
|
|
7002
7061
|
if (wasTracked && !this._isIgnored(path)) this._emit(eventName, path);
|
|
7003
7062
|
|
|
7004
7063
|
// Avoid conflicts if we later create another file with the same name
|
|
@@ -7046,12 +7105,12 @@ _addPathCloser(path, closer) {
|
|
|
7046
7105
|
_readdirp(root, opts) {
|
|
7047
7106
|
if (this.closed) return;
|
|
7048
7107
|
const options = {type: EV_ALL, alwaysStat: true, lstat: true, ...opts};
|
|
7049
|
-
let stream =
|
|
7108
|
+
let stream = readdirp(root, options);
|
|
7050
7109
|
this._streams.add(stream);
|
|
7051
7110
|
stream.once(STR_CLOSE, () => {
|
|
7052
7111
|
stream = undefined;
|
|
7053
7112
|
});
|
|
7054
|
-
stream.once(STR_END
|
|
7113
|
+
stream.once(STR_END, () => {
|
|
7055
7114
|
if (stream) {
|
|
7056
7115
|
this._streams.delete(stream);
|
|
7057
7116
|
stream = undefined;
|
|
@@ -7063,7 +7122,7 @@ _readdirp(root, opts) {
|
|
|
7063
7122
|
}
|
|
7064
7123
|
|
|
7065
7124
|
// Export FSWatcher class
|
|
7066
|
-
|
|
7125
|
+
chokidar.FSWatcher = FSWatcher;
|
|
7067
7126
|
|
|
7068
7127
|
/**
|
|
7069
7128
|
* Instantiates watcher with paths to be tracked.
|
|
@@ -7077,12 +7136,7 @@ const watch = (paths, options) => {
|
|
|
7077
7136
|
return watcher;
|
|
7078
7137
|
};
|
|
7079
7138
|
|
|
7080
|
-
|
|
7081
|
-
|
|
7082
|
-
var chokidar = {
|
|
7083
|
-
FSWatcher: FSWatcher_1,
|
|
7084
|
-
watch: watch_1
|
|
7085
|
-
};
|
|
7139
|
+
chokidar.watch = watch;
|
|
7086
7140
|
|
|
7087
7141
|
class FileWatcher {
|
|
7088
7142
|
constructor(task, chokidarOptions) {
|