source: frontend/node_modules/picomatch/lib/constants.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 12 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 4.5 KB
RevLine 
[9af201e]1'use strict';
2
3const path = require('path');
4const WIN_SLASH = '\\\\/';
5const WIN_NO_SLASH = `[^${WIN_SLASH}]`;
6
7const DEFAULT_MAX_EXTGLOB_RECURSION = 0;
8
9/**
10 * Posix glob regex
11 */
12
13const DOT_LITERAL = '\\.';
14const PLUS_LITERAL = '\\+';
15const QMARK_LITERAL = '\\?';
16const SLASH_LITERAL = '\\/';
17const ONE_CHAR = '(?=.)';
18const QMARK = '[^/]';
19const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;
20const START_ANCHOR = `(?:^|${SLASH_LITERAL})`;
21const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;
22const NO_DOT = `(?!${DOT_LITERAL})`;
23const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;
24const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;
25const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;
26const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;
27const STAR = `${QMARK}*?`;
28
29const POSIX_CHARS = {
30 DOT_LITERAL,
31 PLUS_LITERAL,
32 QMARK_LITERAL,
33 SLASH_LITERAL,
34 ONE_CHAR,
35 QMARK,
36 END_ANCHOR,
37 DOTS_SLASH,
38 NO_DOT,
39 NO_DOTS,
40 NO_DOT_SLASH,
41 NO_DOTS_SLASH,
42 QMARK_NO_DOT,
43 STAR,
44 START_ANCHOR
45};
46
47/**
48 * Windows glob regex
49 */
50
51const WINDOWS_CHARS = {
52 ...POSIX_CHARS,
53
54 SLASH_LITERAL: `[${WIN_SLASH}]`,
55 QMARK: WIN_NO_SLASH,
56 STAR: `${WIN_NO_SLASH}*?`,
57 DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,
58 NO_DOT: `(?!${DOT_LITERAL})`,
59 NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,
60 NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,
61 NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,
62 QMARK_NO_DOT: `[^.${WIN_SLASH}]`,
63 START_ANCHOR: `(?:^|[${WIN_SLASH}])`,
64 END_ANCHOR: `(?:[${WIN_SLASH}]|$)`
65};
66
67/**
68 * POSIX Bracket Regex
69 */
70
71const POSIX_REGEX_SOURCE = {
72 __proto__: null,
73 alnum: 'a-zA-Z0-9',
74 alpha: 'a-zA-Z',
75 ascii: '\\x00-\\x7F',
76 blank: ' \\t',
77 cntrl: '\\x00-\\x1F\\x7F',
78 digit: '0-9',
79 graph: '\\x21-\\x7E',
80 lower: 'a-z',
81 print: '\\x20-\\x7E ',
82 punct: '\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~',
83 space: ' \\t\\r\\n\\v\\f',
84 upper: 'A-Z',
85 word: 'A-Za-z0-9_',
86 xdigit: 'A-Fa-f0-9'
87};
88
89module.exports = {
90 DEFAULT_MAX_EXTGLOB_RECURSION,
91 MAX_LENGTH: 1024 * 64,
92 POSIX_REGEX_SOURCE,
93
94 // regular expressions
95 REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g,
96 REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/,
97 REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/,
98 REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g,
99 REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g,
100 REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g,
101
102 // Replace globs with equivalent patterns to reduce parsing time.
103 REPLACEMENTS: {
104 __proto__: null,
105 '***': '*',
106 '**/**': '**',
107 '**/**/**': '**'
108 },
109
110 // Digits
111 CHAR_0: 48, /* 0 */
112 CHAR_9: 57, /* 9 */
113
114 // Alphabet chars.
115 CHAR_UPPERCASE_A: 65, /* A */
116 CHAR_LOWERCASE_A: 97, /* a */
117 CHAR_UPPERCASE_Z: 90, /* Z */
118 CHAR_LOWERCASE_Z: 122, /* z */
119
120 CHAR_LEFT_PARENTHESES: 40, /* ( */
121 CHAR_RIGHT_PARENTHESES: 41, /* ) */
122
123 CHAR_ASTERISK: 42, /* * */
124
125 // Non-alphabetic chars.
126 CHAR_AMPERSAND: 38, /* & */
127 CHAR_AT: 64, /* @ */
128 CHAR_BACKWARD_SLASH: 92, /* \ */
129 CHAR_CARRIAGE_RETURN: 13, /* \r */
130 CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */
131 CHAR_COLON: 58, /* : */
132 CHAR_COMMA: 44, /* , */
133 CHAR_DOT: 46, /* . */
134 CHAR_DOUBLE_QUOTE: 34, /* " */
135 CHAR_EQUAL: 61, /* = */
136 CHAR_EXCLAMATION_MARK: 33, /* ! */
137 CHAR_FORM_FEED: 12, /* \f */
138 CHAR_FORWARD_SLASH: 47, /* / */
139 CHAR_GRAVE_ACCENT: 96, /* ` */
140 CHAR_HASH: 35, /* # */
141 CHAR_HYPHEN_MINUS: 45, /* - */
142 CHAR_LEFT_ANGLE_BRACKET: 60, /* < */
143 CHAR_LEFT_CURLY_BRACE: 123, /* { */
144 CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */
145 CHAR_LINE_FEED: 10, /* \n */
146 CHAR_NO_BREAK_SPACE: 160, /* \u00A0 */
147 CHAR_PERCENT: 37, /* % */
148 CHAR_PLUS: 43, /* + */
149 CHAR_QUESTION_MARK: 63, /* ? */
150 CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */
151 CHAR_RIGHT_CURLY_BRACE: 125, /* } */
152 CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */
153 CHAR_SEMICOLON: 59, /* ; */
154 CHAR_SINGLE_QUOTE: 39, /* ' */
155 CHAR_SPACE: 32, /* */
156 CHAR_TAB: 9, /* \t */
157 CHAR_UNDERSCORE: 95, /* _ */
158 CHAR_VERTICAL_LINE: 124, /* | */
159 CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \uFEFF */
160
161 SEP: path.sep,
162
163 /**
164 * Create EXTGLOB_CHARS
165 */
166
167 extglobChars(chars) {
168 return {
169 '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },
170 '?': { type: 'qmark', open: '(?:', close: ')?' },
171 '+': { type: 'plus', open: '(?:', close: ')+' },
172 '*': { type: 'star', open: '(?:', close: ')*' },
173 '@': { type: 'at', open: '(?:', close: ')' }
174 };
175 },
176
177 /**
178 * Create GLOB_CHARS
179 */
180
181 globChars(win32) {
182 return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;
183 }
184};
Note: See TracBrowser for help on using the repository browser.