@dropthis/cli 0.1.5

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.
Files changed (236) hide show
  1. package/README.md +171 -0
  2. package/dist/cli.cjs +1489 -0
  3. package/dist/cli.cjs.map +1 -0
  4. package/node_modules/@dropthis/node/README.md +90 -0
  5. package/node_modules/@dropthis/node/dist/index.cjs +1010 -0
  6. package/node_modules/@dropthis/node/dist/index.cjs.map +1 -0
  7. package/node_modules/@dropthis/node/dist/index.d.cts +408 -0
  8. package/node_modules/@dropthis/node/dist/index.d.ts +408 -0
  9. package/node_modules/@dropthis/node/dist/index.mjs +969 -0
  10. package/node_modules/@dropthis/node/dist/index.mjs.map +1 -0
  11. package/node_modules/@dropthis/node/package.json +55 -0
  12. package/node_modules/@nodelib/fs.scandir/LICENSE +21 -0
  13. package/node_modules/@nodelib/fs.scandir/README.md +171 -0
  14. package/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts +20 -0
  15. package/node_modules/@nodelib/fs.scandir/out/adapters/fs.js +19 -0
  16. package/node_modules/@nodelib/fs.scandir/out/constants.d.ts +4 -0
  17. package/node_modules/@nodelib/fs.scandir/out/constants.js +17 -0
  18. package/node_modules/@nodelib/fs.scandir/out/index.d.ts +12 -0
  19. package/node_modules/@nodelib/fs.scandir/out/index.js +26 -0
  20. package/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts +7 -0
  21. package/node_modules/@nodelib/fs.scandir/out/providers/async.js +104 -0
  22. package/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts +1 -0
  23. package/node_modules/@nodelib/fs.scandir/out/providers/common.js +13 -0
  24. package/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts +5 -0
  25. package/node_modules/@nodelib/fs.scandir/out/providers/sync.js +54 -0
  26. package/node_modules/@nodelib/fs.scandir/out/settings.d.ts +20 -0
  27. package/node_modules/@nodelib/fs.scandir/out/settings.js +24 -0
  28. package/node_modules/@nodelib/fs.scandir/out/types/index.d.ts +20 -0
  29. package/node_modules/@nodelib/fs.scandir/out/types/index.js +2 -0
  30. package/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts +2 -0
  31. package/node_modules/@nodelib/fs.scandir/out/utils/fs.js +19 -0
  32. package/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts +2 -0
  33. package/node_modules/@nodelib/fs.scandir/out/utils/index.js +5 -0
  34. package/node_modules/@nodelib/fs.scandir/package.json +44 -0
  35. package/node_modules/@nodelib/fs.stat/LICENSE +21 -0
  36. package/node_modules/@nodelib/fs.stat/README.md +126 -0
  37. package/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts +13 -0
  38. package/node_modules/@nodelib/fs.stat/out/adapters/fs.js +17 -0
  39. package/node_modules/@nodelib/fs.stat/out/index.d.ts +12 -0
  40. package/node_modules/@nodelib/fs.stat/out/index.js +26 -0
  41. package/node_modules/@nodelib/fs.stat/out/providers/async.d.ts +4 -0
  42. package/node_modules/@nodelib/fs.stat/out/providers/async.js +36 -0
  43. package/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts +3 -0
  44. package/node_modules/@nodelib/fs.stat/out/providers/sync.js +23 -0
  45. package/node_modules/@nodelib/fs.stat/out/settings.d.ts +16 -0
  46. package/node_modules/@nodelib/fs.stat/out/settings.js +16 -0
  47. package/node_modules/@nodelib/fs.stat/out/types/index.d.ts +4 -0
  48. package/node_modules/@nodelib/fs.stat/out/types/index.js +2 -0
  49. package/node_modules/@nodelib/fs.stat/package.json +37 -0
  50. package/node_modules/@nodelib/fs.walk/LICENSE +21 -0
  51. package/node_modules/@nodelib/fs.walk/README.md +215 -0
  52. package/node_modules/@nodelib/fs.walk/out/index.d.ts +14 -0
  53. package/node_modules/@nodelib/fs.walk/out/index.js +34 -0
  54. package/node_modules/@nodelib/fs.walk/out/providers/async.d.ts +12 -0
  55. package/node_modules/@nodelib/fs.walk/out/providers/async.js +30 -0
  56. package/node_modules/@nodelib/fs.walk/out/providers/index.d.ts +4 -0
  57. package/node_modules/@nodelib/fs.walk/out/providers/index.js +9 -0
  58. package/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts +12 -0
  59. package/node_modules/@nodelib/fs.walk/out/providers/stream.js +34 -0
  60. package/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts +10 -0
  61. package/node_modules/@nodelib/fs.walk/out/providers/sync.js +14 -0
  62. package/node_modules/@nodelib/fs.walk/out/readers/async.d.ts +30 -0
  63. package/node_modules/@nodelib/fs.walk/out/readers/async.js +97 -0
  64. package/node_modules/@nodelib/fs.walk/out/readers/common.d.ts +7 -0
  65. package/node_modules/@nodelib/fs.walk/out/readers/common.js +31 -0
  66. package/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts +6 -0
  67. package/node_modules/@nodelib/fs.walk/out/readers/reader.js +11 -0
  68. package/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts +15 -0
  69. package/node_modules/@nodelib/fs.walk/out/readers/sync.js +59 -0
  70. package/node_modules/@nodelib/fs.walk/out/settings.d.ts +30 -0
  71. package/node_modules/@nodelib/fs.walk/out/settings.js +26 -0
  72. package/node_modules/@nodelib/fs.walk/out/types/index.d.ts +8 -0
  73. package/node_modules/@nodelib/fs.walk/out/types/index.js +2 -0
  74. package/node_modules/@nodelib/fs.walk/package.json +44 -0
  75. package/node_modules/braces/LICENSE +21 -0
  76. package/node_modules/braces/README.md +586 -0
  77. package/node_modules/braces/index.js +170 -0
  78. package/node_modules/braces/lib/compile.js +60 -0
  79. package/node_modules/braces/lib/constants.js +57 -0
  80. package/node_modules/braces/lib/expand.js +113 -0
  81. package/node_modules/braces/lib/parse.js +331 -0
  82. package/node_modules/braces/lib/stringify.js +32 -0
  83. package/node_modules/braces/lib/utils.js +122 -0
  84. package/node_modules/braces/package.json +77 -0
  85. package/node_modules/fast-glob/LICENSE +21 -0
  86. package/node_modules/fast-glob/README.md +830 -0
  87. package/node_modules/fast-glob/out/index.d.ts +40 -0
  88. package/node_modules/fast-glob/out/index.js +102 -0
  89. package/node_modules/fast-glob/out/managers/tasks.d.ts +22 -0
  90. package/node_modules/fast-glob/out/managers/tasks.js +110 -0
  91. package/node_modules/fast-glob/out/providers/async.d.ts +9 -0
  92. package/node_modules/fast-glob/out/providers/async.js +23 -0
  93. package/node_modules/fast-glob/out/providers/filters/deep.d.ts +16 -0
  94. package/node_modules/fast-glob/out/providers/filters/deep.js +62 -0
  95. package/node_modules/fast-glob/out/providers/filters/entry.d.ts +17 -0
  96. package/node_modules/fast-glob/out/providers/filters/entry.js +85 -0
  97. package/node_modules/fast-glob/out/providers/filters/error.d.ts +8 -0
  98. package/node_modules/fast-glob/out/providers/filters/error.js +15 -0
  99. package/node_modules/fast-glob/out/providers/matchers/matcher.d.ts +33 -0
  100. package/node_modules/fast-glob/out/providers/matchers/matcher.js +45 -0
  101. package/node_modules/fast-glob/out/providers/matchers/partial.d.ts +4 -0
  102. package/node_modules/fast-glob/out/providers/matchers/partial.js +38 -0
  103. package/node_modules/fast-glob/out/providers/provider.d.ts +19 -0
  104. package/node_modules/fast-glob/out/providers/provider.js +48 -0
  105. package/node_modules/fast-glob/out/providers/stream.d.ts +11 -0
  106. package/node_modules/fast-glob/out/providers/stream.js +31 -0
  107. package/node_modules/fast-glob/out/providers/sync.d.ts +9 -0
  108. package/node_modules/fast-glob/out/providers/sync.js +23 -0
  109. package/node_modules/fast-glob/out/providers/transformers/entry.d.ts +8 -0
  110. package/node_modules/fast-glob/out/providers/transformers/entry.js +26 -0
  111. package/node_modules/fast-glob/out/readers/async.d.ts +10 -0
  112. package/node_modules/fast-glob/out/readers/async.js +35 -0
  113. package/node_modules/fast-glob/out/readers/reader.d.ts +15 -0
  114. package/node_modules/fast-glob/out/readers/reader.js +33 -0
  115. package/node_modules/fast-glob/out/readers/stream.d.ts +14 -0
  116. package/node_modules/fast-glob/out/readers/stream.js +55 -0
  117. package/node_modules/fast-glob/out/readers/sync.d.ts +12 -0
  118. package/node_modules/fast-glob/out/readers/sync.js +43 -0
  119. package/node_modules/fast-glob/out/settings.d.ts +164 -0
  120. package/node_modules/fast-glob/out/settings.js +59 -0
  121. package/node_modules/fast-glob/out/types/index.d.ts +31 -0
  122. package/node_modules/fast-glob/out/types/index.js +2 -0
  123. package/node_modules/fast-glob/out/utils/array.d.ts +2 -0
  124. package/node_modules/fast-glob/out/utils/array.js +22 -0
  125. package/node_modules/fast-glob/out/utils/errno.d.ts +2 -0
  126. package/node_modules/fast-glob/out/utils/errno.js +7 -0
  127. package/node_modules/fast-glob/out/utils/fs.d.ts +4 -0
  128. package/node_modules/fast-glob/out/utils/fs.js +19 -0
  129. package/node_modules/fast-glob/out/utils/index.d.ts +8 -0
  130. package/node_modules/fast-glob/out/utils/index.js +17 -0
  131. package/node_modules/fast-glob/out/utils/path.d.ts +13 -0
  132. package/node_modules/fast-glob/out/utils/path.js +68 -0
  133. package/node_modules/fast-glob/out/utils/pattern.d.ts +49 -0
  134. package/node_modules/fast-glob/out/utils/pattern.js +206 -0
  135. package/node_modules/fast-glob/out/utils/stream.d.ts +4 -0
  136. package/node_modules/fast-glob/out/utils/stream.js +17 -0
  137. package/node_modules/fast-glob/out/utils/string.d.ts +2 -0
  138. package/node_modules/fast-glob/out/utils/string.js +11 -0
  139. package/node_modules/fast-glob/package.json +81 -0
  140. package/node_modules/fastq/LICENSE +13 -0
  141. package/node_modules/fastq/README.md +310 -0
  142. package/node_modules/fastq/SECURITY.md +15 -0
  143. package/node_modules/fastq/bench.js +66 -0
  144. package/node_modules/fastq/eslint.config.js +11 -0
  145. package/node_modules/fastq/example.js +14 -0
  146. package/node_modules/fastq/example.mjs +9 -0
  147. package/node_modules/fastq/index.d.ts +59 -0
  148. package/node_modules/fastq/package.json +49 -0
  149. package/node_modules/fastq/queue.js +346 -0
  150. package/node_modules/fastq/test/example.ts +83 -0
  151. package/node_modules/fastq/test/promise.js +325 -0
  152. package/node_modules/fastq/test/test.js +733 -0
  153. package/node_modules/fastq/test/tsconfig.json +11 -0
  154. package/node_modules/fill-range/LICENSE +21 -0
  155. package/node_modules/fill-range/README.md +237 -0
  156. package/node_modules/fill-range/index.js +248 -0
  157. package/node_modules/fill-range/package.json +74 -0
  158. package/node_modules/glob-parent/LICENSE +15 -0
  159. package/node_modules/glob-parent/README.md +137 -0
  160. package/node_modules/glob-parent/index.js +42 -0
  161. package/node_modules/glob-parent/package.json +48 -0
  162. package/node_modules/ignore/LICENSE-MIT +21 -0
  163. package/node_modules/ignore/README.md +452 -0
  164. package/node_modules/ignore/index.d.ts +81 -0
  165. package/node_modules/ignore/index.js +784 -0
  166. package/node_modules/ignore/legacy.js +681 -0
  167. package/node_modules/ignore/package.json +87 -0
  168. package/node_modules/is-extglob/LICENSE +21 -0
  169. package/node_modules/is-extglob/README.md +107 -0
  170. package/node_modules/is-extglob/index.js +20 -0
  171. package/node_modules/is-extglob/package.json +69 -0
  172. package/node_modules/is-glob/LICENSE +21 -0
  173. package/node_modules/is-glob/README.md +206 -0
  174. package/node_modules/is-glob/index.js +150 -0
  175. package/node_modules/is-glob/package.json +81 -0
  176. package/node_modules/is-number/LICENSE +21 -0
  177. package/node_modules/is-number/README.md +187 -0
  178. package/node_modules/is-number/index.js +18 -0
  179. package/node_modules/is-number/package.json +82 -0
  180. package/node_modules/merge2/LICENSE +21 -0
  181. package/node_modules/merge2/README.md +144 -0
  182. package/node_modules/merge2/index.js +144 -0
  183. package/node_modules/merge2/package.json +43 -0
  184. package/node_modules/micromatch/LICENSE +21 -0
  185. package/node_modules/micromatch/README.md +1024 -0
  186. package/node_modules/micromatch/index.js +474 -0
  187. package/node_modules/micromatch/package.json +119 -0
  188. package/node_modules/mime-db/HISTORY.md +541 -0
  189. package/node_modules/mime-db/LICENSE +23 -0
  190. package/node_modules/mime-db/README.md +109 -0
  191. package/node_modules/mime-db/db.json +9342 -0
  192. package/node_modules/mime-db/index.js +12 -0
  193. package/node_modules/mime-db/package.json +56 -0
  194. package/node_modules/mime-types/HISTORY.md +421 -0
  195. package/node_modules/mime-types/LICENSE +23 -0
  196. package/node_modules/mime-types/README.md +126 -0
  197. package/node_modules/mime-types/index.js +211 -0
  198. package/node_modules/mime-types/mimeScore.js +52 -0
  199. package/node_modules/mime-types/package.json +45 -0
  200. package/node_modules/picomatch/LICENSE +21 -0
  201. package/node_modules/picomatch/README.md +716 -0
  202. package/node_modules/picomatch/index.js +3 -0
  203. package/node_modules/picomatch/lib/constants.js +184 -0
  204. package/node_modules/picomatch/lib/parse.js +1392 -0
  205. package/node_modules/picomatch/lib/picomatch.js +342 -0
  206. package/node_modules/picomatch/lib/scan.js +391 -0
  207. package/node_modules/picomatch/lib/utils.js +64 -0
  208. package/node_modules/picomatch/package.json +81 -0
  209. package/node_modules/queue-microtask/LICENSE +20 -0
  210. package/node_modules/queue-microtask/README.md +90 -0
  211. package/node_modules/queue-microtask/index.d.ts +2 -0
  212. package/node_modules/queue-microtask/index.js +9 -0
  213. package/node_modules/queue-microtask/package.json +55 -0
  214. package/node_modules/reusify/.github/dependabot.yml +7 -0
  215. package/node_modules/reusify/.github/workflows/ci.yml +96 -0
  216. package/node_modules/reusify/LICENSE +22 -0
  217. package/node_modules/reusify/README.md +139 -0
  218. package/node_modules/reusify/SECURITY.md +15 -0
  219. package/node_modules/reusify/benchmarks/createNoCodeFunction.js +30 -0
  220. package/node_modules/reusify/benchmarks/fib.js +13 -0
  221. package/node_modules/reusify/benchmarks/reuseNoCodeFunction.js +38 -0
  222. package/node_modules/reusify/eslint.config.js +14 -0
  223. package/node_modules/reusify/package.json +50 -0
  224. package/node_modules/reusify/reusify.d.ts +14 -0
  225. package/node_modules/reusify/reusify.js +33 -0
  226. package/node_modules/reusify/test.js +66 -0
  227. package/node_modules/reusify/tsconfig.json +11 -0
  228. package/node_modules/run-parallel/LICENSE +20 -0
  229. package/node_modules/run-parallel/README.md +85 -0
  230. package/node_modules/run-parallel/index.js +51 -0
  231. package/node_modules/run-parallel/package.json +58 -0
  232. package/node_modules/to-regex-range/LICENSE +21 -0
  233. package/node_modules/to-regex-range/README.md +305 -0
  234. package/node_modules/to-regex-range/index.js +288 -0
  235. package/node_modules/to-regex-range/package.json +88 -0
  236. package/package.json +53 -0
@@ -0,0 +1,474 @@
1
+ 'use strict';
2
+
3
+ const util = require('util');
4
+ const braces = require('braces');
5
+ const picomatch = require('picomatch');
6
+ const utils = require('picomatch/lib/utils');
7
+
8
+ const isEmptyString = v => v === '' || v === './';
9
+ const hasBraces = v => {
10
+ const index = v.indexOf('{');
11
+ return index > -1 && v.indexOf('}', index) > -1;
12
+ };
13
+
14
+ /**
15
+ * Returns an array of strings that match one or more glob patterns.
16
+ *
17
+ * ```js
18
+ * const mm = require('micromatch');
19
+ * // mm(list, patterns[, options]);
20
+ *
21
+ * console.log(mm(['a.js', 'a.txt'], ['*.js']));
22
+ * //=> [ 'a.js' ]
23
+ * ```
24
+ * @param {String|Array<string>} `list` List of strings to match.
25
+ * @param {String|Array<string>} `patterns` One or more glob patterns to use for matching.
26
+ * @param {Object} `options` See available [options](#options)
27
+ * @return {Array} Returns an array of matches
28
+ * @summary false
29
+ * @api public
30
+ */
31
+
32
+ const micromatch = (list, patterns, options) => {
33
+ patterns = [].concat(patterns);
34
+ list = [].concat(list);
35
+
36
+ let omit = new Set();
37
+ let keep = new Set();
38
+ let items = new Set();
39
+ let negatives = 0;
40
+
41
+ let onResult = state => {
42
+ items.add(state.output);
43
+ if (options && options.onResult) {
44
+ options.onResult(state);
45
+ }
46
+ };
47
+
48
+ for (let i = 0; i < patterns.length; i++) {
49
+ let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true);
50
+ let negated = isMatch.state.negated || isMatch.state.negatedExtglob;
51
+ if (negated) negatives++;
52
+
53
+ for (let item of list) {
54
+ let matched = isMatch(item, true);
55
+
56
+ let match = negated ? !matched.isMatch : matched.isMatch;
57
+ if (!match) continue;
58
+
59
+ if (negated) {
60
+ omit.add(matched.output);
61
+ } else {
62
+ omit.delete(matched.output);
63
+ keep.add(matched.output);
64
+ }
65
+ }
66
+ }
67
+
68
+ let result = negatives === patterns.length ? [...items] : [...keep];
69
+ let matches = result.filter(item => !omit.has(item));
70
+
71
+ if (options && matches.length === 0) {
72
+ if (options.failglob === true) {
73
+ throw new Error(`No matches found for "${patterns.join(', ')}"`);
74
+ }
75
+
76
+ if (options.nonull === true || options.nullglob === true) {
77
+ return options.unescape ? patterns.map(p => p.replace(/\\/g, '')) : patterns;
78
+ }
79
+ }
80
+
81
+ return matches;
82
+ };
83
+
84
+ /**
85
+ * Backwards compatibility
86
+ */
87
+
88
+ micromatch.match = micromatch;
89
+
90
+ /**
91
+ * Returns a matcher function from the given glob `pattern` and `options`.
92
+ * The returned function takes a string to match as its only argument and returns
93
+ * true if the string is a match.
94
+ *
95
+ * ```js
96
+ * const mm = require('micromatch');
97
+ * // mm.matcher(pattern[, options]);
98
+ *
99
+ * const isMatch = mm.matcher('*.!(*a)');
100
+ * console.log(isMatch('a.a')); //=> false
101
+ * console.log(isMatch('a.b')); //=> true
102
+ * ```
103
+ * @param {String} `pattern` Glob pattern
104
+ * @param {Object} `options`
105
+ * @return {Function} Returns a matcher function.
106
+ * @api public
107
+ */
108
+
109
+ micromatch.matcher = (pattern, options) => picomatch(pattern, options);
110
+
111
+ /**
112
+ * Returns true if **any** of the given glob `patterns` match the specified `string`.
113
+ *
114
+ * ```js
115
+ * const mm = require('micromatch');
116
+ * // mm.isMatch(string, patterns[, options]);
117
+ *
118
+ * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true
119
+ * console.log(mm.isMatch('a.a', 'b.*')); //=> false
120
+ * ```
121
+ * @param {String} `str` The string to test.
122
+ * @param {String|Array} `patterns` One or more glob patterns to use for matching.
123
+ * @param {Object} `[options]` See available [options](#options).
124
+ * @return {Boolean} Returns true if any patterns match `str`
125
+ * @api public
126
+ */
127
+
128
+ micromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);
129
+
130
+ /**
131
+ * Backwards compatibility
132
+ */
133
+
134
+ micromatch.any = micromatch.isMatch;
135
+
136
+ /**
137
+ * Returns a list of strings that _**do not match any**_ of the given `patterns`.
138
+ *
139
+ * ```js
140
+ * const mm = require('micromatch');
141
+ * // mm.not(list, patterns[, options]);
142
+ *
143
+ * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a'));
144
+ * //=> ['b.b', 'c.c']
145
+ * ```
146
+ * @param {Array} `list` Array of strings to match.
147
+ * @param {String|Array} `patterns` One or more glob pattern to use for matching.
148
+ * @param {Object} `options` See available [options](#options) for changing how matches are performed
149
+ * @return {Array} Returns an array of strings that **do not match** the given patterns.
150
+ * @api public
151
+ */
152
+
153
+ micromatch.not = (list, patterns, options = {}) => {
154
+ patterns = [].concat(patterns).map(String);
155
+ let result = new Set();
156
+ let items = [];
157
+
158
+ let onResult = state => {
159
+ if (options.onResult) options.onResult(state);
160
+ items.push(state.output);
161
+ };
162
+
163
+ let matches = new Set(micromatch(list, patterns, { ...options, onResult }));
164
+
165
+ for (let item of items) {
166
+ if (!matches.has(item)) {
167
+ result.add(item);
168
+ }
169
+ }
170
+ return [...result];
171
+ };
172
+
173
+ /**
174
+ * Returns true if the given `string` contains the given pattern. Similar
175
+ * to [.isMatch](#isMatch) but the pattern can match any part of the string.
176
+ *
177
+ * ```js
178
+ * var mm = require('micromatch');
179
+ * // mm.contains(string, pattern[, options]);
180
+ *
181
+ * console.log(mm.contains('aa/bb/cc', '*b'));
182
+ * //=> true
183
+ * console.log(mm.contains('aa/bb/cc', '*d'));
184
+ * //=> false
185
+ * ```
186
+ * @param {String} `str` The string to match.
187
+ * @param {String|Array} `patterns` Glob pattern to use for matching.
188
+ * @param {Object} `options` See available [options](#options) for changing how matches are performed
189
+ * @return {Boolean} Returns true if any of the patterns matches any part of `str`.
190
+ * @api public
191
+ */
192
+
193
+ micromatch.contains = (str, pattern, options) => {
194
+ if (typeof str !== 'string') {
195
+ throw new TypeError(`Expected a string: "${util.inspect(str)}"`);
196
+ }
197
+
198
+ if (Array.isArray(pattern)) {
199
+ return pattern.some(p => micromatch.contains(str, p, options));
200
+ }
201
+
202
+ if (typeof pattern === 'string') {
203
+ if (isEmptyString(str) || isEmptyString(pattern)) {
204
+ return false;
205
+ }
206
+
207
+ if (str.includes(pattern) || (str.startsWith('./') && str.slice(2).includes(pattern))) {
208
+ return true;
209
+ }
210
+ }
211
+
212
+ return micromatch.isMatch(str, pattern, { ...options, contains: true });
213
+ };
214
+
215
+ /**
216
+ * Filter the keys of the given object with the given `glob` pattern
217
+ * and `options`. Does not attempt to match nested keys. If you need this feature,
218
+ * use [glob-object][] instead.
219
+ *
220
+ * ```js
221
+ * const mm = require('micromatch');
222
+ * // mm.matchKeys(object, patterns[, options]);
223
+ *
224
+ * const obj = { aa: 'a', ab: 'b', ac: 'c' };
225
+ * console.log(mm.matchKeys(obj, '*b'));
226
+ * //=> { ab: 'b' }
227
+ * ```
228
+ * @param {Object} `object` The object with keys to filter.
229
+ * @param {String|Array} `patterns` One or more glob patterns to use for matching.
230
+ * @param {Object} `options` See available [options](#options) for changing how matches are performed
231
+ * @return {Object} Returns an object with only keys that match the given patterns.
232
+ * @api public
233
+ */
234
+
235
+ micromatch.matchKeys = (obj, patterns, options) => {
236
+ if (!utils.isObject(obj)) {
237
+ throw new TypeError('Expected the first argument to be an object');
238
+ }
239
+ let keys = micromatch(Object.keys(obj), patterns, options);
240
+ let res = {};
241
+ for (let key of keys) res[key] = obj[key];
242
+ return res;
243
+ };
244
+
245
+ /**
246
+ * Returns true if some of the strings in the given `list` match any of the given glob `patterns`.
247
+ *
248
+ * ```js
249
+ * const mm = require('micromatch');
250
+ * // mm.some(list, patterns[, options]);
251
+ *
252
+ * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));
253
+ * // true
254
+ * console.log(mm.some(['foo.js'], ['*.js', '!foo.js']));
255
+ * // false
256
+ * ```
257
+ * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.
258
+ * @param {String|Array} `patterns` One or more glob patterns to use for matching.
259
+ * @param {Object} `options` See available [options](#options) for changing how matches are performed
260
+ * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list`
261
+ * @api public
262
+ */
263
+
264
+ micromatch.some = (list, patterns, options) => {
265
+ let items = [].concat(list);
266
+
267
+ for (let pattern of [].concat(patterns)) {
268
+ let isMatch = picomatch(String(pattern), options);
269
+ if (items.some(item => isMatch(item))) {
270
+ return true;
271
+ }
272
+ }
273
+ return false;
274
+ };
275
+
276
+ /**
277
+ * Returns true if every string in the given `list` matches
278
+ * any of the given glob `patterns`.
279
+ *
280
+ * ```js
281
+ * const mm = require('micromatch');
282
+ * // mm.every(list, patterns[, options]);
283
+ *
284
+ * console.log(mm.every('foo.js', ['foo.js']));
285
+ * // true
286
+ * console.log(mm.every(['foo.js', 'bar.js'], ['*.js']));
287
+ * // true
288
+ * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));
289
+ * // false
290
+ * console.log(mm.every(['foo.js'], ['*.js', '!foo.js']));
291
+ * // false
292
+ * ```
293
+ * @param {String|Array} `list` The string or array of strings to test.
294
+ * @param {String|Array} `patterns` One or more glob patterns to use for matching.
295
+ * @param {Object} `options` See available [options](#options) for changing how matches are performed
296
+ * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list`
297
+ * @api public
298
+ */
299
+
300
+ micromatch.every = (list, patterns, options) => {
301
+ let items = [].concat(list);
302
+
303
+ for (let pattern of [].concat(patterns)) {
304
+ let isMatch = picomatch(String(pattern), options);
305
+ if (!items.every(item => isMatch(item))) {
306
+ return false;
307
+ }
308
+ }
309
+ return true;
310
+ };
311
+
312
+ /**
313
+ * Returns true if **all** of the given `patterns` match
314
+ * the specified string.
315
+ *
316
+ * ```js
317
+ * const mm = require('micromatch');
318
+ * // mm.all(string, patterns[, options]);
319
+ *
320
+ * console.log(mm.all('foo.js', ['foo.js']));
321
+ * // true
322
+ *
323
+ * console.log(mm.all('foo.js', ['*.js', '!foo.js']));
324
+ * // false
325
+ *
326
+ * console.log(mm.all('foo.js', ['*.js', 'foo.js']));
327
+ * // true
328
+ *
329
+ * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));
330
+ * // true
331
+ * ```
332
+ * @param {String|Array} `str` The string to test.
333
+ * @param {String|Array} `patterns` One or more glob patterns to use for matching.
334
+ * @param {Object} `options` See available [options](#options) for changing how matches are performed
335
+ * @return {Boolean} Returns true if any patterns match `str`
336
+ * @api public
337
+ */
338
+
339
+ micromatch.all = (str, patterns, options) => {
340
+ if (typeof str !== 'string') {
341
+ throw new TypeError(`Expected a string: "${util.inspect(str)}"`);
342
+ }
343
+
344
+ return [].concat(patterns).every(p => picomatch(p, options)(str));
345
+ };
346
+
347
+ /**
348
+ * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match.
349
+ *
350
+ * ```js
351
+ * const mm = require('micromatch');
352
+ * // mm.capture(pattern, string[, options]);
353
+ *
354
+ * console.log(mm.capture('test/*.js', 'test/foo.js'));
355
+ * //=> ['foo']
356
+ * console.log(mm.capture('test/*.js', 'foo/bar.css'));
357
+ * //=> null
358
+ * ```
359
+ * @param {String} `glob` Glob pattern to use for matching.
360
+ * @param {String} `input` String to match
361
+ * @param {Object} `options` See available [options](#options) for changing how matches are performed
362
+ * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`.
363
+ * @api public
364
+ */
365
+
366
+ micromatch.capture = (glob, input, options) => {
367
+ let posix = utils.isWindows(options);
368
+ let regex = picomatch.makeRe(String(glob), { ...options, capture: true });
369
+ let match = regex.exec(posix ? utils.toPosixSlashes(input) : input);
370
+
371
+ if (match) {
372
+ return match.slice(1).map(v => v === void 0 ? '' : v);
373
+ }
374
+ };
375
+
376
+ /**
377
+ * Create a regular expression from the given glob `pattern`.
378
+ *
379
+ * ```js
380
+ * const mm = require('micromatch');
381
+ * // mm.makeRe(pattern[, options]);
382
+ *
383
+ * console.log(mm.makeRe('*.js'));
384
+ * //=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/
385
+ * ```
386
+ * @param {String} `pattern` A glob pattern to convert to regex.
387
+ * @param {Object} `options`
388
+ * @return {RegExp} Returns a regex created from the given pattern.
389
+ * @api public
390
+ */
391
+
392
+ micromatch.makeRe = (...args) => picomatch.makeRe(...args);
393
+
394
+ /**
395
+ * Scan a glob pattern to separate the pattern into segments. Used
396
+ * by the [split](#split) method.
397
+ *
398
+ * ```js
399
+ * const mm = require('micromatch');
400
+ * const state = mm.scan(pattern[, options]);
401
+ * ```
402
+ * @param {String} `pattern`
403
+ * @param {Object} `options`
404
+ * @return {Object} Returns an object with
405
+ * @api public
406
+ */
407
+
408
+ micromatch.scan = (...args) => picomatch.scan(...args);
409
+
410
+ /**
411
+ * Parse a glob pattern to create the source string for a regular
412
+ * expression.
413
+ *
414
+ * ```js
415
+ * const mm = require('micromatch');
416
+ * const state = mm.parse(pattern[, options]);
417
+ * ```
418
+ * @param {String} `glob`
419
+ * @param {Object} `options`
420
+ * @return {Object} Returns an object with useful properties and output to be used as regex source string.
421
+ * @api public
422
+ */
423
+
424
+ micromatch.parse = (patterns, options) => {
425
+ let res = [];
426
+ for (let pattern of [].concat(patterns || [])) {
427
+ for (let str of braces(String(pattern), options)) {
428
+ res.push(picomatch.parse(str, options));
429
+ }
430
+ }
431
+ return res;
432
+ };
433
+
434
+ /**
435
+ * Process the given brace `pattern`.
436
+ *
437
+ * ```js
438
+ * const { braces } = require('micromatch');
439
+ * console.log(braces('foo/{a,b,c}/bar'));
440
+ * //=> [ 'foo/(a|b|c)/bar' ]
441
+ *
442
+ * console.log(braces('foo/{a,b,c}/bar', { expand: true }));
443
+ * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ]
444
+ * ```
445
+ * @param {String} `pattern` String with brace pattern to process.
446
+ * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options.
447
+ * @return {Array}
448
+ * @api public
449
+ */
450
+
451
+ micromatch.braces = (pattern, options) => {
452
+ if (typeof pattern !== 'string') throw new TypeError('Expected a string');
453
+ if ((options && options.nobrace === true) || !hasBraces(pattern)) {
454
+ return [pattern];
455
+ }
456
+ return braces(pattern, options);
457
+ };
458
+
459
+ /**
460
+ * Expand braces
461
+ */
462
+
463
+ micromatch.braceExpand = (pattern, options) => {
464
+ if (typeof pattern !== 'string') throw new TypeError('Expected a string');
465
+ return micromatch.braces(pattern, { ...options, expand: true });
466
+ };
467
+
468
+ /**
469
+ * Expose micromatch
470
+ */
471
+
472
+ // exposed for tests
473
+ micromatch.hasBraces = hasBraces;
474
+ module.exports = micromatch;
@@ -0,0 +1,119 @@
1
+ {
2
+ "name": "micromatch",
3
+ "description": "Glob matching for javascript/node.js. A replacement and faster alternative to minimatch and multimatch.",
4
+ "version": "4.0.8",
5
+ "homepage": "https://github.com/micromatch/micromatch",
6
+ "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
7
+ "contributors": [
8
+ "(https://github.com/DianeLooney)",
9
+ "Amila Welihinda (amilajack.com)",
10
+ "Bogdan Chadkin (https://github.com/TrySound)",
11
+ "Brian Woodward (https://twitter.com/doowb)",
12
+ "Devon Govett (http://badassjs.com)",
13
+ "Elan Shanker (https://github.com/es128)",
14
+ "Fabrício Matté (https://ultcombo.js.org)",
15
+ "Jon Schlinkert (http://twitter.com/jonschlinkert)",
16
+ "Martin Kolárik (https://kolarik.sk)",
17
+ "Olsten Larck (https://i.am.charlike.online)",
18
+ "Paul Miller (paulmillr.com)",
19
+ "Tom Byrer (https://github.com/tomByrer)",
20
+ "Tyler Akins (http://rumkin.com)",
21
+ "Peter Bright <drpizza@quiscalusmexicanus.org> (https://github.com/drpizza)",
22
+ "Kuba Juszczyk (https://github.com/ku8ar)"
23
+ ],
24
+ "repository": "micromatch/micromatch",
25
+ "bugs": {
26
+ "url": "https://github.com/micromatch/micromatch/issues"
27
+ },
28
+ "license": "MIT",
29
+ "files": [
30
+ "index.js"
31
+ ],
32
+ "main": "index.js",
33
+ "engines": {
34
+ "node": ">=8.6"
35
+ },
36
+ "scripts": {
37
+ "test": "mocha"
38
+ },
39
+ "dependencies": {
40
+ "braces": "^3.0.3",
41
+ "picomatch": "^2.3.1"
42
+ },
43
+ "devDependencies": {
44
+ "fill-range": "^7.0.1",
45
+ "gulp-format-md": "^2.0.0",
46
+ "minimatch": "^5.0.1",
47
+ "mocha": "^9.2.2",
48
+ "time-require": "github:jonschlinkert/time-require"
49
+ },
50
+ "keywords": [
51
+ "bash",
52
+ "bracket",
53
+ "character-class",
54
+ "expand",
55
+ "expansion",
56
+ "expression",
57
+ "extglob",
58
+ "extglobs",
59
+ "file",
60
+ "files",
61
+ "filter",
62
+ "find",
63
+ "glob",
64
+ "globbing",
65
+ "globs",
66
+ "globstar",
67
+ "lookahead",
68
+ "lookaround",
69
+ "lookbehind",
70
+ "match",
71
+ "matcher",
72
+ "matches",
73
+ "matching",
74
+ "micromatch",
75
+ "minimatch",
76
+ "multimatch",
77
+ "negate",
78
+ "negation",
79
+ "path",
80
+ "pattern",
81
+ "patterns",
82
+ "posix",
83
+ "regex",
84
+ "regexp",
85
+ "regular",
86
+ "shell",
87
+ "star",
88
+ "wildcard"
89
+ ],
90
+ "verb": {
91
+ "toc": "collapsible",
92
+ "layout": "default",
93
+ "tasks": [
94
+ "readme"
95
+ ],
96
+ "plugins": [
97
+ "gulp-format-md"
98
+ ],
99
+ "lint": {
100
+ "reflinks": true
101
+ },
102
+ "related": {
103
+ "list": [
104
+ "braces",
105
+ "expand-brackets",
106
+ "extglob",
107
+ "fill-range",
108
+ "nanomatch"
109
+ ]
110
+ },
111
+ "reflinks": [
112
+ "extglob",
113
+ "fill-range",
114
+ "glob-object",
115
+ "minimatch",
116
+ "multimatch"
117
+ ]
118
+ }
119
+ }