"use strict"; exports.__esModule = true; exports.shouldHighlight = shouldHighlight; exports.getChalk = getChalk; exports.default = highlight; var _jsTokens = _interopRequireWildcard(require("js-tokens")); var _esutils = _interopRequireDefault(require("esutils")); var _chalk = _interopRequireDefault(require("chalk")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function getDefs(chalk) { return { keyword: chalk.cyan, capitalized: chalk.yellow, jsx_tag: chalk.yellow, punctuator: chalk.yellow, number: chalk.magenta, string: chalk.green, regex: chalk.magenta, comment: chalk.grey, invalid: chalk.white.bgRed.bold }; } var NEWLINE = /\r\n|[\n\r\u2028\u2029]/; var JSX_TAG = /^[a-z][\w-]*$/i; var BRACKET = /^[()[\]{}]$/; function getTokenType(match) { var _match$slice = match.slice(-2), offset = _match$slice[0], text = _match$slice[1]; var token = (0, _jsTokens.matchToToken)(match); if (token.type === "name") { if (_esutils.default.keyword.isReservedWordES6(token.value)) { return "keyword"; } if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.substr(offset - 2, 2) == "