UNPKG

storybook

Version:

Storybook: Develop, document, and test UI components in isolation

944 lines (934 loc) • 44 kB
import CJS_COMPAT_NODE_URL_yr66iw5gef from 'node:url'; import CJS_COMPAT_NODE_PATH_yr66iw5gef from 'node:path'; import CJS_COMPAT_NODE_MODULE_yr66iw5gef from "node:module"; var __filename = CJS_COMPAT_NODE_URL_yr66iw5gef.fileURLToPath(import.meta.url); var __dirname = CJS_COMPAT_NODE_PATH_yr66iw5gef.dirname(__filename); var require = CJS_COMPAT_NODE_MODULE_yr66iw5gef.createRequire(import.meta.url); // ------------------------------------------------------------ // end of CJS compatibility banner, injected by Storybook's esbuild configuration // ------------------------------------------------------------ import { __commonJS, __require } from "./chunk-J4VC4I2M.js"; // ../node_modules/picomatch/lib/constants.js var require_constants = __commonJS({ "../node_modules/picomatch/lib/constants.js"(exports, module) { "use strict"; var path = __require("path"), WIN_SLASH = "\\\\/", WIN_NO_SLASH = `[^${WIN_SLASH}]`, DOT_LITERAL = "\\.", PLUS_LITERAL = "\\+", QMARK_LITERAL = "\\?", SLASH_LITERAL = "\\/", ONE_CHAR = "(?=.)", QMARK = "[^/]", END_ANCHOR = `(?:${SLASH_LITERAL}|$)`, START_ANCHOR = `(?:^|${SLASH_LITERAL})`, DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`, NO_DOT = `(?!${DOT_LITERAL})`, NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`, NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`, NO_DOTS_SLASH = `(?!${DOTS_SLASH})`, QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`, STAR = `${QMARK}*?`, POSIX_CHARS = { DOT_LITERAL, PLUS_LITERAL, QMARK_LITERAL, SLASH_LITERAL, ONE_CHAR, QMARK, END_ANCHOR, DOTS_SLASH, NO_DOT, NO_DOTS, NO_DOT_SLASH, NO_DOTS_SLASH, QMARK_NO_DOT, STAR, START_ANCHOR }, WINDOWS_CHARS = { ...POSIX_CHARS, SLASH_LITERAL: `[${WIN_SLASH}]`, QMARK: WIN_NO_SLASH, STAR: `${WIN_NO_SLASH}*?`, DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, NO_DOT: `(?!${DOT_LITERAL})`, NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, QMARK_NO_DOT: `[^.${WIN_SLASH}]`, START_ANCHOR: `(?:^|[${WIN_SLASH}])`, END_ANCHOR: `(?:[${WIN_SLASH}]|$)` }, POSIX_REGEX_SOURCE = { alnum: "a-zA-Z0-9", alpha: "a-zA-Z", ascii: "\\x00-\\x7F", blank: " \\t", cntrl: "\\x00-\\x1F\\x7F", digit: "0-9", graph: "\\x21-\\x7E", lower: "a-z", print: "\\x20-\\x7E ", punct: "\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~", space: " \\t\\r\\n\\v\\f", upper: "A-Z", word: "A-Za-z0-9_", xdigit: "A-Fa-f0-9" }; module.exports = { MAX_LENGTH: 1024 * 64, POSIX_REGEX_SOURCE, // regular expressions REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, // Replace globs with equivalent patterns to reduce parsing time. REPLACEMENTS: { "***": "*", "**/**": "**", "**/**/**": "**" }, // Digits CHAR_0: 48, /* 0 */ CHAR_9: 57, /* 9 */ // Alphabet chars. CHAR_UPPERCASE_A: 65, /* A */ CHAR_LOWERCASE_A: 97, /* a */ CHAR_UPPERCASE_Z: 90, /* Z */ CHAR_LOWERCASE_Z: 122, /* z */ CHAR_LEFT_PARENTHESES: 40, /* ( */ CHAR_RIGHT_PARENTHESES: 41, /* ) */ CHAR_ASTERISK: 42, /* * */ // Non-alphabetic chars. CHAR_AMPERSAND: 38, /* & */ CHAR_AT: 64, /* @ */ CHAR_BACKWARD_SLASH: 92, /* \ */ CHAR_CARRIAGE_RETURN: 13, /* \r */ CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */ CHAR_COLON: 58, /* : */ CHAR_COMMA: 44, /* , */ CHAR_DOT: 46, /* . */ CHAR_DOUBLE_QUOTE: 34, /* " */ CHAR_EQUAL: 61, /* = */ CHAR_EXCLAMATION_MARK: 33, /* ! */ CHAR_FORM_FEED: 12, /* \f */ CHAR_FORWARD_SLASH: 47, /* / */ CHAR_GRAVE_ACCENT: 96, /* ` */ CHAR_HASH: 35, /* # */ CHAR_HYPHEN_MINUS: 45, /* - */ CHAR_LEFT_ANGLE_BRACKET: 60, /* < */ CHAR_LEFT_CURLY_BRACE: 123, /* { */ CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */ CHAR_LINE_FEED: 10, /* \n */ CHAR_NO_BREAK_SPACE: 160, /* \u00A0 */ CHAR_PERCENT: 37, /* % */ CHAR_PLUS: 43, /* + */ CHAR_QUESTION_MARK: 63, /* ? */ CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */ CHAR_RIGHT_CURLY_BRACE: 125, /* } */ CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */ CHAR_SEMICOLON: 59, /* ; */ CHAR_SINGLE_QUOTE: 39, /* ' */ CHAR_SPACE: 32, /* */ CHAR_TAB: 9, /* \t */ CHAR_UNDERSCORE: 95, /* _ */ CHAR_VERTICAL_LINE: 124, /* | */ CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \uFEFF */ SEP: path.sep, /** * Create EXTGLOB_CHARS */ extglobChars(chars) { return { "!": { type: "negate", open: "(?:(?!(?:", close: `))${chars.STAR})` }, "?": { type: "qmark", open: "(?:", close: ")?" }, "+": { type: "plus", open: "(?:", close: ")+" }, "*": { type: "star", open: "(?:", close: ")*" }, "@": { type: "at", open: "(?:", close: ")" } }; }, /** * Create GLOB_CHARS */ globChars(win32) { return win32 === !0 ? WINDOWS_CHARS : POSIX_CHARS; } }; } }); // ../node_modules/picomatch/lib/utils.js var require_utils = __commonJS({ "../node_modules/picomatch/lib/utils.js"(exports) { "use strict"; var path = __require("path"), win32 = process.platform === "win32", { REGEX_BACKSLASH, REGEX_REMOVE_BACKSLASH, REGEX_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_GLOBAL } = require_constants(); exports.isObject = (val) => val !== null && typeof val == "object" && !Array.isArray(val); exports.hasRegexChars = (str) => REGEX_SPECIAL_CHARS.test(str); exports.isRegexChar = (str) => str.length === 1 && exports.hasRegexChars(str); exports.escapeRegex = (str) => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, "\\$1"); exports.toPosixSlashes = (str) => str.replace(REGEX_BACKSLASH, "/"); exports.removeBackslashes = (str) => str.replace(REGEX_REMOVE_BACKSLASH, (match) => match === "\\" ? "" : match); exports.supportsLookbehinds = () => { let segs = process.version.slice(1).split(".").map(Number); return segs.length === 3 && segs[0] >= 9 || segs[0] === 8 && segs[1] >= 10; }; exports.isWindows = (options) => options && typeof options.windows == "boolean" ? options.windows : win32 === !0 || path.sep === "\\"; exports.escapeLast = (input, char, lastIdx) => { let idx = input.lastIndexOf(char, lastIdx); return idx === -1 ? input : input[idx - 1] === "\\" ? exports.escapeLast(input, char, idx - 1) : `${input.slice(0, idx)}\\${input.slice(idx)}`; }; exports.removePrefix = (input, state = {}) => { let output = input; return output.startsWith("./") && (output = output.slice(2), state.prefix = "./"), output; }; exports.wrapOutput = (input, state = {}, options = {}) => { let prepend = options.contains ? "" : "^", append = options.contains ? "" : "$", output = `${prepend}(?:${input})${append}`; return state.negated === !0 && (output = `(?:^(?!${output}).*$)`), output; }; } }); // ../node_modules/picomatch/lib/scan.js var require_scan = __commonJS({ "../node_modules/picomatch/lib/scan.js"(exports, module) { "use strict"; var utils = require_utils(), { CHAR_ASTERISK, /* * */ CHAR_AT, /* @ */ CHAR_BACKWARD_SLASH, /* \ */ CHAR_COMMA, /* , */ CHAR_DOT, /* . */ CHAR_EXCLAMATION_MARK, /* ! */ CHAR_FORWARD_SLASH, /* / */ CHAR_LEFT_CURLY_BRACE, /* { */ CHAR_LEFT_PARENTHESES, /* ( */ CHAR_LEFT_SQUARE_BRACKET, /* [ */ CHAR_PLUS, /* + */ CHAR_QUESTION_MARK, /* ? */ CHAR_RIGHT_CURLY_BRACE, /* } */ CHAR_RIGHT_PARENTHESES, /* ) */ CHAR_RIGHT_SQUARE_BRACKET /* ] */ } = require_constants(), isPathSeparator = (code) => code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH, depth = (token) => { token.isPrefix !== !0 && (token.depth = token.isGlobstar ? 1 / 0 : 1); }, scan = (input, options) => { let opts = options || {}, length = input.length - 1, scanToEnd = opts.parts === !0 || opts.scanToEnd === !0, slashes = [], tokens = [], parts = [], str = input, index = -1, start = 0, lastIndex = 0, isBrace = !1, isBracket = !1, isGlob = !1, isExtglob = !1, isGlobstar = !1, braceEscaped = !1, backslashes = !1, negated = !1, negatedExtglob = !1, finished = !1, braces = 0, prev, code, token = { value: "", depth: 0, isGlob: !1 }, eos = () => index >= length, peek = () => str.charCodeAt(index + 1), advance = () => (prev = code, str.charCodeAt(++index)); for (; index < length; ) { code = advance(); let next; if (code === CHAR_BACKWARD_SLASH) { backslashes = token.backslashes = !0, code = advance(), code === CHAR_LEFT_CURLY_BRACE && (braceEscaped = !0); continue; } if (braceEscaped === !0 || code === CHAR_LEFT_CURLY_BRACE) { for (braces++; eos() !== !0 && (code = advance()); ) { if (code === CHAR_BACKWARD_SLASH) { backslashes = token.backslashes = !0, advance(); continue; } if (code === CHAR_LEFT_CURLY_BRACE) { braces++; continue; } if (braceEscaped !== !0 && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { if (isBrace = token.isBrace = !0, isGlob = token.isGlob = !0, finished = !0, scanToEnd === !0) continue; break; } if (braceEscaped !== !0 && code === CHAR_COMMA) { if (isBrace = token.isBrace = !0, isGlob = token.isGlob = !0, finished = !0, scanToEnd === !0) continue; break; } if (code === CHAR_RIGHT_CURLY_BRACE && (braces--, braces === 0)) { braceEscaped = !1, isBrace = token.isBrace = !0, finished = !0; break; } } if (scanToEnd === !0) continue; break; } if (code === CHAR_FORWARD_SLASH) { if (slashes.push(index), tokens.push(token), token = { value: "", depth: 0, isGlob: !1 }, finished === !0) continue; if (prev === CHAR_DOT && index === start + 1) { start += 2; continue; } lastIndex = index + 1; continue; } if (opts.noext !== !0 && (code === CHAR_PLUS || code === CHAR_AT || code === CHAR_ASTERISK || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK) === !0 && peek() === CHAR_LEFT_PARENTHESES) { if (isGlob = token.isGlob = !0, isExtglob = token.isExtglob = !0, finished = !0, code === CHAR_EXCLAMATION_MARK && index === start && (negatedExtglob = !0), scanToEnd === !0) { for (; eos() !== !0 && (code = advance()); ) { if (code === CHAR_BACKWARD_SLASH) { backslashes = token.backslashes = !0, code = advance(); continue; } if (code === CHAR_RIGHT_PARENTHESES) { isGlob = token.isGlob = !0, finished = !0; break; } } continue; } break; } if (code === CHAR_ASTERISK) { if (prev === CHAR_ASTERISK && (isGlobstar = token.isGlobstar = !0), isGlob = token.isGlob = !0, finished = !0, scanToEnd === !0) continue; break; } if (code === CHAR_QUESTION_MARK) { if (isGlob = token.isGlob = !0, finished = !0, scanToEnd === !0) continue; break; } if (code === CHAR_LEFT_SQUARE_BRACKET) { for (; eos() !== !0 && (next = advance()); ) { if (next === CHAR_BACKWARD_SLASH) { backslashes = token.backslashes = !0, advance(); continue; } if (next === CHAR_RIGHT_SQUARE_BRACKET) { isBracket = token.isBracket = !0, isGlob = token.isGlob = !0, finished = !0; break; } } if (scanToEnd === !0) continue; break; } if (opts.nonegate !== !0 && code === CHAR_EXCLAMATION_MARK && index === start) { negated = token.negated = !0, start++; continue; } if (opts.noparen !== !0 && code === CHAR_LEFT_PARENTHESES) { if (isGlob = token.isGlob = !0, scanToEnd === !0) { for (; eos() !== !0 && (code = advance()); ) { if (code === CHAR_LEFT_PARENTHESES) { backslashes = token.backslashes = !0, code = advance(); continue; } if (code === CHAR_RIGHT_PARENTHESES) { finished = !0; break; } } continue; } break; } if (isGlob === !0) { if (finished = !0, scanToEnd === !0) continue; break; } } opts.noext === !0 && (isExtglob = !1, isGlob = !1); let base = str, prefix = "", glob = ""; start > 0 && (prefix = str.slice(0, start), str = str.slice(start), lastIndex -= start), base && isGlob === !0 && lastIndex > 0 ? (base = str.slice(0, lastIndex), glob = str.slice(lastIndex)) : isGlob === !0 ? (base = "", glob = str) : base = str, base && base !== "" && base !== "/" && base !== str && isPathSeparator(base.charCodeAt(base.length - 1)) && (base = base.slice(0, -1)), opts.unescape === !0 && (glob && (glob = utils.removeBackslashes(glob)), base && backslashes === !0 && (base = utils.removeBackslashes(base))); let state = { prefix, input, start, base, glob, isBrace, isBracket, isGlob, isExtglob, isGlobstar, negated, negatedExtglob }; if (opts.tokens === !0 && (state.maxDepth = 0, isPathSeparator(code) || tokens.push(token), state.tokens = tokens), opts.parts === !0 || opts.tokens === !0) { let prevIndex; for (let idx = 0; idx < slashes.length; idx++) { let n = prevIndex ? prevIndex + 1 : start, i = slashes[idx], value = input.slice(n, i); opts.tokens && (idx === 0 && start !== 0 ? (tokens[idx].isPrefix = !0, tokens[idx].value = prefix) : tokens[idx].value = value, depth(tokens[idx]), state.maxDepth += tokens[idx].depth), (idx !== 0 || value !== "") && parts.push(value), prevIndex = i; } if (prevIndex && prevIndex + 1 < input.length) { let value = input.slice(prevIndex + 1); parts.push(value), opts.tokens && (tokens[tokens.length - 1].value = value, depth(tokens[tokens.length - 1]), state.maxDepth += tokens[tokens.length - 1].depth); } state.slashes = slashes, state.parts = parts; } return state; }; module.exports = scan; } }); // ../node_modules/picomatch/lib/parse.js var require_parse = __commonJS({ "../node_modules/picomatch/lib/parse.js"(exports, module) { "use strict"; var constants = require_constants(), utils = require_utils(), { MAX_LENGTH, POSIX_REGEX_SOURCE, REGEX_NON_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_BACKREF, REPLACEMENTS } = constants, expandRange = (args, options) => { if (typeof options.expandRange == "function") return options.expandRange(...args, options); args.sort(); let value = `[${args.join("-")}]`; try { new RegExp(value); } catch { return args.map((v) => utils.escapeRegex(v)).join(".."); } return value; }, syntaxError = (type, char) => `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`, parse = (input, options) => { if (typeof input != "string") throw new TypeError("Expected a string"); input = REPLACEMENTS[input] || input; let opts = { ...options }, max = typeof opts.maxLength == "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH, len = input.length; if (len > max) throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); let bos = { type: "bos", value: "", output: opts.prepend || "" }, tokens = [bos], capture = opts.capture ? "" : "?:", win32 = utils.isWindows(options), PLATFORM_CHARS = constants.globChars(win32), EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS), { DOT_LITERAL, PLUS_LITERAL, SLASH_LITERAL, ONE_CHAR, DOTS_SLASH, NO_DOT, NO_DOT_SLASH, NO_DOTS_SLASH, QMARK, QMARK_NO_DOT, STAR, START_ANCHOR } = PLATFORM_CHARS, globstar = (opts2) => `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`, nodot = opts.dot ? "" : NO_DOT, qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT, star = opts.bash === !0 ? globstar(opts) : STAR; opts.capture && (star = `(${star})`), typeof opts.noext == "boolean" && (opts.noextglob = opts.noext); let state = { input, index: -1, start: 0, dot: opts.dot === !0, consumed: "", output: "", prefix: "", backtrack: !1, negated: !1, brackets: 0, braces: 0, parens: 0, quotes: 0, globstar: !1, tokens }; input = utils.removePrefix(input, state), len = input.length; let extglobs = [], braces = [], stack = [], prev = bos, value, eos = () => state.index === len - 1, peek = state.peek = (n = 1) => input[state.index + n], advance = state.advance = () => input[++state.index] || "", remaining = () => input.slice(state.index + 1), consume = (value2 = "", num = 0) => { state.consumed += value2, state.index += num; }, append = (token) => { state.output += token.output != null ? token.output : token.value, consume(token.value); }, negate = () => { let count = 1; for (; peek() === "!" && (peek(2) !== "(" || peek(3) === "?"); ) advance(), state.start++, count++; return count % 2 === 0 ? !1 : (state.negated = !0, state.start++, !0); }, increment = (type) => { state[type]++, stack.push(type); }, decrement = (type) => { state[type]--, stack.pop(); }, push = (tok) => { if (prev.type === "globstar") { let isBrace = state.braces > 0 && (tok.type === "comma" || tok.type === "brace"), isExtglob = tok.extglob === !0 || extglobs.length && (tok.type === "pipe" || tok.type === "paren"); tok.type !== "slash" && tok.type !== "paren" && !isBrace && !isExtglob && (state.output = state.output.slice(0, -prev.output.length), prev.type = "star", prev.value = "*", prev.output = star, state.output += prev.output); } if (extglobs.length && tok.type !== "paren" && (extglobs[extglobs.length - 1].inner += tok.value), (tok.value || tok.output) && append(tok), prev && prev.type === "text" && tok.type === "text") { prev.value += tok.value, prev.output = (prev.output || "") + tok.value; return; } tok.prev = prev, tokens.push(tok), prev = tok; }, extglobOpen = (type, value2) => { let token = { ...EXTGLOB_CHARS[value2], conditions: 1, inner: "" }; token.prev = prev, token.parens = state.parens, token.output = state.output; let output = (opts.capture ? "(" : "") + token.open; increment("parens"), push({ type, value: value2, output: state.output ? "" : ONE_CHAR }), push({ type: "paren", extglob: !0, value: advance(), output }), extglobs.push(token); }, extglobClose = (token) => { let output = token.close + (opts.capture ? ")" : ""), rest; if (token.type === "negate") { let extglobStar = star; if (token.inner && token.inner.length > 1 && token.inner.includes("/") && (extglobStar = globstar(opts)), (extglobStar !== star || eos() || /^\)+$/.test(remaining())) && (output = token.close = `)$))${extglobStar}`), token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) { let expression = parse(rest, { ...options, fastpaths: !1 }).output; output = token.close = `)${expression})${extglobStar})`; } token.prev.type === "bos" && (state.negatedExtglob = !0); } push({ type: "paren", extglob: !0, value, output }), decrement("parens"); }; if (opts.fastpaths !== !1 && !/(^[*!]|[/()[\]{}"])/.test(input)) { let backslashes = !1, output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => first === "\\" ? (backslashes = !0, m) : first === "?" ? esc ? esc + first + (rest ? QMARK.repeat(rest.length) : "") : index === 0 ? qmarkNoDot + (rest ? QMARK.repeat(rest.length) : "") : QMARK.repeat(chars.length) : first === "." ? DOT_LITERAL.repeat(chars.length) : first === "*" ? esc ? esc + first + (rest ? star : "") : star : esc ? m : `\\${m}`); return backslashes === !0 && (opts.unescape === !0 ? output = output.replace(/\\/g, "") : output = output.replace(/\\+/g, (m) => m.length % 2 === 0 ? "\\\\" : m ? "\\" : "")), output === input && opts.contains === !0 ? (state.output = input, state) : (state.output = utils.wrapOutput(output, state, options), state); } for (; !eos(); ) { if (value = advance(), value === "\0") continue; if (value === "\\") { let next = peek(); if (next === "/" && opts.bash !== !0 || next === "." || next === ";") continue; if (!next) { value += "\\", push({ type: "text", value }); continue; } let match = /^\\+/.exec(remaining()), slashes = 0; if (match && match[0].length > 2 && (slashes = match[0].length, state.index += slashes, slashes % 2 !== 0 && (value += "\\")), opts.unescape === !0 ? value = advance() : value += advance(), state.brackets === 0) { push({ type: "text", value }); continue; } } if (state.brackets > 0 && (value !== "]" || prev.value === "[" || prev.value === "[^")) { if (opts.posix !== !1 && value === ":") { let inner = prev.value.slice(1); if (inner.includes("[") && (prev.posix = !0, inner.includes(":"))) { let idx = prev.value.lastIndexOf("["), pre = prev.value.slice(0, idx), rest2 = prev.value.slice(idx + 2), posix = POSIX_REGEX_SOURCE[rest2]; if (posix) { prev.value = pre + posix, state.backtrack = !0, advance(), !bos.output && tokens.indexOf(prev) === 1 && (bos.output = ONE_CHAR); continue; } } } (value === "[" && peek() !== ":" || value === "-" && peek() === "]") && (value = `\\${value}`), value === "]" && (prev.value === "[" || prev.value === "[^") && (value = `\\${value}`), opts.posix === !0 && value === "!" && prev.value === "[" && (value = "^"), prev.value += value, append({ value }); continue; } if (state.quotes === 1 && value !== '"') { value = utils.escapeRegex(value), prev.value += value, append({ value }); continue; } if (value === '"') { state.quotes = state.quotes === 1 ? 0 : 1, opts.keepQuotes === !0 && push({ type: "text", value }); continue; } if (value === "(") { increment("parens"), push({ type: "paren", value }); continue; } if (value === ")") { if (state.parens === 0 && opts.strictBrackets === !0) throw new SyntaxError(syntaxError("opening", "(")); let extglob = extglobs[extglobs.length - 1]; if (extglob && state.parens === extglob.parens + 1) { extglobClose(extglobs.pop()); continue; } push({ type: "paren", value, output: state.parens ? ")" : "\\)" }), decrement("parens"); continue; } if (value === "[") { if (opts.nobracket === !0 || !remaining().includes("]")) { if (opts.nobracket !== !0 && opts.strictBrackets === !0) throw new SyntaxError(syntaxError("closing", "]")); value = `\\${value}`; } else increment("brackets"); push({ type: "bracket", value }); continue; } if (value === "]") { if (opts.nobracket === !0 || prev && prev.type === "bracket" && prev.value.length === 1) { push({ type: "text", value, output: `\\${value}` }); continue; } if (state.brackets === 0) { if (opts.strictBrackets === !0) throw new SyntaxError(syntaxError("opening", "[")); push({ type: "text", value, output: `\\${value}` }); continue; } decrement("brackets"); let prevValue = prev.value.slice(1); if (prev.posix !== !0 && prevValue[0] === "^" && !prevValue.includes("/") && (value = `/${value}`), prev.value += value, append({ value }), opts.literalBrackets === !1 || utils.hasRegexChars(prevValue)) continue; let escaped = utils.escapeRegex(prev.value); if (state.output = state.output.slice(0, -prev.value.length), opts.literalBrackets === !0) { state.output += escaped, prev.value = escaped; continue; } prev.value = `(${capture}${escaped}|${prev.value})`, state.output += prev.value; continue; } if (value === "{" && opts.nobrace !== !0) { increment("braces"); let open = { type: "brace", value, output: "(", outputIndex: state.output.length, tokensIndex: state.tokens.length }; braces.push(open), push(open); continue; } if (value === "}") { let brace = braces[braces.length - 1]; if (opts.nobrace === !0 || !brace) { push({ type: "text", value, output: value }); continue; } let output = ")"; if (brace.dots === !0) { let arr = tokens.slice(), range = []; for (let i = arr.length - 1; i >= 0 && (tokens.pop(), arr[i].type !== "brace"); i--) arr[i].type !== "dots" && range.unshift(arr[i].value); output = expandRange(range, opts), state.backtrack = !0; } if (brace.comma !== !0 && brace.dots !== !0) { let out = state.output.slice(0, brace.outputIndex), toks = state.tokens.slice(brace.tokensIndex); brace.value = brace.output = "\\{", value = output = "\\}", state.output = out; for (let t of toks) state.output += t.output || t.value; } push({ type: "brace", value, output }), decrement("braces"), braces.pop(); continue; } if (value === "|") { extglobs.length > 0 && extglobs[extglobs.length - 1].conditions++, push({ type: "text", value }); continue; } if (value === ",") { let output = value, brace = braces[braces.length - 1]; brace && stack[stack.length - 1] === "braces" && (brace.comma = !0, output = "|"), push({ type: "comma", value, output }); continue; } if (value === "/") { if (prev.type === "dot" && state.index === state.start + 1) { state.start = state.index + 1, state.consumed = "", state.output = "", tokens.pop(), prev = bos; continue; } push({ type: "slash", value, output: SLASH_LITERAL }); continue; } if (value === ".") { if (state.braces > 0 && prev.type === "dot") { prev.value === "." && (prev.output = DOT_LITERAL); let brace = braces[braces.length - 1]; prev.type = "dots", prev.output += value, prev.value += value, brace.dots = !0; continue; } if (state.braces + state.parens === 0 && prev.type !== "bos" && prev.type !== "slash") { push({ type: "text", value, output: DOT_LITERAL }); continue; } push({ type: "dot", value, output: DOT_LITERAL }); continue; } if (value === "?") { if (!(prev && prev.value === "(") && opts.noextglob !== !0 && peek() === "(" && peek(2) !== "?") { extglobOpen("qmark", value); continue; } if (prev && prev.type === "paren") { let next = peek(), output = value; if (next === "<" && !utils.supportsLookbehinds()) throw new Error("Node.js v10 or higher is required for regex lookbehinds"); (prev.value === "(" && !/[!=<:]/.test(next) || next === "<" && !/<([!=]|\w+>)/.test(remaining())) && (output = `\\${value}`), push({ type: "text", value, output }); continue; } if (opts.dot !== !0 && (prev.type === "slash" || prev.type === "bos")) { push({ type: "qmark", value, output: QMARK_NO_DOT }); continue; } push({ type: "qmark", value, output: QMARK }); continue; } if (value === "!") { if (opts.noextglob !== !0 && peek() === "(" && (peek(2) !== "?" || !/[!=<:]/.test(peek(3)))) { extglobOpen("negate", value); continue; } if (opts.nonegate !== !0 && state.index === 0) { negate(); continue; } } if (value === "+") { if (opts.noextglob !== !0 && peek() === "(" && peek(2) !== "?") { extglobOpen("plus", value); continue; } if (prev && prev.value === "(" || opts.regex === !1) { push({ type: "plus", value, output: PLUS_LITERAL }); continue; } if (prev && (prev.type === "bracket" || prev.type === "paren" || prev.type === "brace") || state.parens > 0) { push({ type: "plus", value }); continue; } push({ type: "plus", value: PLUS_LITERAL }); continue; } if (value === "@") { if (opts.noextglob !== !0 && peek() === "(" && peek(2) !== "?") { push({ type: "at", extglob: !0, value, output: "" }); continue; } push({ type: "text", value }); continue; } if (value !== "*") { (value === "$" || value === "^") && (value = `\\${value}`); let match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); match && (value += match[0], state.index += match[0].length), push({ type: "text", value }); continue; } if (prev && (prev.type === "globstar" || prev.star === !0)) { prev.type = "star", prev.star = !0, prev.value += value, prev.output = star, state.backtrack = !0, state.globstar = !0, consume(value); continue; } let rest = remaining(); if (opts.noextglob !== !0 && /^\([^?]/.test(rest)) { extglobOpen("star", value); continue; } if (prev.type === "star") { if (opts.noglobstar === !0) { consume(value); continue; } let prior = prev.prev, before = prior.prev, isStart = prior.type === "slash" || prior.type === "bos", afterStar = before && (before.type === "star" || before.type === "globstar"); if (opts.bash === !0 && (!isStart || rest[0] && rest[0] !== "/")) { push({ type: "star", value, output: "" }); continue; } let isBrace = state.braces > 0 && (prior.type === "comma" || prior.type === "brace"), isExtglob = extglobs.length && (prior.type === "pipe" || prior.type === "paren"); if (!isStart && prior.type !== "paren" && !isBrace && !isExtglob) { push({ type: "star", value, output: "" }); continue; } for (; rest.slice(0, 3) === "/**"; ) { let after = input[state.index + 4]; if (after && after !== "/") break; rest = rest.slice(3), consume("/**", 3); } if (prior.type === "bos" && eos()) { prev.type = "globstar", prev.value += value, prev.output = globstar(opts), state.output = prev.output, state.globstar = !0, consume(value); continue; } if (prior.type === "slash" && prior.prev.type !== "bos" && !afterStar && eos()) { state.output = state.output.slice(0, -(prior.output + prev.output).length), prior.output = `(?:${prior.output}`, prev.type = "globstar", prev.output = globstar(opts) + (opts.strictSlashes ? ")" : "|$)"), prev.value += value, state.globstar = !0, state.output += prior.output + prev.output, consume(value); continue; } if (prior.type === "slash" && prior.prev.type !== "bos" && rest[0] === "/") { let end = rest[1] !== void 0 ? "|$" : ""; state.output = state.output.slice(0, -(prior.output + prev.output).length), prior.output = `(?:${prior.output}`, prev.type = "globstar", prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`, prev.value += value, state.output += prior.output + prev.output, state.globstar = !0, consume(value + advance()), push({ type: "slash", value: "/", output: "" }); continue; } if (prior.type === "bos" && rest[0] === "/") { prev.type = "globstar", prev.value += value, prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`, state.output = prev.output, state.globstar = !0, consume(value + advance()), push({ type: "slash", value: "/", output: "" }); continue; } state.output = state.output.slice(0, -prev.output.length), prev.type = "globstar", prev.output = globstar(opts), prev.value += value, state.output += prev.output, state.globstar = !0, consume(value); continue; } let token = { type: "star", value, output: star }; if (opts.bash === !0) { token.output = ".*?", (prev.type === "bos" || prev.type === "slash") && (token.output = nodot + token.output), push(token); continue; } if (prev && (prev.type === "bracket" || prev.type === "paren") && opts.regex === !0) { token.output = value, push(token); continue; } (state.index === state.start || prev.type === "slash" || prev.type === "dot") && (prev.type === "dot" ? (state.output += NO_DOT_SLASH, prev.output += NO_DOT_SLASH) : opts.dot === !0 ? (state.output += NO_DOTS_SLASH, prev.output += NO_DOTS_SLASH) : (state.output += nodot, prev.output += nodot), peek() !== "*" && (state.output += ONE_CHAR, prev.output += ONE_CHAR)), push(token); } for (; state.brackets > 0; ) { if (opts.strictBrackets === !0) throw new SyntaxError(syntaxError("closing", "]")); state.output = utils.escapeLast(state.output, "["), decrement("brackets"); } for (; state.parens > 0; ) { if (opts.strictBrackets === !0) throw new SyntaxError(syntaxError("closing", ")")); state.output = utils.escapeLast(state.output, "("), decrement("parens"); } for (; state.braces > 0; ) { if (opts.strictBrackets === !0) throw new SyntaxError(syntaxError("closing", "}")); state.output = utils.escapeLast(state.output, "{"), decrement("braces"); } if (opts.strictSlashes !== !0 && (prev.type === "star" || prev.type === "bracket") && push({ type: "maybe_slash", value: "", output: `${SLASH_LITERAL}?` }), state.backtrack === !0) { state.output = ""; for (let token of state.tokens) state.output += token.output != null ? token.output : token.value, token.suffix && (state.output += token.suffix); } return state; }; parse.fastpaths = (input, options) => { let opts = { ...options }, max = typeof opts.maxLength == "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH, len = input.length; if (len > max) throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); input = REPLACEMENTS[input] || input; let win32 = utils.isWindows(options), { DOT_LITERAL, SLASH_LITERAL, ONE_CHAR, DOTS_SLASH, NO_DOT, NO_DOTS, NO_DOTS_SLASH, STAR, START_ANCHOR } = constants.globChars(win32), nodot = opts.dot ? NO_DOTS : NO_DOT, slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT, capture = opts.capture ? "" : "?:", state = { negated: !1, prefix: "" }, star = opts.bash === !0 ? ".*?" : STAR; opts.capture && (star = `(${star})`); let globstar = (opts2) => opts2.noglobstar === !0 ? star : `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`, create = (str) => { switch (str) { case "*": return `${nodot}${ONE_CHAR}${star}`; case ".*": return `${DOT_LITERAL}${ONE_CHAR}${star}`; case "*.*": return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; case "*/*": return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; case "**": return nodot + globstar(opts); case "**/*": return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; case "**/*.*": return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; case "**/.*": return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; default: { let match = /^(.*?)\.(\w+)$/.exec(str); if (!match) return; let source2 = create(match[1]); return source2 ? source2 + DOT_LITERAL + match[2] : void 0; } } }, output = utils.removePrefix(input, state), source = create(output); return source && opts.strictSlashes !== !0 && (source += `${SLASH_LITERAL}?`), source; }; module.exports = parse; } }); // ../node_modules/picomatch/lib/picomatch.js var require_picomatch = __commonJS({ "../node_modules/picomatch/lib/picomatch.js"(exports, module) { "use strict"; var path = __require("path"), scan = require_scan(), parse = require_parse(), utils = require_utils(), constants = require_constants(), isObject = (val) => val && typeof val == "object" && !Array.isArray(val), picomatch = (glob, options, returnState = !1) => { if (Array.isArray(glob)) { let fns = glob.map((input) => picomatch(input, options, returnState)); return (str) => { for (let isMatch of fns) { let state2 = isMatch(str); if (state2) return state2; } return !1; }; } let isState = isObject(glob) && glob.tokens && glob.input; if (glob === "" || typeof glob != "string" && !isState) throw new TypeError("Expected pattern to be a non-empty string"); let opts = options || {}, posix = utils.isWindows(options), regex = isState ? picomatch.compileRe(glob, options) : picomatch.makeRe(glob, options, !1, !0), state = regex.state; delete regex.state; let isIgnored = () => !1; if (opts.ignore) { let ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null }; isIgnored = picomatch(opts.ignore, ignoreOpts, returnState); } let matcher = (input, returnObject = !1) => { let { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix }), result = { glob, state, regex, posix, input, output, match, isMatch }; return typeof opts.onResult == "function" && opts.onResult(result), isMatch === !1 ? (result.isMatch = !1, returnObject ? result : !1) : isIgnored(input) ? (typeof opts.onIgnore == "function" && opts.onIgnore(result), result.isMatch = !1, returnObject ? result : !1) : (typeof opts.onMatch == "function" && opts.onMatch(result), returnObject ? result : !0); }; return returnState && (matcher.state = state), matcher; }; picomatch.test = (input, regex, options, { glob, posix } = {}) => { if (typeof input != "string") throw new TypeError("Expected input to be a string"); if (input === "") return { isMatch: !1, output: "" }; let opts = options || {}, format = opts.format || (posix ? utils.toPosixSlashes : null), match = input === glob, output = match && format ? format(input) : input; return match === !1 && (output = format ? format(input) : input, match = output === glob), (match === !1 || opts.capture === !0) && (opts.matchBase === !0 || opts.basename === !0 ? match = picomatch.matchBase(input, regex, options, posix) : match = regex.exec(output)), { isMatch: !!match, match, output }; }; picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => (glob instanceof RegExp ? glob : picomatch.makeRe(glob, options)).test(path.basename(input)); picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); picomatch.parse = (pattern, options) => Array.isArray(pattern) ? pattern.map((p) => picomatch.parse(p, options)) : parse(pattern, { ...options, fastpaths: !1 }); picomatch.scan = (input, options) => scan(input, options); picomatch.compileRe = (state, options, returnOutput = !1, returnState = !1) => { if (returnOutput === !0) return state.output; let opts = options || {}, prepend = opts.contains ? "" : "^", append = opts.contains ? "" : "$", source = `${prepend}(?:${state.output})${append}`; state && state.negated === !0 && (source = `^(?!${source}).*$`); let regex = picomatch.toRegex(source, options); return returnState === !0 && (regex.state = state), regex; }; picomatch.makeRe = (input, options = {}, returnOutput = !1, returnState = !1) => { if (!input || typeof input != "string") throw new TypeError("Expected a non-empty string"); let parsed = { negated: !1, fastpaths: !0 }; return options.fastpaths !== !1 && (input[0] === "." || input[0] === "*") && (parsed.output = parse.fastpaths(input, options)), parsed.output || (parsed = parse(input, options)), picomatch.compileRe(parsed, options, returnOutput, returnState); }; picomatch.toRegex = (source, options) => { try { let opts = options || {}; return new RegExp(source, opts.flags || (opts.nocase ? "i" : "")); } catch (err) { if (options && options.debug === !0) throw err; return /$^/; } }; picomatch.constants = constants; module.exports = picomatch; } }); // ../node_modules/picomatch/index.js var require_picomatch2 = __commonJS({ "../node_modules/picomatch/index.js"(exports, module) { "use strict"; module.exports = require_picomatch(); } }); export { require_utils, require_picomatch2 as require_picomatch };