langsmith 0.5.15 → 0.5.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/README.md +2 -2
- package/dist/client.cjs +116 -143
- package/dist/client.d.ts +19 -40
- package/dist/client.js +116 -143
- package/dist/experimental/anthropic/index.cjs +4 -1
- package/dist/experimental/anthropic/index.js +4 -1
- package/dist/experimental/vercel/index.cjs +1 -0
- package/dist/experimental/vercel/index.js +1 -0
- package/dist/experimental/vercel/middleware.cjs +2 -0
- package/dist/experimental/vercel/middleware.js +2 -0
- package/dist/index.cjs +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/schemas.d.ts +1 -3
- package/dist/utils/chalk/source/index.cjs +187 -0
- package/dist/utils/chalk/source/index.d.ts +19 -0
- package/dist/utils/chalk/source/index.js +173 -0
- package/dist/utils/chalk/source/utilities.cjs +35 -0
- package/dist/utils/chalk/source/utilities.d.ts +2 -0
- package/dist/utils/chalk/source/utilities.js +31 -0
- package/dist/utils/chalk/source/vendor/ansi-styles/index.cjs +193 -0
- package/dist/utils/chalk/source/vendor/ansi-styles/index.d.ts +58 -0
- package/dist/utils/chalk/source/vendor/ansi-styles/index.js +190 -0
- package/dist/utils/chalk/source/vendor/supports-color/browser.cjs +31 -0
- package/dist/utils/chalk/source/vendor/supports-color/browser.d.ts +15 -0
- package/dist/utils/chalk/source/vendor/supports-color/browser.js +29 -0
- package/dist/utils/chalk/source/vendor/supports-color/index.cjs +155 -0
- package/dist/utils/chalk/source/vendor/supports-color/index.d.ts +21 -0
- package/dist/utils/chalk/source/vendor/supports-color/index.js +149 -0
- package/dist/utils/console-table-printer/index.cjs +11 -0
- package/dist/utils/console-table-printer/index.d.ts +4 -0
- package/dist/utils/console-table-printer/index.js +3 -0
- package/dist/utils/console-table-printer/src/console-table-printer.cjs +42 -0
- package/dist/utils/console-table-printer/src/console-table-printer.d.ts +14 -0
- package/dist/utils/console-table-printer/src/console-table-printer.js +36 -0
- package/dist/utils/console-table-printer/src/internalTable/input-converter.cjs +25 -0
- package/dist/utils/console-table-printer/src/internalTable/input-converter.d.ts +6 -0
- package/dist/utils/console-table-printer/src/internalTable/input-converter.js +20 -0
- package/dist/utils/console-table-printer/src/internalTable/internal-table-printer.cjs +142 -0
- package/dist/utils/console-table-printer/src/internalTable/internal-table-printer.d.ts +6 -0
- package/dist/utils/console-table-printer/src/internalTable/internal-table-printer.js +133 -0
- package/dist/utils/console-table-printer/src/internalTable/internal-table.cjs +186 -0
- package/dist/utils/console-table-printer/src/internalTable/internal-table.d.ts +31 -0
- package/dist/utils/console-table-printer/src/internalTable/internal-table.js +184 -0
- package/dist/utils/console-table-printer/src/internalTable/table-pre-processors.cjs +53 -0
- package/dist/utils/console-table-printer/src/internalTable/table-pre-processors.d.ts +3 -0
- package/dist/utils/console-table-printer/src/internalTable/table-pre-processors.js +48 -0
- package/dist/utils/console-table-printer/src/models/common.cjs +2 -0
- package/dist/utils/console-table-printer/src/models/common.d.ts +14 -0
- package/dist/utils/console-table-printer/src/models/common.js +1 -0
- package/dist/utils/console-table-printer/src/models/external-table.cjs +2 -0
- package/dist/utils/console-table-printer/src/models/external-table.d.ts +99 -0
- package/dist/utils/console-table-printer/src/models/external-table.js +1 -0
- package/dist/utils/console-table-printer/src/models/internal-table.cjs +2 -0
- package/dist/utils/console-table-printer/src/models/internal-table.d.ts +24 -0
- package/dist/utils/console-table-printer/src/models/internal-table.js +1 -0
- package/dist/utils/console-table-printer/src/utils/colored-console-line.cjs +43 -0
- package/dist/utils/console-table-printer/src/utils/colored-console-line.d.ts +12 -0
- package/dist/utils/console-table-printer/src/utils/colored-console-line.js +39 -0
- package/dist/utils/console-table-printer/src/utils/console-utils.cjs +23 -0
- package/dist/utils/console-table-printer/src/utils/console-utils.d.ts +3 -0
- package/dist/utils/console-table-printer/src/utils/console-utils.js +18 -0
- package/dist/utils/console-table-printer/src/utils/string-utils.cjs +68 -0
- package/dist/utils/console-table-printer/src/utils/string-utils.d.ts +4 -0
- package/dist/utils/console-table-printer/src/utils/string-utils.js +62 -0
- package/dist/utils/console-table-printer/src/utils/table-constants.cjs +55 -0
- package/dist/utils/console-table-printer/src/utils/table-constants.d.ts +11 -0
- package/dist/utils/console-table-printer/src/utils/table-constants.js +52 -0
- package/dist/utils/console-table-printer/src/utils/table-helpers.cjs +101 -0
- package/dist/utils/console-table-printer/src/utils/table-helpers.d.ts +29 -0
- package/dist/utils/console-table-printer/src/utils/table-helpers.js +88 -0
- package/dist/utils/fs.d.ts +1 -1
- package/dist/utils/jestlike/reporter.cjs +23 -23
- package/dist/utils/jestlike/reporter.js +2 -2
- package/dist/utils/prompts.cjs +0 -10
- package/dist/utils/prompts.d.ts +0 -1
- package/dist/utils/prompts.js +0 -9
- package/dist/utils/simple-wcswidth/index.cjs +10 -0
- package/dist/utils/simple-wcswidth/index.d.ts +3 -0
- package/dist/utils/simple-wcswidth/index.js +3 -0
- package/dist/utils/simple-wcswidth/src/binary-search.cjs +24 -0
- package/dist/utils/simple-wcswidth/src/binary-search.d.ts +3 -0
- package/dist/utils/simple-wcswidth/src/binary-search.js +22 -0
- package/dist/utils/simple-wcswidth/src/models.cjs +2 -0
- package/dist/utils/simple-wcswidth/src/models.d.ts +4 -0
- package/dist/utils/simple-wcswidth/src/models.js +1 -0
- package/dist/utils/simple-wcswidth/src/non-spacing-chars.cjs +149 -0
- package/dist/utils/simple-wcswidth/src/non-spacing-chars.d.ts +3 -0
- package/dist/utils/simple-wcswidth/src/non-spacing-chars.js +147 -0
- package/dist/utils/simple-wcswidth/src/wcswidth.cjs +20 -0
- package/dist/utils/simple-wcswidth/src/wcswidth.d.ts +2 -0
- package/dist/utils/simple-wcswidth/src/wcswidth.js +15 -0
- package/dist/utils/simple-wcswidth/src/wcwidth.cjs +67 -0
- package/dist/utils/simple-wcswidth/src/wcwidth.d.ts +2 -0
- package/dist/utils/simple-wcswidth/src/wcwidth.js +62 -0
- package/dist/wrappers/anthropic.cjs +4 -0
- package/dist/wrappers/anthropic.d.ts +1 -0
- package/dist/wrappers/anthropic.js +4 -0
- package/package.json +20 -19
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.colorNames = exports.backgroundColorNames = exports.foregroundColorNames = exports.modifierNames = void 0;
|
|
4
|
+
/* eslint-disable */
|
|
5
|
+
// @ts-nocheck
|
|
6
|
+
const ANSI_BACKGROUND_OFFSET = 10;
|
|
7
|
+
const wrapAnsi16 = (offset = 0) => code => `\u001B[${code + offset}m`;
|
|
8
|
+
const wrapAnsi256 = (offset = 0) => code => `\u001B[${38 + offset};5;${code}m`;
|
|
9
|
+
const wrapAnsi16m = (offset = 0) => (red, green, blue) => `\u001B[${38 + offset};2;${red};${green};${blue}m`;
|
|
10
|
+
const styles = {
|
|
11
|
+
modifier: {
|
|
12
|
+
reset: [0, 0],
|
|
13
|
+
// 21 isn't widely supported and 22 does the same thing
|
|
14
|
+
bold: [1, 22],
|
|
15
|
+
dim: [2, 22],
|
|
16
|
+
italic: [3, 23],
|
|
17
|
+
underline: [4, 24],
|
|
18
|
+
overline: [53, 55],
|
|
19
|
+
inverse: [7, 27],
|
|
20
|
+
hidden: [8, 28],
|
|
21
|
+
strikethrough: [9, 29],
|
|
22
|
+
},
|
|
23
|
+
color: {
|
|
24
|
+
black: [30, 39],
|
|
25
|
+
red: [31, 39],
|
|
26
|
+
green: [32, 39],
|
|
27
|
+
yellow: [33, 39],
|
|
28
|
+
blue: [34, 39],
|
|
29
|
+
magenta: [35, 39],
|
|
30
|
+
cyan: [36, 39],
|
|
31
|
+
white: [37, 39],
|
|
32
|
+
// Bright color
|
|
33
|
+
blackBright: [90, 39],
|
|
34
|
+
gray: [90, 39], // Alias of `blackBright`
|
|
35
|
+
grey: [90, 39], // Alias of `blackBright`
|
|
36
|
+
redBright: [91, 39],
|
|
37
|
+
greenBright: [92, 39],
|
|
38
|
+
yellowBright: [93, 39],
|
|
39
|
+
blueBright: [94, 39],
|
|
40
|
+
magentaBright: [95, 39],
|
|
41
|
+
cyanBright: [96, 39],
|
|
42
|
+
whiteBright: [97, 39],
|
|
43
|
+
},
|
|
44
|
+
bgColor: {
|
|
45
|
+
bgBlack: [40, 49],
|
|
46
|
+
bgRed: [41, 49],
|
|
47
|
+
bgGreen: [42, 49],
|
|
48
|
+
bgYellow: [43, 49],
|
|
49
|
+
bgBlue: [44, 49],
|
|
50
|
+
bgMagenta: [45, 49],
|
|
51
|
+
bgCyan: [46, 49],
|
|
52
|
+
bgWhite: [47, 49],
|
|
53
|
+
// Bright color
|
|
54
|
+
bgBlackBright: [100, 49],
|
|
55
|
+
bgGray: [100, 49], // Alias of `bgBlackBright`
|
|
56
|
+
bgGrey: [100, 49], // Alias of `bgBlackBright`
|
|
57
|
+
bgRedBright: [101, 49],
|
|
58
|
+
bgGreenBright: [102, 49],
|
|
59
|
+
bgYellowBright: [103, 49],
|
|
60
|
+
bgBlueBright: [104, 49],
|
|
61
|
+
bgMagentaBright: [105, 49],
|
|
62
|
+
bgCyanBright: [106, 49],
|
|
63
|
+
bgWhiteBright: [107, 49],
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
exports.modifierNames = Object.keys(styles.modifier);
|
|
67
|
+
exports.foregroundColorNames = Object.keys(styles.color);
|
|
68
|
+
exports.backgroundColorNames = Object.keys(styles.bgColor);
|
|
69
|
+
exports.colorNames = [...exports.foregroundColorNames, ...exports.backgroundColorNames];
|
|
70
|
+
function assembleStyles() {
|
|
71
|
+
const codes = new Map();
|
|
72
|
+
for (const [groupName, group] of Object.entries(styles)) {
|
|
73
|
+
for (const [styleName, style] of Object.entries(group)) {
|
|
74
|
+
styles[styleName] = {
|
|
75
|
+
open: `\u001B[${style[0]}m`,
|
|
76
|
+
close: `\u001B[${style[1]}m`,
|
|
77
|
+
};
|
|
78
|
+
group[styleName] = styles[styleName];
|
|
79
|
+
codes.set(style[0], style[1]);
|
|
80
|
+
}
|
|
81
|
+
Object.defineProperty(styles, groupName, {
|
|
82
|
+
value: group,
|
|
83
|
+
enumerable: false,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
Object.defineProperty(styles, 'codes', {
|
|
87
|
+
value: codes,
|
|
88
|
+
enumerable: false,
|
|
89
|
+
});
|
|
90
|
+
styles.color.close = '\u001B[39m';
|
|
91
|
+
styles.bgColor.close = '\u001B[49m';
|
|
92
|
+
styles.color.ansi = wrapAnsi16();
|
|
93
|
+
styles.color.ansi256 = wrapAnsi256();
|
|
94
|
+
styles.color.ansi16m = wrapAnsi16m();
|
|
95
|
+
styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
|
|
96
|
+
styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
|
|
97
|
+
styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
|
|
98
|
+
// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js
|
|
99
|
+
Object.defineProperties(styles, {
|
|
100
|
+
rgbToAnsi256: {
|
|
101
|
+
value(red, green, blue) {
|
|
102
|
+
// We use the extended greyscale palette here, with the exception of
|
|
103
|
+
// black and white. normal palette only has 4 greyscale shades.
|
|
104
|
+
if (red === green && green === blue) {
|
|
105
|
+
if (red < 8) {
|
|
106
|
+
return 16;
|
|
107
|
+
}
|
|
108
|
+
if (red > 248) {
|
|
109
|
+
return 231;
|
|
110
|
+
}
|
|
111
|
+
return Math.round(((red - 8) / 247) * 24) + 232;
|
|
112
|
+
}
|
|
113
|
+
return 16
|
|
114
|
+
+ (36 * Math.round(red / 255 * 5))
|
|
115
|
+
+ (6 * Math.round(green / 255 * 5))
|
|
116
|
+
+ Math.round(blue / 255 * 5);
|
|
117
|
+
},
|
|
118
|
+
enumerable: false,
|
|
119
|
+
},
|
|
120
|
+
hexToRgb: {
|
|
121
|
+
value(hex) {
|
|
122
|
+
const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
|
|
123
|
+
if (!matches) {
|
|
124
|
+
return [0, 0, 0];
|
|
125
|
+
}
|
|
126
|
+
let [colorString] = matches;
|
|
127
|
+
if (colorString.length === 3) {
|
|
128
|
+
colorString = [...colorString].map(character => character + character).join('');
|
|
129
|
+
}
|
|
130
|
+
const integer = Number.parseInt(colorString, 16);
|
|
131
|
+
return [
|
|
132
|
+
/* eslint-disable no-bitwise */
|
|
133
|
+
(integer >> 16) & 0xFF,
|
|
134
|
+
(integer >> 8) & 0xFF,
|
|
135
|
+
integer & 0xFF,
|
|
136
|
+
/* eslint-enable no-bitwise */
|
|
137
|
+
];
|
|
138
|
+
},
|
|
139
|
+
enumerable: false,
|
|
140
|
+
},
|
|
141
|
+
hexToAnsi256: {
|
|
142
|
+
value: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
|
|
143
|
+
enumerable: false,
|
|
144
|
+
},
|
|
145
|
+
ansi256ToAnsi: {
|
|
146
|
+
value(code) {
|
|
147
|
+
if (code < 8) {
|
|
148
|
+
return 30 + code;
|
|
149
|
+
}
|
|
150
|
+
if (code < 16) {
|
|
151
|
+
return 90 + (code - 8);
|
|
152
|
+
}
|
|
153
|
+
let red;
|
|
154
|
+
let green;
|
|
155
|
+
let blue;
|
|
156
|
+
if (code >= 232) {
|
|
157
|
+
red = (((code - 232) * 10) + 8) / 255;
|
|
158
|
+
green = red;
|
|
159
|
+
blue = red;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
code -= 16;
|
|
163
|
+
const remainder = code % 36;
|
|
164
|
+
red = Math.floor(code / 36) / 5;
|
|
165
|
+
green = Math.floor(remainder / 6) / 5;
|
|
166
|
+
blue = (remainder % 6) / 5;
|
|
167
|
+
}
|
|
168
|
+
const value = Math.max(red, green, blue) * 2;
|
|
169
|
+
if (value === 0) {
|
|
170
|
+
return 30;
|
|
171
|
+
}
|
|
172
|
+
// eslint-disable-next-line no-bitwise
|
|
173
|
+
let result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));
|
|
174
|
+
if (value === 2) {
|
|
175
|
+
result += 60;
|
|
176
|
+
}
|
|
177
|
+
return result;
|
|
178
|
+
},
|
|
179
|
+
enumerable: false,
|
|
180
|
+
},
|
|
181
|
+
rgbToAnsi: {
|
|
182
|
+
value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
|
|
183
|
+
enumerable: false,
|
|
184
|
+
},
|
|
185
|
+
hexToAnsi: {
|
|
186
|
+
value: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
|
|
187
|
+
enumerable: false,
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
return styles;
|
|
191
|
+
}
|
|
192
|
+
const ansiStyles = assembleStyles();
|
|
193
|
+
exports.default = ansiStyles;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export declare const modifierNames: string[];
|
|
2
|
+
export declare const foregroundColorNames: string[];
|
|
3
|
+
export declare const backgroundColorNames: string[];
|
|
4
|
+
export declare const colorNames: string[];
|
|
5
|
+
declare const ansiStyles: {
|
|
6
|
+
modifier: {
|
|
7
|
+
reset: number[];
|
|
8
|
+
bold: number[];
|
|
9
|
+
dim: number[];
|
|
10
|
+
italic: number[];
|
|
11
|
+
underline: number[];
|
|
12
|
+
overline: number[];
|
|
13
|
+
inverse: number[];
|
|
14
|
+
hidden: number[];
|
|
15
|
+
strikethrough: number[];
|
|
16
|
+
};
|
|
17
|
+
color: {
|
|
18
|
+
black: number[];
|
|
19
|
+
red: number[];
|
|
20
|
+
green: number[];
|
|
21
|
+
yellow: number[];
|
|
22
|
+
blue: number[];
|
|
23
|
+
magenta: number[];
|
|
24
|
+
cyan: number[];
|
|
25
|
+
white: number[];
|
|
26
|
+
blackBright: number[];
|
|
27
|
+
gray: number[];
|
|
28
|
+
grey: number[];
|
|
29
|
+
redBright: number[];
|
|
30
|
+
greenBright: number[];
|
|
31
|
+
yellowBright: number[];
|
|
32
|
+
blueBright: number[];
|
|
33
|
+
magentaBright: number[];
|
|
34
|
+
cyanBright: number[];
|
|
35
|
+
whiteBright: number[];
|
|
36
|
+
};
|
|
37
|
+
bgColor: {
|
|
38
|
+
bgBlack: number[];
|
|
39
|
+
bgRed: number[];
|
|
40
|
+
bgGreen: number[];
|
|
41
|
+
bgYellow: number[];
|
|
42
|
+
bgBlue: number[];
|
|
43
|
+
bgMagenta: number[];
|
|
44
|
+
bgCyan: number[];
|
|
45
|
+
bgWhite: number[];
|
|
46
|
+
bgBlackBright: number[];
|
|
47
|
+
bgGray: number[];
|
|
48
|
+
bgGrey: number[];
|
|
49
|
+
bgRedBright: number[];
|
|
50
|
+
bgGreenBright: number[];
|
|
51
|
+
bgYellowBright: number[];
|
|
52
|
+
bgBlueBright: number[];
|
|
53
|
+
bgMagentaBright: number[];
|
|
54
|
+
bgCyanBright: number[];
|
|
55
|
+
bgWhiteBright: number[];
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
export default ansiStyles;
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
const ANSI_BACKGROUND_OFFSET = 10;
|
|
4
|
+
const wrapAnsi16 = (offset = 0) => code => `\u001B[${code + offset}m`;
|
|
5
|
+
const wrapAnsi256 = (offset = 0) => code => `\u001B[${38 + offset};5;${code}m`;
|
|
6
|
+
const wrapAnsi16m = (offset = 0) => (red, green, blue) => `\u001B[${38 + offset};2;${red};${green};${blue}m`;
|
|
7
|
+
const styles = {
|
|
8
|
+
modifier: {
|
|
9
|
+
reset: [0, 0],
|
|
10
|
+
// 21 isn't widely supported and 22 does the same thing
|
|
11
|
+
bold: [1, 22],
|
|
12
|
+
dim: [2, 22],
|
|
13
|
+
italic: [3, 23],
|
|
14
|
+
underline: [4, 24],
|
|
15
|
+
overline: [53, 55],
|
|
16
|
+
inverse: [7, 27],
|
|
17
|
+
hidden: [8, 28],
|
|
18
|
+
strikethrough: [9, 29],
|
|
19
|
+
},
|
|
20
|
+
color: {
|
|
21
|
+
black: [30, 39],
|
|
22
|
+
red: [31, 39],
|
|
23
|
+
green: [32, 39],
|
|
24
|
+
yellow: [33, 39],
|
|
25
|
+
blue: [34, 39],
|
|
26
|
+
magenta: [35, 39],
|
|
27
|
+
cyan: [36, 39],
|
|
28
|
+
white: [37, 39],
|
|
29
|
+
// Bright color
|
|
30
|
+
blackBright: [90, 39],
|
|
31
|
+
gray: [90, 39], // Alias of `blackBright`
|
|
32
|
+
grey: [90, 39], // Alias of `blackBright`
|
|
33
|
+
redBright: [91, 39],
|
|
34
|
+
greenBright: [92, 39],
|
|
35
|
+
yellowBright: [93, 39],
|
|
36
|
+
blueBright: [94, 39],
|
|
37
|
+
magentaBright: [95, 39],
|
|
38
|
+
cyanBright: [96, 39],
|
|
39
|
+
whiteBright: [97, 39],
|
|
40
|
+
},
|
|
41
|
+
bgColor: {
|
|
42
|
+
bgBlack: [40, 49],
|
|
43
|
+
bgRed: [41, 49],
|
|
44
|
+
bgGreen: [42, 49],
|
|
45
|
+
bgYellow: [43, 49],
|
|
46
|
+
bgBlue: [44, 49],
|
|
47
|
+
bgMagenta: [45, 49],
|
|
48
|
+
bgCyan: [46, 49],
|
|
49
|
+
bgWhite: [47, 49],
|
|
50
|
+
// Bright color
|
|
51
|
+
bgBlackBright: [100, 49],
|
|
52
|
+
bgGray: [100, 49], // Alias of `bgBlackBright`
|
|
53
|
+
bgGrey: [100, 49], // Alias of `bgBlackBright`
|
|
54
|
+
bgRedBright: [101, 49],
|
|
55
|
+
bgGreenBright: [102, 49],
|
|
56
|
+
bgYellowBright: [103, 49],
|
|
57
|
+
bgBlueBright: [104, 49],
|
|
58
|
+
bgMagentaBright: [105, 49],
|
|
59
|
+
bgCyanBright: [106, 49],
|
|
60
|
+
bgWhiteBright: [107, 49],
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
export const modifierNames = Object.keys(styles.modifier);
|
|
64
|
+
export const foregroundColorNames = Object.keys(styles.color);
|
|
65
|
+
export const backgroundColorNames = Object.keys(styles.bgColor);
|
|
66
|
+
export const colorNames = [...foregroundColorNames, ...backgroundColorNames];
|
|
67
|
+
function assembleStyles() {
|
|
68
|
+
const codes = new Map();
|
|
69
|
+
for (const [groupName, group] of Object.entries(styles)) {
|
|
70
|
+
for (const [styleName, style] of Object.entries(group)) {
|
|
71
|
+
styles[styleName] = {
|
|
72
|
+
open: `\u001B[${style[0]}m`,
|
|
73
|
+
close: `\u001B[${style[1]}m`,
|
|
74
|
+
};
|
|
75
|
+
group[styleName] = styles[styleName];
|
|
76
|
+
codes.set(style[0], style[1]);
|
|
77
|
+
}
|
|
78
|
+
Object.defineProperty(styles, groupName, {
|
|
79
|
+
value: group,
|
|
80
|
+
enumerable: false,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
Object.defineProperty(styles, 'codes', {
|
|
84
|
+
value: codes,
|
|
85
|
+
enumerable: false,
|
|
86
|
+
});
|
|
87
|
+
styles.color.close = '\u001B[39m';
|
|
88
|
+
styles.bgColor.close = '\u001B[49m';
|
|
89
|
+
styles.color.ansi = wrapAnsi16();
|
|
90
|
+
styles.color.ansi256 = wrapAnsi256();
|
|
91
|
+
styles.color.ansi16m = wrapAnsi16m();
|
|
92
|
+
styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
|
|
93
|
+
styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
|
|
94
|
+
styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
|
|
95
|
+
// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js
|
|
96
|
+
Object.defineProperties(styles, {
|
|
97
|
+
rgbToAnsi256: {
|
|
98
|
+
value(red, green, blue) {
|
|
99
|
+
// We use the extended greyscale palette here, with the exception of
|
|
100
|
+
// black and white. normal palette only has 4 greyscale shades.
|
|
101
|
+
if (red === green && green === blue) {
|
|
102
|
+
if (red < 8) {
|
|
103
|
+
return 16;
|
|
104
|
+
}
|
|
105
|
+
if (red > 248) {
|
|
106
|
+
return 231;
|
|
107
|
+
}
|
|
108
|
+
return Math.round(((red - 8) / 247) * 24) + 232;
|
|
109
|
+
}
|
|
110
|
+
return 16
|
|
111
|
+
+ (36 * Math.round(red / 255 * 5))
|
|
112
|
+
+ (6 * Math.round(green / 255 * 5))
|
|
113
|
+
+ Math.round(blue / 255 * 5);
|
|
114
|
+
},
|
|
115
|
+
enumerable: false,
|
|
116
|
+
},
|
|
117
|
+
hexToRgb: {
|
|
118
|
+
value(hex) {
|
|
119
|
+
const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
|
|
120
|
+
if (!matches) {
|
|
121
|
+
return [0, 0, 0];
|
|
122
|
+
}
|
|
123
|
+
let [colorString] = matches;
|
|
124
|
+
if (colorString.length === 3) {
|
|
125
|
+
colorString = [...colorString].map(character => character + character).join('');
|
|
126
|
+
}
|
|
127
|
+
const integer = Number.parseInt(colorString, 16);
|
|
128
|
+
return [
|
|
129
|
+
/* eslint-disable no-bitwise */
|
|
130
|
+
(integer >> 16) & 0xFF,
|
|
131
|
+
(integer >> 8) & 0xFF,
|
|
132
|
+
integer & 0xFF,
|
|
133
|
+
/* eslint-enable no-bitwise */
|
|
134
|
+
];
|
|
135
|
+
},
|
|
136
|
+
enumerable: false,
|
|
137
|
+
},
|
|
138
|
+
hexToAnsi256: {
|
|
139
|
+
value: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
|
|
140
|
+
enumerable: false,
|
|
141
|
+
},
|
|
142
|
+
ansi256ToAnsi: {
|
|
143
|
+
value(code) {
|
|
144
|
+
if (code < 8) {
|
|
145
|
+
return 30 + code;
|
|
146
|
+
}
|
|
147
|
+
if (code < 16) {
|
|
148
|
+
return 90 + (code - 8);
|
|
149
|
+
}
|
|
150
|
+
let red;
|
|
151
|
+
let green;
|
|
152
|
+
let blue;
|
|
153
|
+
if (code >= 232) {
|
|
154
|
+
red = (((code - 232) * 10) + 8) / 255;
|
|
155
|
+
green = red;
|
|
156
|
+
blue = red;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
code -= 16;
|
|
160
|
+
const remainder = code % 36;
|
|
161
|
+
red = Math.floor(code / 36) / 5;
|
|
162
|
+
green = Math.floor(remainder / 6) / 5;
|
|
163
|
+
blue = (remainder % 6) / 5;
|
|
164
|
+
}
|
|
165
|
+
const value = Math.max(red, green, blue) * 2;
|
|
166
|
+
if (value === 0) {
|
|
167
|
+
return 30;
|
|
168
|
+
}
|
|
169
|
+
// eslint-disable-next-line no-bitwise
|
|
170
|
+
let result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));
|
|
171
|
+
if (value === 2) {
|
|
172
|
+
result += 60;
|
|
173
|
+
}
|
|
174
|
+
return result;
|
|
175
|
+
},
|
|
176
|
+
enumerable: false,
|
|
177
|
+
},
|
|
178
|
+
rgbToAnsi: {
|
|
179
|
+
value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
|
|
180
|
+
enumerable: false,
|
|
181
|
+
},
|
|
182
|
+
hexToAnsi: {
|
|
183
|
+
value: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
|
|
184
|
+
enumerable: false,
|
|
185
|
+
},
|
|
186
|
+
});
|
|
187
|
+
return styles;
|
|
188
|
+
}
|
|
189
|
+
const ansiStyles = assembleStyles();
|
|
190
|
+
export default ansiStyles;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
// @ts-nocheck
|
|
4
|
+
/* eslint-env browser */
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const level = (() => {
|
|
7
|
+
if (!('navigator' in globalThis)) {
|
|
8
|
+
return 0;
|
|
9
|
+
}
|
|
10
|
+
if (globalThis.navigator.userAgentData) {
|
|
11
|
+
const brand = navigator.userAgentData.brands.find(({ brand }) => brand === 'Chromium');
|
|
12
|
+
if (brand && brand.version > 93) {
|
|
13
|
+
return 3;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
if (/\b(Chrome|Chromium)\//.test(globalThis.navigator.userAgent)) {
|
|
17
|
+
return 1;
|
|
18
|
+
}
|
|
19
|
+
return 0;
|
|
20
|
+
})();
|
|
21
|
+
const colorSupport = level !== 0 && {
|
|
22
|
+
level,
|
|
23
|
+
hasBasic: true,
|
|
24
|
+
has256: level >= 2,
|
|
25
|
+
has16m: level >= 3,
|
|
26
|
+
};
|
|
27
|
+
const supportsColor = {
|
|
28
|
+
stdout: colorSupport,
|
|
29
|
+
stderr: colorSupport,
|
|
30
|
+
};
|
|
31
|
+
exports.default = supportsColor;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
declare const supportsColor: {
|
|
2
|
+
stdout: false | {
|
|
3
|
+
level: number;
|
|
4
|
+
hasBasic: boolean;
|
|
5
|
+
has256: boolean;
|
|
6
|
+
has16m: boolean;
|
|
7
|
+
};
|
|
8
|
+
stderr: false | {
|
|
9
|
+
level: number;
|
|
10
|
+
hasBasic: boolean;
|
|
11
|
+
has256: boolean;
|
|
12
|
+
has16m: boolean;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export default supportsColor;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
/* eslint-env browser */
|
|
4
|
+
const level = (() => {
|
|
5
|
+
if (!('navigator' in globalThis)) {
|
|
6
|
+
return 0;
|
|
7
|
+
}
|
|
8
|
+
if (globalThis.navigator.userAgentData) {
|
|
9
|
+
const brand = navigator.userAgentData.brands.find(({ brand }) => brand === 'Chromium');
|
|
10
|
+
if (brand && brand.version > 93) {
|
|
11
|
+
return 3;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
if (/\b(Chrome|Chromium)\//.test(globalThis.navigator.userAgent)) {
|
|
15
|
+
return 1;
|
|
16
|
+
}
|
|
17
|
+
return 0;
|
|
18
|
+
})();
|
|
19
|
+
const colorSupport = level !== 0 && {
|
|
20
|
+
level,
|
|
21
|
+
hasBasic: true,
|
|
22
|
+
has256: level >= 2,
|
|
23
|
+
has16m: level >= 3,
|
|
24
|
+
};
|
|
25
|
+
const supportsColor = {
|
|
26
|
+
stdout: colorSupport,
|
|
27
|
+
stderr: colorSupport,
|
|
28
|
+
};
|
|
29
|
+
export default supportsColor;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createSupportsColor = createSupportsColor;
|
|
7
|
+
/* eslint-disable */
|
|
8
|
+
// @ts-nocheck
|
|
9
|
+
const node_process_1 = __importDefault(require("node:process"));
|
|
10
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
11
|
+
const node_tty_1 = __importDefault(require("node:tty"));
|
|
12
|
+
// From: https://github.com/sindresorhus/has-flag/blob/main/index.js
|
|
13
|
+
/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {
|
|
14
|
+
function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : node_process_1.default.argv) {
|
|
15
|
+
const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');
|
|
16
|
+
const position = argv.indexOf(prefix + flag);
|
|
17
|
+
const terminatorPosition = argv.indexOf('--');
|
|
18
|
+
return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
|
|
19
|
+
}
|
|
20
|
+
const { env } = node_process_1.default;
|
|
21
|
+
let flagForceColor;
|
|
22
|
+
if (hasFlag('no-color')
|
|
23
|
+
|| hasFlag('no-colors')
|
|
24
|
+
|| hasFlag('color=false')
|
|
25
|
+
|| hasFlag('color=never')) {
|
|
26
|
+
flagForceColor = 0;
|
|
27
|
+
}
|
|
28
|
+
else if (hasFlag('color')
|
|
29
|
+
|| hasFlag('colors')
|
|
30
|
+
|| hasFlag('color=true')
|
|
31
|
+
|| hasFlag('color=always')) {
|
|
32
|
+
flagForceColor = 1;
|
|
33
|
+
}
|
|
34
|
+
function envForceColor() {
|
|
35
|
+
if ('FORCE_COLOR' in env) {
|
|
36
|
+
if (env.FORCE_COLOR === 'true') {
|
|
37
|
+
return 1;
|
|
38
|
+
}
|
|
39
|
+
if (env.FORCE_COLOR === 'false') {
|
|
40
|
+
return 0;
|
|
41
|
+
}
|
|
42
|
+
return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function translateLevel(level) {
|
|
46
|
+
if (level === 0) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
level,
|
|
51
|
+
hasBasic: true,
|
|
52
|
+
has256: level >= 2,
|
|
53
|
+
has16m: level >= 3,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
|
|
57
|
+
const noFlagForceColor = envForceColor();
|
|
58
|
+
if (noFlagForceColor !== undefined) {
|
|
59
|
+
flagForceColor = noFlagForceColor;
|
|
60
|
+
}
|
|
61
|
+
const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
|
|
62
|
+
if (forceColor === 0) {
|
|
63
|
+
return 0;
|
|
64
|
+
}
|
|
65
|
+
if (sniffFlags) {
|
|
66
|
+
if (hasFlag('color=16m')
|
|
67
|
+
|| hasFlag('color=full')
|
|
68
|
+
|| hasFlag('color=truecolor')) {
|
|
69
|
+
return 3;
|
|
70
|
+
}
|
|
71
|
+
if (hasFlag('color=256')) {
|
|
72
|
+
return 2;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Check for Azure DevOps pipelines.
|
|
76
|
+
// Has to be above the `!streamIsTTY` check.
|
|
77
|
+
if ('TF_BUILD' in env && 'AGENT_NAME' in env) {
|
|
78
|
+
return 1;
|
|
79
|
+
}
|
|
80
|
+
if (haveStream && !streamIsTTY && forceColor === undefined) {
|
|
81
|
+
return 0;
|
|
82
|
+
}
|
|
83
|
+
const min = forceColor || 0;
|
|
84
|
+
if (env.TERM === 'dumb') {
|
|
85
|
+
return min;
|
|
86
|
+
}
|
|
87
|
+
if (node_process_1.default.platform === 'win32') {
|
|
88
|
+
// Windows 10 build 10586 is the first Windows release that supports 256 colors.
|
|
89
|
+
// Windows 10 build 14931 is the first release that supports 16m/TrueColor.
|
|
90
|
+
const osRelease = node_os_1.default.release().split('.');
|
|
91
|
+
if (Number(osRelease[0]) >= 10
|
|
92
|
+
&& Number(osRelease[2]) >= 10_586) {
|
|
93
|
+
return Number(osRelease[2]) >= 14_931 ? 3 : 2;
|
|
94
|
+
}
|
|
95
|
+
return 1;
|
|
96
|
+
}
|
|
97
|
+
if ('CI' in env) {
|
|
98
|
+
if (['GITHUB_ACTIONS', 'GITEA_ACTIONS', 'CIRCLECI'].some(key => key in env)) {
|
|
99
|
+
return 3;
|
|
100
|
+
}
|
|
101
|
+
if (['TRAVIS', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {
|
|
102
|
+
return 1;
|
|
103
|
+
}
|
|
104
|
+
return min;
|
|
105
|
+
}
|
|
106
|
+
if ('TEAMCITY_VERSION' in env) {
|
|
107
|
+
return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
|
|
108
|
+
}
|
|
109
|
+
if (env.COLORTERM === 'truecolor') {
|
|
110
|
+
return 3;
|
|
111
|
+
}
|
|
112
|
+
if (env.TERM === 'xterm-kitty') {
|
|
113
|
+
return 3;
|
|
114
|
+
}
|
|
115
|
+
if (env.TERM === 'xterm-ghostty') {
|
|
116
|
+
return 3;
|
|
117
|
+
}
|
|
118
|
+
if (env.TERM === 'wezterm') {
|
|
119
|
+
return 3;
|
|
120
|
+
}
|
|
121
|
+
if ('TERM_PROGRAM' in env) {
|
|
122
|
+
const version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
|
|
123
|
+
switch (env.TERM_PROGRAM) {
|
|
124
|
+
case 'iTerm.app': {
|
|
125
|
+
return version >= 3 ? 3 : 2;
|
|
126
|
+
}
|
|
127
|
+
case 'Apple_Terminal': {
|
|
128
|
+
return 2;
|
|
129
|
+
}
|
|
130
|
+
// No default
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (/-256(color)?$/i.test(env.TERM)) {
|
|
134
|
+
return 2;
|
|
135
|
+
}
|
|
136
|
+
if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
|
|
137
|
+
return 1;
|
|
138
|
+
}
|
|
139
|
+
if ('COLORTERM' in env) {
|
|
140
|
+
return 1;
|
|
141
|
+
}
|
|
142
|
+
return min;
|
|
143
|
+
}
|
|
144
|
+
function createSupportsColor(stream, options = {}) {
|
|
145
|
+
const level = _supportsColor(stream, {
|
|
146
|
+
streamIsTTY: stream && stream.isTTY,
|
|
147
|
+
...options,
|
|
148
|
+
});
|
|
149
|
+
return translateLevel(level);
|
|
150
|
+
}
|
|
151
|
+
const supportsColor = {
|
|
152
|
+
stdout: createSupportsColor({ isTTY: node_tty_1.default.isatty(1) }),
|
|
153
|
+
stderr: createSupportsColor({ isTTY: node_tty_1.default.isatty(2) }),
|
|
154
|
+
};
|
|
155
|
+
exports.default = supportsColor;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare function createSupportsColor(stream: any, options?: {}): false | {
|
|
2
|
+
level: any;
|
|
3
|
+
hasBasic: boolean;
|
|
4
|
+
has256: boolean;
|
|
5
|
+
has16m: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare const supportsColor: {
|
|
8
|
+
stdout: boolean | {
|
|
9
|
+
level: any;
|
|
10
|
+
hasBasic: boolean;
|
|
11
|
+
has256: boolean;
|
|
12
|
+
has16m: boolean;
|
|
13
|
+
};
|
|
14
|
+
stderr: boolean | {
|
|
15
|
+
level: any;
|
|
16
|
+
hasBasic: boolean;
|
|
17
|
+
has256: boolean;
|
|
18
|
+
has16m: boolean;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export default supportsColor;
|