ssh-config 5.0.4 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Readme.md CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
  [![NPM Downloads](https://img.shields.io/npm/dm/ssh-config.svg?style=flat)](https://www.npmjs.com/package/ssh-config)
4
4
  [![NPM Version](http://img.shields.io/npm/v/ssh-config.svg?style=flat)](https://www.npmjs.com/package/ssh-config)
5
+ ![JSR Version](https://img.shields.io/jsr/v/%40cyjake/ssh-config)
5
6
  [![Build Status](https://travis-ci.org/cyjake/ssh-config.svg)](https://travis-ci.org/cyjake/ssh-config)
7
+ [![Deno CI](https://github.com/cyjake/ssh-config/actions/workflows/deno.yml/badge.svg)](https://github.com/cyjake/ssh-config/actions/workflows/deno.yml)
6
8
  [![Node CI](https://github.com/cyjake/ssh-config/actions/workflows/nodejs.yml/badge.svg)](https://github.com/cyjake/ssh-config/actions/workflows/nodejs.yml)
7
9
  [![codecov](https://codecov.io/gh/cyjake/ssh-config/branch/master/graph/badge.svg?token=RMyTgcL8Kg)](https://codecov.io/gh/cyjake/ssh-config)
8
10
 
@@ -93,6 +95,28 @@ suggested that the general settings shall be at the end of your config file.
93
95
  The `IdentityFile` parameter always contain an array to make possible multiple
94
96
  `IdentityFile` settings to be able to coexist.
95
97
 
98
+ #### Case-Insensitive Matching
99
+
100
+ OpenSSH treats configuration directives case-insensitively. By default, `compute()`
101
+ preserves the original case from the config file. To normalize directive names to
102
+ lowercase (matching OpenSSH behavior), use the `ignoreCase` option:
103
+
104
+ ```js
105
+ const config = SSHConfig.parse(`
106
+ Host example
107
+ hOsTnaME 1.2.3.4
108
+ USER admin
109
+ `)
110
+
111
+ // Default - preserves original case
112
+ config.compute('example')
113
+ // => { hOsTnaME: '1.2.3.4', USER: 'admin' }
114
+
115
+ // With ignoreCase - lowercase to match OpenSSH
116
+ config.compute('example', { ignoreCase: true })
117
+ // => { hostname: '1.2.3.4', user: 'admin' }
118
+ ```
119
+
96
120
  ### `.find` sections by Host or Match
97
121
 
98
122
  **NOTICE**: This method is provided to find the corresponding section in the
package/dist/glob.d.ts CHANGED
@@ -2,8 +2,8 @@
2
2
  * A helper function to match input against [pattern-list](https://www.freebsd.org/cgi/man.cgi?query=ssh_config&sektion=5#PATTERNS).
3
3
  * According to `man ssh_config`, negated patterns shall be matched first.
4
4
  *
5
- * @param {string|string[]} patternList
6
- * @param {string} str
5
+ * @param {string|string[]} patternList one or more glob patterns to match
6
+ * @param {string} text the text to match
7
7
  */
8
8
  declare function glob(patternList: string | string[], text: string): boolean;
9
9
  export default glob;
package/dist/glob.js CHANGED
@@ -17,8 +17,8 @@ function match(pattern, text) {
17
17
  * A helper function to match input against [pattern-list](https://www.freebsd.org/cgi/man.cgi?query=ssh_config&sektion=5#PATTERNS).
18
18
  * According to `man ssh_config`, negated patterns shall be matched first.
19
19
  *
20
- * @param {string|string[]} patternList
21
- * @param {string} str
20
+ * @param {string|string[]} patternList one or more glob patterns to match
21
+ * @param {string} text the text to match
22
22
  */
23
23
  function glob(patternList, text) {
24
24
  const patterns = Array.isArray(patternList) ? patternList : patternList.split(/,/);
@@ -1,59 +1,144 @@
1
- import glob from './glob';
1
+ import { Buffer } from 'node:buffer';
2
+ import glob from './glob.ts';
3
+ /**
4
+ * A type of line in an ssh-config file. Differentiates between directives,
5
+ * comments, and empty lines.
6
+ */
2
7
  export declare enum LineType {
8
+ /** line with a directive in an ssh-config file */
3
9
  DIRECTIVE = 1,
10
+ /** line with a comment in an ssh-config file */
4
11
  COMMENT = 2,
12
+ /** empty line in an ssh-config file */
5
13
  EMPTY = 3
6
14
  }
15
+ /** A separator character in a directive. */
7
16
  export type Separator = ' ' | '=' | '\t';
17
+ /**
18
+ * A directive in an ssh-config file. This is the main type of element in the
19
+ * file. The directive primarily consists of a
20
+ * {@link Directive.param | parameter}, and a {@link Directive.value | value},
21
+ * much like a key-value pair.
22
+ *
23
+ * We additionally keep track of a few other fields in order to print out a
24
+ * directive exactly as it was read, even though the used syntax is equivalent.
25
+ */
8
26
  export interface Directive {
27
+ /** type of line, always {@link LineType.DIRECTIVE} */
9
28
  type: LineType.DIRECTIVE;
29
+ /** unrelated string encountered before this directive */
10
30
  before: string;
31
+ /** unrelated string encountered after this directive */
11
32
  after: string;
33
+ /** parameter name of this directive */
12
34
  param: string;
35
+ /** separator char used in this directive */
13
36
  separator: Separator;
37
+ /** the actual value of this directive */
14
38
  value: string | {
15
39
  val: string;
16
40
  separator: string;
17
41
  quoted?: boolean;
18
42
  }[];
43
+ /** whether or not quotes were used for the directive value */
19
44
  quoted?: boolean;
20
45
  }
46
+ /**
47
+ * A section is a Host or Match directive in an ssh-config file. It includes a
48
+ * reference to the contained config via {@link Section.config}.
49
+ */
21
50
  export interface Section extends Directive {
51
+ /** the config contained in this section */
22
52
  config: SSHConfig;
23
53
  }
54
+ /**
55
+ * Represents a Match directive in an ssh-config file. It includes a reference
56
+ * to the contained config via {@link Section.config}, and a map of all match
57
+ * criteria via {@link Match.criteria}.
58
+ */
24
59
  export interface Match extends Section {
60
+ /** the match criteria contained in this Match section */
25
61
  criteria: Record<string, string | {
62
+ /** the value of this match criterion */
26
63
  val: string;
64
+ /** separator used for this match criterion */
27
65
  separator: string;
66
+ /** whether this match criterion was quoted */
28
67
  quoted?: boolean;
29
68
  }[]>;
30
69
  }
70
+ /**
71
+ * A comment in an ssh-config file. Stores the content of the comment as a
72
+ * string in {@link Comment.content}.
73
+ */
31
74
  export interface Comment {
75
+ /** type of line, always {@link LineType.COMMENT} */
32
76
  type: LineType.COMMENT;
77
+ /** unrelated string encountered before this directive */
33
78
  before: string;
79
+ /** unrelated string encountered after this directive */
34
80
  after: string;
81
+ /** content of the comment */
35
82
  content: string;
36
83
  }
84
+ /**
85
+ * An empty or whitespace-only line in an ssh-config file. This is mainly used
86
+ * to represent empty config ssh-config files. The actual whitespace characters
87
+ * is usually stored in the {@link Empty.before | before} field. Storing it in
88
+ * the {@link Empty.after | after} field is permitted, too.
89
+ */
37
90
  export interface Empty {
91
+ /** type of line, always {@link LineType.COMMENT} */
38
92
  type: LineType.EMPTY;
93
+ /** unrelated string encountered before this directive */
39
94
  before: string;
95
+ /** unrelated string encountered after this directive */
40
96
  after: string;
41
97
  }
98
+ /**
99
+ * A single line in an ssh-config file. The union can be discrimiated via its
100
+ * `type` property of type {@link LineType}.
101
+ */
42
102
  export type Line = Match | Section | Directive | Comment | Empty;
103
+ /**
104
+ * Options for finding a {@link Section} via Host or Match.
105
+ */
43
106
  export interface FindOptions {
107
+ /** the host to look for */
44
108
  Host?: string;
45
109
  }
110
+ /**
111
+ * Options for querying an SSH config via host and user.
112
+ */
46
113
  export interface MatchOptions {
114
+ /** the host of the query */
47
115
  Host: string;
116
+ /** the user of the query */
48
117
  User?: string;
49
118
  }
119
+ /**
120
+ * Options for computing SSH config results.
121
+ */
122
+ export interface ComputeOptions {
123
+ /** when true, normalizes directive names to lowercase to match OpenSSH behavior */
124
+ ignoreCase?: boolean;
125
+ }
126
+ /**
127
+ * Represents parsed SSH config. Main element of this library.
128
+ *
129
+ * A parsed SSH config is modelled as an array of {@link Line}s.
130
+ */
50
131
  export default class SSHConfig extends Array<Line> {
132
+ /** shortcut to access {@link LineType.DIRECTIVE} */
51
133
  static readonly DIRECTIVE: LineType.DIRECTIVE;
134
+ /** shortcut to access {@link LineType.COMMENT} */
52
135
  static readonly COMMENT: LineType.COMMENT;
136
+ /** shortcut to access {@link LineType.EMPTY} */
137
+ static readonly EMPTY: LineType.EMPTY;
53
138
  /**
54
139
  * Parse SSH config text into structured object.
55
140
  */
56
- static parse(text: string): SSHConfig;
141
+ static parse(text: string | Buffer): SSHConfig;
57
142
  /**
58
143
  * Stringify structured object into SSH config text.
59
144
  */
@@ -65,7 +150,11 @@ export default class SSHConfig extends Array<Line> {
65
150
  /**
66
151
  * Query SSH config by host and user.
67
152
  */
68
- compute(opts: MatchOptions): Record<string, string | string[]>;
153
+ compute(opts: MatchOptions, computeOpts?: ComputeOptions): Record<string, string | string[]>;
154
+ /**
155
+ * Query SSH config by host with options.
156
+ */
157
+ compute(host: string, computeOpts?: ComputeOptions): Record<string, string | string[]>;
69
158
  /**
70
159
  * Find by Host or Match.
71
160
  */
@@ -86,6 +175,9 @@ export default class SSHConfig extends Array<Line> {
86
175
  * matching line is given.
87
176
  */
88
177
  remove(predicate: (line: Line, index: number, config: Line[]) => unknown): Line[] | undefined;
178
+ /**
179
+ * Convert this SSH config to its textual presentation via {@link stringify}.
180
+ */
89
181
  toString(): string;
90
182
  /**
91
183
  * Append new section to existing SSH config.
@@ -99,9 +191,9 @@ export default class SSHConfig extends Array<Line> {
99
191
  /**
100
192
  * Parse SSH config text into structured object.
101
193
  */
102
- export declare function parse(text: string): SSHConfig;
194
+ export declare function parse(text: string | Buffer): SSHConfig;
103
195
  /**
104
196
  * Stringify structured object into SSH config text.
105
197
  */
106
198
  export declare function stringify(config: SSHConfig): string;
107
- export { glob };
199
+ export { glob, SSHConfig };
@@ -3,23 +3,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.glob = exports.LineType = void 0;
6
+ exports.SSHConfig = exports.glob = exports.LineType = void 0;
7
7
  exports.parse = parse;
8
8
  exports.stringify = stringify;
9
- const glob_1 = __importDefault(require("./glob"));
10
- exports.glob = glob_1.default;
11
- const child_process_1 = require("child_process");
12
- const os_1 = __importDefault(require("os"));
9
+ const glob_ts_1 = __importDefault(require("./glob.js"));
10
+ exports.glob = glob_ts_1.default;
11
+ const node_child_process_1 = require("node:child_process");
12
+ const node_os_1 = __importDefault(require("node:os"));
13
13
  const RE_SPACE = /\s/;
14
14
  const RE_LINE_BREAK = /\r|\n/;
15
15
  const RE_SECTION_DIRECTIVE = /^(Host|Match)$/i;
16
16
  const RE_MULTI_VALUE_DIRECTIVE = /^(GlobalKnownHostsFile|Host|IPQoS|SendEnv|UserKnownHostsFile|ProxyCommand|Match|CanonicalDomains)$/i;
17
17
  const RE_QUOTE_DIRECTIVE = /^(?:CertificateFile|IdentityFile|IdentityAgent|User)$/i;
18
18
  const RE_SINGLE_LINE_DIRECTIVE = /^(Include|IdentityFile)$/i;
19
+ /**
20
+ * A type of line in an ssh-config file. Differentiates between directives,
21
+ * comments, and empty lines.
22
+ */
19
23
  var LineType;
20
24
  (function (LineType) {
25
+ /** line with a directive in an ssh-config file */
21
26
  LineType[LineType["DIRECTIVE"] = 1] = "DIRECTIVE";
27
+ /** line with a comment in an ssh-config file */
22
28
  LineType[LineType["COMMENT"] = 2] = "COMMENT";
29
+ /** empty line in an ssh-config file */
23
30
  LineType[LineType["EMPTY"] = 3] = "EMPTY";
24
31
  })(LineType || (exports.LineType = LineType = {}));
25
32
  const REPEATABLE_DIRECTIVES = [
@@ -30,6 +37,7 @@ const REPEATABLE_DIRECTIVES = [
30
37
  'CertificateFile',
31
38
  ];
32
39
  function compare(line, opts) {
40
+ // @ts-ignore
33
41
  return opts.hasOwnProperty(line.param) && opts[line.param] === line.value;
34
42
  }
35
43
  function getIndent(config) {
@@ -60,15 +68,15 @@ function match(criteria, context) {
60
68
  ${criterion}
61
69
  }
62
70
  main`;
63
- return (0, child_process_1.spawnSync)(command, { shell: true }).status === 0;
71
+ return (0, node_child_process_1.spawnSync)(command, { shell: true }).status === 0;
64
72
  case 'host':
65
- return (0, glob_1.default)(criterion, context.params.HostName);
73
+ return (0, glob_ts_1.default)(criterion, context.params.HostName);
66
74
  case 'originalhost':
67
- return (0, glob_1.default)(criterion, context.params.OriginalHost);
75
+ return (0, glob_ts_1.default)(criterion, context.params.OriginalHost);
68
76
  case 'user':
69
- return (0, glob_1.default)(criterion, context.params.User);
77
+ return (0, glob_ts_1.default)(criterion, context.params.User);
70
78
  case 'localuser':
71
- return (0, glob_1.default)(criterion, context.params.LocalUser);
79
+ return (0, glob_ts_1.default)(criterion, context.params.LocalUser);
72
80
  }
73
81
  };
74
82
  for (const key in criteria) {
@@ -80,7 +88,18 @@ function match(criteria, context) {
80
88
  }
81
89
  return true;
82
90
  }
91
+ /**
92
+ * Represents parsed SSH config. Main element of this library.
93
+ *
94
+ * A parsed SSH config is modelled as an array of {@link Line}s.
95
+ */
83
96
  class SSHConfig extends Array {
97
+ /** shortcut to access {@link LineType.DIRECTIVE} */
98
+ static DIRECTIVE = LineType.DIRECTIVE;
99
+ /** shortcut to access {@link LineType.COMMENT} */
100
+ static COMMENT = LineType.COMMENT;
101
+ /** shortcut to access {@link LineType.EMPTY} */
102
+ static EMPTY = LineType.EMPTY;
84
103
  /**
85
104
  * Parse SSH config text into structured object.
86
105
  */
@@ -93,14 +112,14 @@ class SSHConfig extends Array {
93
112
  static stringify(config) {
94
113
  return stringify(config);
95
114
  }
96
- compute(opts) {
115
+ compute(opts, computeOpts) {
97
116
  if (typeof opts === 'string')
98
117
  opts = { Host: opts };
99
118
  let userInfo;
100
119
  try {
101
- userInfo = os_1.default.userInfo();
120
+ userInfo = node_os_1.default.userInfo();
102
121
  }
103
- catch (_a) {
122
+ catch {
104
123
  // os.userInfo() throws a SystemError if a user has no username or homedir.
105
124
  userInfo = { username: process.env.USER || process.env.USERNAME || '' };
106
125
  }
@@ -117,9 +136,10 @@ class SSHConfig extends Array {
117
136
  };
118
137
  const obj = {};
119
138
  const setProperty = (name, value) => {
139
+ const key = computeOpts?.ignoreCase ? name.toLowerCase() : name;
120
140
  let val;
121
141
  if (Array.isArray(value)) {
122
- if (/ProxyCommand/i.test(name)) {
142
+ if (/ProxyCommand/i.test(key)) {
123
143
  val = value.map(({ val, separator, quoted }) => {
124
144
  return `${separator}${quoted ? `"${val.replace(/"/g, '\\"')}"` : val}`;
125
145
  }).join('').trim();
@@ -132,18 +152,20 @@ class SSHConfig extends Array {
132
152
  val = value;
133
153
  }
134
154
  const val0 = Array.isArray(val) ? val[0] : val;
135
- if (REPEATABLE_DIRECTIVES.includes(name)) {
136
- const list = (obj[name] || (obj[name] = []));
155
+ // Use case-insensitive check for repeatable directives
156
+ const isRepeatable = REPEATABLE_DIRECTIVES.some(d => d.toLowerCase() === name.toLowerCase());
157
+ if (isRepeatable) {
158
+ const list = (obj[key] || (obj[key] = []));
137
159
  list.push(...[].concat(val));
138
160
  }
139
- else if (obj[name] == null) {
161
+ else if (obj[key] == null) {
140
162
  if (name === 'HostName') {
141
163
  context.params.HostName = val0;
142
164
  }
143
165
  else if (name === 'User') {
144
166
  context.params.User = val0;
145
167
  }
146
- obj[name] = val;
168
+ obj[key] = val;
147
169
  }
148
170
  };
149
171
  if (opts.User !== undefined) {
@@ -153,7 +175,8 @@ class SSHConfig extends Array {
153
175
  for (const line of this) {
154
176
  if (line.type !== LineType.DIRECTIVE)
155
177
  continue;
156
- if (line.param === 'Host' && (0, glob_1.default)(Array.isArray(line.value) ? line.value.map(({ val }) => val) : line.value, context.params.Host)) {
178
+ // Host and Match directives are always case-insensitive (per OpenSSH behavior)
179
+ if (/^host$/i.test(line.param) && (0, glob_ts_1.default)(Array.isArray(line.value) ? line.value.map(({ val }) => val) : line.value, context.params.Host)) {
157
180
  let canonicalizeHostName = false;
158
181
  let canonicalDomains = [];
159
182
  setProperty(line.param, line.value);
@@ -171,7 +194,7 @@ class SSHConfig extends Array {
171
194
  if (canonicalDomains.length > 0 && canonicalizeHostName && context.params.Host === context.params.OriginalHost) {
172
195
  for (const domain of canonicalDomains) {
173
196
  const host = `${context.params.OriginalHost}.${domain}`;
174
- const { status, stderr } = (0, child_process_1.spawnSync)('nslookup', [host]);
197
+ const { status, stderr } = (0, node_child_process_1.spawnSync)('nslookup', [host]);
175
198
  if (status === 0 && !/can't find/.test(stderr.toString())) {
176
199
  context.params.Host = host;
177
200
  setProperty('Host', host);
@@ -181,14 +204,14 @@ class SSHConfig extends Array {
181
204
  }
182
205
  }
183
206
  }
184
- else if (line.param === 'Match' && 'criteria' in line && match(line.criteria, context)) {
207
+ else if (/^match$/i.test(line.param) && 'criteria' in line && match(line.criteria, context)) {
185
208
  for (const subline of line.config) {
186
209
  if (subline.type === LineType.DIRECTIVE) {
187
210
  setProperty(subline.param, subline.value);
188
211
  }
189
212
  }
190
213
  }
191
- else if (line.param !== 'Host' && line.param !== 'Match') {
214
+ else if (!/^(host|match)$/i.test(line.param)) {
192
215
  setProperty(line.param, line.value);
193
216
  }
194
217
  }
@@ -207,7 +230,7 @@ class SSHConfig extends Array {
207
230
  if (!(opts && ('Host' in opts || 'Match' in opts))) {
208
231
  throw new Error('Can only find by Host or Match');
209
232
  }
210
- return super.find(line => compare(line, opts));
233
+ return super.find((line) => 'param' in line && compare(line, opts));
211
234
  }
212
235
  remove(opts) {
213
236
  let index;
@@ -218,11 +241,14 @@ class SSHConfig extends Array {
218
241
  throw new Error('Can only remove by Host or Match');
219
242
  }
220
243
  else {
221
- index = super.findIndex(line => compare(line, opts));
244
+ index = super.findIndex((line) => 'param' in line && compare(line, opts));
222
245
  }
223
246
  if (index >= 0)
224
247
  return this.splice(index, 1);
225
248
  }
249
+ /**
250
+ * Convert this SSH config to its textual presentation via {@link stringify}.
251
+ */
226
252
  toString() {
227
253
  return stringify(this);
228
254
  }
@@ -322,19 +348,20 @@ class SSHConfig extends Array {
322
348
  return config;
323
349
  }
324
350
  }
325
- SSHConfig.DIRECTIVE = LineType.DIRECTIVE;
326
- SSHConfig.COMMENT = LineType.COMMENT;
327
351
  exports.default = SSHConfig;
352
+ exports.SSHConfig = SSHConfig;
328
353
  /**
329
354
  * Parse SSH config text into structured object.
330
355
  */
331
356
  function parse(text) {
357
+ // Handle Buffer input by converting to string
358
+ const input = typeof text === 'string' ? text : text.toString('utf-8');
332
359
  let i = 0;
333
360
  let chr = next();
334
361
  let config = new SSHConfig();
335
362
  let configWas = config;
336
363
  function next() {
337
- return text[i++];
364
+ return input[i++];
338
365
  }
339
366
  function space() {
340
367
  let spaces = '';
@@ -555,7 +582,7 @@ function stringify(config) {
555
582
  }
556
583
  function formatDirective(line) {
557
584
  const quoted = line.quoted
558
- || (RE_QUOTE_DIRECTIVE.test(line.param) && RE_SPACE.test(line.value));
585
+ || (RE_QUOTE_DIRECTIVE.test(line.param) && typeof line.value === 'string' && RE_SPACE.test(line.value));
559
586
  const value = formatValue(line.value, quoted);
560
587
  return `${line.param}${line.separator}${value}`;
561
588
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ssh-config.js","sourceRoot":"","sources":["../src/ssh-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ssh-config.js","sourceRoot":"","sources":["../src/ssh-config.ts"],"names":[],"mappings":"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"}
package/lib/glob.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * A helper function to match input against [pattern-list](https://www.freebsd.org/cgi/man.cgi?query=ssh_config&sektion=5#PATTERNS).
3
+ * According to `man ssh_config`, negated patterns shall be matched first.
4
+ *
5
+ * @param {string|string[]} patternList one or more glob patterns to match
6
+ * @param {string} text the text to match
7
+ */
8
+ declare function glob(patternList: string | string[], text: string): boolean;
9
+ export default glob;
package/lib/glob.js ADDED
@@ -0,0 +1,38 @@
1
+ function escapeChars(text, chars) {
2
+ for (let char of chars) {
3
+ text = text.replace(new RegExp('\\' + char, 'g'), '\\' + char);
4
+ }
5
+ return text;
6
+ }
7
+ function match(pattern, text) {
8
+ pattern = escapeChars(pattern, '\\()[]{}.+^$|');
9
+ pattern = pattern
10
+ .replace(/\*/g, '.*')
11
+ .replace(/\?/g, '.?');
12
+ return new RegExp('^(?:' + pattern + ')$').test(text);
13
+ }
14
+ /**
15
+ * A helper function to match input against [pattern-list](https://www.freebsd.org/cgi/man.cgi?query=ssh_config&sektion=5#PATTERNS).
16
+ * According to `man ssh_config`, negated patterns shall be matched first.
17
+ *
18
+ * @param {string|string[]} patternList one or more glob patterns to match
19
+ * @param {string} text the text to match
20
+ */
21
+ function glob(patternList, text) {
22
+ const patterns = Array.isArray(patternList) ? patternList : patternList.split(/,/);
23
+ // > If a negated entry is matched, then the Host entry is ignored, regardless of whether any other patterns on the line match.
24
+ let result = false;
25
+ for (const pattern of patterns) {
26
+ const negate = pattern[0] == '!';
27
+ if (negate && match(pattern.slice(1), text)) {
28
+ return false;
29
+ }
30
+ else if (match(pattern, text)) {
31
+ // wait until all of the pattern match results because there might be a negated pattern
32
+ result = true;
33
+ }
34
+ }
35
+ return result;
36
+ }
37
+ export default glob;
38
+ //# sourceMappingURL=glob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.js","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"AACA,SAAS,WAAW,CAAC,IAAY,EAAE,KAAa;IAC9C,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,CAAA;IAChE,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,KAAK,CAAC,OAAe,EAAE,IAAY;IAC1C,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IAC/C,OAAO,GAAG,OAAO;SACd,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAEvB,OAAO,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACvD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,IAAI,CAAC,WAA8B,EAAE,IAAY;IACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAElF,+HAA+H;IAC/H,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAA;QAEhC,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAA;QACd,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;YAChC,uFAAuF;YACvF,MAAM,GAAG,IAAI,CAAA;QACf,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,eAAe,IAAI,CAAA"}