crispctl 0.0.0 → 0.1.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 +21 -0
- package/README.md +140 -1
- package/dist/args.d.ts +28 -0
- package/dist/args.js +156 -0
- package/dist/args.js.map +1 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.js +295 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +28 -0
- package/dist/client.js +181 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +45 -0
- package/dist/config.js +220 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +16 -0
- package/dist/errors.js +36 -0
- package/dist/errors.js.map +1 -0
- package/dist/help.d.ts +19 -0
- package/dist/help.js +175 -0
- package/dist/help.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/output.d.ts +11 -0
- package/dist/output.js +50 -0
- package/dist/output.js.map +1 -0
- package/dist/redact.d.ts +1 -0
- package/dist/redact.js +12 -0
- package/dist/redact.js.map +1 -0
- package/dist/rtm.d.ts +4 -0
- package/dist/rtm.js +25 -0
- package/dist/rtm.js.map +1 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +7 -0
- package/dist/version.js.map +1 -0
- package/package.json +52 -3
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type Dispatcher } from "undici";
|
|
2
|
+
import type { Tier } from "./config.js";
|
|
3
|
+
export declare const CRISP_ORIGIN = "https://api.crisp.chat";
|
|
4
|
+
export type ClientCredentials = {
|
|
5
|
+
identifier: string;
|
|
6
|
+
key: string;
|
|
7
|
+
tier: Tier;
|
|
8
|
+
websiteId: string;
|
|
9
|
+
};
|
|
10
|
+
export declare class CrispClient {
|
|
11
|
+
private readonly creds;
|
|
12
|
+
private readonly dispatcher?;
|
|
13
|
+
constructor(creds: ClientCredentials, dispatcher?: Dispatcher | undefined);
|
|
14
|
+
listConversations(page?: number): Promise<unknown>;
|
|
15
|
+
getConversation(sessionId: string): Promise<unknown>;
|
|
16
|
+
searchConversations(searchQuery: string, page?: number, searchType?: string): Promise<unknown>;
|
|
17
|
+
listMessages(sessionId: string): Promise<unknown>;
|
|
18
|
+
sendOperatorMessage(sessionId: string, kind: "text" | "note", content: string): Promise<unknown>;
|
|
19
|
+
setState(sessionId: string, state: "resolved" | "unresolved"): Promise<unknown>;
|
|
20
|
+
assign(sessionId: string, userId: string | null): Promise<unknown>;
|
|
21
|
+
setSegments(sessionId: string, segments: string[]): Promise<unknown>;
|
|
22
|
+
markRead(sessionId: string): Promise<unknown>;
|
|
23
|
+
getPerson(idOrEmail: string): Promise<unknown>;
|
|
24
|
+
private peopleIdForEmail;
|
|
25
|
+
listOperators(): Promise<unknown>;
|
|
26
|
+
private site;
|
|
27
|
+
private request;
|
|
28
|
+
}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { fetch as undiciFetch } from "undici";
|
|
2
|
+
import { CrispApiError } from "./errors.js";
|
|
3
|
+
import { version } from "./version.js";
|
|
4
|
+
export const CRISP_ORIGIN = "https://api.crisp.chat";
|
|
5
|
+
export class CrispClient {
|
|
6
|
+
creds;
|
|
7
|
+
dispatcher;
|
|
8
|
+
constructor(creds, dispatcher) {
|
|
9
|
+
this.creds = creds;
|
|
10
|
+
this.dispatcher = dispatcher;
|
|
11
|
+
}
|
|
12
|
+
listConversations(page = 1) {
|
|
13
|
+
return this.request("GET", this.site(`/conversations/${page}`));
|
|
14
|
+
}
|
|
15
|
+
getConversation(sessionId) {
|
|
16
|
+
return this.request("GET", this.site(`/conversation/${encodeURIComponent(sessionId)}`));
|
|
17
|
+
}
|
|
18
|
+
searchConversations(searchQuery, page = 1, searchType = "text") {
|
|
19
|
+
return this.request("GET", this.site(`/conversations/${page}`), {
|
|
20
|
+
query: {
|
|
21
|
+
search_query: searchQuery,
|
|
22
|
+
search_type: searchType,
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
listMessages(sessionId) {
|
|
27
|
+
return this.request("GET", this.site(`/conversation/${encodeURIComponent(sessionId)}/messages`));
|
|
28
|
+
}
|
|
29
|
+
sendOperatorMessage(sessionId, kind, content) {
|
|
30
|
+
return this.request("POST", this.site(`/conversation/${encodeURIComponent(sessionId)}/message`), {
|
|
31
|
+
body: {
|
|
32
|
+
type: kind,
|
|
33
|
+
from: "operator",
|
|
34
|
+
origin: "chat",
|
|
35
|
+
content,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
setState(sessionId, state) {
|
|
40
|
+
return this.request("PATCH", this.site(`/conversation/${encodeURIComponent(sessionId)}/state`), {
|
|
41
|
+
body: { state },
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
assign(sessionId, userId) {
|
|
45
|
+
return this.request("PATCH", this.site(`/conversation/${encodeURIComponent(sessionId)}/routing`), {
|
|
46
|
+
body: {
|
|
47
|
+
assigned: userId === null ? null : { user_id: userId },
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
setSegments(sessionId, segments) {
|
|
52
|
+
return this.request("PATCH", this.site(`/conversation/${encodeURIComponent(sessionId)}/meta`), {
|
|
53
|
+
body: { segments },
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
markRead(sessionId) {
|
|
57
|
+
return this.request("PATCH", this.site(`/conversation/${encodeURIComponent(sessionId)}/read`), {
|
|
58
|
+
body: {
|
|
59
|
+
from: "operator",
|
|
60
|
+
origin: "chat",
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
async getPerson(idOrEmail) {
|
|
65
|
+
const peopleId = isEmail(idOrEmail) ? await this.peopleIdForEmail(idOrEmail) : idOrEmail;
|
|
66
|
+
return this.request("GET", this.site(`/people/profile/${encodeURIComponent(peopleId)}`));
|
|
67
|
+
}
|
|
68
|
+
async peopleIdForEmail(email) {
|
|
69
|
+
const listed = await this.request("GET", this.site("/people/profiles/1"), {
|
|
70
|
+
query: { search_text: email },
|
|
71
|
+
});
|
|
72
|
+
if (!Array.isArray(listed)) {
|
|
73
|
+
throw new CrispApiError(200, "invalid_json", "people search did not return a list");
|
|
74
|
+
}
|
|
75
|
+
const needle = email.toLowerCase();
|
|
76
|
+
for (const item of listed) {
|
|
77
|
+
if (!item || typeof item !== "object" || Array.isArray(item))
|
|
78
|
+
continue;
|
|
79
|
+
const profile = item;
|
|
80
|
+
if (typeof profile.email !== "string" || profile.email.toLowerCase() !== needle)
|
|
81
|
+
continue;
|
|
82
|
+
if (typeof profile.people_id !== "string" || profile.people_id.length === 0)
|
|
83
|
+
continue;
|
|
84
|
+
return profile.people_id;
|
|
85
|
+
}
|
|
86
|
+
throw new CrispApiError(404, "not_found", "people profile not found");
|
|
87
|
+
}
|
|
88
|
+
listOperators() {
|
|
89
|
+
return this.request("GET", this.site("/operators/list"));
|
|
90
|
+
}
|
|
91
|
+
site(suffix) {
|
|
92
|
+
return `/website/${encodeURIComponent(this.creds.websiteId)}${suffix}`;
|
|
93
|
+
}
|
|
94
|
+
async request(method, path, opts) {
|
|
95
|
+
const url = new URL(`/v1${path}`, CRISP_ORIGIN);
|
|
96
|
+
for (const [key, value] of Object.entries(opts?.query ?? {})) {
|
|
97
|
+
if (value !== undefined) {
|
|
98
|
+
url.searchParams.append(key, value);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const headers = {
|
|
102
|
+
Accept: "application/json",
|
|
103
|
+
Authorization: `Basic ${Buffer.from(`${this.creds.identifier}:${this.creds.key}`).toString("base64")}`,
|
|
104
|
+
"X-Crisp-Tier": this.creds.tier,
|
|
105
|
+
"User-Agent": `crispctl/${version}`,
|
|
106
|
+
};
|
|
107
|
+
let body;
|
|
108
|
+
if (opts?.body !== undefined) {
|
|
109
|
+
headers["Content-Type"] = "application/json";
|
|
110
|
+
body = JSON.stringify(opts.body);
|
|
111
|
+
}
|
|
112
|
+
let response;
|
|
113
|
+
try {
|
|
114
|
+
response = await undiciFetch(url, {
|
|
115
|
+
method,
|
|
116
|
+
headers,
|
|
117
|
+
body,
|
|
118
|
+
redirect: "error",
|
|
119
|
+
dispatcher: this.dispatcher,
|
|
120
|
+
signal: AbortSignal.timeout(20_000),
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
const message = err instanceof Error ? err.message : "request failed";
|
|
125
|
+
throw new CrispApiError(0, "network_error", message);
|
|
126
|
+
}
|
|
127
|
+
const text = await response.text();
|
|
128
|
+
const retryAfter = response.headers.get("retry-after") ?? undefined;
|
|
129
|
+
let payload = null;
|
|
130
|
+
if (text.length > 0) {
|
|
131
|
+
let decoded;
|
|
132
|
+
try {
|
|
133
|
+
decoded = JSON.parse(text);
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
if (response.status >= 400) {
|
|
137
|
+
throw new CrispApiError(response.status, statusReason(response.status), `HTTP ${response.status}`, retryAfter);
|
|
138
|
+
}
|
|
139
|
+
throw new CrispApiError(response.status, "invalid_json", "response was not JSON", retryAfter);
|
|
140
|
+
}
|
|
141
|
+
if (!isEnvelope(decoded)) {
|
|
142
|
+
throw new CrispApiError(response.status, "invalid_json", "response was not a JSON object", retryAfter);
|
|
143
|
+
}
|
|
144
|
+
payload = decoded;
|
|
145
|
+
}
|
|
146
|
+
if (response.status >= 400 || payload?.error === true) {
|
|
147
|
+
const reason = typeof payload?.reason === "string" && payload.reason
|
|
148
|
+
? payload.reason
|
|
149
|
+
: statusReason(response.status);
|
|
150
|
+
const dataMessage = readDataMessage(payload?.data);
|
|
151
|
+
throw new CrispApiError(response.status, reason, dataMessage || reason, retryAfter);
|
|
152
|
+
}
|
|
153
|
+
if (payload && "data" in payload) {
|
|
154
|
+
return payload.data ?? null;
|
|
155
|
+
}
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function isEnvelope(value) {
|
|
160
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
161
|
+
}
|
|
162
|
+
function isEmail(value) {
|
|
163
|
+
return /^[^\s@]+@[^\s@]+$/.test(value);
|
|
164
|
+
}
|
|
165
|
+
function statusReason(status) {
|
|
166
|
+
if (status === 429)
|
|
167
|
+
return "rate_limited";
|
|
168
|
+
if (status === 401 || status === 403)
|
|
169
|
+
return "unauthorized";
|
|
170
|
+
if (status === 404)
|
|
171
|
+
return "not_found";
|
|
172
|
+
return "http_error";
|
|
173
|
+
}
|
|
174
|
+
function readDataMessage(data) {
|
|
175
|
+
if (!data || typeof data !== "object" || !("message" in data)) {
|
|
176
|
+
return "";
|
|
177
|
+
}
|
|
178
|
+
const message = data.message;
|
|
179
|
+
return typeof message === "string" ? message : "";
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export type Tier = "website" | "plugin";
|
|
2
|
+
export type Profile = {
|
|
3
|
+
identifier: string;
|
|
4
|
+
key: string;
|
|
5
|
+
tier: Tier;
|
|
6
|
+
website_id: string;
|
|
7
|
+
};
|
|
8
|
+
export type ConfigFile = {
|
|
9
|
+
current?: string;
|
|
10
|
+
profiles: Record<string, Profile>;
|
|
11
|
+
};
|
|
12
|
+
export type CredentialSources = {
|
|
13
|
+
identifier: "env" | "file" | "missing";
|
|
14
|
+
key: "env" | "file" | "missing";
|
|
15
|
+
tier: "env" | "file" | "missing";
|
|
16
|
+
websiteId: "flag" | "env" | "file" | "missing";
|
|
17
|
+
};
|
|
18
|
+
export type ResolvedCredentials = {
|
|
19
|
+
profile: string;
|
|
20
|
+
identifier: string;
|
|
21
|
+
key: string;
|
|
22
|
+
tier: Tier;
|
|
23
|
+
websiteId: string;
|
|
24
|
+
sources: CredentialSources;
|
|
25
|
+
};
|
|
26
|
+
export declare function configFilePath(env: NodeJS.ProcessEnv): string;
|
|
27
|
+
export declare function emptyConfig(): ConfigFile;
|
|
28
|
+
export declare function loadConfig(env: NodeJS.ProcessEnv): ConfigFile;
|
|
29
|
+
export declare function saveConfig(env: NodeJS.ProcessEnv, config: ConfigFile): void;
|
|
30
|
+
export declare function assertProfileName(name: string): void;
|
|
31
|
+
export declare function selectedProfileName(env: NodeJS.ProcessEnv, profileFlag: string | undefined, file: ConfigFile): string;
|
|
32
|
+
export declare function resolveCredentials(env: NodeJS.ProcessEnv, opts: {
|
|
33
|
+
profile?: string;
|
|
34
|
+
website?: string;
|
|
35
|
+
}, file?: ConfigFile): ResolvedCredentials;
|
|
36
|
+
export declare function assertComplete(creds: ResolvedCredentials): void;
|
|
37
|
+
export declare function publicProfileView(creds: ResolvedCredentials): {
|
|
38
|
+
profile: string;
|
|
39
|
+
identifier: string | null;
|
|
40
|
+
tier: Tier | null;
|
|
41
|
+
website_id: string | null;
|
|
42
|
+
key: "set" | "missing";
|
|
43
|
+
sources: CredentialSources;
|
|
44
|
+
};
|
|
45
|
+
export declare function parseTier(value: string): Tier;
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import { ConfigError } from "./errors.js";
|
|
5
|
+
const TIERS = new Set(["website", "plugin"]);
|
|
6
|
+
export function configFilePath(env) {
|
|
7
|
+
const explicit = env.CRISPCTL_CONFIG?.trim();
|
|
8
|
+
if (explicit) {
|
|
9
|
+
return explicit;
|
|
10
|
+
}
|
|
11
|
+
const xdg = env.XDG_CONFIG_HOME?.trim();
|
|
12
|
+
const base = xdg || join(env.HOME?.trim() || homedir(), ".config");
|
|
13
|
+
return join(base, "crispctl", "config.json");
|
|
14
|
+
}
|
|
15
|
+
export function emptyConfig() {
|
|
16
|
+
return { profiles: {} };
|
|
17
|
+
}
|
|
18
|
+
export function loadConfig(env) {
|
|
19
|
+
const path = configFilePath(env);
|
|
20
|
+
if (!existsSync(path)) {
|
|
21
|
+
return emptyConfig();
|
|
22
|
+
}
|
|
23
|
+
let raw;
|
|
24
|
+
try {
|
|
25
|
+
raw = readFileSync(path, "utf8");
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
throw new ConfigError("could not read config file");
|
|
29
|
+
}
|
|
30
|
+
if (!raw.trim()) {
|
|
31
|
+
return emptyConfig();
|
|
32
|
+
}
|
|
33
|
+
let parsed;
|
|
34
|
+
try {
|
|
35
|
+
parsed = JSON.parse(raw);
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
throw new ConfigError("config file is not valid JSON");
|
|
39
|
+
}
|
|
40
|
+
return normalizeConfig(parsed);
|
|
41
|
+
}
|
|
42
|
+
export function saveConfig(env, config) {
|
|
43
|
+
const path = configFilePath(env);
|
|
44
|
+
const dir = dirname(path);
|
|
45
|
+
const tmp = `${path}.${process.pid}.tmp`;
|
|
46
|
+
const data = `${JSON.stringify(config, null, 2)}\n`;
|
|
47
|
+
try {
|
|
48
|
+
ensureCreatedDirectories(dir);
|
|
49
|
+
writeFileSync(tmp, data, { mode: 0o600 });
|
|
50
|
+
chmodSync(tmp, 0o600);
|
|
51
|
+
renameSync(tmp, path);
|
|
52
|
+
chmodSync(path, 0o600);
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
try {
|
|
56
|
+
if (existsSync(tmp))
|
|
57
|
+
unlinkSync(tmp);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// The original write error is the one to report.
|
|
61
|
+
}
|
|
62
|
+
if (err instanceof ConfigError) {
|
|
63
|
+
throw err;
|
|
64
|
+
}
|
|
65
|
+
throw new ConfigError("could not write config file");
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function ensureCreatedDirectories(dir) {
|
|
69
|
+
const missing = [];
|
|
70
|
+
let cursor = dir;
|
|
71
|
+
while (!existsSync(cursor)) {
|
|
72
|
+
missing.push(cursor);
|
|
73
|
+
const parent = dirname(cursor);
|
|
74
|
+
if (parent === cursor)
|
|
75
|
+
break;
|
|
76
|
+
cursor = parent;
|
|
77
|
+
}
|
|
78
|
+
for (const path of missing.reverse()) {
|
|
79
|
+
try {
|
|
80
|
+
mkdirSync(path, { mode: 0o700 });
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
const code = err.code;
|
|
84
|
+
if (code === "EEXIST")
|
|
85
|
+
continue;
|
|
86
|
+
throw err;
|
|
87
|
+
}
|
|
88
|
+
chmodSync(path, 0o700);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export function assertProfileName(name) {
|
|
92
|
+
if (!/^[A-Za-z0-9][A-Za-z0-9_-]*$/.test(name)) {
|
|
93
|
+
throw new ConfigError(`invalid profile name: ${name}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export function selectedProfileName(env, profileFlag, file) {
|
|
97
|
+
const fromFlag = profileFlag?.trim();
|
|
98
|
+
const fromEnv = firstEnv(env, ["CRISPCTL_PROFILE"]);
|
|
99
|
+
const name = fromFlag || fromEnv || file.current || "default";
|
|
100
|
+
assertProfileName(name);
|
|
101
|
+
return name;
|
|
102
|
+
}
|
|
103
|
+
export function resolveCredentials(env, opts, file) {
|
|
104
|
+
const loaded = file ?? loadConfig(env);
|
|
105
|
+
const profile = selectedProfileName(env, opts.profile, loaded);
|
|
106
|
+
const stored = loaded.profiles[profile];
|
|
107
|
+
const identifierEnv = firstEnv(env, ["CRISPCTL_IDENTIFIER", "CRISP_IDENTIFIER"]);
|
|
108
|
+
const keyEnv = firstEnv(env, ["CRISPCTL_KEY", "CRISP_KEY"]);
|
|
109
|
+
const tierEnv = firstEnv(env, ["CRISPCTL_TIER", "CRISP_TIER"]);
|
|
110
|
+
const websiteEnv = firstEnv(env, ["CRISPCTL_WEBSITE_ID", "CRISP_WEBSITE_ID"]);
|
|
111
|
+
const websiteFlag = opts.website?.trim() || undefined;
|
|
112
|
+
let tier;
|
|
113
|
+
let tierSource = "missing";
|
|
114
|
+
if (tierEnv) {
|
|
115
|
+
tier = parseTier(tierEnv);
|
|
116
|
+
tierSource = "env";
|
|
117
|
+
}
|
|
118
|
+
else if (stored) {
|
|
119
|
+
tier = stored.tier;
|
|
120
|
+
tierSource = "file";
|
|
121
|
+
}
|
|
122
|
+
return {
|
|
123
|
+
profile,
|
|
124
|
+
identifier: identifierEnv ?? stored?.identifier ?? "",
|
|
125
|
+
key: keyEnv ?? stored?.key ?? "",
|
|
126
|
+
tier: tier ?? "plugin",
|
|
127
|
+
websiteId: websiteFlag ?? websiteEnv ?? stored?.website_id ?? "",
|
|
128
|
+
sources: {
|
|
129
|
+
identifier: identifierEnv ? "env" : stored?.identifier ? "file" : "missing",
|
|
130
|
+
key: keyEnv ? "env" : stored?.key ? "file" : "missing",
|
|
131
|
+
tier: tierSource,
|
|
132
|
+
websiteId: websiteFlag ? "flag" : websiteEnv ? "env" : stored?.website_id ? "file" : "missing",
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
export function assertComplete(creds) {
|
|
137
|
+
const missing = [];
|
|
138
|
+
if (!creds.identifier)
|
|
139
|
+
missing.push("identifier");
|
|
140
|
+
if (!creds.key)
|
|
141
|
+
missing.push("key");
|
|
142
|
+
if (creds.sources.tier === "missing")
|
|
143
|
+
missing.push("tier");
|
|
144
|
+
if (!creds.websiteId)
|
|
145
|
+
missing.push("website_id");
|
|
146
|
+
if (missing.length > 0) {
|
|
147
|
+
throw new ConfigError(`missing credentials: ${missing.join(", ")}`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
export function publicProfileView(creds) {
|
|
151
|
+
return {
|
|
152
|
+
profile: creds.profile,
|
|
153
|
+
identifier: creds.identifier || null,
|
|
154
|
+
tier: creds.sources.tier === "missing" ? null : creds.tier,
|
|
155
|
+
website_id: creds.websiteId || null,
|
|
156
|
+
key: creds.key ? "set" : "missing",
|
|
157
|
+
sources: creds.sources,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
export function parseTier(value) {
|
|
161
|
+
if (TIERS.has(value)) {
|
|
162
|
+
return value;
|
|
163
|
+
}
|
|
164
|
+
throw new ConfigError("tier must be website or plugin");
|
|
165
|
+
}
|
|
166
|
+
function firstEnv(env, keys) {
|
|
167
|
+
for (const key of keys) {
|
|
168
|
+
const value = env[key]?.trim();
|
|
169
|
+
if (value) {
|
|
170
|
+
return value;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
function normalizeConfig(parsed) {
|
|
176
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
177
|
+
throw new ConfigError("config file must be a JSON object");
|
|
178
|
+
}
|
|
179
|
+
const obj = parsed;
|
|
180
|
+
const profiles = {};
|
|
181
|
+
if (obj.profiles !== undefined) {
|
|
182
|
+
if (!obj.profiles || typeof obj.profiles !== "object" || Array.isArray(obj.profiles)) {
|
|
183
|
+
throw new ConfigError("config profiles must be an object");
|
|
184
|
+
}
|
|
185
|
+
for (const [name, value] of Object.entries(obj.profiles)) {
|
|
186
|
+
assertProfileName(name);
|
|
187
|
+
profiles[name] = normalizeProfile(name, value);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
let current;
|
|
191
|
+
if (obj.current !== undefined) {
|
|
192
|
+
if (typeof obj.current !== "string" || !obj.current.trim()) {
|
|
193
|
+
throw new ConfigError("config current profile must be a name");
|
|
194
|
+
}
|
|
195
|
+
current = obj.current.trim();
|
|
196
|
+
assertProfileName(current);
|
|
197
|
+
}
|
|
198
|
+
return { current, profiles };
|
|
199
|
+
}
|
|
200
|
+
function normalizeProfile(name, value) {
|
|
201
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
202
|
+
throw new ConfigError(`profile ${name} must be an object`);
|
|
203
|
+
}
|
|
204
|
+
const profile = value;
|
|
205
|
+
if (profile.tier !== "website" && profile.tier !== "plugin") {
|
|
206
|
+
throw new ConfigError(`profile ${name} tier must be website or plugin`);
|
|
207
|
+
}
|
|
208
|
+
for (const field of ["identifier", "key", "website_id"]) {
|
|
209
|
+
if (typeof profile[field] !== "string" || profile[field].length === 0) {
|
|
210
|
+
throw new ConfigError(`profile ${name} is missing ${field}`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
identifier: profile.identifier,
|
|
215
|
+
key: profile.key,
|
|
216
|
+
tier: profile.tier,
|
|
217
|
+
website_id: profile.website_id,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC/G,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAgCzC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;AAElD,MAAM,UAAU,cAAc,CAAC,GAAsB;IACnD,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAA;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAA;IACvC,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,EAAE,SAAS,CAAC,CAAA;IAClE,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAsB;IAC/C,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,WAAW,EAAE,CAAA;IACtB,CAAC;IACD,IAAI,GAAW,CAAA;IACf,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,WAAW,CAAC,4BAA4B,CAAC,CAAA;IACrD,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QAChB,OAAO,WAAW,EAAE,CAAA;IACtB,CAAC;IACD,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,WAAW,CAAC,+BAA+B,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAsB,EAAE,MAAkB;IACnE,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;IAChC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAA;IACxC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;IACnD,IAAI,CAAC;QACH,wBAAwB,CAAC,GAAG,CAAC,CAAA;QAC7B,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACzC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACrB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACrB,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,GAAG,CAAC;gBAAE,UAAU,CAAC,GAAG,CAAC,CAAA;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;QACnD,CAAC;QACD,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;YAC/B,MAAM,GAAG,CAAA;QACX,CAAC;QACD,MAAM,IAAI,WAAW,CAAC,6BAA6B,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAW;IAC3C,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,IAAI,MAAM,GAAG,GAAG,CAAA;IAChB,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9B,IAAI,MAAM,KAAK,MAAM;YAAE,MAAK;QAC5B,MAAM,GAAG,MAAM,CAAA;IACjB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAA;YAChD,IAAI,IAAI,KAAK,QAAQ;gBAAE,SAAQ;YAC/B,MAAM,GAAG,CAAA;QACX,CAAC;QACD,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACxB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,WAAW,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAA;IACxD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,GAAsB,EACtB,WAA+B,EAC/B,IAAgB;IAEhB,MAAM,QAAQ,GAAG,WAAW,EAAE,IAAI,EAAE,CAAA;IACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAA;IACnD,MAAM,IAAI,GAAG,QAAQ,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,CAAA;IAC7D,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACvB,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,GAAsB,EACtB,IAA4C,EAC5C,IAAiB;IAEjB,MAAM,MAAM,GAAG,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;IACtC,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAEvC,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAChF,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAA;IAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,SAAS,CAAA;IAErD,IAAI,IAAsB,CAAA;IAC1B,IAAI,UAAU,GAA8B,SAAS,CAAA;IACrD,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QACzB,UAAU,GAAG,KAAK,CAAA;IACpB,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QAClB,UAAU,GAAG,MAAM,CAAA;IACrB,CAAC;IAED,OAAO;QACL,OAAO;QACP,UAAU,EAAE,aAAa,IAAI,MAAM,EAAE,UAAU,IAAI,EAAE;QACrD,GAAG,EAAE,MAAM,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE;QAChC,IAAI,EAAE,IAAI,IAAI,QAAQ;QACtB,SAAS,EAAE,WAAW,IAAI,UAAU,IAAI,MAAM,EAAE,UAAU,IAAI,EAAE;QAChE,OAAO,EAAE;YACP,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC3E,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACtD,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SAC/F;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,IAAI,CAAC,KAAK,CAAC,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACjD,IAAI,CAAC,KAAK,CAAC,GAAG;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC1D,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAChD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,WAAW,CAAC,wBAAwB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACrE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAA0B;IAQ1D,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACpC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;QAC1D,UAAU,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;QACnC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAClC,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAa,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAa,CAAA;IACtB,CAAC;IACD,MAAM,IAAI,WAAW,CAAC,gCAAgC,CAAC,CAAA;AACzD,CAAC;AAED,SAAS,QAAQ,CAAC,GAAsB,EAAE,IAAuB;IAC/D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAA;QAC9B,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,MAAe;IACtC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,WAAW,CAAC,mCAAmC,CAAC,CAAA;IAC5D,CAAC;IACD,MAAM,GAAG,GAAG,MAAiC,CAAA;IAC7C,MAAM,QAAQ,GAA4B,EAAE,CAAA;IAC5C,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,WAAW,CAAC,mCAAmC,CAAC,CAAA;QAC5D,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzD,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IACD,IAAI,OAA2B,CAAA;IAC/B,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3D,MAAM,IAAI,WAAW,CAAC,uCAAuC,CAAC,CAAA;QAChE,CAAC;QACD,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QAC5B,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;AAC9B,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,KAAc;IACpD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,WAAW,CAAC,WAAW,IAAI,oBAAoB,CAAC,CAAA;IAC5D,CAAC;IACD,MAAM,OAAO,GAAG,KAAgC,CAAA;IAChD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,IAAI,WAAW,CAAC,WAAW,IAAI,iCAAiC,CAAC,CAAA;IACzE,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAU,EAAE,CAAC;QACjE,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,WAAW,CAAC,WAAW,IAAI,eAAe,KAAK,EAAE,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IACD,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,UAAoB;QACxC,GAAG,EAAE,OAAO,CAAC,GAAa;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,UAAoB;KACzC,CAAA;AACH,CAAC"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare class UsageError extends Error {
|
|
2
|
+
readonly exitCode = 2;
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class ConfigError extends Error {
|
|
6
|
+
readonly exitCode = 2;
|
|
7
|
+
constructor(message: string);
|
|
8
|
+
}
|
|
9
|
+
export declare class CrispApiError extends Error {
|
|
10
|
+
readonly exitCode = 1;
|
|
11
|
+
readonly status: number;
|
|
12
|
+
readonly reason: string;
|
|
13
|
+
readonly retryAfter?: string;
|
|
14
|
+
constructor(status: number, reason: string, message: string, retryAfter?: string);
|
|
15
|
+
}
|
|
16
|
+
export declare function exitCodeFor(err: unknown): number;
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export class UsageError extends Error {
|
|
2
|
+
exitCode = 2;
|
|
3
|
+
constructor(message) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.name = "UsageError";
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export class ConfigError extends Error {
|
|
9
|
+
exitCode = 2;
|
|
10
|
+
constructor(message) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = "ConfigError";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class CrispApiError extends Error {
|
|
16
|
+
exitCode = 1;
|
|
17
|
+
status;
|
|
18
|
+
reason;
|
|
19
|
+
retryAfter;
|
|
20
|
+
constructor(status, reason, message, retryAfter) {
|
|
21
|
+
super(message);
|
|
22
|
+
this.name = "CrispApiError";
|
|
23
|
+
this.status = status;
|
|
24
|
+
this.reason = reason;
|
|
25
|
+
if (retryAfter !== undefined) {
|
|
26
|
+
this.retryAfter = retryAfter;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export function exitCodeFor(err) {
|
|
31
|
+
if (err instanceof UsageError || err instanceof ConfigError || err instanceof CrispApiError) {
|
|
32
|
+
return err.exitCode;
|
|
33
|
+
}
|
|
34
|
+
return 1;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAC1B,QAAQ,GAAG,CAAC,CAAA;IAErB,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,QAAQ,GAAG,CAAC,CAAA;IAErB,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,aAAa,CAAA;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,QAAQ,GAAG,CAAC,CAAA;IACZ,MAAM,CAAQ;IACd,MAAM,CAAQ;IACd,UAAU,CAAS;IAE5B,YAAY,MAAc,EAAE,MAAc,EAAE,OAAe,EAAE,UAAmB;QAC9E,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC9B,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,YAAY,WAAW,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;QAC5F,OAAO,GAAG,CAAC,QAAQ,CAAA;IACrB,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC"}
|
package/dist/help.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const usage: {
|
|
2
|
+
readonly authSet: "crispctl auth set [--profile <name>] --identifier <id> --key <key> --tier <website|plugin> --website <website_id>";
|
|
3
|
+
readonly authShow: "crispctl auth show [--profile <name>]";
|
|
4
|
+
readonly conversationsList: "crispctl conversations list [--page <n>]";
|
|
5
|
+
readonly conversationsGet: "crispctl conversations get <session>";
|
|
6
|
+
readonly conversationsSearch: "crispctl conversations search <query> [--page <n>] [--search-type text|segment]";
|
|
7
|
+
readonly messagesList: "crispctl messages list <session>";
|
|
8
|
+
readonly reply: "crispctl reply <session> (--text <message> | --note <note>)";
|
|
9
|
+
readonly resolve: "crispctl resolve <session>";
|
|
10
|
+
readonly reopen: "crispctl reopen <session>";
|
|
11
|
+
readonly assign: "crispctl assign <session> (--user <id> | --unassign)";
|
|
12
|
+
readonly segments: "crispctl segments <session> --set <a,b>";
|
|
13
|
+
readonly read: "crispctl read <session>";
|
|
14
|
+
readonly peopleGet: "crispctl people get <id|email>";
|
|
15
|
+
readonly operatorsList: "crispctl operators list";
|
|
16
|
+
readonly listen: "crispctl listen";
|
|
17
|
+
};
|
|
18
|
+
export declare const ROOT_HELP = "crispctl \u2014 agent-friendly Crisp REST CLI\n\nUsage:\n crispctl [--json] [--profile <name>] [--website <id>] <command> [args]\n\nGlobal flags: --json, --profile <name>, --website <id>\n\nCommands:\n auth set Save identifier, key, tier, and website_id\n auth show Show the resolved profile (key redacted)\n conversations list List conversations\n conversations get Get one conversation\n conversations search Search conversations\n messages list List messages in a session\n reply Send an operator message or private note\n resolve Set conversation state to resolved\n reopen Set conversation state to unresolved\n assign Assign or unassign an operator\n segments Replace conversation segments\n read Mark the conversation read for the operator\n people get Get a people profile by id or email\n operators list List website operators\n listen Stub. RTM is not implemented\n\nProfiles:\n Named profiles live in the config file. \"default\" and \"sandbox\" are the usual names.\n --profile and CRISPCTL_PROFILE select one. The file remembers the last profile written by auth set.\n\nEnvironment (overrides the selected profile):\n CRISPCTL_PROFILE\n CRISPCTL_IDENTIFIER or CRISP_IDENTIFIER\n CRISPCTL_KEY or CRISP_KEY\n CRISPCTL_WEBSITE_ID or CRISP_WEBSITE_ID\n CRISPCTL_TIER or CRISP_TIER\n CRISPCTL_CONFIG Config file path (default: $XDG_CONFIG_HOME/crispctl/config.json)\n\nThe token key is never printed. A config file written by crispctl is mode 0600.\n\nSandbox: use the Cos Crisp sandbox website only. Never point crispctl at production Teachify.\n";
|
|
19
|
+
export declare function renderHelp(positionals: readonly string[]): string;
|