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.
@@ -1,23 +1,25 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v2.38.4
4
- Tue, 02 Feb 2021 05:54:38 GMT - commit 991bb98fad1f3f76226bfe6243fd6cc45a19a39b
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 sysPath, { sep, resolve } from 'path';
12
- import util from 'util';
13
- import { createCommonjsModule, defaultOnWarn, ensureArray as ensureArray$1, warnUnknownOptions, getAugmentedNamespace, fseventsImporter, rollupInternal } from './rollup.js';
14
- import require$$0$2 from 'events';
15
- import fs from 'fs';
16
- import require$$0$1 from 'stream';
17
- import require$$1$1, { platform } from 'os';
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 = createCommonjsModule(function (module, exports) {
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
- const toRegexRange = (min, max, options) => {
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$1 = num => Number.isInteger(+num);
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$1 = (start, end, options) => {
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 toRegexRange_1(a, b, { wrap: false, ...options });
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 toRegexRange_1(start, end, options);
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$1(start, end, options) === false;
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$1(start) && start.length > 1) || (!isNumber$1(end) && end.length > 1)) {
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$1(step)) {
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$1(start) && isNumber$1(end)) {
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 = fillRange(...args, { ...options, wrap: false, toRegex: true });
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 = fillRange(...args, options);
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 = {}) => parse_1(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 compile_1(input, options);
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 = expand_1(input, options);
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$1 = {
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: sysPath.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
- var utils$1 = createCommonjsModule(function (module, exports) {
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$1;
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 || sysPath.sep === '\\';
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: CHAR_COMMA$1, /* , */
1670
- CHAR_DOT: CHAR_DOT$1, /* . */
1691
+ CHAR_COMMA, /* , */
1692
+ CHAR_DOT, /* . */
1671
1693
  CHAR_EXCLAMATION_MARK, /* ! */
1672
1694
  CHAR_FORWARD_SLASH, /* / */
1673
- CHAR_LEFT_CURLY_BRACE: CHAR_LEFT_CURLY_BRACE$1, /* { */
1674
- CHAR_LEFT_PARENTHESES: CHAR_LEFT_PARENTHESES$1, /* ( */
1675
- CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$1, /* [ */
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: CHAR_RIGHT_CURLY_BRACE$1, /* } */
1679
- CHAR_RIGHT_PARENTHESES: CHAR_RIGHT_PARENTHESES$1, /* ) */
1680
- CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$1 /* ] */
1681
- } = constants$1;
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$1) {
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$1) {
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$1) {
1789
+ if (code === CHAR_LEFT_CURLY_BRACE) {
1768
1790
  braces++;
1769
1791
  continue;
1770
1792
  }
1771
1793
 
1772
- if (braceEscaped !== true && code === CHAR_DOT$1 && (code = advance()) === CHAR_DOT$1) {
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$1) {
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$1) {
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$1 && index === (start + 1)) {
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$1) {
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$1) {
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$1) {
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$1) {
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$1) {
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$1) {
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$1) {
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$1.removeBackslashes(glob);
1996
+ if (glob) glob = utils$3.removeBackslashes(glob);
1975
1997
 
1976
1998
  if (base && backslashes === true) {
1977
- base = utils$1.removeBackslashes(base);
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: MAX_LENGTH$1,
2052
- POSIX_REGEX_SOURCE: POSIX_REGEX_SOURCE$1,
2076
+ MAX_LENGTH,
2077
+ POSIX_REGEX_SOURCE,
2053
2078
  REGEX_NON_SPECIAL_CHARS,
2054
2079
  REGEX_SPECIAL_CHARS_BACKREF,
2055
2080
  REPLACEMENTS
2056
- } = constants$1;
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$1, opts.maxLength) : MAX_LENGTH$1;
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$1.isWindows(options);
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$1.globChars(win32);
2111
- const EXTGLOB_CHARS = constants$1.extglobChars(PLATFORM_CHARS);
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$1.removePrefix(input, state);
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$1.wrapOutput(output, state, options);
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$1[rest];
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$1.escapeRegex(value);
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$1.hasRegexChars(prevValue)) {
2571
+ if (opts.literalBrackets === false || utils$2.hasRegexChars(prevValue)) {
2547
2572
  continue;
2548
2573
  }
2549
2574
 
2550
- const escaped = utils$1.escapeRegex(prev.value);
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$1.supportsLookbehinds()) {
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$1.escapeLast(state.output, '[');
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$1.escapeLast(state.output, '(');
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$1.escapeLast(state.output, '{');
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$1, opts.maxLength) : MAX_LENGTH$1;
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$1.isWindows(options);
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$1.globChars(win32);
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$1.removePrefix(input, state);
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$1 = parse$1;
3136
+ var parse_1 = parse$1;
3112
3137
 
3113
- const isObject$1 = val => val && typeof val === 'object' && !Array.isArray(val);
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$1(glob) && glob.tokens && glob.input;
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(sysPath.basename(input));
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 parse_1$1(pattern, { ...options, fastpaths: false });
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) => scan_1(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 = parse_1$1.fastpaths(input, options);
3423
+ output = parse.fastpaths(input, options);
3394
3424
  }
3395
3425
 
3396
3426
  if (output === undefined) {
3397
- parsed = parse_1$1(input, options);
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$1 = picomatch_1;
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$1(String(patterns[i]), { ...options, onResult }, true);
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$1(pattern, options);
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$1(patterns, options)(str);
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$1.isObject(obj)) {
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$1(String(pattern), options);
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$1(String(pattern), options);
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$1(p, options)(str));
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$1.isWindows(options);
3804
- let regex = picomatch$1.makeRe(String(glob), { ...options, capture: true });
3805
- let match = regex.exec(posix ? utils$1.toPosixSlashes(input) : input);
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$1.makeRe(...args);
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$1.scan(...args);
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 braces_1(String(pattern), options)) {
3864
- res.push(picomatch$1.parse(str, options));
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 braces_1(pattern, options);
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
- const { Readable } = require$$0$1;
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 readdirp_1 = readdirp;
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
- var normalizePath = function(path, stripTrailing) {
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$1(matcher, options);
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$1(item, opts));
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
- var anymatch_1 = anymatch;
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
- var isExtglob = function isExtglob(str) {
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 pathPosixDirname = sysPath.posix.dirname;
4590
- var isWin32 = require$$1$1.platform() === 'win32';
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(sysPath.extname(filePath).slice(1).toLowerCase());
4945
+ var isBinaryPath$1 = filePath => extensions.has(path.extname(filePath).slice(1).toLowerCase());
4894
4946
 
4895
- var constants$2 = createCommonjsModule(function (module, exports) {
4947
+ var constants = {};
4896
4948
 
4897
- const {sep} = sysPath;
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: STAR$1
4979
- } = constants$2;
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$1(fs.open);
4984
- const stat$1 = promisify$1(fs.stat);
4985
- const lstat$1 = promisify$1(fs.lstat);
4986
- const close = promisify$1(fs.close);
4987
- const fsrealpath = promisify$1(fs.realpath);
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$1 };
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$1(file);
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$1) && !path.includes(BRACE_START);
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$$1 = /*@__PURE__*/getAugmentedNamespace(fseventsImporter);
5651
+ var require$$3 = /*@__PURE__*/getAugmentedNamespace(fseventsImporter);
5594
5652
 
5595
- const { promisify: promisify$2 } = util;
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$$1.getFsEvents();
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: STR_DATA$1,
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$2;
5700
+ } = constants;
5641
5701
 
5642
5702
  const Depth = (value) => isNaN(value) ? {} : {depth: value};
5643
5703
 
5644
- const stat$2 = promisify$2(fs.stat);
5645
- const lstat$2 = promisify$2(fs.lstat);
5646
- const realpath$1 = promisify$2(fs.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$1 = { stat: stat$2, lstat: lstat$2 };
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$2(path);
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$2(path);
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$1(linkPath);
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$1[wh.statMethod](wh.watchPath);
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$1, (entry) => {
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$1(wh.watchPath);
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
- var fseventsHandler = FsEventsHandler;
6113
- var canUse_1 = canUse;
6114
- fseventsHandler.canUse = canUse_1;
6115
-
6116
- const { EventEmitter } = require$$0$2;
6117
-
6118
-
6119
- const { promisify: promisify$3 } = util;
6120
-
6121
- const anymatch$1 = anymatch_1.default;
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: EV_ADD$2,
6133
- EV_CHANGE: EV_CHANGE$2,
6134
- EV_UNLINK: EV_UNLINK$1,
6135
- EV_ADD_DIR: EV_ADD_DIR$2,
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: EV_ERROR$2,
6197
+ EV_ERROR,
6139
6198
 
6140
6199
  STR_CLOSE,
6141
- STR_END: STR_END$2,
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: BRACE_START$1,
6152
- BANG: BANG$2,
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: FUNCTION_TYPE$1,
6160
- EMPTY_STR: EMPTY_STR$1,
6161
- EMPTY_FN: EMPTY_FN$2,
6218
+ FUNCTION_TYPE,
6219
+ EMPTY_STR,
6220
+ EMPTY_FN,
6162
6221
 
6163
- isWindows: isWindows$1,
6222
+ isWindows,
6164
6223
  isMacos
6165
- } = constants$2;
6224
+ } = constants;
6166
6225
 
6167
- const stat$3 = promisify$3(fs.stat);
6168
- const readdir$1 = promisify$3(fs.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$1 = (value = []) => Array.isArray(value) ? value : [value];
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$1(paths_));
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$1) => (path) => {
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$2)) {
6244
- return BANG$2 + sysPath.join(cwd, path.slice(1));
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$1(dir);
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$1);
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$1) this.hasGlob = false;
6383
+ if (path === EMPTY_STR) this.hasGlob = false;
6325
6384
  this.globSymlink = this.hasGlob && follow ? undefined : false;
6326
- this.globFilter = this.hasGlob ? anymatch$1(path, undefined, ANYMATCH_OPTS) : false;
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$1 ?
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$1) ? braces_1.expand(path) : [path];
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$1(part, entryParts[0][i], ANYMATCH_OPTS);
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 = fseventsHandler.canUse();
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$1(opts.ignored);
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$2;
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 fseventsHandler(this);
6556
+ this._fsEventsHandler = new FsEventsHandler(this);
6498
6557
  } else {
6499
- this._nodeFsHandler = new nodefsHandler(this);
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$2)) {
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$2) this.emit(EV_ALL, ...args);
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$1) path = sysPath.normalize(path);
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$1) {
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$2 && this._pendingUnlinks.has(path)) {
6696
- event = args[0] = EV_CHANGE$2;
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$2 || event === EV_CHANGE$2) && this._readyEmitted) {
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$2;
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$2) {
6723
- const isThrottled = !this._throttle(EV_CHANGE$2, path, 50);
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$2 || event === EV_ADD_DIR$2 || event === EV_CHANGE$2)
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$3(fullPath);
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$2, 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$1(ignored)
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$1(list, undefined, ANYMATCH_OPTS);
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$2) return;
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$1;
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 = readdirp_1(root, options);
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$2, () => {
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
- var FSWatcher_1 = FSWatcher;
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
- var watch_1 = watch;
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) {