rspkify 0.0.0-beta.0
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/bin/common/index.cjs +17658 -0
- package/bin/common/index.mjs +17623 -0
- package/bin/common/index2.cjs +633 -0
- package/bin/common/index2.mjs +630 -0
- package/bin/common/index3.cjs +17610 -0
- package/bin/common/index3.mjs +17579 -0
- package/bin/common/index4.cjs +2562 -0
- package/bin/common/index4.mjs +2560 -0
- package/bin/common/js-yaml.cjs +3871 -0
- package/bin/common/js-yaml.mjs +3855 -0
- package/bin/common/typescript.cjs +201850 -0
- package/bin/common/typescript.mjs +201848 -0
- package/bin/common/validation.cjs +100 -0
- package/bin/common/validation.mjs +98 -0
- package/bin/index.cjs +247 -0
- package/bin/index.d.ts +948 -0
- package/bin/index.mjs +228 -0
- package/bin/main.cjs +8519 -0
- package/bin/main.mjs +8510 -0
- package/package.json +77 -0
|
@@ -0,0 +1,633 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var lib$1 = {};
|
|
4
|
+
|
|
5
|
+
var picocolors$1 = {exports: {}};
|
|
6
|
+
|
|
7
|
+
let p = process || {}, argv = p.argv || [], env = p.env || {};
|
|
8
|
+
let isColorSupported$1 =
|
|
9
|
+
!(!!env.NO_COLOR || argv.includes("--no-color")) &&
|
|
10
|
+
(!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || ((p.stdout || {}).isTTY && env.TERM !== "dumb") || !!env.CI);
|
|
11
|
+
|
|
12
|
+
let formatter = (open, close, replace = open) =>
|
|
13
|
+
input => {
|
|
14
|
+
let string = "" + input, index = string.indexOf(close, open.length);
|
|
15
|
+
return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
let replaceClose = (string, close, replace, index) => {
|
|
19
|
+
let result = "", cursor = 0;
|
|
20
|
+
do {
|
|
21
|
+
result += string.substring(cursor, index) + replace;
|
|
22
|
+
cursor = index + close.length;
|
|
23
|
+
index = string.indexOf(close, cursor);
|
|
24
|
+
} while (~index)
|
|
25
|
+
return result + string.substring(cursor)
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
let createColors = (enabled = isColorSupported$1) => {
|
|
29
|
+
let f = enabled ? formatter : () => String;
|
|
30
|
+
return {
|
|
31
|
+
isColorSupported: enabled,
|
|
32
|
+
reset: f("\x1b[0m", "\x1b[0m"),
|
|
33
|
+
bold: f("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m"),
|
|
34
|
+
dim: f("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m"),
|
|
35
|
+
italic: f("\x1b[3m", "\x1b[23m"),
|
|
36
|
+
underline: f("\x1b[4m", "\x1b[24m"),
|
|
37
|
+
inverse: f("\x1b[7m", "\x1b[27m"),
|
|
38
|
+
hidden: f("\x1b[8m", "\x1b[28m"),
|
|
39
|
+
strikethrough: f("\x1b[9m", "\x1b[29m"),
|
|
40
|
+
|
|
41
|
+
black: f("\x1b[30m", "\x1b[39m"),
|
|
42
|
+
red: f("\x1b[31m", "\x1b[39m"),
|
|
43
|
+
green: f("\x1b[32m", "\x1b[39m"),
|
|
44
|
+
yellow: f("\x1b[33m", "\x1b[39m"),
|
|
45
|
+
blue: f("\x1b[34m", "\x1b[39m"),
|
|
46
|
+
magenta: f("\x1b[35m", "\x1b[39m"),
|
|
47
|
+
cyan: f("\x1b[36m", "\x1b[39m"),
|
|
48
|
+
white: f("\x1b[37m", "\x1b[39m"),
|
|
49
|
+
gray: f("\x1b[90m", "\x1b[39m"),
|
|
50
|
+
|
|
51
|
+
bgBlack: f("\x1b[40m", "\x1b[49m"),
|
|
52
|
+
bgRed: f("\x1b[41m", "\x1b[49m"),
|
|
53
|
+
bgGreen: f("\x1b[42m", "\x1b[49m"),
|
|
54
|
+
bgYellow: f("\x1b[43m", "\x1b[49m"),
|
|
55
|
+
bgBlue: f("\x1b[44m", "\x1b[49m"),
|
|
56
|
+
bgMagenta: f("\x1b[45m", "\x1b[49m"),
|
|
57
|
+
bgCyan: f("\x1b[46m", "\x1b[49m"),
|
|
58
|
+
bgWhite: f("\x1b[47m", "\x1b[49m"),
|
|
59
|
+
|
|
60
|
+
blackBright: f("\x1b[90m", "\x1b[39m"),
|
|
61
|
+
redBright: f("\x1b[91m", "\x1b[39m"),
|
|
62
|
+
greenBright: f("\x1b[92m", "\x1b[39m"),
|
|
63
|
+
yellowBright: f("\x1b[93m", "\x1b[39m"),
|
|
64
|
+
blueBright: f("\x1b[94m", "\x1b[39m"),
|
|
65
|
+
magentaBright: f("\x1b[95m", "\x1b[39m"),
|
|
66
|
+
cyanBright: f("\x1b[96m", "\x1b[39m"),
|
|
67
|
+
whiteBright: f("\x1b[97m", "\x1b[39m"),
|
|
68
|
+
|
|
69
|
+
bgBlackBright: f("\x1b[100m", "\x1b[49m"),
|
|
70
|
+
bgRedBright: f("\x1b[101m", "\x1b[49m"),
|
|
71
|
+
bgGreenBright: f("\x1b[102m", "\x1b[49m"),
|
|
72
|
+
bgYellowBright: f("\x1b[103m", "\x1b[49m"),
|
|
73
|
+
bgBlueBright: f("\x1b[104m", "\x1b[49m"),
|
|
74
|
+
bgMagentaBright: f("\x1b[105m", "\x1b[49m"),
|
|
75
|
+
bgCyanBright: f("\x1b[106m", "\x1b[49m"),
|
|
76
|
+
bgWhiteBright: f("\x1b[107m", "\x1b[49m"),
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
picocolors$1.exports = createColors();
|
|
81
|
+
picocolors$1.exports.createColors = createColors;
|
|
82
|
+
|
|
83
|
+
var picocolorsExports = picocolors$1.exports;
|
|
84
|
+
|
|
85
|
+
var jsTokens$1 = {};
|
|
86
|
+
|
|
87
|
+
// Copyright 2014, 2015, 2016, 2017, 2018 Simon Lydell
|
|
88
|
+
// License: MIT. (See LICENSE.)
|
|
89
|
+
|
|
90
|
+
Object.defineProperty(jsTokens$1, "__esModule", {
|
|
91
|
+
value: true
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
// This regex comes from regex.coffee, and is inserted here by generate-index.js
|
|
95
|
+
// (run `npm run build`).
|
|
96
|
+
jsTokens$1.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g;
|
|
97
|
+
|
|
98
|
+
jsTokens$1.matchToToken = function(match) {
|
|
99
|
+
var token = {type: "invalid", value: match[0], closed: undefined};
|
|
100
|
+
if (match[ 1]) token.type = "string" , token.closed = !!(match[3] || match[4]);
|
|
101
|
+
else if (match[ 5]) token.type = "comment";
|
|
102
|
+
else if (match[ 6]) token.type = "comment", token.closed = !!match[7];
|
|
103
|
+
else if (match[ 8]) token.type = "regex";
|
|
104
|
+
else if (match[ 9]) token.type = "number";
|
|
105
|
+
else if (match[10]) token.type = "name";
|
|
106
|
+
else if (match[11]) token.type = "punctuator";
|
|
107
|
+
else if (match[12]) token.type = "whitespace";
|
|
108
|
+
return token
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
var lib = {};
|
|
112
|
+
|
|
113
|
+
var identifier = {};
|
|
114
|
+
|
|
115
|
+
Object.defineProperty(identifier, "__esModule", {
|
|
116
|
+
value: true
|
|
117
|
+
});
|
|
118
|
+
identifier.isIdentifierChar = isIdentifierChar;
|
|
119
|
+
identifier.isIdentifierName = isIdentifierName;
|
|
120
|
+
identifier.isIdentifierStart = isIdentifierStart;
|
|
121
|
+
let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
|
|
122
|
+
let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";
|
|
123
|
+
const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
|
|
124
|
+
const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
|
|
125
|
+
nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
|
|
126
|
+
const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489];
|
|
127
|
+
const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
|
|
128
|
+
function isInAstralSet(code, set) {
|
|
129
|
+
let pos = 0x10000;
|
|
130
|
+
for (let i = 0, length = set.length; i < length; i += 2) {
|
|
131
|
+
pos += set[i];
|
|
132
|
+
if (pos > code) return false;
|
|
133
|
+
pos += set[i + 1];
|
|
134
|
+
if (pos >= code) return true;
|
|
135
|
+
}
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
function isIdentifierStart(code) {
|
|
139
|
+
if (code < 65) return code === 36;
|
|
140
|
+
if (code <= 90) return true;
|
|
141
|
+
if (code < 97) return code === 95;
|
|
142
|
+
if (code <= 122) return true;
|
|
143
|
+
if (code <= 0xffff) {
|
|
144
|
+
return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
|
|
145
|
+
}
|
|
146
|
+
return isInAstralSet(code, astralIdentifierStartCodes);
|
|
147
|
+
}
|
|
148
|
+
function isIdentifierChar(code) {
|
|
149
|
+
if (code < 48) return code === 36;
|
|
150
|
+
if (code < 58) return true;
|
|
151
|
+
if (code < 65) return false;
|
|
152
|
+
if (code <= 90) return true;
|
|
153
|
+
if (code < 97) return code === 95;
|
|
154
|
+
if (code <= 122) return true;
|
|
155
|
+
if (code <= 0xffff) {
|
|
156
|
+
return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
|
|
157
|
+
}
|
|
158
|
+
return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);
|
|
159
|
+
}
|
|
160
|
+
function isIdentifierName(name) {
|
|
161
|
+
let isFirst = true;
|
|
162
|
+
for (let i = 0; i < name.length; i++) {
|
|
163
|
+
let cp = name.charCodeAt(i);
|
|
164
|
+
if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {
|
|
165
|
+
const trail = name.charCodeAt(++i);
|
|
166
|
+
if ((trail & 0xfc00) === 0xdc00) {
|
|
167
|
+
cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
if (isFirst) {
|
|
171
|
+
isFirst = false;
|
|
172
|
+
if (!isIdentifierStart(cp)) {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
} else if (!isIdentifierChar(cp)) {
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return !isFirst;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
var keyword = {};
|
|
183
|
+
|
|
184
|
+
Object.defineProperty(keyword, "__esModule", {
|
|
185
|
+
value: true
|
|
186
|
+
});
|
|
187
|
+
keyword.isKeyword = isKeyword;
|
|
188
|
+
keyword.isReservedWord = isReservedWord;
|
|
189
|
+
keyword.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord;
|
|
190
|
+
keyword.isStrictBindReservedWord = isStrictBindReservedWord;
|
|
191
|
+
keyword.isStrictReservedWord = isStrictReservedWord;
|
|
192
|
+
const reservedWords = {
|
|
193
|
+
keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
|
|
194
|
+
strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
|
|
195
|
+
strictBind: ["eval", "arguments"]
|
|
196
|
+
};
|
|
197
|
+
const keywords = new Set(reservedWords.keyword);
|
|
198
|
+
const reservedWordsStrictSet = new Set(reservedWords.strict);
|
|
199
|
+
const reservedWordsStrictBindSet = new Set(reservedWords.strictBind);
|
|
200
|
+
function isReservedWord(word, inModule) {
|
|
201
|
+
return inModule && word === "await" || word === "enum";
|
|
202
|
+
}
|
|
203
|
+
function isStrictReservedWord(word, inModule) {
|
|
204
|
+
return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);
|
|
205
|
+
}
|
|
206
|
+
function isStrictBindOnlyReservedWord(word) {
|
|
207
|
+
return reservedWordsStrictBindSet.has(word);
|
|
208
|
+
}
|
|
209
|
+
function isStrictBindReservedWord(word, inModule) {
|
|
210
|
+
return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);
|
|
211
|
+
}
|
|
212
|
+
function isKeyword(word) {
|
|
213
|
+
return keywords.has(word);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
(function (exports$1) {
|
|
217
|
+
|
|
218
|
+
Object.defineProperty(exports$1, "__esModule", {
|
|
219
|
+
value: true
|
|
220
|
+
});
|
|
221
|
+
Object.defineProperty(exports$1, "isIdentifierChar", {
|
|
222
|
+
enumerable: true,
|
|
223
|
+
get: function () {
|
|
224
|
+
return _identifier.isIdentifierChar;
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
Object.defineProperty(exports$1, "isIdentifierName", {
|
|
228
|
+
enumerable: true,
|
|
229
|
+
get: function () {
|
|
230
|
+
return _identifier.isIdentifierName;
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
Object.defineProperty(exports$1, "isIdentifierStart", {
|
|
234
|
+
enumerable: true,
|
|
235
|
+
get: function () {
|
|
236
|
+
return _identifier.isIdentifierStart;
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
Object.defineProperty(exports$1, "isKeyword", {
|
|
240
|
+
enumerable: true,
|
|
241
|
+
get: function () {
|
|
242
|
+
return _keyword.isKeyword;
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
Object.defineProperty(exports$1, "isReservedWord", {
|
|
246
|
+
enumerable: true,
|
|
247
|
+
get: function () {
|
|
248
|
+
return _keyword.isReservedWord;
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
Object.defineProperty(exports$1, "isStrictBindOnlyReservedWord", {
|
|
252
|
+
enumerable: true,
|
|
253
|
+
get: function () {
|
|
254
|
+
return _keyword.isStrictBindOnlyReservedWord;
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
Object.defineProperty(exports$1, "isStrictBindReservedWord", {
|
|
258
|
+
enumerable: true,
|
|
259
|
+
get: function () {
|
|
260
|
+
return _keyword.isStrictBindReservedWord;
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
Object.defineProperty(exports$1, "isStrictReservedWord", {
|
|
264
|
+
enumerable: true,
|
|
265
|
+
get: function () {
|
|
266
|
+
return _keyword.isStrictReservedWord;
|
|
267
|
+
}
|
|
268
|
+
});
|
|
269
|
+
var _identifier = identifier;
|
|
270
|
+
var _keyword = keyword;
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
} (lib));
|
|
274
|
+
|
|
275
|
+
Object.defineProperty(lib$1, '__esModule', { value: true });
|
|
276
|
+
|
|
277
|
+
var picocolors = picocolorsExports;
|
|
278
|
+
var jsTokens = jsTokens$1;
|
|
279
|
+
var helperValidatorIdentifier = lib;
|
|
280
|
+
|
|
281
|
+
function isColorSupported() {
|
|
282
|
+
return (typeof process === "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? false : picocolors.isColorSupported
|
|
283
|
+
);
|
|
284
|
+
}
|
|
285
|
+
const compose = (f, g) => v => f(g(v));
|
|
286
|
+
function buildDefs(colors) {
|
|
287
|
+
return {
|
|
288
|
+
keyword: colors.cyan,
|
|
289
|
+
capitalized: colors.yellow,
|
|
290
|
+
jsxIdentifier: colors.yellow,
|
|
291
|
+
punctuator: colors.yellow,
|
|
292
|
+
number: colors.magenta,
|
|
293
|
+
string: colors.green,
|
|
294
|
+
regex: colors.magenta,
|
|
295
|
+
comment: colors.gray,
|
|
296
|
+
invalid: compose(compose(colors.white, colors.bgRed), colors.bold),
|
|
297
|
+
gutter: colors.gray,
|
|
298
|
+
marker: compose(colors.red, colors.bold),
|
|
299
|
+
message: compose(colors.red, colors.bold),
|
|
300
|
+
reset: colors.reset
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
const defsOn = buildDefs(picocolors.createColors(true));
|
|
304
|
+
const defsOff = buildDefs(picocolors.createColors(false));
|
|
305
|
+
function getDefs(enabled) {
|
|
306
|
+
return enabled ? defsOn : defsOff;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]);
|
|
310
|
+
const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/;
|
|
311
|
+
const BRACKET = /^[()[\]{}]$/;
|
|
312
|
+
let tokenize;
|
|
313
|
+
const JSX_TAG = /^[a-z][\w-]*$/i;
|
|
314
|
+
const getTokenType = function (token, offset, text) {
|
|
315
|
+
if (token.type === "name") {
|
|
316
|
+
const tokenValue = token.value;
|
|
317
|
+
if (helperValidatorIdentifier.isKeyword(tokenValue) || helperValidatorIdentifier.isStrictReservedWord(tokenValue, true) || sometimesKeywords.has(tokenValue)) {
|
|
318
|
+
return "keyword";
|
|
319
|
+
}
|
|
320
|
+
if (JSX_TAG.test(tokenValue) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) === "</")) {
|
|
321
|
+
return "jsxIdentifier";
|
|
322
|
+
}
|
|
323
|
+
const firstChar = String.fromCodePoint(tokenValue.codePointAt(0));
|
|
324
|
+
if (firstChar !== firstChar.toLowerCase()) {
|
|
325
|
+
return "capitalized";
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
if (token.type === "punctuator" && BRACKET.test(token.value)) {
|
|
329
|
+
return "bracket";
|
|
330
|
+
}
|
|
331
|
+
if (token.type === "invalid" && (token.value === "@" || token.value === "#")) {
|
|
332
|
+
return "punctuator";
|
|
333
|
+
}
|
|
334
|
+
return token.type;
|
|
335
|
+
};
|
|
336
|
+
tokenize = function* (text) {
|
|
337
|
+
let match;
|
|
338
|
+
while (match = jsTokens.default.exec(text)) {
|
|
339
|
+
const token = jsTokens.matchToToken(match);
|
|
340
|
+
yield {
|
|
341
|
+
type: getTokenType(token, match.index, text),
|
|
342
|
+
value: token.value
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
};
|
|
346
|
+
function highlight(text) {
|
|
347
|
+
if (text === "") return "";
|
|
348
|
+
const defs = getDefs(true);
|
|
349
|
+
let highlighted = "";
|
|
350
|
+
for (const {
|
|
351
|
+
type,
|
|
352
|
+
value
|
|
353
|
+
} of tokenize(text)) {
|
|
354
|
+
if (type in defs) {
|
|
355
|
+
highlighted += value.split(NEWLINE$1).map(str => defs[type](str)).join("\n");
|
|
356
|
+
} else {
|
|
357
|
+
highlighted += value;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
return highlighted;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
let deprecationWarningShown = false;
|
|
364
|
+
const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
|
|
365
|
+
function getMarkerLines(loc, source, opts, startLineBaseZero) {
|
|
366
|
+
const startLoc = Object.assign({
|
|
367
|
+
column: 0,
|
|
368
|
+
line: -1
|
|
369
|
+
}, loc.start);
|
|
370
|
+
const endLoc = Object.assign({}, startLoc, loc.end);
|
|
371
|
+
const {
|
|
372
|
+
linesAbove = 2,
|
|
373
|
+
linesBelow = 3
|
|
374
|
+
} = opts || {};
|
|
375
|
+
const startLine = startLoc.line - startLineBaseZero;
|
|
376
|
+
const startColumn = startLoc.column;
|
|
377
|
+
const endLine = endLoc.line - startLineBaseZero;
|
|
378
|
+
const endColumn = endLoc.column;
|
|
379
|
+
let start = Math.max(startLine - (linesAbove + 1), 0);
|
|
380
|
+
let end = Math.min(source.length, endLine + linesBelow);
|
|
381
|
+
if (startLine === -1) {
|
|
382
|
+
start = 0;
|
|
383
|
+
}
|
|
384
|
+
if (endLine === -1) {
|
|
385
|
+
end = source.length;
|
|
386
|
+
}
|
|
387
|
+
const lineDiff = endLine - startLine;
|
|
388
|
+
const markerLines = {};
|
|
389
|
+
if (lineDiff) {
|
|
390
|
+
for (let i = 0; i <= lineDiff; i++) {
|
|
391
|
+
const lineNumber = i + startLine;
|
|
392
|
+
if (!startColumn) {
|
|
393
|
+
markerLines[lineNumber] = true;
|
|
394
|
+
} else if (i === 0) {
|
|
395
|
+
const sourceLength = source[lineNumber - 1].length;
|
|
396
|
+
markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];
|
|
397
|
+
} else if (i === lineDiff) {
|
|
398
|
+
markerLines[lineNumber] = [0, endColumn];
|
|
399
|
+
} else {
|
|
400
|
+
const sourceLength = source[lineNumber - i].length;
|
|
401
|
+
markerLines[lineNumber] = [0, sourceLength];
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
} else {
|
|
405
|
+
if (startColumn === endColumn) {
|
|
406
|
+
if (startColumn) {
|
|
407
|
+
markerLines[startLine] = [startColumn, 0];
|
|
408
|
+
} else {
|
|
409
|
+
markerLines[startLine] = true;
|
|
410
|
+
}
|
|
411
|
+
} else {
|
|
412
|
+
markerLines[startLine] = [startColumn, endColumn - startColumn];
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
return {
|
|
416
|
+
start,
|
|
417
|
+
end,
|
|
418
|
+
markerLines
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
function codeFrameColumns(rawLines, loc, opts = {}) {
|
|
422
|
+
const shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode;
|
|
423
|
+
const startLineBaseZero = (opts.startLine || 1) - 1;
|
|
424
|
+
const defs = getDefs(shouldHighlight);
|
|
425
|
+
const lines = rawLines.split(NEWLINE);
|
|
426
|
+
const {
|
|
427
|
+
start,
|
|
428
|
+
end,
|
|
429
|
+
markerLines
|
|
430
|
+
} = getMarkerLines(loc, lines, opts, startLineBaseZero);
|
|
431
|
+
const hasColumns = loc.start && typeof loc.start.column === "number";
|
|
432
|
+
const numberMaxWidth = String(end + startLineBaseZero).length;
|
|
433
|
+
const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines;
|
|
434
|
+
let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => {
|
|
435
|
+
const number = start + 1 + index;
|
|
436
|
+
const paddedNumber = ` ${number + startLineBaseZero}`.slice(-numberMaxWidth);
|
|
437
|
+
const gutter = ` ${paddedNumber} |`;
|
|
438
|
+
const hasMarker = markerLines[number];
|
|
439
|
+
const lastMarkerLine = !markerLines[number + 1];
|
|
440
|
+
if (hasMarker) {
|
|
441
|
+
let markerLine = "";
|
|
442
|
+
if (Array.isArray(hasMarker)) {
|
|
443
|
+
const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " ");
|
|
444
|
+
const numberOfMarkers = hasMarker[1] || 1;
|
|
445
|
+
markerLine = ["\n ", defs.gutter(gutter.replace(/\d/g, " ")), " ", markerSpacing, defs.marker("^").repeat(numberOfMarkers)].join("");
|
|
446
|
+
if (lastMarkerLine && opts.message) {
|
|
447
|
+
markerLine += " " + defs.message(opts.message);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
return [defs.marker(">"), defs.gutter(gutter), line.length > 0 ? ` ${line}` : "", markerLine].join("");
|
|
451
|
+
} else {
|
|
452
|
+
return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : ""}`;
|
|
453
|
+
}
|
|
454
|
+
}).join("\n");
|
|
455
|
+
if (opts.message && !hasColumns) {
|
|
456
|
+
frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
|
|
457
|
+
}
|
|
458
|
+
if (shouldHighlight) {
|
|
459
|
+
return defs.reset(frame);
|
|
460
|
+
} else {
|
|
461
|
+
return frame;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
function index (rawLines, lineNumber, colNumber, opts = {}) {
|
|
465
|
+
if (!deprecationWarningShown) {
|
|
466
|
+
deprecationWarningShown = true;
|
|
467
|
+
const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
|
|
468
|
+
if (process.emitWarning) {
|
|
469
|
+
process.emitWarning(message, "DeprecationWarning");
|
|
470
|
+
} else {
|
|
471
|
+
const deprecationError = new Error(message);
|
|
472
|
+
deprecationError.name = "DeprecationWarning";
|
|
473
|
+
console.warn(new Error(message));
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
colNumber = Math.max(colNumber, 0);
|
|
477
|
+
const location = {
|
|
478
|
+
start: {
|
|
479
|
+
column: colNumber,
|
|
480
|
+
line: lineNumber
|
|
481
|
+
}
|
|
482
|
+
};
|
|
483
|
+
return codeFrameColumns(rawLines, location, opts);
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
var codeFrameColumns_1 = lib$1.codeFrameColumns = codeFrameColumns;
|
|
487
|
+
lib$1.default = index;
|
|
488
|
+
lib$1.highlight = highlight;
|
|
489
|
+
|
|
490
|
+
const getOffsets = ({
|
|
491
|
+
oneBased,
|
|
492
|
+
oneBasedLine = oneBased,
|
|
493
|
+
oneBasedColumn = oneBased,
|
|
494
|
+
} = {}) => [oneBasedLine ? 1 : 0, oneBasedColumn ? 1 : 0];
|
|
495
|
+
|
|
496
|
+
// Performance https://github.com/sindresorhus/index-to-position/pull/9
|
|
497
|
+
function getPosition(text, textIndex, options) {
|
|
498
|
+
const lineBreakBefore = textIndex === 0 ? -1 : text.lastIndexOf('\n', textIndex - 1);
|
|
499
|
+
const [lineOffset, columnOffset] = getOffsets(options);
|
|
500
|
+
return {
|
|
501
|
+
line: lineBreakBefore === -1
|
|
502
|
+
? lineOffset
|
|
503
|
+
: text.slice(0, lineBreakBefore + 1).match(/\n/g).length + lineOffset,
|
|
504
|
+
column: textIndex - lineBreakBefore - 1 + columnOffset,
|
|
505
|
+
};
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
function indexToPosition(text, textIndex, options) {
|
|
509
|
+
if (typeof text !== 'string') {
|
|
510
|
+
throw new TypeError('Text parameter should be a string');
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
if (!Number.isInteger(textIndex)) {
|
|
514
|
+
throw new TypeError('Index parameter should be an integer');
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
if (textIndex < 0 || textIndex > text.length) {
|
|
518
|
+
throw new RangeError('Index out of bounds');
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
return getPosition(text, textIndex, options);
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
const getCodePoint = character => `\\u{${character.codePointAt(0).toString(16)}}`;
|
|
525
|
+
|
|
526
|
+
class JSONError extends Error {
|
|
527
|
+
name = 'JSONError';
|
|
528
|
+
fileName;
|
|
529
|
+
#input;
|
|
530
|
+
#jsonParseError;
|
|
531
|
+
#message;
|
|
532
|
+
#codeFrame;
|
|
533
|
+
#rawCodeFrame;
|
|
534
|
+
|
|
535
|
+
constructor(messageOrOptions) {
|
|
536
|
+
// JSONError constructor used accept string
|
|
537
|
+
// TODO[>=9]: Remove this `if` on next major version
|
|
538
|
+
if (typeof messageOrOptions === 'string') {
|
|
539
|
+
super();
|
|
540
|
+
this.#message = messageOrOptions;
|
|
541
|
+
} else {
|
|
542
|
+
const {jsonParseError, fileName, input} = messageOrOptions;
|
|
543
|
+
// We cannot pass message to `super()`, otherwise the message accessor will be overridden.
|
|
544
|
+
// https://262.ecma-international.org/14.0/#sec-error-message
|
|
545
|
+
super(undefined, {cause: jsonParseError});
|
|
546
|
+
|
|
547
|
+
this.#input = input;
|
|
548
|
+
this.#jsonParseError = jsonParseError;
|
|
549
|
+
this.fileName = fileName;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
Error.captureStackTrace?.(this, JSONError);
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
get message() {
|
|
556
|
+
this.#message ??= `${addCodePointToUnexpectedToken(this.#jsonParseError.message)}${this.#input === '' ? ' while parsing empty string' : ''}`;
|
|
557
|
+
|
|
558
|
+
const {codeFrame} = this;
|
|
559
|
+
return `${this.#message}${this.fileName ? ` in ${this.fileName}` : ''}${codeFrame ? `\n\n${codeFrame}\n` : ''}`;
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
set message(message) {
|
|
563
|
+
this.#message = message;
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
#getCodeFrame(highlightCode) {
|
|
567
|
+
// TODO[>=9]: Remove this `if` on next major version
|
|
568
|
+
if (!this.#jsonParseError) {
|
|
569
|
+
return;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
const input = this.#input;
|
|
573
|
+
|
|
574
|
+
const location = getErrorLocation(input, this.#jsonParseError.message);
|
|
575
|
+
if (!location) {
|
|
576
|
+
return;
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
return codeFrameColumns_1(input, {start: location}, {highlightCode});
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
get codeFrame() {
|
|
583
|
+
this.#codeFrame ??= this.#getCodeFrame(/* highlightCode */ true);
|
|
584
|
+
return this.#codeFrame;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
get rawCodeFrame() {
|
|
588
|
+
this.#rawCodeFrame ??= this.#getCodeFrame(/* highlightCode */ false);
|
|
589
|
+
return this.#rawCodeFrame;
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
const getErrorLocation = (string, message) => {
|
|
594
|
+
const match = message.match(/in JSON at position (?<index>\d+)(?: \(line (?<line>\d+) column (?<column>\d+)\))?$/);
|
|
595
|
+
|
|
596
|
+
if (!match) {
|
|
597
|
+
return;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
const {index, line, column} = match.groups;
|
|
601
|
+
|
|
602
|
+
if (line && column) {
|
|
603
|
+
return {line: Number(line), column: Number(column)};
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
return indexToPosition(string, Number(index), {oneBased: true});
|
|
607
|
+
};
|
|
608
|
+
|
|
609
|
+
const addCodePointToUnexpectedToken = message => message.replace(
|
|
610
|
+
// TODO[engine:node@>=20]: The token always quoted after Node.js 20
|
|
611
|
+
/(?<=^Unexpected token )(?<quote>')?(.)\k<quote>/,
|
|
612
|
+
(_, _quote, token) => `"${token}"(${getCodePoint(token)})`,
|
|
613
|
+
);
|
|
614
|
+
|
|
615
|
+
function parseJson(string, reviver, fileName) {
|
|
616
|
+
if (typeof reviver === 'string') {
|
|
617
|
+
fileName = reviver;
|
|
618
|
+
reviver = undefined;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
try {
|
|
622
|
+
return JSON.parse(string, reviver);
|
|
623
|
+
} catch (error) {
|
|
624
|
+
throw new JSONError({
|
|
625
|
+
jsonParseError: error,
|
|
626
|
+
fileName,
|
|
627
|
+
input: string,
|
|
628
|
+
});
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
exports.JSONError = JSONError;
|
|
633
|
+
exports.default = parseJson;
|