epismo 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +84 -75
- package/npm/bin/epismo.exe +1 -0
- package/npm/install.js +82 -0
- package/package.json +30 -38
- package/dist/analytics.js +0 -44
- package/dist/analytics.js.map +0 -1
- package/dist/api.js +0 -111
- package/dist/api.js.map +0 -1
- package/dist/auth.js +0 -658
- package/dist/auth.js.map +0 -1
- package/dist/bin.js +0 -3
- package/dist/bin.js.map +0 -1
- package/dist/cases.js +0 -25
- package/dist/cases.js.map +0 -1
- package/dist/config.js +0 -109
- package/dist/config.js.map +0 -1
- package/dist/context.js +0 -16
- package/dist/context.js.map +0 -1
- package/dist/credits.js +0 -31
- package/dist/credits.js.map +0 -1
- package/dist/errors.js +0 -111
- package/dist/errors.js.map +0 -1
- package/dist/index.js +0 -36
- package/dist/index.js.map +0 -1
- package/dist/input.js +0 -211
- package/dist/input.js.map +0 -1
- package/dist/output.js +0 -10
- package/dist/output.js.map +0 -1
- package/dist/playbook-program.js +0 -470
- package/dist/playbook-program.js.map +0 -1
- package/dist/playbooks.js +0 -62
- package/dist/playbooks.js.map +0 -1
- package/dist/program.js +0 -368
- package/dist/program.js.map +0 -1
- package/dist/projects.js +0 -54
- package/dist/projects.js.map +0 -1
- package/dist/records.js +0 -12
- package/dist/records.js.map +0 -1
- package/dist/suggestions.js +0 -15
- package/dist/suggestions.js.map +0 -1
- package/dist/token.js +0 -10
- package/dist/token.js.map +0 -1
- package/dist/update-check.js +0 -121
- package/dist/update-check.js.map +0 -1
- package/dist/workspace.js +0 -19
- package/dist/workspace.js.map +0 -1
- package/dist/workspaces.js +0 -61
- package/dist/workspaces.js.map +0 -1
package/dist/api.js
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { createRequire } from "node:module";
|
|
2
|
-
import { CliError } from "./errors.js";
|
|
3
|
-
// Read CLI version once at module load. Kept in User-Agent as raw request metadata.
|
|
4
|
-
const pkg = createRequire(import.meta.url)("../package.json");
|
|
5
|
-
const CLI_USER_AGENT = `epismo/${pkg.version}`;
|
|
6
|
-
export function withWorkspaceQuery(pathname, workspaceId) {
|
|
7
|
-
if (!workspaceId?.trim()) {
|
|
8
|
-
return pathname;
|
|
9
|
-
}
|
|
10
|
-
const params = new URLSearchParams({ workspaceId: workspaceId.trim() });
|
|
11
|
-
const separator = pathname.includes("?") ? "&" : "?";
|
|
12
|
-
return `${pathname}${separator}${params.toString()}`;
|
|
13
|
-
}
|
|
14
|
-
export async function requestJson(apiUrl, pathname, options = {}) {
|
|
15
|
-
const headers = {
|
|
16
|
-
"user-agent": CLI_USER_AGENT,
|
|
17
|
-
"x-epismo-source": "cli"
|
|
18
|
-
};
|
|
19
|
-
if (options.body !== undefined) {
|
|
20
|
-
headers["content-type"] = "application/json";
|
|
21
|
-
}
|
|
22
|
-
if (options.authToken) {
|
|
23
|
-
headers.authorization = `Bearer ${options.authToken}`;
|
|
24
|
-
}
|
|
25
|
-
const controller = new AbortController();
|
|
26
|
-
const timeoutId = setTimeout(() => controller.abort(), 30_000);
|
|
27
|
-
let response;
|
|
28
|
-
try {
|
|
29
|
-
response = await fetch(`${apiUrl}${pathname}`, {
|
|
30
|
-
method: options.method ?? "GET",
|
|
31
|
-
headers,
|
|
32
|
-
body: options.body !== undefined ? JSON.stringify(options.body) : undefined,
|
|
33
|
-
signal: controller.signal
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
if (error instanceof Error && error.name === "AbortError") {
|
|
38
|
-
throw new CliError({
|
|
39
|
-
code: "REQUEST_TIMEOUT",
|
|
40
|
-
message: "Request timed out.",
|
|
41
|
-
retryable: true
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
45
|
-
throw new CliError({
|
|
46
|
-
code: "NETWORK_ERROR",
|
|
47
|
-
message,
|
|
48
|
-
retryable: true
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
finally {
|
|
52
|
-
clearTimeout(timeoutId);
|
|
53
|
-
}
|
|
54
|
-
const text = await response.text();
|
|
55
|
-
let parsed = {};
|
|
56
|
-
if (text) {
|
|
57
|
-
try {
|
|
58
|
-
parsed = JSON.parse(text);
|
|
59
|
-
}
|
|
60
|
-
catch {
|
|
61
|
-
parsed = { error: text };
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (!response.ok) {
|
|
65
|
-
const payload = parsed && typeof parsed === "object" && !Array.isArray(parsed)
|
|
66
|
-
? parsed
|
|
67
|
-
: {};
|
|
68
|
-
const message = typeof payload.error === "string"
|
|
69
|
-
? payload.error
|
|
70
|
-
: typeof payload.error_description === "string"
|
|
71
|
-
? payload.error_description
|
|
72
|
-
: typeof payload.message === "string"
|
|
73
|
-
? payload.message
|
|
74
|
-
: `HTTP ${response.status}`;
|
|
75
|
-
// Surface Retry-After (seconds or HTTP-date) so callers can wait the exact
|
|
76
|
-
// window instead of guessing — relevant for 429s on the OTP send endpoint.
|
|
77
|
-
const retryAfter = response.headers.get("retry-after");
|
|
78
|
-
throw new CliError({
|
|
79
|
-
code: mapHttpErrorCode(response.status),
|
|
80
|
-
message,
|
|
81
|
-
retryable: response.status >= 500 || response.status === 429,
|
|
82
|
-
details: {
|
|
83
|
-
status: response.status,
|
|
84
|
-
pathname,
|
|
85
|
-
...(retryAfter ? { retryAfter } : {})
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
return parsed;
|
|
90
|
-
}
|
|
91
|
-
function mapHttpErrorCode(status) {
|
|
92
|
-
switch (status) {
|
|
93
|
-
case 400:
|
|
94
|
-
return "BAD_REQUEST";
|
|
95
|
-
case 401:
|
|
96
|
-
return "UNAUTHORIZED";
|
|
97
|
-
case 403:
|
|
98
|
-
return "FORBIDDEN";
|
|
99
|
-
case 404:
|
|
100
|
-
return "NOT_FOUND";
|
|
101
|
-
case 409:
|
|
102
|
-
return "CONFLICT";
|
|
103
|
-
case 422:
|
|
104
|
-
return "UNPROCESSABLE_ENTITY";
|
|
105
|
-
case 429:
|
|
106
|
-
return "RATE_LIMITED";
|
|
107
|
-
default:
|
|
108
|
-
return status >= 500 ? "SERVER_ERROR" : "HTTP_ERROR";
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
//# sourceMappingURL=api.js.map
|
package/dist/api.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|