terse-cli 0.3.8 → 0.4.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/cliUi.js +1 -1
- package/dist/cliUi.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +138 -22
- package/dist/commands/deploy.js.map +1 -1
- package/dist/providers/typescript/TypeScriptProvider.js +2 -2
- package/dist/providers/typescript/TypeScriptProvider.js.map +1 -1
- package/dist/providers/typescript/durableRuntime.d.ts +1 -1
- package/dist/providers/typescript/durableRuntime.d.ts.map +1 -1
- package/dist/providers/typescript/durableRuntime.js +7 -6
- package/dist/providers/typescript/durableRuntime.js.map +1 -1
- package/dist/providers/typescript/workflowShim.d.ts +2 -0
- package/dist/providers/typescript/workflowShim.d.ts.map +1 -0
- package/dist/providers/typescript/workflowShim.js +51 -0
- package/dist/providers/typescript/workflowShim.js.map +1 -0
- package/package.json +5 -5
- package/templates/typescript/init/package.json.hbs +1 -1
- package/templates/typescript/workflow-shim/api.js +5 -0
- package/templates/typescript/workflow-shim/index.js +2 -0
- package/templates/typescript/workflow-shim/internal/builtins.js +83 -0
- package/templates/typescript/workflow-shim/internal/class-serialization.js +1 -0
- package/templates/typescript/workflow-shim/runtime.js +1 -0
- package/templates/typescript/workflow-shim/stdlib.js +18 -0
- package/templates/typescript/workflow-shim/workflow.js +2 -0
- package/dist/_tmp_create_project.d.ts +0 -2
- package/dist/_tmp_create_project.d.ts.map +0 -1
- package/dist/_tmp_create_project.js +0 -17
- package/dist/_tmp_create_project.js.map +0 -1
- package/dist/_tmp_delete_agent.d.ts +0 -2
- package/dist/_tmp_delete_agent.d.ts.map +0 -1
- package/dist/_tmp_delete_agent.js +0 -14
- package/dist/_tmp_delete_agent.js.map +0 -1
- package/dist/_tmp_manual_trigger.d.ts +0 -2
- package/dist/_tmp_manual_trigger.d.ts.map +0 -1
- package/dist/_tmp_manual_trigger.js +0 -17
- package/dist/_tmp_manual_trigger.js.map +0 -1
- package/dist/_tmp_patch_active.d.ts +0 -2
- package/dist/_tmp_patch_active.d.ts.map +0 -1
- package/dist/_tmp_patch_active.js +0 -21
- package/dist/_tmp_patch_active.js.map +0 -1
- package/dist/attach.d.ts +0 -3
- package/dist/attach.d.ts.map +0 -1
- package/dist/attach.js +0 -61
- package/dist/attach.js.map +0 -1
- package/dist/auth.d.ts +0 -15
- package/dist/auth.d.ts.map +0 -1
- package/dist/auth.js +0 -169
- package/dist/auth.js.map +0 -1
- package/dist/codegen.d.ts +0 -135
- package/dist/codegen.d.ts.map +0 -1
- package/dist/codegen.js +0 -1196
- package/dist/codegen.js.map +0 -1
- package/dist/commands/deployTheme.d.ts +0 -28
- package/dist/commands/deployTheme.d.ts.map +0 -1
- package/dist/commands/deployTheme.js +0 -68
- package/dist/commands/deployTheme.js.map +0 -1
- package/dist/commands/dev.d.ts +0 -3
- package/dist/commands/dev.d.ts.map +0 -1
- package/dist/commands/dev.js +0 -47
- package/dist/commands/dev.js.map +0 -1
- package/dist/commands/fsExec.d.ts +0 -8
- package/dist/commands/fsExec.d.ts.map +0 -1
- package/dist/commands/fsExec.js +0 -46
- package/dist/commands/fsExec.js.map +0 -1
- package/dist/commands/metaAdsScope.d.ts +0 -12
- package/dist/commands/metaAdsScope.d.ts.map +0 -1
- package/dist/commands/metaAdsScope.js +0 -120
- package/dist/commands/metaAdsScope.js.map +0 -1
- package/dist/commands/serve.d.ts +0 -1
- package/dist/commands/serve.d.ts.map +0 -1
- package/dist/commands/serve.js +0 -2
- package/dist/commands/serve.js.map +0 -1
- package/dist/commands/terseCliTheme.d.ts +0 -28
- package/dist/commands/terseCliTheme.d.ts.map +0 -1
- package/dist/commands/terseCliTheme.js +0 -68
- package/dist/commands/terseCliTheme.js.map +0 -1
- package/dist/commands/tool.d.ts +0 -6
- package/dist/commands/tool.d.ts.map +0 -1
- package/dist/commands/tool.js +0 -34
- package/dist/commands/tool.js.map +0 -1
- package/dist/data/standardSlackEmoji.d.ts +0 -2
- package/dist/data/standardSlackEmoji.d.ts.map +0 -1
- package/dist/data/standardSlackEmoji.js +0 -1978
- package/dist/data/standardSlackEmoji.js.map +0 -1
- package/dist/data/standardSlackEmoji.json +0 -1974
- package/dist/deploy.d.ts +0 -3
- package/dist/deploy.d.ts.map +0 -1
- package/dist/deploy.js +0 -124
- package/dist/deploy.js.map +0 -1
- package/dist/generate.d.ts +0 -3
- package/dist/generate.d.ts.map +0 -1
- package/dist/generate.js +0 -282
- package/dist/generate.js.map +0 -1
- package/dist/init.d.ts +0 -3
- package/dist/init.d.ts.map +0 -1
- package/dist/init.js +0 -98
- package/dist/init.js.map +0 -1
- package/dist/integrate.d.ts +0 -3
- package/dist/integrate.d.ts.map +0 -1
- package/dist/integrate.js +0 -214
- package/dist/integrate.js.map +0 -1
- package/dist/nonInteractive.d.ts +0 -20
- package/dist/nonInteractive.d.ts.map +0 -1
- package/dist/nonInteractive.js +0 -60
- package/dist/nonInteractive.js.map +0 -1
- package/dist/perf.d.ts +0 -9
- package/dist/perf.d.ts.map +0 -1
- package/dist/perf.js +0 -59
- package/dist/perf.js.map +0 -1
- package/dist/providers/codegen.test.d.ts +0 -2
- package/dist/providers/codegen.test.d.ts.map +0 -1
- package/dist/providers/codegen.test.js +0 -45
- package/dist/providers/codegen.test.js.map +0 -1
- package/dist/providers/python/PythonProvider.d.ts +0 -51
- package/dist/providers/python/PythonProvider.d.ts.map +0 -1
- package/dist/providers/python/PythonProvider.js +0 -414
- package/dist/providers/python/PythonProvider.js.map +0 -1
- package/dist/providers/python/PythonProvider.test.d.ts +0 -2
- package/dist/providers/python/PythonProvider.test.d.ts.map +0 -1
- package/dist/providers/python/PythonProvider.test.js +0 -169
- package/dist/providers/python/PythonProvider.test.js.map +0 -1
- package/dist/providers/python/preparePythonCodegenData.d.ts +0 -139
- package/dist/providers/python/preparePythonCodegenData.d.ts.map +0 -1
- package/dist/providers/python/preparePythonCodegenData.js +0 -452
- package/dist/providers/python/preparePythonCodegenData.js.map +0 -1
- package/dist/providers/python/pythonTemplateEngine.d.ts +0 -3
- package/dist/providers/python/pythonTemplateEngine.d.ts.map +0 -1
- package/dist/providers/python/pythonTemplateEngine.js +0 -30
- package/dist/providers/python/pythonTemplateEngine.js.map +0 -1
- package/dist/providers/shared/shellUtils.d.ts +0 -2
- package/dist/providers/shared/shellUtils.d.ts.map +0 -1
- package/dist/providers/shared/shellUtils.js +0 -25
- package/dist/providers/shared/shellUtils.js.map +0 -1
- package/dist/providers/typescript/attioProjection.d.ts +0 -50
- package/dist/providers/typescript/attioProjection.d.ts.map +0 -1
- package/dist/providers/typescript/attioProjection.js +0 -358
- package/dist/providers/typescript/attioProjection.js.map +0 -1
- package/dist/providers/typescript/modules/cursor/CursorModule.d.ts +0 -20
- package/dist/providers/typescript/modules/cursor/CursorModule.d.ts.map +0 -1
- package/dist/providers/typescript/modules/cursor/CursorModule.js +0 -27
- package/dist/providers/typescript/modules/cursor/CursorModule.js.map +0 -1
- package/dist/providers/typescript/prepareCodegenData.d.ts +0 -166
- package/dist/providers/typescript/prepareCodegenData.d.ts.map +0 -1
- package/dist/providers/typescript/prepareCodegenData.js +0 -1431
- package/dist/providers/typescript/prepareCodegenData.js.map +0 -1
- package/dist/providers/typescript/prepareCodegenData.test.d.ts +0 -2
- package/dist/providers/typescript/prepareCodegenData.test.d.ts.map +0 -1
- package/dist/providers/typescript/prepareCodegenData.test.js +0 -54
- package/dist/providers/typescript/prepareCodegenData.test.js.map +0 -1
- package/dist/providers/typescript/projectedTypes.d.ts +0 -11
- package/dist/providers/typescript/projectedTypes.d.ts.map +0 -1
- package/dist/providers/typescript/projectedTypes.js +0 -53
- package/dist/providers/typescript/projectedTypes.js.map +0 -1
- package/dist/providers/typescript/projectionPrinter.d.ts +0 -26
- package/dist/providers/typescript/projectionPrinter.d.ts.map +0 -1
- package/dist/providers/typescript/projectionPrinter.js +0 -110
- package/dist/providers/typescript/projectionPrinter.js.map +0 -1
- package/dist/providers/typescript/replayLogDedupe.d.ts +0 -6
- package/dist/providers/typescript/replayLogDedupe.d.ts.map +0 -1
- package/dist/providers/typescript/replayLogDedupe.js +0 -156
- package/dist/providers/typescript/replayLogDedupe.js.map +0 -1
- package/dist/providers/typescript/triggerPayloads.d.ts +0 -7
- package/dist/providers/typescript/triggerPayloads.d.ts.map +0 -1
- package/dist/providers/typescript/triggerPayloads.js +0 -60
- package/dist/providers/typescript/triggerPayloads.js.map +0 -1
- package/dist/providers/typescript/triggerTypeRegistry.d.ts +0 -7
- package/dist/providers/typescript/triggerTypeRegistry.d.ts.map +0 -1
- package/dist/providers/typescript/triggerTypeRegistry.js +0 -198
- package/dist/providers/typescript/triggerTypeRegistry.js.map +0 -1
- package/dist/run.d.ts +0 -3
- package/dist/run.d.ts.map +0 -1
- package/dist/run.js +0 -72
- package/dist/run.js.map +0 -1
- package/dist/sampleEventCache.d.ts +0 -9
- package/dist/sampleEventCache.d.ts.map +0 -1
- package/dist/sampleEventCache.js +0 -47
- package/dist/sampleEventCache.js.map +0 -1
- package/dist/sampleEventId.d.ts +0 -9
- package/dist/sampleEventId.d.ts.map +0 -1
- package/dist/sampleEventId.js +0 -16
- package/dist/sampleEventId.js.map +0 -1
- package/dist/shared/ApiRoutes.d.ts +0 -348
- package/dist/shared/ApiRoutes.d.ts.map +0 -1
- package/dist/shared/ApiRoutes.js +0 -325
- package/dist/shared/ApiRoutes.js.map +0 -1
- package/dist/shared/ApprovalTypes.d.ts +0 -29
- package/dist/shared/ApprovalTypes.d.ts.map +0 -1
- package/dist/shared/ApprovalTypes.js +0 -8
- package/dist/shared/ApprovalTypes.js.map +0 -1
- package/dist/shared/ClientBoundTools.d.ts +0 -37
- package/dist/shared/ClientBoundTools.d.ts.map +0 -1
- package/dist/shared/ClientBoundTools.js +0 -37
- package/dist/shared/ClientBoundTools.js.map +0 -1
- package/dist/shared/Configs.d.ts +0 -488
- package/dist/shared/Configs.d.ts.map +0 -1
- package/dist/shared/Configs.js +0 -785
- package/dist/shared/Configs.js.map +0 -1
- package/dist/shared/DonatedState.d.ts +0 -5
- package/dist/shared/DonatedState.d.ts.map +0 -1
- package/dist/shared/DonatedState.js +0 -13
- package/dist/shared/DonatedState.js.map +0 -1
- package/dist/shared/Entities.d.ts +0 -8
- package/dist/shared/Entities.d.ts.map +0 -1
- package/dist/shared/Entities.js +0 -9
- package/dist/shared/Entities.js.map +0 -1
- package/dist/shared/FrontendRoutes.d.ts +0 -54
- package/dist/shared/FrontendRoutes.d.ts.map +0 -1
- package/dist/shared/FrontendRoutes.js +0 -54
- package/dist/shared/FrontendRoutes.js.map +0 -1
- package/dist/shared/Integrations.d.ts +0 -235
- package/dist/shared/Integrations.d.ts.map +0 -1
- package/dist/shared/Integrations.js +0 -143
- package/dist/shared/Integrations.js.map +0 -1
- package/dist/shared/InvalidationKeys.d.ts +0 -53
- package/dist/shared/InvalidationKeys.d.ts.map +0 -1
- package/dist/shared/InvalidationKeys.js +0 -166
- package/dist/shared/InvalidationKeys.js.map +0 -1
- package/dist/shared/ModelEvents.d.ts +0 -176
- package/dist/shared/ModelEvents.d.ts.map +0 -1
- package/dist/shared/ModelEvents.js +0 -29
- package/dist/shared/ModelEvents.js.map +0 -1
- package/dist/shared/Notifications.d.ts +0 -43
- package/dist/shared/Notifications.d.ts.map +0 -1
- package/dist/shared/Notifications.js +0 -6
- package/dist/shared/Notifications.js.map +0 -1
- package/dist/shared/RunHistoryTypes.d.ts +0 -95
- package/dist/shared/RunHistoryTypes.d.ts.map +0 -1
- package/dist/shared/RunHistoryTypes.js +0 -11
- package/dist/shared/RunHistoryTypes.js.map +0 -1
- package/dist/shared/SentNotifications.d.ts +0 -30
- package/dist/shared/SentNotifications.d.ts.map +0 -1
- package/dist/shared/SentNotifications.js +0 -13
- package/dist/shared/SentNotifications.js.map +0 -1
- package/dist/shared/SocketEvents.d.ts +0 -49
- package/dist/shared/SocketEvents.d.ts.map +0 -1
- package/dist/shared/SocketEvents.js +0 -53
- package/dist/shared/SocketEvents.js.map +0 -1
- package/dist/shared/Survey.d.ts +0 -10
- package/dist/shared/Survey.d.ts.map +0 -1
- package/dist/shared/Survey.js +0 -2
- package/dist/shared/Survey.js.map +0 -1
- package/dist/shared/TicketSystem.d.ts +0 -154
- package/dist/shared/TicketSystem.d.ts.map +0 -1
- package/dist/shared/TicketSystem.js +0 -21
- package/dist/shared/TicketSystem.js.map +0 -1
- package/dist/shared/ToolDisplayUtils.d.ts +0 -30
- package/dist/shared/ToolDisplayUtils.d.ts.map +0 -1
- package/dist/shared/ToolDisplayUtils.js +0 -1163
- package/dist/shared/ToolDisplayUtils.js.map +0 -1
- package/dist/shared/ToolsTypes.d.ts +0 -18
- package/dist/shared/ToolsTypes.d.ts.map +0 -1
- package/dist/shared/ToolsTypes.js +0 -2
- package/dist/shared/ToolsTypes.js.map +0 -1
- package/dist/shared/types.d.ts +0 -1732
- package/dist/shared/types.d.ts.map +0 -1
- package/dist/shared/types.js +0 -17
- package/dist/shared/types.js.map +0 -1
- package/dist/test.d.ts +0 -3
- package/dist/test.d.ts.map +0 -1
- package/dist/test.js +0 -82
- package/dist/test.js.map +0 -1
- package/dist/triggerParseDetail.d.ts +0 -8
- package/dist/triggerParseDetail.d.ts.map +0 -1
- package/dist/triggerParseDetail.js +0 -30
- package/dist/triggerParseDetail.js.map +0 -1
- package/dist/util.d.ts +0 -3
- package/dist/util.d.ts.map +0 -1
- package/dist/util.js +0 -5
- package/dist/util.js.map +0 -1
- package/templates/typescript/codegen/.impeccable/hook.cache.json +0 -1
package/dist/integrate.js
DELETED
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
import { confirm, input, password, select } from "@inquirer/prompts";
|
|
2
|
-
import chalk from "chalk";
|
|
3
|
-
import { spawn } from "node:child_process";
|
|
4
|
-
import ora from "ora";
|
|
5
|
-
import { INTEGRATION_METADATA, IntegrationType } from "terse-types";
|
|
6
|
-
import { readApiKey, readApiKeyOrBail } from "./api.js";
|
|
7
|
-
import { generate } from "./generate.js";
|
|
8
|
-
import { fetchInstallationUrl, fetchIntegrationFields, fetchIntegrations, pollForConnection, submitIntegrationForm } from "./integrationApi.js";
|
|
9
|
-
export async function integrate() {
|
|
10
|
-
const apiKey = readApiKeyOrBail();
|
|
11
|
-
let didChangeAnyIntegration = false;
|
|
12
|
-
let continueLoop = true;
|
|
13
|
-
while (continueLoop) {
|
|
14
|
-
const result = await connectOneIntegration(apiKey);
|
|
15
|
-
didChangeAnyIntegration = didChangeAnyIntegration || result.status !== "unchanged";
|
|
16
|
-
console.log("");
|
|
17
|
-
continueLoop = await confirm({ message: "Connect another integration?", default: false });
|
|
18
|
-
}
|
|
19
|
-
if (didChangeAnyIntegration) {
|
|
20
|
-
await generate();
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
export async function listAndPromptIntegrations() {
|
|
24
|
-
const apiKey = readApiKey();
|
|
25
|
-
if (!apiKey)
|
|
26
|
-
return;
|
|
27
|
-
let integrations;
|
|
28
|
-
try {
|
|
29
|
-
integrations = await fetchIntegrations(apiKey);
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
console.error(chalk.red("Failed to fetch integrations"));
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
const active = integrations.filter(i => i.isActive && i.integrationType !== IntegrationType.TERSE && i.integrationType !== IntegrationType.CRON_JOB);
|
|
36
|
-
if (active.length > 0) {
|
|
37
|
-
console.log("\n Connected integrations:\n");
|
|
38
|
-
for (const i of active) {
|
|
39
|
-
const meta = INTEGRATION_METADATA[i.integrationType];
|
|
40
|
-
console.log(` ${chalk.green("✓")} ${meta?.name || i.integrationType}`);
|
|
41
|
-
}
|
|
42
|
-
console.log("");
|
|
43
|
-
const addMore = await confirm({ message: "Connect another integration?", default: false });
|
|
44
|
-
if (addMore)
|
|
45
|
-
await integrate();
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
console.log(chalk.dim("\n No integrated tools yet.\n"));
|
|
49
|
-
await integrate();
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
async function connectOneIntegration(apiKey) {
|
|
53
|
-
const spinner = ora("Fetching integrations").start();
|
|
54
|
-
let integrations;
|
|
55
|
-
try {
|
|
56
|
-
integrations = await fetchIntegrations(apiKey);
|
|
57
|
-
spinner.stop();
|
|
58
|
-
}
|
|
59
|
-
catch (err) {
|
|
60
|
-
spinner.fail("Failed to fetch integrations");
|
|
61
|
-
console.error(chalk.red(` ${err.message}`));
|
|
62
|
-
process.exit(1);
|
|
63
|
-
}
|
|
64
|
-
// Filter out system integrations
|
|
65
|
-
const userFacing = integrations.filter(i => i.integrationType !== IntegrationType.TERSE && i.integrationType !== IntegrationType.CRON_JOB);
|
|
66
|
-
if (userFacing.length === 0) {
|
|
67
|
-
console.log(chalk.yellow("\n No integrations available.\n"));
|
|
68
|
-
return { status: "unchanged" };
|
|
69
|
-
}
|
|
70
|
-
const selected = await select({
|
|
71
|
-
message: "Select an integration to connect",
|
|
72
|
-
choices: userFacing.map(i => {
|
|
73
|
-
const meta = INTEGRATION_METADATA[i.integrationType];
|
|
74
|
-
const name = meta?.name || i.integrationType;
|
|
75
|
-
const status = i.isActive ? chalk.green(" ✓ connected") : chalk.dim(" not connected");
|
|
76
|
-
return {
|
|
77
|
-
name: `${name}${status}`,
|
|
78
|
-
value: i.integrationType,
|
|
79
|
-
description: meta?.description
|
|
80
|
-
};
|
|
81
|
-
})
|
|
82
|
-
});
|
|
83
|
-
const selectedIntegration = userFacing.find(i => i.integrationType === selected);
|
|
84
|
-
// Fetch fields for the selected integration
|
|
85
|
-
const fieldsSpinner = ora("Loading integration details").start();
|
|
86
|
-
let fieldsResponse;
|
|
87
|
-
try {
|
|
88
|
-
fieldsResponse = await fetchIntegrationFields(apiKey, selected);
|
|
89
|
-
fieldsSpinner.stop();
|
|
90
|
-
}
|
|
91
|
-
catch (err) {
|
|
92
|
-
fieldsSpinner.fail("Failed to load integration details");
|
|
93
|
-
console.error(chalk.red(` ${err.message}`));
|
|
94
|
-
process.exit(1);
|
|
95
|
-
}
|
|
96
|
-
if (fieldsResponse.installationType === "form") {
|
|
97
|
-
const didUpdate = await handleFormIntegration(apiKey, selected, fieldsResponse.fields);
|
|
98
|
-
return {
|
|
99
|
-
status: didUpdate ? (selectedIntegration?.isActive ? "modified" : "added") : "unchanged",
|
|
100
|
-
integrationType: selected
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
else if (fieldsResponse.installationType === "oauth") {
|
|
104
|
-
const didUpdate = await handleOAuthIntegration(apiKey, selected, fieldsResponse.fields);
|
|
105
|
-
return {
|
|
106
|
-
status: didUpdate ? (selectedIntegration?.isActive ? "modified" : "added") : "unchanged",
|
|
107
|
-
integrationType: selected
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
console.log(chalk.yellow(`\n Integration '${selected}' has an unsupported installation type.\n`));
|
|
112
|
-
return {
|
|
113
|
-
status: "unchanged",
|
|
114
|
-
integrationType: selected
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
// ─── Form-based integrations (Datadog, PostHog, Snowflake, etc.) ─────────────
|
|
119
|
-
async function handleFormIntegration(apiKey, integrationType, fields) {
|
|
120
|
-
console.log("");
|
|
121
|
-
const formValues = {};
|
|
122
|
-
for (const field of fields) {
|
|
123
|
-
const hint = field.hint ? chalk.dim(` (${field.hint})`) : "";
|
|
124
|
-
if (field.type === "password") {
|
|
125
|
-
formValues[field.name] = await password({
|
|
126
|
-
message: `${field.label}${hint}`,
|
|
127
|
-
validate: field.required ? v => (v.length > 0 ? true : `${field.label} is required`) : undefined
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
formValues[field.name] = await input({
|
|
132
|
-
message: `${field.label}${hint}`,
|
|
133
|
-
default: field.placeholder,
|
|
134
|
-
validate: field.required ? v => (v.length > 0 ? true : `${field.label} is required`) : undefined
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
const spinner = ora("Connecting integration").start();
|
|
139
|
-
try {
|
|
140
|
-
const result = await submitIntegrationForm(apiKey, integrationType, formValues);
|
|
141
|
-
if (result.success) {
|
|
142
|
-
spinner.succeed(chalk.green("Integration connected successfully"));
|
|
143
|
-
return true;
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
spinner.fail(`Failed to connect: ${result.error || "Unknown error"}`);
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
catch (err) {
|
|
151
|
-
spinner.fail("Failed to connect integration");
|
|
152
|
-
console.error(chalk.red(` ${err.message}`));
|
|
153
|
-
return false;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
// ─── OAuth-based integrations (Slack, GitHub, Gmail, etc.) ───────────────────
|
|
157
|
-
async function handleOAuthIntegration(apiKey, integrationType, configFields) {
|
|
158
|
-
// Prompt for configuration fields if any (e.g. Slack's bot vs user choice)
|
|
159
|
-
let options;
|
|
160
|
-
if (configFields.length > 0) {
|
|
161
|
-
console.log("");
|
|
162
|
-
options = {};
|
|
163
|
-
for (const field of configFields) {
|
|
164
|
-
const value = await select({
|
|
165
|
-
message: field.label,
|
|
166
|
-
choices: field.options.map(o => ({ name: o.label, value: o.value }))
|
|
167
|
-
});
|
|
168
|
-
options[field.name] = value;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
const spinner = ora("Getting authorization URL").start();
|
|
172
|
-
let installationDetails;
|
|
173
|
-
try {
|
|
174
|
-
installationDetails = await fetchInstallationUrl(apiKey, integrationType, options);
|
|
175
|
-
spinner.stop();
|
|
176
|
-
}
|
|
177
|
-
catch (err) {
|
|
178
|
-
spinner.fail("Failed to get authorization URL");
|
|
179
|
-
console.error(chalk.red(` ${err.message}`));
|
|
180
|
-
return false;
|
|
181
|
-
}
|
|
182
|
-
console.log(`\n ${chalk.bold("Complete authorization in your browser:")}\n`);
|
|
183
|
-
console.log(` ${chalk.cyan(installationDetails.oauthUrl)}\n`);
|
|
184
|
-
openInBrowser(installationDetails.oauthUrl);
|
|
185
|
-
const pollSpinner = ora("Waiting for authorization to complete").start();
|
|
186
|
-
const connected = await pollForConnection(apiKey, integrationType);
|
|
187
|
-
if (connected) {
|
|
188
|
-
pollSpinner.succeed(chalk.green("Integration connected successfully"));
|
|
189
|
-
return true;
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
pollSpinner.fail("Authorization timed out — please try again");
|
|
193
|
-
return false;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
197
|
-
function openInBrowser(url) {
|
|
198
|
-
try {
|
|
199
|
-
if (process.platform === "darwin") {
|
|
200
|
-
spawn("open", [url], { detached: true, stdio: "ignore" }).unref();
|
|
201
|
-
return true;
|
|
202
|
-
}
|
|
203
|
-
if (process.platform === "win32") {
|
|
204
|
-
spawn("cmd", ["/c", "start", "", url], { detached: true, stdio: "ignore" }).unref();
|
|
205
|
-
return true;
|
|
206
|
-
}
|
|
207
|
-
spawn("xdg-open", [url], { detached: true, stdio: "ignore" }).unref();
|
|
208
|
-
return true;
|
|
209
|
-
}
|
|
210
|
-
catch {
|
|
211
|
-
return false;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
//# sourceMappingURL=integrate.js.map
|
package/dist/integrate.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"integrate.js","sourceRoot":"","sources":["../src/integrate.ts"],"names":[],"mappings":"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"}
|
package/dist/nonInteractive.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export type NonInteractiveOpts = {
|
|
2
|
-
nonInteractive?: boolean;
|
|
3
|
-
};
|
|
4
|
-
/**
|
|
5
|
-
* True when the CLI should avoid any interactive prompt. Honors the explicit
|
|
6
|
-
* flag first, falls back to TTY detection so subprocess / piped invocations
|
|
7
|
-
* behave non-interactively without the caller needing to pass `--non-interactive`.
|
|
8
|
-
*/
|
|
9
|
-
export declare function isNonInteractive(opts?: NonInteractiveOpts): boolean;
|
|
10
|
-
/**
|
|
11
|
-
* Supports parsing a series of key=value flags from the CLI.
|
|
12
|
-
*/
|
|
13
|
-
export declare function parseKeyValueFlags(values: string[] | undefined): Record<string, string>;
|
|
14
|
-
/**
|
|
15
|
-
* Read a JSON object from stdin and return it as a string map. Used by
|
|
16
|
-
* `terse integrate connect --fields-stdin` so passwords and tokens never touch
|
|
17
|
-
* argv.
|
|
18
|
-
*/
|
|
19
|
-
export declare function readFieldsFromStdin(): Promise<Record<string, string>>;
|
|
20
|
-
//# sourceMappingURL=nonInteractive.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nonInteractive.d.ts","sourceRoot":"","sources":["../src/nonInteractive.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAGnE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUvF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA6B3E"}
|
package/dist/nonInteractive.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { CliError } from "./cliError.js";
|
|
2
|
-
/**
|
|
3
|
-
* True when the CLI should avoid any interactive prompt. Honors the explicit
|
|
4
|
-
* flag first, falls back to TTY detection so subprocess / piped invocations
|
|
5
|
-
* behave non-interactively without the caller needing to pass `--non-interactive`.
|
|
6
|
-
*/
|
|
7
|
-
export function isNonInteractive(opts) {
|
|
8
|
-
if (opts?.nonInteractive)
|
|
9
|
-
return true;
|
|
10
|
-
return !process.stdin.isTTY || !process.stdout.isTTY;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Supports parsing a series of key=value flags from the CLI.
|
|
14
|
-
*/
|
|
15
|
-
export function parseKeyValueFlags(values) {
|
|
16
|
-
const out = {};
|
|
17
|
-
for (const raw of values ?? []) {
|
|
18
|
-
const eq = raw.indexOf("=");
|
|
19
|
-
if (eq <= 0) {
|
|
20
|
-
throw new CliError("invalid_field", `Invalid --field value "${raw}"`, { detail: "Expected key=value" });
|
|
21
|
-
}
|
|
22
|
-
out[raw.slice(0, eq)] = raw.slice(eq + 1);
|
|
23
|
-
}
|
|
24
|
-
return out;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Read a JSON object from stdin and return it as a string map. Used by
|
|
28
|
-
* `terse integrate connect --fields-stdin` so passwords and tokens never touch
|
|
29
|
-
* argv.
|
|
30
|
-
*/
|
|
31
|
-
export async function readFieldsFromStdin() {
|
|
32
|
-
const chunks = [];
|
|
33
|
-
for await (const chunk of process.stdin) {
|
|
34
|
-
chunks.push(typeof chunk === "string" ? Buffer.from(chunk) : chunk);
|
|
35
|
-
}
|
|
36
|
-
const raw = Buffer.concat(chunks).toString("utf-8").trim();
|
|
37
|
-
if (!raw)
|
|
38
|
-
return {};
|
|
39
|
-
let parsed;
|
|
40
|
-
try {
|
|
41
|
-
parsed = JSON.parse(raw);
|
|
42
|
-
}
|
|
43
|
-
catch (err) {
|
|
44
|
-
throw new CliError("invalid_fields_stdin", "Could not parse JSON from stdin", {
|
|
45
|
-
detail: err instanceof Error ? err.message : String(err)
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
49
|
-
throw new CliError("invalid_fields_stdin", "Expected a JSON object on stdin", { detail: 'Example: {"password":"..."}' });
|
|
50
|
-
}
|
|
51
|
-
const out = {};
|
|
52
|
-
for (const [k, v] of Object.entries(parsed)) {
|
|
53
|
-
if (typeof v !== "string") {
|
|
54
|
-
throw new CliError("invalid_fields_stdin", `Field "${k}" must be a string`);
|
|
55
|
-
}
|
|
56
|
-
out[k] = v;
|
|
57
|
-
}
|
|
58
|
-
return out;
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=nonInteractive.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nonInteractive.js","sourceRoot":"","sources":["../src/nonInteractive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAMxC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACtD,IAAI,IAAI,EAAE,cAAc;QAAE,OAAO,IAAI,CAAA;IACrC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAA;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA4B;IAC3D,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAK,MAAM,GAAG,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACV,MAAM,IAAI,QAAQ,CAAC,eAAe,EAAE,0BAA0B,GAAG,GAAG,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAA;QAC3G,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO,GAAG,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACrC,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACvE,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1D,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IAEnB,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,sBAAsB,EAAE,iCAAiC,EAAE;YAC1E,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SAC3D,CAAC,CAAA;IACN,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,QAAQ,CAAC,sBAAsB,EAAE,iCAAiC,EAAE,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC,CAAA;IAC5H,CAAC;IAED,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAiC,CAAC,EAAE,CAAC;QACrE,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,QAAQ,CAAC,sBAAsB,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAA;QAC/E,CAAC;QACD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IACD,OAAO,GAAG,CAAA;AACd,CAAC"}
|
package/dist/perf.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
type PerfAttributes = Record<string, unknown>;
|
|
2
|
-
export declare function enableCliPerfLogging(): void;
|
|
3
|
-
export declare function startCliPerfStep(step: string, attributes?: PerfAttributes): {
|
|
4
|
-
complete: (extra?: PerfAttributes) => void;
|
|
5
|
-
fail: (error: unknown, extra?: PerfAttributes) => void;
|
|
6
|
-
};
|
|
7
|
-
export declare function withCliPerfStep<T>(step: string, attributes: PerfAttributes, fn: () => Promise<T>): Promise<T>;
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=perf.d.ts.map
|
package/dist/perf.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"perf.d.ts","sourceRoot":"","sources":["../src/perf.ts"],"names":[],"mappings":"AAEA,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAiC7C,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,cAAmB,GAAG;IAC7E,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,cAAc,KAAK,IAAI,CAAA;IAC1C,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,cAAc,KAAK,IAAI,CAAA;CACzD,CAqBA;AAED,wBAAsB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAWnH"}
|
package/dist/perf.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import chalk from "chalk";
|
|
2
|
-
function isPerfLoggingEnabled() {
|
|
3
|
-
const value = process.env.TERSE_PERF_LOGS;
|
|
4
|
-
if (value === undefined) {
|
|
5
|
-
return false;
|
|
6
|
-
}
|
|
7
|
-
return !["0", "false", "off", "no"].includes(value.toLowerCase());
|
|
8
|
-
}
|
|
9
|
-
function serializeAttributes(attributes) {
|
|
10
|
-
return JSON.stringify(Object.fromEntries(Object.entries(attributes).filter(([, value]) => value !== undefined)), (_key, value) => {
|
|
11
|
-
if (value instanceof Error) {
|
|
12
|
-
return { message: value.message, name: value.name };
|
|
13
|
-
}
|
|
14
|
-
return value;
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
function logPerf(step, phase, attributes = {}) {
|
|
18
|
-
if (!isPerfLoggingEnabled()) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
console.log(chalk.dim(`[terse:perf] ${serializeAttributes({ step, phase, ...attributes })}`));
|
|
22
|
-
}
|
|
23
|
-
export function enableCliPerfLogging() {
|
|
24
|
-
process.env.TERSE_PERF_LOGS ??= "1";
|
|
25
|
-
}
|
|
26
|
-
export function startCliPerfStep(step, attributes = {}) {
|
|
27
|
-
const start = performance.now();
|
|
28
|
-
logPerf(step, "started", attributes);
|
|
29
|
-
return {
|
|
30
|
-
complete(extra = {}) {
|
|
31
|
-
logPerf(step, "completed", {
|
|
32
|
-
...attributes,
|
|
33
|
-
...extra,
|
|
34
|
-
duration_ms: Math.round(performance.now() - start)
|
|
35
|
-
});
|
|
36
|
-
},
|
|
37
|
-
fail(error, extra = {}) {
|
|
38
|
-
logPerf(step, "failed", {
|
|
39
|
-
...attributes,
|
|
40
|
-
...extra,
|
|
41
|
-
duration_ms: Math.round(performance.now() - start),
|
|
42
|
-
error: error instanceof Error ? error.message : String(error)
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
export async function withCliPerfStep(step, attributes, fn) {
|
|
48
|
-
const timer = startCliPerfStep(step, attributes);
|
|
49
|
-
try {
|
|
50
|
-
const result = await fn();
|
|
51
|
-
timer.complete();
|
|
52
|
-
return result;
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
timer.fail(error);
|
|
56
|
-
throw error;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=perf.js.map
|
package/dist/perf.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"perf.js","sourceRoot":"","sources":["../src/perf.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.test.d.ts","sourceRoot":"","sources":["../../src/providers/codegen.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import assert from "node:assert/strict";
|
|
2
|
-
import test from "node:test";
|
|
3
|
-
import { preparePythonTemplateContext } from "./python/preparePythonCodegenData.js";
|
|
4
|
-
import { renderPythonGeneratedCode } from "./python/pythonTemplateEngine.js";
|
|
5
|
-
import { prepareTemplateContext } from "./typescript/prepareCodegenData.js";
|
|
6
|
-
import { renderGeneratedCode } from "./typescript/templateEngine.js";
|
|
7
|
-
function buildCodegenInput() {
|
|
8
|
-
return {
|
|
9
|
-
github: [
|
|
10
|
-
{
|
|
11
|
-
integration: { id: "github_int" },
|
|
12
|
-
repositories: [{ id: 1, name: "terse", owner: "acme", fullName: "acme/terse" }]
|
|
13
|
-
}
|
|
14
|
-
],
|
|
15
|
-
slack: [{ id: "slack_int", displayName: "Slack", channels: [{ id: "C123", name: "alerts" }] }],
|
|
16
|
-
gmail: [{ id: "gmail_int", displayName: "Gmail" }],
|
|
17
|
-
linear: [{ id: "linear_int", displayName: "Linear", teams: [] }],
|
|
18
|
-
notion: [],
|
|
19
|
-
posthog: [],
|
|
20
|
-
datadog: [],
|
|
21
|
-
launchdarkly: [],
|
|
22
|
-
workos: [{ id: "workos_int", displayName: "WorkOS" }],
|
|
23
|
-
attio: [],
|
|
24
|
-
snowflake: [],
|
|
25
|
-
tools: []
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
test("typescript codegen narrows supported trigger helpers", () => {
|
|
29
|
-
const output = renderGeneratedCode(prepareTemplateContext(buildCodegenInput()));
|
|
30
|
-
assert.match(output, /onPRSynchronized\(opts: \{ repo: Repos \}\): TypedTrigger<GitHubPullRequestSynchronizedTriggerEvent>/);
|
|
31
|
-
assert.match(output, /onIssueCreated\(opts\?: \{ projectId\?: string; projectName\?: string \}\): TypedTrigger<LinearIssueCreatedTriggerEvent>/);
|
|
32
|
-
assert.match(output, /onMembershipCreated\(\): TypedTrigger<WorkOSOrganizationMembershipCreatedTriggerEvent>/);
|
|
33
|
-
assert.doesNotMatch(output, /onAppMention/);
|
|
34
|
-
assert.doesNotMatch(output, /onReactionAdded/);
|
|
35
|
-
});
|
|
36
|
-
test("python codegen emits precise trigger helper annotations", () => {
|
|
37
|
-
const output = renderPythonGeneratedCode(preparePythonTemplateContext(buildCodegenInput()));
|
|
38
|
-
assert.match(output, /def on_pr_synchronized\(\*, repo: GitHubRepo\) -> TriggerConfig\[GitHubPullRequestSynchronizedTriggerEvent\]:/);
|
|
39
|
-
assert.match(output, /def on_issue_created\(\*, project_id: str \| None = None, project_name: str \| None = None\) -> TriggerConfig\[LinearIssueCreatedTriggerEvent\]:/);
|
|
40
|
-
assert.match(output, /def on_membership_created\(\) -> TriggerConfig\[WorkOSOrganizationMembershipCreatedTriggerEvent\]:/);
|
|
41
|
-
assert.match(output, /class Webhook:/);
|
|
42
|
-
assert.doesNotMatch(output, /def on_app_mention/);
|
|
43
|
-
assert.doesNotMatch(output, /def on_reaction_added/);
|
|
44
|
-
});
|
|
45
|
-
//# sourceMappingURL=codegen.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.test.js","sourceRoot":"","sources":["../../src/providers/codegen.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAA;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAEpE,SAAS,iBAAiB;IACtB,OAAO;QACH,MAAM,EAAE;YACJ;gBACI,WAAW,EAAE,EAAE,EAAE,EAAE,YAAY,EAAS;gBACxC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;aAClF;SACJ;QACD,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC9F,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;QAClD,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAChE,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;QAChB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;QACrD,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;KACZ,CAAA;AACL,CAAC;AAED,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;IAC9D,MAAM,MAAM,GAAG,mBAAmB,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;IAE/E,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,sGAAsG,CAAC,CAAA;IAC5H,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,0HAA0H,CAAC,CAAA;IAChJ,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,wFAAwF,CAAC,CAAA;IAC9G,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC3C,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AAClD,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,yDAAyD,EAAE,GAAG,EAAE;IACjE,MAAM,MAAM,GAAG,yBAAyB,CAAC,4BAA4B,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;IAE3F,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,+GAA+G,CAAC,CAAA;IACrI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,kJAAkJ,CAAC,CAAA;IACxK,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,oGAAoG,CAAC,CAAA;IAC1H,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACtC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;IACjD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;AACxD,CAAC,CAAC,CAAA"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import type { CreateJobParameters } from "terse-sdk";
|
|
2
|
-
import type { SerializedEvent } from "terse-types";
|
|
3
|
-
import type { LanguageProvider } from "../LanguageProvider.js";
|
|
4
|
-
import type { CodegenInput } from "../codegenTypes.js";
|
|
5
|
-
export declare class PythonProvider implements LanguageProvider {
|
|
6
|
-
readonly language: "python";
|
|
7
|
-
readonly displayName = "Python";
|
|
8
|
-
readonly detectionMarkers: {
|
|
9
|
-
requiredFiles: string[];
|
|
10
|
-
description: string;
|
|
11
|
-
};
|
|
12
|
-
readonly projectMarkers: {
|
|
13
|
-
requiredFiles: string[];
|
|
14
|
-
description: string;
|
|
15
|
-
};
|
|
16
|
-
readonly entryFile = "src/main.py";
|
|
17
|
-
readonly generatedCodePath = "src/terse_generated.py";
|
|
18
|
-
readonly deployExclusions: {
|
|
19
|
-
dirs: Set<string>;
|
|
20
|
-
files: Set<string>;
|
|
21
|
-
};
|
|
22
|
-
scaffoldFiles(): Array<{
|
|
23
|
-
template: string;
|
|
24
|
-
output: string;
|
|
25
|
-
}>;
|
|
26
|
-
buildInitTemplateContext(projectName: string, sdkVersion: string): Record<string, unknown>;
|
|
27
|
-
getPostInitSteps(_packageManager: string): string[];
|
|
28
|
-
detectPackageManager(): string;
|
|
29
|
-
installDependencies(targetDir: string): Promise<void>;
|
|
30
|
-
resolveGeneratedCodePath(cwd: string): string;
|
|
31
|
-
renderGeneratedCode(input: CodegenInput): string;
|
|
32
|
-
loadJobRegistry(entryFile?: string): Promise<Map<string, CreateJobParameters>>;
|
|
33
|
-
executeJob(job: CreateJobParameters, runId: string | null, event: SerializedEvent, opts?: {
|
|
34
|
-
verbose?: boolean;
|
|
35
|
-
entryFile?: string;
|
|
36
|
-
}): Promise<void>;
|
|
37
|
-
protected buildPythonEnv(cwd: string): NodeJS.ProcessEnv;
|
|
38
|
-
protected execUvCommand(args: string[], opts: {
|
|
39
|
-
cwd: string;
|
|
40
|
-
env?: NodeJS.ProcessEnv;
|
|
41
|
-
}): Promise<{
|
|
42
|
-
stdout: string;
|
|
43
|
-
stderr: string;
|
|
44
|
-
}>;
|
|
45
|
-
protected withTempPythonScript<T>(source: string, fn: (scriptPath: string) => Promise<T>): Promise<T>;
|
|
46
|
-
protected ensureUvAvailable(cwd: string): Promise<void>;
|
|
47
|
-
protected buildLoadRegistryScript(entryFile: string): string;
|
|
48
|
-
protected buildExecuteJobScript(entryFile: string): string;
|
|
49
|
-
}
|
|
50
|
-
export declare const pythonProvider: PythonProvider;
|
|
51
|
-
//# sourceMappingURL=PythonProvider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PythonProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/python/PythonProvider.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAgB,MAAM,WAAW,CAAA;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAIlD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AA+BtD,qBAAa,cAAe,YAAW,gBAAgB;IACnD,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAS;IACrC,QAAQ,CAAC,WAAW,YAAW;IAC/B,QAAQ,CAAC,gBAAgB;;;MAGxB;IACD,QAAQ,CAAC,cAAc;;;MAGtB;IACD,QAAQ,CAAC,SAAS,iBAAgB;IAClC,QAAQ,CAAC,iBAAiB,4BAA2B;IACrD,QAAQ,CAAC,gBAAgB;;;MAGxB;IAED,aAAa,IAAI,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAW5D,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAO1F,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE;IAInD,oBAAoB,IAAI,MAAM;IAIxB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAI7C,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;IAM1C,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IA+C9E,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuCzJ,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU;cAexC,aAAa,CACzB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE;QACF,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;KAC1B,GACF,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;cAI9B,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;cAI3F,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,SAAS,CAAC,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI5D,SAAS,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAG7D;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAA"}
|