{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/javascript.js"],"names":["KEYWORDS","LITERALS","BUILT_INS","concat","source","re","lookahead","optional","_len","arguments","length","args","Array","_key","joined","map","x","join","module","exports","hljs","IDENT_RE$1","FRAGMENT","XML_TAG","begin","end","isTrulyOpeningTag","match","response","afterMatchIndex","index","nextChar","input","_ref","after","tag","replace","indexOf","hasClosingTag","ignoreMatch","KEYWORDS$1","$pattern","keyword","literal","built_in","nonDecimalLiterals","prefixLetters","validChars","noLeadingZeroDecimalDigits","decimalDigits","exponentPart","NUMBER","className","variants","relevance","SUBST","keywords","contains","HTML_TEMPLATE","starts","returnEnd","BACKSLASH_ESCAPE","subLanguage","CSS_TEMPLATE","TEMPLATE_STRING","COMMENT","endsParent","C_BLOCK_COMMENT_MODE","C_LINE_COMMENT_MODE","SUBST_INTERNALS","APOS_STRING_MODE","QUOTE_STRING_MODE","REGEXP_MODE","SUBST_AND_COMMENTS","PARAMS_CONTAINS","PARAMS","excludeBegin","excludeEnd","name","aliases","illegal","SHEBANG","label","binary","RE_STARTERS_RE","UNDERSCORE_IDENT_RE","returnBegin","skip","beginKeywords","inherit","TITLE_MODE","UNDERSCORE_TITLE_MODE"],"mappings":"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","file":"react-syntax-highlighter_languages_highlight_javascript-9a707cab687adcd89719.js","sourcesContent":["var IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nvar KEYWORDS = [\"as\", // for exports\n\"in\", \"of\", \"if\", \"for\", \"while\", \"finally\", \"var\", \"new\", \"function\", \"do\", \"return\", \"void\", \"else\", \"break\", \"catch\", \"instanceof\", \"with\", \"throw\", \"case\", \"default\", \"try\", \"switch\", \"continue\", \"typeof\", \"delete\", \"let\", \"yield\", \"const\", \"class\", // JS handles these with a special rule\n// \"get\",\n// \"set\",\n\"debugger\", \"async\", \"await\", \"static\", \"import\", \"from\", \"export\", \"extends\"];\nvar LITERALS = [\"true\", \"false\", \"null\", \"undefined\", \"NaN\", \"Infinity\"];\nvar TYPES = [\"Intl\", \"DataView\", \"Number\", \"Math\", \"Date\", \"String\", \"RegExp\", \"Object\", \"Function\", \"Boolean\", \"Error\", \"Symbol\", \"Set\", \"Map\", \"WeakSet\", \"WeakMap\", \"Proxy\", \"Reflect\", \"JSON\", \"Promise\", \"Float64Array\", \"Int16Array\", \"Int32Array\", \"Int8Array\", \"Uint16Array\", \"Uint32Array\", \"Float32Array\", \"Array\", \"Uint8Array\", \"Uint8ClampedArray\", \"ArrayBuffer\"];\nvar ERROR_TYPES = [\"EvalError\", \"InternalError\", \"RangeError\", \"ReferenceError\", \"SyntaxError\", \"TypeError\", \"URIError\"];\nvar BUILT_IN_GLOBALS = [\"setInterval\", \"setTimeout\", \"clearInterval\", \"clearTimeout\", \"require\", \"exports\", \"eval\", \"isFinite\", \"isNaN\", \"parseFloat\", \"parseInt\", \"decodeURI\", \"decodeURIComponent\", \"encodeURI\", \"encodeURIComponent\", \"escape\", \"unescape\"];\nvar BUILT_IN_VARIABLES = [\"arguments\", \"this\", \"super\", \"console\", \"window\", \"document\", \"localStorage\", \"module\", \"global\" // Node.js\n];\nvar BUILT_INS = [].concat(BUILT_IN_GLOBALS, BUILT_IN_VARIABLES, TYPES, ERROR_TYPES);\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\n\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n  return re.source;\n}\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\n\n\nfunction lookahead(re) {\n  return concat('(?=', re, ')');\n}\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\n\n\nfunction optional(re) {\n  return concat('(', re, ')?');\n}\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\n\n\nfunction concat() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  var joined = args.map(function (x) {\n    return source(x);\n  }).join(\"\");\n  return joined;\n}\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n/** @type LanguageFn */\n\n\nfunction javascript(hljs) {\n  /**\n   * Takes a string like \"<Booger\" and checks to see\n   * if we can find a matching \"</Booger\" later in the\n   * content.\n   * @param {RegExpMatchArray} match\n   * @param {{after:number}} param1\n   */\n  var hasClosingTag = function hasClosingTag(match, _ref) {\n    var after = _ref.after;\n    var tag = match[0].replace(\"<\", \"</\");\n    var pos = match.input.indexOf(tag, after);\n    return pos !== -1;\n  };\n\n  var IDENT_RE$1 = IDENT_RE;\n  var FRAGMENT = {\n    begin: '<>',\n    end: '</>'\n  };\n  var XML_TAG = {\n    begin: /<[A-Za-z0-9\\\\._:-]+/,\n    end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n\n    /**\n     * @param {RegExpMatchArray} match\n     * @param {CallbackResponse} response\n     */\n    isTrulyOpeningTag: function isTrulyOpeningTag(match, response) {\n      var afterMatchIndex = match[0].length + match.index;\n      var nextChar = match.input[afterMatchIndex]; // nested type?\n      // HTML should not include another raw `<` inside a tag\n      // But a type might: `<Array<Array<number>>`, etc.\n\n      if (nextChar === \"<\") {\n        response.ignoreMatch();\n        return;\n      } // <something>\n      // This is now either a tag or a type.\n\n\n      if (nextChar === \">\") {\n        // if we cannot find a matching closing tag, then we\n        // will ignore it\n        if (!hasClosingTag(match, {\n          after: afterMatchIndex\n        })) {\n          response.ignoreMatch();\n        }\n      }\n    }\n  };\n  var KEYWORDS$1 = {\n    $pattern: IDENT_RE,\n    keyword: KEYWORDS.join(\" \"),\n    literal: LITERALS.join(\" \"),\n    built_in: BUILT_INS.join(\" \")\n  };\n\n  var nonDecimalLiterals = function nonDecimalLiterals(prefixLetters, validChars) {\n    return \"\\\\b0[\".concat(prefixLetters, \"][\").concat(validChars, \"]([\").concat(validChars, \"_]*[\").concat(validChars, \"])?n?\");\n  };\n\n  var noLeadingZeroDecimalDigits = /[1-9]([0-9_]*\\d)?/;\n  var decimalDigits = /\\d([0-9_]*\\d)?/;\n  var exponentPart = concat(/[eE][+-]?/, decimalDigits);\n  var NUMBER = {\n    className: 'number',\n    variants: [{\n      begin: nonDecimalLiterals('bB', '01')\n    }, // Binary literals\n    {\n      begin: nonDecimalLiterals('oO', '0-7')\n    }, // Octal literals\n    {\n      begin: nonDecimalLiterals('xX', '0-9a-fA-F')\n    }, // Hexadecimal literals\n    {\n      begin: concat(/\\b/, noLeadingZeroDecimalDigits, 'n')\n    }, // Non-zero BigInt literals\n    {\n      begin: concat(/(\\b0)?\\./, decimalDigits, optional(exponentPart))\n    }, // Decimal literals between 0 and 1\n    {\n      begin: concat(/\\b/, noLeadingZeroDecimalDigits, optional(concat(/\\./, optional(decimalDigits))), // fractional part\n      optional(exponentPart))\n    }, // Decimal literals >= 1\n    {\n      begin: /\\b0[\\.n]?/\n    } // Zero literals (`0`, `0.`, `0n`)\n    ],\n    relevance: 0\n  };\n  var SUBST = {\n    className: 'subst',\n    begin: '\\\\$\\\\{',\n    end: '\\\\}',\n    keywords: KEYWORDS$1,\n    contains: [] // defined later\n\n  };\n  var HTML_TEMPLATE = {\n    begin: 'html`',\n    end: '',\n    starts: {\n      end: '`',\n      returnEnd: false,\n      contains: [hljs.BACKSLASH_ESCAPE, SUBST],\n      subLanguage: 'xml'\n    }\n  };\n  var CSS_TEMPLATE = {\n    begin: 'css`',\n    end: '',\n    starts: {\n      end: '`',\n      returnEnd: false,\n      contains: [hljs.BACKSLASH_ESCAPE, SUBST],\n      subLanguage: 'css'\n    }\n  };\n  var TEMPLATE_STRING = {\n    className: 'string',\n    begin: '`',\n    end: '`',\n    contains: [hljs.BACKSLASH_ESCAPE, SUBST]\n  };\n  var JSDOC_COMMENT = hljs.COMMENT('/\\\\*\\\\*', '\\\\*/', {\n    relevance: 0,\n    contains: [{\n      className: 'doctag',\n      begin: '@[A-Za-z]+',\n      contains: [{\n        className: 'type',\n        begin: '\\\\{',\n        end: '\\\\}',\n        relevance: 0\n      }, {\n        className: 'variable',\n        begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n        endsParent: true,\n        relevance: 0\n      }, // eat spaces (not newlines) so we can find\n      // types or variables\n      {\n        begin: /(?=[^\\n])\\s/,\n        relevance: 0\n      }]\n    }]\n  });\n  var COMMENT = {\n    className: \"comment\",\n    variants: [JSDOC_COMMENT, hljs.C_BLOCK_COMMENT_MODE, hljs.C_LINE_COMMENT_MODE]\n  };\n  var SUBST_INTERNALS = [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, HTML_TEMPLATE, CSS_TEMPLATE, TEMPLATE_STRING, NUMBER, hljs.REGEXP_MODE];\n  SUBST.contains = SUBST_INTERNALS.concat({\n    // we need to pair up {} inside our subst to prevent\n    // it from ending too early by matching another }\n    begin: /{/,\n    end: /}/,\n    keywords: KEYWORDS$1,\n    contains: [\"self\"].concat(SUBST_INTERNALS)\n  });\n  var SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n  var PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([// eat recursive parens in sub expressions\n  {\n    begin: /\\(/,\n    end: /\\)/,\n    keywords: KEYWORDS$1,\n    contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n  }]);\n  var PARAMS = {\n    className: 'params',\n    begin: /\\(/,\n    end: /\\)/,\n    excludeBegin: true,\n    excludeEnd: true,\n    keywords: KEYWORDS$1,\n    contains: PARAMS_CONTAINS\n  };\n  return {\n    name: 'Javascript',\n    aliases: ['js', 'jsx', 'mjs', 'cjs'],\n    keywords: KEYWORDS$1,\n    // this will be extended by TypeScript\n    exports: {\n      PARAMS_CONTAINS: PARAMS_CONTAINS\n    },\n    illegal: /#(?![$_A-z])/,\n    contains: [hljs.SHEBANG({\n      label: \"shebang\",\n      binary: \"node\",\n      relevance: 5\n    }), {\n      label: \"use_strict\",\n      className: 'meta',\n      relevance: 10,\n      begin: /^\\s*['\"]use (strict|asm)['\"]/\n    }, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, HTML_TEMPLATE, CSS_TEMPLATE, TEMPLATE_STRING, COMMENT, NUMBER, {\n      // object attr container\n      begin: concat(/[{,\\n]\\s*/, // we need to look ahead to make sure that we actually have an\n      // attribute coming up so we don't steal a comma from a potential\n      // \"value\" container\n      //\n      // NOTE: this might not work how you think.  We don't actually always\n      // enter this mode and stay.  Instead it might merely match `,\n      // <comments up next>` and then immediately end after the , because it\n      // fails to find any actual attrs. But this still does the job because\n      // it prevents the value contain rule from grabbing this instead and\n      // prevening this rule from firing when we actually DO have keys.\n      lookahead(concat( // we also need to allow for multiple possible comments inbetween\n      // the first key:value pairing\n      /(\\/\\/.*$)*/, /(\\/\\*(.|\\n)*\\*\\/)*/, /\\s*/, IDENT_RE$1 + '\\\\s*:'))),\n      relevance: 0,\n      contains: [{\n        className: 'attr',\n        begin: IDENT_RE$1 + lookahead('\\\\s*:'),\n        relevance: 0\n      }]\n    }, {\n      // \"value\" container\n      begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n      keywords: 'return throw case',\n      contains: [COMMENT, hljs.REGEXP_MODE, {\n        className: 'function',\n        // we have to count the parens to make sure we actually have the\n        // correct bounding ( ) before the =>.  There could be any number of\n        // sub-expressions inside also surrounded by parens.\n        begin: '(\\\\(' + '[^()]*(\\\\(' + '[^()]*(\\\\(' + '[^()]*' + '\\\\))*[^()]*' + '\\\\))*[^()]*' + '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>',\n        returnBegin: true,\n        end: '\\\\s*=>',\n        contains: [{\n          className: 'params',\n          variants: [{\n            begin: hljs.UNDERSCORE_IDENT_RE\n          }, {\n            className: null,\n            begin: /\\(\\s*\\)/,\n            skip: true\n          }, {\n            begin: /\\(/,\n            end: /\\)/,\n            excludeBegin: true,\n            excludeEnd: true,\n            keywords: KEYWORDS$1,\n            contains: PARAMS_CONTAINS\n          }]\n        }]\n      }, {\n        // could be a comma delimited list of params to a function call\n        begin: /,/,\n        relevance: 0\n      }, {\n        className: '',\n        begin: /\\s/,\n        end: /\\s*/,\n        skip: true\n      }, {\n        // JSX\n        variants: [{\n          begin: FRAGMENT.begin,\n          end: FRAGMENT.end\n        }, {\n          begin: XML_TAG.begin,\n          // we carefully check the opening tag to see if it truly\n          // is a tag and not a false positive\n          'on:begin': XML_TAG.isTrulyOpeningTag,\n          end: XML_TAG.end\n        }],\n        subLanguage: 'xml',\n        contains: [{\n          begin: XML_TAG.begin,\n          end: XML_TAG.end,\n          skip: true,\n          contains: ['self']\n        }]\n      }],\n      relevance: 0\n    }, {\n      className: 'function',\n      beginKeywords: 'function',\n      end: /[{;]/,\n      excludeEnd: true,\n      keywords: KEYWORDS$1,\n      contains: ['self', hljs.inherit(hljs.TITLE_MODE, {\n        begin: IDENT_RE$1\n      }), PARAMS],\n      illegal: /%/\n    }, {\n      className: 'function',\n      // we have to count the parens to make sure we actually have the correct\n      // bounding ( ).  There could be any number of sub-expressions inside\n      // also surrounded by parens.\n      begin: hljs.UNDERSCORE_IDENT_RE + '\\\\(' + // first parens\n      '[^()]*(\\\\(' + '[^()]*(\\\\(' + '[^()]*' + '\\\\))*[^()]*' + '\\\\))*[^()]*' + '\\\\)\\\\s*{',\n      // end parens\n      returnBegin: true,\n      contains: [PARAMS, hljs.inherit(hljs.TITLE_MODE, {\n        begin: IDENT_RE$1\n      })]\n    }, // hack: prevents detection of keywords in some circumstances\n    // .keyword()\n    // $keyword = x\n    {\n      variants: [{\n        begin: '\\\\.' + IDENT_RE$1\n      }, {\n        begin: '\\\\$' + IDENT_RE$1\n      }],\n      relevance: 0\n    }, {\n      // ES6 class\n      className: 'class',\n      beginKeywords: 'class',\n      end: /[{;=]/,\n      excludeEnd: true,\n      illegal: /[:\"\\[\\]]/,\n      contains: [{\n        beginKeywords: 'extends'\n      }, hljs.UNDERSCORE_TITLE_MODE]\n    }, {\n      begin: /\\b(?=constructor)/,\n      end: /[\\{;]/,\n      excludeEnd: true,\n      contains: [hljs.inherit(hljs.TITLE_MODE, {\n        begin: IDENT_RE$1\n      }), 'self', PARAMS]\n    }, {\n      begin: '(get|set)\\\\s+(?=' + IDENT_RE$1 + '\\\\()',\n      end: /{/,\n      keywords: \"get set\",\n      contains: [hljs.inherit(hljs.TITLE_MODE, {\n        begin: IDENT_RE$1\n      }), {\n        begin: /\\(\\)/\n      }, // eat to avoid empty params\n      PARAMS]\n    }, {\n      begin: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n\n    }]\n  };\n}\n\nmodule.exports = javascript;"],"sourceRoot":""}