@chainlink/external-adapter-framework 2.7.0 → 2.7.2
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 +1 -1
- package/adapter/basic.js +1 -1
- package/adapter/basic.js.map +1 -1
- package/adapter/types.d.ts +1 -0
- package/generator-adapter/node_modules/.yarn-integrity +14 -13
- package/generator-adapter/node_modules/@types/node/README.md +2 -2
- package/generator-adapter/node_modules/@types/node/buffer.d.ts +1 -2
- package/generator-adapter/node_modules/@types/node/child_process.d.ts +26 -122
- package/generator-adapter/node_modules/@types/node/crypto.d.ts +17 -1
- package/generator-adapter/node_modules/@types/node/fs/promises.d.ts +41 -37
- package/generator-adapter/node_modules/@types/node/fs.d.ts +55 -44
- package/generator-adapter/node_modules/@types/node/globals.d.ts +150 -344
- package/generator-adapter/node_modules/@types/node/http.d.ts +6 -6
- package/generator-adapter/node_modules/@types/node/http2.d.ts +12 -1
- package/generator-adapter/node_modules/@types/node/https.d.ts +5 -0
- package/generator-adapter/node_modules/@types/node/index.d.ts +7 -3
- package/generator-adapter/node_modules/@types/node/{inspector.d.ts → inspector.generated.d.ts} +219 -10
- package/generator-adapter/node_modules/@types/node/module.d.ts +24 -0
- package/generator-adapter/node_modules/@types/node/package.json +3 -83
- package/generator-adapter/node_modules/@types/node/process.d.ts +3 -2
- package/generator-adapter/node_modules/@types/node/readline/promises.d.ts +0 -1
- package/generator-adapter/node_modules/@types/node/sqlite.d.ts +35 -0
- package/generator-adapter/node_modules/@types/node/stream/web.d.ts +4 -0
- package/generator-adapter/node_modules/@types/node/stream.d.ts +0 -11
- package/generator-adapter/node_modules/@types/node/test.d.ts +8 -0
- package/generator-adapter/node_modules/@types/node/ts5.6/index.d.ts +7 -3
- package/generator-adapter/node_modules/@types/node/url.d.ts +12 -3
- package/generator-adapter/node_modules/@types/node/util.d.ts +5 -2
- package/generator-adapter/node_modules/@types/node/v8.d.ts +27 -30
- package/generator-adapter/node_modules/@types/node/web-globals/abortcontroller.d.ts +34 -0
- package/generator-adapter/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
- package/generator-adapter/node_modules/@types/node/{dom-events.d.ts → web-globals/events.d.ts} +47 -52
- package/generator-adapter/node_modules/@types/node/web-globals/fetch.d.ts +46 -0
- package/generator-adapter/node_modules/@types/node/web-globals/navigator.d.ts +22 -0
- package/generator-adapter/node_modules/@types/node/web-globals/storage.d.ts +24 -0
- package/generator-adapter/node_modules/@types/node/worker_threads.d.ts +39 -3
- package/generator-adapter/node_modules/@types/node/zlib.d.ts +8 -2
- package/generator-adapter/node_modules/@yeoman/adapter/dist/adapter.d.ts +3 -0
- package/generator-adapter/node_modules/@yeoman/adapter/dist/adapter.js +12 -2
- package/generator-adapter/node_modules/@yeoman/adapter/dist/adapter.js.map +1 -1
- package/generator-adapter/node_modules/@yeoman/adapter/dist/queued-adapter.d.ts +3 -0
- package/generator-adapter/node_modules/@yeoman/adapter/dist/queued-adapter.js +12 -2
- package/generator-adapter/node_modules/@yeoman/adapter/dist/queued-adapter.js.map +1 -1
- package/generator-adapter/node_modules/@yeoman/adapter/dist/testing/test-adapter.d.ts +3 -0
- package/generator-adapter/node_modules/@yeoman/adapter/dist/testing/test-adapter.js +12 -2
- package/generator-adapter/node_modules/@yeoman/adapter/dist/testing/test-adapter.js.map +1 -1
- package/generator-adapter/node_modules/@yeoman/adapter/package.json +4 -4
- package/generator-adapter/node_modules/@yeoman/adapter/types/adapter.d.ts +12 -1
- package/generator-adapter/node_modules/@yeoman/types/package.json +3 -3
- package/generator-adapter/node_modules/@yeoman/types/types/environment/environment.d.ts +4 -1
- package/generator-adapter/node_modules/@yeoman/types/types/environment/methods-options.d.ts +7 -3
- package/generator-adapter/node_modules/@yeoman/types/types/generator/generator.d.ts +8 -5
- package/generator-adapter/node_modules/@yeoman/types/types/generator/utils.d.ts +1 -0
- package/generator-adapter/node_modules/ansi-regex/index.d.ts +9 -13
- package/generator-adapter/node_modules/ansi-regex/index.js +6 -6
- package/generator-adapter/node_modules/ansi-regex/license +1 -1
- package/generator-adapter/node_modules/ansi-regex/package.json +12 -6
- package/generator-adapter/node_modules/ansi-regex/readme.md +4 -22
- package/generator-adapter/node_modules/cli-spinners/index.d.ts +122 -111
- package/generator-adapter/node_modules/cli-spinners/index.js +7 -11
- package/generator-adapter/node_modules/cli-spinners/package.json +15 -9
- package/generator-adapter/node_modules/cli-spinners/readme.md +23 -3
- package/generator-adapter/node_modules/cli-spinners/spinners.json +44 -1
- package/generator-adapter/node_modules/emoji-regex/README.md +14 -48
- package/generator-adapter/node_modules/emoji-regex/index.d.ts +21 -1
- package/generator-adapter/node_modules/emoji-regex/index.js +5 -3
- package/generator-adapter/node_modules/emoji-regex/package.json +12 -7
- package/generator-adapter/node_modules/get-east-asian-width/index.js +2 -3
- package/generator-adapter/node_modules/get-east-asian-width/lookup.js +11 -11
- package/generator-adapter/node_modules/get-east-asian-width/package.json +1 -1
- package/generator-adapter/node_modules/ora/index.d.ts +3 -3
- package/generator-adapter/node_modules/ora/index.js +67 -48
- package/generator-adapter/node_modules/ora/node_modules/chalk/package.json +83 -0
- package/generator-adapter/node_modules/ora/node_modules/chalk/readme.md +297 -0
- package/generator-adapter/node_modules/ora/node_modules/chalk/source/index.d.ts +325 -0
- package/generator-adapter/node_modules/ora/node_modules/chalk/source/index.js +225 -0
- package/generator-adapter/node_modules/ora/node_modules/chalk/source/utilities.js +33 -0
- package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
- package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
- package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
- package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/supports-color/browser.js +34 -0
- package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
- package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/supports-color/index.js +190 -0
- package/generator-adapter/node_modules/ora/node_modules/log-symbols/browser-symbols.js +4 -0
- package/generator-adapter/node_modules/ora/node_modules/log-symbols/browser.js +1 -8
- package/generator-adapter/node_modules/ora/node_modules/log-symbols/index.js +1 -20
- package/generator-adapter/node_modules/ora/node_modules/log-symbols/package.json +10 -7
- package/generator-adapter/node_modules/ora/node_modules/log-symbols/symbols.js +14 -0
- package/generator-adapter/node_modules/ora/node_modules/strip-ansi/package.json +3 -1
- package/generator-adapter/node_modules/ora/node_modules/strip-ansi/readme.md +5 -9
- package/generator-adapter/node_modules/ora/package.json +13 -13
- package/generator-adapter/node_modules/ora/readme.md +49 -3
- package/generator-adapter/node_modules/string-width/index.js +52 -45
- package/generator-adapter/node_modules/string-width/package.json +8 -7
- package/generator-adapter/node_modules/{string-width → strip-ansi}/node_modules/ansi-regex/index.d.ts +13 -9
- package/generator-adapter/node_modules/strip-ansi/node_modules/ansi-regex/index.js +10 -0
- package/generator-adapter/node_modules/{ora/node_modules/log-symbols/node_modules/is-unicode-supported → strip-ansi/node_modules/ansi-regex}/license +1 -1
- package/generator-adapter/node_modules/{string-width → strip-ansi}/node_modules/ansi-regex/package.json +6 -12
- package/generator-adapter/node_modules/{ora → strip-ansi}/node_modules/ansi-regex/readme.md +22 -4
- package/generator-adapter/package.json +3 -3
- package/package.json +15 -14
- package/rate-limiting/index.d.ts +1 -1
- package/rate-limiting/index.js +5 -1
- package/rate-limiting/index.js.map +1 -1
- package/transports/http.d.ts +1 -2
- package/transports/websocket.js +53 -17
- package/transports/websocket.js.map +1 -1
- package/generator-adapter/node_modules/emoji-regex/index.mjs +0 -4
- package/generator-adapter/node_modules/ora/node_modules/ansi-regex/index.d.ts +0 -33
- package/generator-adapter/node_modules/ora/node_modules/ansi-regex/index.js +0 -10
- package/generator-adapter/node_modules/ora/node_modules/ansi-regex/package.json +0 -61
- package/generator-adapter/node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported/index.d.ts +0 -12
- package/generator-adapter/node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported/index.js +0 -17
- package/generator-adapter/node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported/package.json +0 -43
- package/generator-adapter/node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported/readme.md +0 -35
- package/generator-adapter/node_modules/string-width/node_modules/ansi-regex/index.js +0 -10
- package/generator-adapter/node_modules/string-width/node_modules/ansi-regex/license +0 -9
- package/generator-adapter/node_modules/string-width/node_modules/ansi-regex/readme.md +0 -60
- package/generator-adapter/node_modules/wrap-ansi/node_modules/emoji-regex/LICENSE-MIT.txt +0 -20
- package/generator-adapter/node_modules/wrap-ansi/node_modules/emoji-regex/README.md +0 -73
- package/generator-adapter/node_modules/wrap-ansi/node_modules/emoji-regex/index.d.ts +0 -23
- package/generator-adapter/node_modules/wrap-ansi/node_modules/emoji-regex/index.js +0 -6
- package/generator-adapter/node_modules/wrap-ansi/node_modules/emoji-regex/package.json +0 -50
- /package/generator-adapter/node_modules/{wrap-ansi/node_modules/emoji-regex → emoji-regex}/es2015/index.js +0 -0
- /package/generator-adapter/node_modules/{wrap-ansi/node_modules/emoji-regex → emoji-regex}/es2015/text.js +0 -0
- /package/generator-adapter/node_modules/{wrap-ansi/node_modules/emoji-regex → emoji-regex}/text.js +0 -0
- /package/generator-adapter/node_modules/ora/node_modules/{ansi-regex → chalk}/license +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/* eslint-env browser */
|
|
2
|
+
|
|
3
|
+
const level = (() => {
|
|
4
|
+
if (!('navigator' in globalThis)) {
|
|
5
|
+
return 0;
|
|
6
|
+
}
|
|
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
|
+
|
|
15
|
+
if (/\b(Chrome|Chromium)\//.test(globalThis.navigator.userAgent)) {
|
|
16
|
+
return 1;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return 0;
|
|
20
|
+
})();
|
|
21
|
+
|
|
22
|
+
const colorSupport = level !== 0 && {
|
|
23
|
+
level,
|
|
24
|
+
hasBasic: true,
|
|
25
|
+
has256: level >= 2,
|
|
26
|
+
has16m: level >= 3,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const supportsColor = {
|
|
30
|
+
stdout: colorSupport,
|
|
31
|
+
stderr: colorSupport,
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export default supportsColor;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type {WriteStream} from 'node:tty';
|
|
2
|
+
|
|
3
|
+
export type Options = {
|
|
4
|
+
/**
|
|
5
|
+
Whether `process.argv` should be sniffed for `--color` and `--no-color` flags.
|
|
6
|
+
|
|
7
|
+
@default true
|
|
8
|
+
*/
|
|
9
|
+
readonly sniffFlags?: boolean;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
Levels:
|
|
14
|
+
- `0` - All colors disabled.
|
|
15
|
+
- `1` - Basic 16 colors support.
|
|
16
|
+
- `2` - ANSI 256 colors support.
|
|
17
|
+
- `3` - Truecolor 16 million colors support.
|
|
18
|
+
*/
|
|
19
|
+
export type ColorSupportLevel = 0 | 1 | 2 | 3;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
Detect whether the terminal supports color.
|
|
23
|
+
*/
|
|
24
|
+
export type ColorSupport = {
|
|
25
|
+
/**
|
|
26
|
+
The color level.
|
|
27
|
+
*/
|
|
28
|
+
level: ColorSupportLevel;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
Whether basic 16 colors are supported.
|
|
32
|
+
*/
|
|
33
|
+
hasBasic: boolean;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
Whether ANSI 256 colors are supported.
|
|
37
|
+
*/
|
|
38
|
+
has256: boolean;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
Whether Truecolor 16 million colors are supported.
|
|
42
|
+
*/
|
|
43
|
+
has16m: boolean;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export type ColorInfo = ColorSupport | false;
|
|
47
|
+
|
|
48
|
+
export function createSupportsColor(stream?: WriteStream, options?: Options): ColorInfo;
|
|
49
|
+
|
|
50
|
+
declare const supportsColor: {
|
|
51
|
+
stdout: ColorInfo;
|
|
52
|
+
stderr: ColorInfo;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export default supportsColor;
|
package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/supports-color/index.js
ADDED
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import process from 'node:process';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import tty from 'node:tty';
|
|
4
|
+
|
|
5
|
+
// From: https://github.com/sindresorhus/has-flag/blob/main/index.js
|
|
6
|
+
/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {
|
|
7
|
+
function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) {
|
|
8
|
+
const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');
|
|
9
|
+
const position = argv.indexOf(prefix + flag);
|
|
10
|
+
const terminatorPosition = argv.indexOf('--');
|
|
11
|
+
return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const {env} = process;
|
|
15
|
+
|
|
16
|
+
let flagForceColor;
|
|
17
|
+
if (
|
|
18
|
+
hasFlag('no-color')
|
|
19
|
+
|| hasFlag('no-colors')
|
|
20
|
+
|| hasFlag('color=false')
|
|
21
|
+
|| hasFlag('color=never')
|
|
22
|
+
) {
|
|
23
|
+
flagForceColor = 0;
|
|
24
|
+
} else if (
|
|
25
|
+
hasFlag('color')
|
|
26
|
+
|| hasFlag('colors')
|
|
27
|
+
|| hasFlag('color=true')
|
|
28
|
+
|| hasFlag('color=always')
|
|
29
|
+
) {
|
|
30
|
+
flagForceColor = 1;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function envForceColor() {
|
|
34
|
+
if ('FORCE_COLOR' in env) {
|
|
35
|
+
if (env.FORCE_COLOR === 'true') {
|
|
36
|
+
return 1;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (env.FORCE_COLOR === 'false') {
|
|
40
|
+
return 0;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function translateLevel(level) {
|
|
48
|
+
if (level === 0) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
level,
|
|
54
|
+
hasBasic: true,
|
|
55
|
+
has256: level >= 2,
|
|
56
|
+
has16m: level >= 3,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {
|
|
61
|
+
const noFlagForceColor = envForceColor();
|
|
62
|
+
if (noFlagForceColor !== undefined) {
|
|
63
|
+
flagForceColor = noFlagForceColor;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
|
|
67
|
+
|
|
68
|
+
if (forceColor === 0) {
|
|
69
|
+
return 0;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (sniffFlags) {
|
|
73
|
+
if (hasFlag('color=16m')
|
|
74
|
+
|| hasFlag('color=full')
|
|
75
|
+
|| hasFlag('color=truecolor')) {
|
|
76
|
+
return 3;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (hasFlag('color=256')) {
|
|
80
|
+
return 2;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Check for Azure DevOps pipelines.
|
|
85
|
+
// Has to be above the `!streamIsTTY` check.
|
|
86
|
+
if ('TF_BUILD' in env && 'AGENT_NAME' in env) {
|
|
87
|
+
return 1;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (haveStream && !streamIsTTY && forceColor === undefined) {
|
|
91
|
+
return 0;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const min = forceColor || 0;
|
|
95
|
+
|
|
96
|
+
if (env.TERM === 'dumb') {
|
|
97
|
+
return min;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (process.platform === 'win32') {
|
|
101
|
+
// Windows 10 build 10586 is the first Windows release that supports 256 colors.
|
|
102
|
+
// Windows 10 build 14931 is the first release that supports 16m/TrueColor.
|
|
103
|
+
const osRelease = os.release().split('.');
|
|
104
|
+
if (
|
|
105
|
+
Number(osRelease[0]) >= 10
|
|
106
|
+
&& Number(osRelease[2]) >= 10_586
|
|
107
|
+
) {
|
|
108
|
+
return Number(osRelease[2]) >= 14_931 ? 3 : 2;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return 1;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if ('CI' in env) {
|
|
115
|
+
if (['GITHUB_ACTIONS', 'GITEA_ACTIONS', 'CIRCLECI'].some(key => key in env)) {
|
|
116
|
+
return 3;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (['TRAVIS', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {
|
|
120
|
+
return 1;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return min;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if ('TEAMCITY_VERSION' in env) {
|
|
127
|
+
return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (env.COLORTERM === 'truecolor') {
|
|
131
|
+
return 3;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (env.TERM === 'xterm-kitty') {
|
|
135
|
+
return 3;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (env.TERM === 'xterm-ghostty') {
|
|
139
|
+
return 3;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
if (env.TERM === 'wezterm') {
|
|
143
|
+
return 3;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
if ('TERM_PROGRAM' in env) {
|
|
147
|
+
const version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
|
|
148
|
+
|
|
149
|
+
switch (env.TERM_PROGRAM) {
|
|
150
|
+
case 'iTerm.app': {
|
|
151
|
+
return version >= 3 ? 3 : 2;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
case 'Apple_Terminal': {
|
|
155
|
+
return 2;
|
|
156
|
+
}
|
|
157
|
+
// No default
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (/-256(color)?$/i.test(env.TERM)) {
|
|
162
|
+
return 2;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
|
|
166
|
+
return 1;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if ('COLORTERM' in env) {
|
|
170
|
+
return 1;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
return min;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
export function createSupportsColor(stream, options = {}) {
|
|
177
|
+
const level = _supportsColor(stream, {
|
|
178
|
+
streamIsTTY: stream && stream.isTTY,
|
|
179
|
+
...options,
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
return translateLevel(level);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
const supportsColor = {
|
|
186
|
+
stdout: createSupportsColor({isTTY: tty.isatty(1)}),
|
|
187
|
+
stderr: createSupportsColor({isTTY: tty.isatty(2)}),
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
export default supportsColor;
|
|
@@ -1,20 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import isUnicodeSupported from 'is-unicode-supported';
|
|
3
|
-
|
|
4
|
-
const main = {
|
|
5
|
-
info: chalk.blue('ℹ'),
|
|
6
|
-
success: chalk.green('✔'),
|
|
7
|
-
warning: chalk.yellow('⚠'),
|
|
8
|
-
error: chalk.red('✖'),
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const fallback = {
|
|
12
|
-
info: chalk.blue('i'),
|
|
13
|
-
success: chalk.green('√'),
|
|
14
|
-
warning: chalk.yellow('‼'),
|
|
15
|
-
error: chalk.red('×'),
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
const logSymbols = isUnicodeSupported() ? main : fallback;
|
|
19
|
-
|
|
20
|
-
export default logSymbols;
|
|
1
|
+
export * as default from './symbols.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "log-symbols",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.1",
|
|
4
4
|
"description": "Colored symbols for various log levels. Example: `✔︎ Success`",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "sindresorhus/log-symbols",
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"node": "./index.js",
|
|
17
17
|
"default": "./browser.js"
|
|
18
18
|
},
|
|
19
|
+
"sideEffects": false,
|
|
19
20
|
"engines": {
|
|
20
21
|
"node": ">=18"
|
|
21
22
|
},
|
|
@@ -25,7 +26,9 @@
|
|
|
25
26
|
"files": [
|
|
26
27
|
"index.js",
|
|
27
28
|
"index.d.ts",
|
|
28
|
-
"browser.js"
|
|
29
|
+
"browser.js",
|
|
30
|
+
"symbols.js",
|
|
31
|
+
"browser-symbols.js"
|
|
29
32
|
],
|
|
30
33
|
"keywords": [
|
|
31
34
|
"unicode",
|
|
@@ -45,13 +48,13 @@
|
|
|
45
48
|
"stdout"
|
|
46
49
|
],
|
|
47
50
|
"dependencies": {
|
|
48
|
-
"
|
|
49
|
-
"
|
|
51
|
+
"is-unicode-supported": "^2.0.0",
|
|
52
|
+
"yoctocolors": "^2.1.1"
|
|
50
53
|
},
|
|
51
54
|
"devDependencies": {
|
|
52
|
-
"ava": "^
|
|
55
|
+
"ava": "^6.1.3",
|
|
53
56
|
"strip-ansi": "^7.1.0",
|
|
54
|
-
"tsd": "^0.
|
|
55
|
-
"xo": "^0.
|
|
57
|
+
"tsd": "^0.31.1",
|
|
58
|
+
"xo": "^0.59.3"
|
|
56
59
|
}
|
|
57
60
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
blue,
|
|
3
|
+
green,
|
|
4
|
+
yellow,
|
|
5
|
+
red,
|
|
6
|
+
} from 'yoctocolors';
|
|
7
|
+
import isUnicodeSupported from 'is-unicode-supported';
|
|
8
|
+
|
|
9
|
+
const _isUnicodeSupported = isUnicodeSupported();
|
|
10
|
+
|
|
11
|
+
export const info = blue(_isUnicodeSupported ? 'ℹ' : 'i');
|
|
12
|
+
export const success = green(_isUnicodeSupported ? '✔' : '√');
|
|
13
|
+
export const warning = yellow(_isUnicodeSupported ? '⚠' : '‼');
|
|
14
|
+
export const error = red(_isUnicodeSupported ? '✖' : '×');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "strip-ansi",
|
|
3
|
-
"version": "7.1.
|
|
3
|
+
"version": "7.1.2",
|
|
4
4
|
"description": "Strip ANSI escape codes from a string",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "chalk/strip-ansi",
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
},
|
|
13
13
|
"type": "module",
|
|
14
14
|
"exports": "./index.js",
|
|
15
|
+
"types": "./index.d.ts",
|
|
16
|
+
"sideEffects": false,
|
|
15
17
|
"engines": {
|
|
16
18
|
"node": ">=12"
|
|
17
19
|
},
|
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
> Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string
|
|
4
4
|
|
|
5
|
+
> [!NOTE]
|
|
6
|
+
> Node.js has this built-in now with [`stripVTControlCharacters`](https://nodejs.org/api/util.html#utilstripvtcontrolcharactersstr). The benefit of this package is consistent behavior across Node.js versions and faster improvements. The Node.js version is actually based on this package.
|
|
7
|
+
|
|
5
8
|
## Install
|
|
6
9
|
|
|
7
|
-
```
|
|
8
|
-
|
|
10
|
+
```sh
|
|
11
|
+
npm install strip-ansi
|
|
9
12
|
```
|
|
10
13
|
|
|
11
14
|
## Usage
|
|
@@ -20,12 +23,6 @@ stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007');
|
|
|
20
23
|
//=> 'Click'
|
|
21
24
|
```
|
|
22
25
|
|
|
23
|
-
## strip-ansi for enterprise
|
|
24
|
-
|
|
25
|
-
Available as part of the Tidelift Subscription.
|
|
26
|
-
|
|
27
|
-
The maintainers of strip-ansi and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-strip-ansi?utm_source=npm-strip-ansi&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
|
|
28
|
-
|
|
29
26
|
## Related
|
|
30
27
|
|
|
31
28
|
- [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module
|
|
@@ -38,4 +35,3 @@ The maintainers of strip-ansi and thousands of other packages are working with T
|
|
|
38
35
|
|
|
39
36
|
- [Sindre Sorhus](https://github.com/sindresorhus)
|
|
40
37
|
- [Josh Junon](https://github.com/qix-)
|
|
41
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ora",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"description": "Elegant terminal spinner",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "sindresorhus/ora",
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
},
|
|
18
18
|
"sideEffects": false,
|
|
19
19
|
"engines": {
|
|
20
|
-
"node": ">=
|
|
20
|
+
"node": ">=20"
|
|
21
21
|
},
|
|
22
22
|
"scripts": {
|
|
23
|
-
"test": "xo &&
|
|
23
|
+
"test": "xo && NODE_ENV=test node --test test.js && tsd"
|
|
24
24
|
},
|
|
25
25
|
"files": [
|
|
26
26
|
"index.js",
|
|
@@ -43,22 +43,22 @@
|
|
|
43
43
|
"idle"
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"chalk": "^5.
|
|
46
|
+
"chalk": "^5.6.2",
|
|
47
47
|
"cli-cursor": "^5.0.0",
|
|
48
|
-
"cli-spinners": "^2.
|
|
48
|
+
"cli-spinners": "^3.2.0",
|
|
49
49
|
"is-interactive": "^2.0.0",
|
|
50
|
-
"is-unicode-supported": "^2.
|
|
51
|
-
"log-symbols": "^
|
|
50
|
+
"is-unicode-supported": "^2.1.0",
|
|
51
|
+
"log-symbols": "^7.0.1",
|
|
52
52
|
"stdin-discarder": "^0.2.2",
|
|
53
|
-
"string-width": "^
|
|
54
|
-
"strip-ansi": "^7.1.
|
|
53
|
+
"string-width": "^8.1.0",
|
|
54
|
+
"strip-ansi": "^7.1.2"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@types/node": "^
|
|
58
|
-
"ava": "^
|
|
57
|
+
"@types/node": "^24.5.0",
|
|
58
|
+
"ava": "^6.4.1",
|
|
59
59
|
"get-stream": "^9.0.1",
|
|
60
60
|
"transform-tty": "^1.0.11",
|
|
61
|
-
"tsd": "^0.
|
|
62
|
-
"xo": "^
|
|
61
|
+
"tsd": "^0.33.0",
|
|
62
|
+
"xo": "^1.2.2"
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -76,11 +76,11 @@ Or an object like:
|
|
|
76
76
|
|
|
77
77
|
##### color
|
|
78
78
|
|
|
79
|
-
Type: `string`\
|
|
79
|
+
Type: `string | boolean`\
|
|
80
80
|
Default: `'cyan'`\
|
|
81
|
-
Values: `'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'gray'`
|
|
81
|
+
Values: `'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'gray' | boolean`
|
|
82
82
|
|
|
83
|
-
The color of the spinner.
|
|
83
|
+
The color of the spinner. Set to `false` to disable coloring.
|
|
84
84
|
|
|
85
85
|
##### hideCursor
|
|
86
86
|
|
|
@@ -312,6 +312,52 @@ const spinner = ora(`Loading ${chalk.red('unicorns')}`).start();
|
|
|
312
312
|
|
|
313
313
|
JavaScript is single-threaded, so any synchronous operations will block the spinner's animation. To avoid this, prefer using asynchronous operations.
|
|
314
314
|
|
|
315
|
+
### Can I display multiple spinners simultaneously?
|
|
316
|
+
|
|
317
|
+
No. Ora is designed to display a single spinner at a time. For multiple concurrent progress indicators, consider alternatives like [listr2](https://github.com/listr2/listr2) or [spinnies](https://github.com/jcarpanelli/spinnies).
|
|
318
|
+
|
|
319
|
+
### Can I use Ora with [log-update](https://github.com/sindresorhus/log-update)?
|
|
320
|
+
|
|
321
|
+
Yes, use the `.frame()` method to get the current spinner frame and include it in your log-update output.
|
|
322
|
+
|
|
323
|
+
### Does Ora work in Node.js Worker threads?
|
|
324
|
+
|
|
325
|
+
No. Ora requires an interactive terminal environment and Worker threads are not considered interactive, so the spinner will not animate. Run the spinner in the main thread and control it via worker messages:
|
|
326
|
+
|
|
327
|
+
```js
|
|
328
|
+
// main.js
|
|
329
|
+
import {Worker} from 'node:worker_threads';
|
|
330
|
+
import ora from 'ora';
|
|
331
|
+
|
|
332
|
+
const spinner = ora().start();
|
|
333
|
+
const worker = new Worker('./worker.js');
|
|
334
|
+
|
|
335
|
+
worker.on('message', message => {
|
|
336
|
+
switch (message.type) {
|
|
337
|
+
case 'ora:text':
|
|
338
|
+
spinner.text = message.text;
|
|
339
|
+
break;
|
|
340
|
+
case 'ora:succeed':
|
|
341
|
+
spinner.succeed(message.text);
|
|
342
|
+
break;
|
|
343
|
+
case 'ora:fail':
|
|
344
|
+
spinner.fail(message.text);
|
|
345
|
+
break;
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
```js
|
|
351
|
+
// worker.js
|
|
352
|
+
import {parentPort} from 'node:worker_threads';
|
|
353
|
+
|
|
354
|
+
parentPort.postMessage({type: 'ora:text', text: 'Working...'});
|
|
355
|
+
|
|
356
|
+
// Do work...
|
|
357
|
+
|
|
358
|
+
parentPort.postMessage({type: 'ora:succeed', text: 'Done!'});
|
|
359
|
+
```
|
|
360
|
+
|
|
315
361
|
## Related
|
|
316
362
|
|
|
317
363
|
- [yocto-spinner](https://github.com/sindresorhus/yocto-spinner) - Tiny terminal spinner
|
|
@@ -1,13 +1,49 @@
|
|
|
1
1
|
import stripAnsi from 'strip-ansi';
|
|
2
2
|
import {eastAsianWidth} from 'get-east-asian-width';
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
Logic:
|
|
6
|
+
- Segment graphemes to match how terminals render clusters.
|
|
7
|
+
- Width rules:
|
|
8
|
+
1. Skip non-printing clusters (Default_Ignorable, Control, pure Mark, lone Surrogates). Tabs are ignored by design.
|
|
9
|
+
2. RGI emoji clusters (\p{RGI_Emoji}) are double-width.
|
|
10
|
+
3. Otherwise use East Asian Width of the cluster’s first visible code point, and add widths for trailing Halfwidth/Fullwidth Forms within the same cluster (e.g., dakuten/handakuten/prolonged sound mark).
|
|
11
|
+
*/
|
|
4
12
|
|
|
5
13
|
const segmenter = new Intl.Segmenter();
|
|
6
14
|
|
|
7
|
-
|
|
15
|
+
// Whole-cluster zero-width
|
|
16
|
+
const zeroWidthClusterRegex = /^(?:\p{Default_Ignorable_Code_Point}|\p{Control}|\p{Mark}|\p{Surrogate})+$/v;
|
|
17
|
+
|
|
18
|
+
// Pick the base scalar if the cluster starts with Prepend/Format/Marks
|
|
19
|
+
const leadingNonPrintingRegex = /^[\p{Default_Ignorable_Code_Point}\p{Control}\p{Format}\p{Mark}\p{Surrogate}]+/v;
|
|
20
|
+
|
|
21
|
+
// RGI emoji sequences
|
|
22
|
+
const rgiEmojiRegex = /^\p{RGI_Emoji}$/v;
|
|
23
|
+
|
|
24
|
+
function baseVisible(segment) {
|
|
25
|
+
return segment.replace(leadingNonPrintingRegex, '');
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function isZeroWidthCluster(segment) {
|
|
29
|
+
return zeroWidthClusterRegex.test(segment);
|
|
30
|
+
}
|
|
8
31
|
|
|
9
|
-
|
|
10
|
-
|
|
32
|
+
function trailingHalfwidthWidth(segment, eastAsianWidthOptions) {
|
|
33
|
+
let extra = 0;
|
|
34
|
+
if (segment.length > 1) {
|
|
35
|
+
for (const char of segment.slice(1)) {
|
|
36
|
+
if (char >= '\uFF00' && char <= '\uFFEF') {
|
|
37
|
+
extra += eastAsianWidth(char.codePointAt(0), eastAsianWidthOptions);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return extra;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export default function stringWidth(input, options = {}) {
|
|
46
|
+
if (typeof input !== 'string' || input.length === 0) {
|
|
11
47
|
return 0;
|
|
12
48
|
}
|
|
13
49
|
|
|
@@ -16,6 +52,8 @@ export default function stringWidth(string, options = {}) {
|
|
|
16
52
|
countAnsiEscapeCodes = false,
|
|
17
53
|
} = options;
|
|
18
54
|
|
|
55
|
+
let string = input;
|
|
56
|
+
|
|
19
57
|
if (!countAnsiEscapeCodes) {
|
|
20
58
|
string = stripAnsi(string);
|
|
21
59
|
}
|
|
@@ -27,55 +65,24 @@ export default function stringWidth(string, options = {}) {
|
|
|
27
65
|
let width = 0;
|
|
28
66
|
const eastAsianWidthOptions = {ambiguousAsWide: !ambiguousIsNarrow};
|
|
29
67
|
|
|
30
|
-
for (const {segment
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
// Ignore control characters
|
|
34
|
-
if (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Ignore zero-width characters
|
|
39
|
-
if (
|
|
40
|
-
(codePoint >= 0x20_0B && codePoint <= 0x20_0F) // Zero-width space, non-joiner, joiner, left-to-right mark, right-to-left mark
|
|
41
|
-
|| codePoint === 0xFE_FF // Zero-width no-break space
|
|
42
|
-
) {
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Ignore combining characters
|
|
47
|
-
if (
|
|
48
|
-
(codePoint >= 0x3_00 && codePoint <= 0x3_6F) // Combining diacritical marks
|
|
49
|
-
|| (codePoint >= 0x1A_B0 && codePoint <= 0x1A_FF) // Combining diacritical marks extended
|
|
50
|
-
|| (codePoint >= 0x1D_C0 && codePoint <= 0x1D_FF) // Combining diacritical marks supplement
|
|
51
|
-
|| (codePoint >= 0x20_D0 && codePoint <= 0x20_FF) // Combining diacritical marks for symbols
|
|
52
|
-
|| (codePoint >= 0xFE_20 && codePoint <= 0xFE_2F) // Combining half marks
|
|
53
|
-
) {
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// Ignore surrogate pairs
|
|
58
|
-
if (codePoint >= 0xD8_00 && codePoint <= 0xDF_FF) {
|
|
68
|
+
for (const {segment} of segmenter.segment(string)) {
|
|
69
|
+
// Zero-width / non-printing clusters
|
|
70
|
+
if (isZeroWidthCluster(segment)) {
|
|
59
71
|
continue;
|
|
60
72
|
}
|
|
61
73
|
|
|
62
|
-
//
|
|
63
|
-
if (
|
|
64
|
-
continue;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// This covers some of the above cases, but we still keep them for performance reasons.
|
|
68
|
-
if (defaultIgnorableCodePointRegex.test(character)) {
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// TODO: Use `/\p{RGI_Emoji}/v` when targeting Node.js 20.
|
|
73
|
-
if (emojiRegex().test(character)) {
|
|
74
|
+
// Emoji width logic
|
|
75
|
+
if (rgiEmojiRegex.test(segment)) {
|
|
74
76
|
width += 2;
|
|
75
77
|
continue;
|
|
76
78
|
}
|
|
77
79
|
|
|
80
|
+
// Everything else: EAW of the cluster’s first visible scalar
|
|
81
|
+
const codePoint = baseVisible(segment).codePointAt(0);
|
|
78
82
|
width += eastAsianWidth(codePoint, eastAsianWidthOptions);
|
|
83
|
+
|
|
84
|
+
// Add width for trailing Halfwidth and Fullwidth Forms (e.g., ゙, ゚, ー)
|
|
85
|
+
width += trailingHalfwidthWidth(segment, eastAsianWidthOptions);
|
|
79
86
|
}
|
|
80
87
|
|
|
81
88
|
return width;
|