@mistweaverco/kulala-cli 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +68 -45
- package/dist/install-backend.cjs +52 -41
- package/package.json +1 -1
package/dist/cli.cjs
CHANGED
|
@@ -46,7 +46,7 @@ node_readline = __toESM(node_readline, 1);
|
|
|
46
46
|
let node_async_hooks = require("node:async_hooks");
|
|
47
47
|
var package_default = {
|
|
48
48
|
name: "@mistweaverco/kulala-cli",
|
|
49
|
-
version: "0.
|
|
49
|
+
version: "0.10.0",
|
|
50
50
|
repository: {
|
|
51
51
|
"type": "git",
|
|
52
52
|
"url": "https://github.com/mistweaverco/kulala-cli"
|
|
@@ -3473,6 +3473,60 @@ function fileWalker(inputPath, extensions) {
|
|
|
3473
3473
|
return filePaths;
|
|
3474
3474
|
}
|
|
3475
3475
|
//#endregion
|
|
3476
|
+
//#region src/lib/spinner.ts
|
|
3477
|
+
var SPINNER_FRAMES = [
|
|
3478
|
+
"⠋",
|
|
3479
|
+
"⠙",
|
|
3480
|
+
"⠹",
|
|
3481
|
+
"⠸",
|
|
3482
|
+
"⠼",
|
|
3483
|
+
"⠴",
|
|
3484
|
+
"⠦",
|
|
3485
|
+
"⠧",
|
|
3486
|
+
"⠇",
|
|
3487
|
+
"⠏"
|
|
3488
|
+
];
|
|
3489
|
+
function isInteractiveTerminal() {
|
|
3490
|
+
return process.stderr.isTTY === true;
|
|
3491
|
+
}
|
|
3492
|
+
function createSpinner() {
|
|
3493
|
+
let timer;
|
|
3494
|
+
let frame = 0;
|
|
3495
|
+
let message = "";
|
|
3496
|
+
const stop = () => {
|
|
3497
|
+
if (timer) {
|
|
3498
|
+
clearInterval(timer);
|
|
3499
|
+
timer = void 0;
|
|
3500
|
+
}
|
|
3501
|
+
if (isInteractiveTerminal()) process.stderr.write("\r\x1B[K");
|
|
3502
|
+
};
|
|
3503
|
+
return {
|
|
3504
|
+
start(msg) {
|
|
3505
|
+
message = msg;
|
|
3506
|
+
if (!isInteractiveTerminal()) {
|
|
3507
|
+
console.error(message);
|
|
3508
|
+
return;
|
|
3509
|
+
}
|
|
3510
|
+
const render = () => {
|
|
3511
|
+
process.stderr.write(`\r${SPINNER_FRAMES[frame]} ${message}`);
|
|
3512
|
+
frame = (frame + 1) % SPINNER_FRAMES.length;
|
|
3513
|
+
};
|
|
3514
|
+
render();
|
|
3515
|
+
timer = setInterval(render, 80);
|
|
3516
|
+
},
|
|
3517
|
+
stop
|
|
3518
|
+
};
|
|
3519
|
+
}
|
|
3520
|
+
async function withSpinner(message, fn) {
|
|
3521
|
+
const spinner = createSpinner();
|
|
3522
|
+
spinner.start(message);
|
|
3523
|
+
try {
|
|
3524
|
+
return await fn();
|
|
3525
|
+
} finally {
|
|
3526
|
+
spinner.stop();
|
|
3527
|
+
}
|
|
3528
|
+
}
|
|
3529
|
+
//#endregion
|
|
3476
3530
|
//#region src/versions/backend.ts
|
|
3477
3531
|
var KULALA_CORE_VERSION = "0.24.4";
|
|
3478
3532
|
//#endregion
|
|
@@ -3517,52 +3571,18 @@ function versionMatches() {
|
|
|
3517
3571
|
function makeExecutable(filePath) {
|
|
3518
3572
|
if (process.platform !== "win32") (0, fs.chmodSync)(filePath, 493);
|
|
3519
3573
|
}
|
|
3520
|
-
var SPINNER_FRAMES = [
|
|
3521
|
-
"⠋",
|
|
3522
|
-
"⠙",
|
|
3523
|
-
"⠹",
|
|
3524
|
-
"⠸",
|
|
3525
|
-
"⠼",
|
|
3526
|
-
"⠴",
|
|
3527
|
-
"⠦",
|
|
3528
|
-
"⠧",
|
|
3529
|
-
"⠇",
|
|
3530
|
-
"⠏"
|
|
3531
|
-
];
|
|
3532
|
-
function isInteractiveTerminal() {
|
|
3533
|
-
return process.stderr.isTTY === true;
|
|
3534
|
-
}
|
|
3535
3574
|
function createDownloadProgress() {
|
|
3536
|
-
|
|
3537
|
-
let frame = 0;
|
|
3538
|
-
let message = "";
|
|
3539
|
-
const clearLine = () => {
|
|
3540
|
-
if (timer) {
|
|
3541
|
-
clearInterval(timer);
|
|
3542
|
-
timer = void 0;
|
|
3543
|
-
}
|
|
3544
|
-
if (isInteractiveTerminal()) process.stderr.write("\r\x1B[K");
|
|
3545
|
-
};
|
|
3575
|
+
const spinner = createSpinner();
|
|
3546
3576
|
return {
|
|
3547
|
-
start(
|
|
3548
|
-
message
|
|
3549
|
-
if (!isInteractiveTerminal()) {
|
|
3550
|
-
console.error(message);
|
|
3551
|
-
return;
|
|
3552
|
-
}
|
|
3553
|
-
const render = () => {
|
|
3554
|
-
process.stderr.write(`\r${SPINNER_FRAMES[frame]} ${message}`);
|
|
3555
|
-
frame = (frame + 1) % SPINNER_FRAMES.length;
|
|
3556
|
-
};
|
|
3557
|
-
render();
|
|
3558
|
-
timer = setInterval(render, 80);
|
|
3577
|
+
start(message) {
|
|
3578
|
+
spinner.start(message);
|
|
3559
3579
|
},
|
|
3560
|
-
succeed(
|
|
3561
|
-
|
|
3562
|
-
console.error(
|
|
3580
|
+
succeed(message) {
|
|
3581
|
+
spinner.stop();
|
|
3582
|
+
console.error(message);
|
|
3563
3583
|
},
|
|
3564
3584
|
fail() {
|
|
3565
|
-
|
|
3585
|
+
spinner.stop();
|
|
3566
3586
|
}
|
|
3567
3587
|
};
|
|
3568
3588
|
}
|
|
@@ -67536,7 +67556,7 @@ async function runFileWithPromptRetry(relativePath, env, limit, halt, output, de
|
|
|
67536
67556
|
limit,
|
|
67537
67557
|
haltOnError: halt
|
|
67538
67558
|
};
|
|
67539
|
-
const response = await kulalaCore.runHttp(runOptions, { cwd });
|
|
67559
|
+
const response = isInteractiveTerminal() ? await withSpinner(`Running requests in file ${relativePath}`, () => kulalaCore.runHttp(runOptions, { cwd })) : await kulalaCore.runHttp(runOptions, { cwd });
|
|
67540
67560
|
const promptItem = response.type === "responses" ? findFirstPromptItem(response) : void 0;
|
|
67541
67561
|
if (!promptItem) {
|
|
67542
67562
|
const final = mergeRunResponses(accumulated, response);
|
|
@@ -67567,7 +67587,10 @@ async function runFileWithPromptRetry(relativePath, env, limit, halt, output, de
|
|
|
67567
67587
|
outputStreamed: shouldStreamOutput(output)
|
|
67568
67588
|
};
|
|
67569
67589
|
}
|
|
67570
|
-
const continued = await kulalaCore.continueHttp({
|
|
67590
|
+
const continued = isInteractiveTerminal() ? await withSpinner(`Running requests in file ${relativePath}`, () => kulalaCore.continueHttp({
|
|
67591
|
+
promptId: promptItem.promptId,
|
|
67592
|
+
inputs
|
|
67593
|
+
}, { cwd })) : await kulalaCore.continueHttp({
|
|
67571
67594
|
promptId: promptItem.promptId,
|
|
67572
67595
|
inputs
|
|
67573
67596
|
}, { cwd });
|
|
@@ -67665,7 +67688,7 @@ async function curl(argv, options = {}) {
|
|
|
67665
67688
|
console.error(" kulala curl -H \"Accept: application/json\" https://echo.kulala.app/get");
|
|
67666
67689
|
process.exit(1);
|
|
67667
67690
|
}
|
|
67668
|
-
const response = await kulalaCore.curl({ argv: curlArgv });
|
|
67691
|
+
const response = isInteractiveTerminal() ? await withSpinner("Running request", () => kulalaCore.curl({ argv: curlArgv })) : await kulalaCore.curl({ argv: curlArgv });
|
|
67669
67692
|
const result = {
|
|
67670
67693
|
filepath: formatCurlLabel(curlArgv),
|
|
67671
67694
|
response
|
package/dist/install-backend.cjs
CHANGED
|
@@ -28,6 +28,51 @@ fs = __toESM(fs, 1);
|
|
|
28
28
|
let path = require("path");
|
|
29
29
|
path = __toESM(path, 1);
|
|
30
30
|
let stream_promises = require("stream/promises");
|
|
31
|
+
//#region src/lib/spinner.ts
|
|
32
|
+
var SPINNER_FRAMES = [
|
|
33
|
+
"⠋",
|
|
34
|
+
"⠙",
|
|
35
|
+
"⠹",
|
|
36
|
+
"⠸",
|
|
37
|
+
"⠼",
|
|
38
|
+
"⠴",
|
|
39
|
+
"⠦",
|
|
40
|
+
"⠧",
|
|
41
|
+
"⠇",
|
|
42
|
+
"⠏"
|
|
43
|
+
];
|
|
44
|
+
function isInteractiveTerminal() {
|
|
45
|
+
return process.stderr.isTTY === true;
|
|
46
|
+
}
|
|
47
|
+
function createSpinner() {
|
|
48
|
+
let timer;
|
|
49
|
+
let frame = 0;
|
|
50
|
+
let message = "";
|
|
51
|
+
const stop = () => {
|
|
52
|
+
if (timer) {
|
|
53
|
+
clearInterval(timer);
|
|
54
|
+
timer = void 0;
|
|
55
|
+
}
|
|
56
|
+
if (isInteractiveTerminal()) process.stderr.write("\r\x1B[K");
|
|
57
|
+
};
|
|
58
|
+
return {
|
|
59
|
+
start(msg) {
|
|
60
|
+
message = msg;
|
|
61
|
+
if (!isInteractiveTerminal()) {
|
|
62
|
+
console.error(message);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const render = () => {
|
|
66
|
+
process.stderr.write(`\r${SPINNER_FRAMES[frame]} ${message}`);
|
|
67
|
+
frame = (frame + 1) % SPINNER_FRAMES.length;
|
|
68
|
+
};
|
|
69
|
+
render();
|
|
70
|
+
timer = setInterval(render, 80);
|
|
71
|
+
},
|
|
72
|
+
stop
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//#endregion
|
|
31
76
|
//#region src/versions/backend.ts
|
|
32
77
|
var KULALA_CORE_VERSION = "0.24.4";
|
|
33
78
|
//#endregion
|
|
@@ -72,52 +117,18 @@ function versionMatches() {
|
|
|
72
117
|
function makeExecutable(filePath) {
|
|
73
118
|
if (process.platform !== "win32") (0, fs.chmodSync)(filePath, 493);
|
|
74
119
|
}
|
|
75
|
-
var SPINNER_FRAMES = [
|
|
76
|
-
"⠋",
|
|
77
|
-
"⠙",
|
|
78
|
-
"⠹",
|
|
79
|
-
"⠸",
|
|
80
|
-
"⠼",
|
|
81
|
-
"⠴",
|
|
82
|
-
"⠦",
|
|
83
|
-
"⠧",
|
|
84
|
-
"⠇",
|
|
85
|
-
"⠏"
|
|
86
|
-
];
|
|
87
|
-
function isInteractiveTerminal() {
|
|
88
|
-
return process.stderr.isTTY === true;
|
|
89
|
-
}
|
|
90
120
|
function createDownloadProgress() {
|
|
91
|
-
|
|
92
|
-
let frame = 0;
|
|
93
|
-
let message = "";
|
|
94
|
-
const clearLine = () => {
|
|
95
|
-
if (timer) {
|
|
96
|
-
clearInterval(timer);
|
|
97
|
-
timer = void 0;
|
|
98
|
-
}
|
|
99
|
-
if (isInteractiveTerminal()) process.stderr.write("\r\x1B[K");
|
|
100
|
-
};
|
|
121
|
+
const spinner = createSpinner();
|
|
101
122
|
return {
|
|
102
|
-
start(
|
|
103
|
-
message
|
|
104
|
-
if (!isInteractiveTerminal()) {
|
|
105
|
-
console.error(message);
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
const render = () => {
|
|
109
|
-
process.stderr.write(`\r${SPINNER_FRAMES[frame]} ${message}`);
|
|
110
|
-
frame = (frame + 1) % SPINNER_FRAMES.length;
|
|
111
|
-
};
|
|
112
|
-
render();
|
|
113
|
-
timer = setInterval(render, 80);
|
|
123
|
+
start(message) {
|
|
124
|
+
spinner.start(message);
|
|
114
125
|
},
|
|
115
|
-
succeed(
|
|
116
|
-
|
|
117
|
-
console.error(
|
|
126
|
+
succeed(message) {
|
|
127
|
+
spinner.stop();
|
|
128
|
+
console.error(message);
|
|
118
129
|
},
|
|
119
130
|
fail() {
|
|
120
|
-
|
|
131
|
+
spinner.stop();
|
|
121
132
|
}
|
|
122
133
|
};
|
|
123
134
|
}
|