terse-cli 0.1.35 → 0.1.37
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 +10 -10
- package/dist/api.js.map +1 -1
- package/dist/assertProjectRoot.d.ts +1 -1
- package/dist/assertProjectRoot.d.ts.map +1 -1
- package/dist/assertProjectRoot.js +5 -4
- package/dist/assertProjectRoot.js.map +1 -1
- package/dist/cliError.d.ts +22 -0
- package/dist/cliError.d.ts.map +1 -0
- package/dist/cliError.js +67 -0
- package/dist/cliError.js.map +1 -0
- package/dist/cliHelpers.d.ts +20 -0
- package/dist/cliHelpers.d.ts.map +1 -0
- package/dist/cliHelpers.js +69 -0
- package/dist/cliHelpers.js.map +1 -0
- package/dist/commands/attach.d.ts +2 -1
- package/dist/commands/attach.d.ts.map +1 -1
- package/dist/commands/attach.js +7 -5
- package/dist/commands/attach.js.map +1 -1
- package/dist/commands/auth.d.ts +2 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +20 -1
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +14 -14
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/generate.d.ts +1 -5
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +13 -16
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/history.d.ts +1 -1
- package/dist/commands/history.d.ts.map +1 -1
- package/dist/commands/history.js +4 -3
- package/dist/commands/history.js.map +1 -1
- package/dist/commands/init.d.ts +2 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +11 -10
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/integrate.d.ts +32 -2
- package/dist/commands/integrate.d.ts.map +1 -1
- package/dist/commands/integrate.js +424 -64
- package/dist/commands/integrate.js.map +1 -1
- package/dist/commands/replay.d.ts.map +1 -1
- package/dist/commands/replay.js +5 -6
- package/dist/commands/replay.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +14 -17
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/test.d.ts +47 -0
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +268 -48
- package/dist/commands/test.js.map +1 -1
- package/dist/index.js +161 -14
- 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/loadJob.d.ts +2 -1
- package/dist/loadJob.d.ts.map +1 -1
- package/dist/loadJob.js +16 -13
- package/dist/loadJob.js.map +1 -1
- package/dist/nonInteractive.d.ts +20 -0
- package/dist/nonInteractive.d.ts.map +1 -0
- package/dist/nonInteractive.js +60 -0
- package/dist/nonInteractive.js.map +1 -0
- package/dist/projectConfig.d.ts.map +1 -1
- package/dist/projectConfig.js +17 -10
- package/dist/projectConfig.js.map +1 -1
- package/dist/providers/python/PythonProvider.d.ts.map +1 -1
- package/dist/providers/python/PythonProvider.js +24 -14
- package/dist/providers/python/PythonProvider.js.map +1 -1
- package/dist/providers/resolveProvider.d.ts.map +1 -1
- package/dist/providers/resolveProvider.js +7 -9
- package/dist/providers/resolveProvider.js.map +1 -1
- package/dist/providers/shared/entryFileGuidance.d.ts.map +1 -1
- package/dist/providers/shared/entryFileGuidance.js +7 -12
- package/dist/providers/shared/entryFileGuidance.js.map +1 -1
- package/dist/providers/typescript/TypeScriptProvider.d.ts.map +1 -1
- package/dist/providers/typescript/TypeScriptProvider.js +30 -27
- package/dist/providers/typescript/TypeScriptProvider.js.map +1 -1
- package/dist/sampleEventCache.d.ts +9 -0
- package/dist/sampleEventCache.d.ts.map +1 -0
- package/dist/sampleEventCache.js +47 -0
- package/dist/sampleEventCache.js.map +1 -0
- package/dist/sampleEventId.d.ts +9 -0
- package/dist/sampleEventId.d.ts.map +1 -0
- package/dist/sampleEventId.js +16 -0
- package/dist/sampleEventId.js.map +1 -0
- package/package.json +3 -3
|
@@ -1,12 +1,15 @@
|
|
|
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
|
+
import { CliError } from "../cliError.js";
|
|
7
|
+
import { isNonInteractive, parseKeyValueFlags, readFieldsFromStdin } from "../cliHelpers.js";
|
|
6
8
|
import { createSpinner, formatSummaryList } from "../cliUi.js";
|
|
7
|
-
import { fetchInstallationUrl, fetchIntegrationFields, fetchIntegrations, pollForConnection, submitIntegrationForm } from "../integrationApi.js";
|
|
9
|
+
import { disconnectIntegration, fetchInstallationUrl, fetchIntegrationFields, fetchIntegrations, pollForConnection, submitIntegrationForm } from "../integrationApi.js";
|
|
8
10
|
import { openUrlInBrowser } from "../openBrowser.js";
|
|
9
11
|
import { generate } from "./generate.js";
|
|
12
|
+
const INTERNAL_INTEGRATION_TYPES = new Set([IntegrationType.TERSE, IntegrationType.CRON_JOB, IntegrationType.WEBMONITOR]);
|
|
10
13
|
export async function integrate(options = {}) {
|
|
11
14
|
const showLifecycle = options.showLifecycle ?? true;
|
|
12
15
|
const runGenerateAfterChange = options.runGenerateAfterChange ?? true;
|
|
@@ -19,10 +22,13 @@ export async function integrate(options = {}) {
|
|
|
19
22
|
while (continueLoop) {
|
|
20
23
|
const result = await connectOneIntegration(apiKey);
|
|
21
24
|
didChangeAnyIntegration = didChangeAnyIntegration || result.status !== "unchanged";
|
|
22
|
-
continueLoop = await confirm({
|
|
25
|
+
continueLoop = abortIfCancelled(await confirm({
|
|
26
|
+
message: "Connect another integration?",
|
|
27
|
+
initialValue: false
|
|
28
|
+
}));
|
|
23
29
|
}
|
|
24
30
|
if (didChangeAnyIntegration && runGenerateAfterChange) {
|
|
25
|
-
await generate(undefined
|
|
31
|
+
await generate(undefined);
|
|
26
32
|
}
|
|
27
33
|
if (showLifecycle) {
|
|
28
34
|
outro("Done");
|
|
@@ -44,11 +50,24 @@ export async function listAndPromptIntegrations(options = {}) {
|
|
|
44
50
|
console.error(chalk.red("Failed to fetch integrations"));
|
|
45
51
|
return;
|
|
46
52
|
}
|
|
47
|
-
const active = integrations.filter(i => i.isActive &&
|
|
53
|
+
const active = integrations.filter(i => i.isActive && !INTERNAL_INTEGRATION_TYPES.has(i.integrationType));
|
|
54
|
+
if (options.nonInteractive || isNonInteractive()) {
|
|
55
|
+
if (active.length > 0) {
|
|
56
|
+
const names = active.map(i => INTEGRATION_METADATA[i.integrationType]?.name || i.integrationType);
|
|
57
|
+
console.log(chalk.dim(`Connected integrations (${active.length}): ${formatSummaryList(names)}`));
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
console.log(chalk.dim("No integrated tools yet. Run `terse integrate` in an interactive terminal to connect some."));
|
|
61
|
+
}
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
48
64
|
if (active.length > 0) {
|
|
49
65
|
const names = active.map(i => INTEGRATION_METADATA[i.integrationType]?.name || i.integrationType);
|
|
50
66
|
console.log(chalk.dim(`Connected integrations (${active.length}): ${formatSummaryList(names)}`));
|
|
51
|
-
const addMore = await confirm({
|
|
67
|
+
const addMore = abortIfCancelled(await confirm({
|
|
68
|
+
message: "Connect another integration?",
|
|
69
|
+
initialValue: false
|
|
70
|
+
}));
|
|
52
71
|
if (addMore)
|
|
53
72
|
await integrate({ showLifecycle: false, runGenerateAfterChange: options.runGenerateAfterChange });
|
|
54
73
|
}
|
|
@@ -58,85 +77,169 @@ export async function listAndPromptIntegrations(options = {}) {
|
|
|
58
77
|
}
|
|
59
78
|
}
|
|
60
79
|
async function connectOneIntegration(apiKey) {
|
|
80
|
+
while (true) {
|
|
81
|
+
const integrations = await fetchUserFacingIntegrations(apiKey);
|
|
82
|
+
if (integrations.length === 0) {
|
|
83
|
+
log.warn("No integrations available.");
|
|
84
|
+
return { status: "unchanged" };
|
|
85
|
+
}
|
|
86
|
+
const selection = await promptForIntegrationSelection(integrations);
|
|
87
|
+
if (selection.action === "back") {
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
const selectedIntegration = integrations.find(integration => integration.integrationType === selection.integrationType);
|
|
91
|
+
if (!selectedIntegration) {
|
|
92
|
+
log.warn(`Integration '${selection.integrationType}' is no longer available.`);
|
|
93
|
+
return { status: "unchanged" };
|
|
94
|
+
}
|
|
95
|
+
switch (selection.action) {
|
|
96
|
+
case "keep":
|
|
97
|
+
return { status: "unchanged", integrationType: selection.integrationType };
|
|
98
|
+
case "disconnect": {
|
|
99
|
+
const didDisconnect = await handleDisconnect(apiKey, selection.integrationType);
|
|
100
|
+
return {
|
|
101
|
+
status: didDisconnect ? "modified" : "unchanged",
|
|
102
|
+
integrationType: selection.integrationType
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
case "connect":
|
|
106
|
+
case "refresh_permissions": {
|
|
107
|
+
const didUpdate = await runInstallationFlow(apiKey, selection.integrationType);
|
|
108
|
+
return {
|
|
109
|
+
status: didUpdate ? (selectedIntegration.isActive ? "modified" : "added") : "unchanged",
|
|
110
|
+
integrationType: selection.integrationType
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
async function fetchUserFacingIntegrations(apiKey) {
|
|
61
117
|
const s = createSpinner();
|
|
62
118
|
s.start("Fetching integrations");
|
|
63
|
-
let integrations;
|
|
64
119
|
try {
|
|
65
|
-
integrations = await fetchIntegrations(apiKey);
|
|
120
|
+
const integrations = await fetchIntegrations(apiKey);
|
|
66
121
|
s.stop("Fetched integrations");
|
|
122
|
+
return integrations.filter(i => !INTERNAL_INTEGRATION_TYPES.has(i.integrationType));
|
|
67
123
|
}
|
|
68
124
|
catch (err) {
|
|
69
125
|
s.stop("Failed to fetch integrations");
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
|
|
126
|
+
throw new CliError("fetch_integrations_failed", err?.message ?? "Failed to fetch integrations.");
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
async function promptForIntegrationSelection(integrations) {
|
|
130
|
+
const longestName = integrations.reduce((max, integration) => Math.max(max, getIntegrationDisplayName(integration).length), 0);
|
|
131
|
+
return group({
|
|
132
|
+
integrationType: () => select({
|
|
133
|
+
message: "Choose an integration",
|
|
134
|
+
options: integrations.map(integration => ({
|
|
135
|
+
value: integration.integrationType,
|
|
136
|
+
label: formatIntegrationPickerLabel(integration, longestName)
|
|
137
|
+
}))
|
|
138
|
+
}),
|
|
139
|
+
action: ({ results }) => {
|
|
140
|
+
const selectedType = results.integrationType;
|
|
141
|
+
const selectedIntegration = integrations.find(integration => integration.integrationType === selectedType);
|
|
142
|
+
if (!selectedIntegration) {
|
|
143
|
+
throw new Error(`Integration '${selectedType}' is no longer available`);
|
|
144
|
+
}
|
|
145
|
+
return select({
|
|
146
|
+
message: getIntegrationDisplayName(selectedIntegration),
|
|
147
|
+
options: getIntegrationActions(selectedIntegration).map(action => ({
|
|
148
|
+
value: action,
|
|
149
|
+
label: formatIntegrationActionLabel(action)
|
|
150
|
+
}))
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}, {
|
|
154
|
+
onCancel: () => {
|
|
155
|
+
cancel("Operation cancelled.");
|
|
156
|
+
process.exit(0);
|
|
157
|
+
}
|
|
90
158
|
});
|
|
91
|
-
|
|
159
|
+
}
|
|
160
|
+
function getIntegrationActions(integration) {
|
|
161
|
+
if (integration.cliDisplayState.status === "connected") {
|
|
162
|
+
return ["keep", "disconnect", "refresh_permissions"];
|
|
163
|
+
}
|
|
164
|
+
return ["connect", "back"];
|
|
165
|
+
}
|
|
166
|
+
function formatIntegrationActionLabel(action) {
|
|
167
|
+
switch (action) {
|
|
168
|
+
case "keep":
|
|
169
|
+
return "Keep this connection";
|
|
170
|
+
case "disconnect":
|
|
171
|
+
return "Disconnect";
|
|
172
|
+
case "refresh_permissions":
|
|
173
|
+
return "Refresh permissions";
|
|
174
|
+
case "connect":
|
|
175
|
+
return "Connect";
|
|
176
|
+
case "back":
|
|
177
|
+
return "Back";
|
|
178
|
+
default:
|
|
179
|
+
const exhaustiveCheck = action;
|
|
180
|
+
throw new Error(`Unhandled integration action: ${exhaustiveCheck}`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
function formatIntegrationPickerLabel(integration, longestName) {
|
|
184
|
+
const name = getIntegrationDisplayName(integration).padEnd(longestName);
|
|
185
|
+
const summary = formatIntegrationDisplaySummary(integration.cliDisplayState);
|
|
186
|
+
return `${name} ${chalk.dim(summary)}`;
|
|
187
|
+
}
|
|
188
|
+
function formatIntegrationDisplaySummary(displayState) {
|
|
189
|
+
if (displayState.status === "connected") {
|
|
190
|
+
return `${displayState.summaryLabel}: ${displayState.summaryValue}`;
|
|
191
|
+
}
|
|
192
|
+
return "Not connected";
|
|
193
|
+
}
|
|
194
|
+
function getIntegrationDisplayName(integration) {
|
|
195
|
+
return INTEGRATION_METADATA[integration.integrationType]?.name || integration.integrationType;
|
|
196
|
+
}
|
|
197
|
+
async function runInstallationFlow(apiKey, integrationType) {
|
|
198
|
+
const s = createSpinner();
|
|
92
199
|
s.start("Loading integration details");
|
|
93
|
-
let fieldsResponse;
|
|
94
200
|
try {
|
|
95
|
-
fieldsResponse = await fetchIntegrationFields(apiKey,
|
|
201
|
+
const fieldsResponse = await fetchIntegrationFields(apiKey, integrationType);
|
|
96
202
|
s.stop("Loaded integration details");
|
|
203
|
+
if (fieldsResponse.installationType === "form") {
|
|
204
|
+
return handleFormIntegration(apiKey, integrationType, fieldsResponse.fields, fieldsResponse.setup);
|
|
205
|
+
}
|
|
206
|
+
if (fieldsResponse.installationType === "oauth") {
|
|
207
|
+
return handleOAuthIntegration(apiKey, integrationType, fieldsResponse.fields);
|
|
208
|
+
}
|
|
97
209
|
}
|
|
98
210
|
catch (err) {
|
|
99
211
|
s.stop("Failed to load integration details");
|
|
100
212
|
console.error(chalk.red(` ${err.message}`));
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
if (fieldsResponse.installationType === "form") {
|
|
104
|
-
const didUpdate = await handleFormIntegration(apiKey, selected, fieldsResponse.fields);
|
|
105
|
-
return {
|
|
106
|
-
status: didUpdate ? (selectedIntegration?.isActive ? "modified" : "added") : "unchanged",
|
|
107
|
-
integrationType: selected
|
|
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
|
-
};
|
|
213
|
+
return false;
|
|
116
214
|
}
|
|
117
|
-
log.warn(`Integration '${
|
|
118
|
-
return
|
|
119
|
-
status: "unchanged",
|
|
120
|
-
integrationType: selected
|
|
121
|
-
};
|
|
215
|
+
log.warn(`Integration '${integrationType}' has an unsupported installation type.`);
|
|
216
|
+
return false;
|
|
122
217
|
}
|
|
123
|
-
async function handleFormIntegration(apiKey, integrationType, fields) {
|
|
218
|
+
async function handleFormIntegration(apiKey, integrationType, fields, setup) {
|
|
219
|
+
await showFormSetupGuidance(integrationType, setup);
|
|
124
220
|
const formValues = {};
|
|
125
221
|
for (const field of fields) {
|
|
126
|
-
const
|
|
222
|
+
const promptMessage = buildFieldPromptMessage(field);
|
|
127
223
|
if (field.type === "password") {
|
|
128
|
-
formValues[field.name] = await password({
|
|
129
|
-
message:
|
|
130
|
-
validate: field.required ?
|
|
131
|
-
});
|
|
224
|
+
formValues[field.name] = abortIfCancelled(await password({
|
|
225
|
+
message: promptMessage,
|
|
226
|
+
validate: field.required ? value => ((value?.length ?? 0) > 0 ? undefined : `${field.label} is required`) : undefined
|
|
227
|
+
}));
|
|
228
|
+
continue;
|
|
132
229
|
}
|
|
133
|
-
|
|
230
|
+
if (field.type === "textarea") {
|
|
134
231
|
formValues[field.name] = await input({
|
|
135
|
-
message:
|
|
232
|
+
message: promptMessage,
|
|
136
233
|
default: field.placeholder,
|
|
137
|
-
validate: field.required ?
|
|
234
|
+
validate: field.required ? value => (value.length > 0 ? true : `${field.label} is required`) : undefined
|
|
138
235
|
});
|
|
236
|
+
continue;
|
|
139
237
|
}
|
|
238
|
+
formValues[field.name] = abortIfCancelled(await text({
|
|
239
|
+
message: promptMessage,
|
|
240
|
+
placeholder: field.placeholder,
|
|
241
|
+
validate: field.required ? value => ((value?.length ?? 0) > 0 ? undefined : `${field.label} is required`) : undefined
|
|
242
|
+
}));
|
|
140
243
|
}
|
|
141
244
|
const s = createSpinner();
|
|
142
245
|
s.start("Connecting integration");
|
|
@@ -155,15 +258,36 @@ async function handleFormIntegration(apiKey, integrationType, fields) {
|
|
|
155
258
|
return false;
|
|
156
259
|
}
|
|
157
260
|
}
|
|
261
|
+
async function showFormSetupGuidance(integrationType, setup) {
|
|
262
|
+
if (!setup)
|
|
263
|
+
return;
|
|
264
|
+
log.info(chalk.bold(`${INTEGRATION_METADATA[integrationType]?.name || integrationType} setup`));
|
|
265
|
+
console.log(chalk.cyan(setup.url));
|
|
266
|
+
console.log(chalk.dim(setup.title));
|
|
267
|
+
for (const instruction of setup.instructions) {
|
|
268
|
+
console.log(` ${chalk.dim("•")} ${instruction}`);
|
|
269
|
+
}
|
|
270
|
+
console.log("");
|
|
271
|
+
const shouldOpenSetupUrl = abortIfCancelled(await confirm({
|
|
272
|
+
message: "Open setup instructions in your browser?",
|
|
273
|
+
initialValue: false
|
|
274
|
+
}));
|
|
275
|
+
if (shouldOpenSetupUrl) {
|
|
276
|
+
openUrlInBrowser(setup.url);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
function buildFieldPromptMessage(field) {
|
|
280
|
+
return field.hint ? `${field.label} ${chalk.dim(`(${field.hint})`)}` : field.label;
|
|
281
|
+
}
|
|
158
282
|
async function handleOAuthIntegration(apiKey, integrationType, configFields) {
|
|
159
283
|
let options;
|
|
160
284
|
if (configFields.length > 0) {
|
|
161
285
|
options = {};
|
|
162
286
|
for (const field of configFields) {
|
|
163
|
-
const value = await select({
|
|
287
|
+
const value = abortIfCancelled(await select({
|
|
164
288
|
message: field.label,
|
|
165
|
-
|
|
166
|
-
});
|
|
289
|
+
options: field.options.map(option => ({ value: option.value, label: option.label }))
|
|
290
|
+
}));
|
|
167
291
|
options[field.name] = value;
|
|
168
292
|
}
|
|
169
293
|
}
|
|
@@ -190,4 +314,240 @@ async function handleOAuthIntegration(apiKey, integrationType, configFields) {
|
|
|
190
314
|
s.stop("Authorization timed out — please try again");
|
|
191
315
|
return false;
|
|
192
316
|
}
|
|
317
|
+
async function handleDisconnect(apiKey, integrationType) {
|
|
318
|
+
const s = createSpinner();
|
|
319
|
+
s.start("Disconnecting integration");
|
|
320
|
+
try {
|
|
321
|
+
const result = await disconnectIntegration(apiKey, integrationType);
|
|
322
|
+
if (result.success) {
|
|
323
|
+
s.stop("Integration disconnected successfully");
|
|
324
|
+
return true;
|
|
325
|
+
}
|
|
326
|
+
s.stop(`Failed to disconnect: ${result.error || "Unknown error"}`);
|
|
327
|
+
return false;
|
|
328
|
+
}
|
|
329
|
+
catch (err) {
|
|
330
|
+
s.stop("Failed to disconnect integration");
|
|
331
|
+
console.error(chalk.red(` ${err.message}`));
|
|
332
|
+
return false;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
function abortIfCancelled(value) {
|
|
336
|
+
if (isCancel(value)) {
|
|
337
|
+
cancel("Operation cancelled.");
|
|
338
|
+
process.exit(0);
|
|
339
|
+
}
|
|
340
|
+
return value;
|
|
341
|
+
}
|
|
342
|
+
// -------------------------------------------------------------------------
|
|
343
|
+
// Non-interactive subcommands
|
|
344
|
+
// -------------------------------------------------------------------------
|
|
345
|
+
function parseIntegrationTypeOrThrow(value) {
|
|
346
|
+
const normalized = value.toLowerCase();
|
|
347
|
+
const match = Object.values(IntegrationType).find(v => v === normalized);
|
|
348
|
+
if (!match) {
|
|
349
|
+
throw new CliError("unknown_integration_type", `Unknown integration type "${value}".`, {
|
|
350
|
+
detail: `Supported: ${Object.values(IntegrationType)
|
|
351
|
+
.filter(v => !INTERNAL_INTEGRATION_TYPES.has(v))
|
|
352
|
+
.join(", ")}`
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
return match;
|
|
356
|
+
}
|
|
357
|
+
function summaryFor(displayState) {
|
|
358
|
+
if (displayState.status === "connected") {
|
|
359
|
+
return { summaryLabel: displayState.summaryLabel, summaryValue: displayState.summaryValue };
|
|
360
|
+
}
|
|
361
|
+
return { summaryLabel: null, summaryValue: null };
|
|
362
|
+
}
|
|
363
|
+
export async function integrateList(opts = {}) {
|
|
364
|
+
const apiKey = readApiKeyOrBail();
|
|
365
|
+
const integrations = (await fetchIntegrations(apiKey)).filter(i => !INTERNAL_INTEGRATION_TYPES.has(i.integrationType));
|
|
366
|
+
const filtered = integrations.filter(i => {
|
|
367
|
+
if (opts.status === "connected")
|
|
368
|
+
return i.isActive;
|
|
369
|
+
if (opts.status === "disconnected")
|
|
370
|
+
return !i.isActive;
|
|
371
|
+
return true;
|
|
372
|
+
});
|
|
373
|
+
if (opts.json) {
|
|
374
|
+
const payload = {
|
|
375
|
+
integrations: await Promise.all(filtered.map(async (integration) => {
|
|
376
|
+
const { summaryLabel, summaryValue } = summaryFor(integration.cliDisplayState);
|
|
377
|
+
return {
|
|
378
|
+
type: integration.integrationType,
|
|
379
|
+
status: integration.isActive ? "connected" : "disconnected",
|
|
380
|
+
name: INTEGRATION_METADATA[integration.integrationType]?.name ?? integration.integrationType,
|
|
381
|
+
summaryLabel,
|
|
382
|
+
summaryValue
|
|
383
|
+
};
|
|
384
|
+
}))
|
|
385
|
+
};
|
|
386
|
+
process.stdout.write(JSON.stringify(payload, null, 2) + "\n");
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
389
|
+
if (filtered.length === 0) {
|
|
390
|
+
process.stdout.write("No integrations.\n");
|
|
391
|
+
return;
|
|
392
|
+
}
|
|
393
|
+
const longest = filtered.reduce((max, i) => Math.max(max, (INTEGRATION_METADATA[i.integrationType]?.name ?? i.integrationType).length), 0);
|
|
394
|
+
for (const integration of filtered) {
|
|
395
|
+
const name = (INTEGRATION_METADATA[integration.integrationType]?.name ?? integration.integrationType).padEnd(longest);
|
|
396
|
+
const status = integration.isActive ? chalk.green("connected") : chalk.dim("not connected");
|
|
397
|
+
const { summaryLabel, summaryValue } = summaryFor(integration.cliDisplayState);
|
|
398
|
+
const summary = summaryLabel && summaryValue ? ` ${chalk.dim(`${summaryLabel}: ${summaryValue}`)}` : "";
|
|
399
|
+
process.stdout.write(` ${name} ${status}${summary}\n`);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
export async function integrateDescribe(opts) {
|
|
403
|
+
const type = parseIntegrationTypeOrThrow(opts.integrationType);
|
|
404
|
+
const apiKey = readApiKeyOrBail();
|
|
405
|
+
const [integrations, fieldsResponse] = await Promise.all([fetchIntegrations(apiKey), fetchIntegrationFields(apiKey, type)]);
|
|
406
|
+
const match = integrations.find(i => i.integrationType === type);
|
|
407
|
+
const payload = {
|
|
408
|
+
type,
|
|
409
|
+
name: INTEGRATION_METADATA[type]?.name ?? type,
|
|
410
|
+
status: match?.isActive ? "connected" : "disconnected",
|
|
411
|
+
installationType: fieldsResponse.installationType,
|
|
412
|
+
fields: fieldsResponse.fields,
|
|
413
|
+
setup: fieldsResponse.setup ?? null
|
|
414
|
+
};
|
|
415
|
+
if (opts.json) {
|
|
416
|
+
process.stdout.write(JSON.stringify(payload, null, 2) + "\n");
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
process.stdout.write(`${chalk.bold(payload.name)} ${payload.status === "connected" ? chalk.green("connected") : chalk.dim("not connected")}\n`);
|
|
420
|
+
process.stdout.write(`Installation: ${payload.installationType}\n\n`);
|
|
421
|
+
if (payload.installationType === "form") {
|
|
422
|
+
process.stdout.write("Fields:\n");
|
|
423
|
+
for (const field of payload.fields) {
|
|
424
|
+
const req = field.required ? chalk.yellow(" (required)") : chalk.dim(" (optional)");
|
|
425
|
+
const hint = field.hint ? ` — ${field.hint}` : "";
|
|
426
|
+
process.stdout.write(` ${chalk.cyan(field.name)} [${field.type}]${req}${chalk.dim(hint)}\n`);
|
|
427
|
+
}
|
|
428
|
+
if (payload.setup) {
|
|
429
|
+
process.stdout.write(`\nSetup: ${chalk.cyan(payload.setup.url)}\n`);
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
else {
|
|
433
|
+
process.stdout.write("OAuth — use `terse integrate connect <type>` in an interactive terminal, or open the auth URL manually and poll with `terse integrate wait`.\n");
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
export async function integrateConnect(opts) {
|
|
437
|
+
const type = parseIntegrationTypeOrThrow(opts.integrationType);
|
|
438
|
+
const apiKey = readApiKeyOrBail();
|
|
439
|
+
const [integrations, fieldsResponse] = await Promise.all([fetchIntegrations(apiKey), fetchIntegrationFields(apiKey, type)]);
|
|
440
|
+
const existing = integrations.find(i => i.integrationType === type);
|
|
441
|
+
if (existing?.isActive && !opts.force) {
|
|
442
|
+
const message = `${INTEGRATION_METADATA[type]?.name ?? type} is already connected. Pass --force to refresh.`;
|
|
443
|
+
if (opts.json) {
|
|
444
|
+
process.stdout.write(JSON.stringify({ type, status: "connected", changed: false, message }, null, 2) + "\n");
|
|
445
|
+
}
|
|
446
|
+
else {
|
|
447
|
+
process.stdout.write(chalk.dim(message) + "\n");
|
|
448
|
+
}
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
451
|
+
if (fieldsResponse.installationType === "oauth") {
|
|
452
|
+
const installation = await fetchInstallationUrl(apiKey, type);
|
|
453
|
+
openUrlInBrowser(installation.oauthUrl);
|
|
454
|
+
const waitCommand = `terse integrate wait ${type}`;
|
|
455
|
+
if (opts.json) {
|
|
456
|
+
const payload = {
|
|
457
|
+
handoff: "oauth",
|
|
458
|
+
type,
|
|
459
|
+
status: "disconnected",
|
|
460
|
+
url: installation.oauthUrl,
|
|
461
|
+
waitCommand,
|
|
462
|
+
message: `Browser opened. Run \`${waitCommand}\` to block until authorization completes.`
|
|
463
|
+
};
|
|
464
|
+
process.stdout.write(JSON.stringify(payload, null, 2) + "\n");
|
|
465
|
+
process.exitCode = 2;
|
|
466
|
+
return;
|
|
467
|
+
}
|
|
468
|
+
const name = INTEGRATION_METADATA[type]?.name ?? type;
|
|
469
|
+
process.stdout.write(chalk.yellow(`ACTION REQUIRED: authorize ${name} in your browser.`) + "\n");
|
|
470
|
+
process.stdout.write(chalk.cyan(` ${installation.oauthUrl}`) + "\n");
|
|
471
|
+
process.stdout.write(chalk.dim(` Browser opened. Run \`${waitCommand}\` to block until authorization completes.`) + "\n");
|
|
472
|
+
process.exitCode = 2;
|
|
473
|
+
return;
|
|
474
|
+
}
|
|
475
|
+
const formFields = fieldsResponse.fields;
|
|
476
|
+
const fromFlags = parseKeyValueFlags(opts.fieldFlags);
|
|
477
|
+
const fromStdin = opts.fieldsStdin ? await readFieldsFromStdin() : {};
|
|
478
|
+
const provided = { ...fromFlags, ...fromStdin };
|
|
479
|
+
const knownFieldNames = new Set(formFields.map(f => f.name));
|
|
480
|
+
const unknown = Object.keys(provided).filter(name => !knownFieldNames.has(name));
|
|
481
|
+
if (unknown.length > 0) {
|
|
482
|
+
throw new CliError("unknown_fields", `Unknown field(s): ${unknown.join(", ")}`, {
|
|
483
|
+
detail: `Valid fields: ${formFields.map(f => f.name).join(", ")}`
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
const missing = formFields.filter(f => f.required && !provided[f.name]).map(f => f.name);
|
|
487
|
+
if (missing.length > 0) {
|
|
488
|
+
throw new CliError("missing_fields", `Missing required field(s): ${missing.join(", ")}`, {
|
|
489
|
+
detail: `Run \`terse integrate describe ${type} --json\` to see the full field schema.`
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
const result = await submitIntegrationForm(apiKey, type, provided);
|
|
493
|
+
if (!result.success) {
|
|
494
|
+
throw new CliError("connect_failed", result.error ?? "Failed to connect integration.");
|
|
495
|
+
}
|
|
496
|
+
const message = existing?.isActive ? `${type} refreshed.` : `${type} connected.`;
|
|
497
|
+
if (opts.json) {
|
|
498
|
+
process.stdout.write(JSON.stringify({ type, status: "connected", changed: true, message }, null, 2) + "\n");
|
|
499
|
+
}
|
|
500
|
+
else {
|
|
501
|
+
process.stdout.write(chalk.green(message) + "\n");
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
export async function integrateDisconnect(opts) {
|
|
505
|
+
const type = parseIntegrationTypeOrThrow(opts.integrationType);
|
|
506
|
+
const apiKey = readApiKeyOrBail();
|
|
507
|
+
const result = await disconnectIntegration(apiKey, type);
|
|
508
|
+
if (!result.success) {
|
|
509
|
+
throw new CliError("disconnect_failed", result.error ?? "Failed to disconnect integration.");
|
|
510
|
+
}
|
|
511
|
+
const message = `${type} disconnected.`;
|
|
512
|
+
if (opts.json) {
|
|
513
|
+
process.stdout.write(JSON.stringify({ type, status: "disconnected", changed: true, message }, null, 2) + "\n");
|
|
514
|
+
}
|
|
515
|
+
else {
|
|
516
|
+
process.stdout.write(chalk.green(message) + "\n");
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
const WAIT_DEFAULT_TIMEOUT_S = 300;
|
|
520
|
+
const WAIT_MAX_TIMEOUT_S = 900;
|
|
521
|
+
const WAIT_INTERVAL_MS = 2000;
|
|
522
|
+
export async function integrateWait(opts) {
|
|
523
|
+
const type = parseIntegrationTypeOrThrow(opts.integrationType);
|
|
524
|
+
const requested = opts.timeoutSeconds ?? WAIT_DEFAULT_TIMEOUT_S;
|
|
525
|
+
const timeoutSeconds = Math.max(1, Math.min(WAIT_MAX_TIMEOUT_S, requested));
|
|
526
|
+
const apiKey = readApiKeyOrBail();
|
|
527
|
+
const deadline = Date.now() + timeoutSeconds * 1000;
|
|
528
|
+
let lastError = null;
|
|
529
|
+
while (Date.now() < deadline) {
|
|
530
|
+
try {
|
|
531
|
+
const integrations = await fetchIntegrations(apiKey);
|
|
532
|
+
const match = integrations.find(i => i.integrationType === type);
|
|
533
|
+
if (match?.isActive) {
|
|
534
|
+
const message = `${type} is connected.`;
|
|
535
|
+
if (opts.json) {
|
|
536
|
+
process.stdout.write(JSON.stringify({ type, status: "connected", message }, null, 2) + "\n");
|
|
537
|
+
}
|
|
538
|
+
else {
|
|
539
|
+
process.stdout.write(chalk.green(message) + "\n");
|
|
540
|
+
}
|
|
541
|
+
return;
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
catch (err) {
|
|
545
|
+
lastError = err instanceof Error ? err.message : String(err);
|
|
546
|
+
}
|
|
547
|
+
await new Promise(resolve => setTimeout(resolve, WAIT_INTERVAL_MS));
|
|
548
|
+
}
|
|
549
|
+
throw new CliError("wait_timeout", `Timed out after ${timeoutSeconds}s waiting for ${type} to connect.`, {
|
|
550
|
+
detail: lastError ? `Last error: ${lastError}` : "Check the integration's connection status with `terse integrate list`."
|
|
551
|
+
});
|
|
552
|
+
}
|
|
193
553
|
//# 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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../src/commands/replay.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../src/commands/replay.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAGxE,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,gBAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBzG"}
|