diff options
Diffstat (limited to 'node_modules/@babel/code-frame')
| -rw-r--r-- | node_modules/@babel/code-frame/LICENSE | 22 | ||||
| -rw-r--r-- | node_modules/@babel/code-frame/README.md | 19 | ||||
| -rw-r--r-- | node_modules/@babel/code-frame/lib/index.js | 163 | ||||
| -rw-r--r-- | node_modules/@babel/code-frame/package.json | 29 | 
4 files changed, 233 insertions, 0 deletions
diff --git a/node_modules/@babel/code-frame/LICENSE b/node_modules/@babel/code-frame/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/node_modules/@babel/code-frame/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/code-frame/README.md b/node_modules/@babel/code-frame/README.md new file mode 100644 index 0000000..08cacb0 --- /dev/null +++ b/node_modules/@babel/code-frame/README.md @@ -0,0 +1,19 @@ +# @babel/code-frame + +> Generate errors that contain a code frame that point to source locations. + +See our website [@babel/code-frame](https://babeljs.io/docs/en/babel-code-frame) for more information. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/code-frame +``` + +or using yarn: + +```sh +yarn add @babel/code-frame --dev +``` diff --git a/node_modules/@babel/code-frame/lib/index.js b/node_modules/@babel/code-frame/lib/index.js new file mode 100644 index 0000000..cba3f83 --- /dev/null +++ b/node_modules/@babel/code-frame/lib/index.js @@ -0,0 +1,163 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.codeFrameColumns = codeFrameColumns; +exports.default = _default; + +var _highlight = require("@babel/highlight"); + +let deprecationWarningShown = false; + +function getDefs(chalk) { +  return { +    gutter: chalk.grey, +    marker: chalk.red.bold, +    message: chalk.red.bold +  }; +} + +const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; + +function getMarkerLines(loc, source, opts) { +  const startLoc = Object.assign({ +    column: 0, +    line: -1 +  }, loc.start); +  const endLoc = Object.assign({}, startLoc, loc.end); +  const { +    linesAbove = 2, +    linesBelow = 3 +  } = opts || {}; +  const startLine = startLoc.line; +  const startColumn = startLoc.column; +  const endLine = endLoc.line; +  const endColumn = endLoc.column; +  let start = Math.max(startLine - (linesAbove + 1), 0); +  let end = Math.min(source.length, endLine + linesBelow); + +  if (startLine === -1) { +    start = 0; +  } + +  if (endLine === -1) { +    end = source.length; +  } + +  const lineDiff = endLine - startLine; +  const markerLines = {}; + +  if (lineDiff) { +    for (let i = 0; i <= lineDiff; i++) { +      const lineNumber = i + startLine; + +      if (!startColumn) { +        markerLines[lineNumber] = true; +      } else if (i === 0) { +        const sourceLength = source[lineNumber - 1].length; +        markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; +      } else if (i === lineDiff) { +        markerLines[lineNumber] = [0, endColumn]; +      } else { +        const sourceLength = source[lineNumber - i].length; +        markerLines[lineNumber] = [0, sourceLength]; +      } +    } +  } else { +    if (startColumn === endColumn) { +      if (startColumn) { +        markerLines[startLine] = [startColumn, 0]; +      } else { +        markerLines[startLine] = true; +      } +    } else { +      markerLines[startLine] = [startColumn, endColumn - startColumn]; +    } +  } + +  return { +    start, +    end, +    markerLines +  }; +} + +function codeFrameColumns(rawLines, loc, opts = {}) { +  const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts); +  const chalk = (0, _highlight.getChalk)(opts); +  const defs = getDefs(chalk); + +  const maybeHighlight = (chalkFn, string) => { +    return highlighted ? chalkFn(string) : string; +  }; + +  const lines = rawLines.split(NEWLINE); +  const { +    start, +    end, +    markerLines +  } = getMarkerLines(loc, lines, opts); +  const hasColumns = loc.start && typeof loc.start.column === "number"; +  const numberMaxWidth = String(end).length; +  const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines; +  let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => { +    const number = start + 1 + index; +    const paddedNumber = ` ${number}`.slice(-numberMaxWidth); +    const gutter = ` ${paddedNumber} |`; +    const hasMarker = markerLines[number]; +    const lastMarkerLine = !markerLines[number + 1]; + +    if (hasMarker) { +      let markerLine = ""; + +      if (Array.isArray(hasMarker)) { +        const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); +        const numberOfMarkers = hasMarker[1] || 1; +        markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); + +        if (lastMarkerLine && opts.message) { +          markerLine += " " + maybeHighlight(defs.message, opts.message); +        } +      } + +      return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); +    } else { +      return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`; +    } +  }).join("\n"); + +  if (opts.message && !hasColumns) { +    frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; +  } + +  if (highlighted) { +    return chalk.reset(frame); +  } else { +    return frame; +  } +} + +function _default(rawLines, lineNumber, colNumber, opts = {}) { +  if (!deprecationWarningShown) { +    deprecationWarningShown = true; +    const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; + +    if (process.emitWarning) { +      process.emitWarning(message, "DeprecationWarning"); +    } else { +      const deprecationError = new Error(message); +      deprecationError.name = "DeprecationWarning"; +      console.warn(new Error(message)); +    } +  } + +  colNumber = Math.max(colNumber, 0); +  const location = { +    start: { +      column: colNumber, +      line: lineNumber +    } +  }; +  return codeFrameColumns(rawLines, location, opts); +}
\ No newline at end of file diff --git a/node_modules/@babel/code-frame/package.json b/node_modules/@babel/code-frame/package.json new file mode 100644 index 0000000..ee1b382 --- /dev/null +++ b/node_modules/@babel/code-frame/package.json @@ -0,0 +1,29 @@ +{ +  "name": "@babel/code-frame", +  "version": "7.16.7", +  "description": "Generate errors that contain a code frame that point to source locations.", +  "author": "The Babel Team (https://babel.dev/team)", +  "homepage": "https://babel.dev/docs/en/next/babel-code-frame", +  "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen", +  "license": "MIT", +  "publishConfig": { +    "access": "public" +  }, +  "repository": { +    "type": "git", +    "url": "https://github.com/babel/babel.git", +    "directory": "packages/babel-code-frame" +  }, +  "main": "./lib/index.js", +  "dependencies": { +    "@babel/highlight": "^7.16.7" +  }, +  "devDependencies": { +    "@types/chalk": "^2.0.0", +    "chalk": "^2.0.0", +    "strip-ansi": "^4.0.0" +  }, +  "engines": { +    "node": ">=6.9.0" +  } +}
\ No newline at end of file  | 
