@kubb/cli 4.32.4 → 4.33.1
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/dist/agent-Bd1QdPVV.cjs +91 -0
- package/dist/agent-Bd1QdPVV.cjs.map +1 -0
- package/dist/agent-D83d9Pud.cjs +60 -0
- package/dist/agent-D83d9Pud.cjs.map +1 -0
- package/dist/agent-DgKQXSmR.js +57 -0
- package/dist/agent-DgKQXSmR.js.map +1 -0
- package/dist/agent-u_Ehwz6r.js +87 -0
- package/dist/agent-u_Ehwz6r.js.map +1 -0
- package/dist/constants-BTUap0zs.cjs +108 -0
- package/dist/constants-BTUap0zs.cjs.map +1 -0
- package/dist/constants-CM3dJzjK.js +67 -0
- package/dist/constants-CM3dJzjK.js.map +1 -0
- package/dist/define--M_JMcDC.js +25 -0
- package/dist/define--M_JMcDC.js.map +1 -0
- package/dist/define-D6Kfm7-Z.cjs +36 -0
- package/dist/define-D6Kfm7-Z.cjs.map +1 -0
- package/dist/errors-6mF_WKxg.js +27 -0
- package/dist/errors-6mF_WKxg.js.map +1 -0
- package/dist/errors-DBW0N9w4.cjs +44 -0
- package/dist/errors-DBW0N9w4.cjs.map +1 -0
- package/dist/generate-Bn8n4w1O.cjs +65 -0
- package/dist/generate-Bn8n4w1O.cjs.map +1 -0
- package/dist/{generate-CpWtSc45.js → generate-CAsV9wSx.js} +656 -689
- package/dist/generate-CAsV9wSx.js.map +1 -0
- package/dist/generate-D-59YK0L.js +66 -0
- package/dist/generate-D-59YK0L.js.map +1 -0
- package/dist/{generate-COj0aMS6.cjs → generate-JC65igQh.cjs} +662 -694
- package/dist/generate-JC65igQh.cjs.map +1 -0
- package/dist/index.cjs +226 -35
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +226 -35
- package/dist/index.js.map +1 -1
- package/dist/init-C-InrmSY.js +302 -0
- package/dist/init-C-InrmSY.js.map +1 -0
- package/dist/init-CXP8OfMe.js +25 -0
- package/dist/init-CXP8OfMe.js.map +1 -0
- package/dist/init-CbeE-L-0.cjs +25 -0
- package/dist/init-CbeE-L-0.cjs.map +1 -0
- package/dist/init-hmolV6B4.cjs +306 -0
- package/dist/init-hmolV6B4.cjs.map +1 -0
- package/dist/jiti-Cd3S0xwr.cjs +16 -0
- package/dist/jiti-Cd3S0xwr.cjs.map +1 -0
- package/dist/jiti-e08mD2Ph.js +11 -0
- package/dist/jiti-e08mD2Ph.js.map +1 -0
- package/dist/mcp-BDxg2oJm.cjs +16 -0
- package/dist/mcp-BDxg2oJm.cjs.map +1 -0
- package/dist/mcp-ChHFPRzD.cjs +42 -0
- package/dist/mcp-ChHFPRzD.cjs.map +1 -0
- package/dist/mcp-D2SHEg_d.js +41 -0
- package/dist/mcp-D2SHEg_d.js.map +1 -0
- package/dist/mcp-MSoE4vNA.js +16 -0
- package/dist/mcp-MSoE4vNA.js.map +1 -0
- package/dist/{package-aNQWvWbS.cjs → package-CUVyeIbt.cjs} +2 -2
- package/dist/package-CUVyeIbt.cjs.map +1 -0
- package/dist/package-Cbd8OC6q.js +6 -0
- package/dist/package-Cbd8OC6q.js.map +1 -0
- package/dist/shell-7HPrTCJ5.cjs +57 -0
- package/dist/shell-7HPrTCJ5.cjs.map +1 -0
- package/dist/shell-DqqWsHCD.js +46 -0
- package/dist/shell-DqqWsHCD.js.map +1 -0
- package/dist/{telemetry-BDSSqUiG.cjs → telemetry-Cn9X1I5B.cjs} +79 -9
- package/dist/telemetry-Cn9X1I5B.cjs.map +1 -0
- package/dist/{telemetry-DYWvlxqs.js → telemetry-DxiR7clS.js} +63 -11
- package/dist/telemetry-DxiR7clS.js.map +1 -0
- package/dist/validate-BG8A3aQS.cjs +25 -0
- package/dist/validate-BG8A3aQS.cjs.map +1 -0
- package/dist/validate-BZ1UFkwA.js +25 -0
- package/dist/validate-BZ1UFkwA.js.map +1 -0
- package/dist/validate-Bbrn3Q-A.cjs +42 -0
- package/dist/validate-Bbrn3Q-A.cjs.map +1 -0
- package/dist/validate-l8vLmwKA.js +41 -0
- package/dist/validate-l8vLmwKA.js.map +1 -0
- package/package.json +6 -6
- package/src/commands/agent/start.ts +27 -136
- package/src/commands/agent.ts +6 -25
- package/src/commands/generate.ts +26 -158
- package/src/commands/init.ts +9 -360
- package/src/commands/mcp.ts +7 -52
- package/src/commands/validate.ts +9 -60
- package/src/constants.ts +76 -0
- package/src/index.ts +36 -42
- package/src/loggers/clackLogger.ts +65 -165
- package/src/loggers/fileSystemLogger.ts +2 -14
- package/src/loggers/githubActionsLogger.ts +58 -125
- package/src/loggers/plainLogger.ts +44 -92
- package/src/loggers/utils.ts +67 -4
- package/src/runners/agent.ts +100 -0
- package/src/runners/generate.ts +223 -102
- package/src/runners/init.ts +323 -0
- package/src/runners/mcp.ts +32 -0
- package/src/runners/validate.ts +35 -0
- package/src/utils/Writables.ts +2 -2
- package/src/utils/executeHooks.ts +20 -8
- package/src/utils/getCosmiConfig.ts +10 -11
- package/src/utils/getIntro.ts +1 -81
- package/src/utils/getSummary.ts +12 -17
- package/src/utils/jiti.ts +9 -0
- package/src/utils/packageManager.ts +4 -4
- package/src/utils/runHook.ts +75 -0
- package/src/utils/telemetry.ts +8 -26
- package/src/utils/watcher.ts +2 -4
- package/dist/agent-6COck3B9.cjs +0 -20
- package/dist/agent-6COck3B9.cjs.map +0 -1
- package/dist/agent-DMm6c5Vg.js +0 -20
- package/dist/agent-DMm6c5Vg.js.map +0 -1
- package/dist/generate-COj0aMS6.cjs.map +0 -1
- package/dist/generate-CpWtSc45.js.map +0 -1
- package/dist/init-Bdn3_qir.js +0 -304
- package/dist/init-Bdn3_qir.js.map +0 -1
- package/dist/init-CFW2kWY8.cjs +0 -308
- package/dist/init-CFW2kWY8.cjs.map +0 -1
- package/dist/mcp-DkwtARfo.cjs +0 -57
- package/dist/mcp-DkwtARfo.cjs.map +0 -1
- package/dist/mcp-DrH93Vq4.js +0 -57
- package/dist/mcp-DrH93Vq4.js.map +0 -1
- package/dist/package-BnJbGmLm.js +0 -6
- package/dist/package-BnJbGmLm.js.map +0 -1
- package/dist/package-aNQWvWbS.cjs.map +0 -1
- package/dist/start-CqTUu14n.js +0 -131
- package/dist/start-CqTUu14n.js.map +0 -1
- package/dist/start-D-rsIJGo.cjs +0 -134
- package/dist/start-D-rsIJGo.cjs.map +0 -1
- package/dist/telemetry-BDSSqUiG.cjs.map +0 -1
- package/dist/telemetry-DYWvlxqs.js.map +0 -1
- package/dist/validate-BlV8L8gC.js +0 -66
- package/dist/validate-BlV8L8gC.js.map +0 -1
- package/dist/validate-COhZUXF8.cjs +0 -66
- package/dist/validate-COhZUXF8.cjs.map +0 -1
- package/src/loggers/envDetection.ts +0 -28
- package/src/loggers/index.ts +0 -5
- package/src/utils/formatMsWithColor.ts +0 -22
- package/src/utils/randomColor.ts +0 -23
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { styleText } from 'node:util'
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { formatHrtime, formatMs, formatMsWithColor, toCause } from '@internals/utils'
|
|
3
|
+
import { type Config, defineLogger, logLevel as logLevelMap } from '@kubb/core'
|
|
4
|
+
import { runHook } from '../utils/runHook.ts'
|
|
5
|
+
import { buildProgressLine, formatCommandWithArgs, formatMessage } from './utils.ts'
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* GitHub Actions adapter for CI environments
|
|
@@ -11,7 +11,7 @@ import { formatMsWithColor } from '../utils/formatMsWithColor.ts'
|
|
|
11
11
|
export const githubActionsLogger = defineLogger({
|
|
12
12
|
name: 'github-actions',
|
|
13
13
|
install(context, options) {
|
|
14
|
-
const logLevel = options?.logLevel
|
|
14
|
+
const logLevel = options?.logLevel ?? logLevelMap.info
|
|
15
15
|
const state = {
|
|
16
16
|
totalPlugins: 0,
|
|
17
17
|
completedPlugins: 0,
|
|
@@ -29,47 +29,22 @@ export const githubActionsLogger = defineLogger({
|
|
|
29
29
|
state.totalFiles = 0
|
|
30
30
|
state.processedFiles = 0
|
|
31
31
|
state.hrStart = process.hrtime()
|
|
32
|
+
state.currentConfigs = []
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
function showProgressStep() {
|
|
35
|
-
if (logLevel <=
|
|
36
|
+
if (logLevel <= logLevelMap.silent) {
|
|
36
37
|
return
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (state.totalPlugins > 0) {
|
|
43
|
-
const pluginStr =
|
|
44
|
-
state.failedPlugins > 0
|
|
45
|
-
? `Plugins ${styleText('green', state.completedPlugins.toString())}/${state.totalPlugins} ${styleText('red', `(${state.failedPlugins} failed)`)}`
|
|
46
|
-
: `Plugins ${styleText('green', state.completedPlugins.toString())}/${state.totalPlugins}`
|
|
47
|
-
parts.push(pluginStr)
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (state.totalFiles > 0) {
|
|
51
|
-
parts.push(`Files ${styleText('green', state.processedFiles.toString())}/${state.totalFiles}`)
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
if (parts.length > 0) {
|
|
55
|
-
parts.push(`${styleText('green', duration)} elapsed`)
|
|
56
|
-
console.log(getMessage(parts.join(styleText('dim', ' | '))))
|
|
40
|
+
const line = buildProgressLine(state)
|
|
41
|
+
if (line) {
|
|
42
|
+
console.log(getMessage(line))
|
|
57
43
|
}
|
|
58
44
|
}
|
|
59
45
|
|
|
60
46
|
function getMessage(message: string): string {
|
|
61
|
-
|
|
62
|
-
const timestamp = new Date().toLocaleTimeString('en-US', {
|
|
63
|
-
hour12: false,
|
|
64
|
-
hour: '2-digit',
|
|
65
|
-
minute: '2-digit',
|
|
66
|
-
second: '2-digit',
|
|
67
|
-
})
|
|
68
|
-
|
|
69
|
-
return [styleText('dim', `[${timestamp}]`), message].join(' ')
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return message
|
|
47
|
+
return formatMessage(message, logLevel)
|
|
73
48
|
}
|
|
74
49
|
|
|
75
50
|
function openGroup(name: string) {
|
|
@@ -81,7 +56,7 @@ export const githubActionsLogger = defineLogger({
|
|
|
81
56
|
}
|
|
82
57
|
|
|
83
58
|
context.on('info', (message, info = '') => {
|
|
84
|
-
if (logLevel <=
|
|
59
|
+
if (logLevel <= logLevelMap.silent) {
|
|
85
60
|
return
|
|
86
61
|
}
|
|
87
62
|
|
|
@@ -91,36 +66,36 @@ export const githubActionsLogger = defineLogger({
|
|
|
91
66
|
})
|
|
92
67
|
|
|
93
68
|
context.on('success', (message, info = '') => {
|
|
94
|
-
if (logLevel <=
|
|
69
|
+
if (logLevel <= logLevelMap.silent) {
|
|
95
70
|
return
|
|
96
71
|
}
|
|
97
72
|
|
|
98
|
-
const text = getMessage([styleText('blue', '✓'), message, logLevel >=
|
|
73
|
+
const text = getMessage([styleText('blue', '✓'), message, logLevel >= logLevelMap.info ? styleText('dim', info) : undefined].filter(Boolean).join(' '))
|
|
99
74
|
|
|
100
75
|
console.log(text)
|
|
101
76
|
})
|
|
102
77
|
|
|
103
78
|
context.on('warn', (message, info = '') => {
|
|
104
|
-
if (logLevel <=
|
|
79
|
+
if (logLevel <= logLevelMap.silent) {
|
|
105
80
|
return
|
|
106
81
|
}
|
|
107
82
|
|
|
108
|
-
const text = getMessage([styleText('yellow', '⚠'), message, logLevel >=
|
|
83
|
+
const text = getMessage([styleText('yellow', '⚠'), message, logLevel >= logLevelMap.info ? styleText('dim', info) : undefined].filter(Boolean).join(' '))
|
|
109
84
|
|
|
110
85
|
console.warn(`::warning::${text}`)
|
|
111
86
|
})
|
|
112
87
|
|
|
113
88
|
context.on('error', (error) => {
|
|
114
|
-
const caused = error
|
|
89
|
+
const caused = toCause(error)
|
|
115
90
|
|
|
116
|
-
if (logLevel <=
|
|
91
|
+
if (logLevel <= logLevelMap.silent) {
|
|
117
92
|
return
|
|
118
93
|
}
|
|
119
94
|
const message = error.message || String(error)
|
|
120
95
|
console.error(`::error::${message}`)
|
|
121
96
|
|
|
122
97
|
// Show stack trace in debug mode (first 3 frames)
|
|
123
|
-
if (logLevel >=
|
|
98
|
+
if (logLevel >= logLevelMap.debug && error.stack) {
|
|
124
99
|
const frames = error.stack.split('\n').slice(1, 4)
|
|
125
100
|
for (const frame of frames) {
|
|
126
101
|
console.log(getMessage(styleText('dim', frame.trim())))
|
|
@@ -143,7 +118,7 @@ export const githubActionsLogger = defineLogger({
|
|
|
143
118
|
})
|
|
144
119
|
|
|
145
120
|
context.on('config:start', () => {
|
|
146
|
-
if (logLevel <=
|
|
121
|
+
if (logLevel <= logLevelMap.silent) {
|
|
147
122
|
return
|
|
148
123
|
}
|
|
149
124
|
|
|
@@ -157,7 +132,7 @@ export const githubActionsLogger = defineLogger({
|
|
|
157
132
|
context.on('config:end', (configs) => {
|
|
158
133
|
state.currentConfigs = configs
|
|
159
134
|
|
|
160
|
-
if (logLevel <=
|
|
135
|
+
if (logLevel <= logLevelMap.silent) {
|
|
161
136
|
return
|
|
162
137
|
}
|
|
163
138
|
|
|
@@ -169,8 +144,10 @@ export const githubActionsLogger = defineLogger({
|
|
|
169
144
|
})
|
|
170
145
|
|
|
171
146
|
context.on('generation:start', (config) => {
|
|
172
|
-
|
|
173
|
-
|
|
147
|
+
reset()
|
|
148
|
+
|
|
149
|
+
// Initialize progress tracking for this generation
|
|
150
|
+
state.totalPlugins = config.plugins?.length ?? 0
|
|
174
151
|
|
|
175
152
|
const text = config.name ? `Generation for ${styleText('bold', config.name)}` : 'Generation'
|
|
176
153
|
|
|
@@ -181,12 +158,10 @@ export const githubActionsLogger = defineLogger({
|
|
|
181
158
|
if (state.currentConfigs.length === 1) {
|
|
182
159
|
console.log(getMessage(text))
|
|
183
160
|
}
|
|
184
|
-
|
|
185
|
-
reset()
|
|
186
161
|
})
|
|
187
162
|
|
|
188
163
|
context.on('plugin:start', (plugin) => {
|
|
189
|
-
if (logLevel <=
|
|
164
|
+
if (logLevel <= logLevelMap.silent) {
|
|
190
165
|
return
|
|
191
166
|
}
|
|
192
167
|
const text = getMessage(`Generating ${styleText('bold', plugin.name)}`)
|
|
@@ -199,7 +174,7 @@ export const githubActionsLogger = defineLogger({
|
|
|
199
174
|
})
|
|
200
175
|
|
|
201
176
|
context.on('plugin:end', (plugin, { duration, success }) => {
|
|
202
|
-
if (logLevel <=
|
|
177
|
+
if (logLevel <= logLevelMap.silent) {
|
|
203
178
|
return
|
|
204
179
|
}
|
|
205
180
|
|
|
@@ -230,7 +205,7 @@ export const githubActionsLogger = defineLogger({
|
|
|
230
205
|
})
|
|
231
206
|
|
|
232
207
|
context.on('files:processing:start', (files) => {
|
|
233
|
-
if (logLevel <=
|
|
208
|
+
if (logLevel <= logLevelMap.silent) {
|
|
234
209
|
return
|
|
235
210
|
}
|
|
236
211
|
|
|
@@ -246,7 +221,7 @@ export const githubActionsLogger = defineLogger({
|
|
|
246
221
|
})
|
|
247
222
|
|
|
248
223
|
context.on('files:processing:end', () => {
|
|
249
|
-
if (logLevel <=
|
|
224
|
+
if (logLevel <= logLevelMap.silent) {
|
|
250
225
|
return
|
|
251
226
|
}
|
|
252
227
|
const text = getMessage('Files written successfully')
|
|
@@ -256,25 +231,19 @@ export const githubActionsLogger = defineLogger({
|
|
|
256
231
|
if (state.currentConfigs.length === 1) {
|
|
257
232
|
closeGroup('File Generation')
|
|
258
233
|
}
|
|
234
|
+
|
|
235
|
+
// Show final progress step after files are written
|
|
236
|
+
showProgressStep()
|
|
259
237
|
})
|
|
260
238
|
|
|
261
239
|
context.on('file:processing:update', () => {
|
|
262
|
-
if (logLevel <=
|
|
240
|
+
if (logLevel <= logLevelMap.silent) {
|
|
263
241
|
return
|
|
264
242
|
}
|
|
265
243
|
|
|
266
244
|
state.processedFiles++
|
|
267
245
|
})
|
|
268
246
|
|
|
269
|
-
context.on('files:processing:end', () => {
|
|
270
|
-
if (logLevel <= LogLevel.silent) {
|
|
271
|
-
return
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
// Show final progress step after files are written
|
|
275
|
-
showProgressStep()
|
|
276
|
-
})
|
|
277
|
-
|
|
278
247
|
context.on('generation:end', (config) => {
|
|
279
248
|
const text = getMessage(
|
|
280
249
|
config.name ? `${styleText('blue', '✓')} Generation completed for ${styleText('dim', config.name)}` : `${styleText('blue', '✓')} Generation completed`,
|
|
@@ -284,7 +253,7 @@ export const githubActionsLogger = defineLogger({
|
|
|
284
253
|
})
|
|
285
254
|
|
|
286
255
|
context.on('format:start', () => {
|
|
287
|
-
if (logLevel <=
|
|
256
|
+
if (logLevel <= logLevelMap.silent) {
|
|
288
257
|
return
|
|
289
258
|
}
|
|
290
259
|
|
|
@@ -298,7 +267,7 @@ export const githubActionsLogger = defineLogger({
|
|
|
298
267
|
})
|
|
299
268
|
|
|
300
269
|
context.on('format:end', () => {
|
|
301
|
-
if (logLevel <=
|
|
270
|
+
if (logLevel <= logLevelMap.silent) {
|
|
302
271
|
return
|
|
303
272
|
}
|
|
304
273
|
|
|
@@ -312,7 +281,7 @@ export const githubActionsLogger = defineLogger({
|
|
|
312
281
|
})
|
|
313
282
|
|
|
314
283
|
context.on('lint:start', () => {
|
|
315
|
-
if (logLevel <=
|
|
284
|
+
if (logLevel <= logLevelMap.silent) {
|
|
316
285
|
return
|
|
317
286
|
}
|
|
318
287
|
|
|
@@ -326,7 +295,7 @@ export const githubActionsLogger = defineLogger({
|
|
|
326
295
|
})
|
|
327
296
|
|
|
328
297
|
context.on('lint:end', () => {
|
|
329
|
-
if (logLevel <=
|
|
298
|
+
if (logLevel <= logLevelMap.silent) {
|
|
330
299
|
return
|
|
331
300
|
}
|
|
332
301
|
|
|
@@ -340,14 +309,13 @@ export const githubActionsLogger = defineLogger({
|
|
|
340
309
|
})
|
|
341
310
|
|
|
342
311
|
context.on('hook:start', async ({ id, command, args }) => {
|
|
343
|
-
const commandWithArgs =
|
|
312
|
+
const commandWithArgs = formatCommandWithArgs(command, args)
|
|
344
313
|
const text = getMessage(`Hook ${styleText('dim', commandWithArgs)} started`)
|
|
345
314
|
|
|
346
|
-
if (logLevel >
|
|
315
|
+
if (logLevel > logLevelMap.silent) {
|
|
347
316
|
if (state.currentConfigs.length === 1) {
|
|
348
317
|
openGroup(`Hook ${commandWithArgs}`)
|
|
349
318
|
}
|
|
350
|
-
|
|
351
319
|
console.log(text)
|
|
352
320
|
}
|
|
353
321
|
|
|
@@ -356,65 +324,26 @@ export const githubActionsLogger = defineLogger({
|
|
|
356
324
|
return
|
|
357
325
|
}
|
|
358
326
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
console.log(result.stdout.trimEnd())
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
await context.emit('hook:end', {
|
|
375
|
-
command,
|
|
376
|
-
args,
|
|
377
|
-
id,
|
|
378
|
-
success: true,
|
|
379
|
-
error: null,
|
|
380
|
-
})
|
|
381
|
-
} catch (err) {
|
|
382
|
-
const error = err as NonZeroExitError
|
|
383
|
-
const stderr = error.output?.stderr ?? ''
|
|
384
|
-
const stdout = error.output?.stdout ?? ''
|
|
385
|
-
|
|
386
|
-
await context.emit('debug', {
|
|
387
|
-
date: new Date(),
|
|
388
|
-
logs: [stdout, stderr].filter(Boolean),
|
|
389
|
-
})
|
|
390
|
-
|
|
391
|
-
// Display stderr/stdout in GitHub Actions format
|
|
392
|
-
if (stderr) {
|
|
393
|
-
console.error(`::error::${stderr}`)
|
|
394
|
-
}
|
|
395
|
-
if (stdout) {
|
|
396
|
-
console.log(stdout)
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
const errorMessage = new Error(`Hook execute failed: ${commandWithArgs}`)
|
|
400
|
-
|
|
401
|
-
await context.emit('hook:end', {
|
|
402
|
-
command,
|
|
403
|
-
args,
|
|
404
|
-
id,
|
|
405
|
-
success: false,
|
|
406
|
-
error: errorMessage,
|
|
407
|
-
})
|
|
408
|
-
await context.emit('error', errorMessage)
|
|
409
|
-
}
|
|
327
|
+
await runHook({
|
|
328
|
+
id,
|
|
329
|
+
command,
|
|
330
|
+
args,
|
|
331
|
+
commandWithArgs,
|
|
332
|
+
context,
|
|
333
|
+
sink: {
|
|
334
|
+
// GHA formats errors with the ::error:: annotation
|
|
335
|
+
onStdout: logLevel > logLevelMap.silent ? (s) => console.log(s) : undefined,
|
|
336
|
+
onStderr: logLevel > logLevelMap.silent ? (s) => console.error(`::error::${s}`) : undefined,
|
|
337
|
+
},
|
|
338
|
+
})
|
|
410
339
|
})
|
|
411
340
|
|
|
412
341
|
context.on('hook:end', ({ command, args }) => {
|
|
413
|
-
if (logLevel <=
|
|
342
|
+
if (logLevel <= logLevelMap.silent) {
|
|
414
343
|
return
|
|
415
344
|
}
|
|
416
345
|
|
|
417
|
-
const commandWithArgs =
|
|
346
|
+
const commandWithArgs = formatCommandWithArgs(command, args)
|
|
418
347
|
const text = getMessage(`Hook ${styleText('dim', commandWithArgs)} completed`)
|
|
419
348
|
|
|
420
349
|
console.log(text)
|
|
@@ -425,7 +354,7 @@ export const githubActionsLogger = defineLogger({
|
|
|
425
354
|
})
|
|
426
355
|
|
|
427
356
|
context.on('generation:summary', (config, { status, hrStart, failedPlugins }) => {
|
|
428
|
-
const pluginsCount = config.plugins?.length
|
|
357
|
+
const pluginsCount = config.plugins?.length ?? 0
|
|
429
358
|
const successCount = pluginsCount - failedPlugins.size
|
|
430
359
|
const duration = formatHrtime(hrStart)
|
|
431
360
|
|
|
@@ -443,5 +372,9 @@ export const githubActionsLogger = defineLogger({
|
|
|
443
372
|
closeGroup(config.name ? `Generation for ${styleText('bold', config.name)}` : 'Generation')
|
|
444
373
|
}
|
|
445
374
|
})
|
|
375
|
+
|
|
376
|
+
context.on('lifecycle:end', () => {
|
|
377
|
+
reset()
|
|
378
|
+
})
|
|
446
379
|
},
|
|
447
380
|
})
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { relative } from 'node:path'
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { formatMs, toCause } from '@internals/utils'
|
|
3
|
+
import { defineLogger, logLevel as logLevelMap } from '@kubb/core'
|
|
4
|
+
import { SUMMARY_SEPARATOR } from '../constants.ts'
|
|
5
5
|
import { getSummary } from '../utils/getSummary.ts'
|
|
6
|
+
import { runHook } from '../utils/runHook.ts'
|
|
7
|
+
import { formatCommandWithArgs, formatMessage } from './utils.ts'
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
10
|
* Plain console adapter for non-TTY environments
|
|
@@ -11,25 +13,14 @@ import { getSummary } from '../utils/getSummary.ts'
|
|
|
11
13
|
export const plainLogger = defineLogger({
|
|
12
14
|
name: 'plain',
|
|
13
15
|
install(context, options) {
|
|
14
|
-
const logLevel = options?.logLevel
|
|
16
|
+
const logLevel = options?.logLevel ?? logLevelMap.info
|
|
15
17
|
|
|
16
18
|
function getMessage(message: string): string {
|
|
17
|
-
|
|
18
|
-
const timestamp = new Date().toLocaleTimeString('en-US', {
|
|
19
|
-
hour12: false,
|
|
20
|
-
hour: '2-digit',
|
|
21
|
-
minute: '2-digit',
|
|
22
|
-
second: '2-digit',
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
return [`[${timestamp}]`, message].join(' ')
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return message
|
|
19
|
+
return formatMessage(message, logLevel)
|
|
29
20
|
}
|
|
30
21
|
|
|
31
22
|
context.on('info', (message, info) => {
|
|
32
|
-
if (logLevel <=
|
|
23
|
+
if (logLevel <= logLevelMap.silent) {
|
|
33
24
|
return
|
|
34
25
|
}
|
|
35
26
|
|
|
@@ -39,34 +30,34 @@ export const plainLogger = defineLogger({
|
|
|
39
30
|
})
|
|
40
31
|
|
|
41
32
|
context.on('success', (message, info = '') => {
|
|
42
|
-
if (logLevel <=
|
|
33
|
+
if (logLevel <= logLevelMap.silent) {
|
|
43
34
|
return
|
|
44
35
|
}
|
|
45
36
|
|
|
46
|
-
const text = getMessage(['✓', message, logLevel >=
|
|
37
|
+
const text = getMessage(['✓', message, logLevel >= logLevelMap.info ? info : undefined].filter(Boolean).join(' '))
|
|
47
38
|
|
|
48
39
|
console.log(text)
|
|
49
40
|
})
|
|
50
41
|
|
|
51
42
|
context.on('warn', (message, info) => {
|
|
52
|
-
if (logLevel <
|
|
43
|
+
if (logLevel < logLevelMap.warn) {
|
|
53
44
|
return
|
|
54
45
|
}
|
|
55
46
|
|
|
56
|
-
const text = getMessage(['⚠', message, logLevel >=
|
|
47
|
+
const text = getMessage(['⚠', message, logLevel >= logLevelMap.info ? info : undefined].filter(Boolean).join(' '))
|
|
57
48
|
|
|
58
49
|
console.log(text)
|
|
59
50
|
})
|
|
60
51
|
|
|
61
52
|
context.on('error', (error) => {
|
|
62
|
-
const caused = error
|
|
53
|
+
const caused = toCause(error)
|
|
63
54
|
|
|
64
55
|
const text = getMessage(['✗', error.message].join(' '))
|
|
65
56
|
|
|
66
57
|
console.log(text)
|
|
67
58
|
|
|
68
59
|
// Show stack trace in debug mode (first 3 frames)
|
|
69
|
-
if (logLevel >=
|
|
60
|
+
if (logLevel >= logLevelMap.debug && error.stack) {
|
|
70
61
|
const frames = error.stack.split('\n').slice(1, 4)
|
|
71
62
|
for (const frame of frames) {
|
|
72
63
|
console.log(getMessage(frame.trim()))
|
|
@@ -88,7 +79,7 @@ export const plainLogger = defineLogger({
|
|
|
88
79
|
})
|
|
89
80
|
|
|
90
81
|
context.on('config:start', () => {
|
|
91
|
-
if (logLevel <=
|
|
82
|
+
if (logLevel <= logLevelMap.silent) {
|
|
92
83
|
return
|
|
93
84
|
}
|
|
94
85
|
|
|
@@ -98,7 +89,7 @@ export const plainLogger = defineLogger({
|
|
|
98
89
|
})
|
|
99
90
|
|
|
100
91
|
context.on('config:end', () => {
|
|
101
|
-
if (logLevel <=
|
|
92
|
+
if (logLevel <= logLevelMap.silent) {
|
|
102
93
|
return
|
|
103
94
|
}
|
|
104
95
|
|
|
@@ -108,13 +99,13 @@ export const plainLogger = defineLogger({
|
|
|
108
99
|
})
|
|
109
100
|
|
|
110
101
|
context.on('generation:start', () => {
|
|
111
|
-
const text = getMessage('
|
|
102
|
+
const text = getMessage('Generation started')
|
|
112
103
|
|
|
113
104
|
console.log(text)
|
|
114
105
|
})
|
|
115
106
|
|
|
116
107
|
context.on('plugin:start', (plugin) => {
|
|
117
|
-
if (logLevel <=
|
|
108
|
+
if (logLevel <= logLevelMap.silent) {
|
|
118
109
|
return
|
|
119
110
|
}
|
|
120
111
|
const text = getMessage(`Generating ${plugin.name}`)
|
|
@@ -123,7 +114,7 @@ export const plainLogger = defineLogger({
|
|
|
123
114
|
})
|
|
124
115
|
|
|
125
116
|
context.on('plugin:end', (plugin, { duration, success }) => {
|
|
126
|
-
if (logLevel <=
|
|
117
|
+
if (logLevel <= logLevelMap.silent) {
|
|
127
118
|
return
|
|
128
119
|
}
|
|
129
120
|
|
|
@@ -134,7 +125,7 @@ export const plainLogger = defineLogger({
|
|
|
134
125
|
})
|
|
135
126
|
|
|
136
127
|
context.on('files:processing:start', (files) => {
|
|
137
|
-
if (logLevel <=
|
|
128
|
+
if (logLevel <= logLevelMap.silent) {
|
|
138
129
|
return
|
|
139
130
|
}
|
|
140
131
|
|
|
@@ -144,7 +135,7 @@ export const plainLogger = defineLogger({
|
|
|
144
135
|
})
|
|
145
136
|
|
|
146
137
|
context.on('file:processing:update', ({ file, config }) => {
|
|
147
|
-
if (logLevel <=
|
|
138
|
+
if (logLevel <= logLevelMap.silent) {
|
|
148
139
|
return
|
|
149
140
|
}
|
|
150
141
|
|
|
@@ -154,7 +145,7 @@ export const plainLogger = defineLogger({
|
|
|
154
145
|
})
|
|
155
146
|
|
|
156
147
|
context.on('files:processing:end', () => {
|
|
157
|
-
if (logLevel <=
|
|
148
|
+
if (logLevel <= logLevelMap.silent) {
|
|
158
149
|
return
|
|
159
150
|
}
|
|
160
151
|
|
|
@@ -170,7 +161,7 @@ export const plainLogger = defineLogger({
|
|
|
170
161
|
})
|
|
171
162
|
|
|
172
163
|
context.on('format:start', () => {
|
|
173
|
-
if (logLevel <=
|
|
164
|
+
if (logLevel <= logLevelMap.silent) {
|
|
174
165
|
return
|
|
175
166
|
}
|
|
176
167
|
|
|
@@ -180,7 +171,7 @@ export const plainLogger = defineLogger({
|
|
|
180
171
|
})
|
|
181
172
|
|
|
182
173
|
context.on('format:end', () => {
|
|
183
|
-
if (logLevel <=
|
|
174
|
+
if (logLevel <= logLevelMap.silent) {
|
|
184
175
|
return
|
|
185
176
|
}
|
|
186
177
|
|
|
@@ -190,7 +181,7 @@ export const plainLogger = defineLogger({
|
|
|
190
181
|
})
|
|
191
182
|
|
|
192
183
|
context.on('lint:start', () => {
|
|
193
|
-
if (logLevel <=
|
|
184
|
+
if (logLevel <= logLevelMap.silent) {
|
|
194
185
|
return
|
|
195
186
|
}
|
|
196
187
|
|
|
@@ -200,7 +191,7 @@ export const plainLogger = defineLogger({
|
|
|
200
191
|
})
|
|
201
192
|
|
|
202
193
|
context.on('lint:end', () => {
|
|
203
|
-
if (logLevel <=
|
|
194
|
+
if (logLevel <= logLevelMap.silent) {
|
|
204
195
|
return
|
|
205
196
|
}
|
|
206
197
|
|
|
@@ -210,10 +201,10 @@ export const plainLogger = defineLogger({
|
|
|
210
201
|
})
|
|
211
202
|
|
|
212
203
|
context.on('hook:start', async ({ id, command, args }) => {
|
|
213
|
-
const commandWithArgs =
|
|
204
|
+
const commandWithArgs = formatCommandWithArgs(command, args)
|
|
214
205
|
const text = getMessage(`Hook ${commandWithArgs} started`)
|
|
215
206
|
|
|
216
|
-
if (logLevel >
|
|
207
|
+
if (logLevel > logLevelMap.silent) {
|
|
217
208
|
console.log(text)
|
|
218
209
|
}
|
|
219
210
|
|
|
@@ -222,64 +213,25 @@ export const plainLogger = defineLogger({
|
|
|
222
213
|
return
|
|
223
214
|
}
|
|
224
215
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
if (logLevel > LogLevel.silent) {
|
|
237
|
-
console.log(result.stdout.trimEnd())
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
await context.emit('hook:end', {
|
|
241
|
-
command,
|
|
242
|
-
args,
|
|
243
|
-
id,
|
|
244
|
-
success: true,
|
|
245
|
-
error: null,
|
|
246
|
-
})
|
|
247
|
-
} catch (err) {
|
|
248
|
-
const error = err as NonZeroExitError
|
|
249
|
-
const stderr = error.output?.stderr ?? ''
|
|
250
|
-
const stdout = error.output?.stdout ?? ''
|
|
251
|
-
|
|
252
|
-
await context.emit('debug', {
|
|
253
|
-
date: new Date(),
|
|
254
|
-
logs: [stdout, stderr].filter(Boolean),
|
|
255
|
-
})
|
|
256
|
-
|
|
257
|
-
if (stderr) {
|
|
258
|
-
console.error(stderr)
|
|
259
|
-
}
|
|
260
|
-
if (stdout) {
|
|
261
|
-
console.log(stdout)
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
const errorMessage = new Error(`Hook execute failed: ${commandWithArgs}`)
|
|
265
|
-
|
|
266
|
-
await context.emit('hook:end', {
|
|
267
|
-
command,
|
|
268
|
-
args,
|
|
269
|
-
id,
|
|
270
|
-
success: false,
|
|
271
|
-
error: errorMessage,
|
|
272
|
-
})
|
|
273
|
-
await context.emit('error', errorMessage)
|
|
274
|
-
}
|
|
216
|
+
await runHook({
|
|
217
|
+
id,
|
|
218
|
+
command,
|
|
219
|
+
args,
|
|
220
|
+
commandWithArgs,
|
|
221
|
+
context,
|
|
222
|
+
sink: {
|
|
223
|
+
onStdout: logLevel > logLevelMap.silent ? (s) => console.log(s) : undefined,
|
|
224
|
+
onStderr: logLevel > logLevelMap.silent ? (s) => console.error(s) : undefined,
|
|
225
|
+
},
|
|
226
|
+
})
|
|
275
227
|
})
|
|
276
228
|
|
|
277
229
|
context.on('hook:end', ({ command, args }) => {
|
|
278
|
-
if (logLevel <=
|
|
230
|
+
if (logLevel <= logLevelMap.silent) {
|
|
279
231
|
return
|
|
280
232
|
}
|
|
281
233
|
|
|
282
|
-
const commandWithArgs =
|
|
234
|
+
const commandWithArgs = formatCommandWithArgs(command, args)
|
|
283
235
|
const text = getMessage(`Hook ${commandWithArgs} completed`)
|
|
284
236
|
|
|
285
237
|
console.log(text)
|
|
@@ -292,12 +244,12 @@ export const plainLogger = defineLogger({
|
|
|
292
244
|
config,
|
|
293
245
|
status,
|
|
294
246
|
hrStart,
|
|
295
|
-
pluginTimings: logLevel >=
|
|
247
|
+
pluginTimings: logLevel >= logLevelMap.verbose ? pluginTimings : undefined,
|
|
296
248
|
})
|
|
297
249
|
|
|
298
|
-
console.log(
|
|
250
|
+
console.log(SUMMARY_SEPARATOR)
|
|
299
251
|
console.log(summary.join('\n'))
|
|
300
|
-
console.log(
|
|
252
|
+
console.log(SUMMARY_SEPARATOR)
|
|
301
253
|
})
|
|
302
254
|
},
|
|
303
255
|
})
|