@xyd-js/cli 0.1.0-xyd.21 → 0.1.0-xyd.3
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/.cli/dist/index.js +12417 -0
- package/.cli/host/.react-router/types/app/+types/root.ts +40 -0
- package/.cli/host/node_modules/.vite/deps/@mdx-js_mdx.js +81 -0
- package/.cli/host/node_modules/.vite/deps/@mdx-js_mdx.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/@mdx-js_rollup.js +4003 -0
- package/.cli/host/node_modules/.vite/deps/@mdx-js_rollup.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/@radix-ui_react-icons.js +7531 -0
- package/.cli/host/node_modules/.vite/deps/@radix-ui_react-icons.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/@radix-ui_react-tabs.js +917 -0
- package/.cli/host/node_modules/.vite/deps/@radix-ui_react-tabs.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/_metadata.json +157 -0
- package/.cli/host/node_modules/.vite/deps/chunk-2TUXWMP5.js +46 -0
- package/.cli/host/node_modules/.vite/deps/chunk-2TUXWMP5.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/chunk-DNIFH2K7.js +3461 -0
- package/.cli/host/node_modules/.vite/deps/chunk-DNIFH2K7.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/chunk-ERHH4CDL.js +23875 -0
- package/.cli/host/node_modules/.vite/deps/chunk-ERHH4CDL.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/chunk-ETJV5QNK.js +27 -0
- package/.cli/host/node_modules/.vite/deps/chunk-ETJV5QNK.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/chunk-GPEJJ3KZ.js +1906 -0
- package/.cli/host/node_modules/.vite/deps/chunk-GPEJJ3KZ.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/chunk-IVP26VTC.js +21 -0
- package/.cli/host/node_modules/.vite/deps/chunk-IVP26VTC.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/chunk-MJUUSK53.js +894 -0
- package/.cli/host/node_modules/.vite/deps/chunk-MJUUSK53.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/chunk-NHN7DW4J.js +928 -0
- package/.cli/host/node_modules/.vite/deps/chunk-NHN7DW4J.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/chunk-OO6QDGMA.js +10609 -0
- package/.cli/host/node_modules/.vite/deps/chunk-OO6QDGMA.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/chunk-OUN4SSIE.js +205 -0
- package/.cli/host/node_modules/.vite/deps/chunk-OUN4SSIE.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/chunk-TKNG6GUJ.js +894 -0
- package/.cli/host/node_modules/.vite/deps/chunk-TKNG6GUJ.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/chunk-TM4FKLNO.js +21628 -0
- package/.cli/host/node_modules/.vite/deps/chunk-TM4FKLNO.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/chunk-V2IF7L2E.js +12 -0
- package/.cli/host/node_modules/.vite/deps/chunk-V2IF7L2E.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/gray-matter.js +3492 -0
- package/.cli/host/node_modules/.vite/deps/gray-matter.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/lucide-react.js +34742 -0
- package/.cli/host/node_modules/.vite/deps/lucide-react.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/package.json +3 -0
- package/.cli/host/node_modules/.vite/deps/react-dom.js +7 -0
- package/.cli/host/node_modules/.vite/deps/react-dom.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/react-dom_client.js +39 -0
- package/.cli/host/node_modules/.vite/deps/react-dom_client.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/react-router.js +243 -0
- package/.cli/host/node_modules/.vite/deps/react-router.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/react-router_dom.js +212 -0
- package/.cli/host/node_modules/.vite/deps/react-router_dom.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/react.js +6 -0
- package/.cli/host/node_modules/.vite/deps/react.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/react_jsx-dev-runtime.js +913 -0
- package/.cli/host/node_modules/.vite/deps/react_jsx-dev-runtime.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/react_jsx-runtime.js +7 -0
- package/.cli/host/node_modules/.vite/deps/react_jsx-runtime.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/remark-frontmatter.js +428 -0
- package/.cli/host/node_modules/.vite/deps/remark-frontmatter.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/remark-gfm.js +3122 -0
- package/.cli/host/node_modules/.vite/deps/remark-gfm.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/remark-mdx-frontmatter.js +10482 -0
- package/.cli/host/node_modules/.vite/deps/remark-mdx-frontmatter.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/unist-util-visit.js +14 -0
- package/.cli/host/node_modules/.vite/deps/unist-util-visit.js.map +7 -0
- package/.cli/host/node_modules/.vite/deps/vfile.js +8 -0
- package/.cli/host/node_modules/.vite/deps/vfile.js.map +7 -0
- package/.cli/host/package.json +43 -0
- package/.cli/plugins/xyd-plugin-zero/src/pages/api-reference.tsx +202 -79
- package/.cli/plugins/xyd-plugin-zero/src/pages/docs.tsx +3 -12
- package/bin.js +3 -0
- package/package.json +18 -15
- package/.cli/bin.js +0 -3
- package/.cli/index.js +0 -24939
- package/.cli/package-lock.json +0 -7943
- package/.cli/package.json +0 -37
- package/postinstall.js +0 -15
- /package/.cli/{index.d.ts → dist/index.d.ts} +0 -0
- /package/.cli/{app → host/app}/root.tsx +0 -0
- /package/.cli/{app → host/app}/routes.ts +0 -0
- /package/.cli/{postcss.config.cjs → host/postcss.config.cjs} +0 -0
- /package/.cli/{react-router.config.ts → host/react-router.config.ts} +0 -0
- /package/.cli/{tsconfig.json → host/tsconfig.json} +0 -0
- /package/.cli/{vite.config.ts → host/vite.config.ts} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["browser-external:path", "../../../../../../../node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/constants.js", "../../../../../../../node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/utils.js", "../../../../../../../node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/scan.js", "../../../../../../../node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/parse.js", "../../../../../../../node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/lib/picomatch.js", "../../../../../../../node_modules/.pnpm/picomatch@4.0.2/node_modules/picomatch/index.js", "../../../../../../../node_modules/.pnpm/source-map@0.7.4/node_modules/source-map/lib/base64.js", "../../../../../../../node_modules/.pnpm/source-map@0.7.4/node_modules/source-map/lib/base64-vlq.js", "../../../../../../../node_modules/.pnpm/source-map@0.7.4/node_modules/source-map/lib/util.js", "../../../../../../../node_modules/.pnpm/source-map@0.7.4/node_modules/source-map/lib/array-set.js", "../../../../../../../node_modules/.pnpm/source-map@0.7.4/node_modules/source-map/lib/mapping-list.js", "../../../../../../../node_modules/.pnpm/source-map@0.7.4/node_modules/source-map/lib/source-map-generator.js", "../../../../../../../node_modules/.pnpm/source-map@0.7.4/node_modules/source-map/lib/binary-search.js", "../../../../../../../node_modules/.pnpm/source-map@0.7.4/node_modules/source-map/lib/read-wasm.js", "../../../../../../../node_modules/.pnpm/source-map@0.7.4/node_modules/source-map/lib/wasm.js", "../../../../../../../node_modules/.pnpm/source-map@0.7.4/node_modules/source-map/lib/source-map-consumer.js", "../../../../../../../node_modules/.pnpm/source-map@0.7.4/node_modules/source-map/lib/source-node.js", "../../../../../../../node_modules/.pnpm/source-map@0.7.4/node_modules/source-map/source-map.js", "../../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.0_acorn@8.14.0/node_modules/@mdx-js/mdx/lib/util/create-format-aware-processors.js", "../../../../../../../node_modules/.pnpm/@rollup+pluginutils@5.1.4_rollup@4.30.1/node_modules/@rollup/pluginutils/dist/es/index.js", "../../../../../../../node_modules/.pnpm/@mdx-js+rollup@3.1.0_acorn@8.14.0_rollup@4.30.1/node_modules/@mdx-js/rollup/lib/index.js"],
|
|
4
|
+
"sourcesContent": ["module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"path\" has been externalized for browser compatibility. Cannot access \"path.${key}\" in client code. See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))", "'use strict';\n\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\nconst SEP = '/';\n\nconst POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR,\n SEP\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n ...POSIX_CHARS,\n\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`,\n SEP: '\\\\'\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE = {\n alnum: 'a-zA-Z0-9',\n alpha: 'a-zA-Z',\n ascii: '\\\\x00-\\\\x7F',\n blank: ' \\\\t',\n cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n digit: '0-9',\n graph: '\\\\x21-\\\\x7E',\n lower: 'a-z',\n print: '\\\\x20-\\\\x7E ',\n punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n upper: 'A-Z',\n word: 'A-Za-z0-9_',\n xdigit: 'A-Fa-f0-9'\n};\n\nmodule.exports = {\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE,\n\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n '***': '*',\n '**/**': '**',\n '**/**/**': '**'\n },\n\n // Digits\n CHAR_0: 48, /* 0 */\n CHAR_9: 57, /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65, /* A */\n CHAR_LOWERCASE_A: 97, /* a */\n CHAR_UPPERCASE_Z: 90, /* Z */\n CHAR_LOWERCASE_Z: 122, /* z */\n\n CHAR_LEFT_PARENTHESES: 40, /* ( */\n CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n CHAR_ASTERISK: 42, /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38, /* & */\n CHAR_AT: 64, /* @ */\n CHAR_BACKWARD_SLASH: 92, /* \\ */\n CHAR_CARRIAGE_RETURN: 13, /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n CHAR_COLON: 58, /* : */\n CHAR_COMMA: 44, /* , */\n CHAR_DOT: 46, /* . */\n CHAR_DOUBLE_QUOTE: 34, /* \" */\n CHAR_EQUAL: 61, /* = */\n CHAR_EXCLAMATION_MARK: 33, /* ! */\n CHAR_FORM_FEED: 12, /* \\f */\n CHAR_FORWARD_SLASH: 47, /* / */\n CHAR_GRAVE_ACCENT: 96, /* ` */\n CHAR_HASH: 35, /* # */\n CHAR_HYPHEN_MINUS: 45, /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n CHAR_LEFT_CURLY_BRACE: 123, /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n CHAR_LINE_FEED: 10, /* \\n */\n CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n CHAR_PERCENT: 37, /* % */\n CHAR_PLUS: 43, /* + */\n CHAR_QUESTION_MARK: 63, /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n CHAR_SEMICOLON: 59, /* ; */\n CHAR_SINGLE_QUOTE: 39, /* ' */\n CHAR_SPACE: 32, /* */\n CHAR_TAB: 9, /* \\t */\n CHAR_UNDERSCORE: 95, /* _ */\n CHAR_VERTICAL_LINE: 124, /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n /**\n * Create EXTGLOB_CHARS\n */\n\n extglobChars(chars) {\n return {\n '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n '?': { type: 'qmark', open: '(?:', close: ')?' },\n '+': { type: 'plus', open: '(?:', close: ')+' },\n '*': { type: 'star', open: '(?:', close: ')*' },\n '@': { type: 'at', open: '(?:', close: ')' }\n };\n },\n\n /**\n * Create GLOB_CHARS\n */\n\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n};\n", "/*global navigator*/\n'use strict';\n\nconst {\n REGEX_BACKSLASH,\n REGEX_REMOVE_BACKSLASH,\n REGEX_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_GLOBAL\n} = require('./constants');\n\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\nexports.isWindows = () => {\n if (typeof navigator !== 'undefined' && navigator.platform) {\n const platform = navigator.platform.toLowerCase();\n return platform === 'win32' || platform === 'windows';\n }\n\n if (typeof process !== 'undefined' && process.platform) {\n return process.platform === 'win32';\n }\n\n return false;\n};\n\nexports.removeBackslashes = str => {\n return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n return match === '\\\\' ? '' : match;\n });\n};\n\nexports.escapeLast = (input, char, lastIdx) => {\n const idx = input.lastIndexOf(char, lastIdx);\n if (idx === -1) return input;\n if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n};\n\nexports.removePrefix = (input, state = {}) => {\n let output = input;\n if (output.startsWith('./')) {\n output = output.slice(2);\n state.prefix = './';\n }\n return output;\n};\n\nexports.wrapOutput = (input, state = {}, options = {}) => {\n const prepend = options.contains ? '' : '^';\n const append = options.contains ? '' : '$';\n\n let output = `${prepend}(?:${input})${append}`;\n if (state.negated === true) {\n output = `(?:^(?!${output}).*$)`;\n }\n return output;\n};\n\nexports.basename = (path, { windows } = {}) => {\n const segs = path.split(windows ? /[\\\\/]/ : '/');\n const last = segs[segs.length - 1];\n\n if (last === '') {\n return segs[segs.length - 2];\n }\n\n return last;\n};\n", "'use strict';\n\nconst utils = require('./utils');\nconst {\n CHAR_ASTERISK, /* * */\n CHAR_AT, /* @ */\n CHAR_BACKWARD_SLASH, /* \\ */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_EXCLAMATION_MARK, /* ! */\n CHAR_FORWARD_SLASH, /* / */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_PLUS, /* + */\n CHAR_QUESTION_MARK, /* ? */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_RIGHT_SQUARE_BRACKET /* ] */\n} = require('./constants');\n\nconst isPathSeparator = code => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n if (token.isPrefix !== true) {\n token.depth = token.isGlobstar ? Infinity : 1;\n }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan = (input, options) => {\n const opts = options || {};\n\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n\n let str = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let negatedExtglob = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token = { value: '', depth: 0, isGlob: false };\n\n const eos = () => index >= length;\n const peek = () => str.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str.charCodeAt(++index);\n };\n\n while (index < length) {\n code = advance();\n let next;\n\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token);\n token = { value: '', depth: 0, isGlob: false };\n\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === (start + 1)) {\n start += 2;\n continue;\n }\n\n lastIndex = index + 1;\n continue;\n }\n\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS\n || code === CHAR_AT\n || code === CHAR_ASTERISK\n || code === CHAR_QUESTION_MARK\n || code === CHAR_EXCLAMATION_MARK;\n\n if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n isExtglob = token.isExtglob = true;\n finished = true;\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\n negatedExtglob = true;\n }\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token.isBracket = true;\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token.negated = true;\n start++;\n continue;\n }\n\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n\n if (isGlob === true) {\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n }\n\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n\n let base = str;\n let prefix = '';\n let glob = '';\n\n if (start > 0) {\n prefix = str.slice(0, start);\n str = str.slice(start);\n lastIndex -= start;\n }\n\n if (base && isGlob === true && lastIndex > 0) {\n base = str.slice(0, lastIndex);\n glob = str.slice(lastIndex);\n } else if (isGlob === true) {\n base = '';\n glob = str;\n } else {\n base = str;\n }\n\n if (base && base !== '' && base !== '/' && base !== str) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n\n if (opts.unescape === true) {\n if (glob) glob = utils.removeBackslashes(glob);\n\n if (base && backslashes === true) {\n base = utils.removeBackslashes(base);\n }\n }\n\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated,\n negatedExtglob\n };\n\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token);\n }\n state.tokens = tokens;\n }\n\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== '') {\n parts.push(value);\n }\n prevIndex = i;\n }\n\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n\n state.slashes = slashes;\n state.parts = parts;\n }\n\n return state;\n};\n\nmodule.exports = scan;\n", "'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n if (typeof options.expandRange === 'function') {\n return options.expandRange(...args, options);\n }\n\n args.sort();\n const value = `[${args.join('-')}]`;\n\n try {\n /* eslint-disable-next-line no-new */\n new RegExp(value);\n } catch (ex) {\n return args.map(v => utils.escapeRegex(v)).join('..');\n }\n\n return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n input = REPLACEMENTS[input] || input;\n\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n const tokens = [bos];\n\n const capture = opts.capture ? '' : '?:';\n\n // create constants based on platform, for windows or posix\n const PLATFORM_CHARS = constants.globChars(opts.windows);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n\n const globstar = opts => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const nodot = opts.dot ? '' : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n // minimatch options support\n if (typeof opts.noext === 'boolean') {\n opts.noextglob = opts.noext;\n }\n\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: '',\n output: '',\n prefix: '',\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n\n input = utils.removePrefix(input, state);\n len = input.length;\n\n const extglobs = [];\n const braces = [];\n const stack = [];\n let prev = bos;\n let value;\n\n /**\n * Tokenizing helpers\n */\n\n const eos = () => state.index === len - 1;\n const peek = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || '';\n const remaining = () => input.slice(state.index + 1);\n const consume = (value = '', num = 0) => {\n state.consumed += value;\n state.index += num;\n };\n\n const append = token => {\n state.output += token.output != null ? token.output : token.value;\n consume(token.value);\n };\n\n const negate = () => {\n let count = 1;\n\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n advance();\n state.start++;\n count++;\n }\n\n if (count % 2 === 0) {\n return false;\n }\n\n state.negated = true;\n state.start++;\n return true;\n };\n\n const increment = type => {\n state[type]++;\n stack.push(type);\n };\n\n const decrement = type => {\n state[type]--;\n stack.pop();\n };\n\n /**\n * Push tokens onto the tokens array. This helper speeds up\n * tokenizing by 1) helping us avoid backtracking as much as possible,\n * and 2) helping us avoid creating extra tokens when consecutive\n * characters are plain text. This improves performance and simplifies\n * lookbehinds.\n */\n\n const push = tok => {\n if (prev.type === 'globstar') {\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = 'star';\n prev.value = '*';\n prev.output = star;\n state.output += prev.output;\n }\n }\n\n if (extglobs.length && tok.type !== 'paren') {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === 'text' && tok.type === 'text') {\n prev.output = (prev.output || prev.value) + tok.value;\n prev.value += tok.value;\n return;\n }\n\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n\n const extglobOpen = (type, value) => {\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n token.prev = prev;\n token.parens = state.parens;\n token.output = state.output;\n const output = (opts.capture ? '(' : '') + token.open;\n\n increment('parens');\n push({ type, value, output: state.output ? '' : ONE_CHAR });\n push({ type: 'paren', extglob: true, value: advance(), output });\n extglobs.push(token);\n };\n\n const extglobClose = token => {\n let output = token.close + (opts.capture ? ')' : '');\n let rest;\n\n if (token.type === 'negate') {\n let extglobStar = star;\n\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n extglobStar = globstar(opts);\n }\n\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token.close = `)$))${extglobStar}`;\n }\n\n if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.\n // In this case, we need to parse the string and use it in the output of the original pattern.\n // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.\n //\n // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.\n const expression = parse(rest, { ...options, fastpaths: false }).output;\n\n output = token.close = `)${expression})${extglobStar})`;\n }\n\n if (token.prev.type === 'bos') {\n state.negatedExtglob = true;\n }\n }\n\n push({ type: 'paren', extglob: true, value, output });\n decrement('parens');\n };\n\n /**\n * Fast paths\n */\n\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === '\\\\') {\n backslashes = true;\n return m;\n }\n\n if (first === '?') {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n }\n return QMARK.repeat(chars.length);\n }\n\n if (first === '.') {\n return DOT_LITERAL.repeat(chars.length);\n }\n\n if (first === '*') {\n if (esc) {\n return esc + first + (rest ? star : '');\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, '');\n } else {\n output = output.replace(/\\\\+/g, m => {\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n });\n }\n }\n\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n\n state.output = utils.wrapOutput(output, state, options);\n return state;\n }\n\n /**\n * Tokenize input until we reach end-of-string\n */\n\n while (!eos()) {\n value = advance();\n\n if (value === '\\u0000') {\n continue;\n }\n\n /**\n * Escaped characters\n */\n\n if (value === '\\\\') {\n const next = peek();\n\n if (next === '/' && opts.bash !== true) {\n continue;\n }\n\n if (next === '.' || next === ';') {\n continue;\n }\n\n if (!next) {\n value += '\\\\';\n push({ type: 'text', value });\n continue;\n }\n\n // collapse slashes to reduce potential for exploits\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += '\\\\';\n }\n }\n\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n\n if (state.brackets === 0) {\n push({ type: 'text', value });\n continue;\n }\n }\n\n /**\n * If we're inside a regex character class, continue\n * until we reach the closing bracket.\n */\n\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n if (opts.posix !== false && value === ':') {\n const inner = prev.value.slice(1);\n if (inner.includes('[')) {\n prev.posix = true;\n\n if (inner.includes(':')) {\n const idx = prev.value.lastIndexOf('[');\n const pre = prev.value.slice(0, idx);\n const rest = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n value = `\\\\${value}`;\n }\n\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n value = `\\\\${value}`;\n }\n\n if (opts.posix === true && value === '!' && prev.value === '[') {\n value = '^';\n }\n\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * If we're inside a quoted string, continue\n * until we reach the closing double quote.\n */\n\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * Double quotes\n */\n\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push({ type: 'text', value });\n }\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === '(') {\n increment('parens');\n push({ type: 'paren', value });\n continue;\n }\n\n if (value === ')') {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '('));\n }\n\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n decrement('parens');\n continue;\n }\n\n /**\n * Square brackets\n */\n\n if (value === '[') {\n if (opts.nobracket === true || !remaining().includes(']')) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('closing', ']'));\n }\n\n value = `\\\\${value}`;\n } else {\n increment('brackets');\n }\n\n push({ type: 'bracket', value });\n continue;\n }\n\n if (value === ']') {\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '['));\n }\n\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n decrement('brackets');\n\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n value = `/${value}`;\n }\n\n prev.value += value;\n append({ value });\n\n // when literal brackets are explicitly disabled\n // assume we should match with a regex character class\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n\n // when literal brackets are explicitly enabled\n // assume we should escape the brackets to match literal characters\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n\n // when the user specifies nothing, try to match both\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n\n /**\n * Braces\n */\n\n if (value === '{' && opts.nobrace !== true) {\n increment('braces');\n\n const open = {\n type: 'brace',\n value,\n output: '(',\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n\n braces.push(open);\n push(open);\n continue;\n }\n\n if (value === '}') {\n const brace = braces[braces.length - 1];\n\n if (opts.nobrace === true || !brace) {\n push({ type: 'text', value, output: value });\n continue;\n }\n\n let output = ')';\n\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === 'brace') {\n break;\n }\n if (arr[i].type !== 'dots') {\n range.unshift(arr[i].value);\n }\n }\n\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = '\\\\{';\n value = output = '\\\\}';\n state.output = out;\n for (const t of toks) {\n state.output += (t.output || t.value);\n }\n }\n\n push({ type: 'brace', value, output });\n decrement('braces');\n braces.pop();\n continue;\n }\n\n /**\n * Pipes\n */\n\n if (value === '|') {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Commas\n */\n\n if (value === ',') {\n let output = value;\n\n const brace = braces[braces.length - 1];\n if (brace && stack[stack.length - 1] === 'braces') {\n brace.comma = true;\n output = '|';\n }\n\n push({ type: 'comma', value, output });\n continue;\n }\n\n /**\n * Slashes\n */\n\n if (value === '/') {\n // if the beginning of the glob is \"./\", advance the start\n // to the current index, and don't add the \"./\" characters\n // to the state. This greatly simplifies lookbehinds when\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\n if (prev.type === 'dot' && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = '';\n state.output = '';\n tokens.pop();\n prev = bos; // reset \"prev\" to the first token\n continue;\n }\n\n push({ type: 'slash', value, output: SLASH_LITERAL });\n continue;\n }\n\n /**\n * Dots\n */\n\n if (value === '.') {\n if (state.braces > 0 && prev.type === 'dot') {\n if (prev.value === '.') prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = 'dots';\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n push({ type: 'text', value, output: DOT_LITERAL });\n continue;\n }\n\n push({ type: 'dot', value, output: DOT_LITERAL });\n continue;\n }\n\n /**\n * Question marks\n */\n\n if (value === '?') {\n const isGroup = prev && prev.value === '(';\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('qmark', value);\n continue;\n }\n\n if (prev && prev.type === 'paren') {\n const next = peek();\n let output = value;\n\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n output = `\\\\${value}`;\n }\n\n push({ type: 'text', value, output });\n continue;\n }\n\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\n continue;\n }\n\n push({ type: 'qmark', value, output: QMARK });\n continue;\n }\n\n /**\n * Exclamation\n */\n\n if (value === '!') {\n if (opts.noextglob !== true && peek() === '(') {\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n extglobOpen('negate', value);\n continue;\n }\n }\n\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n\n /**\n * Plus\n */\n\n if (value === '+') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('plus', value);\n continue;\n }\n\n if ((prev && prev.value === '(') || opts.regex === false) {\n push({ type: 'plus', value, output: PLUS_LITERAL });\n continue;\n }\n\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n push({ type: 'plus', value });\n continue;\n }\n\n push({ type: 'plus', value: PLUS_LITERAL });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value === '@') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n push({ type: 'at', extglob: true, value, output: '' });\n continue;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value !== '*') {\n if (value === '$' || value === '^') {\n value = `\\\\${value}`;\n }\n\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Stars\n */\n\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\n prev.type = 'star';\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen('star', value);\n continue;\n }\n\n if (prev.type === 'star') {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === 'slash' || prior.type === 'bos';\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n // strip consecutive `/**/`\n while (rest.slice(0, 3) === '/**') {\n const after = input[state.index + 4];\n if (after && after !== '/') {\n break;\n }\n rest = rest.slice(3);\n consume('/**', 3);\n }\n\n if (prior.type === 'bos' && eos()) {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n const end = rest[1] !== void 0 ? '|$' : '';\n\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n\n state.output += prior.output + prev.output;\n state.globstar = true;\n\n consume(value + advance());\n\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n if (prior.type === 'bos' && rest[0] === '/') {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n // remove single star from output\n state.output = state.output.slice(0, -prev.output.length);\n\n // reset previous token to globstar\n prev.type = 'globstar';\n prev.output = globstar(opts);\n prev.value += value;\n\n // reset output with globstar\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n const token = { type: 'star', value, output: star };\n\n if (opts.bash === true) {\n token.output = '.*?';\n if (prev.type === 'bos' || prev.type === 'slash') {\n token.output = nodot + token.output;\n }\n push(token);\n continue;\n }\n\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n token.output = value;\n push(token);\n continue;\n }\n\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n if (prev.type === 'dot') {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n\n if (peek() !== '*') {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n\n push(token);\n }\n\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n state.output = utils.escapeLast(state.output, '[');\n decrement('brackets');\n }\n\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n state.output = utils.escapeLast(state.output, '(');\n decrement('parens');\n }\n\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n state.output = utils.escapeLast(state.output, '{');\n decrement('braces');\n }\n\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n }\n\n // rebuild the output if we had to backtrack at any point\n if (state.backtrack === true) {\n state.output = '';\n\n for (const token of state.tokens) {\n state.output += token.output != null ? token.output : token.value;\n\n if (token.suffix) {\n state.output += token.suffix;\n }\n }\n }\n\n return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n input = REPLACEMENTS[input] || input;\n\n // create constants based on platform, for windows or posix\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(opts.windows);\n\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? '' : '?:';\n const state = { negated: false, prefix: '' };\n let star = opts.bash === true ? '.*?' : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n const globstar = opts => {\n if (opts.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const create = str => {\n switch (str) {\n case '*':\n return `${nodot}${ONE_CHAR}${star}`;\n\n case '.*':\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*.*':\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*/*':\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n case '**':\n return nodot + globstar(opts);\n\n case '**/*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n case '**/*.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '**/.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n\n const source = create(match[1]);\n if (!source) return;\n\n return source + DOT_LITERAL + match[2];\n }\n }\n };\n\n const output = utils.removePrefix(input, state);\n let source = create(output);\n\n if (source && opts.strictSlashes !== true) {\n source += `${SLASH_LITERAL}?`;\n }\n\n return source;\n};\n\nmodule.exports = parse;\n", "'use strict';\n\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map(input => picomatch(input, options, returnState));\n const arrayMatcher = str => {\n for (const isMatch of fns) {\n const state = isMatch(str);\n if (state) return state;\n }\n return false;\n };\n return arrayMatcher;\n }\n\n const isState = isObject(glob) && glob.tokens && glob.input;\n\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\n throw new TypeError('Expected pattern to be a non-empty string');\n }\n\n const opts = options || {};\n const posix = opts.windows;\n const regex = isState\n ? picomatch.compileRe(glob, options)\n : picomatch.makeRe(glob, options, false, true);\n\n const state = regex.state;\n delete regex.state;\n\n let isIgnored = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n if (typeof opts.onResult === 'function') {\n opts.onResult(result);\n }\n\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (isIgnored(input)) {\n if (typeof opts.onIgnore === 'function') {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (typeof opts.onMatch === 'function') {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n\n if (returnState) {\n matcher.state = state;\n }\n\n return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected input to be a string');\n }\n\n if (input === '') {\n return { isMatch: false, output: '' };\n }\n\n const opts = options || {};\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = (match && format) ? format(input) : input;\n\n if (match === false) {\n output = format ? format(input) : input;\n match = output === glob;\n }\n\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options, posix);\n } else {\n match = regex.exec(output);\n }\n }\n\n return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n return regex.test(utils.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n * input: '!./foo/*.js',\n * start: 3,\n * base: 'foo',\n * glob: '*.js',\n * isBrace: false,\n * isBracket: false,\n * isGlob: true,\n * isExtglob: false,\n * isGlobstar: false,\n * negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n\n const opts = options || {};\n const prepend = opts.contains ? '' : '^';\n const append = opts.contains ? '' : '$';\n\n let source = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source = `^(?!${source}).*$`;\n }\n\n const regex = picomatch.toRegex(source, options);\n if (returnState === true) {\n regex.state = state;\n }\n\n return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== 'string') {\n throw new TypeError('Expected a non-empty string');\n }\n\n let parsed = { negated: false, fastpaths: true };\n\n if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n parsed.output = parse.fastpaths(input, options);\n }\n\n if (!parsed.output) {\n parsed = parse(input, options);\n }\n\n return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n try {\n const opts = options || {};\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n } catch (err) {\n if (options && options.debug === true) throw err;\n return /$^/;\n }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n", "'use strict';\n\nconst pico = require('./lib/picomatch');\nconst utils = require('./lib/utils');\n\nfunction picomatch(glob, options, returnState = false) {\n // default to os.platform()\n if (options && (options.windows === null || options.windows === undefined)) {\n // don't mutate the original options object\n options = { ...options, windows: utils.isWindows() };\n }\n\n return pico(glob, options, returnState);\n}\n\nObject.assign(picomatch, pico);\nmodule.exports = picomatch;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nconst intToCharMap = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".split(\"\");\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function(number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst base64 = require(\"./base64\");\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nconst VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nconst VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nconst VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nconst VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\n// eslint-disable-next-line no-unused-vars\nfunction fromVLQSigned(aValue) {\n const isNegative = (aValue & 1) === 1;\n const shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n let encoded = \"\";\n let digit;\n\n let vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n }\n throw new Error('\"' + aName + '\" is a required argument.');\n\n}\nexports.getArg = getArg;\n\nconst urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nconst dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n const match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n let url = \"\";\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + \":\";\n }\n url += \"//\";\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + \"@\";\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port;\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\nconst MAX_CACHED_INPUTS = 32;\n\n/**\n * Takes some function `f(input) -> result` and returns a memoized version of\n * `f`.\n *\n * We keep at most `MAX_CACHED_INPUTS` memoized results of `f` alive. The\n * memoization is a dumb-simple, linear least-recently-used cache.\n */\nfunction lruMemoize(f) {\n const cache = [];\n\n return function(input) {\n for (let i = 0; i < cache.length; i++) {\n if (cache[i].input === input) {\n const temp = cache[0];\n cache[0] = cache[i];\n cache[i] = temp;\n return cache[0].result;\n }\n }\n\n const result = f(input);\n\n cache.unshift({\n input,\n result,\n });\n\n if (cache.length > MAX_CACHED_INPUTS) {\n cache.pop();\n }\n\n return result;\n };\n}\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nconst normalize = lruMemoize(function normalize(aPath) {\n let path = aPath;\n const url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n const isAbsolute = exports.isAbsolute(path);\n\n // Split the path into parts between `/` characters. This is much faster than\n // using `.split(/\\/+/g)`.\n const parts = [];\n let start = 0;\n let i = 0;\n while (true) {\n start = i;\n i = path.indexOf(\"/\", start);\n if (i === -1) {\n parts.push(path.slice(start));\n break;\n } else {\n parts.push(path.slice(start, i));\n while (i < path.length && path[i] === \"/\") {\n i++;\n }\n }\n }\n\n let up = 0;\n for (i = parts.length - 1; i >= 0; i--) {\n const part = parts[i];\n if (part === \".\") {\n parts.splice(i, 1);\n } else if (part === \"..\") {\n up++;\n } else if (up > 0) {\n if (part === \"\") {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join(\"/\");\n\n if (path === \"\") {\n path = isAbsolute ? \"/\" : \".\";\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n});\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n const aPathUrl = urlParse(aPath);\n const aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || \"/\";\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n const joined = aPath.charAt(0) === \"/\"\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, \"\") + \"/\" + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function(aPath) {\n return aPath.charAt(0) === \"/\" || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, \"\");\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n let level = 0;\n while (aPath.indexOf(aRoot + \"/\") !== 0) {\n const index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nconst supportsNullProto = (function() {\n const obj = Object.create(null);\n return !(\"__proto__\" in obj);\n}());\n\nfunction identity(s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return \"$\" + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n const length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n /* eslint-disable no-multi-spaces */\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n /* eslint-enable no-multi-spaces */\n\n for (let i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n let cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n let cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n let cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, \"\"));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || \"\";\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== \"/\" && sourceURL[0] !== \"/\") {\n sourceRoot += \"/\";\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // “sources” entry. This value is prepended to the individual\n // entries in the “source” field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // “sourceRoot”, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n const parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n const index = parsed.path.lastIndexOf(\"/\");\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nclass ArraySet {\n constructor() {\n this._array = [];\n this._set = new Map();\n }\n\n /**\n * Static method for creating ArraySet instances from an existing array.\n */\n static fromArray(aArray, aAllowDuplicates) {\n const set = new ArraySet();\n for (let i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n }\n\n /**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\n size() {\n return this._set.size;\n }\n\n /**\n * Add the given string to this set.\n *\n * @param String aStr\n */\n add(aStr, aAllowDuplicates) {\n const isDuplicate = this.has(aStr);\n const idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n this._set.set(aStr, idx);\n }\n }\n\n /**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\n has(aStr) {\n return this._set.has(aStr);\n }\n\n /**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\n indexOf(aStr) {\n const idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n throw new Error('\"' + aStr + '\" is not in the set.');\n }\n\n /**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\n at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error(\"No element indexed by \" + aIdx);\n }\n\n /**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\n toArray() {\n return this._array.slice();\n }\n}\nexports.ArraySet = ArraySet;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nconst util = require(\"./util\");\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n const lineA = mappingA.generatedLine;\n const lineB = mappingB.generatedLine;\n const columnA = mappingA.generatedColumn;\n const columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a negligible overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nclass MappingList {\n constructor() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n }\n\n /**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\n unsortedForEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n }\n\n /**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\n add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n }\n\n /**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\n toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n }\n}\n\nexports.MappingList = MappingList;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nconst base64VLQ = require(\"./base64-vlq\");\nconst util = require(\"./util\");\nconst ArraySet = require(\"./array-set\").ArraySet;\nconst MappingList = require(\"./mapping-list\").MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nclass SourceMapGenerator {\n constructor(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, \"file\", null);\n this._sourceRoot = util.getArg(aArgs, \"sourceRoot\", null);\n this._skipValidation = util.getArg(aArgs, \"skipValidation\", false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n }\n\n /**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\n static fromSourceMap(aSourceMapConsumer) {\n const sourceRoot = aSourceMapConsumer.sourceRoot;\n const generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot\n });\n aSourceMapConsumer.eachMapping(function(mapping) {\n const newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function(sourceFile) {\n let sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n const content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n }\n\n /**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\n addMapping(aArgs) {\n const generated = util.getArg(aArgs, \"generated\");\n const original = util.getArg(aArgs, \"original\", null);\n let source = util.getArg(aArgs, \"source\", null);\n let name = util.getArg(aArgs, \"name\", null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source,\n name\n });\n }\n\n /**\n * Set the source content for a source file.\n */\n setSourceContent(aSourceFile, aSourceContent) {\n let source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n }\n\n /**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\n applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n let sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n \"SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, \" +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n const sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n const newSources = this._mappings.toArray().length > 0\n ? new ArraySet()\n : this._sources;\n const newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function(mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n const original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source);\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n const source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n const name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function(srcFile) {\n const content = aSourceMapConsumer.sourceContentFor(srcFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n srcFile = util.join(aSourceMapPath, srcFile);\n }\n if (sourceRoot != null) {\n srcFile = util.relative(sourceRoot, srcFile);\n }\n this.setSourceContent(srcFile, content);\n }\n }, this);\n }\n\n /**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\n _validateMapping(aGenerated, aOriginal, aSource, aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== \"number\" && typeof aOriginal.column !== \"number\") {\n throw new Error(\n \"original.line and original.column are not numbers -- you probably meant to omit \" +\n \"the original mapping entirely and only map the generated position. If so, pass \" +\n \"null for the original mapping instead of an object with empty or null values.\"\n );\n }\n\n if (aGenerated && \"line\" in aGenerated && \"column\" in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n\n } else if (aGenerated && \"line\" in aGenerated && \"column\" in aGenerated\n && aOriginal && \"line\" in aOriginal && \"column\" in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n\n } else {\n throw new Error(\"Invalid mapping: \" + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n }\n\n /**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\n _serializeMappings() {\n let previousGeneratedColumn = 0;\n let previousGeneratedLine = 1;\n let previousOriginalColumn = 0;\n let previousOriginalLine = 0;\n let previousName = 0;\n let previousSource = 0;\n let result = \"\";\n let next;\n let mapping;\n let nameIdx;\n let sourceIdx;\n\n const mappings = this._mappings.toArray();\n for (let i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = \"\";\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += \";\";\n previousGeneratedLine++;\n }\n } else if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += \",\";\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n }\n\n _generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function(source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n const key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n }\n\n /**\n * Externalize the source map.\n */\n toJSON() {\n const map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n }\n\n /**\n * Render the source map being generated to a string.\n */\n toString() {\n return JSON.stringify(this.toJSON());\n }\n}\n\nSourceMapGenerator.prototype._version = 3;\nexports.SourceMapGenerator = SourceMapGenerator;\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n const mid = Math.floor((aHigh - aLow) / 2) + aLow;\n const cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n } else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n }\n return mid;\n }\n\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n }\n return aLow < 0 ? -1 : aLow;\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n let index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n", "/* Determine browser vs node environment by testing the default top level context. Solution courtesy of: https://stackoverflow.com/questions/17575790/environment-detection-node-js-or-browser */\nconst isBrowserEnvironment = (function() {\n // eslint-disable-next-line no-undef\n return (typeof window !== \"undefined\") && (this === window);\n}).call();\n\nif (isBrowserEnvironment) {\n // Web version of reading a wasm file into an array buffer.\n\n let mappingsWasm = null;\n\n module.exports = function readWasm() {\n if (typeof mappingsWasm === \"string\") {\n return fetch(mappingsWasm)\n .then(response => response.arrayBuffer());\n }\n if (mappingsWasm instanceof ArrayBuffer) {\n return Promise.resolve(mappingsWasm);\n }\n throw new Error(\"You must provide the string URL or ArrayBuffer contents \" +\n \"of lib/mappings.wasm by calling \" +\n \"SourceMapConsumer.initialize({ 'lib/mappings.wasm': ... }) \" +\n \"before using SourceMapConsumer\");\n };\n\n module.exports.initialize = input => mappingsWasm = input;\n} else {\n // Node version of reading a wasm file into an array buffer.\n const fs = require(\"fs\");\n const path = require(\"path\");\n\n module.exports = function readWasm() {\n return new Promise((resolve, reject) => {\n const wasmPath = path.join(__dirname, \"mappings.wasm\");\n fs.readFile(wasmPath, null, (error, data) => {\n if (error) {\n reject(error);\n return;\n }\n\n resolve(data.buffer);\n });\n });\n };\n\n module.exports.initialize = _ => {\n console.debug(\"SourceMapConsumer.initialize is a no-op when running in node.js\");\n };\n}\n", "const readWasm = require(\"../lib/read-wasm\");\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.lastGeneratedColumn = null;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\nlet cachedWasm = null;\n\nmodule.exports = function wasm() {\n if (cachedWasm) {\n return cachedWasm;\n }\n\n const callbackStack = [];\n\n cachedWasm = readWasm().then(buffer => {\n return WebAssembly.instantiate(buffer, {\n env: {\n mapping_callback(\n generatedLine,\n generatedColumn,\n\n hasLastGeneratedColumn,\n lastGeneratedColumn,\n\n hasOriginal,\n source,\n originalLine,\n originalColumn,\n\n hasName,\n name\n ) {\n const mapping = new Mapping();\n // JS uses 1-based line numbers, wasm uses 0-based.\n mapping.generatedLine = generatedLine + 1;\n mapping.generatedColumn = generatedColumn;\n\n if (hasLastGeneratedColumn) {\n // JS uses inclusive last generated column, wasm uses exclusive.\n mapping.lastGeneratedColumn = lastGeneratedColumn - 1;\n }\n\n if (hasOriginal) {\n mapping.source = source;\n // JS uses 1-based line numbers, wasm uses 0-based.\n mapping.originalLine = originalLine + 1;\n mapping.originalColumn = originalColumn;\n\n if (hasName) {\n mapping.name = name;\n }\n }\n\n callbackStack[callbackStack.length - 1](mapping);\n },\n\n start_all_generated_locations_for() { console.time(\"all_generated_locations_for\"); },\n end_all_generated_locations_for() { console.timeEnd(\"all_generated_locations_for\"); },\n\n start_compute_column_spans() { console.time(\"compute_column_spans\"); },\n end_compute_column_spans() { console.timeEnd(\"compute_column_spans\"); },\n\n start_generated_location_for() { console.time(\"generated_location_for\"); },\n end_generated_location_for() { console.timeEnd(\"generated_location_for\"); },\n\n start_original_location_for() { console.time(\"original_location_for\"); },\n end_original_location_for() { console.timeEnd(\"original_location_for\"); },\n\n start_parse_mappings() { console.time(\"parse_mappings\"); },\n end_parse_mappings() { console.timeEnd(\"parse_mappings\"); },\n\n start_sort_by_generated_location() { console.time(\"sort_by_generated_location\"); },\n end_sort_by_generated_location() { console.timeEnd(\"sort_by_generated_location\"); },\n\n start_sort_by_original_location() { console.time(\"sort_by_original_location\"); },\n end_sort_by_original_location() { console.timeEnd(\"sort_by_original_location\"); },\n }\n });\n }).then(Wasm => {\n return {\n exports: Wasm.instance.exports,\n withMappingCallback: (mappingCallback, f) => {\n callbackStack.push(mappingCallback);\n try {\n f();\n } finally {\n callbackStack.pop();\n }\n }\n };\n }).then(null, e => {\n cachedWasm = null;\n throw e;\n });\n\n return cachedWasm;\n};\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nconst util = require(\"./util\");\nconst binarySearch = require(\"./binary-search\");\nconst ArraySet = require(\"./array-set\").ArraySet;\nconst base64VLQ = require(\"./base64-vlq\"); // eslint-disable-line no-unused-vars\nconst readWasm = require(\"../lib/read-wasm\");\nconst wasm = require(\"./wasm\");\n\nconst INTERNAL = Symbol(\"smcInternal\");\n\nclass SourceMapConsumer {\n constructor(aSourceMap, aSourceMapURL) {\n // If the constructor was called by super(), just return Promise<this>.\n // Yes, this is a hack to retain the pre-existing API of the base-class\n // constructor also being an async factory function.\n if (aSourceMap == INTERNAL) {\n return Promise.resolve(this);\n }\n\n return _factory(aSourceMap, aSourceMapURL);\n }\n\n static initialize(opts) {\n readWasm.initialize(opts[\"lib/mappings.wasm\"]);\n }\n\n static fromSourceMap(aSourceMap, aSourceMapURL) {\n return _factoryBSM(aSourceMap, aSourceMapURL);\n }\n\n /**\n * Construct a new `SourceMapConsumer` from `rawSourceMap` and `sourceMapUrl`\n * (see the `SourceMapConsumer` constructor for details. Then, invoke the `async\n * function f(SourceMapConsumer) -> T` with the newly constructed consumer, wait\n * for `f` to complete, call `destroy` on the consumer, and return `f`'s return\n * value.\n *\n * You must not use the consumer after `f` completes!\n *\n * By using `with`, you do not have to remember to manually call `destroy` on\n * the consumer, since it will be called automatically once `f` completes.\n *\n * ```js\n * const xSquared = await SourceMapConsumer.with(\n * myRawSourceMap,\n * null,\n * async function (consumer) {\n * // Use `consumer` inside here and don't worry about remembering\n * // to call `destroy`.\n *\n * const x = await whatever(consumer);\n * return x * x;\n * }\n * );\n *\n * // You may not use that `consumer` anymore out here; it has\n * // been destroyed. But you can use `xSquared`.\n * console.log(xSquared);\n * ```\n */\n static async with(rawSourceMap, sourceMapUrl, f) {\n const consumer = await new SourceMapConsumer(rawSourceMap, sourceMapUrl);\n try {\n return await f(consumer);\n } finally {\n consumer.destroy();\n }\n }\n\n /**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\n _parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n }\n\n /**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\n eachMapping(aCallback, aContext, aOrder) {\n throw new Error(\"Subclasses must implement eachMapping\");\n }\n\n /**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\n allGeneratedPositionsFor(aArgs) {\n throw new Error(\"Subclasses must implement allGeneratedPositionsFor\");\n }\n\n destroy() {\n throw new Error(\"Subclasses must implement destroy\");\n }\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nclass BasicSourceMapConsumer extends SourceMapConsumer {\n constructor(aSourceMap, aSourceMapURL) {\n return super(INTERNAL).then(that => {\n let sourceMap = aSourceMap;\n if (typeof aSourceMap === \"string\") {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n const version = util.getArg(sourceMap, \"version\");\n let sources = util.getArg(sourceMap, \"sources\");\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n const names = util.getArg(sourceMap, \"names\", []);\n let sourceRoot = util.getArg(sourceMap, \"sourceRoot\", null);\n const sourcesContent = util.getArg(sourceMap, \"sourcesContent\", null);\n const mappings = util.getArg(sourceMap, \"mappings\");\n const file = util.getArg(sourceMap, \"file\", null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != that._version) {\n throw new Error(\"Unsupported version: \" + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function(source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n that._names = ArraySet.fromArray(names.map(String), true);\n that._sources = ArraySet.fromArray(sources, true);\n\n that._absoluteSources = that._sources.toArray().map(function(s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n that.sourceRoot = sourceRoot;\n that.sourcesContent = sourcesContent;\n that._mappings = mappings;\n that._sourceMapURL = aSourceMapURL;\n that.file = file;\n\n that._computedColumnSpans = false;\n that._mappingsPtr = 0;\n that._wasm = null;\n\n return wasm().then(w => {\n that._wasm = w;\n return that;\n });\n });\n }\n\n /**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\n _findSourceIndex(aSource) {\n let relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n for (let i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\n static fromSourceMap(aSourceMap, aSourceMapURL) {\n return new BasicSourceMapConsumer(aSourceMap.toString());\n }\n\n get sources() {\n return this._absoluteSources.slice();\n }\n\n _getMappingsPtr() {\n if (this._mappingsPtr === 0) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this._mappingsPtr;\n }\n\n /**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\n _parseMappings(aStr, aSourceRoot) {\n const size = aStr.length;\n\n const mappingsBufPtr = this._wasm.exports.allocate_mappings(size);\n const mappingsBuf = new Uint8Array(this._wasm.exports.memory.buffer, mappingsBufPtr, size);\n for (let i = 0; i < size; i++) {\n mappingsBuf[i] = aStr.charCodeAt(i);\n }\n\n const mappingsPtr = this._wasm.exports.parse_mappings(mappingsBufPtr);\n\n if (!mappingsPtr) {\n const error = this._wasm.exports.get_last_error();\n let msg = `Error parsing mappings (code ${error}): `;\n\n // XXX: keep these error codes in sync with `fitzgen/source-map-mappings`.\n switch (error) {\n case 1:\n msg += \"the mappings contained a negative line, column, source index, or name index\";\n break;\n case 2:\n msg += \"the mappings contained a number larger than 2**32\";\n break;\n case 3:\n msg += \"reached EOF while in the middle of parsing a VLQ\";\n break;\n case 4:\n msg += \"invalid base 64 character while parsing a VLQ\";\n break;\n default:\n msg += \"unknown error code\";\n break;\n }\n\n throw new Error(msg);\n }\n\n this._mappingsPtr = mappingsPtr;\n }\n\n eachMapping(aCallback, aContext, aOrder) {\n const context = aContext || null;\n const order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n const sourceRoot = this.sourceRoot;\n\n this._wasm.withMappingCallback(\n mapping => {\n if (mapping.source !== null) {\n mapping.source = this._sources.at(mapping.source);\n mapping.source = util.computeSourceURL(sourceRoot, mapping.source, this._sourceMapURL);\n\n if (mapping.name !== null) {\n mapping.name = this._names.at(mapping.name);\n }\n }\n\n aCallback.call(context, mapping);\n },\n () => {\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n this._wasm.exports.by_generated_location(this._getMappingsPtr());\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n this._wasm.exports.by_original_location(this._getMappingsPtr());\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n }\n );\n }\n\n allGeneratedPositionsFor(aArgs) {\n let source = util.getArg(aArgs, \"source\");\n const originalLine = util.getArg(aArgs, \"line\");\n const originalColumn = aArgs.column || 0;\n\n source = this._findSourceIndex(source);\n if (source < 0) {\n return [];\n }\n\n if (originalLine < 1) {\n throw new Error(\"Line numbers must be >= 1\");\n }\n\n if (originalColumn < 0) {\n throw new Error(\"Column numbers must be >= 0\");\n }\n\n const mappings = [];\n\n this._wasm.withMappingCallback(\n m => {\n let lastColumn = m.lastGeneratedColumn;\n if (this._computedColumnSpans && lastColumn === null) {\n lastColumn = Infinity;\n }\n mappings.push({\n line: m.generatedLine,\n column: m.generatedColumn,\n lastColumn,\n });\n }, () => {\n this._wasm.exports.all_generated_locations_for(\n this._getMappingsPtr(),\n source,\n originalLine - 1,\n \"column\" in aArgs,\n originalColumn\n );\n }\n );\n\n return mappings;\n }\n\n destroy() {\n if (this._mappingsPtr !== 0) {\n this._wasm.exports.free_mappings(this._mappingsPtr);\n this._mappingsPtr = 0;\n }\n }\n\n /**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\n computeColumnSpans() {\n if (this._computedColumnSpans) {\n return;\n }\n\n this._wasm.exports.compute_column_spans(this._getMappingsPtr());\n this._computedColumnSpans = true;\n }\n\n /**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\n originalPositionFor(aArgs) {\n const needle = {\n generatedLine: util.getArg(aArgs, \"line\"),\n generatedColumn: util.getArg(aArgs, \"column\")\n };\n\n if (needle.generatedLine < 1) {\n throw new Error(\"Line numbers must be >= 1\");\n }\n\n if (needle.generatedColumn < 0) {\n throw new Error(\"Column numbers must be >= 0\");\n }\n\n let bias = util.getArg(aArgs, \"bias\", SourceMapConsumer.GREATEST_LOWER_BOUND);\n if (bias == null) {\n bias = SourceMapConsumer.GREATEST_LOWER_BOUND;\n }\n\n let mapping;\n this._wasm.withMappingCallback(m => mapping = m, () => {\n this._wasm.exports.original_location_for(\n this._getMappingsPtr(),\n needle.generatedLine - 1,\n needle.generatedColumn,\n bias\n );\n });\n\n if (mapping) {\n if (mapping.generatedLine === needle.generatedLine) {\n let source = util.getArg(mapping, \"source\", null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n\n let name = util.getArg(mapping, \"name\", null);\n if (name !== null) {\n name = this._names.at(name);\n }\n\n return {\n source,\n line: util.getArg(mapping, \"originalLine\", null),\n column: util.getArg(mapping, \"originalColumn\", null),\n name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n /**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\n hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function(sc) { return sc == null; });\n }\n\n /**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\n sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n const index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n let relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n let url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n const fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)];\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n\n /**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\n generatedPositionFor(aArgs) {\n let source = util.getArg(aArgs, \"source\");\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n const needle = {\n source,\n originalLine: util.getArg(aArgs, \"line\"),\n originalColumn: util.getArg(aArgs, \"column\")\n };\n\n if (needle.originalLine < 1) {\n throw new Error(\"Line numbers must be >= 1\");\n }\n\n if (needle.originalColumn < 0) {\n throw new Error(\"Column numbers must be >= 0\");\n }\n\n let bias = util.getArg(aArgs, \"bias\", SourceMapConsumer.GREATEST_LOWER_BOUND);\n if (bias == null) {\n bias = SourceMapConsumer.GREATEST_LOWER_BOUND;\n }\n\n let mapping;\n this._wasm.withMappingCallback(m => mapping = m, () => {\n this._wasm.exports.generated_location_for(\n this._getMappingsPtr(),\n needle.source,\n needle.originalLine - 1,\n needle.originalColumn,\n bias\n );\n });\n\n if (mapping) {\n if (mapping.source === needle.source) {\n let lastColumn = mapping.lastGeneratedColumn;\n if (this._computedColumnSpans && lastColumn === null) {\n lastColumn = Infinity;\n }\n return {\n line: util.getArg(mapping, \"generatedLine\", null),\n column: util.getArg(mapping, \"generatedColumn\", null),\n lastColumn,\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n}\n\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nclass IndexedSourceMapConsumer extends SourceMapConsumer {\n constructor(aSourceMap, aSourceMapURL) {\n return super(INTERNAL).then(that => {\n let sourceMap = aSourceMap;\n if (typeof aSourceMap === \"string\") {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n const version = util.getArg(sourceMap, \"version\");\n const sections = util.getArg(sourceMap, \"sections\");\n\n if (version != that._version) {\n throw new Error(\"Unsupported version: \" + version);\n }\n\n that._sources = new ArraySet();\n that._names = new ArraySet();\n that.__generatedMappings = null;\n that.__originalMappings = null;\n that.__generatedMappingsUnsorted = null;\n that.__originalMappingsUnsorted = null;\n\n let lastOffset = {\n line: -1,\n column: 0\n };\n return Promise.all(sections.map(s => {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error(\"Support for url field in sections not implemented.\");\n }\n const offset = util.getArg(s, \"offset\");\n const offsetLine = util.getArg(offset, \"line\");\n const offsetColumn = util.getArg(offset, \"column\");\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error(\"Section offsets must be ordered and non-overlapping.\");\n }\n lastOffset = offset;\n\n const cons = new SourceMapConsumer(util.getArg(s, \"map\"), aSourceMapURL);\n return cons.then(consumer => {\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer\n };\n });\n })).then(s => {\n that._sections = s;\n return that;\n });\n });\n }\n\n // `__generatedMappings` and `__originalMappings` are arrays that hold the\n // parsed mapping coordinates from the source map's \"mappings\" attribute. They\n // are lazily instantiated, accessed via the `_generatedMappings` and\n // `_originalMappings` getters respectively, and we only parse the mappings\n // and create these arrays once queried for a source location. We jump through\n // these hoops because there can be many thousands of mappings, and parsing\n // them is expensive, so we only want to do it if we must.\n //\n // Each object in the arrays is of the form:\n //\n // {\n // generatedLine: The line number in the generated code,\n // generatedColumn: The column number in the generated code,\n // source: The path to the original source file that generated this\n // chunk of code,\n // originalLine: The line number in the original source that\n // corresponds to this chunk of generated code,\n // originalColumn: The column number in the original source that\n // corresponds to this chunk of generated code,\n // name: The name of the original symbol which generated this chunk of\n // code.\n // }\n //\n // All properties except for `generatedLine` and `generatedColumn` can be\n // `null`.\n //\n // `_generatedMappings` is ordered by the generated positions.\n //\n // `_originalMappings` is ordered by the original positions.\n get _generatedMappings() {\n if (!this.__generatedMappings) {\n this._sortGeneratedMappings();\n }\n\n return this.__generatedMappings;\n }\n\n get _originalMappings() {\n if (!this.__originalMappings) {\n this._sortOriginalMappings();\n }\n\n return this.__originalMappings;\n }\n\n get _generatedMappingsUnsorted() {\n if (!this.__generatedMappingsUnsorted) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappingsUnsorted;\n }\n\n get _originalMappingsUnsorted() {\n if (!this.__originalMappingsUnsorted) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappingsUnsorted;\n }\n\n _sortGeneratedMappings() {\n const mappings = this._generatedMappingsUnsorted;\n mappings.sort(util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = mappings;\n }\n\n _sortOriginalMappings() {\n const mappings = this._originalMappingsUnsorted;\n mappings.sort(util.compareByOriginalPositions);\n this.__originalMappings = mappings;\n }\n\n /**\n * The list of original sources.\n */\n get sources() {\n const sources = [];\n for (let i = 0; i < this._sections.length; i++) {\n for (let j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n\n /**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\n originalPositionFor(aArgs) {\n const needle = {\n generatedLine: util.getArg(aArgs, \"line\"),\n generatedColumn: util.getArg(aArgs, \"column\")\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n const sectionIndex = binarySearch.search(needle, this._sections,\n function(aNeedle, section) {\n const cmp = aNeedle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (aNeedle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n const section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n }\n\n /**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\n hasContentsOfAllSources() {\n return this._sections.every(function(s) {\n return s.consumer.hasContentsOfAllSources();\n });\n }\n\n /**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\n sourceContentFor(aSource, nullOnMissing) {\n for (let i = 0; i < this._sections.length; i++) {\n const section = this._sections[i];\n\n const content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n\n /**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\n generatedPositionFor(aArgs) {\n for (let i = 0; i < this._sections.length; i++) {\n const section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, \"source\")) === -1) {\n continue;\n }\n const generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n const ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n }\n\n /**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\n _parseMappings(aStr, aSourceRoot) {\n const generatedMappings = this.__generatedMappingsUnsorted = [];\n const originalMappings = this.__originalMappingsUnsorted = [];\n for (let i = 0; i < this._sections.length; i++) {\n const section = this._sections[i];\n\n const sectionMappings = [];\n section.consumer.eachMapping(m => sectionMappings.push(m));\n\n for (let j = 0; j < sectionMappings.length; j++) {\n const mapping = sectionMappings[j];\n\n // TODO: test if null is correct here. The original code used\n // `source`, which would actually have gotten used as null because\n // var's get hoisted.\n // See: https://github.com/mozilla/source-map/issues/333\n let source = util.computeSourceURL(section.consumer.sourceRoot, null, this._sourceMapURL);\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n let name = null;\n if (mapping.name) {\n this._names.add(mapping.name);\n name = this._names.indexOf(mapping.name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n const adjustedMapping = {\n source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name\n };\n\n generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === \"number\") {\n originalMappings.push(adjustedMapping);\n }\n }\n }\n }\n\n eachMapping(aCallback, aContext, aOrder) {\n const context = aContext || null;\n const order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n let mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n const sourceRoot = this.sourceRoot;\n mappings.map(function(mapping) {\n let source = null;\n if (mapping.source !== null) {\n source = this._sources.at(mapping.source);\n source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n }\n return {\n source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n }\n\n /**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\n _findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError(\"Line must be greater than or equal to 1, got \"\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError(\"Column must be greater than or equal to 0, got \"\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n }\n\n allGeneratedPositionsFor(aArgs) {\n const line = util.getArg(aArgs, \"line\");\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n const needle = {\n source: util.getArg(aArgs, \"source\"),\n originalLine: line,\n originalColumn: util.getArg(aArgs, \"column\", 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n if (needle.originalLine < 1) {\n throw new Error(\"Line numbers must be >= 1\");\n }\n\n if (needle.originalColumn < 0) {\n throw new Error(\"Column numbers must be >= 0\");\n }\n\n const mappings = [];\n\n let index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n let mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n const originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n let lastColumn = mapping.lastGeneratedColumn;\n if (this._computedColumnSpans && lastColumn === null) {\n lastColumn = Infinity;\n }\n mappings.push({\n line: util.getArg(mapping, \"generatedLine\", null),\n column: util.getArg(mapping, \"generatedColumn\", null),\n lastColumn,\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n const originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n let lastColumn = mapping.lastGeneratedColumn;\n if (this._computedColumnSpans && lastColumn === null) {\n lastColumn = Infinity;\n }\n mappings.push({\n line: util.getArg(mapping, \"generatedLine\", null),\n column: util.getArg(mapping, \"generatedColumn\", null),\n lastColumn,\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n }\n\n destroy() {\n for (let i = 0; i < this._sections.length; i++) {\n this._sections[i].consumer.destroy();\n }\n }\n}\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n/*\n * Cheat to get around inter-twingled classes. `factory()` can be at the end\n * where it has access to non-hoisted classes, but it gets hoisted itself.\n */\nfunction _factory(aSourceMap, aSourceMapURL) {\n let sourceMap = aSourceMap;\n if (typeof aSourceMap === \"string\") {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n const consumer = sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n return Promise.resolve(consumer);\n}\n\nfunction _factoryBSM(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n", "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nconst SourceMapGenerator = require(\"./source-map-generator\").SourceMapGenerator;\nconst util = require(\"./util\");\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nconst REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nconst NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nconst isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nclass SourceNode {\n constructor(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n }\n\n /**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\n static fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n const node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n const remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n let remainingLinesIndex = 0;\n const shiftNextLine = function() {\n const lineContents = getNextLine();\n // The last line of a file might not have a newline.\n const newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n let lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n let lastMapping = null;\n let nextLine;\n\n aSourceMapConsumer.eachMapping(function(mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n nextLine = remainingLines[remainingLinesIndex] || \"\";\n const code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n nextLine = remainingLines[remainingLinesIndex] || \"\";\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function(sourceFile) {\n const content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n const source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n }\n\n /**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\n add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function(chunk) {\n this.add(chunk);\n }, this);\n } else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n } else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n }\n\n /**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\n prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (let i = aChunk.length - 1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n } else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n } else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n }\n\n /**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\n walk(aFn) {\n let chunk;\n for (let i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n } else if (chunk !== \"\") {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n\n /**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\n join(aSep) {\n let newChildren;\n let i;\n const len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len - 1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n }\n\n /**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\n replaceRight(aPattern, aReplacement) {\n const lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n } else if (typeof lastChild === \"string\") {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n } else {\n this.children.push(\"\".replace(aPattern, aReplacement));\n }\n return this;\n }\n\n /**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\n setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n }\n\n /**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\n walkSourceContents(aFn) {\n for (let i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n const sources = Object.keys(this.sourceContents);\n for (let i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n }\n\n /**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\n toString() {\n let str = \"\";\n this.walk(function(chunk) {\n str += chunk;\n });\n return str;\n }\n\n /**\n * Returns the string representation of this source node along with a source\n * map.\n */\n toStringWithSourceMap(aArgs) {\n const generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n const map = new SourceMapGenerator(aArgs);\n let sourceMappingActive = false;\n let lastOriginalSource = null;\n let lastOriginalLine = null;\n let lastOriginalColumn = null;\n let lastOriginalName = null;\n this.walk(function(chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if (lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (let idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function(sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map };\n }\n}\n\nexports.SourceNode = SourceNode;\n", "/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require(\"./lib/source-map-generator\").SourceMapGenerator;\nexports.SourceMapConsumer = require(\"./lib/source-map-consumer\").SourceMapConsumer;\nexports.SourceNode = require(\"./lib/source-node\").SourceNode;\n", "/**\n * @import {Program} from 'estree-jsx'\n * @import {Root} from 'mdast'\n * @import {Processor} from 'unified'\n * @import {Compatible, VFile} from 'vfile'\n * @import {CompileOptions} from '../compile.js'\n */\n\n/**\n * @typedef FormatAwareProcessors\n * Result.\n * @property {ReadonlyArray<string>} extnames\n * Extensions to use.\n * @property {Process} process\n * Smart processor, async.\n *\n * @callback Process\n * Smart processor.\n * @param {Compatible} vfileCompatible\n * MDX or markdown document.\n * @return {Promise<VFile>}\n * File.\n */\n\nimport {createProcessor} from '../core.js'\nimport {md, mdx} from './extnames.js'\nimport {resolveFileAndOptions} from './resolve-file-and-options.js'\n\n/**\n * Create smart processors to handle different formats.\n *\n * @param {Readonly<CompileOptions> | null | undefined} [compileOptions]\n * Configuration (optional).\n * @return {FormatAwareProcessors}\n * Smart processor.\n */\nexport function createFormatAwareProcessors(compileOptions) {\n const compileOptions_ = compileOptions || {}\n const mdExtensions = compileOptions_.mdExtensions || md\n const mdxExtensions = compileOptions_.mdxExtensions || mdx\n /** @type {Processor<Root, Program, Program, Program, string>} */\n let cachedMarkdown\n /** @type {Processor<Root, Program, Program, Program, string>} */\n let cachedMdx\n\n return {\n extnames:\n compileOptions_.format === 'md'\n ? mdExtensions\n : compileOptions_.format === 'mdx'\n ? mdxExtensions\n : [...mdExtensions, ...mdxExtensions],\n process\n }\n\n /**\n * Smart processor.\n *\n * @type {Process}\n */\n function process(vfileCompatible) {\n const {file, processor} = split(vfileCompatible)\n return processor.process(file)\n }\n\n /**\n * Make a full vfile from what’s given, and figure out which processor\n * should be used for it.\n * This caches processors (one for markdown and one for MDX) so that they do\n * not have to be reconstructed for each file.\n *\n * @param {Compatible} vfileCompatible\n * MDX or markdown document.\n * @return {{file: VFile, processor: Processor<Root, Program, Program, Program, string>}}\n * File and corresponding processor.\n */\n function split(vfileCompatible) {\n const {file, options} = resolveFileAndOptions(\n vfileCompatible,\n compileOptions_\n )\n const processor =\n options.format === 'md'\n ? cachedMarkdown || (cachedMarkdown = createProcessor(options))\n : cachedMdx || (cachedMdx = createProcessor(options))\n return {file, processor}\n }\n}\n", "import { extname, win32, posix, isAbsolute, resolve } from 'path';\nimport { walk } from 'estree-walker';\nimport pm from 'picomatch';\n\nconst addExtension = function addExtension(filename, ext = '.js') {\n let result = `${filename}`;\n if (!extname(filename))\n result += ext;\n return result;\n};\n\nconst extractors = {\n ArrayPattern(names, param) {\n for (const element of param.elements) {\n if (element)\n extractors[element.type](names, element);\n }\n },\n AssignmentPattern(names, param) {\n extractors[param.left.type](names, param.left);\n },\n Identifier(names, param) {\n names.push(param.name);\n },\n MemberExpression() { },\n ObjectPattern(names, param) {\n for (const prop of param.properties) {\n // @ts-ignore Typescript reports that this is not a valid type\n if (prop.type === 'RestElement') {\n extractors.RestElement(names, prop);\n }\n else {\n extractors[prop.value.type](names, prop.value);\n }\n }\n },\n RestElement(names, param) {\n extractors[param.argument.type](names, param.argument);\n }\n};\nconst extractAssignedNames = function extractAssignedNames(param) {\n const names = [];\n extractors[param.type](names, param);\n return names;\n};\n\nconst blockDeclarations = {\n const: true,\n let: true\n};\nclass Scope {\n constructor(options = {}) {\n this.parent = options.parent;\n this.isBlockScope = !!options.block;\n this.declarations = Object.create(null);\n if (options.params) {\n options.params.forEach((param) => {\n extractAssignedNames(param).forEach((name) => {\n this.declarations[name] = true;\n });\n });\n }\n }\n addDeclaration(node, isBlockDeclaration, isVar) {\n if (!isBlockDeclaration && this.isBlockScope) {\n // it's a `var` or function node, and this\n // is a block scope, so we need to go up\n this.parent.addDeclaration(node, isBlockDeclaration, isVar);\n }\n else if (node.id) {\n extractAssignedNames(node.id).forEach((name) => {\n this.declarations[name] = true;\n });\n }\n }\n contains(name) {\n return this.declarations[name] || (this.parent ? this.parent.contains(name) : false);\n }\n}\nconst attachScopes = function attachScopes(ast, propertyName = 'scope') {\n let scope = new Scope();\n walk(ast, {\n enter(n, parent) {\n const node = n;\n // function foo () {...}\n // class Foo {...}\n if (/(?:Function|Class)Declaration/.test(node.type)) {\n scope.addDeclaration(node, false, false);\n }\n // var foo = 1\n if (node.type === 'VariableDeclaration') {\n const { kind } = node;\n const isBlockDeclaration = blockDeclarations[kind];\n node.declarations.forEach((declaration) => {\n scope.addDeclaration(declaration, isBlockDeclaration, true);\n });\n }\n let newScope;\n // create new function scope\n if (node.type.includes('Function')) {\n const func = node;\n newScope = new Scope({\n parent: scope,\n block: false,\n params: func.params\n });\n // named function expressions - the name is considered\n // part of the function's scope\n if (func.type === 'FunctionExpression' && func.id) {\n newScope.addDeclaration(func, false, false);\n }\n }\n // create new for scope\n if (/For(?:In|Of)?Statement/.test(node.type)) {\n newScope = new Scope({\n parent: scope,\n block: true\n });\n }\n // create new block scope\n if (node.type === 'BlockStatement' && !parent.type.includes('Function')) {\n newScope = new Scope({\n parent: scope,\n block: true\n });\n }\n // catch clause has its own block scope\n if (node.type === 'CatchClause') {\n newScope = new Scope({\n parent: scope,\n params: node.param ? [node.param] : [],\n block: true\n });\n }\n if (newScope) {\n Object.defineProperty(node, propertyName, {\n value: newScope,\n configurable: true\n });\n scope = newScope;\n }\n },\n leave(n) {\n const node = n;\n if (node[propertyName])\n scope = scope.parent;\n }\n });\n return scope;\n};\n\n// Helper since Typescript can't detect readonly arrays with Array.isArray\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\nfunction ensureArray(thing) {\n if (isArray(thing))\n return thing;\n if (thing == null)\n return [];\n return [thing];\n}\n\nconst normalizePathRegExp = new RegExp(`\\\\${win32.sep}`, 'g');\nconst normalizePath = function normalizePath(filename) {\n return filename.replace(normalizePathRegExp, posix.sep);\n};\n\nfunction getMatcherString(id, resolutionBase) {\n if (resolutionBase === false || isAbsolute(id) || id.startsWith('**')) {\n return normalizePath(id);\n }\n // resolve('') is valid and will default to process.cwd()\n const basePath = normalizePath(resolve(resolutionBase || ''))\n // escape all possible (posix + win) path characters that might interfere with regex\n .replace(/[-^$*+?.()|[\\]{}]/g, '\\\\$&');\n // Note that we use posix.join because:\n // 1. the basePath has been normalized to use /\n // 2. the incoming glob (id) matcher, also uses /\n // otherwise Node will force backslash (\\) on windows\n return posix.join(basePath, normalizePath(id));\n}\nconst createFilter = function createFilter(include, exclude, options) {\n const resolutionBase = options && options.resolve;\n const getMatcher = (id) => id instanceof RegExp\n ? id\n : {\n test: (what) => {\n // this refactor is a tad overly verbose but makes for easy debugging\n const pattern = getMatcherString(id, resolutionBase);\n const fn = pm(pattern, { dot: true });\n const result = fn(what);\n return result;\n }\n };\n const includeMatchers = ensureArray(include).map(getMatcher);\n const excludeMatchers = ensureArray(exclude).map(getMatcher);\n if (!includeMatchers.length && !excludeMatchers.length)\n return (id) => typeof id === 'string' && !id.includes('\\0');\n return function result(id) {\n if (typeof id !== 'string')\n return false;\n if (id.includes('\\0'))\n return false;\n const pathId = normalizePath(id);\n for (let i = 0; i < excludeMatchers.length; ++i) {\n const matcher = excludeMatchers[i];\n if (matcher instanceof RegExp) {\n matcher.lastIndex = 0;\n }\n if (matcher.test(pathId))\n return false;\n }\n for (let i = 0; i < includeMatchers.length; ++i) {\n const matcher = includeMatchers[i];\n if (matcher instanceof RegExp) {\n matcher.lastIndex = 0;\n }\n if (matcher.test(pathId))\n return true;\n }\n return !includeMatchers.length;\n };\n};\n\nconst reservedWords = 'break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public';\nconst builtins = 'arguments Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl';\nconst forbiddenIdentifiers = new Set(`${reservedWords} ${builtins}`.split(' '));\nforbiddenIdentifiers.add('');\nconst makeLegalIdentifier = function makeLegalIdentifier(str) {\n let identifier = str\n .replace(/-(\\w)/g, (_, letter) => letter.toUpperCase())\n .replace(/[^$_a-zA-Z0-9]/g, '_');\n if (/\\d/.test(identifier[0]) || forbiddenIdentifiers.has(identifier)) {\n identifier = `_${identifier}`;\n }\n return identifier || '_';\n};\n\nfunction stringify(obj) {\n return (JSON.stringify(obj) || 'undefined').replace(/[\\u2028\\u2029]/g, (char) => `\\\\u${`000${char.charCodeAt(0).toString(16)}`.slice(-4)}`);\n}\nfunction serializeArray(arr, indent, baseIndent) {\n let output = '[';\n const separator = indent ? `\\n${baseIndent}${indent}` : '';\n for (let i = 0; i < arr.length; i++) {\n const key = arr[i];\n output += `${i > 0 ? ',' : ''}${separator}${serialize(key, indent, baseIndent + indent)}`;\n }\n return `${output}${indent ? `\\n${baseIndent}` : ''}]`;\n}\nfunction serializeObject(obj, indent, baseIndent) {\n let output = '{';\n const separator = indent ? `\\n${baseIndent}${indent}` : '';\n const entries = Object.entries(obj);\n for (let i = 0; i < entries.length; i++) {\n const [key, value] = entries[i];\n const stringKey = makeLegalIdentifier(key) === key ? key : stringify(key);\n output += `${i > 0 ? ',' : ''}${separator}${stringKey}:${indent ? ' ' : ''}${serialize(value, indent, baseIndent + indent)}`;\n }\n return `${output}${indent ? `\\n${baseIndent}` : ''}}`;\n}\nfunction serialize(obj, indent, baseIndent) {\n if (typeof obj === 'object' && obj !== null) {\n if (Array.isArray(obj))\n return serializeArray(obj, indent, baseIndent);\n if (obj instanceof Date)\n return `new Date(${obj.getTime()})`;\n if (obj instanceof RegExp)\n return obj.toString();\n return serializeObject(obj, indent, baseIndent);\n }\n if (typeof obj === 'number') {\n if (obj === Infinity)\n return 'Infinity';\n if (obj === -Infinity)\n return '-Infinity';\n if (obj === 0)\n return 1 / obj === Infinity ? '0' : '-0';\n if (obj !== obj)\n return 'NaN'; // eslint-disable-line no-self-compare\n }\n if (typeof obj === 'symbol') {\n const key = Symbol.keyFor(obj);\n // eslint-disable-next-line no-undefined\n if (key !== undefined)\n return `Symbol.for(${stringify(key)})`;\n }\n if (typeof obj === 'bigint')\n return `${obj}n`;\n return stringify(obj);\n}\n// isWellFormed exists from Node.js 20\nconst hasStringIsWellFormed = 'isWellFormed' in String.prototype;\nfunction isWellFormedString(input) {\n // @ts-expect-error String::isWellFormed exists from ES2024. tsconfig lib is set to ES6\n if (hasStringIsWellFormed)\n return input.isWellFormed();\n // https://github.com/tc39/proposal-is-usv-string/blob/main/README.md#algorithm\n return !/\\p{Surrogate}/u.test(input);\n}\nconst dataToEsm = function dataToEsm(data, options = {}) {\n var _a, _b;\n const t = options.compact ? '' : 'indent' in options ? options.indent : '\\t';\n const _ = options.compact ? '' : ' ';\n const n = options.compact ? '' : '\\n';\n const declarationType = options.preferConst ? 'const' : 'var';\n if (options.namedExports === false ||\n typeof data !== 'object' ||\n Array.isArray(data) ||\n data instanceof Date ||\n data instanceof RegExp ||\n data === null) {\n const code = serialize(data, options.compact ? null : t, '');\n const magic = _ || (/^[{[\\-\\/]/.test(code) ? '' : ' '); // eslint-disable-line no-useless-escape\n return `export default${magic}${code};`;\n }\n let maxUnderbarPrefixLength = 0;\n for (const key of Object.keys(data)) {\n const underbarPrefixLength = (_b = (_a = /^(_+)/.exec(key)) === null || _a === void 0 ? void 0 : _a[0].length) !== null && _b !== void 0 ? _b : 0;\n if (underbarPrefixLength > maxUnderbarPrefixLength) {\n maxUnderbarPrefixLength = underbarPrefixLength;\n }\n }\n const arbitraryNamePrefix = `${'_'.repeat(maxUnderbarPrefixLength + 1)}arbitrary`;\n let namedExportCode = '';\n const defaultExportRows = [];\n const arbitraryNameExportRows = [];\n for (const [key, value] of Object.entries(data)) {\n if (key === makeLegalIdentifier(key)) {\n if (options.objectShorthand)\n defaultExportRows.push(key);\n else\n defaultExportRows.push(`${key}:${_}${key}`);\n namedExportCode += `export ${declarationType} ${key}${_}=${_}${serialize(value, options.compact ? null : t, '')};${n}`;\n }\n else {\n defaultExportRows.push(`${stringify(key)}:${_}${serialize(value, options.compact ? null : t, '')}`);\n if (options.includeArbitraryNames && isWellFormedString(key)) {\n const variableName = `${arbitraryNamePrefix}${arbitraryNameExportRows.length}`;\n namedExportCode += `${declarationType} ${variableName}${_}=${_}${serialize(value, options.compact ? null : t, '')};${n}`;\n arbitraryNameExportRows.push(`${variableName} as ${JSON.stringify(key)}`);\n }\n }\n }\n const arbitraryExportCode = arbitraryNameExportRows.length > 0\n ? `export${_}{${n}${t}${arbitraryNameExportRows.join(`,${n}${t}`)}${n}};${n}`\n : '';\n const defaultExportCode = `export default${_}{${n}${t}${defaultExportRows.join(`,${n}${t}`)}${n}};${n}`;\n return `${namedExportCode}${arbitraryExportCode}${defaultExportCode}`;\n};\n\n// TODO: remove this in next major\nvar index = {\n addExtension,\n attachScopes,\n createFilter,\n dataToEsm,\n extractAssignedNames,\n makeLegalIdentifier,\n normalizePath\n};\n\nexport { addExtension, attachScopes, createFilter, dataToEsm, index as default, extractAssignedNames, makeLegalIdentifier, normalizePath };\n//# sourceMappingURL=index.js.map\n", "/**\n * @import {FormatAwareProcessors} from '@mdx-js/mdx/internal-create-format-aware-processors'\n * @import {CompileOptions} from '@mdx-js/mdx'\n * @import {FilterPattern} from '@rollup/pluginutils'\n * @import {SourceDescription} from 'rollup'\n */\n\n/**\n * @typedef {Omit<CompileOptions, 'SourceMapGenerator'>} ApplicableOptions\n * Applicable compile configuration.\n *\n * @typedef ExtraOptions\n * Extra configuration.\n * @property {FilterPattern | null | undefined} [exclude]\n * Picomatch patterns to exclude (optional).\n * @property {FilterPattern | null | undefined} [include]\n * Picomatch patterns to include (optional).\n *\n * @typedef {ApplicableOptions & ExtraOptions} Options\n * Configuration.\n *\n * @typedef Plugin\n * Plugin that is compatible with both Rollup and Vite.\n * @property {string} name\n * The name of the plugin\n * @property {ViteConfig} config\n * Function used by Vite to set additional configuration options.\n * @property {Transform} transform\n * Function to transform the source content.\n *\n * @callback Transform\n * Callback called by Rollup and Vite to transform.\n * @param {string} value\n * File contents.\n * @param {string} path\n * File path.\n * @returns {Promise<SourceDescription | undefined>}\n * Result.\n *\n * @callback ViteConfig\n * Callback called by Vite to set additional configuration options.\n * @param {unknown} config\n * Configuration object (unused).\n * @param {ViteEnv} env\n * Environment variables.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef ViteEnv\n * Environment variables used by Vite.\n * @property {string} mode\n * Mode.\n */\n\nimport {createFormatAwareProcessors} from '@mdx-js/mdx/internal-create-format-aware-processors'\nimport {createFilter} from '@rollup/pluginutils'\nimport {SourceMapGenerator} from 'source-map'\nimport {VFile} from 'vfile'\n\n/**\n * Plugin to compile MDX w/ rollup.\n *\n * @param {Readonly<Options> | null | undefined} [options]\n * Configuration (optional).\n * @return {Plugin}\n * Rollup plugin.\n */\nexport function rollup(options) {\n const {exclude, include, ...rest} = options || {}\n /** @type {FormatAwareProcessors} */\n let formatAwareProcessors\n const filter = createFilter(include, exclude)\n\n return {\n name: '@mdx-js/rollup',\n config(config, env) {\n formatAwareProcessors = createFormatAwareProcessors({\n SourceMapGenerator,\n development: env.mode === 'development',\n ...rest\n })\n },\n async transform(value, path) {\n if (!formatAwareProcessors) {\n formatAwareProcessors = createFormatAwareProcessors({\n SourceMapGenerator,\n ...rest\n })\n }\n\n const file = new VFile({path, value})\n\n if (\n file.extname &&\n filter(file.path) &&\n formatAwareProcessors.extnames.includes(file.extname)\n ) {\n const compiled = await formatAwareProcessors.process(file)\n const code = String(compiled.value)\n /** @type {SourceDescription} */\n const result = {\n code,\n // @ts-expect-error: `rollup` is not compiled with `exactOptionalPropertyTypes`,\n // so it does not allow `sourceRoot` in `file.map` to be `undefined` here.\n map: compiled.map\n }\n return result\n }\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["win32", "opts", "value", "rest", "posix", "source", "state", "posix", "require_picomatch", "normalize", "isAbsolute", "SourceMapGenerator", "resolve", "section", "SourceMapGenerator", "process", "normalizePath", "createFilter", "pm"]
|
|
7
|
+
}
|