@epilot/cli 0.1.4 → 0.1.5
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/{access-token-56RMQQAV.js → access-token-BDNU3ZFC.js} +2 -2
- package/dist/{address-ILFNEEKQ.js → address-ZCYZYRP4.js} +2 -2
- package/dist/{address-suggestions-HBXNOBTY.js → address-suggestions-RP5N7NVQ.js} +2 -2
- package/dist/{ai-agents-3GVB2MHH.js → ai-agents-PLUGVZTI.js} +2 -2
- package/dist/{app-PMVGDA44.js → app-HZECIN6N.js} +2 -2
- package/dist/{audit-logs-SAD6TZ6T.js → audit-logs-JWKGNHPP.js} +2 -2
- package/dist/{auth-LMXCPY77.js → auth-O5LQZAG7.js} +1 -1
- package/dist/auth-login-NM74PQRP.js +332 -0
- package/dist/{automation-VF6AL6TZ.js → automation-73BC4PYK.js} +2 -2
- package/dist/{billing-LW6XV26L.js → billing-GQDSK4H2.js} +2 -2
- package/dist/bin/epilot.js +57 -59
- package/dist/{blueprint-manifest-GVONSIWC.js → blueprint-manifest-4M7DNWYE.js} +2 -2
- package/dist/{chunk-SACM5JJP.js → chunk-BJOXXFMA.js} +10 -9
- package/dist/{chunk-3FZ36LAB.js → chunk-HN4QDJOJ.js} +18 -15
- package/dist/{completion-YVPB2HSP.js → completion-RCVUCEMM.js} +3 -6
- package/dist/{consent-L7PPM2RS.js → consent-OJBGOI54.js} +2 -2
- package/dist/{customer-portal-FKEQLBZT.js → customer-portal-BDKNWKHA.js} +2 -2
- package/dist/{dashboard-N7ZV5LV7.js → dashboard-IAEU3JFY.js} +2 -2
- package/dist/{data-management-B2HKXR7L.js → data-management-UEDSGAKB.js} +2 -2
- package/dist/{deduplication-RY2NOUVL.js → deduplication-JJS3TOJ2.js} +2 -2
- package/dist/{design-KXZPNB7R.js → design-WKSDZFBJ.js} +2 -2
- package/dist/{document-OMWQI4SG.js → document-P5OL4NYY.js} +2 -2
- package/dist/{email-settings-IA36PUXF.js → email-settings-743JHCKS.js} +2 -2
- package/dist/{email-template-V56KH5HB.js → email-template-MW4IVDPM.js} +2 -2
- package/dist/{entity-3AYPUKDS.js → entity-K5X6FWJI.js} +2 -2
- package/dist/{entity-mapping-LQW3SXIQ.js → entity-mapping-QBJ2I2VR.js} +2 -2
- package/dist/{environments-W36TPCFO.js → environments-VUR7ME42.js} +2 -2
- package/dist/{erp-integration-3HQ7E5NA.js → erp-integration-A2KAIXUQ.js} +2 -2
- package/dist/{event-catalog-3L3622DH.js → event-catalog-6YEG5CEM.js} +2 -2
- package/dist/{file-OKYWWEU2.js → file-J6PHZ447.js} +2 -2
- package/dist/{iban-JASOQGKM.js → iban-DJSUCRU6.js} +2 -2
- package/dist/{interactive-5J6X74Q7.js → interactive-XXYFAJEI.js} +1 -1
- package/dist/{journey-ITMLYX23.js → journey-QJZKU3PZ.js} +2 -2
- package/dist/{kanban-JDRCIYF6.js → kanban-ZF4IIG7Q.js} +2 -2
- package/dist/{message-NI45JYMQ.js → message-WH4GD5SC.js} +2 -2
- package/dist/{metering-J6L5IPRJ.js → metering-FCWUZ2TC.js} +2 -2
- package/dist/{notes-WSEYYM2I.js → notes-KKVPGK7K.js} +2 -2
- package/dist/{notification-GOGQMIRR.js → notification-4MVAZTRP.js} +2 -2
- package/dist/{organization-IFUJHPGJ.js → organization-2UT2KFMB.js} +2 -2
- package/dist/{partner-directory-O5HSDE2K.js → partner-directory-SUNW4XN7.js} +2 -2
- package/dist/{permissions-7MMSNXB5.js → permissions-36VGB4BQ.js} +2 -2
- package/dist/{pricing-Z7HT4ROJ.js → pricing-RCNFEEHO.js} +2 -2
- package/dist/{pricing-tier-MMWT57MJ.js → pricing-tier-MNCLLXD5.js} +2 -2
- package/dist/{purpose-BGXEOLJ7.js → purpose-3JN63WTQ.js} +2 -2
- package/dist/{sandbox-PQW5425Q.js → sandbox-C676YDRV.js} +2 -2
- package/dist/{submission-5OFXHA3T.js → submission-5XTNMMCK.js} +2 -2
- package/dist/{targeting-ESL32NRT.js → targeting-C52KV6IW.js} +2 -2
- package/dist/{template-variables-DHSWLYWH.js → template-variables-5SKJEJF4.js} +2 -2
- package/dist/{upgrade-GNXLL2NI.js → upgrade-VJCKIUNZ.js} +1 -1
- package/dist/{user-HCHAYBZU.js → user-DYAR3N6L.js} +2 -2
- package/dist/{validation-rules-CQRPRNDS.js → validation-rules-LDAOUPOO.js} +2 -2
- package/dist/{webhooks-OOLV3K4A.js → webhooks-MT2P33A2.js} +2 -2
- package/dist/{workflow-GHNKO7IJ.js → workflow-YGWGE6L4.js} +2 -2
- package/dist/{workflow-definition-XPEHPQVQ.js → workflow-definition-JG54ZWGL.js} +2 -2
- package/package.json +1 -1
- package/dist/auth-login-J2R6SME7.js +0 -194
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
callApi
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BJOXXFMA.js";
|
|
5
5
|
import "./chunk-RSA7K5HB.js";
|
|
6
6
|
import "./chunk-PDMWUCWD.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-HN4QDJOJ.js";
|
|
8
8
|
import "./chunk-6RBLA5YE.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/apis/access-token.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
callApi
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BJOXXFMA.js";
|
|
5
5
|
import "./chunk-RSA7K5HB.js";
|
|
6
6
|
import "./chunk-PDMWUCWD.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-HN4QDJOJ.js";
|
|
8
8
|
import "./chunk-6RBLA5YE.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/apis/address.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
callApi
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BJOXXFMA.js";
|
|
5
5
|
import "./chunk-RSA7K5HB.js";
|
|
6
6
|
import "./chunk-PDMWUCWD.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-HN4QDJOJ.js";
|
|
8
8
|
import "./chunk-6RBLA5YE.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/apis/address-suggestions.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
callApi
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BJOXXFMA.js";
|
|
5
5
|
import "./chunk-RSA7K5HB.js";
|
|
6
6
|
import "./chunk-PDMWUCWD.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-HN4QDJOJ.js";
|
|
8
8
|
import "./chunk-6RBLA5YE.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/apis/ai-agents.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
callApi
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BJOXXFMA.js";
|
|
5
5
|
import "./chunk-RSA7K5HB.js";
|
|
6
6
|
import "./chunk-PDMWUCWD.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-HN4QDJOJ.js";
|
|
8
8
|
import "./chunk-6RBLA5YE.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/apis/app.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
callApi
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BJOXXFMA.js";
|
|
5
5
|
import "./chunk-RSA7K5HB.js";
|
|
6
6
|
import "./chunk-PDMWUCWD.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-HN4QDJOJ.js";
|
|
8
8
|
import "./chunk-6RBLA5YE.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/apis/audit-logs.ts
|
|
@@ -21,7 +21,7 @@ var auth_default = defineCommand({
|
|
|
21
21
|
description: "Manage authentication"
|
|
22
22
|
},
|
|
23
23
|
subCommands: {
|
|
24
|
-
login: () => import("./auth-login-
|
|
24
|
+
login: () => import("./auth-login-NM74PQRP.js").then((m) => m.default),
|
|
25
25
|
token: () => import("./auth-token-VSNRXUBI.js").then((m) => m.default),
|
|
26
26
|
logout: defineCommand({
|
|
27
27
|
meta: { name: "logout", description: "Remove stored credentials" },
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
saveCredentials
|
|
4
|
+
} from "./chunk-RSA7K5HB.js";
|
|
5
|
+
import "./chunk-PDMWUCWD.js";
|
|
6
|
+
import {
|
|
7
|
+
BOLD,
|
|
8
|
+
CYAN,
|
|
9
|
+
DIM,
|
|
10
|
+
GREEN,
|
|
11
|
+
RED,
|
|
12
|
+
RESET,
|
|
13
|
+
YELLOW
|
|
14
|
+
} from "./chunk-6RBLA5YE.js";
|
|
15
|
+
|
|
16
|
+
// src/commands/auth-login.ts
|
|
17
|
+
import { defineCommand } from "citty";
|
|
18
|
+
import { randomBytes } from "crypto";
|
|
19
|
+
import { createServer } from "http";
|
|
20
|
+
var auth_login_default = defineCommand({
|
|
21
|
+
meta: { name: "login", description: "Authenticate with epilot" },
|
|
22
|
+
args: {
|
|
23
|
+
token: { type: "string", description: "Manually provide a token instead of browser login" },
|
|
24
|
+
profile: { type: "string", description: "Save credentials to this profile" }
|
|
25
|
+
},
|
|
26
|
+
run: async ({ args }) => {
|
|
27
|
+
const profileName = args.profile || process.env.EPILOT_PROFILE;
|
|
28
|
+
if (args.token) {
|
|
29
|
+
saveCredentials({ token: args.token }, profileName);
|
|
30
|
+
const suffix = profileName ? ` to profile "${profileName}"` : "";
|
|
31
|
+
process.stdout.write(`${GREEN}Token saved${suffix}.${RESET}
|
|
32
|
+
`);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (!process.stdin.isTTY) {
|
|
36
|
+
process.stderr.write(`${RED}Browser login requires an interactive terminal.${RESET}
|
|
37
|
+
`);
|
|
38
|
+
process.stderr.write(
|
|
39
|
+
`Use ${BOLD}epilot auth login --token <token>${RESET} or ${BOLD}epilot auth token${RESET} instead.
|
|
40
|
+
`
|
|
41
|
+
);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
const token = await browserLogin(profileName);
|
|
45
|
+
if (token) {
|
|
46
|
+
process.stdout.write(`${GREEN}${BOLD}Login successful!${RESET}
|
|
47
|
+
`);
|
|
48
|
+
} else {
|
|
49
|
+
process.stderr.write(`${RED}Login failed or was cancelled.${RESET}
|
|
50
|
+
`);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
var browserLogin = async (profileName) => {
|
|
56
|
+
const state = randomBytes(32).toString("hex");
|
|
57
|
+
const verificationCode = randomBytes(3).toString("hex").toUpperCase();
|
|
58
|
+
const suffix = profileName ? ` ${DIM}(profile: ${profileName})${RESET}` : "";
|
|
59
|
+
process.stdout.write(`
|
|
60
|
+
${BOLD}epilot CLI Login${RESET}${suffix}
|
|
61
|
+
|
|
62
|
+
`);
|
|
63
|
+
process.stdout.write("This will open your browser to authenticate with epilot.\n");
|
|
64
|
+
process.stdout.write("\n");
|
|
65
|
+
process.stdout.write(` ${YELLOW}Verification code: ${BOLD}${verificationCode}${RESET}
|
|
66
|
+
`);
|
|
67
|
+
process.stdout.write("\n");
|
|
68
|
+
process.stdout.write(`${DIM}Verify this code matches what is shown in your browser after login.${RESET}
|
|
69
|
+
`);
|
|
70
|
+
process.stdout.write(`${DIM}This ensures you are logging into the correct CLI session.${RESET}
|
|
71
|
+
`);
|
|
72
|
+
process.stdout.write("\n");
|
|
73
|
+
const { confirm } = await import("@inquirer/prompts");
|
|
74
|
+
const proceed = await confirm({ message: "Open browser to log in?", default: true });
|
|
75
|
+
if (!proceed) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
return new Promise((resolve) => {
|
|
79
|
+
let settled = false;
|
|
80
|
+
let timeoutId;
|
|
81
|
+
let tokenPromptController;
|
|
82
|
+
const done = (token) => {
|
|
83
|
+
if (settled) return;
|
|
84
|
+
settled = true;
|
|
85
|
+
clearTimeout(timeoutId);
|
|
86
|
+
tokenPromptController?.abort();
|
|
87
|
+
server.close();
|
|
88
|
+
resolve(token);
|
|
89
|
+
};
|
|
90
|
+
const onServerListening = async () => {
|
|
91
|
+
const address = server.address();
|
|
92
|
+
if (!address || typeof address === "string") {
|
|
93
|
+
done(null);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const port = address.port;
|
|
97
|
+
const callbackUrl = `http://localhost:${port}/callback`;
|
|
98
|
+
const loginUrl = `https://portal.epilot.cloud/login?cli_callback=${encodeURIComponent(callbackUrl)}&state=${state}&code=${verificationCode}`;
|
|
99
|
+
process.stdout.write(`
|
|
100
|
+
${DIM}Login URL: ${loginUrl}${RESET}
|
|
101
|
+
|
|
102
|
+
`);
|
|
103
|
+
try {
|
|
104
|
+
const open = (await import("open")).default;
|
|
105
|
+
await open(loginUrl);
|
|
106
|
+
process.stdout.write(`${CYAN}Browser opened.${RESET} Waiting for authentication...
|
|
107
|
+
`);
|
|
108
|
+
} catch {
|
|
109
|
+
process.stdout.write(`Could not open browser. Please visit this URL manually:
|
|
110
|
+
|
|
111
|
+
${loginUrl}
|
|
112
|
+
|
|
113
|
+
`);
|
|
114
|
+
}
|
|
115
|
+
process.stdout.write(`
|
|
116
|
+
${DIM}Or paste a token manually:${RESET}
|
|
117
|
+
`);
|
|
118
|
+
try {
|
|
119
|
+
const { password } = await import("@inquirer/prompts");
|
|
120
|
+
tokenPromptController = new AbortController();
|
|
121
|
+
const token = await password(
|
|
122
|
+
{ message: "Token:", theme: { prefix: "" } },
|
|
123
|
+
{ signal: tokenPromptController.signal }
|
|
124
|
+
);
|
|
125
|
+
if (token?.trim()) {
|
|
126
|
+
saveCredentials({ token: token.trim() }, profileName);
|
|
127
|
+
done(token.trim());
|
|
128
|
+
}
|
|
129
|
+
} catch {
|
|
130
|
+
}
|
|
131
|
+
timeoutId = setTimeout(
|
|
132
|
+
() => {
|
|
133
|
+
process.stderr.write(`
|
|
134
|
+
${RED}Login timed out after 5 minutes.${RESET}
|
|
135
|
+
`);
|
|
136
|
+
done(null);
|
|
137
|
+
},
|
|
138
|
+
5 * 60 * 1e3
|
|
139
|
+
);
|
|
140
|
+
timeoutId.unref();
|
|
141
|
+
};
|
|
142
|
+
const server = createServer((req, res) => {
|
|
143
|
+
const url = new URL(req.url, "http://localhost");
|
|
144
|
+
if (url.pathname === "/callback") {
|
|
145
|
+
const token = url.searchParams.get("token");
|
|
146
|
+
const returnedState = url.searchParams.get("state");
|
|
147
|
+
const orgId = url.searchParams.get("org_id");
|
|
148
|
+
const userId = url.searchParams.get("user_id");
|
|
149
|
+
const name = url.searchParams.get("name");
|
|
150
|
+
if (returnedState && returnedState !== state) {
|
|
151
|
+
res.writeHead(403, { "Content-Type": "text/html; charset=utf-8" });
|
|
152
|
+
res.end(
|
|
153
|
+
renderPage("Login Failed", "Invalid session. This request may not have originated from your CLI.", "error")
|
|
154
|
+
);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
if (!returnedState) {
|
|
158
|
+
process.stderr.write(
|
|
159
|
+
`${YELLOW}Warning: Login portal did not return state parameter. CSRF protection is not active.${RESET}
|
|
160
|
+
`
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
if (token) {
|
|
164
|
+
saveCredentials(
|
|
165
|
+
{
|
|
166
|
+
token,
|
|
167
|
+
org_id: orgId ?? void 0,
|
|
168
|
+
user_id: userId ?? void 0,
|
|
169
|
+
name: name ?? void 0
|
|
170
|
+
},
|
|
171
|
+
profileName
|
|
172
|
+
);
|
|
173
|
+
res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
|
|
174
|
+
res.end(
|
|
175
|
+
renderPage(
|
|
176
|
+
"Login Successful",
|
|
177
|
+
"You can close this tab and return to your terminal.",
|
|
178
|
+
"success",
|
|
179
|
+
verificationCode
|
|
180
|
+
)
|
|
181
|
+
);
|
|
182
|
+
done(token);
|
|
183
|
+
} else {
|
|
184
|
+
res.writeHead(400, { "Content-Type": "text/html; charset=utf-8" });
|
|
185
|
+
res.end(renderPage("Login Failed", "No token was received. Please try again.", "error"));
|
|
186
|
+
done(null);
|
|
187
|
+
}
|
|
188
|
+
} else {
|
|
189
|
+
res.writeHead(404);
|
|
190
|
+
res.end();
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
server.unref();
|
|
194
|
+
server.listen(0, () => {
|
|
195
|
+
onServerListening().catch(() => done(null));
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
};
|
|
199
|
+
var renderPage = (title, message, status, code) => {
|
|
200
|
+
const icon = status === "success" ? "\u2713" : "\u2715";
|
|
201
|
+
const iconBg = status === "success" ? "#e8f5e9" : "#ffeef0";
|
|
202
|
+
const iconColor = status === "success" ? "#2e7d32" : "#c62828";
|
|
203
|
+
const titleColor = status === "success" ? "#1b5e20" : "#b71c1c";
|
|
204
|
+
const codeBlock = code ? `
|
|
205
|
+
<div class="code-section">
|
|
206
|
+
<p class="code-label">Verification code</p>
|
|
207
|
+
<div class="code">${escapeHtml(code)}</div>
|
|
208
|
+
</div>` : "";
|
|
209
|
+
return `<!DOCTYPE html>
|
|
210
|
+
<html lang="en">
|
|
211
|
+
<head>
|
|
212
|
+
<meta charset="utf-8" />
|
|
213
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
214
|
+
<title>${escapeHtml(title)} \u2014 epilot CLI</title>
|
|
215
|
+
<link href="https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;600;700;900&display=swap" rel="stylesheet" />
|
|
216
|
+
<style>
|
|
217
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
218
|
+
body {
|
|
219
|
+
font-family: 'Nunito Sans', 'Helvetica Neue', Arial, sans-serif;
|
|
220
|
+
background: #f0f4f8;
|
|
221
|
+
color: #172b4d;
|
|
222
|
+
display: flex;
|
|
223
|
+
align-items: center;
|
|
224
|
+
justify-content: center;
|
|
225
|
+
min-height: 100vh;
|
|
226
|
+
padding: 2rem;
|
|
227
|
+
}
|
|
228
|
+
.card {
|
|
229
|
+
background: #fff;
|
|
230
|
+
border-radius: 24px;
|
|
231
|
+
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
|
|
232
|
+
padding: 3rem 2.5rem;
|
|
233
|
+
max-width: 420px;
|
|
234
|
+
width: 100%;
|
|
235
|
+
text-align: center;
|
|
236
|
+
}
|
|
237
|
+
.logo {
|
|
238
|
+
margin-bottom: 2rem;
|
|
239
|
+
}
|
|
240
|
+
.logo svg {
|
|
241
|
+
height: 32px;
|
|
242
|
+
width: auto;
|
|
243
|
+
}
|
|
244
|
+
.icon-circle {
|
|
245
|
+
width: 96px;
|
|
246
|
+
height: 96px;
|
|
247
|
+
border-radius: 50%;
|
|
248
|
+
background: ${iconBg};
|
|
249
|
+
display: flex;
|
|
250
|
+
align-items: center;
|
|
251
|
+
justify-content: center;
|
|
252
|
+
margin: 0 auto 1.5rem;
|
|
253
|
+
}
|
|
254
|
+
.icon {
|
|
255
|
+
font-size: 48px;
|
|
256
|
+
color: ${iconColor};
|
|
257
|
+
line-height: 1;
|
|
258
|
+
}
|
|
259
|
+
h1 {
|
|
260
|
+
font-size: 28px;
|
|
261
|
+
font-weight: 900;
|
|
262
|
+
color: ${titleColor};
|
|
263
|
+
margin-bottom: 0.5rem;
|
|
264
|
+
}
|
|
265
|
+
.message {
|
|
266
|
+
font-size: 16px;
|
|
267
|
+
color: #5e6c84;
|
|
268
|
+
line-height: 1.5;
|
|
269
|
+
margin-bottom: 1.5rem;
|
|
270
|
+
}
|
|
271
|
+
.code-section {
|
|
272
|
+
margin: 1.5rem 0;
|
|
273
|
+
}
|
|
274
|
+
.code-label {
|
|
275
|
+
font-size: 13px;
|
|
276
|
+
color: #8993a4;
|
|
277
|
+
margin-bottom: 0.5rem;
|
|
278
|
+
text-transform: uppercase;
|
|
279
|
+
letter-spacing: 0.05em;
|
|
280
|
+
}
|
|
281
|
+
.code {
|
|
282
|
+
font-family: 'SF Mono', 'Fira Code', Menlo, Consolas, monospace;
|
|
283
|
+
font-size: 28px;
|
|
284
|
+
font-weight: 700;
|
|
285
|
+
letter-spacing: 0.25em;
|
|
286
|
+
color: #172b4d;
|
|
287
|
+
background: #f4f5f7;
|
|
288
|
+
border: 2px solid #dfe1e6;
|
|
289
|
+
border-radius: 12px;
|
|
290
|
+
padding: 0.75rem 1.5rem;
|
|
291
|
+
display: inline-block;
|
|
292
|
+
}
|
|
293
|
+
.footer {
|
|
294
|
+
font-size: 13px;
|
|
295
|
+
color: #8993a4;
|
|
296
|
+
margin-top: 1.5rem;
|
|
297
|
+
}
|
|
298
|
+
.footer a {
|
|
299
|
+
color: #005eb4;
|
|
300
|
+
text-decoration: none;
|
|
301
|
+
}
|
|
302
|
+
</style>
|
|
303
|
+
</head>
|
|
304
|
+
<body>
|
|
305
|
+
<div class="card">
|
|
306
|
+
<div class="logo">
|
|
307
|
+
<svg viewBox="0 0 552 138" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
308
|
+
<path d="M71.19 95.55c-12.85 0-24.72-5.46-33.46-14.97l-.41-.45-19.59 16.08.45.52C30.37 110.64 49.8 120 71.19 120c34.26 0 59.25-24.7 59.25-58.76h-25.53c0 20.42-14.32 34.31-33.72 34.31Z" fill="#005EB4"/>
|
|
309
|
+
<path d="M71.19 36.42c13.56 0 24.8 5.32 33.36 15.04l.41.46 19.52-16.15-.44-.52C111.8 21.27 92.34 12 71.19 12 36.41 12 12 36.7 12 70.63h25.53c0-20.3 14.32-34.21 33.66-34.21Z" fill="#005EB4"/>
|
|
310
|
+
<path d="M190.05 96.74V76.2h38.82V58.01h-38.82V42.44h43.48V24.04h-64.12v91.32h66.46V96.74h-45.82Z" fill="#005EB4"/>
|
|
311
|
+
<path d="M287.9 45.04c-6.53 0-12.37 1.73-17.36 5.15V24.04h-20v91.32h20v-4.3c4.99 3.63 10.96 5.49 17.75 5.49 18.74 0 33.01-15.58 33.01-36.09 0-20.25-14.54-35.42-33.4-35.42Zm-2.53 53.5c-9.62 0-16.63-7.52-16.63-17.86 0-10.07 7-17.53 16.29-17.53 9.62 0 16.63 7.46 16.63 17.53 0 10.34-7.01 17.86-16.29 17.86Z" fill="#005EB4"/>
|
|
312
|
+
<path d="M335.35 24.04h20.64v91.32h-20.64V24.04Z" fill="#005EB4"/>
|
|
313
|
+
<path d="M397.25 45.04c-20.78 0-36.74 15.37-36.74 35.42 0 20.32 15.96 36.09 36.39 36.09 20.78 0 36.74-15.5 36.74-35.82 0-20.45-15.97-35.69-36.39-35.69Zm-.18 53.5c-9.48 0-16.11-7.52-16.11-18.28 0-10.14 6.86-17.25 16.65-17.25 9.41 0 16.04 7.11 16.04 17.25 0 10.76-6.86 18.28-16.58 18.28Z" fill="#005EB4"/>
|
|
314
|
+
<path d="M460.2 62.87v-16.4h-13.06v68.89h20.64V79.07c0-9.35 5.73-14.7 14.18-14.7h6.53V45.04h-4.62c-10.3 0-18.68 5.73-23.67 17.83Z" fill="#005EB4"/>
|
|
315
|
+
<circle cx="526" cy="90" r="14" fill="#FF7043"/>
|
|
316
|
+
</svg>
|
|
317
|
+
</div>
|
|
318
|
+
<div class="icon-circle">
|
|
319
|
+
<span class="icon">${icon}</span>
|
|
320
|
+
</div>
|
|
321
|
+
<h1>${escapeHtml(title)}</h1>
|
|
322
|
+
<p class="message">${escapeHtml(message)}</p>
|
|
323
|
+
${codeBlock}
|
|
324
|
+
<p class="footer">Powered by <a href="https://epilot.cloud" target="_blank" rel="noopener">epilot</a></p>
|
|
325
|
+
</div>
|
|
326
|
+
</body>
|
|
327
|
+
</html>`;
|
|
328
|
+
};
|
|
329
|
+
var escapeHtml = (s) => s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
330
|
+
export {
|
|
331
|
+
auth_login_default as default
|
|
332
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
callApi
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BJOXXFMA.js";
|
|
5
5
|
import "./chunk-RSA7K5HB.js";
|
|
6
6
|
import "./chunk-PDMWUCWD.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-HN4QDJOJ.js";
|
|
8
8
|
import "./chunk-6RBLA5YE.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/apis/automation.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
callApi
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BJOXXFMA.js";
|
|
5
5
|
import "./chunk-RSA7K5HB.js";
|
|
6
6
|
import "./chunk-PDMWUCWD.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-HN4QDJOJ.js";
|
|
8
8
|
import "./chunk-6RBLA5YE.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/apis/billing.ts
|
package/dist/bin/epilot.js
CHANGED
|
@@ -11,7 +11,7 @@ import { defineCommand } from "citty";
|
|
|
11
11
|
var main = defineCommand({
|
|
12
12
|
meta: {
|
|
13
13
|
name: "epilot",
|
|
14
|
-
version: "0.1.
|
|
14
|
+
version: "0.1.5",
|
|
15
15
|
description: "CLI for epilot APIs"
|
|
16
16
|
},
|
|
17
17
|
args: {
|
|
@@ -24,65 +24,65 @@ var main = defineCommand({
|
|
|
24
24
|
jsonata: { type: "string", description: "JSONata expression" }
|
|
25
25
|
},
|
|
26
26
|
subCommands: {
|
|
27
|
-
auth: () => import("../auth-
|
|
27
|
+
auth: () => import("../auth-O5LQZAG7.js").then((m) => m.default),
|
|
28
28
|
profile: () => import("../profile-MZ3VK7PO.js").then((m) => m.default),
|
|
29
|
-
completion: () => import("../completion-
|
|
30
|
-
upgrade: () => import("../upgrade-
|
|
31
|
-
"access-token": () => import("../access-token-
|
|
32
|
-
address: () => import("../address-
|
|
33
|
-
"address-suggestions": () => import("../address-suggestions-
|
|
34
|
-
"ai-agents": () => import("../ai-agents-
|
|
35
|
-
app: () => import("../app-
|
|
36
|
-
"audit-logs": () => import("../audit-logs-
|
|
37
|
-
automation: () => import("../automation-
|
|
38
|
-
billing: () => import("../billing-
|
|
39
|
-
"blueprint-manifest": () => import("../blueprint-manifest-
|
|
40
|
-
consent: () => import("../consent-
|
|
41
|
-
"customer-portal": () => import("../customer-portal-
|
|
42
|
-
dashboard: () => import("../dashboard-
|
|
43
|
-
"data-management": () => import("../data-management-
|
|
44
|
-
deduplication: () => import("../deduplication-
|
|
45
|
-
design: () => import("../design-
|
|
46
|
-
document: () => import("../document-
|
|
47
|
-
"email-settings": () => import("../email-settings-
|
|
48
|
-
"email-template": () => import("../email-template-
|
|
49
|
-
entity: () => import("../entity-
|
|
50
|
-
"entity-mapping": () => import("../entity-mapping-
|
|
51
|
-
environments: () => import("../environments-
|
|
52
|
-
"erp-integration": () => import("../erp-integration-
|
|
53
|
-
"event-catalog": () => import("../event-catalog-
|
|
54
|
-
file: () => import("../file-
|
|
55
|
-
iban: () => import("../iban-
|
|
56
|
-
journey: () => import("../journey-
|
|
57
|
-
kanban: () => import("../kanban-
|
|
58
|
-
message: () => import("../message-
|
|
59
|
-
metering: () => import("../metering-
|
|
60
|
-
notes: () => import("../notes-
|
|
61
|
-
notification: () => import("../notification-
|
|
62
|
-
organization: () => import("../organization-
|
|
63
|
-
"partner-directory": () => import("../partner-directory-
|
|
64
|
-
permissions: () => import("../permissions-
|
|
65
|
-
pricing: () => import("../pricing-
|
|
66
|
-
"pricing-tier": () => import("../pricing-tier-
|
|
67
|
-
purpose: () => import("../purpose-
|
|
68
|
-
sandbox: () => import("../sandbox-
|
|
69
|
-
submission: () => import("../submission-
|
|
70
|
-
targeting: () => import("../targeting-
|
|
71
|
-
"template-variables": () => import("../template-variables-
|
|
72
|
-
user: () => import("../user-
|
|
73
|
-
"validation-rules": () => import("../validation-rules-
|
|
74
|
-
webhooks: () => import("../webhooks-
|
|
75
|
-
workflow: () => import("../workflow-
|
|
76
|
-
"workflow-definition": () => import("../workflow-definition-
|
|
29
|
+
completion: () => import("../completion-RCVUCEMM.js").then((m) => m.default),
|
|
30
|
+
upgrade: () => import("../upgrade-VJCKIUNZ.js").then((m) => m.default),
|
|
31
|
+
"access-token": () => import("../access-token-BDNU3ZFC.js").then((m) => m.default),
|
|
32
|
+
address: () => import("../address-ZCYZYRP4.js").then((m) => m.default),
|
|
33
|
+
"address-suggestions": () => import("../address-suggestions-RP5N7NVQ.js").then((m) => m.default),
|
|
34
|
+
"ai-agents": () => import("../ai-agents-PLUGVZTI.js").then((m) => m.default),
|
|
35
|
+
app: () => import("../app-HZECIN6N.js").then((m) => m.default),
|
|
36
|
+
"audit-logs": () => import("../audit-logs-JWKGNHPP.js").then((m) => m.default),
|
|
37
|
+
automation: () => import("../automation-73BC4PYK.js").then((m) => m.default),
|
|
38
|
+
billing: () => import("../billing-GQDSK4H2.js").then((m) => m.default),
|
|
39
|
+
"blueprint-manifest": () => import("../blueprint-manifest-4M7DNWYE.js").then((m) => m.default),
|
|
40
|
+
consent: () => import("../consent-OJBGOI54.js").then((m) => m.default),
|
|
41
|
+
"customer-portal": () => import("../customer-portal-BDKNWKHA.js").then((m) => m.default),
|
|
42
|
+
dashboard: () => import("../dashboard-IAEU3JFY.js").then((m) => m.default),
|
|
43
|
+
"data-management": () => import("../data-management-UEDSGAKB.js").then((m) => m.default),
|
|
44
|
+
deduplication: () => import("../deduplication-JJS3TOJ2.js").then((m) => m.default),
|
|
45
|
+
design: () => import("../design-WKSDZFBJ.js").then((m) => m.default),
|
|
46
|
+
document: () => import("../document-P5OL4NYY.js").then((m) => m.default),
|
|
47
|
+
"email-settings": () => import("../email-settings-743JHCKS.js").then((m) => m.default),
|
|
48
|
+
"email-template": () => import("../email-template-MW4IVDPM.js").then((m) => m.default),
|
|
49
|
+
entity: () => import("../entity-K5X6FWJI.js").then((m) => m.default),
|
|
50
|
+
"entity-mapping": () => import("../entity-mapping-QBJ2I2VR.js").then((m) => m.default),
|
|
51
|
+
environments: () => import("../environments-VUR7ME42.js").then((m) => m.default),
|
|
52
|
+
"erp-integration": () => import("../erp-integration-A2KAIXUQ.js").then((m) => m.default),
|
|
53
|
+
"event-catalog": () => import("../event-catalog-6YEG5CEM.js").then((m) => m.default),
|
|
54
|
+
file: () => import("../file-J6PHZ447.js").then((m) => m.default),
|
|
55
|
+
iban: () => import("../iban-DJSUCRU6.js").then((m) => m.default),
|
|
56
|
+
journey: () => import("../journey-QJZKU3PZ.js").then((m) => m.default),
|
|
57
|
+
kanban: () => import("../kanban-ZF4IIG7Q.js").then((m) => m.default),
|
|
58
|
+
message: () => import("../message-WH4GD5SC.js").then((m) => m.default),
|
|
59
|
+
metering: () => import("../metering-FCWUZ2TC.js").then((m) => m.default),
|
|
60
|
+
notes: () => import("../notes-KKVPGK7K.js").then((m) => m.default),
|
|
61
|
+
notification: () => import("../notification-4MVAZTRP.js").then((m) => m.default),
|
|
62
|
+
organization: () => import("../organization-2UT2KFMB.js").then((m) => m.default),
|
|
63
|
+
"partner-directory": () => import("../partner-directory-SUNW4XN7.js").then((m) => m.default),
|
|
64
|
+
permissions: () => import("../permissions-36VGB4BQ.js").then((m) => m.default),
|
|
65
|
+
pricing: () => import("../pricing-RCNFEEHO.js").then((m) => m.default),
|
|
66
|
+
"pricing-tier": () => import("../pricing-tier-MNCLLXD5.js").then((m) => m.default),
|
|
67
|
+
purpose: () => import("../purpose-3JN63WTQ.js").then((m) => m.default),
|
|
68
|
+
sandbox: () => import("../sandbox-C676YDRV.js").then((m) => m.default),
|
|
69
|
+
submission: () => import("../submission-5XTNMMCK.js").then((m) => m.default),
|
|
70
|
+
targeting: () => import("../targeting-C52KV6IW.js").then((m) => m.default),
|
|
71
|
+
"template-variables": () => import("../template-variables-5SKJEJF4.js").then((m) => m.default),
|
|
72
|
+
user: () => import("../user-DYAR3N6L.js").then((m) => m.default),
|
|
73
|
+
"validation-rules": () => import("../validation-rules-LDAOUPOO.js").then((m) => m.default),
|
|
74
|
+
webhooks: () => import("../webhooks-MT2P33A2.js").then((m) => m.default),
|
|
75
|
+
workflow: () => import("../workflow-YGWGE6L4.js").then((m) => m.default),
|
|
76
|
+
"workflow-definition": () => import("../workflow-definition-JG54ZWGL.js").then((m) => m.default)
|
|
77
77
|
}
|
|
78
78
|
});
|
|
79
79
|
|
|
80
80
|
// bin/epilot.ts
|
|
81
|
-
var VERSION = true ? "0.1.
|
|
81
|
+
var VERSION = true ? "0.1.5" : (await null).default.version;
|
|
82
82
|
var args = process.argv.slice(2);
|
|
83
83
|
var completionsIdx = args.indexOf("--_completions");
|
|
84
84
|
if (completionsIdx >= 0) {
|
|
85
|
-
const { handleCompletions } = await import("../completion-
|
|
85
|
+
const { handleCompletions } = await import("../completion-RCVUCEMM.js");
|
|
86
86
|
handleCompletions(args[completionsIdx + 1], args[completionsIdx + 2]);
|
|
87
87
|
process.exit(0);
|
|
88
88
|
}
|
|
@@ -98,19 +98,17 @@ if (hasNoSubcommand && (hasHelp || args.length === 0)) {
|
|
|
98
98
|
printRootHelp();
|
|
99
99
|
process.exit(0);
|
|
100
100
|
}
|
|
101
|
-
if (hasHelp
|
|
101
|
+
if (hasHelp) {
|
|
102
102
|
const apiArg = args.find((a) => !a.startsWith("-"));
|
|
103
103
|
const isApi = apiArg && API_LIST.some((api) => api.kebabName === apiArg);
|
|
104
104
|
if (isApi) {
|
|
105
105
|
const positionals = args.filter((a) => !a.startsWith("-"));
|
|
106
106
|
const operationId = positionals[1];
|
|
107
|
+
const filteredArgs = args.filter((a) => a !== "--help" && a !== "-h");
|
|
107
108
|
if (operationId) {
|
|
108
|
-
process.argv = [
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
...args.filter((a) => a !== "--help" && a !== "-h"),
|
|
112
|
-
"--_ophelp"
|
|
113
|
-
];
|
|
109
|
+
process.argv = [process.argv[0], process.argv[1], ...filteredArgs, "--_ophelp"];
|
|
110
|
+
} else {
|
|
111
|
+
process.argv = [process.argv[0], process.argv[1], ...filteredArgs];
|
|
114
112
|
}
|
|
115
113
|
}
|
|
116
114
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
callApi
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BJOXXFMA.js";
|
|
5
5
|
import "./chunk-RSA7K5HB.js";
|
|
6
6
|
import "./chunk-PDMWUCWD.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-HN4QDJOJ.js";
|
|
8
8
|
import "./chunk-6RBLA5YE.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/apis/blueprint-manifest.ts
|