terse-cli 0.1.34 → 0.1.36
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/dist/api.d.ts +1 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +1 -1
- package/dist/api.js.map +1 -1
- package/dist/cliVersion.d.ts +3 -0
- package/dist/cliVersion.d.ts.map +1 -0
- package/dist/cliVersion.js +13 -0
- package/dist/cliVersion.js.map +1 -0
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +2 -0
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/deployTheme.d.ts +28 -0
- package/dist/commands/deployTheme.d.ts.map +1 -0
- package/dist/commands/deployTheme.js +68 -0
- package/dist/commands/deployTheme.js.map +1 -0
- package/dist/commands/dev.d.ts +3 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +47 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/integrate.d.ts.map +1 -1
- package/dist/commands/integrate.js +197 -60
- package/dist/commands/integrate.js.map +1 -1
- package/dist/commands/serve.d.ts +1 -0
- package/dist/commands/serve.d.ts.map +1 -0
- package/dist/commands/serve.js +2 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/commands/terseCliTheme.d.ts +28 -0
- package/dist/commands/terseCliTheme.d.ts.map +1 -0
- package/dist/commands/terseCliTheme.js +68 -0
- package/dist/commands/terseCliTheme.js.map +1 -0
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +80 -16
- package/dist/commands/test.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/integrationApi.d.ts +5 -2
- package/dist/integrationApi.d.ts.map +1 -1
- package/dist/integrationApi.js +8 -4
- package/dist/integrationApi.js.map +1 -1
- package/dist/perf.d.ts +9 -0
- package/dist/perf.d.ts.map +1 -0
- package/dist/perf.js +59 -0
- package/dist/perf.js.map +1 -0
- package/dist/providers/codegen.test.d.ts +2 -0
- package/dist/providers/codegen.test.d.ts.map +1 -0
- package/dist/providers/codegen.test.js +45 -0
- package/dist/providers/codegen.test.js.map +1 -0
- package/dist/providers/python/PythonProvider.test.d.ts +2 -0
- package/dist/providers/python/PythonProvider.test.d.ts.map +1 -0
- package/dist/providers/python/PythonProvider.test.js +169 -0
- package/dist/providers/python/PythonProvider.test.js.map +1 -0
- package/dist/providers/typescript/prepareCodegenData.test.d.ts +2 -0
- package/dist/providers/typescript/prepareCodegenData.test.d.ts.map +1 -0
- package/dist/providers/typescript/prepareCodegenData.test.js +54 -0
- package/dist/providers/typescript/prepareCodegenData.test.js.map +1 -0
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +36 -12
- package/dist/run.js.map +1 -1
- package/dist/shared/ToolDisplayUtils.js +1 -1
- package/dist/shared/ToolDisplayUtils.js.map +1 -1
- package/package.json +3 -3
- package/templates/typescript/init/package.json.hbs +2 -1
- package/dist/jsonOutput.d.ts +0 -19
- package/dist/jsonOutput.d.ts.map +0 -1
- package/dist/jsonOutput.js +0 -25
- package/dist/jsonOutput.js.map +0 -1
- package/dist/replay.d.ts +0 -3
- package/dist/replay.d.ts.map +0 -1
- package/dist/replay.js +0 -20
- package/dist/replay.js.map +0 -1
- package/dist/urls.d.ts +0 -3
- package/dist/urls.d.ts.map +0 -1
- package/dist/urls.js +0 -27
- package/dist/urls.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { intro, log, outro } from "@clack/prompts";
|
|
2
|
-
import {
|
|
1
|
+
import { cancel, confirm, group, intro, isCancel, log, outro, password, select, text } from "@clack/prompts";
|
|
2
|
+
import { input } from "@inquirer/prompts";
|
|
3
3
|
import chalk from "chalk";
|
|
4
4
|
import { INTEGRATION_METADATA, IntegrationType } from "terse-types";
|
|
5
5
|
import { readApiKey, readApiKeyOrBail } from "../api.js";
|
|
6
6
|
import { createSpinner, formatSummaryList } from "../cliUi.js";
|
|
7
|
-
import { fetchInstallationUrl, fetchIntegrationFields, fetchIntegrations, pollForConnection, submitIntegrationForm } from "../integrationApi.js";
|
|
7
|
+
import { disconnectIntegration, fetchInstallationUrl, fetchIntegrationFields, fetchIntegrations, pollForConnection, submitIntegrationForm } from "../integrationApi.js";
|
|
8
8
|
import { openUrlInBrowser } from "../openBrowser.js";
|
|
9
9
|
import { generate } from "./generate.js";
|
|
10
10
|
export async function integrate(options = {}) {
|
|
@@ -19,7 +19,10 @@ export async function integrate(options = {}) {
|
|
|
19
19
|
while (continueLoop) {
|
|
20
20
|
const result = await connectOneIntegration(apiKey);
|
|
21
21
|
didChangeAnyIntegration = didChangeAnyIntegration || result.status !== "unchanged";
|
|
22
|
-
continueLoop = await confirm({
|
|
22
|
+
continueLoop = abortIfCancelled(await confirm({
|
|
23
|
+
message: "Connect another integration?",
|
|
24
|
+
initialValue: false
|
|
25
|
+
}));
|
|
23
26
|
}
|
|
24
27
|
if (didChangeAnyIntegration && runGenerateAfterChange) {
|
|
25
28
|
await generate(undefined, { showLifecycle: false });
|
|
@@ -48,7 +51,10 @@ export async function listAndPromptIntegrations(options = {}) {
|
|
|
48
51
|
if (active.length > 0) {
|
|
49
52
|
const names = active.map(i => INTEGRATION_METADATA[i.integrationType]?.name || i.integrationType);
|
|
50
53
|
console.log(chalk.dim(`Connected integrations (${active.length}): ${formatSummaryList(names)}`));
|
|
51
|
-
const addMore = await confirm({
|
|
54
|
+
const addMore = abortIfCancelled(await confirm({
|
|
55
|
+
message: "Connect another integration?",
|
|
56
|
+
initialValue: false
|
|
57
|
+
}));
|
|
52
58
|
if (addMore)
|
|
53
59
|
await integrate({ showLifecycle: false, runGenerateAfterChange: options.runGenerateAfterChange });
|
|
54
60
|
}
|
|
@@ -58,85 +64,170 @@ export async function listAndPromptIntegrations(options = {}) {
|
|
|
58
64
|
}
|
|
59
65
|
}
|
|
60
66
|
async function connectOneIntegration(apiKey) {
|
|
67
|
+
while (true) {
|
|
68
|
+
const integrations = await fetchUserFacingIntegrations(apiKey);
|
|
69
|
+
if (integrations.length === 0) {
|
|
70
|
+
log.warn("No integrations available.");
|
|
71
|
+
return { status: "unchanged" };
|
|
72
|
+
}
|
|
73
|
+
const selection = await promptForIntegrationSelection(integrations);
|
|
74
|
+
if (selection.action === "back") {
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
const selectedIntegration = integrations.find(integration => integration.integrationType === selection.integrationType);
|
|
78
|
+
if (!selectedIntegration) {
|
|
79
|
+
log.warn(`Integration '${selection.integrationType}' is no longer available.`);
|
|
80
|
+
return { status: "unchanged" };
|
|
81
|
+
}
|
|
82
|
+
switch (selection.action) {
|
|
83
|
+
case "keep":
|
|
84
|
+
return { status: "unchanged", integrationType: selection.integrationType };
|
|
85
|
+
case "disconnect": {
|
|
86
|
+
const didDisconnect = await handleDisconnect(apiKey, selection.integrationType);
|
|
87
|
+
return {
|
|
88
|
+
status: didDisconnect ? "modified" : "unchanged",
|
|
89
|
+
integrationType: selection.integrationType
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
case "connect":
|
|
93
|
+
case "refresh_permissions": {
|
|
94
|
+
const didUpdate = await runInstallationFlow(apiKey, selection.integrationType);
|
|
95
|
+
return {
|
|
96
|
+
status: didUpdate ? (selectedIntegration.isActive ? "modified" : "added") : "unchanged",
|
|
97
|
+
integrationType: selection.integrationType
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
async function fetchUserFacingIntegrations(apiKey) {
|
|
61
104
|
const s = createSpinner();
|
|
62
105
|
s.start("Fetching integrations");
|
|
63
|
-
let integrations;
|
|
64
106
|
try {
|
|
65
|
-
integrations = await fetchIntegrations(apiKey);
|
|
107
|
+
const integrations = await fetchIntegrations(apiKey);
|
|
66
108
|
s.stop("Fetched integrations");
|
|
109
|
+
return integrations.filter(i => i.integrationType !== IntegrationType.TERSE && i.integrationType !== IntegrationType.CRON_JOB && i.integrationType !== IntegrationType.WEBMONITOR);
|
|
67
110
|
}
|
|
68
111
|
catch (err) {
|
|
69
112
|
s.stop("Failed to fetch integrations");
|
|
70
113
|
console.error(chalk.red(` ${err.message}`));
|
|
71
114
|
process.exit(1);
|
|
72
115
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
116
|
+
}
|
|
117
|
+
async function promptForIntegrationSelection(integrations) {
|
|
118
|
+
const longestName = integrations.reduce((max, integration) => Math.max(max, getIntegrationDisplayName(integration).length), 0);
|
|
119
|
+
return group({
|
|
120
|
+
integrationType: () => select({
|
|
121
|
+
message: "Choose an integration",
|
|
122
|
+
options: integrations.map(integration => ({
|
|
123
|
+
value: integration.integrationType,
|
|
124
|
+
label: formatIntegrationPickerLabel(integration, longestName)
|
|
125
|
+
}))
|
|
126
|
+
}),
|
|
127
|
+
action: ({ results }) => {
|
|
128
|
+
const selectedType = results.integrationType;
|
|
129
|
+
const selectedIntegration = integrations.find(integration => integration.integrationType === selectedType);
|
|
130
|
+
if (!selectedIntegration) {
|
|
131
|
+
throw new Error(`Integration '${selectedType}' is no longer available`);
|
|
132
|
+
}
|
|
133
|
+
return select({
|
|
134
|
+
message: getIntegrationDisplayName(selectedIntegration),
|
|
135
|
+
options: getIntegrationActions(selectedIntegration).map(action => ({
|
|
136
|
+
value: action,
|
|
137
|
+
label: formatIntegrationActionLabel(action)
|
|
138
|
+
}))
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}, {
|
|
142
|
+
onCancel: () => {
|
|
143
|
+
cancel("Operation cancelled.");
|
|
144
|
+
process.exit(0);
|
|
145
|
+
}
|
|
90
146
|
});
|
|
91
|
-
|
|
147
|
+
}
|
|
148
|
+
function getIntegrationActions(integration) {
|
|
149
|
+
if (integration.cliDisplayState.status === "connected") {
|
|
150
|
+
return ["keep", "disconnect", "refresh_permissions"];
|
|
151
|
+
}
|
|
152
|
+
return ["connect", "back"];
|
|
153
|
+
}
|
|
154
|
+
function formatIntegrationActionLabel(action) {
|
|
155
|
+
switch (action) {
|
|
156
|
+
case "keep":
|
|
157
|
+
return "Keep this connection";
|
|
158
|
+
case "disconnect":
|
|
159
|
+
return "Disconnect";
|
|
160
|
+
case "refresh_permissions":
|
|
161
|
+
return "Refresh permissions";
|
|
162
|
+
case "connect":
|
|
163
|
+
return "Connect";
|
|
164
|
+
case "back":
|
|
165
|
+
return "Back";
|
|
166
|
+
default:
|
|
167
|
+
const exhaustiveCheck = action;
|
|
168
|
+
throw new Error(`Unhandled integration action: ${exhaustiveCheck}`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
function formatIntegrationPickerLabel(integration, longestName) {
|
|
172
|
+
const name = getIntegrationDisplayName(integration).padEnd(longestName);
|
|
173
|
+
const summary = formatIntegrationDisplaySummary(integration.cliDisplayState);
|
|
174
|
+
return `${name} ${chalk.dim(summary)}`;
|
|
175
|
+
}
|
|
176
|
+
function formatIntegrationDisplaySummary(displayState) {
|
|
177
|
+
if (displayState.status === "connected") {
|
|
178
|
+
return `${displayState.summaryLabel}: ${displayState.summaryValue}`;
|
|
179
|
+
}
|
|
180
|
+
return "Not connected";
|
|
181
|
+
}
|
|
182
|
+
function getIntegrationDisplayName(integration) {
|
|
183
|
+
return INTEGRATION_METADATA[integration.integrationType]?.name || integration.integrationType;
|
|
184
|
+
}
|
|
185
|
+
async function runInstallationFlow(apiKey, integrationType) {
|
|
186
|
+
const s = createSpinner();
|
|
92
187
|
s.start("Loading integration details");
|
|
93
|
-
let fieldsResponse;
|
|
94
188
|
try {
|
|
95
|
-
fieldsResponse = await fetchIntegrationFields(apiKey,
|
|
189
|
+
const fieldsResponse = await fetchIntegrationFields(apiKey, integrationType);
|
|
96
190
|
s.stop("Loaded integration details");
|
|
191
|
+
if (fieldsResponse.installationType === "form") {
|
|
192
|
+
return handleFormIntegration(apiKey, integrationType, fieldsResponse.fields, fieldsResponse.setup);
|
|
193
|
+
}
|
|
194
|
+
if (fieldsResponse.installationType === "oauth") {
|
|
195
|
+
return handleOAuthIntegration(apiKey, integrationType, fieldsResponse.fields);
|
|
196
|
+
}
|
|
97
197
|
}
|
|
98
198
|
catch (err) {
|
|
99
199
|
s.stop("Failed to load integration details");
|
|
100
200
|
console.error(chalk.red(` ${err.message}`));
|
|
101
|
-
|
|
201
|
+
return false;
|
|
102
202
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
if (fieldsResponse.installationType === "oauth") {
|
|
111
|
-
const didUpdate = await handleOAuthIntegration(apiKey, selected, fieldsResponse.fields);
|
|
112
|
-
return {
|
|
113
|
-
status: didUpdate ? (selectedIntegration?.isActive ? "modified" : "added") : "unchanged",
|
|
114
|
-
integrationType: selected
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
log.warn(`Integration '${selected}' has an unsupported installation type.`);
|
|
118
|
-
return {
|
|
119
|
-
status: "unchanged",
|
|
120
|
-
integrationType: selected
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
async function handleFormIntegration(apiKey, integrationType, fields) {
|
|
203
|
+
log.warn(`Integration '${integrationType}' has an unsupported installation type.`);
|
|
204
|
+
return false;
|
|
205
|
+
}
|
|
206
|
+
async function handleFormIntegration(apiKey, integrationType, fields, setup) {
|
|
207
|
+
await showFormSetupGuidance(integrationType, setup);
|
|
124
208
|
const formValues = {};
|
|
125
209
|
for (const field of fields) {
|
|
126
|
-
const
|
|
210
|
+
const promptMessage = buildFieldPromptMessage(field);
|
|
127
211
|
if (field.type === "password") {
|
|
128
|
-
formValues[field.name] = await password({
|
|
129
|
-
message:
|
|
130
|
-
validate: field.required ?
|
|
131
|
-
});
|
|
212
|
+
formValues[field.name] = abortIfCancelled(await password({
|
|
213
|
+
message: promptMessage,
|
|
214
|
+
validate: field.required ? value => ((value?.length ?? 0) > 0 ? undefined : `${field.label} is required`) : undefined
|
|
215
|
+
}));
|
|
216
|
+
continue;
|
|
132
217
|
}
|
|
133
|
-
|
|
218
|
+
if (field.type === "textarea") {
|
|
134
219
|
formValues[field.name] = await input({
|
|
135
|
-
message:
|
|
220
|
+
message: promptMessage,
|
|
136
221
|
default: field.placeholder,
|
|
137
|
-
validate: field.required ?
|
|
222
|
+
validate: field.required ? value => (value.length > 0 ? true : `${field.label} is required`) : undefined
|
|
138
223
|
});
|
|
224
|
+
continue;
|
|
139
225
|
}
|
|
226
|
+
formValues[field.name] = abortIfCancelled(await text({
|
|
227
|
+
message: promptMessage,
|
|
228
|
+
placeholder: field.placeholder,
|
|
229
|
+
validate: field.required ? value => ((value?.length ?? 0) > 0 ? undefined : `${field.label} is required`) : undefined
|
|
230
|
+
}));
|
|
140
231
|
}
|
|
141
232
|
const s = createSpinner();
|
|
142
233
|
s.start("Connecting integration");
|
|
@@ -155,15 +246,36 @@ async function handleFormIntegration(apiKey, integrationType, fields) {
|
|
|
155
246
|
return false;
|
|
156
247
|
}
|
|
157
248
|
}
|
|
249
|
+
async function showFormSetupGuidance(integrationType, setup) {
|
|
250
|
+
if (!setup)
|
|
251
|
+
return;
|
|
252
|
+
log.info(chalk.bold(`${INTEGRATION_METADATA[integrationType]?.name || integrationType} setup`));
|
|
253
|
+
console.log(chalk.cyan(setup.url));
|
|
254
|
+
console.log(chalk.dim(setup.title));
|
|
255
|
+
for (const instruction of setup.instructions) {
|
|
256
|
+
console.log(` ${chalk.dim("•")} ${instruction}`);
|
|
257
|
+
}
|
|
258
|
+
console.log("");
|
|
259
|
+
const shouldOpenSetupUrl = abortIfCancelled(await confirm({
|
|
260
|
+
message: "Open setup instructions in your browser?",
|
|
261
|
+
initialValue: false
|
|
262
|
+
}));
|
|
263
|
+
if (shouldOpenSetupUrl) {
|
|
264
|
+
openUrlInBrowser(setup.url);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
function buildFieldPromptMessage(field) {
|
|
268
|
+
return field.hint ? `${field.label} ${chalk.dim(`(${field.hint})`)}` : field.label;
|
|
269
|
+
}
|
|
158
270
|
async function handleOAuthIntegration(apiKey, integrationType, configFields) {
|
|
159
271
|
let options;
|
|
160
272
|
if (configFields.length > 0) {
|
|
161
273
|
options = {};
|
|
162
274
|
for (const field of configFields) {
|
|
163
|
-
const value = await select({
|
|
275
|
+
const value = abortIfCancelled(await select({
|
|
164
276
|
message: field.label,
|
|
165
|
-
|
|
166
|
-
});
|
|
277
|
+
options: field.options.map(option => ({ value: option.value, label: option.label }))
|
|
278
|
+
}));
|
|
167
279
|
options[field.name] = value;
|
|
168
280
|
}
|
|
169
281
|
}
|
|
@@ -190,4 +302,29 @@ async function handleOAuthIntegration(apiKey, integrationType, configFields) {
|
|
|
190
302
|
s.stop("Authorization timed out — please try again");
|
|
191
303
|
return false;
|
|
192
304
|
}
|
|
305
|
+
async function handleDisconnect(apiKey, integrationType) {
|
|
306
|
+
const s = createSpinner();
|
|
307
|
+
s.start("Disconnecting integration");
|
|
308
|
+
try {
|
|
309
|
+
const result = await disconnectIntegration(apiKey, integrationType);
|
|
310
|
+
if (result.success) {
|
|
311
|
+
s.stop("Integration disconnected successfully");
|
|
312
|
+
return true;
|
|
313
|
+
}
|
|
314
|
+
s.stop(`Failed to disconnect: ${result.error || "Unknown error"}`);
|
|
315
|
+
return false;
|
|
316
|
+
}
|
|
317
|
+
catch (err) {
|
|
318
|
+
s.stop("Failed to disconnect integration");
|
|
319
|
+
console.error(chalk.red(` ${err.message}`));
|
|
320
|
+
return false;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
function abortIfCancelled(value) {
|
|
324
|
+
if (isCancel(value)) {
|
|
325
|
+
cancel("Operation cancelled.");
|
|
326
|
+
process.exit(0);
|
|
327
|
+
}
|
|
328
|
+
return value;
|
|
329
|
+
}
|
|
193
330
|
//# sourceMappingURL=integrate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrate.js","sourceRoot":"","sources":["../../src/commands/integrate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"integrate.js","sourceRoot":"","sources":["../../src/commands/integrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=serve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brand-colored wrappers for @clack/prompts.
|
|
3
|
+
*
|
|
4
|
+
* Clack uses hardcoded named ANSI colors with no theme API. We replicate its
|
|
5
|
+
* chrome here using chalk true-color (24-bit RGB) derived from the design
|
|
6
|
+
* token OKLCH values:
|
|
7
|
+
*
|
|
8
|
+
* primary: oklch(65% .16 155) → rgb(4, 171, 98) teal-green
|
|
9
|
+
* secondary: oklch(65% .12 145) → rgb(93, 162, 96) muted green
|
|
10
|
+
* tertiary: oklch(65% .15 30) → rgb(219, 102, 86) warm orange
|
|
11
|
+
* destructive: oklch(60% .22 25) → rgb(230, 43, 52) red
|
|
12
|
+
*/
|
|
13
|
+
export declare const primary: import("chalk").ChalkInstance;
|
|
14
|
+
export declare const secondary: import("chalk").ChalkInstance;
|
|
15
|
+
export declare const tertiary: import("chalk").ChalkInstance;
|
|
16
|
+
export declare const destructive: import("chalk").ChalkInstance;
|
|
17
|
+
/** Pass as the `styleFrame` option to `spinner()`. */
|
|
18
|
+
export declare const spinnerStyle: (frame: string) => string;
|
|
19
|
+
export declare const brandLog: {
|
|
20
|
+
step: (msg: string) => void;
|
|
21
|
+
info: (msg: string) => void;
|
|
22
|
+
warn: (msg: string) => void;
|
|
23
|
+
error: (msg: string) => void;
|
|
24
|
+
};
|
|
25
|
+
export declare function brandIntro(title?: string): void;
|
|
26
|
+
export declare function brandOutro(message?: string): void;
|
|
27
|
+
export declare function brandNote(message: string, title?: string): void;
|
|
28
|
+
//# sourceMappingURL=terseCliTheme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terseCliTheme.d.ts","sourceRoot":"","sources":["../../src/commands/terseCliTheme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,eAAO,MAAM,OAAO,+BAA+B,CAAA;AACnD,eAAO,MAAM,SAAS,+BAA6B,CAAA;AACnD,eAAO,MAAM,QAAQ,+BAA8B,CAAA;AACnD,eAAO,MAAM,WAAW,+BAA2B,CAAA;AAInD,sDAAsD;AACtD,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,WAAmB,CAAA;AAW7D,eAAO,MAAM,QAAQ;gBACJ,MAAM;gBACN,MAAM;gBACN,MAAM;iBACN,MAAM;CACtB,CAAA;AAUD,wBAAgB,UAAU,CAAC,KAAK,SAAK,QAEpC;AAED,wBAAgB,UAAU,CAAC,OAAO,SAAK,QAEtC;AAWD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,SAAK,QAepD"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brand-colored wrappers for @clack/prompts.
|
|
3
|
+
*
|
|
4
|
+
* Clack uses hardcoded named ANSI colors with no theme API. We replicate its
|
|
5
|
+
* chrome here using chalk true-color (24-bit RGB) derived from the design
|
|
6
|
+
* token OKLCH values:
|
|
7
|
+
*
|
|
8
|
+
* primary: oklch(65% .16 155) → rgb(4, 171, 98) teal-green
|
|
9
|
+
* secondary: oklch(65% .12 145) → rgb(93, 162, 96) muted green
|
|
10
|
+
* tertiary: oklch(65% .15 30) → rgb(219, 102, 86) warm orange
|
|
11
|
+
* destructive: oklch(60% .22 25) → rgb(230, 43, 52) red
|
|
12
|
+
*/
|
|
13
|
+
import { log } from "@clack/prompts";
|
|
14
|
+
import chalk from "chalk";
|
|
15
|
+
// ── Color tokens ──────────────────────────────────────────────────────────────
|
|
16
|
+
export const primary = chalk.rgb(4, 171, 98);
|
|
17
|
+
export const secondary = chalk.rgb(93, 162, 96);
|
|
18
|
+
export const tertiary = chalk.rgb(219, 102, 86);
|
|
19
|
+
export const destructive = chalk.rgb(230, 43, 52);
|
|
20
|
+
// ── Spinner ───────────────────────────────────────────────────────────────────
|
|
21
|
+
/** Pass as the `styleFrame` option to `spinner()`. */
|
|
22
|
+
export const spinnerStyle = (frame) => primary(frame);
|
|
23
|
+
// ── Log helpers ───────────────────────────────────────────────────────────────
|
|
24
|
+
// Clack's log.step / log.info / log.warn / log.error hardcode their symbol
|
|
25
|
+
// colors. We call log.message() directly with a branded symbol instead.
|
|
26
|
+
const S_STEP = "◇";
|
|
27
|
+
const S_INFO = "●";
|
|
28
|
+
const S_WARN = "▲";
|
|
29
|
+
const S_ERROR = "■";
|
|
30
|
+
export const brandLog = {
|
|
31
|
+
step: (msg) => log.message(msg, { symbol: primary(S_STEP) }),
|
|
32
|
+
info: (msg) => log.message(msg, { symbol: secondary(S_INFO) }),
|
|
33
|
+
warn: (msg) => log.message(msg, { symbol: tertiary(S_WARN) }),
|
|
34
|
+
error: (msg) => log.message(msg, { symbol: destructive(S_ERROR) })
|
|
35
|
+
};
|
|
36
|
+
// ── Intro / Outro ─────────────────────────────────────────────────────────────
|
|
37
|
+
// Clack's intro/outro output a gray guide bar. We replicate the same chrome
|
|
38
|
+
// using our secondary color.
|
|
39
|
+
const S_BAR_START = "┌";
|
|
40
|
+
const S_BAR = "│";
|
|
41
|
+
const S_BAR_END = "└";
|
|
42
|
+
export function brandIntro(title = "") {
|
|
43
|
+
process.stdout.write(`${secondary(S_BAR_START)} ${title}\n`);
|
|
44
|
+
}
|
|
45
|
+
export function brandOutro(message = "") {
|
|
46
|
+
process.stdout.write(`${secondary(S_BAR)}\n${secondary(S_BAR_END)} ${message}\n\n`);
|
|
47
|
+
}
|
|
48
|
+
// ── Note ─────────────────────────────────────────────────────────────────────
|
|
49
|
+
// Clack's note() hardcodes green for the title symbol and gray for borders.
|
|
50
|
+
// We replicate the layout using our primary/secondary colors.
|
|
51
|
+
const S_BAR_H = "─";
|
|
52
|
+
const S_CORNER_TR = "╮";
|
|
53
|
+
const S_TEE_L = "├";
|
|
54
|
+
const S_CORNER_BR = "┴";
|
|
55
|
+
export function brandNote(message, title = "") {
|
|
56
|
+
const lines = message.split("\n");
|
|
57
|
+
const width = Math.max(...lines.map(l => l.length), title.length) + 4;
|
|
58
|
+
const pad = (s) => s + " ".repeat(width - s.length - 2);
|
|
59
|
+
const border = S_BAR_H.repeat(width - title.length - 1);
|
|
60
|
+
process.stdout.write([
|
|
61
|
+
`${secondary(S_BAR)}`,
|
|
62
|
+
`${primary(S_STEP)} ${chalk.reset(title)} ${secondary(border + S_CORNER_TR)}`,
|
|
63
|
+
...lines.map(l => `${secondary(S_BAR)} ${chalk.dim(pad(l))}${secondary(S_BAR)}`),
|
|
64
|
+
`${secondary(S_TEE_L + S_BAR_H.repeat(width + 2) + S_CORNER_BR)}`,
|
|
65
|
+
""
|
|
66
|
+
].join("\n"));
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=terseCliTheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terseCliTheme.js","sourceRoot":"","sources":["../../src/commands/terseCliTheme.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAGxE,wBAAsB,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAE,gBAAoC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAGxE,wBAAsB,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAE,gBAAoC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwFjJ"}
|
package/dist/commands/test.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { select } from "@
|
|
1
|
+
import { cancel, intro, isCancel, log, outro, select } from "@clack/prompts";
|
|
2
2
|
import chalk from "chalk";
|
|
3
|
-
import ora from "ora";
|
|
4
3
|
import { IntegrationType } from "terse-sdk";
|
|
5
|
-
import { ApiRoutes, debugTrigger, formatTriggerForAgent } from "terse-types";
|
|
4
|
+
import { ApiRoutes, debugTrigger, displayTrigger, formatTriggerForAgent } from "terse-types";
|
|
6
5
|
import { fetchWithAuth, readApiKeyOrBail } from "../api.js";
|
|
7
6
|
import { assertProjectRoot } from "../assertProjectRoot.js";
|
|
7
|
+
import { createSpinner } from "../cliUi.js";
|
|
8
8
|
import { loadJob } from "../loadJob.js";
|
|
9
9
|
import { resolveProvider } from "../providers/resolveProvider.js";
|
|
10
10
|
export async function test(jobName, verbose, provider = resolveProvider(), entryFile) {
|
|
11
|
+
intro("terse test");
|
|
11
12
|
assertProjectRoot(provider);
|
|
12
13
|
const { job } = await loadJob(provider, jobName, entryFile);
|
|
13
|
-
console.log(chalk.cyan(`\n Testing job: ${job.name}\n`));
|
|
14
14
|
const apiKey = readApiKeyOrBail({
|
|
15
15
|
title: "Error: Not authenticated. Unable to fetch sample events.",
|
|
16
16
|
detail: "Run `terse login` to authenticate, or set TERSE_API_KEY in your environment."
|
|
@@ -22,7 +22,8 @@ export async function test(jobName, verbose, provider = resolveProvider(), entry
|
|
|
22
22
|
let events = [];
|
|
23
23
|
// Fetch sample events for integration triggers (time triggers have no sample events)
|
|
24
24
|
if (integrationTriggers.length > 0) {
|
|
25
|
-
const spinner =
|
|
25
|
+
const spinner = createSpinner();
|
|
26
|
+
spinner.start("Fetching sample events");
|
|
26
27
|
try {
|
|
27
28
|
const result = await fetchWithAuth(ApiRoutes.SDK.SAMPLE_EVENTS, apiKey, {
|
|
28
29
|
triggers: integrationTriggers.map(trigger => ({
|
|
@@ -33,10 +34,10 @@ export async function test(jobName, verbose, provider = resolveProvider(), entry
|
|
|
33
34
|
}))
|
|
34
35
|
}, "POST");
|
|
35
36
|
events = result.events;
|
|
36
|
-
spinner.
|
|
37
|
+
spinner.stop(`Fetched ${events.length} sample event${events.length === 1 ? "" : "s"}`);
|
|
37
38
|
}
|
|
38
39
|
catch (err) {
|
|
39
|
-
spinner.
|
|
40
|
+
spinner.stop(err instanceof Error ? err.message : "Failed to fetch sample events.");
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
// Add a synthetic manual trigger event for each time trigger
|
|
@@ -60,17 +61,79 @@ export async function test(jobName, verbose, provider = resolveProvider(), entry
|
|
|
60
61
|
}));
|
|
61
62
|
}
|
|
62
63
|
if (events.length === 0) {
|
|
63
|
-
|
|
64
|
+
log.error("No sample events available. Make sure your triggers are configured and events have been received.");
|
|
64
65
|
process.exit(1);
|
|
65
66
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
|
|
67
|
+
log.info(`Testing job ${chalk.cyan(job.name)}`);
|
|
68
|
+
const choice = await chooseSampleEvent(events);
|
|
69
|
+
const runSpinner = createSpinner();
|
|
70
|
+
runSpinner.start(`Running ${formatEventLabel(events[choice])}`);
|
|
71
|
+
try {
|
|
72
|
+
await provider.executeJob(job, null, events[choice], { verbose: !!verbose, entryFile });
|
|
73
|
+
runSpinner.stop("Run completed");
|
|
74
|
+
outro("Done");
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
runSpinner.stop("Run failed");
|
|
78
|
+
throw error;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function formatEventLabel(event) {
|
|
82
|
+
return normalizeSingleLine(event.display?.title || `${event.integrationType} / ${event.eventType}`);
|
|
83
|
+
}
|
|
84
|
+
function formatEventHint(event) {
|
|
85
|
+
return truncate(normalizeSingleLine(event.display?.subtitle || event.debugLog), 120);
|
|
86
|
+
}
|
|
87
|
+
function truncate(value, maxLength) {
|
|
88
|
+
if (value.length <= maxLength) {
|
|
89
|
+
return value;
|
|
90
|
+
}
|
|
91
|
+
return `${value.slice(0, maxLength - 1)}…`;
|
|
92
|
+
}
|
|
93
|
+
function normalizeSingleLine(value) {
|
|
94
|
+
return value
|
|
95
|
+
.replace(/\s*\n+\s*/g, " ")
|
|
96
|
+
.replace(/\s+/g, " ")
|
|
97
|
+
.trim();
|
|
98
|
+
}
|
|
99
|
+
function abortIfCancelled(value) {
|
|
100
|
+
if (isCancel(value)) {
|
|
101
|
+
cancel("Operation cancelled.");
|
|
102
|
+
process.exit(0);
|
|
103
|
+
}
|
|
104
|
+
return value;
|
|
105
|
+
}
|
|
106
|
+
async function chooseSampleEvent(events) {
|
|
107
|
+
while (true) {
|
|
108
|
+
const choice = abortIfCancelled(await select({
|
|
109
|
+
message: "Choose a sample event",
|
|
110
|
+
options: events.map((event, index) => ({
|
|
111
|
+
label: `${formatEventLabel(event)} ${chalk.dim("›")}`,
|
|
112
|
+
hint: formatEventHint(event),
|
|
113
|
+
value: index
|
|
114
|
+
}))
|
|
115
|
+
}));
|
|
116
|
+
const action = await inspectSampleEvent(events[choice]);
|
|
117
|
+
if (action === "run") {
|
|
118
|
+
return choice;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async function inspectSampleEvent(event) {
|
|
123
|
+
log.info(chalk.bold(formatEventLabel(event)));
|
|
124
|
+
if (event.display?.subtitle) {
|
|
125
|
+
console.log(chalk.dim(event.display.subtitle));
|
|
126
|
+
}
|
|
127
|
+
console.log("");
|
|
128
|
+
console.log(chalk.dim(truncate(normalizeSingleLine(event.formattedContent), 300)));
|
|
129
|
+
console.log("");
|
|
130
|
+
return abortIfCancelled(await select({
|
|
131
|
+
message: "Run this event?",
|
|
132
|
+
options: [
|
|
133
|
+
{ label: "Run this sample event", value: "run" },
|
|
134
|
+
{ label: "Choose another event", value: "back" }
|
|
135
|
+
]
|
|
136
|
+
}));
|
|
74
137
|
}
|
|
75
138
|
function serializeEvent(event) {
|
|
76
139
|
return {
|
|
@@ -78,6 +141,7 @@ function serializeEvent(event) {
|
|
|
78
141
|
eventType: event.eventType,
|
|
79
142
|
formattedContent: formatTriggerForAgent(event),
|
|
80
143
|
debugLog: debugTrigger(event),
|
|
144
|
+
display: displayTrigger(event),
|
|
81
145
|
data: event
|
|
82
146
|
};
|
|
83
147
|
}
|