@visulima/colorize 1.4.16 → 1.4.17
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/CHANGELOG.md +12 -0
- package/dist/gradient.cjs +62 -3
- package/dist/gradient.d.cts +2 -10
- package/dist/gradient.d.mts +2 -10
- package/dist/gradient.d.ts +2 -10
- package/dist/gradient.mjs +56 -3
- package/dist/index.browser.d.mts +4 -4
- package/dist/index.browser.d.ts +4 -4
- package/dist/index.browser.mjs +63 -1
- package/dist/index.server.cjs +266 -2
- package/dist/index.server.d.mts +4 -4
- package/dist/index.server.d.ts +4 -4
- package/dist/index.server.mjs +63 -1
- package/dist/packem_shared/Colorize-BvQhMhEm.mjs +417 -0
- package/dist/packem_shared/Colorize-C1aMUhji.mjs +258 -0
- package/dist/packem_shared/GradientBuilder-Cjbl4_Hm.cjs +505 -0
- package/dist/packem_shared/GradientBuilder-DAeJG33X.mjs +501 -0
- package/dist/packem_shared/colorize.server-CaHAyuJ2.mjs +203 -0
- package/dist/packem_shared/colorize.server-n1sJSS5f.cjs +205 -0
- package/dist/packem_shared/convertHexToRgb-DDy3Eccg.cjs +19 -0
- package/dist/packem_shared/convertHexToRgb-DOIRmKxM.mjs +15 -0
- package/dist/packem_shared/rgbToAnsi256-Cakhu-n9.cjs +50 -0
- package/dist/packem_shared/rgbToAnsi256-DcQVMIqi.mjs +44 -0
- package/dist/packem_shared/{types-CoLB2PX2.d.mjs → types-M28Oe2t1.d.mjs} +1 -1
- package/dist/packem_shared/{types-CoLB2PX2.d.mts → types-M28Oe2t1.d.mts} +1 -1
- package/dist/template.cjs +158 -2
- package/dist/template.mjs +152 -2
- package/dist/utils.cjs +13 -1
- package/dist/utils.mjs +2 -1
- package/package.json +10 -10
- package/dist/packem_shared/Colorize-BG7_2JWK.mjs +0 -2
- package/dist/packem_shared/Colorize-gGSr400y.mjs +0 -1
- package/dist/packem_shared/GradientBuilder-Bn5OODm9.cjs +0 -1
- package/dist/packem_shared/GradientBuilder-CL8ERRQu.mjs +0 -1
- package/dist/packem_shared/colorize.server-BayBPE0C.mjs +0 -2
- package/dist/packem_shared/colorize.server-BdZzymFP.cjs +0 -2
- package/dist/packem_shared/convertHexToRgb-CSiKB7t1.mjs +0 -1
- package/dist/packem_shared/convertHexToRgb-DN4AQa3T.cjs +0 -1
- package/dist/packem_shared/rgbToAnsi256-D4IPvnol.cjs +0 -1
- package/dist/packem_shared/rgbToAnsi256-YETEPW8R.mjs +0 -1
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const isAnsiColorSupported = require('@visulima/is-ansi-color-supported');
|
|
4
|
+
const convertHexToRgb = require('./convertHexToRgb-DDy3Eccg.cjs');
|
|
5
|
+
const rgbToAnsi256 = require('./rgbToAnsi256-Cakhu-n9.cjs');
|
|
6
|
+
|
|
7
|
+
var __defProp$4 = Object.defineProperty;
|
|
8
|
+
var __name$4 = (target, value) => __defProp$4(target, "name", { value, configurable: true });
|
|
9
|
+
function ansiRegex({ onlyFirst = false } = {}) {
|
|
10
|
+
const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
|
|
11
|
+
const pattern = [
|
|
12
|
+
`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?${ST})`,
|
|
13
|
+
"(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"
|
|
14
|
+
].join("|");
|
|
15
|
+
return new RegExp(pattern, onlyFirst ? undefined : "g");
|
|
16
|
+
}
|
|
17
|
+
__name$4(ansiRegex, "ansiRegex");
|
|
18
|
+
|
|
19
|
+
var __defProp$3 = Object.defineProperty;
|
|
20
|
+
var __name$3 = (target, value) => __defProp$3(target, "name", { value, configurable: true });
|
|
21
|
+
const clamp = /* @__PURE__ */ __name$3((number_, min, max) => min > number_ ? min : number_ > max ? max : number_, "clamp");
|
|
22
|
+
|
|
23
|
+
var __defProp$2 = Object.defineProperty;
|
|
24
|
+
var __name$2 = (target, value) => __defProp$2(target, "name", { value, configurable: true });
|
|
25
|
+
const closeCode = 39;
|
|
26
|
+
const bgCloseCode = 49;
|
|
27
|
+
const bgOffset = 10;
|
|
28
|
+
const supportedColor = isAnsiColorSupported.isStdoutColorSupported();
|
|
29
|
+
const mono = { close: "", open: "" };
|
|
30
|
+
const esc = supportedColor > 0 ? (open, close) => {
|
|
31
|
+
return { close: "\x1B[" + close + "m", open: "\x1B[" + open + "m" };
|
|
32
|
+
} : () => mono;
|
|
33
|
+
const createRgbFunction = /* @__PURE__ */ __name$2((function_) => (r, g, b) => function_(rgbToAnsi256.rgbToAnsi256(Number(r), Number(g), Number(b))), "createRgbFunction");
|
|
34
|
+
const createHexFunction = /* @__PURE__ */ __name$2((function_) => (hex) => {
|
|
35
|
+
const [r, g, b] = convertHexToRgb.convertHexToRgb(hex);
|
|
36
|
+
return function_(r, g, b);
|
|
37
|
+
}, "createHexFunction");
|
|
38
|
+
let createAnsi256 = /* @__PURE__ */ __name$2((code) => esc("38;5;" + code, closeCode), "createAnsi256");
|
|
39
|
+
let createBgAnsi256 = /* @__PURE__ */ __name$2((code) => esc("48;5;" + code, bgCloseCode), "createBgAnsi256");
|
|
40
|
+
let createRgb = /* @__PURE__ */ __name$2((r, g, b) => esc("38;2;" + r + ";" + g + ";" + b, closeCode), "createRgb");
|
|
41
|
+
let createBgRgb = /* @__PURE__ */ __name$2((r, g, b) => esc("48;2;" + r + ";" + g + ";" + b, bgCloseCode), "createBgRgb");
|
|
42
|
+
if (supportedColor === 1) {
|
|
43
|
+
createAnsi256 = /* @__PURE__ */ __name$2((code) => esc(rgbToAnsi256.ansi256To16(Number(code)), closeCode), "createAnsi256");
|
|
44
|
+
createBgAnsi256 = /* @__PURE__ */ __name$2((code) => esc(rgbToAnsi256.ansi256To16(Number(code)) + bgOffset, bgCloseCode), "createBgAnsi256");
|
|
45
|
+
createRgb = /* @__PURE__ */ __name$2((r, g, b) => esc(rgbToAnsi256.rgbToAnsi16(Number(r), Number(g), Number(b)), closeCode), "createRgb");
|
|
46
|
+
createBgRgb = /* @__PURE__ */ __name$2((r, g, b) => esc(rgbToAnsi256.rgbToAnsi16(Number(r), Number(g), Number(b)) + bgOffset, bgCloseCode), "createBgRgb");
|
|
47
|
+
} else if (supportedColor === 2) {
|
|
48
|
+
createRgb = createRgbFunction(createAnsi256);
|
|
49
|
+
createBgRgb = createRgbFunction(createBgAnsi256);
|
|
50
|
+
}
|
|
51
|
+
const baseStyles = {
|
|
52
|
+
// 21 isn't widely supported and 22 does the same thing
|
|
53
|
+
bold: esc(1, 22),
|
|
54
|
+
dim: esc(2, 22),
|
|
55
|
+
hidden: esc(8, 28),
|
|
56
|
+
inverse: esc(7, 27),
|
|
57
|
+
italic: esc(3, 23),
|
|
58
|
+
overline: esc(53, 55),
|
|
59
|
+
reset: esc(0, 0),
|
|
60
|
+
strike: esc(9, 29),
|
|
61
|
+
// alias for strikethrough
|
|
62
|
+
strikethrough: esc(9, 29),
|
|
63
|
+
underline: esc(4, 24),
|
|
64
|
+
visible: mono
|
|
65
|
+
};
|
|
66
|
+
const baseColors = {
|
|
67
|
+
bgBlack: esc(40, bgCloseCode),
|
|
68
|
+
bgBlackBright: esc(100, bgCloseCode),
|
|
69
|
+
bgBlue: esc(44, bgCloseCode),
|
|
70
|
+
bgBlueBright: esc(104, bgCloseCode),
|
|
71
|
+
bgCyan: esc(46, bgCloseCode),
|
|
72
|
+
bgCyanBright: esc(106, bgCloseCode),
|
|
73
|
+
bgGray: esc(100, bgCloseCode),
|
|
74
|
+
// US spelling alias for bgBlackBright
|
|
75
|
+
bgGreen: esc(42, bgCloseCode),
|
|
76
|
+
bgGreenBright: esc(102, bgCloseCode),
|
|
77
|
+
bgGrey: esc(100, bgCloseCode),
|
|
78
|
+
// UK spelling alias for bgBlackBright
|
|
79
|
+
bgMagenta: esc(45, bgCloseCode),
|
|
80
|
+
bgMagentaBright: esc(105, bgCloseCode),
|
|
81
|
+
bgRed: esc(41, bgCloseCode),
|
|
82
|
+
bgRedBright: esc(101, bgCloseCode),
|
|
83
|
+
bgWhite: esc(47, bgCloseCode),
|
|
84
|
+
bgWhiteBright: esc(107, bgCloseCode),
|
|
85
|
+
bgYellow: esc(43, bgCloseCode),
|
|
86
|
+
bgYellowBright: esc(103, bgCloseCode),
|
|
87
|
+
black: esc(30, closeCode),
|
|
88
|
+
blackBright: esc(90, closeCode),
|
|
89
|
+
blue: esc(34, closeCode),
|
|
90
|
+
blueBright: esc(94, closeCode),
|
|
91
|
+
cyan: esc(36, closeCode),
|
|
92
|
+
cyanBright: esc(96, closeCode),
|
|
93
|
+
gray: esc(90, closeCode),
|
|
94
|
+
// US spelling alias for blackBright
|
|
95
|
+
green: esc(32, closeCode),
|
|
96
|
+
greenBright: esc(92, closeCode),
|
|
97
|
+
grey: esc(90, closeCode),
|
|
98
|
+
// UK spelling alias for blackBright
|
|
99
|
+
magenta: esc(35, closeCode),
|
|
100
|
+
magentaBright: esc(95, closeCode),
|
|
101
|
+
red: esc(31, closeCode),
|
|
102
|
+
redBright: esc(91, closeCode),
|
|
103
|
+
white: esc(37, closeCode),
|
|
104
|
+
whiteBright: esc(97, closeCode),
|
|
105
|
+
yellow: esc(33, closeCode),
|
|
106
|
+
yellowBright: esc(93, closeCode)
|
|
107
|
+
};
|
|
108
|
+
const styleMethods = {
|
|
109
|
+
bg: /* @__PURE__ */ __name$2((code) => createBgAnsi256(clamp(code, 0, 255)), "bg"),
|
|
110
|
+
bgHex: createHexFunction(createBgRgb),
|
|
111
|
+
bgRgb: /* @__PURE__ */ __name$2((r, g, b) => createBgRgb(clamp(r, 0, 255), clamp(g, 0, 255), clamp(b, 0, 255)), "bgRgb"),
|
|
112
|
+
fg: /* @__PURE__ */ __name$2((code) => createAnsi256(clamp(code, 0, 255)), "fg"),
|
|
113
|
+
hex: createHexFunction(createRgb),
|
|
114
|
+
rgb: /* @__PURE__ */ __name$2((r, g, b) => createRgb(clamp(r, 0, 255), clamp(g, 0, 255), clamp(b, 0, 255)), "rgb")
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
var __defProp$1 = Object.defineProperty;
|
|
118
|
+
var __name$1 = (target, value) => __defProp$1(target, "name", { value, configurable: true });
|
|
119
|
+
const stringReplaceAll = /* @__PURE__ */ __name$1((string_, searchValue, replaceValue) => {
|
|
120
|
+
if (searchValue === "") {
|
|
121
|
+
return string_;
|
|
122
|
+
}
|
|
123
|
+
let pos = string_.indexOf(searchValue);
|
|
124
|
+
if (pos < 0) {
|
|
125
|
+
return string_;
|
|
126
|
+
}
|
|
127
|
+
const substringLength = searchValue.length;
|
|
128
|
+
let lastPos = 0;
|
|
129
|
+
let result = "";
|
|
130
|
+
while (~pos) {
|
|
131
|
+
result += string_.slice(lastPos, pos) + replaceValue;
|
|
132
|
+
lastPos = pos + substringLength;
|
|
133
|
+
pos = string_.indexOf(searchValue, lastPos);
|
|
134
|
+
}
|
|
135
|
+
return result + string_.slice(lastPos);
|
|
136
|
+
}, "stringReplaceAll");
|
|
137
|
+
|
|
138
|
+
var __defProp = Object.defineProperty;
|
|
139
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
140
|
+
const styles = {};
|
|
141
|
+
let stylePrototype = null;
|
|
142
|
+
const wrapText = /* @__PURE__ */ __name((strings, values, properties) => {
|
|
143
|
+
if (!strings) {
|
|
144
|
+
return "";
|
|
145
|
+
}
|
|
146
|
+
let string = strings.raw == null ? strings + "" : String.raw(strings, ...values);
|
|
147
|
+
if (string.includes("\x1B")) {
|
|
148
|
+
for (let currentProperties = properties; currentProperties; currentProperties = currentProperties.props) {
|
|
149
|
+
string = stringReplaceAll(string, currentProperties.close, currentProperties.open);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if (string.includes("\n")) {
|
|
153
|
+
string = string.replace(/(\r*\n)/g, properties.closeStack + "$1" + properties.openStack);
|
|
154
|
+
}
|
|
155
|
+
return properties.openStack + string + properties.closeStack;
|
|
156
|
+
}, "wrapText");
|
|
157
|
+
const createStyle = /* @__PURE__ */ __name(({ props }, { close, open }) => {
|
|
158
|
+
const openStack = (props?.openStack ?? "") + open;
|
|
159
|
+
const closeStack = close + (props?.closeStack ?? "");
|
|
160
|
+
const style = /* @__PURE__ */ __name((strings, ...values) => wrapText(strings, values, style.props), "style");
|
|
161
|
+
Object.setPrototypeOf(style, stylePrototype);
|
|
162
|
+
style.props = { close, closeStack, open, openStack, props };
|
|
163
|
+
style.open = openStack;
|
|
164
|
+
style.close = closeStack;
|
|
165
|
+
return style;
|
|
166
|
+
}, "createStyle");
|
|
167
|
+
const Colorize = /* @__PURE__ */ __name(function() {
|
|
168
|
+
const self = /* @__PURE__ */ __name((string_) => string_ + "", "self");
|
|
169
|
+
self.strip = (value) => value.replaceAll(ansiRegex(), "");
|
|
170
|
+
for (const name in baseColors) {
|
|
171
|
+
styles[name] = {
|
|
172
|
+
get() {
|
|
173
|
+
const style = createStyle(this, baseColors[name]);
|
|
174
|
+
Object.defineProperty(this, name, { value: style });
|
|
175
|
+
return style;
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
for (const name in baseStyles) {
|
|
180
|
+
styles[name] = {
|
|
181
|
+
get() {
|
|
182
|
+
const style = createStyle(this, baseStyles[name]);
|
|
183
|
+
Object.defineProperty(this, name, { value: style });
|
|
184
|
+
return style;
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
stylePrototype = Object.defineProperties({}, styles);
|
|
189
|
+
Object.setPrototypeOf(self, stylePrototype);
|
|
190
|
+
return self;
|
|
191
|
+
}, "Colorize");
|
|
192
|
+
for (const name in styleMethods) {
|
|
193
|
+
styles[name] = {
|
|
194
|
+
get() {
|
|
195
|
+
return (...arguments_) => (
|
|
196
|
+
// @ts-expect-error: TODO: fix typing of `arguments_`
|
|
197
|
+
createStyle(this, styleMethods[name](...arguments_))
|
|
198
|
+
);
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
styles.ansi256 = styles.fg;
|
|
203
|
+
styles.bgAnsi256 = styles.bg;
|
|
204
|
+
|
|
205
|
+
exports.Colorize = Colorize;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
const convertHexToRgb = /* @__PURE__ */ __name((hex) => {
|
|
8
|
+
let [, color] = /([a-f\d]{3,6})/i.exec(hex) ?? [];
|
|
9
|
+
const length_ = color ? color.length : 0;
|
|
10
|
+
if (length_ === 3) {
|
|
11
|
+
color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2];
|
|
12
|
+
} else if (length_ !== 6) {
|
|
13
|
+
return [0, 0, 0];
|
|
14
|
+
}
|
|
15
|
+
const number_ = Number.parseInt(color, 16);
|
|
16
|
+
return [number_ >> 16 & 255, number_ >> 8 & 255, number_ & 255];
|
|
17
|
+
}, "convertHexToRgb");
|
|
18
|
+
|
|
19
|
+
exports.convertHexToRgb = convertHexToRgb;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
const convertHexToRgb = /* @__PURE__ */ __name((hex) => {
|
|
4
|
+
let [, color] = /([a-f\d]{3,6})/i.exec(hex) ?? [];
|
|
5
|
+
const length_ = color ? color.length : 0;
|
|
6
|
+
if (length_ === 3) {
|
|
7
|
+
color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2];
|
|
8
|
+
} else if (length_ !== 6) {
|
|
9
|
+
return [0, 0, 0];
|
|
10
|
+
}
|
|
11
|
+
const number_ = Number.parseInt(color, 16);
|
|
12
|
+
return [number_ >> 16 & 255, number_ >> 8 & 255, number_ & 255];
|
|
13
|
+
}, "convertHexToRgb");
|
|
14
|
+
|
|
15
|
+
export { convertHexToRgb };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
const rgbToAnsi256 = /* @__PURE__ */ __name((r, g, b) => {
|
|
8
|
+
if (r === g && g === b) {
|
|
9
|
+
if (r < 8) {
|
|
10
|
+
return 16;
|
|
11
|
+
}
|
|
12
|
+
if (r > 248) {
|
|
13
|
+
return 231;
|
|
14
|
+
}
|
|
15
|
+
return Math.round((r - 8) / 247 * 24) + 232;
|
|
16
|
+
}
|
|
17
|
+
return 16 + // r / 255 * 5 => r / 51
|
|
18
|
+
36 * Math.round(r / 51) + 6 * Math.round(g / 51) + Math.round(b / 51);
|
|
19
|
+
}, "rgbToAnsi256");
|
|
20
|
+
const ansi256To16 = /* @__PURE__ */ __name((code) => {
|
|
21
|
+
let r;
|
|
22
|
+
let g;
|
|
23
|
+
let b;
|
|
24
|
+
if (code < 8) {
|
|
25
|
+
return 30 + code;
|
|
26
|
+
}
|
|
27
|
+
if (code < 16) {
|
|
28
|
+
return 90 + (code - 8);
|
|
29
|
+
}
|
|
30
|
+
if (code >= 232) {
|
|
31
|
+
r = g = b = ((code - 232) * 10 + 8) / 255;
|
|
32
|
+
} else {
|
|
33
|
+
code -= 16;
|
|
34
|
+
const remainder = code % 36;
|
|
35
|
+
r = Math.floor(code / 36) / 5;
|
|
36
|
+
g = Math.floor(remainder / 6) / 5;
|
|
37
|
+
b = remainder % 6 / 5;
|
|
38
|
+
}
|
|
39
|
+
const value = Math.max(r, g, b) * 2;
|
|
40
|
+
if (value === 0) {
|
|
41
|
+
return 30;
|
|
42
|
+
}
|
|
43
|
+
const code16 = 30 + (Math.round(b) << 2 | Math.round(g) << 1 | Math.round(r));
|
|
44
|
+
return value === 2 ? code16 + 60 : code16;
|
|
45
|
+
}, "ansi256To16");
|
|
46
|
+
const rgbToAnsi16 = /* @__PURE__ */ __name((r, g, b) => ansi256To16(rgbToAnsi256(r, g, b)), "rgbToAnsi16");
|
|
47
|
+
|
|
48
|
+
exports.ansi256To16 = ansi256To16;
|
|
49
|
+
exports.rgbToAnsi16 = rgbToAnsi16;
|
|
50
|
+
exports.rgbToAnsi256 = rgbToAnsi256;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
const rgbToAnsi256 = /* @__PURE__ */ __name((r, g, b) => {
|
|
4
|
+
if (r === g && g === b) {
|
|
5
|
+
if (r < 8) {
|
|
6
|
+
return 16;
|
|
7
|
+
}
|
|
8
|
+
if (r > 248) {
|
|
9
|
+
return 231;
|
|
10
|
+
}
|
|
11
|
+
return Math.round((r - 8) / 247 * 24) + 232;
|
|
12
|
+
}
|
|
13
|
+
return 16 + // r / 255 * 5 => r / 51
|
|
14
|
+
36 * Math.round(r / 51) + 6 * Math.round(g / 51) + Math.round(b / 51);
|
|
15
|
+
}, "rgbToAnsi256");
|
|
16
|
+
const ansi256To16 = /* @__PURE__ */ __name((code) => {
|
|
17
|
+
let r;
|
|
18
|
+
let g;
|
|
19
|
+
let b;
|
|
20
|
+
if (code < 8) {
|
|
21
|
+
return 30 + code;
|
|
22
|
+
}
|
|
23
|
+
if (code < 16) {
|
|
24
|
+
return 90 + (code - 8);
|
|
25
|
+
}
|
|
26
|
+
if (code >= 232) {
|
|
27
|
+
r = g = b = ((code - 232) * 10 + 8) / 255;
|
|
28
|
+
} else {
|
|
29
|
+
code -= 16;
|
|
30
|
+
const remainder = code % 36;
|
|
31
|
+
r = Math.floor(code / 36) / 5;
|
|
32
|
+
g = Math.floor(remainder / 6) / 5;
|
|
33
|
+
b = remainder % 6 / 5;
|
|
34
|
+
}
|
|
35
|
+
const value = Math.max(r, g, b) * 2;
|
|
36
|
+
if (value === 0) {
|
|
37
|
+
return 30;
|
|
38
|
+
}
|
|
39
|
+
const code16 = 30 + (Math.round(b) << 2 | Math.round(g) << 1 | Math.round(r));
|
|
40
|
+
return value === 2 ? code16 + 60 : code16;
|
|
41
|
+
}, "ansi256To16");
|
|
42
|
+
const rgbToAnsi16 = /* @__PURE__ */ __name((r, g, b) => ansi256To16(rgbToAnsi256(r, g, b)), "rgbToAnsi16");
|
|
43
|
+
|
|
44
|
+
export { ansi256To16, rgbToAnsi16, rgbToAnsi256 };
|
|
@@ -64,4 +64,4 @@ interface ColorizeType {
|
|
|
64
64
|
type AnsiStyles = "bold" | "dim" | "hidden" | "inverse" | "italic" | "overline" | "reset" | "strike" | "strikethrough" | "underline" | "visible";
|
|
65
65
|
type AnsiColors = "bgBlack" | "bgBlackBright" | "bgBlue" | "bgBlueBright" | "bgCyan" | "bgCyanBright" | "bgGray" | "bgGreen" | "bgGreenBright" | "bgGrey" | "bgMagenta" | "bgMagentaBright" | "bgRed" | "bgRedBright" | "bgWhite" | "bgWhiteBright" | "bgYellow" | "bgYellowBright" | "black" | "blackBright" | "blue" | "blueBright" | "cyan" | "cyanBright" | "gray" | "green" | "greenBright" | "grey" | "magenta" | "magentaBright" | "red" | "redBright" | "white" | "whiteBright" | "yellow" | "yellowBright";
|
|
66
66
|
|
|
67
|
-
export type { AnsiColors as A, ColorizeType as C,
|
|
67
|
+
export type { AnsiColors as A, ColorizeType as C, ColorValueHex as a, AnsiStyles as b };
|
|
@@ -64,4 +64,4 @@ interface ColorizeType {
|
|
|
64
64
|
type AnsiStyles = "bold" | "dim" | "hidden" | "inverse" | "italic" | "overline" | "reset" | "strike" | "strikethrough" | "underline" | "visible";
|
|
65
65
|
type AnsiColors = "bgBlack" | "bgBlackBright" | "bgBlue" | "bgBlueBright" | "bgCyan" | "bgCyanBright" | "bgGray" | "bgGreen" | "bgGreenBright" | "bgGrey" | "bgMagenta" | "bgMagentaBright" | "bgRed" | "bgRedBright" | "bgWhite" | "bgWhiteBright" | "bgYellow" | "bgYellowBright" | "black" | "blackBright" | "blue" | "blueBright" | "cyan" | "cyanBright" | "gray" | "green" | "greenBright" | "grey" | "magenta" | "magentaBright" | "red" | "redBright" | "white" | "whiteBright" | "yellow" | "yellowBright";
|
|
66
66
|
|
|
67
|
-
export type { AnsiColors as A, ColorizeType as C,
|
|
67
|
+
export type { AnsiColors as A, ColorizeType as C, ColorValueHex as a, AnsiStyles as b };
|
package/dist/template.cjs
CHANGED
|
@@ -1,2 +1,158 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
const colorize_server = require('./packem_shared/colorize.server-n1sJSS5f.cjs');
|
|
6
|
+
const convertHexToRgb = require('./packem_shared/convertHexToRgb-DDy3Eccg.cjs');
|
|
7
|
+
|
|
8
|
+
var __defProp$3 = Object.defineProperty;
|
|
9
|
+
var __name$3 = (target, value) => __defProp$3(target, "name", { value, configurable: true });
|
|
10
|
+
const makeColorizeTemplate = /* @__PURE__ */ __name$3((template) => (
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
|
+
(firstString, ...arguments_) => {
|
|
13
|
+
if (!Array.isArray(firstString) || !Array.isArray(firstString.raw)) {
|
|
14
|
+
throw new TypeError("A tagged template literal must be provided");
|
|
15
|
+
}
|
|
16
|
+
const parts = [firstString.raw[0]];
|
|
17
|
+
for (let index = 1; index < firstString.raw.length; index++) {
|
|
18
|
+
parts.push(String(arguments_[index - 1]).replaceAll(/[{}\\]/g, "\\$&"), String(firstString.raw[index]));
|
|
19
|
+
}
|
|
20
|
+
return template(parts.join(""));
|
|
21
|
+
}
|
|
22
|
+
), "makeColorizeTemplate");
|
|
23
|
+
|
|
24
|
+
var __defProp$2 = Object.defineProperty;
|
|
25
|
+
var __name$2 = (target, value) => __defProp$2(target, "name", { value, configurable: true });
|
|
26
|
+
const ESCAPES = /* @__PURE__ */ new Map([
|
|
27
|
+
["\\", "\\"],
|
|
28
|
+
["0", "\0"],
|
|
29
|
+
["a", "\x07"],
|
|
30
|
+
["b", "\b"],
|
|
31
|
+
["e", "\x1B"],
|
|
32
|
+
["f", "\f"],
|
|
33
|
+
["n", "\n"],
|
|
34
|
+
["r", "\r"],
|
|
35
|
+
["t", " "],
|
|
36
|
+
["v", "\v"]
|
|
37
|
+
]);
|
|
38
|
+
const unescape = /* @__PURE__ */ __name$2((c) => {
|
|
39
|
+
const u = c.startsWith("u");
|
|
40
|
+
const bracket = c[1] === "{";
|
|
41
|
+
if (u && !bracket && c.length === 5 || c.startsWith("x") && c.length === 3) {
|
|
42
|
+
return String.fromCodePoint(Number.parseInt(c.slice(1), 16));
|
|
43
|
+
}
|
|
44
|
+
if (u && bracket) {
|
|
45
|
+
return String.fromCodePoint(Number.parseInt(c.slice(2, -1), 16));
|
|
46
|
+
}
|
|
47
|
+
return ESCAPES.get(c) ?? c;
|
|
48
|
+
}, "unescape");
|
|
49
|
+
|
|
50
|
+
var __defProp$1 = Object.defineProperty;
|
|
51
|
+
var __name$1 = (target, value) => __defProp$1(target, "name", { value, configurable: true });
|
|
52
|
+
const TEMPLATE_REGEX = (
|
|
53
|
+
// eslint-disable-next-line security/detect-unsafe-regex,regexp/no-lazy-ends,regexp/no-dupe-disjunctions
|
|
54
|
+
/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|\{(~)?(#?[\w:]+(?:\([^)]*\))?(?:\.#?[\w:]+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n))|(\})|((?:.|[\r\n\f])+?)/gi
|
|
55
|
+
);
|
|
56
|
+
const STYLE_REGEX = /(?:^|\.)(?:(\w+)(?:\(([^)]*)\))?|#(?=[:a-f\d]{2,})([a-f\d]{6})?(?::([a-f\d]{6}))?)/gi;
|
|
57
|
+
const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;
|
|
58
|
+
const ESCAPE_REGEX = /\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi;
|
|
59
|
+
const parseArguments = /* @__PURE__ */ __name$1((name, value) => {
|
|
60
|
+
const results = [];
|
|
61
|
+
const chunks = value.trim().split(/\s*,\s*/);
|
|
62
|
+
let matches;
|
|
63
|
+
for (const chunk of chunks) {
|
|
64
|
+
const number = Number(chunk);
|
|
65
|
+
if (!Number.isNaN(number)) {
|
|
66
|
+
results.push(number);
|
|
67
|
+
} else if (matches = STRING_REGEX.exec(chunk)) {
|
|
68
|
+
results.push(matches[2].replace(ESCAPE_REGEX, (_, escape, character) => escape ? unescape(escape) : character));
|
|
69
|
+
} else {
|
|
70
|
+
throw new Error(`Invalid template style argument: ${chunk} (in style '${name}')`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return results;
|
|
74
|
+
}, "parseArguments");
|
|
75
|
+
const parseStyle = /* @__PURE__ */ __name$1((style) => {
|
|
76
|
+
STYLE_REGEX.lastIndex = 0;
|
|
77
|
+
const results = [];
|
|
78
|
+
let matches;
|
|
79
|
+
while ((matches = STYLE_REGEX.exec(style)) !== null) {
|
|
80
|
+
const name = matches[1];
|
|
81
|
+
if (matches[2]) {
|
|
82
|
+
results.push([name, ...parseArguments(name, matches[2])]);
|
|
83
|
+
} else if (matches[3] || matches[4]) {
|
|
84
|
+
if (matches[3]) {
|
|
85
|
+
results.push(["rgb", ...convertHexToRgb.convertHexToRgb(matches[3])]);
|
|
86
|
+
}
|
|
87
|
+
if (matches[4]) {
|
|
88
|
+
results.push(["bgRgb", ...convertHexToRgb.convertHexToRgb(matches[4])]);
|
|
89
|
+
}
|
|
90
|
+
} else {
|
|
91
|
+
results.push([name]);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return results;
|
|
95
|
+
}, "parseStyle");
|
|
96
|
+
const buildStyle = /* @__PURE__ */ __name$1((colorize, styles) => {
|
|
97
|
+
const enabled = {};
|
|
98
|
+
for (const layer of styles) {
|
|
99
|
+
for (const style of layer.styles) {
|
|
100
|
+
enabled[style[0]] = layer.inverse ? null : style.slice(1);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
let current = colorize;
|
|
104
|
+
for (const [styleName, enabledStyles] of Object.entries(enabled)) {
|
|
105
|
+
if (!Array.isArray(enabledStyles)) {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
if (!(styleName in current)) {
|
|
109
|
+
throw new Error(`Unknown style: ${styleName}`);
|
|
110
|
+
}
|
|
111
|
+
current = enabledStyles.length > 0 ? current[styleName](...enabledStyles) : current[styleName];
|
|
112
|
+
}
|
|
113
|
+
return current;
|
|
114
|
+
}, "buildStyle");
|
|
115
|
+
const makeTemplate = /* @__PURE__ */ __name$1((colorize) => (string) => {
|
|
116
|
+
const styles = [];
|
|
117
|
+
const chunks = [];
|
|
118
|
+
let chunk = [];
|
|
119
|
+
string.replaceAll(
|
|
120
|
+
TEMPLATE_REGEX,
|
|
121
|
+
// @ts-expect-error - TS doesn't understand that the regex args are defined
|
|
122
|
+
(_, escapeCharacter, inverse, style, close, character) => {
|
|
123
|
+
if (escapeCharacter) {
|
|
124
|
+
chunk.push(unescape(escapeCharacter));
|
|
125
|
+
} else if (style) {
|
|
126
|
+
const joinedChunk = chunk.join("");
|
|
127
|
+
chunk = [];
|
|
128
|
+
chunks.push(styles.length === 0 ? joinedChunk : buildStyle(colorize, styles)(joinedChunk));
|
|
129
|
+
styles.push({ inverse, styles: parseStyle(style) });
|
|
130
|
+
} else if (close) {
|
|
131
|
+
if (styles.length === 0) {
|
|
132
|
+
throw new Error("Found extraneous } in template literal");
|
|
133
|
+
}
|
|
134
|
+
chunks.push(buildStyle(colorize, styles)(chunk.join("")));
|
|
135
|
+
chunk = [];
|
|
136
|
+
styles.pop();
|
|
137
|
+
} else {
|
|
138
|
+
chunk.push(character);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
);
|
|
142
|
+
chunks.push(chunk.join(""));
|
|
143
|
+
if (styles.length > 0) {
|
|
144
|
+
throw new Error(`template literal is missing ${styles.length} closing bracket${styles.length === 1 ? "" : "s"} (\`}\`)`);
|
|
145
|
+
}
|
|
146
|
+
return chunks.join("");
|
|
147
|
+
}, "makeTemplate");
|
|
148
|
+
|
|
149
|
+
var __defProp = Object.defineProperty;
|
|
150
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
151
|
+
const colorize = new colorize_server.Colorize();
|
|
152
|
+
const makeTaggedTemplate = /* @__PURE__ */ __name((instance) => makeColorizeTemplate(makeTemplate(instance)), "makeTaggedTemplate");
|
|
153
|
+
const template = makeTemplate(colorize);
|
|
154
|
+
const template$1 = makeColorizeTemplate(template);
|
|
155
|
+
|
|
156
|
+
module.exports = template$1;
|
|
157
|
+
module.exports.makeTaggedTemplate = makeTaggedTemplate;
|
|
158
|
+
module.exports.template = template;
|