@babel/code-frame
Advanced tools
| import { _ as _codeFrameColumns } from './common-BO7XIBW3.js'; | ||
| let deprecationWarningShown = false; | ||
| function codeFrameColumns(rawLines, loc, opts = {}) { | ||
| return _codeFrameColumns(rawLines, loc, opts); | ||
| } | ||
| function browser (rawLines, lineNumber, colNumber, opts = {}) { | ||
| if (!deprecationWarningShown) { | ||
| deprecationWarningShown = true; | ||
| const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; | ||
| 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); | ||
| } | ||
| function highlight(code) { | ||
| return code; | ||
| } | ||
| export { codeFrameColumns, browser as default, highlight }; | ||
| //# sourceMappingURL=browser.js.map |
| {"version":3,"file":"browser.js","sources":["../src/browser.ts"],"sourcesContent":["import {\n _codeFrameColumns,\n type NodeLocation,\n type Options,\n} from \"./common.ts\";\n\nlet deprecationWarningShown = false;\n\nexport type { Options };\n\nexport function codeFrameColumns(\n rawLines: string,\n loc: NodeLocation,\n opts: Options = {},\n): string {\n return _codeFrameColumns(rawLines, loc, opts);\n}\n\n/**\n * Create a code frame, adding line numbers, code highlighting, and pointing to a given position.\n */\n\nexport default function (\n rawLines: string,\n lineNumber: number,\n colNumber?: number | null,\n opts: Options = {},\n): string {\n if (!deprecationWarningShown) {\n deprecationWarningShown = true;\n\n const message =\n \"Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.\";\n\n const deprecationError = new Error(message);\n deprecationError.name = \"DeprecationWarning\";\n console.warn(new Error(message));\n }\n\n colNumber = Math.max(colNumber, 0);\n\n const location: NodeLocation = {\n start: { column: colNumber, line: lineNumber },\n };\n\n return codeFrameColumns(rawLines, location, opts);\n}\n\nexport function highlight(code: string) {\n return code;\n}\n"],"names":["deprecationWarningShown","codeFrameColumns","rawLines","loc","opts","_codeFrameColumns","lineNumber","colNumber","message","deprecationError","Error","name","console","warn","Math","max","location","start","column","line","highlight","code"],"mappings":";;AAMA,IAAIA,uBAAuB,GAAG,KAAK,CAAA;AAI5B,SAASC,gBAAgBA,CAC9BC,QAAgB,EAChBC,GAAiB,EACjBC,IAAa,GAAG,EAAE,EACV;AACR,EAAA,OAAOC,iBAAiB,CAACH,QAAQ,EAAEC,GAAG,EAAEC,IAAI,CAAC,CAAA;AAC/C,CAAA;AAMe,gBAAA,EACbF,QAAgB,EAChBI,UAAkB,EAClBC,SAAyB,EACzBH,IAAa,GAAG,EAAE,EACV;EACR,IAAI,CAACJ,uBAAuB,EAAE;AAC5BA,IAAAA,uBAAuB,GAAG,IAAI,CAAA;IAE9B,MAAMQ,OAAO,GACX,qGAAqG,CAAA;AAEvG,IAAA,MAAMC,gBAAgB,GAAG,IAAIC,KAAK,CAACF,OAAO,CAAC,CAAA;IAC3CC,gBAAgB,CAACE,IAAI,GAAG,oBAAoB,CAAA;IAC5CC,OAAO,CAACC,IAAI,CAAC,IAAIH,KAAK,CAACF,OAAO,CAAC,CAAC,CAAA;AAClC,GAAA;EAEAD,SAAS,GAAGO,IAAI,CAACC,GAAG,CAACR,SAAS,EAAE,CAAC,CAAC,CAAA;AAElC,EAAA,MAAMS,QAAsB,GAAG;AAC7BC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,MAAM,EAAEX,SAAS;AAAEY,MAAAA,IAAI,EAAEb,UAAAA;AAAW,KAAA;GAC9C,CAAA;AAED,EAAA,OAAOL,gBAAgB,CAACC,QAAQ,EAAEc,QAAQ,EAAEZ,IAAI,CAAC,CAAA;AACnD,CAAA;AAEO,SAASgB,SAASA,CAACC,IAAY,EAAE;AACtC,EAAA,OAAOA,IAAI,CAAA;AACb;;;;"} |
| const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; | ||
| function getMarkerLines(loc, source, opts, startLineBaseZero) { | ||
| const startLoc = { | ||
| column: 0, | ||
| line: -1, | ||
| ...loc.start | ||
| }; | ||
| const endLoc = { | ||
| ...startLoc, | ||
| ...loc.end | ||
| }; | ||
| const { | ||
| linesAbove = 2, | ||
| linesBelow = 3 | ||
| } = opts || {}; | ||
| const startLine = startLoc.line - startLineBaseZero; | ||
| const startColumn = startLoc.column; | ||
| const endLine = endLoc.line - startLineBaseZero; | ||
| 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 = {}, colorOpts) { | ||
| const { | ||
| defs, | ||
| highlight | ||
| } = colorOpts || { | ||
| defs: { | ||
| gutter: String, | ||
| marker: String, | ||
| message: String, | ||
| reset: String | ||
| }, | ||
| highlight: String | ||
| }; | ||
| const startLineBaseZero = (opts.startLine || 1) - 1; | ||
| const lines = rawLines.split(NEWLINE); | ||
| const { | ||
| start, | ||
| end, | ||
| markerLines | ||
| } = getMarkerLines(loc, lines, opts, startLineBaseZero); | ||
| const hasColumns = loc.start && typeof loc.start.column === "number"; | ||
| const numberMaxWidth = String(end + startLineBaseZero).length; | ||
| const highlightedLines = highlight(rawLines); | ||
| let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => { | ||
| const number = start + 1 + index; | ||
| const paddedNumber = ` ${number + startLineBaseZero}`.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 ", defs.gutter(gutter.replace(/\d/g, " ")), " ", markerSpacing, defs.marker("^").repeat(numberOfMarkers)].join(""); | ||
| if (lastMarkerLine && opts.message) { | ||
| markerLine += " " + defs.message(opts.message); | ||
| } | ||
| } | ||
| return [defs.marker(">"), defs.gutter(gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); | ||
| } else { | ||
| return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : ""}`; | ||
| } | ||
| }).join("\n"); | ||
| if (opts.message && !hasColumns) { | ||
| frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; | ||
| } | ||
| return defs.reset(frame); | ||
| } | ||
| export { _codeFrameColumns as _ }; | ||
| //# sourceMappingURL=common-BO7XIBW3.js.map |
| {"version":3,"file":"common-BO7XIBW3.js","sources":["../src/common.ts"],"sourcesContent":["import type { Defs } from \"./defs\";\n\ntype Location = {\n column: number;\n line: number;\n};\n\nexport type NodeLocation = {\n end?: Location;\n start: Location;\n};\n\nexport interface Options {\n /** Syntax highlight the code as JavaScript for terminals. default: false */\n highlightCode?: boolean;\n /** The number of lines to show above the error. default: 2 */\n linesAbove?: number;\n /** The number of lines to show below the error. default: 3 */\n linesBelow?: number;\n\n startLine?: number;\n /**\n * Forcibly syntax highlight the code as JavaScript (for non-terminals);\n * overrides highlightCode.\n * default: false\n */\n forceColor?: boolean;\n /**\n * Pass in a string to be displayed inline (if possible) next to the\n * highlighted location in the code. If it can't be positioned inline,\n * it will be placed above the code frame.\n * default: nothing\n */\n message?: string;\n}\n\n/**\n * RegExp to test for newlines in terminal.\n */\n\nexport const NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * Extract what lines should be marked and highlighted.\n */\n\ntype MarkerLines = Record<number, true | [number, number]>;\n\nexport function getMarkerLines(\n loc: NodeLocation,\n source: string[],\n opts: Options,\n startLineBaseZero: number,\n): {\n start: number;\n end: number;\n markerLines: MarkerLines;\n} {\n const startLoc: Location = {\n column: 0,\n line: -1,\n ...loc.start,\n };\n const endLoc: Location = {\n ...startLoc,\n ...loc.end,\n };\n const { linesAbove = 2, linesBelow = 3 } = opts || {};\n const startLine = startLoc.line - startLineBaseZero;\n const startColumn = startLoc.column;\n const endLine = endLoc.line - startLineBaseZero;\n const endColumn = endLoc.column;\n\n let start = Math.max(startLine - (linesAbove + 1), 0);\n let end = Math.min(source.length, endLine + linesBelow);\n\n if (startLine === -1) {\n start = 0;\n }\n\n if (endLine === -1) {\n end = source.length;\n }\n\n const lineDiff = endLine - startLine;\n const markerLines: MarkerLines = {};\n\n if (lineDiff) {\n for (let i = 0; i <= lineDiff; i++) {\n const lineNumber = i + startLine;\n\n if (!startColumn) {\n markerLines[lineNumber] = true;\n } else if (i === 0) {\n const sourceLength = source[lineNumber - 1].length;\n\n markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];\n } else if (i === lineDiff) {\n markerLines[lineNumber] = [0, endColumn];\n } else {\n const sourceLength = source[lineNumber - i].length;\n\n markerLines[lineNumber] = [0, sourceLength];\n }\n }\n } else {\n if (startColumn === endColumn) {\n if (startColumn) {\n markerLines[startLine] = [startColumn, 0];\n } else {\n markerLines[startLine] = true;\n }\n } else {\n markerLines[startLine] = [startColumn, endColumn - startColumn];\n }\n }\n\n return { start, end, markerLines };\n}\n\nexport function _codeFrameColumns(\n rawLines: string,\n loc: NodeLocation,\n opts: Options = {},\n colorOpts?: {\n defs: Pick<Defs, \"gutter\" | \"marker\" | \"message\" | \"reset\">;\n highlight: (code: string) => string;\n },\n): string {\n const { defs, highlight } = colorOpts || {\n defs: {\n gutter: String,\n marker: String,\n message: String,\n reset: String,\n },\n highlight: String,\n };\n\n const startLineBaseZero = (opts.startLine || 1) - 1;\n\n const lines = rawLines.split(NEWLINE);\n const { start, end, markerLines } = getMarkerLines(\n loc,\n lines,\n opts,\n startLineBaseZero,\n );\n const hasColumns = loc.start && typeof loc.start.column === \"number\";\n\n const numberMaxWidth = String(end + startLineBaseZero).length;\n\n const highlightedLines = highlight(rawLines);\n\n let frame = highlightedLines\n .split(NEWLINE, end)\n .slice(start, end)\n .map((line, index) => {\n const number = start + 1 + index;\n const paddedNumber = ` ${number + startLineBaseZero}`.slice(\n -numberMaxWidth,\n );\n const gutter = ` ${paddedNumber} |`;\n const hasMarker = markerLines[number];\n const lastMarkerLine = !markerLines[number + 1];\n if (hasMarker) {\n let markerLine = \"\";\n if (Array.isArray(hasMarker)) {\n const markerSpacing = line\n .slice(0, Math.max(hasMarker[0] - 1, 0))\n .replace(/[^\\t]/g, \" \");\n const numberOfMarkers = hasMarker[1] || 1;\n\n markerLine = [\n \"\\n \",\n defs.gutter(gutter.replace(/\\d/g, \" \")),\n \" \",\n markerSpacing,\n defs.marker(\"^\").repeat(numberOfMarkers),\n ].join(\"\");\n\n if (lastMarkerLine && opts.message) {\n markerLine += \" \" + defs.message(opts.message);\n }\n }\n return [\n defs.marker(\">\"),\n defs.gutter(gutter),\n line.length > 0 ? ` ${line}` : \"\",\n markerLine,\n ].join(\"\");\n } else {\n return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : \"\"}`;\n }\n })\n .join(\"\\n\");\n\n if (opts.message && !hasColumns) {\n frame = `${\" \".repeat(numberMaxWidth + 1)}${opts.message}\\n${frame}`;\n }\n\n return defs.reset(frame);\n}\n"],"names":["NEWLINE","getMarkerLines","loc","source","opts","startLineBaseZero","startLoc","column","line","start","endLoc","end","linesAbove","linesBelow","startLine","startColumn","endLine","endColumn","Math","max","min","length","lineDiff","markerLines","i","lineNumber","sourceLength","_codeFrameColumns","rawLines","colorOpts","defs","highlight","gutter","String","marker","message","reset","lines","split","hasColumns","numberMaxWidth","highlightedLines","frame","slice","map","index","number","paddedNumber","hasMarker","lastMarkerLine","markerLine","Array","isArray","markerSpacing","replace","numberOfMarkers","repeat","join"],"mappings":"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"} |
+4
-2
@@ -1,3 +0,1 @@ | ||
| declare function highlight(text: string): string; | ||
| type Location = { | ||
@@ -18,2 +16,3 @@ column: number; | ||
| linesBelow?: number; | ||
| startLine?: number; | ||
| /** | ||
@@ -33,2 +32,5 @@ * Forcibly syntax highlight the code as JavaScript (for non-terminals); | ||
| } | ||
| declare function highlight(text: string): string; | ||
| declare function codeFrameColumns(rawLines: string, loc: NodeLocation, opts?: Options): string; | ||
@@ -35,0 +37,0 @@ /** |
+28
-128
@@ -1,2 +0,3 @@ | ||
| import picocolors, { createColors } from 'picocolors'; | ||
| import { _ as _codeFrameColumns } from './common-BO7XIBW3.js'; | ||
| import { styleText } from 'node:util'; | ||
| import jsTokens from 'js-tokens'; | ||
@@ -6,31 +7,27 @@ import { isKeyword, isStrictReservedWord } from '@babel/helper-validator-identifier'; | ||
| function isColorSupported() { | ||
| return (typeof process === "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? false : picocolors.isColorSupported | ||
| ); | ||
| return styleText("red", "-") !== "-"; | ||
| } | ||
| const compose = (f, g) => v => f(g(v)); | ||
| function buildDefs(colors) { | ||
| return { | ||
| keyword: colors.cyan, | ||
| capitalized: colors.yellow, | ||
| jsxIdentifier: colors.yellow, | ||
| punctuator: colors.yellow, | ||
| number: colors.magenta, | ||
| string: colors.green, | ||
| regex: colors.magenta, | ||
| comment: colors.gray, | ||
| invalid: compose(compose(colors.white, colors.bgRed), colors.bold), | ||
| gutter: colors.gray, | ||
| marker: compose(colors.red, colors.bold), | ||
| message: compose(colors.red, colors.bold), | ||
| reset: colors.reset | ||
| }; | ||
| function createFormatter(format) { | ||
| return input => styleText(format, String(input ?? ""), { | ||
| validateStream: false | ||
| }); | ||
| } | ||
| const defsOn = buildDefs(createColors(true)); | ||
| const defsOff = buildDefs(createColors(false)); | ||
| function getDefs(enabled) { | ||
| return enabled ? defsOn : defsOff; | ||
| } | ||
| const defs = { | ||
| keyword: createFormatter("cyan"), | ||
| capitalized: createFormatter("yellow"), | ||
| jsxIdentifier: createFormatter("yellow"), | ||
| punctuator: createFormatter("yellow"), | ||
| number: createFormatter("magenta"), | ||
| string: createFormatter("green"), | ||
| regex: createFormatter("magenta"), | ||
| comment: createFormatter("gray"), | ||
| invalid: createFormatter(["white", "bgRed", "bold"]), | ||
| gutter: createFormatter("gray"), | ||
| marker: createFormatter(["red", "bold"]), | ||
| message: createFormatter(["red", "bold"]), | ||
| reset: createFormatter("reset") | ||
| }; | ||
| const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]); | ||
| const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/; | ||
| const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; | ||
| const BRACKET = /^[()[\]{}]$/; | ||
@@ -134,3 +131,2 @@ const getTokenType = function (token) { | ||
| if (text === "") return ""; | ||
| const defs = getDefs(true); | ||
| let highlighted = ""; | ||
@@ -142,3 +138,3 @@ for (const { | ||
| if (type in defs) { | ||
| highlighted += value.split(NEWLINE$1).map(str => defs[type](str)).join("\n"); | ||
| highlighted += value.split(NEWLINE).map(str => defs[type](str)).join("\n"); | ||
| } else { | ||
@@ -152,104 +148,8 @@ highlighted += value; | ||
| let deprecationWarningShown = false; | ||
| const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; | ||
| function getMarkerLines(loc, source, opts) { | ||
| const startLoc = { | ||
| column: 0, | ||
| line: -1, | ||
| ...loc.start | ||
| }; | ||
| const endLoc = { | ||
| ...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 shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode; | ||
| const defs = getDefs(shouldHighlight); | ||
| 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 = shouldHighlight ? highlight(rawLines) : 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 ", defs.gutter(gutter.replace(/\d/g, " ")), " ", markerSpacing, defs.marker("^").repeat(numberOfMarkers)].join(""); | ||
| if (lastMarkerLine && opts.message) { | ||
| markerLine += " " + defs.message(opts.message); | ||
| } | ||
| } | ||
| return [defs.marker(">"), defs.gutter(gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); | ||
| } else { | ||
| return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : ""}`; | ||
| } | ||
| }).join("\n"); | ||
| if (opts.message && !hasColumns) { | ||
| frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; | ||
| } | ||
| if (shouldHighlight) { | ||
| return defs.reset(frame); | ||
| } else { | ||
| return frame; | ||
| } | ||
| return _codeFrameColumns(rawLines, loc, opts, shouldHighlight ? { | ||
| defs, | ||
| highlight | ||
| } : undefined); | ||
| } | ||
@@ -256,0 +156,0 @@ function index (rawLines, lineNumber, colNumber, opts = {}) { |
+5
-4
| { | ||
| "name": "@babel/code-frame", | ||
| "version": "8.0.0-beta.4", | ||
| "version": "8.0.0-rc.1", | ||
| "description": "Generate errors that contain a code frame that point to source locations.", | ||
@@ -18,6 +18,6 @@ "author": "The Babel Team (https://babel.dev/team)", | ||
| "main": "./lib/index.js", | ||
| "browser": "./lib/browser.js", | ||
| "dependencies": { | ||
| "@babel/helper-validator-identifier": "^8.0.0-beta.4", | ||
| "js-tokens": "^10.0.0", | ||
| "picocolors": "^1.1.1" | ||
| "@babel/helper-validator-identifier": "^8.0.0-rc.1", | ||
| "js-tokens": "^10.0.0" | ||
| }, | ||
@@ -33,2 +33,3 @@ "devDependencies": { | ||
| "types": "./lib/index.d.ts", | ||
| "browser": "./lib/browser.js", | ||
| "default": "./lib/index.js" | ||
@@ -35,0 +36,0 @@ }, |
Sorry, the diff of this file is not supported yet
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
40286
13.33%2
-33.33%10
66.67%347
13.03%0
-100%- Removed
- Removed