@sendly/cli
Advanced tools
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class AnalyticsCredits extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| period: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Flags } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { json, table, colors, header, isJsonMode, formatCredits, } from "../../../lib/output.js"; | ||
| export default class AnalyticsCredits extends AuthenticatedCommand { | ||
| static description = "Get credit usage analytics over time"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise analytics credits", | ||
| "<%= config.bin %> enterprise analytics credits --period 30d", | ||
| "<%= config.bin %> enterprise analytics credits --json", | ||
| ]; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| period: Flags.string({ | ||
| char: "p", | ||
| description: "Time period (7d, 30d, 90d)", | ||
| options: ["7d", "30d", "90d"], | ||
| default: "7d", | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { flags } = await this.parse(AnalyticsCredits); | ||
| const response = await apiClient.get("/api/v1/enterprise/analytics/credits", { period: flags.period }); | ||
| if (isJsonMode()) { | ||
| json(response); | ||
| return; | ||
| } | ||
| header(`Credit Usage (${flags.period})`); | ||
| console.log(); | ||
| console.log(` ${colors.dim("Total Used:")} ${formatCredits(response.totals.totalUsed)} ` + | ||
| `${colors.dim("Allocated:")} ${formatCredits(response.totals.totalAllocated)} ` + | ||
| `${colors.dim("Balance:")} ${colors.primary(formatCredits(response.totals.currentBalance))}`); | ||
| console.log(); | ||
| table(response.data, [ | ||
| { header: "Date", key: "date", width: 12 }, | ||
| { | ||
| header: "Used", | ||
| key: "used", | ||
| width: 12, | ||
| formatter: (v) => Number(v).toLocaleString(), | ||
| }, | ||
| { | ||
| header: "Allocated", | ||
| key: "allocated", | ||
| width: 12, | ||
| formatter: (v) => Number(v) > 0 | ||
| ? colors.success(`+${Number(v).toLocaleString()}`) | ||
| : colors.dim("0"), | ||
| }, | ||
| { | ||
| header: "Balance", | ||
| key: "balance", | ||
| width: 12, | ||
| formatter: (v) => colors.primary(Number(v).toLocaleString()), | ||
| }, | ||
| ]); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGl0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tYW5kcy9lbnRlcnByaXNlL2FuYWx5dGljcy9jcmVkaXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxJQUFJLEVBQ0osS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sVUFBVSxFQUNWLGFBQWEsR0FDZCxNQUFNLHdCQUF3QixDQUFDO0FBbUJoQyxNQUFNLENBQUMsT0FBTyxPQUFPLGdCQUFpQixTQUFRLG9CQUFvQjtJQUNoRSxNQUFNLENBQUMsV0FBVyxHQUFHLHNDQUFzQyxDQUFDO0lBRTVELE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsZ0RBQWdEO1FBQ2hELDZEQUE2RDtRQUM3RCx1REFBdUQ7S0FDeEQsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbkIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsNEJBQTRCO1lBQ3pDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1lBQzdCLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQztLQUNILENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVyRCxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQ2xDLHNDQUFzQyxFQUN0QyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQ3pCLENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLENBQUMsaUJBQWlCLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRXpDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQ1QsS0FBSyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJO1lBQzVFLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSTtZQUNoRixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQy9GLENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFZCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtZQUNuQixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQzFDO2dCQUNFLE1BQU0sRUFBRSxNQUFNO2dCQUNkLEdBQUcsRUFBRSxNQUFNO2dCQUNYLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRTthQUM3QztZQUNEO2dCQUNFLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixHQUFHLEVBQUUsV0FBVztnQkFDaEIsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDZixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztvQkFDWCxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO29CQUNsRCxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7YUFDdEI7WUFDRDtnQkFDRSxNQUFNLEVBQUUsU0FBUztnQkFDakIsR0FBRyxFQUFFLFNBQVM7Z0JBQ2QsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUM3RDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBqc29uLFxuICB0YWJsZSxcbiAgY29sb3JzLFxuICBoZWFkZXIsXG4gIGlzSnNvbk1vZGUsXG4gIGZvcm1hdENyZWRpdHMsXG59IGZyb20gXCIuLi8uLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBDcmVkaXREYXRhUG9pbnQge1xuICBkYXRlOiBzdHJpbmc7XG4gIHVzZWQ6IG51bWJlcjtcbiAgYWxsb2NhdGVkOiBudW1iZXI7XG4gIGJhbGFuY2U6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIENyZWRpdHNBbmFseXRpY3NSZXNwb25zZSB7XG4gIHBlcmlvZDogc3RyaW5nO1xuICBkYXRhOiBDcmVkaXREYXRhUG9pbnRbXTtcbiAgdG90YWxzOiB7XG4gICAgdG90YWxVc2VkOiBudW1iZXI7XG4gICAgdG90YWxBbGxvY2F0ZWQ6IG51bWJlcjtcbiAgICBjdXJyZW50QmFsYW5jZTogbnVtYmVyO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBbmFseXRpY3NDcmVkaXRzIGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkdldCBjcmVkaXQgdXNhZ2UgYW5hbHl0aWNzIG92ZXIgdGltZVwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2UgYW5hbHl0aWNzIGNyZWRpdHNcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2UgYW5hbHl0aWNzIGNyZWRpdHMgLS1wZXJpb2QgMzBkXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIGFuYWx5dGljcyBjcmVkaXRzIC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgcGVyaW9kOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJwXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaW1lIHBlcmlvZCAoN2QsIDMwZCwgOTBkKVwiLFxuICAgICAgb3B0aW9uczogW1wiN2RcIiwgXCIzMGRcIiwgXCI5MGRcIl0sXG4gICAgICBkZWZhdWx0OiBcIjdkXCIsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoQW5hbHl0aWNzQ3JlZGl0cyk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5nZXQ8Q3JlZGl0c0FuYWx5dGljc1Jlc3BvbnNlPihcbiAgICAgIFwiL2FwaS92MS9lbnRlcnByaXNlL2FuYWx5dGljcy9jcmVkaXRzXCIsXG4gICAgICB7IHBlcmlvZDogZmxhZ3MucGVyaW9kIH0sXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGhlYWRlcihgQ3JlZGl0IFVzYWdlICgke2ZsYWdzLnBlcmlvZH0pYCk7XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYCAgJHtjb2xvcnMuZGltKFwiVG90YWwgVXNlZDpcIil9ICR7Zm9ybWF0Q3JlZGl0cyhyZXNwb25zZS50b3RhbHMudG90YWxVc2VkKX0gIGAgK1xuICAgICAgICBgJHtjb2xvcnMuZGltKFwiQWxsb2NhdGVkOlwiKX0gJHtmb3JtYXRDcmVkaXRzKHJlc3BvbnNlLnRvdGFscy50b3RhbEFsbG9jYXRlZCl9ICBgICtcbiAgICAgICAgYCR7Y29sb3JzLmRpbShcIkJhbGFuY2U6XCIpfSAke2NvbG9ycy5wcmltYXJ5KGZvcm1hdENyZWRpdHMocmVzcG9uc2UudG90YWxzLmN1cnJlbnRCYWxhbmNlKSl9YCxcbiAgICApO1xuICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICB0YWJsZShyZXNwb25zZS5kYXRhLCBbXG4gICAgICB7IGhlYWRlcjogXCJEYXRlXCIsIGtleTogXCJkYXRlXCIsIHdpZHRoOiAxMiB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiVXNlZFwiLFxuICAgICAgICBrZXk6IFwidXNlZFwiLFxuICAgICAgICB3aWR0aDogMTIsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IE51bWJlcih2KS50b0xvY2FsZVN0cmluZygpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIkFsbG9jYXRlZFwiLFxuICAgICAgICBrZXk6IFwiYWxsb2NhdGVkXCIsXG4gICAgICAgIHdpZHRoOiAxMixcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT5cbiAgICAgICAgICBOdW1iZXIodikgPiAwXG4gICAgICAgICAgICA/IGNvbG9ycy5zdWNjZXNzKGArJHtOdW1iZXIodikudG9Mb2NhbGVTdHJpbmcoKX1gKVxuICAgICAgICAgICAgOiBjb2xvcnMuZGltKFwiMFwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJCYWxhbmNlXCIsXG4gICAgICAgIGtleTogXCJiYWxhbmNlXCIsXG4gICAgICAgIHdpZHRoOiAxMixcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gY29sb3JzLnByaW1hcnkoTnVtYmVyKHYpLnRvTG9jYWxlU3RyaW5nKCkpLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfVxufVxuIl19 |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class AnalyticsDelivery extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { json, table, colors, header, isJsonMode, } from "../../../lib/output.js"; | ||
| export default class AnalyticsDelivery extends AuthenticatedCommand { | ||
| static description = "Get delivery rate analytics by workspace"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise analytics delivery", | ||
| "<%= config.bin %> enterprise analytics delivery --json", | ||
| ]; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| }; | ||
| async run() { | ||
| const response = await apiClient.get("/api/v1/enterprise/analytics/delivery"); | ||
| if (isJsonMode()) { | ||
| json(response); | ||
| return; | ||
| } | ||
| header("Delivery Rates by Workspace"); | ||
| console.log(); | ||
| table(response.workspaces, [ | ||
| { header: "Workspace", key: "workspaceName", width: 24 }, | ||
| { | ||
| header: "Sent", | ||
| key: "sent", | ||
| width: 10, | ||
| formatter: (v) => Number(v).toLocaleString(), | ||
| }, | ||
| { | ||
| header: "Delivered", | ||
| key: "delivered", | ||
| width: 10, | ||
| formatter: (v) => colors.success(Number(v).toLocaleString()), | ||
| }, | ||
| { | ||
| header: "Failed", | ||
| key: "failed", | ||
| width: 10, | ||
| formatter: (v) => Number(v) > 0 | ||
| ? colors.error(Number(v).toLocaleString()) | ||
| : colors.dim("0"), | ||
| }, | ||
| { | ||
| header: "Rate", | ||
| key: "deliveryRate", | ||
| width: 8, | ||
| formatter: (v) => { | ||
| const rate = Number(v); | ||
| const text = `${rate.toFixed(1)}%`; | ||
| return rate >= 95 | ||
| ? colors.success(text) | ||
| : rate >= 80 | ||
| ? colors.warning(text) | ||
| : colors.error(text); | ||
| }, | ||
| }, | ||
| ]); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbWFuZHMvZW50ZXJwcmlzZS9hbmFseXRpY3MvZGVsaXZlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxJQUFJLEVBQ0osS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sVUFBVSxHQUNYLE1BQU0sd0JBQXdCLENBQUM7QUFlaEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxpQkFBa0IsU0FBUSxvQkFBb0I7SUFDakUsTUFBTSxDQUFDLFdBQVcsR0FBRywwQ0FBMEMsQ0FBQztJQUVoRSxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLGlEQUFpRDtRQUNqRCx3REFBd0Q7S0FDekQsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7S0FDbEMsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxDQUNsQyx1Q0FBdUMsQ0FDeEMsQ0FBQztRQUVGLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBRXRDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNkLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO1lBQ3pCLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDeEQ7Z0JBQ0UsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsR0FBRyxFQUFFLE1BQU07Z0JBQ1gsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFO2FBQzdDO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLEdBQUcsRUFBRSxXQUFXO2dCQUNoQixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQzdEO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLEdBQUcsRUFBRSxRQUFRO2dCQUNiLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ2YsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQ1gsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUMxQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7YUFDdEI7WUFDRDtnQkFDRSxNQUFNLEVBQUUsTUFBTTtnQkFDZCxHQUFHLEVBQUUsY0FBYztnQkFDbkIsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ2YsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN2QixNQUFNLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztvQkFDbkMsT0FBTyxJQUFJLElBQUksRUFBRTt3QkFDZixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7d0JBQ3RCLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRTs0QkFDVixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7NEJBQ3RCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQixDQUFDO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBqc29uLFxuICB0YWJsZSxcbiAgY29sb3JzLFxuICBoZWFkZXIsXG4gIGlzSnNvbk1vZGUsXG59IGZyb20gXCIuLi8uLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBXb3Jrc3BhY2VEZWxpdmVyeSB7XG4gIHdvcmtzcGFjZUlkOiBzdHJpbmc7XG4gIHdvcmtzcGFjZU5hbWU6IHN0cmluZztcbiAgc2VudDogbnVtYmVyO1xuICBkZWxpdmVyZWQ6IG51bWJlcjtcbiAgZmFpbGVkOiBudW1iZXI7XG4gIGRlbGl2ZXJ5UmF0ZTogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgRGVsaXZlcnlSZXNwb25zZSB7XG4gIHdvcmtzcGFjZXM6IFdvcmtzcGFjZURlbGl2ZXJ5W107XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFuYWx5dGljc0RlbGl2ZXJ5IGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkdldCBkZWxpdmVyeSByYXRlIGFuYWx5dGljcyBieSB3b3Jrc3BhY2VcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIGFuYWx5dGljcyBkZWxpdmVyeVwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSBhbmFseXRpY3MgZGVsaXZlcnkgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQuZ2V0PERlbGl2ZXJ5UmVzcG9uc2U+KFxuICAgICAgXCIvYXBpL3YxL2VudGVycHJpc2UvYW5hbHl0aWNzL2RlbGl2ZXJ5XCIsXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGhlYWRlcihcIkRlbGl2ZXJ5IFJhdGVzIGJ5IFdvcmtzcGFjZVwiKTtcblxuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgdGFibGUocmVzcG9uc2Uud29ya3NwYWNlcywgW1xuICAgICAgeyBoZWFkZXI6IFwiV29ya3NwYWNlXCIsIGtleTogXCJ3b3Jrc3BhY2VOYW1lXCIsIHdpZHRoOiAyNCB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiU2VudFwiLFxuICAgICAgICBrZXk6IFwic2VudFwiLFxuICAgICAgICB3aWR0aDogMTAsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IE51bWJlcih2KS50b0xvY2FsZVN0cmluZygpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIkRlbGl2ZXJlZFwiLFxuICAgICAgICBrZXk6IFwiZGVsaXZlcmVkXCIsXG4gICAgICAgIHdpZHRoOiAxMCxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gY29sb3JzLnN1Y2Nlc3MoTnVtYmVyKHYpLnRvTG9jYWxlU3RyaW5nKCkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIkZhaWxlZFwiLFxuICAgICAgICBrZXk6IFwiZmFpbGVkXCIsXG4gICAgICAgIHdpZHRoOiAxMCxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT5cbiAgICAgICAgICBOdW1iZXIodikgPiAwXG4gICAgICAgICAgICA/IGNvbG9ycy5lcnJvcihOdW1iZXIodikudG9Mb2NhbGVTdHJpbmcoKSlcbiAgICAgICAgICAgIDogY29sb3JzLmRpbShcIjBcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiUmF0ZVwiLFxuICAgICAgICBrZXk6IFwiZGVsaXZlcnlSYXRlXCIsXG4gICAgICAgIHdpZHRoOiA4LFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmF0ZSA9IE51bWJlcih2KTtcbiAgICAgICAgICBjb25zdCB0ZXh0ID0gYCR7cmF0ZS50b0ZpeGVkKDEpfSVgO1xuICAgICAgICAgIHJldHVybiByYXRlID49IDk1XG4gICAgICAgICAgICA/IGNvbG9ycy5zdWNjZXNzKHRleHQpXG4gICAgICAgICAgICA6IHJhdGUgPj0gODBcbiAgICAgICAgICAgICAgPyBjb2xvcnMud2FybmluZyh0ZXh0KVxuICAgICAgICAgICAgICA6IGNvbG9ycy5lcnJvcih0ZXh0KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH1cbn1cbiJdfQ== |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class AnalyticsMessages extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| period: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Flags } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { json, table, colors, header, isJsonMode, } from "../../../lib/output.js"; | ||
| export default class AnalyticsMessages extends AuthenticatedCommand { | ||
| static description = "Get message analytics across all workspaces"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise analytics messages", | ||
| "<%= config.bin %> enterprise analytics messages --period 30d", | ||
| "<%= config.bin %> enterprise analytics messages --period 90d --json", | ||
| ]; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| period: Flags.string({ | ||
| char: "p", | ||
| description: "Time period (7d, 30d, 90d)", | ||
| options: ["7d", "30d", "90d"], | ||
| default: "7d", | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { flags } = await this.parse(AnalyticsMessages); | ||
| const response = await apiClient.get("/api/v1/enterprise/analytics/messages", { period: flags.period }); | ||
| if (isJsonMode()) { | ||
| json(response); | ||
| return; | ||
| } | ||
| header(`Message Analytics (${flags.period})`); | ||
| console.log(); | ||
| console.log(` ${colors.dim("Totals:")} ${response.totals.sent.toLocaleString()} sent, ` + | ||
| `${colors.success(response.totals.delivered.toLocaleString() + " delivered")}, ` + | ||
| `${response.totals.failed > 0 ? colors.error(response.totals.failed.toLocaleString() + " failed") : colors.dim("0 failed")}`); | ||
| console.log(); | ||
| table(response.data, [ | ||
| { header: "Date", key: "date", width: 12 }, | ||
| { | ||
| header: "Sent", | ||
| key: "sent", | ||
| width: 10, | ||
| formatter: (v) => Number(v).toLocaleString(), | ||
| }, | ||
| { | ||
| header: "Delivered", | ||
| key: "delivered", | ||
| width: 10, | ||
| formatter: (v) => colors.success(Number(v).toLocaleString()), | ||
| }, | ||
| { | ||
| header: "Failed", | ||
| key: "failed", | ||
| width: 10, | ||
| formatter: (v) => Number(v) > 0 | ||
| ? colors.error(Number(v).toLocaleString()) | ||
| : colors.dim("0"), | ||
| }, | ||
| ]); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbWFuZHMvZW50ZXJwcmlzZS9hbmFseXRpY3MvbWVzc2FnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUNMLElBQUksRUFDSixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSx3QkFBd0IsQ0FBQztBQW1CaEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxpQkFBa0IsU0FBUSxvQkFBb0I7SUFDakUsTUFBTSxDQUFDLFdBQVcsR0FBRyw2Q0FBNkMsQ0FBQztJQUVuRSxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLGlEQUFpRDtRQUNqRCw4REFBOEQ7UUFDOUQscUVBQXFFO0tBQ3RFLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ25CLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLDRCQUE0QjtZQUN6QyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUM3QixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUM7S0FDSCxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFdEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxDQUNsQyx1Q0FBdUMsRUFDdkMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUN6QixDQUFDO1FBRUYsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNmLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxDQUFDLHNCQUFzQixLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUU5QyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUNULEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUztZQUMxRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLEdBQUcsWUFBWSxDQUFDLElBQUk7WUFDaEYsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FDL0gsQ0FBQztRQUNGLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVkLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQ25CLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDMUM7Z0JBQ0UsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsR0FBRyxFQUFFLE1BQU07Z0JBQ1gsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFO2FBQzdDO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLEdBQUcsRUFBRSxXQUFXO2dCQUNoQixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQzdEO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLEdBQUcsRUFBRSxRQUFRO2dCQUNiLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ2YsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQ1gsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUMxQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7YUFDdEI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAganNvbixcbiAgdGFibGUsXG4gIGNvbG9ycyxcbiAgaGVhZGVyLFxuICBpc0pzb25Nb2RlLFxufSBmcm9tIFwiLi4vLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5pbnRlcmZhY2UgTWVzc2FnZURhdGFQb2ludCB7XG4gIGRhdGU6IHN0cmluZztcbiAgc2VudDogbnVtYmVyO1xuICBkZWxpdmVyZWQ6IG51bWJlcjtcbiAgZmFpbGVkOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBNZXNzYWdlc1Jlc3BvbnNlIHtcbiAgcGVyaW9kOiBzdHJpbmc7XG4gIGRhdGE6IE1lc3NhZ2VEYXRhUG9pbnRbXTtcbiAgdG90YWxzOiB7XG4gICAgc2VudDogbnVtYmVyO1xuICAgIGRlbGl2ZXJlZDogbnVtYmVyO1xuICAgIGZhaWxlZDogbnVtYmVyO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBbmFseXRpY3NNZXNzYWdlcyBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJHZXQgbWVzc2FnZSBhbmFseXRpY3MgYWNyb3NzIGFsbCB3b3Jrc3BhY2VzXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSBhbmFseXRpY3MgbWVzc2FnZXNcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2UgYW5hbHl0aWNzIG1lc3NhZ2VzIC0tcGVyaW9kIDMwZFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSBhbmFseXRpY3MgbWVzc2FnZXMgLS1wZXJpb2QgOTBkIC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgcGVyaW9kOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJwXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaW1lIHBlcmlvZCAoN2QsIDMwZCwgOTBkKVwiLFxuICAgICAgb3B0aW9uczogW1wiN2RcIiwgXCIzMGRcIiwgXCI5MGRcIl0sXG4gICAgICBkZWZhdWx0OiBcIjdkXCIsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoQW5hbHl0aWNzTWVzc2FnZXMpO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQuZ2V0PE1lc3NhZ2VzUmVzcG9uc2U+KFxuICAgICAgXCIvYXBpL3YxL2VudGVycHJpc2UvYW5hbHl0aWNzL21lc3NhZ2VzXCIsXG4gICAgICB7IHBlcmlvZDogZmxhZ3MucGVyaW9kIH0sXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGhlYWRlcihgTWVzc2FnZSBBbmFseXRpY3MgKCR7ZmxhZ3MucGVyaW9kfSlgKTtcblxuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgICAke2NvbG9ycy5kaW0oXCJUb3RhbHM6XCIpfSAke3Jlc3BvbnNlLnRvdGFscy5zZW50LnRvTG9jYWxlU3RyaW5nKCl9IHNlbnQsIGAgK1xuICAgICAgICBgJHtjb2xvcnMuc3VjY2VzcyhyZXNwb25zZS50b3RhbHMuZGVsaXZlcmVkLnRvTG9jYWxlU3RyaW5nKCkgKyBcIiBkZWxpdmVyZWRcIil9LCBgICtcbiAgICAgICAgYCR7cmVzcG9uc2UudG90YWxzLmZhaWxlZCA+IDAgPyBjb2xvcnMuZXJyb3IocmVzcG9uc2UudG90YWxzLmZhaWxlZC50b0xvY2FsZVN0cmluZygpICsgXCIgZmFpbGVkXCIpIDogY29sb3JzLmRpbShcIjAgZmFpbGVkXCIpfWAsXG4gICAgKTtcbiAgICBjb25zb2xlLmxvZygpO1xuXG4gICAgdGFibGUocmVzcG9uc2UuZGF0YSwgW1xuICAgICAgeyBoZWFkZXI6IFwiRGF0ZVwiLCBrZXk6IFwiZGF0ZVwiLCB3aWR0aDogMTIgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIlNlbnRcIixcbiAgICAgICAga2V5OiBcInNlbnRcIixcbiAgICAgICAgd2lkdGg6IDEwLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiBOdW1iZXIodikudG9Mb2NhbGVTdHJpbmcoKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJEZWxpdmVyZWRcIixcbiAgICAgICAga2V5OiBcImRlbGl2ZXJlZFwiLFxuICAgICAgICB3aWR0aDogMTAsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IGNvbG9ycy5zdWNjZXNzKE51bWJlcih2KS50b0xvY2FsZVN0cmluZygpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJGYWlsZWRcIixcbiAgICAgICAga2V5OiBcImZhaWxlZFwiLFxuICAgICAgICB3aWR0aDogMTAsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+XG4gICAgICAgICAgTnVtYmVyKHYpID4gMFxuICAgICAgICAgICAgPyBjb2xvcnMuZXJyb3IoTnVtYmVyKHYpLnRvTG9jYWxlU3RyaW5nKCkpXG4gICAgICAgICAgICA6IGNvbG9ycy5kaW0oXCIwXCIpLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfVxufVxuIl19 |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class AnalyticsOverview extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { json, keyValue, colors, header, isJsonMode, formatCredits, } from "../../../lib/output.js"; | ||
| export default class AnalyticsOverview extends AuthenticatedCommand { | ||
| static description = "Get enterprise-wide analytics overview"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise analytics overview", | ||
| "<%= config.bin %> enterprise analytics overview --json", | ||
| ]; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| }; | ||
| async run() { | ||
| const overview = await apiClient.get("/api/v1/enterprise/analytics/overview"); | ||
| if (isJsonMode()) { | ||
| json(overview); | ||
| return; | ||
| } | ||
| header("Enterprise Overview"); | ||
| keyValue({ | ||
| "Total Workspaces": String(overview.totalWorkspaces), | ||
| Active: colors.success(String(overview.activeWorkspaces)), | ||
| Suspended: overview.suspendedWorkspaces > 0 | ||
| ? colors.error(String(overview.suspendedWorkspaces)) | ||
| : colors.dim("0"), | ||
| }); | ||
| console.log(); | ||
| header("Messaging"); | ||
| keyValue({ | ||
| "Messages Sent": overview.totalMessagesSent.toLocaleString(), | ||
| "Messages Delivered": overview.totalMessagesDelivered.toLocaleString(), | ||
| "Delivery Rate": `${overview.deliveryRate.toFixed(1)}%`, | ||
| }); | ||
| console.log(); | ||
| header("Credits"); | ||
| keyValue({ | ||
| "Credits Used": formatCredits(overview.totalCreditsUsed), | ||
| "Credits Remaining": colors.primary(formatCredits(overview.totalCreditsRemaining)), | ||
| }); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbWFuZHMvZW50ZXJwcmlzZS9hbmFseXRpY3Mvb3ZlcnZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxJQUFJLEVBQ0osUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sVUFBVSxFQUNWLGFBQWEsR0FDZCxNQUFNLHdCQUF3QixDQUFDO0FBYWhDLE1BQU0sQ0FBQyxPQUFPLE9BQU8saUJBQWtCLFNBQVEsb0JBQW9CO0lBQ2pFLE1BQU0sQ0FBQyxXQUFXLEdBQUcsd0NBQXdDLENBQUM7SUFFOUQsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQixpREFBaUQ7UUFDakQsd0RBQXdEO0tBQ3pELENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO0tBQ2xDLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FDbEMsdUNBQXVDLENBQ3hDLENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUU5QixRQUFRLENBQUM7WUFDUCxrQkFBa0IsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztZQUNwRCxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDekQsU0FBUyxFQUNQLFFBQVEsQ0FBQyxtQkFBbUIsR0FBRyxDQUFDO2dCQUM5QixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBQ3BELENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztTQUN0QixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFcEIsUUFBUSxDQUFDO1lBQ1AsZUFBZSxFQUFFLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUU7WUFDNUQsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsRUFBRTtZQUN0RSxlQUFlLEVBQUUsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRztTQUN4RCxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbEIsUUFBUSxDQUFDO1lBQ1AsY0FBYyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7WUFDeEQsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FDakMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUM5QztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIGpzb24sXG4gIGtleVZhbHVlLFxuICBjb2xvcnMsXG4gIGhlYWRlcixcbiAgaXNKc29uTW9kZSxcbiAgZm9ybWF0Q3JlZGl0cyxcbn0gZnJvbSBcIi4uLy4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIE92ZXJ2aWV3UmVzcG9uc2Uge1xuICB0b3RhbFdvcmtzcGFjZXM6IG51bWJlcjtcbiAgYWN0aXZlV29ya3NwYWNlczogbnVtYmVyO1xuICBzdXNwZW5kZWRXb3Jrc3BhY2VzOiBudW1iZXI7XG4gIHRvdGFsTWVzc2FnZXNTZW50OiBudW1iZXI7XG4gIHRvdGFsTWVzc2FnZXNEZWxpdmVyZWQ6IG51bWJlcjtcbiAgdG90YWxDcmVkaXRzVXNlZDogbnVtYmVyO1xuICB0b3RhbENyZWRpdHNSZW1haW5pbmc6IG51bWJlcjtcbiAgZGVsaXZlcnlSYXRlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFuYWx5dGljc092ZXJ2aWV3IGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkdldCBlbnRlcnByaXNlLXdpZGUgYW5hbHl0aWNzIG92ZXJ2aWV3XCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSBhbmFseXRpY3Mgb3ZlcnZpZXdcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2UgYW5hbHl0aWNzIG92ZXJ2aWV3IC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG92ZXJ2aWV3ID0gYXdhaXQgYXBpQ2xpZW50LmdldDxPdmVydmlld1Jlc3BvbnNlPihcbiAgICAgIFwiL2FwaS92MS9lbnRlcnByaXNlL2FuYWx5dGljcy9vdmVydmlld1wiLFxuICAgICk7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKG92ZXJ2aWV3KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBoZWFkZXIoXCJFbnRlcnByaXNlIE92ZXJ2aWV3XCIpO1xuXG4gICAga2V5VmFsdWUoe1xuICAgICAgXCJUb3RhbCBXb3Jrc3BhY2VzXCI6IFN0cmluZyhvdmVydmlldy50b3RhbFdvcmtzcGFjZXMpLFxuICAgICAgQWN0aXZlOiBjb2xvcnMuc3VjY2VzcyhTdHJpbmcob3ZlcnZpZXcuYWN0aXZlV29ya3NwYWNlcykpLFxuICAgICAgU3VzcGVuZGVkOlxuICAgICAgICBvdmVydmlldy5zdXNwZW5kZWRXb3Jrc3BhY2VzID4gMFxuICAgICAgICAgID8gY29sb3JzLmVycm9yKFN0cmluZyhvdmVydmlldy5zdXNwZW5kZWRXb3Jrc3BhY2VzKSlcbiAgICAgICAgICA6IGNvbG9ycy5kaW0oXCIwXCIpLFxuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coKTtcbiAgICBoZWFkZXIoXCJNZXNzYWdpbmdcIik7XG5cbiAgICBrZXlWYWx1ZSh7XG4gICAgICBcIk1lc3NhZ2VzIFNlbnRcIjogb3ZlcnZpZXcudG90YWxNZXNzYWdlc1NlbnQudG9Mb2NhbGVTdHJpbmcoKSxcbiAgICAgIFwiTWVzc2FnZXMgRGVsaXZlcmVkXCI6IG92ZXJ2aWV3LnRvdGFsTWVzc2FnZXNEZWxpdmVyZWQudG9Mb2NhbGVTdHJpbmcoKSxcbiAgICAgIFwiRGVsaXZlcnkgUmF0ZVwiOiBgJHtvdmVydmlldy5kZWxpdmVyeVJhdGUudG9GaXhlZCgxKX0lYCxcbiAgICB9KTtcblxuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgaGVhZGVyKFwiQ3JlZGl0c1wiKTtcblxuICAgIGtleVZhbHVlKHtcbiAgICAgIFwiQ3JlZGl0cyBVc2VkXCI6IGZvcm1hdENyZWRpdHMob3ZlcnZpZXcudG90YWxDcmVkaXRzVXNlZCksXG4gICAgICBcIkNyZWRpdHMgUmVtYWluaW5nXCI6IGNvbG9ycy5wcmltYXJ5KFxuICAgICAgICBmb3JtYXRDcmVkaXRzKG92ZXJ2aWV3LnRvdGFsQ3JlZGl0c1JlbWFpbmluZyksXG4gICAgICApLFxuICAgIH0pO1xuICB9XG59XG4iXX0= |
| import { AuthenticatedCommand } from "../../lib/base-command.js"; | ||
| export default class EnterpriseBilling extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| page: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| limit: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Flags } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../lib/base-command.js"; | ||
| import { apiClient } from "../../lib/api-client.js"; | ||
| import { json, table, colors, header, isJsonMode, } from "../../lib/output.js"; | ||
| export default class EnterpriseBilling extends AuthenticatedCommand { | ||
| static description = "Get billing breakdown by workspace"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise billing", | ||
| "<%= config.bin %> enterprise billing --page 2", | ||
| "<%= config.bin %> enterprise billing --json", | ||
| ]; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| page: Flags.integer({ | ||
| description: "Page number", | ||
| default: 1, | ||
| }), | ||
| limit: Flags.integer({ | ||
| description: "Results per page", | ||
| default: 20, | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { flags } = await this.parse(EnterpriseBilling); | ||
| const response = await apiClient.get("/api/v1/enterprise/billing/workspace-breakdown", { page: flags.page, limit: flags.limit }); | ||
| if (isJsonMode()) { | ||
| json(response); | ||
| return; | ||
| } | ||
| header("Billing Breakdown"); | ||
| console.log(); | ||
| console.log(` ${colors.dim("Platform Fee:")} $${response.platformFee.toFixed(2)}/mo`); | ||
| console.log(` ${colors.dim("Seat Fees:")} $${response.totalSeatFees.toFixed(2)}/mo`); | ||
| console.log(` ${colors.dim("Credits:")} $${response.totalCreditsPurchased.toFixed(2)}`); | ||
| console.log(` ${colors.bold("Total:")} ${colors.primary("$" + response.totalAmount.toFixed(2))}`); | ||
| console.log(); | ||
| table(response.workspaces, [ | ||
| { header: "Workspace", key: "workspaceName", width: 24 }, | ||
| { | ||
| header: "Seat Fee", | ||
| key: "seatFee", | ||
| width: 10, | ||
| formatter: (v) => `$${Number(v).toFixed(2)}`, | ||
| }, | ||
| { | ||
| header: "Credits Bought", | ||
| key: "creditsPurchased", | ||
| width: 14, | ||
| formatter: (v) => Number(v).toLocaleString(), | ||
| }, | ||
| { | ||
| header: "Credits Used", | ||
| key: "creditsUsed", | ||
| width: 12, | ||
| formatter: (v) => Number(v).toLocaleString(), | ||
| }, | ||
| { | ||
| header: "Messages", | ||
| key: "messagesCount", | ||
| width: 10, | ||
| formatter: (v) => Number(v).toLocaleString(), | ||
| }, | ||
| ]); | ||
| if (response.totalPages > 1) { | ||
| console.log(); | ||
| console.log(colors.dim(` Page ${response.page} of ${response.totalPages}. Use --page to navigate.`)); | ||
| } | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9lbnRlcnByaXNlL2JpbGxpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUNMLElBQUksRUFDSixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxxQkFBcUIsQ0FBQztBQXFCN0IsTUFBTSxDQUFDLE9BQU8sT0FBTyxpQkFBa0IsU0FBUSxvQkFBb0I7SUFDakUsTUFBTSxDQUFDLFdBQVcsR0FBRyxvQ0FBb0MsQ0FBQztJQUUxRCxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLHNDQUFzQztRQUN0QywrQ0FBK0M7UUFDL0MsNkNBQTZDO0tBQzlDLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2xCLFdBQVcsRUFBRSxhQUFhO1lBQzFCLE9BQU8sRUFBRSxDQUFDO1NBQ1gsQ0FBQztRQUNGLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ25CLFdBQVcsRUFBRSxrQkFBa0I7WUFDL0IsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO0tBQ0gsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXRELE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FDbEMsZ0RBQWdELEVBQ2hELEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FDekMsQ0FBQztRQUVGLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTVCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQ1QsS0FBSyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQzNFLENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxDQUNULEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsU0FBUyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUM3RSxDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FDVCxLQUFLLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsUUFBUSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNsRixDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FDVCxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUM5RixDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUU7WUFDekIsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUN4RDtnQkFDRSxNQUFNLEVBQUUsVUFBVTtnQkFDbEIsR0FBRyxFQUFFLFNBQVM7Z0JBQ2QsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7YUFDN0M7WUFDRDtnQkFDRSxNQUFNLEVBQUUsZ0JBQWdCO2dCQUN4QixHQUFHLEVBQUUsa0JBQWtCO2dCQUN2QixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUU7YUFDN0M7WUFDRDtnQkFDRSxNQUFNLEVBQUUsY0FBYztnQkFDdEIsR0FBRyxFQUFFLGFBQWE7Z0JBQ2xCLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRTthQUM3QztZQUNEO2dCQUNFLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixHQUFHLEVBQUUsZUFBZTtnQkFDcEIsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFO2FBQzdDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxRQUFRLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQ1QsTUFBTSxDQUFDLEdBQUcsQ0FDUixVQUFVLFFBQVEsQ0FBQyxJQUFJLE9BQU8sUUFBUSxDQUFDLFVBQVUsMkJBQTJCLENBQzdFLENBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAganNvbixcbiAgdGFibGUsXG4gIGNvbG9ycyxcbiAgaGVhZGVyLFxuICBpc0pzb25Nb2RlLFxufSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5pbnRlcmZhY2UgV29ya3NwYWNlQmlsbGluZ0l0ZW0ge1xuICB3b3Jrc3BhY2VJZDogc3RyaW5nO1xuICB3b3Jrc3BhY2VOYW1lOiBzdHJpbmc7XG4gIGNyZWRpdHNQdXJjaGFzZWQ6IG51bWJlcjtcbiAgY3JlZGl0c1VzZWQ6IG51bWJlcjtcbiAgbWVzc2FnZXNDb3VudDogbnVtYmVyO1xuICBzZWF0RmVlOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBCaWxsaW5nQnJlYWtkb3duIHtcbiAgcGxhdGZvcm1GZWU6IG51bWJlcjtcbiAgdG90YWxTZWF0RmVlczogbnVtYmVyO1xuICB0b3RhbENyZWRpdHNQdXJjaGFzZWQ6IG51bWJlcjtcbiAgdG90YWxBbW91bnQ6IG51bWJlcjtcbiAgd29ya3NwYWNlczogV29ya3NwYWNlQmlsbGluZ0l0ZW1bXTtcbiAgcGFnZTogbnVtYmVyO1xuICB0b3RhbFBhZ2VzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVudGVycHJpc2VCaWxsaW5nIGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkdldCBiaWxsaW5nIGJyZWFrZG93biBieSB3b3Jrc3BhY2VcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIGJpbGxpbmdcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2UgYmlsbGluZyAtLXBhZ2UgMlwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSBiaWxsaW5nIC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgcGFnZTogRmxhZ3MuaW50ZWdlcih7XG4gICAgICBkZXNjcmlwdGlvbjogXCJQYWdlIG51bWJlclwiLFxuICAgICAgZGVmYXVsdDogMSxcbiAgICB9KSxcbiAgICBsaW1pdDogRmxhZ3MuaW50ZWdlcih7XG4gICAgICBkZXNjcmlwdGlvbjogXCJSZXN1bHRzIHBlciBwYWdlXCIsXG4gICAgICBkZWZhdWx0OiAyMCxcbiAgICB9KSxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShFbnRlcnByaXNlQmlsbGluZyk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5nZXQ8QmlsbGluZ0JyZWFrZG93bj4oXG4gICAgICBcIi9hcGkvdjEvZW50ZXJwcmlzZS9iaWxsaW5nL3dvcmtzcGFjZS1icmVha2Rvd25cIixcbiAgICAgIHsgcGFnZTogZmxhZ3MucGFnZSwgbGltaXQ6IGZsYWdzLmxpbWl0IH0sXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGhlYWRlcihcIkJpbGxpbmcgQnJlYWtkb3duXCIpO1xuXG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGAgICR7Y29sb3JzLmRpbShcIlBsYXRmb3JtIEZlZTpcIil9ICAkJHtyZXNwb25zZS5wbGF0Zm9ybUZlZS50b0ZpeGVkKDIpfS9tb2AsXG4gICAgKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGAgICR7Y29sb3JzLmRpbShcIlNlYXQgRmVlczpcIil9ICAgICAkJHtyZXNwb25zZS50b3RhbFNlYXRGZWVzLnRvRml4ZWQoMil9L21vYCxcbiAgICApO1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYCAgJHtjb2xvcnMuZGltKFwiQ3JlZGl0czpcIil9ICAgICAgICQke3Jlc3BvbnNlLnRvdGFsQ3JlZGl0c1B1cmNoYXNlZC50b0ZpeGVkKDIpfWAsXG4gICAgKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGAgICR7Y29sb3JzLmJvbGQoXCJUb3RhbDpcIil9ICAgICAgICAgJHtjb2xvcnMucHJpbWFyeShcIiRcIiArIHJlc3BvbnNlLnRvdGFsQW1vdW50LnRvRml4ZWQoMikpfWAsXG4gICAgKTtcbiAgICBjb25zb2xlLmxvZygpO1xuXG4gICAgdGFibGUocmVzcG9uc2Uud29ya3NwYWNlcywgW1xuICAgICAgeyBoZWFkZXI6IFwiV29ya3NwYWNlXCIsIGtleTogXCJ3b3Jrc3BhY2VOYW1lXCIsIHdpZHRoOiAyNCB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiU2VhdCBGZWVcIixcbiAgICAgICAga2V5OiBcInNlYXRGZWVcIixcbiAgICAgICAgd2lkdGg6IDEwLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiBgJCR7TnVtYmVyKHYpLnRvRml4ZWQoMil9YCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJDcmVkaXRzIEJvdWdodFwiLFxuICAgICAgICBrZXk6IFwiY3JlZGl0c1B1cmNoYXNlZFwiLFxuICAgICAgICB3aWR0aDogMTQsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IE51bWJlcih2KS50b0xvY2FsZVN0cmluZygpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIkNyZWRpdHMgVXNlZFwiLFxuICAgICAgICBrZXk6IFwiY3JlZGl0c1VzZWRcIixcbiAgICAgICAgd2lkdGg6IDEyLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiBOdW1iZXIodikudG9Mb2NhbGVTdHJpbmcoKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJNZXNzYWdlc1wiLFxuICAgICAgICBrZXk6IFwibWVzc2FnZXNDb3VudFwiLFxuICAgICAgICB3aWR0aDogMTAsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IE51bWJlcih2KS50b0xvY2FsZVN0cmluZygpLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIGlmIChyZXNwb25zZS50b3RhbFBhZ2VzID4gMSkge1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBjb2xvcnMuZGltKFxuICAgICAgICAgIGAgIFBhZ2UgJHtyZXNwb25zZS5wYWdlfSBvZiAke3Jlc3BvbnNlLnRvdGFsUGFnZXN9LiBVc2UgLS1wYWdlIHRvIG5hdmlnYXRlLmAsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19 |
| import { AuthenticatedCommand } from "../../lib/base-command.js"; | ||
| export default class EnterpriseCredits extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| workspaceId: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Args } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../lib/base-command.js"; | ||
| import { apiClient } from "../../lib/api-client.js"; | ||
| import { json, keyValue, colors, header, isJsonMode, formatCredits, } from "../../lib/output.js"; | ||
| export default class EnterpriseCredits extends AuthenticatedCommand { | ||
| static description = "Check credit balance for an enterprise workspace"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise credits org_abc123", | ||
| "<%= config.bin %> enterprise credits org_abc123 --json", | ||
| ]; | ||
| static args = { | ||
| workspaceId: Args.string({ | ||
| description: "Workspace ID", | ||
| required: true, | ||
| }), | ||
| }; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| }; | ||
| async run() { | ||
| const { args } = await this.parse(EnterpriseCredits); | ||
| const credits = await apiClient.get(`/api/v1/enterprise/workspaces/${args.workspaceId}/credits`); | ||
| if (isJsonMode()) { | ||
| json(credits); | ||
| return; | ||
| } | ||
| header("Workspace Credits"); | ||
| keyValue({ | ||
| Available: colors.primary(formatCredits(credits.availableBalance)), | ||
| Reserved: credits.reservedBalance > 0 | ||
| ? colors.warning(formatCredits(credits.reservedBalance)) | ||
| : colors.dim("0 credits"), | ||
| "Total Balance": formatCredits(credits.balance), | ||
| }); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGl0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9lbnRlcnByaXNlL2NyZWRpdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUNMLElBQUksRUFDSixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixVQUFVLEVBQ1YsYUFBYSxHQUNkLE1BQU0scUJBQXFCLENBQUM7QUFRN0IsTUFBTSxDQUFDLE9BQU8sT0FBTyxpQkFBa0IsU0FBUSxvQkFBb0I7SUFDakUsTUFBTSxDQUFDLFdBQVcsR0FBRyxrREFBa0QsQ0FBQztJQUV4RSxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLGlEQUFpRDtRQUNqRCx3REFBd0Q7S0FDekQsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN2QixXQUFXLEVBQUUsY0FBYztZQUMzQixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztLQUNsQyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFckQsTUFBTSxPQUFPLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxDQUNqQyxpQ0FBaUMsSUFBSSxDQUFDLFdBQVcsVUFBVSxDQUM1RCxDQUFDO1FBRUYsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNkLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFNUIsUUFBUSxDQUFDO1lBQ1AsU0FBUyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2xFLFFBQVEsRUFDTixPQUFPLENBQUMsZUFBZSxHQUFHLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ3hELENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztZQUM3QixlQUFlLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7U0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAganNvbixcbiAga2V5VmFsdWUsXG4gIGNvbG9ycyxcbiAgaGVhZGVyLFxuICBpc0pzb25Nb2RlLFxuICBmb3JtYXRDcmVkaXRzLFxufSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5pbnRlcmZhY2UgV29ya3NwYWNlQ3JlZGl0cyB7XG4gIGJhbGFuY2U6IG51bWJlcjtcbiAgcmVzZXJ2ZWRCYWxhbmNlOiBudW1iZXI7XG4gIGF2YWlsYWJsZUJhbGFuY2U6IG51bWJlcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW50ZXJwcmlzZUNyZWRpdHMgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiQ2hlY2sgY3JlZGl0IGJhbGFuY2UgZm9yIGFuIGVudGVycHJpc2Ugd29ya3NwYWNlXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSBjcmVkaXRzIG9yZ19hYmMxMjNcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2UgY3JlZGl0cyBvcmdfYWJjMTIzIC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBhcmdzID0ge1xuICAgIHdvcmtzcGFjZUlkOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJXb3Jrc3BhY2UgSURcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICB9O1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgYXJncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShFbnRlcnByaXNlQ3JlZGl0cyk7XG5cbiAgICBjb25zdCBjcmVkaXRzID0gYXdhaXQgYXBpQ2xpZW50LmdldDxXb3Jrc3BhY2VDcmVkaXRzPihcbiAgICAgIGAvYXBpL3YxL2VudGVycHJpc2Uvd29ya3NwYWNlcy8ke2FyZ3Mud29ya3NwYWNlSWR9L2NyZWRpdHNgLFxuICAgICk7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKGNyZWRpdHMpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGhlYWRlcihcIldvcmtzcGFjZSBDcmVkaXRzXCIpO1xuXG4gICAga2V5VmFsdWUoe1xuICAgICAgQXZhaWxhYmxlOiBjb2xvcnMucHJpbWFyeShmb3JtYXRDcmVkaXRzKGNyZWRpdHMuYXZhaWxhYmxlQmFsYW5jZSkpLFxuICAgICAgUmVzZXJ2ZWQ6XG4gICAgICAgIGNyZWRpdHMucmVzZXJ2ZWRCYWxhbmNlID4gMFxuICAgICAgICAgID8gY29sb3JzLndhcm5pbmcoZm9ybWF0Q3JlZGl0cyhjcmVkaXRzLnJlc2VydmVkQmFsYW5jZSkpXG4gICAgICAgICAgOiBjb2xvcnMuZGltKFwiMCBjcmVkaXRzXCIpLFxuICAgICAgXCJUb3RhbCBCYWxhbmNlXCI6IGZvcm1hdENyZWRpdHMoY3JlZGl0cy5iYWxhbmNlKSxcbiAgICB9KTtcbiAgfVxufVxuIl19 |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class EnterpriseKeysCreate extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| workspaceId: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| name: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| type: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Args, Flags } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { success, warn, json, colors, codeBlock, isJsonMode, } from "../../../lib/output.js"; | ||
| export default class EnterpriseKeysCreate extends AuthenticatedCommand { | ||
| static description = "Create an API key for an enterprise workspace"; | ||
| static examples = [ | ||
| '<%= config.bin %> enterprise keys create org_abc123 --name "Production"', | ||
| '<%= config.bin %> enterprise keys create org_abc123 --name "CI" --type test', | ||
| ]; | ||
| static args = { | ||
| workspaceId: Args.string({ | ||
| description: "Workspace ID", | ||
| required: true, | ||
| }), | ||
| }; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| name: Flags.string({ | ||
| char: "n", | ||
| description: "Name for the API key", | ||
| required: true, | ||
| }), | ||
| type: Flags.string({ | ||
| char: "t", | ||
| description: "Key type (test or live)", | ||
| options: ["test", "live"], | ||
| default: "live", | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { args, flags } = await this.parse(EnterpriseKeysCreate); | ||
| const response = await apiClient.post(`/api/v1/enterprise/workspaces/${args.workspaceId}/keys`, { | ||
| name: flags.name, | ||
| type: flags.type, | ||
| }); | ||
| if (isJsonMode()) { | ||
| json(response); | ||
| return; | ||
| } | ||
| success("API key created", { | ||
| Name: response.name, | ||
| "Key ID": response.id, | ||
| Type: flags.type === "test" | ||
| ? colors.warning("test") | ||
| : colors.success("live"), | ||
| }); | ||
| console.log(); | ||
| warn("Copy your API key now. You won't be able to see it again!"); | ||
| codeBlock(response.key); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2VudGVycHJpc2Uva2V5cy9jcmVhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxPQUFPLEVBQ1AsSUFBSSxFQUNKLElBQUksRUFDSixNQUFNLEVBQ04sU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBV2hDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sb0JBQXFCLFNBQVEsb0JBQW9CO0lBQ3BFLE1BQU0sQ0FBQyxXQUFXLEdBQUcsK0NBQStDLENBQUM7SUFFckUsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQix5RUFBeUU7UUFDekUsNkVBQTZFO0tBQzlFLENBQUM7SUFFRixNQUFNLENBQUMsSUFBSSxHQUFHO1FBQ1osV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDdkIsV0FBVyxFQUFFLGNBQWM7WUFDM0IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0tBQ0gsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDakIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsc0JBQXNCO1lBQ25DLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztRQUNGLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2pCLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLHlCQUF5QjtZQUN0QyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO1lBQ3pCLE9BQU8sRUFBRSxNQUFNO1NBQ2hCLENBQUM7S0FDSCxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRS9ELE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FDbkMsaUNBQWlDLElBQUksQ0FBQyxXQUFXLE9BQU8sRUFDeEQ7WUFDRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1NBQ2pCLENBQ0YsQ0FBQztRQUVGLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtZQUN6QixJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7WUFDbkIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ3JCLElBQUksRUFDRixLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU07Z0JBQ25CLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQzdCLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1FBQ2xFLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MsIEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHN1Y2Nlc3MsXG4gIHdhcm4sXG4gIGpzb24sXG4gIGNvbG9ycyxcbiAgY29kZUJsb2NrLFxuICBpc0pzb25Nb2RlLFxufSBmcm9tIFwiLi4vLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5pbnRlcmZhY2UgQ3JlYXRlS2V5UmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICBrZXlQcmVmaXg6IHN0cmluZztcbiAgdHlwZTogXCJ0ZXN0XCIgfCBcImxpdmVcIjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVudGVycHJpc2VLZXlzQ3JlYXRlIGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkNyZWF0ZSBhbiBBUEkga2V5IGZvciBhbiBlbnRlcnByaXNlIHdvcmtzcGFjZVwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSBrZXlzIGNyZWF0ZSBvcmdfYWJjMTIzIC0tbmFtZSBcIlByb2R1Y3Rpb25cIicsXG4gICAgJzwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2Uga2V5cyBjcmVhdGUgb3JnX2FiYzEyMyAtLW5hbWUgXCJDSVwiIC0tdHlwZSB0ZXN0JyxcbiAgXTtcblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICB3b3Jrc3BhY2VJZDogQXJncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiV29ya3NwYWNlIElEXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgfTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICAgIG5hbWU6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcIm5cIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk5hbWUgZm9yIHRoZSBBUEkga2V5XCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgICB0eXBlOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJ0XCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJLZXkgdHlwZSAodGVzdCBvciBsaXZlKVwiLFxuICAgICAgb3B0aW9uczogW1widGVzdFwiLCBcImxpdmVcIl0sXG4gICAgICBkZWZhdWx0OiBcImxpdmVcIixcbiAgICB9KSxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBhcmdzLCBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShFbnRlcnByaXNlS2V5c0NyZWF0ZSk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5wb3N0PENyZWF0ZUtleVJlc3BvbnNlPihcbiAgICAgIGAvYXBpL3YxL2VudGVycHJpc2Uvd29ya3NwYWNlcy8ke2FyZ3Mud29ya3NwYWNlSWR9L2tleXNgLFxuICAgICAge1xuICAgICAgICBuYW1lOiBmbGFncy5uYW1lLFxuICAgICAgICB0eXBlOiBmbGFncy50eXBlLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3VjY2VzcyhcIkFQSSBrZXkgY3JlYXRlZFwiLCB7XG4gICAgICBOYW1lOiByZXNwb25zZS5uYW1lLFxuICAgICAgXCJLZXkgSURcIjogcmVzcG9uc2UuaWQsXG4gICAgICBUeXBlOlxuICAgICAgICBmbGFncy50eXBlID09PSBcInRlc3RcIlxuICAgICAgICAgID8gY29sb3JzLndhcm5pbmcoXCJ0ZXN0XCIpXG4gICAgICAgICAgOiBjb2xvcnMuc3VjY2VzcyhcImxpdmVcIiksXG4gICAgfSk7XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIHdhcm4oXCJDb3B5IHlvdXIgQVBJIGtleSBub3cuIFlvdSB3b24ndCBiZSBhYmxlIHRvIHNlZSBpdCBhZ2FpbiFcIik7XG4gICAgY29kZUJsb2NrKHJlc3BvbnNlLmtleSk7XG4gIH1cbn1cbiJdfQ== |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class EnterpriseKeysList extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| workspaceId: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Args } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { table, json, info, colors, isJsonMode, formatRelativeTime, } from "../../../lib/output.js"; | ||
| export default class EnterpriseKeysList extends AuthenticatedCommand { | ||
| static description = "List API keys for an enterprise workspace"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise keys list org_abc123", | ||
| "<%= config.bin %> enterprise keys list org_abc123 --json", | ||
| ]; | ||
| static args = { | ||
| workspaceId: Args.string({ | ||
| description: "Workspace ID", | ||
| required: true, | ||
| }), | ||
| }; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| }; | ||
| async run() { | ||
| const { args } = await this.parse(EnterpriseKeysList); | ||
| const response = await apiClient.get(`/api/v1/enterprise/workspaces/${args.workspaceId}/keys`); | ||
| if (isJsonMode()) { | ||
| json(response.keys); | ||
| return; | ||
| } | ||
| if (response.keys.length === 0) { | ||
| info("No API keys found for this workspace"); | ||
| console.log(); | ||
| console.log(` Create one with ${colors.code(`sendly enterprise keys create ${args.workspaceId}`)}`); | ||
| return; | ||
| } | ||
| console.log(); | ||
| table(response.keys, [ | ||
| { header: "Name", key: "name", width: 20 }, | ||
| { | ||
| header: "Key ID", | ||
| key: "id", | ||
| width: 18, | ||
| formatter: (v) => colors.dim(String(v).slice(0, 16)), | ||
| }, | ||
| { | ||
| header: "Prefix", | ||
| key: "prefix", | ||
| width: 16, | ||
| formatter: (v) => colors.code(String(v)), | ||
| }, | ||
| { | ||
| header: "Type", | ||
| key: "type", | ||
| width: 8, | ||
| formatter: (v) => v === "test" ? colors.warning("test") : colors.success("live"), | ||
| }, | ||
| { | ||
| header: "Status", | ||
| key: "isActive", | ||
| width: 10, | ||
| formatter: (v) => v ? colors.success("active") : colors.error("revoked"), | ||
| }, | ||
| { | ||
| header: "Last Used", | ||
| key: "lastUsedAt", | ||
| width: 12, | ||
| formatter: (v) => v ? formatRelativeTime(String(v)) : colors.dim("never"), | ||
| }, | ||
| ]); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tYW5kcy9lbnRlcnByaXNlL2tleXMvbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osTUFBTSxFQUNOLFVBQVUsRUFDVixrQkFBa0IsR0FDbkIsTUFBTSx3QkFBd0IsQ0FBQztBQWdCaEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxrQkFBbUIsU0FBUSxvQkFBb0I7SUFDbEUsTUFBTSxDQUFDLFdBQVcsR0FBRywyQ0FBMkMsQ0FBQztJQUVqRSxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLG1EQUFtRDtRQUNuRCwwREFBMEQ7S0FDM0QsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN2QixXQUFXLEVBQUUsY0FBYztZQUMzQixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztLQUNsQyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFdEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxDQUNsQyxpQ0FBaUMsSUFBSSxDQUFDLFdBQVcsT0FBTyxDQUN6RCxDQUFDO1FBRUYsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQzdDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQ1QscUJBQXFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUNBQWlDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQ3hGLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNkLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQ25CLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDMUM7Z0JBQ0UsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLEdBQUcsRUFBRSxJQUFJO2dCQUNULEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNyRDtZQUNEO2dCQUNFLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixHQUFHLEVBQUUsUUFBUTtnQkFDYixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3pDO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsR0FBRyxFQUFFLE1BQU07Z0JBQ1gsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDZixDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQzthQUNqRTtZQUNEO2dCQUNFLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixHQUFHLEVBQUUsVUFBVTtnQkFDZixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNmLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7YUFDekQ7WUFDRDtnQkFDRSxNQUFNLEVBQUUsV0FBVztnQkFDbkIsR0FBRyxFQUFFLFlBQVk7Z0JBQ2pCLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ2YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7YUFDMUQ7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICB0YWJsZSxcbiAganNvbixcbiAgaW5mbyxcbiAgY29sb3JzLFxuICBpc0pzb25Nb2RlLFxuICBmb3JtYXRSZWxhdGl2ZVRpbWUsXG59IGZyb20gXCIuLi8uLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBBcGlLZXkge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHByZWZpeDogc3RyaW5nO1xuICB0eXBlOiBcInRlc3RcIiB8IFwibGl2ZVwiO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgbGFzdFVzZWRBdD86IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBLZXlzUmVzcG9uc2Uge1xuICBrZXlzOiBBcGlLZXlbXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW50ZXJwcmlzZUtleXNMaXN0IGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkxpc3QgQVBJIGtleXMgZm9yIGFuIGVudGVycHJpc2Ugd29ya3NwYWNlXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSBrZXlzIGxpc3Qgb3JnX2FiYzEyM1wiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSBrZXlzIGxpc3Qgb3JnX2FiYzEyMyAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICB3b3Jrc3BhY2VJZDogQXJncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiV29ya3NwYWNlIElEXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgfTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGFyZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoRW50ZXJwcmlzZUtleXNMaXN0KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LmdldDxLZXlzUmVzcG9uc2U+KFxuICAgICAgYC9hcGkvdjEvZW50ZXJwcmlzZS93b3Jrc3BhY2VzLyR7YXJncy53b3Jrc3BhY2VJZH0va2V5c2AsXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2Uua2V5cyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHJlc3BvbnNlLmtleXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBpbmZvKFwiTm8gQVBJIGtleXMgZm91bmQgZm9yIHRoaXMgd29ya3NwYWNlXCIpO1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgICBDcmVhdGUgb25lIHdpdGggJHtjb2xvcnMuY29kZShgc2VuZGx5IGVudGVycHJpc2Uga2V5cyBjcmVhdGUgJHthcmdzLndvcmtzcGFjZUlkfWApfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgdGFibGUocmVzcG9uc2Uua2V5cywgW1xuICAgICAgeyBoZWFkZXI6IFwiTmFtZVwiLCBrZXk6IFwibmFtZVwiLCB3aWR0aDogMjAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIktleSBJRFwiLFxuICAgICAgICBrZXk6IFwiaWRcIixcbiAgICAgICAgd2lkdGg6IDE4LFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiBjb2xvcnMuZGltKFN0cmluZyh2KS5zbGljZSgwLCAxNikpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIlByZWZpeFwiLFxuICAgICAgICBrZXk6IFwicHJlZml4XCIsXG4gICAgICAgIHdpZHRoOiAxNixcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gY29sb3JzLmNvZGUoU3RyaW5nKHYpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJUeXBlXCIsXG4gICAgICAgIGtleTogXCJ0eXBlXCIsXG4gICAgICAgIHdpZHRoOiA4LFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PlxuICAgICAgICAgIHYgPT09IFwidGVzdFwiID8gY29sb3JzLndhcm5pbmcoXCJ0ZXN0XCIpIDogY29sb3JzLnN1Y2Nlc3MoXCJsaXZlXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIlN0YXR1c1wiLFxuICAgICAgICBrZXk6IFwiaXNBY3RpdmVcIixcbiAgICAgICAgd2lkdGg6IDEwLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PlxuICAgICAgICAgIHYgPyBjb2xvcnMuc3VjY2VzcyhcImFjdGl2ZVwiKSA6IGNvbG9ycy5lcnJvcihcInJldm9rZWRcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiTGFzdCBVc2VkXCIsXG4gICAgICAgIGtleTogXCJsYXN0VXNlZEF0XCIsXG4gICAgICAgIHdpZHRoOiAxMixcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT5cbiAgICAgICAgICB2ID8gZm9ybWF0UmVsYXRpdmVUaW1lKFN0cmluZyh2KSkgOiBjb2xvcnMuZGltKFwibmV2ZXJcIiksXG4gICAgICB9LFxuICAgIF0pO1xuICB9XG59XG4iXX0= |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class EnterpriseKeysRevoke extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| workspaceId: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>; | ||
| keyId: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| yes: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Args, Flags } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { success, error, json, isJsonMode } from "../../../lib/output.js"; | ||
| import inquirer from "inquirer"; | ||
| export default class EnterpriseKeysRevoke extends AuthenticatedCommand { | ||
| static description = "Revoke an API key for an enterprise workspace"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise keys revoke org_abc123 key_xyz", | ||
| "<%= config.bin %> enterprise keys revoke org_abc123 key_xyz --yes", | ||
| ]; | ||
| static args = { | ||
| workspaceId: Args.string({ | ||
| description: "Workspace ID", | ||
| required: true, | ||
| }), | ||
| keyId: Args.string({ | ||
| description: "API key ID to revoke", | ||
| required: true, | ||
| }), | ||
| }; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| yes: Flags.boolean({ | ||
| char: "y", | ||
| description: "Skip confirmation prompt", | ||
| default: false, | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { args, flags } = await this.parse(EnterpriseKeysRevoke); | ||
| if (!flags.yes && !isJsonMode()) { | ||
| const { confirm } = await inquirer.prompt([ | ||
| { | ||
| type: "confirm", | ||
| name: "confirm", | ||
| message: `Revoke API key ${args.keyId}? This cannot be undone.`, | ||
| default: false, | ||
| }, | ||
| ]); | ||
| if (!confirm) { | ||
| error("Revocation cancelled"); | ||
| return; | ||
| } | ||
| } | ||
| await apiClient.delete(`/api/v1/enterprise/workspaces/${args.workspaceId}/keys/${args.keyId}`); | ||
| if (isJsonMode()) { | ||
| json({ success: true, keyId: args.keyId }); | ||
| return; | ||
| } | ||
| success("API key revoked", { | ||
| "Key ID": args.keyId, | ||
| Workspace: args.workspaceId, | ||
| }); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2b2tlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2VudGVycHJpc2Uva2V5cy9yZXZva2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRSxPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFFaEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFDcEUsTUFBTSxDQUFDLFdBQVcsR0FBRywrQ0FBK0MsQ0FBQztJQUVyRSxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDZEQUE2RDtRQUM3RCxtRUFBbUU7S0FDcEUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN2QixXQUFXLEVBQUUsY0FBYztZQUMzQixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNqQixXQUFXLEVBQUUsc0JBQXNCO1lBQ25DLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztLQUNILENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLEdBQUcsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2pCLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLDBCQUEwQjtZQUN2QyxPQUFPLEVBQUUsS0FBSztTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUN4QztvQkFDRSxJQUFJLEVBQUUsU0FBUztvQkFDZixJQUFJLEVBQUUsU0FBUztvQkFDZixPQUFPLEVBQUUsa0JBQWtCLElBQUksQ0FBQyxLQUFLLDBCQUEwQjtvQkFDL0QsT0FBTyxFQUFFLEtBQUs7aUJBQ2Y7YUFDRixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7Z0JBQzlCLE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sU0FBUyxDQUFDLE1BQU0sQ0FDcEIsaUNBQWlDLElBQUksQ0FBQyxXQUFXLFNBQVMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUN2RSxDQUFDO1FBRUYsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLE9BQU87UUFDVCxDQUFDO1FBRUQsT0FBTyxDQUFDLGlCQUFpQixFQUFFO1lBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSztZQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MsIEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7IHN1Y2Nlc3MsIGVycm9yLCBqc29uLCBpc0pzb25Nb2RlIH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9vdXRwdXQuanNcIjtcbmltcG9ydCBpbnF1aXJlciBmcm9tIFwiaW5xdWlyZXJcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW50ZXJwcmlzZUtleXNSZXZva2UgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiUmV2b2tlIGFuIEFQSSBrZXkgZm9yIGFuIGVudGVycHJpc2Ugd29ya3NwYWNlXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSBrZXlzIHJldm9rZSBvcmdfYWJjMTIzIGtleV94eXpcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2Uga2V5cyByZXZva2Ugb3JnX2FiYzEyMyBrZXlfeHl6IC0teWVzXCIsXG4gIF07XG5cbiAgc3RhdGljIGFyZ3MgPSB7XG4gICAgd29ya3NwYWNlSWQ6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIldvcmtzcGFjZSBJRFwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gICAga2V5SWQ6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkFQSSBrZXkgSUQgdG8gcmV2b2tlXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgfTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICAgIHllczogRmxhZ3MuYm9vbGVhbih7XG4gICAgICBjaGFyOiBcInlcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlNraXAgY29uZmlybWF0aW9uIHByb21wdFwiLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgYXJncywgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoRW50ZXJwcmlzZUtleXNSZXZva2UpO1xuXG4gICAgaWYgKCFmbGFncy55ZXMgJiYgIWlzSnNvbk1vZGUoKSkge1xuICAgICAgY29uc3QgeyBjb25maXJtIH0gPSBhd2FpdCBpbnF1aXJlci5wcm9tcHQoW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJjb25maXJtXCIsXG4gICAgICAgICAgbmFtZTogXCJjb25maXJtXCIsXG4gICAgICAgICAgbWVzc2FnZTogYFJldm9rZSBBUEkga2V5ICR7YXJncy5rZXlJZH0/IFRoaXMgY2Fubm90IGJlIHVuZG9uZS5gLFxuICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXSk7XG5cbiAgICAgIGlmICghY29uZmlybSkge1xuICAgICAgICBlcnJvcihcIlJldm9jYXRpb24gY2FuY2VsbGVkXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXdhaXQgYXBpQ2xpZW50LmRlbGV0ZShcbiAgICAgIGAvYXBpL3YxL2VudGVycHJpc2Uvd29ya3NwYWNlcy8ke2FyZ3Mud29ya3NwYWNlSWR9L2tleXMvJHthcmdzLmtleUlkfWAsXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24oeyBzdWNjZXNzOiB0cnVlLCBrZXlJZDogYXJncy5rZXlJZCB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdWNjZXNzKFwiQVBJIGtleSByZXZva2VkXCIsIHtcbiAgICAgIFwiS2V5IElEXCI6IGFyZ3Mua2V5SWQsXG4gICAgICBXb3Jrc3BhY2U6IGFyZ3Mud29ya3NwYWNlSWQsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ== |
| import { AuthenticatedCommand } from "../../lib/base-command.js"; | ||
| export default class EnterpriseProvision extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| name: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| credits: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| "inherit-from": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| "webhook-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| "create-key": import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| bulk: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| private bulkProvision; | ||
| } |
| import { Flags } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../lib/base-command.js"; | ||
| import { apiClient } from "../../lib/api-client.js"; | ||
| import { success, json, table, colors, isJsonMode, spinner, } from "../../lib/output.js"; | ||
| import * as fs from "node:fs"; | ||
| export default class EnterpriseProvision extends AuthenticatedCommand { | ||
| static description = "Provision a new workspace with full setup, or bulk provision from a JSON file"; | ||
| static examples = [ | ||
| '<%= config.bin %> enterprise provision --name "Acme Corp" --credits 1000', | ||
| '<%= config.bin %> enterprise provision --name "Acme Corp" --credits 500 --inherit-from org_abc123 --webhook-url https://example.com/hook', | ||
| "<%= config.bin %> enterprise provision --bulk workspaces.json", | ||
| ]; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| name: Flags.string({ | ||
| char: "n", | ||
| description: "Workspace name (single provision)", | ||
| }), | ||
| credits: Flags.integer({ | ||
| char: "c", | ||
| description: "Initial credits to allocate", | ||
| }), | ||
| "inherit-from": Flags.string({ | ||
| description: "Workspace ID to inherit verification from", | ||
| }), | ||
| "webhook-url": Flags.string({ | ||
| description: "Webhook URL for the workspace", | ||
| }), | ||
| "create-key": Flags.boolean({ | ||
| description: "Create an API key for the workspace", | ||
| default: false, | ||
| }), | ||
| bulk: Flags.string({ | ||
| char: "b", | ||
| description: "Path to JSON file for bulk provisioning (up to 50 workspaces)", | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { flags } = await this.parse(EnterpriseProvision); | ||
| if (flags.bulk) { | ||
| await this.bulkProvision(flags.bulk); | ||
| return; | ||
| } | ||
| if (!flags.name) { | ||
| this.error("--name is required for single provisioning. Use --bulk for batch provisioning."); | ||
| } | ||
| const spin = spinner("Provisioning workspace..."); | ||
| spin.start(); | ||
| const body = { name: flags.name }; | ||
| if (flags.credits) | ||
| body.credits = flags.credits; | ||
| if (flags["inherit-from"]) | ||
| body.inheritVerificationFrom = flags["inherit-from"]; | ||
| if (flags["webhook-url"]) | ||
| body.webhookUrl = flags["webhook-url"]; | ||
| if (flags["create-key"]) | ||
| body.createApiKey = true; | ||
| const response = await apiClient.post("/api/v1/enterprise/workspaces/provision", body); | ||
| spin.succeed("Workspace provisioned"); | ||
| if (isJsonMode()) { | ||
| json(response); | ||
| return; | ||
| } | ||
| const details = { | ||
| ID: response.organization.id, | ||
| Name: response.organization.name, | ||
| Slug: response.organization.slug, | ||
| }; | ||
| if (response.verification) { | ||
| details["Verification"] = response.verification.status === "approved" | ||
| ? colors.success("inherited") | ||
| : colors.warning(response.verification.status); | ||
| } | ||
| if (response.credits) { | ||
| details["Credits"] = `${response.credits.balance.toLocaleString()} credits`; | ||
| } | ||
| if (response.apiKey) { | ||
| details["API Key"] = response.apiKey.key; | ||
| } | ||
| if (response.webhook) { | ||
| details["Webhook"] = response.webhook.url; | ||
| } | ||
| success("Workspace provisioned", details); | ||
| if (response.apiKey) { | ||
| console.log(); | ||
| console.log(colors.warning(" Save the API key now — it won't be shown again.")); | ||
| } | ||
| } | ||
| async bulkProvision(filePath) { | ||
| if (!fs.existsSync(filePath)) { | ||
| this.error(`File not found: ${filePath}`); | ||
| } | ||
| const content = fs.readFileSync(filePath, "utf-8"); | ||
| let workspaces; | ||
| try { | ||
| workspaces = JSON.parse(content); | ||
| } | ||
| catch { | ||
| this.error("Invalid JSON file. Expected an array of workspace objects."); | ||
| } | ||
| if (!Array.isArray(workspaces)) { | ||
| this.error("JSON file must contain an array of workspace objects."); | ||
| } | ||
| if (workspaces.length > 50) { | ||
| this.error("Bulk provisioning supports up to 50 workspaces at a time."); | ||
| } | ||
| const spin = spinner(`Provisioning ${workspaces.length} workspaces...`); | ||
| spin.start(); | ||
| const response = await apiClient.post("/api/v1/enterprise/workspaces/provision/bulk", { workspaces }); | ||
| spin.succeed(`Provisioned ${response.totalCreated}/${response.totalRequested} workspaces`); | ||
| if (isJsonMode()) { | ||
| json(response); | ||
| return; | ||
| } | ||
| console.log(); | ||
| table(response.results, [ | ||
| { header: "Name", key: "name", width: 24 }, | ||
| { | ||
| header: "Status", | ||
| key: "success", | ||
| width: 10, | ||
| formatter: (v) => v ? colors.success("created") : colors.error("failed"), | ||
| }, | ||
| { | ||
| header: "Workspace ID", | ||
| key: "workspaceId", | ||
| width: 20, | ||
| formatter: (v) => (v ? colors.dim(String(v)) : colors.dim("—")), | ||
| }, | ||
| { | ||
| header: "Error", | ||
| key: "error", | ||
| width: 30, | ||
| formatter: (v) => (v ? colors.error(String(v)) : ""), | ||
| }, | ||
| ]); | ||
| if (response.totalFailed > 0) { | ||
| console.log(); | ||
| console.log(colors.warning(` ${response.totalFailed} workspace(s) failed to provision.`)); | ||
| } | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2VudGVycHJpc2UvcHJvdmlzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFDTCxPQUFPLEVBQ1AsSUFBSSxFQUNKLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBaUM5QixNQUFNLENBQUMsT0FBTyxPQUFPLG1CQUFvQixTQUFRLG9CQUFvQjtJQUNuRSxNQUFNLENBQUMsV0FBVyxHQUFHLCtFQUErRSxDQUFDO0lBRXJHLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsMEVBQTBFO1FBQzFFLDBJQUEwSTtRQUMxSSwrREFBK0Q7S0FDaEUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDakIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsbUNBQW1DO1NBQ2pELENBQUM7UUFDRixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNyQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSw2QkFBNkI7U0FDM0MsQ0FBQztRQUNGLGNBQWMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzNCLFdBQVcsRUFBRSwyQ0FBMkM7U0FDekQsQ0FBQztRQUNGLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzFCLFdBQVcsRUFBRSwrQkFBK0I7U0FDN0MsQ0FBQztRQUNGLFlBQVksRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQzFCLFdBQVcsRUFBRSxxQ0FBcUM7WUFDbEQsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDO1FBQ0YsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDakIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsK0RBQStEO1NBQzdFLENBQUM7S0FDSCxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFeEQsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLGdGQUFnRixDQUFDLENBQUM7UUFDL0YsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLE1BQU0sSUFBSSxHQUE0QixFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0QsSUFBSSxLQUFLLENBQUMsT0FBTztZQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUNoRCxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFBRSxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hGLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pFLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQztZQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBRWxELE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FDbkMseUNBQXlDLEVBQ3pDLElBQUksQ0FDTCxDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRXRDLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUEyQjtZQUN0QyxFQUFFLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzVCLElBQUksRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUk7WUFDaEMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSTtTQUNqQyxDQUFDO1FBRUYsSUFBSSxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUIsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLFVBQVU7Z0JBQ25FLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQzNDLENBQUM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDNUMsQ0FBQztRQUVELE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUUxQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUNULE1BQU0sQ0FBQyxPQUFPLENBQUMsbURBQW1ELENBQUMsQ0FDcEUsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFnQjtRQUMxQyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELElBQUksVUFBK0IsQ0FBQztRQUVwQyxJQUFJLENBQUM7WUFDSCxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixVQUFVLENBQUMsTUFBTSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FDbkMsOENBQThDLEVBQzlDLEVBQUUsVUFBVSxFQUFFLENBQ2YsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLENBQ1YsZUFBZSxRQUFRLENBQUMsWUFBWSxJQUFJLFFBQVEsQ0FBQyxjQUFjLGFBQWEsQ0FDN0UsQ0FBQztRQUVGLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNkLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFO1lBQ3RCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDMUM7Z0JBQ0UsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLEdBQUcsRUFBRSxTQUFTO2dCQUNkLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ2YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQzthQUN6RDtZQUNEO2dCQUNFLE1BQU0sRUFBRSxjQUFjO2dCQUN0QixHQUFHLEVBQUUsYUFBYTtnQkFDbEIsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNoRTtZQUNEO2dCQUNFLE1BQU0sRUFBRSxPQUFPO2dCQUNmLEdBQUcsRUFBRSxPQUFPO2dCQUNaLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNyRDtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksUUFBUSxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUNULE1BQU0sQ0FBQyxPQUFPLENBQ1osS0FBSyxRQUFRLENBQUMsV0FBVyxvQ0FBb0MsQ0FDOUQsQ0FDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBzdWNjZXNzLFxuICBqc29uLFxuICB0YWJsZSxcbiAgY29sb3JzLFxuICBpc0pzb25Nb2RlLFxuICBzcGlubmVyLFxufSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcblxuaW50ZXJmYWNlIFByb3Zpc2lvblJlc3BvbnNlIHtcbiAgb3JnYW5pemF0aW9uOiB7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgc2x1Zzogc3RyaW5nIH07XG4gIHZlcmlmaWNhdGlvbj86IHsgc3RhdHVzOiBzdHJpbmcgfTtcbiAgY3JlZGl0cz86IHsgYmFsYW5jZTogbnVtYmVyIH07XG4gIGFwaUtleT86IHsgaWQ6IHN0cmluZzsga2V5OiBzdHJpbmc7IHByZWZpeDogc3RyaW5nIH07XG4gIHdlYmhvb2s/OiB7IHVybDogc3RyaW5nIH07XG4gIG9wdEluUGFnZT86IHsgaWQ6IHN0cmluZzsgc2x1Zzogc3RyaW5nIH07XG59XG5cbmludGVyZmFjZSBCdWxrUHJvdmlzaW9uSXRlbSB7XG4gIG5hbWU6IHN0cmluZztcbiAgY3JlZGl0cz86IG51bWJlcjtcbiAgaW5oZXJpdFZlcmlmaWNhdGlvbkZyb20/OiBzdHJpbmc7XG4gIHdlYmhvb2tVcmw/OiBzdHJpbmc7XG4gIGNyZWF0ZUFwaUtleT86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBCdWxrUmVzdWx0SXRlbSB7XG4gIG5hbWU6IHN0cmluZztcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgd29ya3NwYWNlSWQ/OiBzdHJpbmc7XG4gIGVycm9yPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQnVsa1Byb3Zpc2lvblJlc3BvbnNlIHtcbiAgcmVzdWx0czogQnVsa1Jlc3VsdEl0ZW1bXTtcbiAgdG90YWxSZXF1ZXN0ZWQ6IG51bWJlcjtcbiAgdG90YWxDcmVhdGVkOiBudW1iZXI7XG4gIHRvdGFsRmFpbGVkOiBudW1iZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVudGVycHJpc2VQcm92aXNpb24gZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiUHJvdmlzaW9uIGEgbmV3IHdvcmtzcGFjZSB3aXRoIGZ1bGwgc2V0dXAsIG9yIGJ1bGsgcHJvdmlzaW9uIGZyb20gYSBKU09OIGZpbGVcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgJzwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2UgcHJvdmlzaW9uIC0tbmFtZSBcIkFjbWUgQ29ycFwiIC0tY3JlZGl0cyAxMDAwJyxcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSBwcm92aXNpb24gLS1uYW1lIFwiQWNtZSBDb3JwXCIgLS1jcmVkaXRzIDUwMCAtLWluaGVyaXQtZnJvbSBvcmdfYWJjMTIzIC0td2ViaG9vay11cmwgaHR0cHM6Ly9leGFtcGxlLmNvbS9ob29rJyxcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2UgcHJvdmlzaW9uIC0tYnVsayB3b3Jrc3BhY2VzLmpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICAgIG5hbWU6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcIm5cIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIldvcmtzcGFjZSBuYW1lIChzaW5nbGUgcHJvdmlzaW9uKVwiLFxuICAgIH0pLFxuICAgIGNyZWRpdHM6IEZsYWdzLmludGVnZXIoe1xuICAgICAgY2hhcjogXCJjXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJJbml0aWFsIGNyZWRpdHMgdG8gYWxsb2NhdGVcIixcbiAgICB9KSxcbiAgICBcImluaGVyaXQtZnJvbVwiOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiV29ya3NwYWNlIElEIHRvIGluaGVyaXQgdmVyaWZpY2F0aW9uIGZyb21cIixcbiAgICB9KSxcbiAgICBcIndlYmhvb2stdXJsXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJXZWJob29rIFVSTCBmb3IgdGhlIHdvcmtzcGFjZVwiLFxuICAgIH0pLFxuICAgIFwiY3JlYXRlLWtleVwiOiBGbGFncy5ib29sZWFuKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkNyZWF0ZSBhbiBBUEkga2V5IGZvciB0aGUgd29ya3NwYWNlXCIsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9KSxcbiAgICBidWxrOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJiXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJQYXRoIHRvIEpTT04gZmlsZSBmb3IgYnVsayBwcm92aXNpb25pbmcgKHVwIHRvIDUwIHdvcmtzcGFjZXMpXCIsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoRW50ZXJwcmlzZVByb3Zpc2lvbik7XG5cbiAgICBpZiAoZmxhZ3MuYnVsaykge1xuICAgICAgYXdhaXQgdGhpcy5idWxrUHJvdmlzaW9uKGZsYWdzLmJ1bGspO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghZmxhZ3MubmFtZSkge1xuICAgICAgdGhpcy5lcnJvcihcIi0tbmFtZSBpcyByZXF1aXJlZCBmb3Igc2luZ2xlIHByb3Zpc2lvbmluZy4gVXNlIC0tYnVsayBmb3IgYmF0Y2ggcHJvdmlzaW9uaW5nLlwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBzcGluID0gc3Bpbm5lcihcIlByb3Zpc2lvbmluZyB3b3Jrc3BhY2UuLi5cIik7XG4gICAgc3Bpbi5zdGFydCgpO1xuXG4gICAgY29uc3QgYm9keTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IG5hbWU6IGZsYWdzLm5hbWUgfTtcbiAgICBpZiAoZmxhZ3MuY3JlZGl0cykgYm9keS5jcmVkaXRzID0gZmxhZ3MuY3JlZGl0cztcbiAgICBpZiAoZmxhZ3NbXCJpbmhlcml0LWZyb21cIl0pIGJvZHkuaW5oZXJpdFZlcmlmaWNhdGlvbkZyb20gPSBmbGFnc1tcImluaGVyaXQtZnJvbVwiXTtcbiAgICBpZiAoZmxhZ3NbXCJ3ZWJob29rLXVybFwiXSkgYm9keS53ZWJob29rVXJsID0gZmxhZ3NbXCJ3ZWJob29rLXVybFwiXTtcbiAgICBpZiAoZmxhZ3NbXCJjcmVhdGUta2V5XCJdKSBib2R5LmNyZWF0ZUFwaUtleSA9IHRydWU7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5wb3N0PFByb3Zpc2lvblJlc3BvbnNlPihcbiAgICAgIFwiL2FwaS92MS9lbnRlcnByaXNlL3dvcmtzcGFjZXMvcHJvdmlzaW9uXCIsXG4gICAgICBib2R5LFxuICAgICk7XG5cbiAgICBzcGluLnN1Y2NlZWQoXCJXb3Jrc3BhY2UgcHJvdmlzaW9uZWRcIik7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXRhaWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgSUQ6IHJlc3BvbnNlLm9yZ2FuaXphdGlvbi5pZCxcbiAgICAgIE5hbWU6IHJlc3BvbnNlLm9yZ2FuaXphdGlvbi5uYW1lLFxuICAgICAgU2x1ZzogcmVzcG9uc2Uub3JnYW5pemF0aW9uLnNsdWcsXG4gICAgfTtcblxuICAgIGlmIChyZXNwb25zZS52ZXJpZmljYXRpb24pIHtcbiAgICAgIGRldGFpbHNbXCJWZXJpZmljYXRpb25cIl0gPSByZXNwb25zZS52ZXJpZmljYXRpb24uc3RhdHVzID09PSBcImFwcHJvdmVkXCJcbiAgICAgICAgPyBjb2xvcnMuc3VjY2VzcyhcImluaGVyaXRlZFwiKVxuICAgICAgICA6IGNvbG9ycy53YXJuaW5nKHJlc3BvbnNlLnZlcmlmaWNhdGlvbi5zdGF0dXMpO1xuICAgIH1cbiAgICBpZiAocmVzcG9uc2UuY3JlZGl0cykge1xuICAgICAgZGV0YWlsc1tcIkNyZWRpdHNcIl0gPSBgJHtyZXNwb25zZS5jcmVkaXRzLmJhbGFuY2UudG9Mb2NhbGVTdHJpbmcoKX0gY3JlZGl0c2A7XG4gICAgfVxuICAgIGlmIChyZXNwb25zZS5hcGlLZXkpIHtcbiAgICAgIGRldGFpbHNbXCJBUEkgS2V5XCJdID0gcmVzcG9uc2UuYXBpS2V5LmtleTtcbiAgICB9XG4gICAgaWYgKHJlc3BvbnNlLndlYmhvb2spIHtcbiAgICAgIGRldGFpbHNbXCJXZWJob29rXCJdID0gcmVzcG9uc2Uud2ViaG9vay51cmw7XG4gICAgfVxuXG4gICAgc3VjY2VzcyhcIldvcmtzcGFjZSBwcm92aXNpb25lZFwiLCBkZXRhaWxzKTtcblxuICAgIGlmIChyZXNwb25zZS5hcGlLZXkpIHtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgY29sb3JzLndhcm5pbmcoXCIgIFNhdmUgdGhlIEFQSSBrZXkgbm93IOKAlCBpdCB3b24ndCBiZSBzaG93biBhZ2Fpbi5cIiksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYnVsa1Byb3Zpc2lvbihmaWxlUGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgdGhpcy5lcnJvcihgRmlsZSBub3QgZm91bmQ6ICR7ZmlsZVBhdGh9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudCA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgXCJ1dGYtOFwiKTtcbiAgICBsZXQgd29ya3NwYWNlczogQnVsa1Byb3Zpc2lvbkl0ZW1bXTtcblxuICAgIHRyeSB7XG4gICAgICB3b3Jrc3BhY2VzID0gSlNPTi5wYXJzZShjb250ZW50KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuZXJyb3IoXCJJbnZhbGlkIEpTT04gZmlsZS4gRXhwZWN0ZWQgYW4gYXJyYXkgb2Ygd29ya3NwYWNlIG9iamVjdHMuXCIpO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh3b3Jrc3BhY2VzKSkge1xuICAgICAgdGhpcy5lcnJvcihcIkpTT04gZmlsZSBtdXN0IGNvbnRhaW4gYW4gYXJyYXkgb2Ygd29ya3NwYWNlIG9iamVjdHMuXCIpO1xuICAgIH1cblxuICAgIGlmICh3b3Jrc3BhY2VzLmxlbmd0aCA+IDUwKSB7XG4gICAgICB0aGlzLmVycm9yKFwiQnVsayBwcm92aXNpb25pbmcgc3VwcG9ydHMgdXAgdG8gNTAgd29ya3NwYWNlcyBhdCBhIHRpbWUuXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHNwaW4gPSBzcGlubmVyKGBQcm92aXNpb25pbmcgJHt3b3Jrc3BhY2VzLmxlbmd0aH0gd29ya3NwYWNlcy4uLmApO1xuICAgIHNwaW4uc3RhcnQoKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8QnVsa1Byb3Zpc2lvblJlc3BvbnNlPihcbiAgICAgIFwiL2FwaS92MS9lbnRlcnByaXNlL3dvcmtzcGFjZXMvcHJvdmlzaW9uL2J1bGtcIixcbiAgICAgIHsgd29ya3NwYWNlcyB9LFxuICAgICk7XG5cbiAgICBzcGluLnN1Y2NlZWQoXG4gICAgICBgUHJvdmlzaW9uZWQgJHtyZXNwb25zZS50b3RhbENyZWF0ZWR9LyR7cmVzcG9uc2UudG90YWxSZXF1ZXN0ZWR9IHdvcmtzcGFjZXNgLFxuICAgICk7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIHRhYmxlKHJlc3BvbnNlLnJlc3VsdHMsIFtcbiAgICAgIHsgaGVhZGVyOiBcIk5hbWVcIiwga2V5OiBcIm5hbWVcIiwgd2lkdGg6IDI0IH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJTdGF0dXNcIixcbiAgICAgICAga2V5OiBcInN1Y2Nlc3NcIixcbiAgICAgICAgd2lkdGg6IDEwLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PlxuICAgICAgICAgIHYgPyBjb2xvcnMuc3VjY2VzcyhcImNyZWF0ZWRcIikgOiBjb2xvcnMuZXJyb3IoXCJmYWlsZWRcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiV29ya3NwYWNlIElEXCIsXG4gICAgICAgIGtleTogXCJ3b3Jrc3BhY2VJZFwiLFxuICAgICAgICB3aWR0aDogMjAsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+ICh2ID8gY29sb3JzLmRpbShTdHJpbmcodikpIDogY29sb3JzLmRpbShcIuKAlFwiKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiRXJyb3JcIixcbiAgICAgICAga2V5OiBcImVycm9yXCIsXG4gICAgICAgIHdpZHRoOiAzMCxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gKHYgPyBjb2xvcnMuZXJyb3IoU3RyaW5nKHYpKSA6IFwiXCIpLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIGlmIChyZXNwb25zZS50b3RhbEZhaWxlZCA+IDApIHtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgY29sb3JzLndhcm5pbmcoXG4gICAgICAgICAgYCAgJHtyZXNwb25zZS50b3RhbEZhaWxlZH0gd29ya3NwYWNlKHMpIGZhaWxlZCB0byBwcm92aXNpb24uYCxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0= |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class QuotaGet extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| workspaceId: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Args } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { json, keyValue, colors, header, isJsonMode, } from "../../../lib/output.js"; | ||
| export default class QuotaGet extends AuthenticatedCommand { | ||
| static description = "Get message quota for an enterprise workspace"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise quota get org_abc123", | ||
| "<%= config.bin %> enterprise quota get org_abc123 --json", | ||
| ]; | ||
| static args = { | ||
| workspaceId: Args.string({ | ||
| description: "Workspace ID", | ||
| required: true, | ||
| }), | ||
| }; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| }; | ||
| async run() { | ||
| const { args } = await this.parse(QuotaGet); | ||
| const quota = await apiClient.get(`/api/v1/enterprise/workspaces/${args.workspaceId}/quota`); | ||
| if (isJsonMode()) { | ||
| json(quota); | ||
| return; | ||
| } | ||
| header("Workspace Quota"); | ||
| keyValue({ | ||
| "Daily Limit": quota.dailyLimit !== null | ||
| ? quota.dailyLimit.toLocaleString() | ||
| : colors.dim("unlimited"), | ||
| "Daily Used": `${quota.dailyUsed.toLocaleString()}${quota.dailyLimit ? ` / ${quota.dailyLimit.toLocaleString()}` : ""}`, | ||
| "Monthly Limit": quota.monthlyLimit !== null | ||
| ? quota.monthlyLimit.toLocaleString() | ||
| : colors.dim("unlimited"), | ||
| "Monthly Used": `${quota.monthlyUsed.toLocaleString()}${quota.monthlyLimit ? ` / ${quota.monthlyLimit.toLocaleString()}` : ""}`, | ||
| }); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2VudGVycHJpc2UvcXVvdGEvZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxJQUFJLEVBQ0osUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sVUFBVSxHQUNYLE1BQU0sd0JBQXdCLENBQUM7QUFTaEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxRQUFTLFNBQVEsb0JBQW9CO0lBQ3hELE1BQU0sQ0FBQyxXQUFXLEdBQUcsK0NBQStDLENBQUM7SUFFckUsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQixtREFBbUQ7UUFDbkQsMERBQTBEO0tBQzNELENBQUM7SUFFRixNQUFNLENBQUMsSUFBSSxHQUFHO1FBQ1osV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDdkIsV0FBVyxFQUFFLGNBQWM7WUFDM0IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0tBQ0gsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7S0FDbEMsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QyxNQUFNLEtBQUssR0FBRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQy9CLGlDQUFpQyxJQUFJLENBQUMsV0FBVyxRQUFRLENBQzFELENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ1osT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUUxQixRQUFRLENBQUM7WUFDUCxhQUFhLEVBQUUsS0FBSyxDQUFDLFVBQVUsS0FBSyxJQUFJO2dCQUN0QyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUU7Z0JBQ25DLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztZQUMzQixZQUFZLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdkgsZUFBZSxFQUFFLEtBQUssQ0FBQyxZQUFZLEtBQUssSUFBSTtnQkFDMUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFO2dCQUNyQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7WUFDM0IsY0FBYyxFQUFFLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1NBQ2hJLENBQUMsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIGpzb24sXG4gIGtleVZhbHVlLFxuICBjb2xvcnMsXG4gIGhlYWRlcixcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIFF1b3RhU2V0dGluZ3Mge1xuICBkYWlseUxpbWl0OiBudW1iZXIgfCBudWxsO1xuICBtb250aGx5TGltaXQ6IG51bWJlciB8IG51bGw7XG4gIGRhaWx5VXNlZDogbnVtYmVyO1xuICBtb250aGx5VXNlZDogbnVtYmVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBRdW90YUdldCBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJHZXQgbWVzc2FnZSBxdW90YSBmb3IgYW4gZW50ZXJwcmlzZSB3b3Jrc3BhY2VcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIHF1b3RhIGdldCBvcmdfYWJjMTIzXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIHF1b3RhIGdldCBvcmdfYWJjMTIzIC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBhcmdzID0ge1xuICAgIHdvcmtzcGFjZUlkOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJXb3Jrc3BhY2UgSURcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICB9O1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgYXJncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShRdW90YUdldCk7XG5cbiAgICBjb25zdCBxdW90YSA9IGF3YWl0IGFwaUNsaWVudC5nZXQ8UXVvdGFTZXR0aW5ncz4oXG4gICAgICBgL2FwaS92MS9lbnRlcnByaXNlL3dvcmtzcGFjZXMvJHthcmdzLndvcmtzcGFjZUlkfS9xdW90YWAsXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocXVvdGEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGhlYWRlcihcIldvcmtzcGFjZSBRdW90YVwiKTtcblxuICAgIGtleVZhbHVlKHtcbiAgICAgIFwiRGFpbHkgTGltaXRcIjogcXVvdGEuZGFpbHlMaW1pdCAhPT0gbnVsbFxuICAgICAgICA/IHF1b3RhLmRhaWx5TGltaXQudG9Mb2NhbGVTdHJpbmcoKVxuICAgICAgICA6IGNvbG9ycy5kaW0oXCJ1bmxpbWl0ZWRcIiksXG4gICAgICBcIkRhaWx5IFVzZWRcIjogYCR7cXVvdGEuZGFpbHlVc2VkLnRvTG9jYWxlU3RyaW5nKCl9JHtxdW90YS5kYWlseUxpbWl0ID8gYCAvICR7cXVvdGEuZGFpbHlMaW1pdC50b0xvY2FsZVN0cmluZygpfWAgOiBcIlwifWAsXG4gICAgICBcIk1vbnRobHkgTGltaXRcIjogcXVvdGEubW9udGhseUxpbWl0ICE9PSBudWxsXG4gICAgICAgID8gcXVvdGEubW9udGhseUxpbWl0LnRvTG9jYWxlU3RyaW5nKClcbiAgICAgICAgOiBjb2xvcnMuZGltKFwidW5saW1pdGVkXCIpLFxuICAgICAgXCJNb250aGx5IFVzZWRcIjogYCR7cXVvdGEubW9udGhseVVzZWQudG9Mb2NhbGVTdHJpbmcoKX0ke3F1b3RhLm1vbnRobHlMaW1pdCA/IGAgLyAke3F1b3RhLm1vbnRobHlMaW1pdC50b0xvY2FsZVN0cmluZygpfWAgOiBcIlwifWAsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ== |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class QuotaSet extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| workspaceId: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| daily: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| monthly: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Args, Flags } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { success, json, colors, isJsonMode } from "../../../lib/output.js"; | ||
| export default class QuotaSet extends AuthenticatedCommand { | ||
| static description = "Set message quota for an enterprise workspace"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise quota set org_abc123 --daily 1000", | ||
| "<%= config.bin %> enterprise quota set org_abc123 --monthly 25000", | ||
| "<%= config.bin %> enterprise quota set org_abc123 --daily 1000 --monthly 25000", | ||
| "<%= config.bin %> enterprise quota set org_abc123 --daily unlimited", | ||
| ]; | ||
| static args = { | ||
| workspaceId: Args.string({ | ||
| description: "Workspace ID", | ||
| required: true, | ||
| }), | ||
| }; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| daily: Flags.string({ | ||
| description: 'Daily message limit (number or "unlimited")', | ||
| }), | ||
| monthly: Flags.string({ | ||
| description: 'Monthly message limit (number or "unlimited")', | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { args, flags } = await this.parse(QuotaSet); | ||
| if (!flags.daily && !flags.monthly) { | ||
| this.error("Specify at least one of --daily or --monthly."); | ||
| } | ||
| const body = {}; | ||
| if (flags.daily !== undefined) { | ||
| body.dailyLimit = | ||
| flags.daily === "unlimited" ? null : parseInt(flags.daily, 10); | ||
| if (flags.daily !== "unlimited" && isNaN(body.dailyLimit)) { | ||
| this.error('--daily must be a number or "unlimited".'); | ||
| } | ||
| } | ||
| if (flags.monthly !== undefined) { | ||
| body.monthlyLimit = | ||
| flags.monthly === "unlimited" ? null : parseInt(flags.monthly, 10); | ||
| if (flags.monthly !== "unlimited" && isNaN(body.monthlyLimit)) { | ||
| this.error('--monthly must be a number or "unlimited".'); | ||
| } | ||
| } | ||
| const quota = await apiClient.put(`/api/v1/enterprise/workspaces/${args.workspaceId}/quota`, body); | ||
| if (isJsonMode()) { | ||
| json(quota); | ||
| return; | ||
| } | ||
| const details = {}; | ||
| if (flags.daily !== undefined) { | ||
| details["Daily Limit"] = | ||
| quota.dailyLimit !== null | ||
| ? quota.dailyLimit.toLocaleString() | ||
| : colors.dim("unlimited"); | ||
| } | ||
| if (flags.monthly !== undefined) { | ||
| details["Monthly Limit"] = | ||
| quota.monthlyLimit !== null | ||
| ? quota.monthlyLimit.toLocaleString() | ||
| : colors.dim("unlimited"); | ||
| } | ||
| success("Quota updated", details); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2VudGVycHJpc2UvcXVvdGEvc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFTM0UsTUFBTSxDQUFDLE9BQU8sT0FBTyxRQUFTLFNBQVEsb0JBQW9CO0lBQ3hELE1BQU0sQ0FBQyxXQUFXLEdBQUcsK0NBQStDLENBQUM7SUFFckUsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQixnRUFBZ0U7UUFDaEUsbUVBQW1FO1FBQ25FLGdGQUFnRjtRQUNoRixxRUFBcUU7S0FDdEUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN2QixXQUFXLEVBQUUsY0FBYztZQUMzQixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztRQUNqQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNsQixXQUFXLEVBQUUsNkNBQTZDO1NBQzNELENBQUM7UUFDRixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNwQixXQUFXLEVBQUUsK0NBQStDO1NBQzdELENBQUM7S0FDSCxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVuRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUE0QixFQUFFLENBQUM7UUFFekMsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxVQUFVO2dCQUNiLEtBQUssQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pFLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxXQUFXLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFvQixDQUFDLEVBQUUsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1lBQ3pELENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxZQUFZO2dCQUNmLEtBQUssQ0FBQyxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxXQUFXLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFzQixDQUFDLEVBQUUsQ0FBQztnQkFDeEUsSUFBSSxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1lBQzNELENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxDQUMvQixpQ0FBaUMsSUFBSSxDQUFDLFdBQVcsUUFBUSxFQUN6RCxJQUFJLENBQ0wsQ0FBQztRQUVGLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDWixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUEyQixFQUFFLENBQUM7UUFFM0MsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxhQUFhLENBQUM7Z0JBQ3BCLEtBQUssQ0FBQyxVQUFVLEtBQUssSUFBSTtvQkFDdkIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFO29CQUNuQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxlQUFlLENBQUM7Z0JBQ3RCLEtBQUssQ0FBQyxZQUFZLEtBQUssSUFBSTtvQkFDekIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFO29CQUNyQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBRUQsT0FBTyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJncywgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHsgc3VjY2VzcywganNvbiwgY29sb3JzLCBpc0pzb25Nb2RlIH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIFF1b3RhU2V0dGluZ3Mge1xuICBkYWlseUxpbWl0OiBudW1iZXIgfCBudWxsO1xuICBtb250aGx5TGltaXQ6IG51bWJlciB8IG51bGw7XG4gIGRhaWx5VXNlZDogbnVtYmVyO1xuICBtb250aGx5VXNlZDogbnVtYmVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBRdW90YVNldCBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJTZXQgbWVzc2FnZSBxdW90YSBmb3IgYW4gZW50ZXJwcmlzZSB3b3Jrc3BhY2VcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIHF1b3RhIHNldCBvcmdfYWJjMTIzIC0tZGFpbHkgMTAwMFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSBxdW90YSBzZXQgb3JnX2FiYzEyMyAtLW1vbnRobHkgMjUwMDBcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2UgcXVvdGEgc2V0IG9yZ19hYmMxMjMgLS1kYWlseSAxMDAwIC0tbW9udGhseSAyNTAwMFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSBxdW90YSBzZXQgb3JnX2FiYzEyMyAtLWRhaWx5IHVubGltaXRlZFwiLFxuICBdO1xuXG4gIHN0YXRpYyBhcmdzID0ge1xuICAgIHdvcmtzcGFjZUlkOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJXb3Jrc3BhY2UgSURcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICB9O1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgZGFpbHk6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogJ0RhaWx5IG1lc3NhZ2UgbGltaXQgKG51bWJlciBvciBcInVubGltaXRlZFwiKScsXG4gICAgfSksXG4gICAgbW9udGhseTogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnTW9udGhseSBtZXNzYWdlIGxpbWl0IChudW1iZXIgb3IgXCJ1bmxpbWl0ZWRcIiknLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGFyZ3MsIGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKFF1b3RhU2V0KTtcblxuICAgIGlmICghZmxhZ3MuZGFpbHkgJiYgIWZsYWdzLm1vbnRobHkpIHtcbiAgICAgIHRoaXMuZXJyb3IoXCJTcGVjaWZ5IGF0IGxlYXN0IG9uZSBvZiAtLWRhaWx5IG9yIC0tbW9udGhseS5cIik7XG4gICAgfVxuXG4gICAgY29uc3QgYm9keTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAgIGlmIChmbGFncy5kYWlseSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBib2R5LmRhaWx5TGltaXQgPVxuICAgICAgICBmbGFncy5kYWlseSA9PT0gXCJ1bmxpbWl0ZWRcIiA/IG51bGwgOiBwYXJzZUludChmbGFncy5kYWlseSwgMTApO1xuICAgICAgaWYgKGZsYWdzLmRhaWx5ICE9PSBcInVubGltaXRlZFwiICYmIGlzTmFOKGJvZHkuZGFpbHlMaW1pdCBhcyBudW1iZXIpKSB7XG4gICAgICAgIHRoaXMuZXJyb3IoJy0tZGFpbHkgbXVzdCBiZSBhIG51bWJlciBvciBcInVubGltaXRlZFwiLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmbGFncy5tb250aGx5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGJvZHkubW9udGhseUxpbWl0ID1cbiAgICAgICAgZmxhZ3MubW9udGhseSA9PT0gXCJ1bmxpbWl0ZWRcIiA/IG51bGwgOiBwYXJzZUludChmbGFncy5tb250aGx5LCAxMCk7XG4gICAgICBpZiAoZmxhZ3MubW9udGhseSAhPT0gXCJ1bmxpbWl0ZWRcIiAmJiBpc05hTihib2R5Lm1vbnRobHlMaW1pdCBhcyBudW1iZXIpKSB7XG4gICAgICAgIHRoaXMuZXJyb3IoJy0tbW9udGhseSBtdXN0IGJlIGEgbnVtYmVyIG9yIFwidW5saW1pdGVkXCIuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcXVvdGEgPSBhd2FpdCBhcGlDbGllbnQucHV0PFF1b3RhU2V0dGluZ3M+KFxuICAgICAgYC9hcGkvdjEvZW50ZXJwcmlzZS93b3Jrc3BhY2VzLyR7YXJncy53b3Jrc3BhY2VJZH0vcXVvdGFgLFxuICAgICAgYm9keSxcbiAgICApO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihxdW90YSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGV0YWlsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gICAgaWYgKGZsYWdzLmRhaWx5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRldGFpbHNbXCJEYWlseSBMaW1pdFwiXSA9XG4gICAgICAgIHF1b3RhLmRhaWx5TGltaXQgIT09IG51bGxcbiAgICAgICAgICA/IHF1b3RhLmRhaWx5TGltaXQudG9Mb2NhbGVTdHJpbmcoKVxuICAgICAgICAgIDogY29sb3JzLmRpbShcInVubGltaXRlZFwiKTtcbiAgICB9XG5cbiAgICBpZiAoZmxhZ3MubW9udGhseSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZXRhaWxzW1wiTW9udGhseSBMaW1pdFwiXSA9XG4gICAgICAgIHF1b3RhLm1vbnRobHlMaW1pdCAhPT0gbnVsbFxuICAgICAgICAgID8gcXVvdGEubW9udGhseUxpbWl0LnRvTG9jYWxlU3RyaW5nKClcbiAgICAgICAgICA6IGNvbG9ycy5kaW0oXCJ1bmxpbWl0ZWRcIik7XG4gICAgfVxuXG4gICAgc3VjY2VzcyhcIlF1b3RhIHVwZGF0ZWRcIiwgZGV0YWlscyk7XG4gIH1cbn1cbiJdfQ== |
| import { AuthenticatedCommand } from "../../lib/base-command.js"; | ||
| export default class EnterpriseStatus extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { AuthenticatedCommand } from "../../lib/base-command.js"; | ||
| import { apiClient } from "../../lib/api-client.js"; | ||
| import { json, keyValue, colors, header, isJsonMode, formatDate, formatCredits, } from "../../lib/output.js"; | ||
| export default class EnterpriseStatus extends AuthenticatedCommand { | ||
| static description = "Show enterprise account status"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise status", | ||
| "<%= config.bin %> enterprise status --json", | ||
| ]; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| }; | ||
| async run() { | ||
| const response = await apiClient.get("/api/v1/enterprise/account"); | ||
| if (isJsonMode()) { | ||
| json(response); | ||
| return; | ||
| } | ||
| const { account, workspaceCount } = response; | ||
| header("Enterprise Account"); | ||
| const statusColor = account.status === "active" | ||
| ? colors.success | ||
| : account.status === "pending" | ||
| ? colors.warning | ||
| : colors.error; | ||
| keyValue({ | ||
| Company: colors.primary(account.companyName), | ||
| Status: statusColor(account.status), | ||
| Workspaces: `${workspaceCount} / ${account.maxWorkspaces}`, | ||
| "Credits Allocated": formatCredits(account.totalCreditsAllocated), | ||
| "Platform Fee": account.monthlyPlatformFee | ||
| ? `$${account.monthlyPlatformFee}/mo` | ||
| : colors.dim("not set"), | ||
| "Per-Workspace Fee": account.perWorkspaceFee | ||
| ? `$${account.perWorkspaceFee}/mo` | ||
| : colors.dim("not set"), | ||
| "Enterprise Webhook": account.webhookUrl || colors.dim("not configured"), | ||
| "Activated At": account.activatedAt | ||
| ? formatDate(account.activatedAt) | ||
| : colors.dim("pending"), | ||
| "Created At": formatDate(account.createdAt), | ||
| }); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2VudGVycHJpc2Uvc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsSUFBSSxFQUNKLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLFVBQVUsRUFDVixVQUFVLEVBQ1YsYUFBYSxHQUNkLE1BQU0scUJBQXFCLENBQUM7QUFzQjdCLE1BQU0sQ0FBQyxPQUFPLE9BQU8sZ0JBQWlCLFNBQVEsb0JBQW9CO0lBQ2hFLE1BQU0sQ0FBQyxXQUFXLEdBQUcsZ0NBQWdDLENBQUM7SUFFdEQsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQixxQ0FBcUM7UUFDckMsNENBQTRDO0tBQzdDLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO0tBQ2xDLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FDbEMsNEJBQTRCLENBQzdCLENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLFFBQVEsQ0FBQztRQUU3QyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUU3QixNQUFNLFdBQVcsR0FDZixPQUFPLENBQUMsTUFBTSxLQUFLLFFBQVE7WUFDekIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQ2hCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVM7Z0JBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTztnQkFDaEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFFckIsUUFBUSxDQUFDO1lBQ1AsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUM1QyxNQUFNLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDbkMsVUFBVSxFQUFFLEdBQUcsY0FBYyxNQUFNLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDMUQsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztZQUNqRSxjQUFjLEVBQUUsT0FBTyxDQUFDLGtCQUFrQjtnQkFDeEMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLGtCQUFrQixLQUFLO2dCQUNyQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDekIsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLGVBQWU7Z0JBQzFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxlQUFlLEtBQUs7Z0JBQ2xDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztZQUN6QixvQkFBb0IsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7WUFDeEUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUNqQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztZQUN6QixZQUFZLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7U0FDNUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAganNvbixcbiAga2V5VmFsdWUsXG4gIGNvbG9ycyxcbiAgaGVhZGVyLFxuICBpc0pzb25Nb2RlLFxuICBmb3JtYXREYXRlLFxuICBmb3JtYXRDcmVkaXRzLFxufSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5pbnRlcmZhY2UgRW50ZXJwcmlzZUFjY291bnQge1xuICBpZDogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgc3RhdHVzOiBcInBlbmRpbmdcIiB8IFwiYWN0aXZlXCIgfCBcInN1c3BlbmRlZFwiIHwgXCJkZWFjdGl2YXRlZFwiO1xuICBjb21wYW55TmFtZTogc3RyaW5nO1xuICBtYXhXb3Jrc3BhY2VzOiBudW1iZXI7XG4gIHdlYmhvb2tVcmw/OiBzdHJpbmc7XG4gIHdlYmhvb2tTZWNyZXQ/OiBzdHJpbmc7XG4gIHRvdGFsQ3JlZGl0c0FsbG9jYXRlZDogbnVtYmVyO1xuICBtb250aGx5UGxhdGZvcm1GZWU/OiBudW1iZXI7XG4gIHBlcldvcmtzcGFjZUZlZT86IG51bWJlcjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIGFjdGl2YXRlZEF0Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU3RhdHVzUmVzcG9uc2Uge1xuICBhY2NvdW50OiBFbnRlcnByaXNlQWNjb3VudDtcbiAgd29ya3NwYWNlQ291bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW50ZXJwcmlzZVN0YXR1cyBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJTaG93IGVudGVycHJpc2UgYWNjb3VudCBzdGF0dXNcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIHN0YXR1c1wiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSBzdGF0dXMgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQuZ2V0PFN0YXR1c1Jlc3BvbnNlPihcbiAgICAgIFwiL2FwaS92MS9lbnRlcnByaXNlL2FjY291bnRcIixcbiAgICApO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBhY2NvdW50LCB3b3Jrc3BhY2VDb3VudCB9ID0gcmVzcG9uc2U7XG5cbiAgICBoZWFkZXIoXCJFbnRlcnByaXNlIEFjY291bnRcIik7XG5cbiAgICBjb25zdCBzdGF0dXNDb2xvciA9XG4gICAgICBhY2NvdW50LnN0YXR1cyA9PT0gXCJhY3RpdmVcIlxuICAgICAgICA/IGNvbG9ycy5zdWNjZXNzXG4gICAgICAgIDogYWNjb3VudC5zdGF0dXMgPT09IFwicGVuZGluZ1wiXG4gICAgICAgICAgPyBjb2xvcnMud2FybmluZ1xuICAgICAgICAgIDogY29sb3JzLmVycm9yO1xuXG4gICAga2V5VmFsdWUoe1xuICAgICAgQ29tcGFueTogY29sb3JzLnByaW1hcnkoYWNjb3VudC5jb21wYW55TmFtZSksXG4gICAgICBTdGF0dXM6IHN0YXR1c0NvbG9yKGFjY291bnQuc3RhdHVzKSxcbiAgICAgIFdvcmtzcGFjZXM6IGAke3dvcmtzcGFjZUNvdW50fSAvICR7YWNjb3VudC5tYXhXb3Jrc3BhY2VzfWAsXG4gICAgICBcIkNyZWRpdHMgQWxsb2NhdGVkXCI6IGZvcm1hdENyZWRpdHMoYWNjb3VudC50b3RhbENyZWRpdHNBbGxvY2F0ZWQpLFxuICAgICAgXCJQbGF0Zm9ybSBGZWVcIjogYWNjb3VudC5tb250aGx5UGxhdGZvcm1GZWVcbiAgICAgICAgPyBgJCR7YWNjb3VudC5tb250aGx5UGxhdGZvcm1GZWV9L21vYFxuICAgICAgICA6IGNvbG9ycy5kaW0oXCJub3Qgc2V0XCIpLFxuICAgICAgXCJQZXItV29ya3NwYWNlIEZlZVwiOiBhY2NvdW50LnBlcldvcmtzcGFjZUZlZVxuICAgICAgICA/IGAkJHthY2NvdW50LnBlcldvcmtzcGFjZUZlZX0vbW9gXG4gICAgICAgIDogY29sb3JzLmRpbShcIm5vdCBzZXRcIiksXG4gICAgICBcIkVudGVycHJpc2UgV2ViaG9va1wiOiBhY2NvdW50LndlYmhvb2tVcmwgfHwgY29sb3JzLmRpbShcIm5vdCBjb25maWd1cmVkXCIpLFxuICAgICAgXCJBY3RpdmF0ZWQgQXRcIjogYWNjb3VudC5hY3RpdmF0ZWRBdFxuICAgICAgICA/IGZvcm1hdERhdGUoYWNjb3VudC5hY3RpdmF0ZWRBdClcbiAgICAgICAgOiBjb2xvcnMuZGltKFwicGVuZGluZ1wiKSxcbiAgICAgIFwiQ3JlYXRlZCBBdFwiOiBmb3JtYXREYXRlKGFjY291bnQuY3JlYXRlZEF0KSxcbiAgICB9KTtcbiAgfVxufVxuIl19 |
| import { AuthenticatedCommand } from "../../lib/base-command.js"; | ||
| export default class EnterpriseTransferCredits extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| from: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| to: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| amount: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| yes: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Flags } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../lib/base-command.js"; | ||
| import { apiClient } from "../../lib/api-client.js"; | ||
| import { success, error, json, colors, isJsonMode, spinner, } from "../../lib/output.js"; | ||
| import inquirer from "inquirer"; | ||
| export default class EnterpriseTransferCredits extends AuthenticatedCommand { | ||
| static description = "Transfer credits between enterprise workspaces"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise transfer-credits --from org_abc --to org_xyz --amount 500", | ||
| "<%= config.bin %> enterprise transfer-credits --from org_abc --to org_xyz --amount 500 --yes", | ||
| ]; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| from: Flags.string({ | ||
| description: "Source workspace ID", | ||
| required: true, | ||
| }), | ||
| to: Flags.string({ | ||
| description: "Target workspace ID", | ||
| required: true, | ||
| }), | ||
| amount: Flags.integer({ | ||
| char: "a", | ||
| description: "Number of credits to transfer", | ||
| required: true, | ||
| }), | ||
| yes: Flags.boolean({ | ||
| char: "y", | ||
| description: "Skip confirmation prompt", | ||
| default: false, | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { flags } = await this.parse(EnterpriseTransferCredits); | ||
| if (flags.amount <= 0) { | ||
| this.error("Amount must be a positive integer."); | ||
| } | ||
| if (!flags.yes && !isJsonMode()) { | ||
| console.log(); | ||
| console.log(` ${colors.bold("Transfer Summary")}`); | ||
| console.log(` ${colors.dim("From:")} ${flags.from}`); | ||
| console.log(` ${colors.dim("To:")} ${flags.to}`); | ||
| console.log(` ${colors.dim("Amount:")} ${colors.primary(flags.amount.toLocaleString() + " credits")}`); | ||
| console.log(); | ||
| const { confirm } = await inquirer.prompt([ | ||
| { | ||
| type: "confirm", | ||
| name: "confirm", | ||
| message: "Proceed with transfer?", | ||
| default: false, | ||
| }, | ||
| ]); | ||
| if (!confirm) { | ||
| error("Transfer cancelled"); | ||
| return; | ||
| } | ||
| } | ||
| const spin = spinner("Transferring credits..."); | ||
| spin.start(); | ||
| const result = await apiClient.post(`/api/v1/enterprise/workspaces/${flags.from}/transfer-credits`, { | ||
| targetWorkspaceId: flags.to, | ||
| amount: flags.amount, | ||
| }); | ||
| spin.succeed("Transfer complete"); | ||
| if (isJsonMode()) { | ||
| json(result); | ||
| return; | ||
| } | ||
| success("Credits transferred", { | ||
| Amount: `${flags.amount.toLocaleString()} credits`, | ||
| "Source balance": `${result.sourceBalance.toLocaleString()} credits`, | ||
| "Target balance": `${result.targetBalance.toLocaleString()} credits`, | ||
| }); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXItY3JlZGl0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9lbnRlcnByaXNlL3RyYW5zZmVyLWNyZWRpdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsSUFBSSxFQUNKLE1BQU0sRUFDTixVQUFVLEVBQ1YsT0FBTyxHQUNSLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxRQUFRLE1BQU0sVUFBVSxDQUFDO0FBU2hDLE1BQU0sQ0FBQyxPQUFPLE9BQU8seUJBQTBCLFNBQVEsb0JBQW9CO0lBQ3pFLE1BQU0sQ0FBQyxXQUFXLEdBQUcsZ0RBQWdELENBQUM7SUFFdEUsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQix3RkFBd0Y7UUFDeEYsOEZBQThGO0tBQy9GLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2pCLFdBQVcsRUFBRSxxQkFBcUI7WUFDbEMsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBQ0YsRUFBRSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDZixXQUFXLEVBQUUscUJBQXFCO1lBQ2xDLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztRQUNGLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3BCLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLCtCQUErQjtZQUM1QyxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixHQUFHLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNqQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSwwQkFBMEI7WUFDdkMsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDO0tBQ0gsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRTlELElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNwRCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN6RCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2RCxPQUFPLENBQUMsR0FBRyxDQUNULEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEdBQUcsVUFBVSxDQUFDLEVBQUUsQ0FDNUYsQ0FBQztZQUNGLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVkLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3hDO29CQUNFLElBQUksRUFBRSxTQUFTO29CQUNmLElBQUksRUFBRSxTQUFTO29CQUNmLE9BQU8sRUFBRSx3QkFBd0I7b0JBQ2pDLE9BQU8sRUFBRSxLQUFLO2lCQUNmO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNiLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUM1QixPQUFPO1lBQ1QsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFYixNQUFNLE1BQU0sR0FBRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQ2pDLGlDQUFpQyxLQUFLLENBQUMsSUFBSSxtQkFBbUIsRUFDOUQ7WUFDRSxpQkFBaUIsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUMzQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07U0FDckIsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWxDLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDYixPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyxxQkFBcUIsRUFBRTtZQUM3QixNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxVQUFVO1lBQ2xELGdCQUFnQixFQUFFLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsVUFBVTtZQUNwRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLFVBQVU7U0FDckUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHN1Y2Nlc3MsXG4gIGVycm9yLFxuICBqc29uLFxuICBjb2xvcnMsXG4gIGlzSnNvbk1vZGUsXG4gIHNwaW5uZXIsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5pbXBvcnQgaW5xdWlyZXIgZnJvbSBcImlucXVpcmVyXCI7XG5cbmludGVyZmFjZSBUcmFuc2ZlclJlc3BvbnNlIHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgYW1vdW50OiBudW1iZXI7XG4gIHNvdXJjZUJhbGFuY2U6IG51bWJlcjtcbiAgdGFyZ2V0QmFsYW5jZTogbnVtYmVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFbnRlcnByaXNlVHJhbnNmZXJDcmVkaXRzIGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIlRyYW5zZmVyIGNyZWRpdHMgYmV0d2VlbiBlbnRlcnByaXNlIHdvcmtzcGFjZXNcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIHRyYW5zZmVyLWNyZWRpdHMgLS1mcm9tIG9yZ19hYmMgLS10byBvcmdfeHl6IC0tYW1vdW50IDUwMFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSB0cmFuc2Zlci1jcmVkaXRzIC0tZnJvbSBvcmdfYWJjIC0tdG8gb3JnX3h5eiAtLWFtb3VudCA1MDAgLS15ZXNcIixcbiAgXTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICAgIGZyb206IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJTb3VyY2Ugd29ya3NwYWNlIElEXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgICB0bzogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRhcmdldCB3b3Jrc3BhY2UgSURcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICAgIGFtb3VudDogRmxhZ3MuaW50ZWdlcih7XG4gICAgICBjaGFyOiBcImFcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk51bWJlciBvZiBjcmVkaXRzIHRvIHRyYW5zZmVyXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgICB5ZXM6IEZsYWdzLmJvb2xlYW4oe1xuICAgICAgY2hhcjogXCJ5XCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJTa2lwIGNvbmZpcm1hdGlvbiBwcm9tcHRcIixcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKEVudGVycHJpc2VUcmFuc2ZlckNyZWRpdHMpO1xuXG4gICAgaWYgKGZsYWdzLmFtb3VudCA8PSAwKSB7XG4gICAgICB0aGlzLmVycm9yKFwiQW1vdW50IG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLlwiKTtcbiAgICB9XG5cbiAgICBpZiAoIWZsYWdzLnllcyAmJiAhaXNKc29uTW9kZSgpKSB7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuYm9sZChcIlRyYW5zZmVyIFN1bW1hcnlcIil9YCk7XG4gICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5kaW0oXCJGcm9tOlwiKX0gICAgJHtmbGFncy5mcm9tfWApO1xuICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZGltKFwiVG86XCIpfSAgICAgICR7ZmxhZ3MudG99YCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYCAgJHtjb2xvcnMuZGltKFwiQW1vdW50OlwiKX0gICR7Y29sb3JzLnByaW1hcnkoZmxhZ3MuYW1vdW50LnRvTG9jYWxlU3RyaW5nKCkgKyBcIiBjcmVkaXRzXCIpfWAsXG4gICAgICApO1xuICAgICAgY29uc29sZS5sb2coKTtcblxuICAgICAgY29uc3QgeyBjb25maXJtIH0gPSBhd2FpdCBpbnF1aXJlci5wcm9tcHQoW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJjb25maXJtXCIsXG4gICAgICAgICAgbmFtZTogXCJjb25maXJtXCIsXG4gICAgICAgICAgbWVzc2FnZTogXCJQcm9jZWVkIHdpdGggdHJhbnNmZXI/XCIsXG4gICAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICBdKTtcblxuICAgICAgaWYgKCFjb25maXJtKSB7XG4gICAgICAgIGVycm9yKFwiVHJhbnNmZXIgY2FuY2VsbGVkXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc3BpbiA9IHNwaW5uZXIoXCJUcmFuc2ZlcnJpbmcgY3JlZGl0cy4uLlwiKTtcbiAgICBzcGluLnN0YXJ0KCk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBhcGlDbGllbnQucG9zdDxUcmFuc2ZlclJlc3BvbnNlPihcbiAgICAgIGAvYXBpL3YxL2VudGVycHJpc2Uvd29ya3NwYWNlcy8ke2ZsYWdzLmZyb219L3RyYW5zZmVyLWNyZWRpdHNgLFxuICAgICAge1xuICAgICAgICB0YXJnZXRXb3Jrc3BhY2VJZDogZmxhZ3MudG8sXG4gICAgICAgIGFtb3VudDogZmxhZ3MuYW1vdW50LFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgc3Bpbi5zdWNjZWVkKFwiVHJhbnNmZXIgY29tcGxldGVcIik7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3VsdCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3VjY2VzcyhcIkNyZWRpdHMgdHJhbnNmZXJyZWRcIiwge1xuICAgICAgQW1vdW50OiBgJHtmbGFncy5hbW91bnQudG9Mb2NhbGVTdHJpbmcoKX0gY3JlZGl0c2AsXG4gICAgICBcIlNvdXJjZSBiYWxhbmNlXCI6IGAke3Jlc3VsdC5zb3VyY2VCYWxhbmNlLnRvTG9jYWxlU3RyaW5nKCl9IGNyZWRpdHNgLFxuICAgICAgXCJUYXJnZXQgYmFsYW5jZVwiOiBgJHtyZXN1bHQudGFyZ2V0QmFsYW5jZS50b0xvY2FsZVN0cmluZygpfSBjcmVkaXRzYCxcbiAgICB9KTtcbiAgfVxufVxuIl19 |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class EnterpriseWebhooksDelete extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| yes: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Flags } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { success, error, json, isJsonMode } from "../../../lib/output.js"; | ||
| import inquirer from "inquirer"; | ||
| export default class EnterpriseWebhooksDelete extends AuthenticatedCommand { | ||
| static description = "Delete the enterprise webhook"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise webhooks delete", | ||
| "<%= config.bin %> enterprise webhooks delete --yes", | ||
| ]; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| yes: Flags.boolean({ | ||
| char: "y", | ||
| description: "Skip confirmation prompt", | ||
| default: false, | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { flags } = await this.parse(EnterpriseWebhooksDelete); | ||
| if (!flags.yes && !isJsonMode()) { | ||
| const { confirm } = await inquirer.prompt([ | ||
| { | ||
| type: "confirm", | ||
| name: "confirm", | ||
| message: "Delete the enterprise webhook? You will stop receiving events.", | ||
| default: false, | ||
| }, | ||
| ]); | ||
| if (!confirm) { | ||
| error("Deletion cancelled"); | ||
| return; | ||
| } | ||
| } | ||
| await apiClient.delete("/api/v1/enterprise/webhooks"); | ||
| if (isJsonMode()) { | ||
| json({ success: true }); | ||
| return; | ||
| } | ||
| success("Enterprise webhook deleted"); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2VudGVycHJpc2Uvd2ViaG9va3MvZGVsZXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRSxPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFFaEMsTUFBTSxDQUFDLE9BQU8sT0FBTyx3QkFBeUIsU0FBUSxvQkFBb0I7SUFDeEUsTUFBTSxDQUFDLFdBQVcsR0FBRywrQkFBK0IsQ0FBQztJQUVyRCxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDhDQUE4QztRQUM5QyxvREFBb0Q7S0FDckQsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsR0FBRyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDakIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsMEJBQTBCO1lBQ3ZDLE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FBQztLQUNILENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUU3RCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDeEM7b0JBQ0UsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsT0FBTyxFQUFFLGdFQUFnRTtvQkFDekUsT0FBTyxFQUFFLEtBQUs7aUJBQ2Y7YUFDRixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQzVCLE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sU0FBUyxDQUFDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBRXRELElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN4QixPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQgeyBzdWNjZXNzLCBlcnJvciwganNvbiwgaXNKc29uTW9kZSB9IGZyb20gXCIuLi8uLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5pbXBvcnQgaW5xdWlyZXIgZnJvbSBcImlucXVpcmVyXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVudGVycHJpc2VXZWJob29rc0RlbGV0ZSBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJEZWxldGUgdGhlIGVudGVycHJpc2Ugd2ViaG9va1wiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2Ugd2ViaG9va3MgZGVsZXRlXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIHdlYmhvb2tzIGRlbGV0ZSAtLXllc1wiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgeWVzOiBGbGFncy5ib29sZWFuKHtcbiAgICAgIGNoYXI6IFwieVwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiU2tpcCBjb25maXJtYXRpb24gcHJvbXB0XCIsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9KSxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShFbnRlcnByaXNlV2ViaG9va3NEZWxldGUpO1xuXG4gICAgaWYgKCFmbGFncy55ZXMgJiYgIWlzSnNvbk1vZGUoKSkge1xuICAgICAgY29uc3QgeyBjb25maXJtIH0gPSBhd2FpdCBpbnF1aXJlci5wcm9tcHQoW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJjb25maXJtXCIsXG4gICAgICAgICAgbmFtZTogXCJjb25maXJtXCIsXG4gICAgICAgICAgbWVzc2FnZTogXCJEZWxldGUgdGhlIGVudGVycHJpc2Ugd2ViaG9vaz8gWW91IHdpbGwgc3RvcCByZWNlaXZpbmcgZXZlbnRzLlwiLFxuICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXSk7XG5cbiAgICAgIGlmICghY29uZmlybSkge1xuICAgICAgICBlcnJvcihcIkRlbGV0aW9uIGNhbmNlbGxlZFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGF3YWl0IGFwaUNsaWVudC5kZWxldGUoXCIvYXBpL3YxL2VudGVycHJpc2Uvd2ViaG9va3NcIik7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHsgc3VjY2VzczogdHJ1ZSB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdWNjZXNzKFwiRW50ZXJwcmlzZSB3ZWJob29rIGRlbGV0ZWRcIik7XG4gIH1cbn1cbiJdfQ== |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class EnterpriseWebhooksGet extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { json, keyValue, info, colors, header, isJsonMode, } from "../../../lib/output.js"; | ||
| export default class EnterpriseWebhooksGet extends AuthenticatedCommand { | ||
| static description = "Get the enterprise webhook configuration"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise webhooks get", | ||
| "<%= config.bin %> enterprise webhooks get --json", | ||
| ]; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| }; | ||
| async run() { | ||
| const response = await apiClient.get("/api/v1/enterprise/webhooks"); | ||
| if (isJsonMode()) { | ||
| json(response); | ||
| return; | ||
| } | ||
| if (!response || !response.url) { | ||
| info("No enterprise webhook configured"); | ||
| console.log(); | ||
| console.log(` Set one with ${colors.code("sendly enterprise webhooks set --url <url>")}`); | ||
| return; | ||
| } | ||
| header("Enterprise Webhook"); | ||
| keyValue({ | ||
| URL: response.url, | ||
| Events: response.events.length > 0 | ||
| ? response.events.join(", ") | ||
| : colors.dim("all events"), | ||
| Status: response.isActive | ||
| ? colors.success("active") | ||
| : colors.warning("inactive"), | ||
| "Last Delivery": response.lastDeliveryAt || colors.dim("never"), | ||
| }); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2VudGVycHJpc2Uvd2ViaG9va3MvZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsSUFBSSxFQUNKLFFBQVEsRUFDUixJQUFJLEVBQ0osTUFBTSxFQUNOLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSx3QkFBd0IsQ0FBQztBQVVoQyxNQUFNLENBQUMsT0FBTyxPQUFPLHFCQUFzQixTQUFRLG9CQUFvQjtJQUNyRSxNQUFNLENBQUMsV0FBVyxHQUFHLDBDQUEwQyxDQUFDO0lBRWhFLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsMkNBQTJDO1FBQzNDLGtEQUFrRDtLQUNuRCxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztLQUNsQyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQ2xDLDZCQUE2QixDQUM5QixDQUFDO1FBRUYsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNmLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQztZQUN6QyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUNULGtCQUFrQixNQUFNLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxDQUFDLEVBQUUsQ0FDOUUsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFN0IsUUFBUSxDQUFDO1lBQ1AsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHO1lBQ2pCLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUNoQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUM1QixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7WUFDNUIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxRQUFRO2dCQUN2QixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQzFCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUM5QixlQUFlLEVBQUUsUUFBUSxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztTQUNoRSxDQUFDLENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBqc29uLFxuICBrZXlWYWx1ZSxcbiAgaW5mbyxcbiAgY29sb3JzLFxuICBoZWFkZXIsXG4gIGlzSnNvbk1vZGUsXG59IGZyb20gXCIuLi8uLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBXZWJob29rQ29uZmlnIHtcbiAgdXJsOiBzdHJpbmc7XG4gIGV2ZW50czogc3RyaW5nW107XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgbGFzdERlbGl2ZXJ5QXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVudGVycHJpc2VXZWJob29rc0dldCBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJHZXQgdGhlIGVudGVycHJpc2Ugd2ViaG9vayBjb25maWd1cmF0aW9uXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSB3ZWJob29rcyBnZXRcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2Ugd2ViaG9va3MgZ2V0IC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LmdldDxXZWJob29rQ29uZmlnIHwgbnVsbD4oXG4gICAgICBcIi9hcGkvdjEvZW50ZXJwcmlzZS93ZWJob29rc1wiLFxuICAgICk7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXJlc3BvbnNlIHx8ICFyZXNwb25zZS51cmwpIHtcbiAgICAgIGluZm8oXCJObyBlbnRlcnByaXNlIHdlYmhvb2sgY29uZmlndXJlZFwiKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYCAgU2V0IG9uZSB3aXRoICR7Y29sb3JzLmNvZGUoXCJzZW5kbHkgZW50ZXJwcmlzZSB3ZWJob29rcyBzZXQgLS11cmwgPHVybD5cIil9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaGVhZGVyKFwiRW50ZXJwcmlzZSBXZWJob29rXCIpO1xuXG4gICAga2V5VmFsdWUoe1xuICAgICAgVVJMOiByZXNwb25zZS51cmwsXG4gICAgICBFdmVudHM6IHJlc3BvbnNlLmV2ZW50cy5sZW5ndGggPiAwXG4gICAgICAgID8gcmVzcG9uc2UuZXZlbnRzLmpvaW4oXCIsIFwiKVxuICAgICAgICA6IGNvbG9ycy5kaW0oXCJhbGwgZXZlbnRzXCIpLFxuICAgICAgU3RhdHVzOiByZXNwb25zZS5pc0FjdGl2ZVxuICAgICAgICA/IGNvbG9ycy5zdWNjZXNzKFwiYWN0aXZlXCIpXG4gICAgICAgIDogY29sb3JzLndhcm5pbmcoXCJpbmFjdGl2ZVwiKSxcbiAgICAgIFwiTGFzdCBEZWxpdmVyeVwiOiByZXNwb25zZS5sYXN0RGVsaXZlcnlBdCB8fCBjb2xvcnMuZGltKFwibmV2ZXJcIiksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ== |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class EnterpriseWebhooksSet extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| url: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| events: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Flags } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { success, warn, json, colors, codeBlock, isJsonMode, } from "../../../lib/output.js"; | ||
| export default class EnterpriseWebhooksSet extends AuthenticatedCommand { | ||
| static description = "Create or update the enterprise-level webhook"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise webhooks set --url https://example.com/webhook", | ||
| '<%= config.bin %> enterprise webhooks set --url https://example.com/webhook --events "message.sent,message.delivered"', | ||
| ]; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| url: Flags.string({ | ||
| description: "Webhook endpoint URL", | ||
| required: true, | ||
| }), | ||
| events: Flags.string({ | ||
| description: "Comma-separated list of event types to subscribe to", | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { flags } = await this.parse(EnterpriseWebhooksSet); | ||
| const body = { url: flags.url }; | ||
| if (flags.events) { | ||
| body.events = flags.events.split(",").map((e) => e.trim()); | ||
| } | ||
| const response = await apiClient.post("/api/v1/enterprise/webhooks", body); | ||
| if (isJsonMode()) { | ||
| json(response); | ||
| return; | ||
| } | ||
| success("Enterprise webhook configured", { | ||
| URL: response.url, | ||
| Events: response.events.length > 0 | ||
| ? response.events.join(", ") | ||
| : colors.dim("all events"), | ||
| Status: response.isActive | ||
| ? colors.success("active") | ||
| : colors.warning("inactive"), | ||
| }); | ||
| if (response.secret) { | ||
| console.log(); | ||
| warn("Save the webhook secret — it won't be shown again!"); | ||
| codeBlock(response.secret); | ||
| } | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2VudGVycHJpc2Uvd2ViaG9va3Mvc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxPQUFPLEVBQ1AsSUFBSSxFQUNKLElBQUksRUFDSixNQUFNLEVBQ04sU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBU2hDLE1BQU0sQ0FBQyxPQUFPLE9BQU8scUJBQXNCLFNBQVEsb0JBQW9CO0lBQ3JFLE1BQU0sQ0FBQyxXQUFXLEdBQUcsK0NBQStDLENBQUM7SUFFckUsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQiw2RUFBNkU7UUFDN0UsdUhBQXVIO0tBQ3hILENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLEdBQUcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2hCLFdBQVcsRUFBRSxzQkFBc0I7WUFDbkMsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBQ0YsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbkIsV0FBVyxFQUFFLHFEQUFxRDtTQUNuRSxDQUFDO0tBQ0gsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRTFELE1BQU0sSUFBSSxHQUE0QixFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDekQsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQ25DLDZCQUE2QixFQUM3QixJQUFJLENBQ0wsQ0FBQztRQUVGLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQywrQkFBK0IsRUFBRTtZQUN2QyxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUc7WUFDakIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztZQUM1QixNQUFNLEVBQUUsUUFBUSxDQUFDLFFBQVE7Z0JBQ3ZCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1NBQy9CLENBQUMsQ0FBQztRQUVILElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1lBQzNELFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBzdWNjZXNzLFxuICB3YXJuLFxuICBqc29uLFxuICBjb2xvcnMsXG4gIGNvZGVCbG9jayxcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIFdlYmhvb2tSZXNwb25zZSB7XG4gIHVybDogc3RyaW5nO1xuICBzZWNyZXQ6IHN0cmluZztcbiAgZXZlbnRzOiBzdHJpbmdbXTtcbiAgaXNBY3RpdmU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVudGVycHJpc2VXZWJob29rc1NldCBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJDcmVhdGUgb3IgdXBkYXRlIHRoZSBlbnRlcnByaXNlLWxldmVsIHdlYmhvb2tcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIHdlYmhvb2tzIHNldCAtLXVybCBodHRwczovL2V4YW1wbGUuY29tL3dlYmhvb2tcIixcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSB3ZWJob29rcyBzZXQgLS11cmwgaHR0cHM6Ly9leGFtcGxlLmNvbS93ZWJob29rIC0tZXZlbnRzIFwibWVzc2FnZS5zZW50LG1lc3NhZ2UuZGVsaXZlcmVkXCInLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgdXJsOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiV2ViaG9vayBlbmRwb2ludCBVUkxcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICAgIGV2ZW50czogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGV2ZW50IHR5cGVzIHRvIHN1YnNjcmliZSB0b1wiLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKEVudGVycHJpc2VXZWJob29rc1NldCk7XG5cbiAgICBjb25zdCBib2R5OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHsgdXJsOiBmbGFncy51cmwgfTtcbiAgICBpZiAoZmxhZ3MuZXZlbnRzKSB7XG4gICAgICBib2R5LmV2ZW50cyA9IGZsYWdzLmV2ZW50cy5zcGxpdChcIixcIikubWFwKChlKSA9PiBlLnRyaW0oKSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQucG9zdDxXZWJob29rUmVzcG9uc2U+KFxuICAgICAgXCIvYXBpL3YxL2VudGVycHJpc2Uvd2ViaG9va3NcIixcbiAgICAgIGJvZHksXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1Y2Nlc3MoXCJFbnRlcnByaXNlIHdlYmhvb2sgY29uZmlndXJlZFwiLCB7XG4gICAgICBVUkw6IHJlc3BvbnNlLnVybCxcbiAgICAgIEV2ZW50czogcmVzcG9uc2UuZXZlbnRzLmxlbmd0aCA+IDBcbiAgICAgICAgPyByZXNwb25zZS5ldmVudHMuam9pbihcIiwgXCIpXG4gICAgICAgIDogY29sb3JzLmRpbShcImFsbCBldmVudHNcIiksXG4gICAgICBTdGF0dXM6IHJlc3BvbnNlLmlzQWN0aXZlXG4gICAgICAgID8gY29sb3JzLnN1Y2Nlc3MoXCJhY3RpdmVcIilcbiAgICAgICAgOiBjb2xvcnMud2FybmluZyhcImluYWN0aXZlXCIpLFxuICAgIH0pO1xuXG4gICAgaWYgKHJlc3BvbnNlLnNlY3JldCkge1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIHdhcm4oXCJTYXZlIHRoZSB3ZWJob29rIHNlY3JldCDigJQgaXQgd29uJ3QgYmUgc2hvd24gYWdhaW4hXCIpO1xuICAgICAgY29kZUJsb2NrKHJlc3BvbnNlLnNlY3JldCk7XG4gICAgfVxuICB9XG59XG4iXX0= |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class EnterpriseWebhooksTest extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { success, json, colors, isJsonMode, spinner } from "../../../lib/output.js"; | ||
| export default class EnterpriseWebhooksTest extends AuthenticatedCommand { | ||
| static description = "Send a test event to the enterprise webhook"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise webhooks test", | ||
| "<%= config.bin %> enterprise webhooks test --json", | ||
| ]; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| }; | ||
| async run() { | ||
| const spin = spinner("Sending test webhook..."); | ||
| spin.start(); | ||
| const response = await apiClient.post("/api/v1/enterprise/webhooks/test"); | ||
| if (response.success) { | ||
| spin.succeed("Webhook delivered"); | ||
| } | ||
| else { | ||
| spin.fail("Webhook delivery failed"); | ||
| } | ||
| if (isJsonMode()) { | ||
| json(response); | ||
| return; | ||
| } | ||
| if (response.success) { | ||
| success("Test webhook delivered", { | ||
| "Status Code": String(response.statusCode), | ||
| "Response Time": `${response.responseTime}ms`, | ||
| }); | ||
| } | ||
| else { | ||
| console.log(); | ||
| console.log(` ${colors.error("Status Code:")} ${response.statusCode}`); | ||
| if (response.error) { | ||
| console.log(` ${colors.error("Error:")} ${response.error}`); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tYW5kcy9lbnRlcnByaXNlL3dlYmhvb2tzL3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFTcEYsTUFBTSxDQUFDLE9BQU8sT0FBTyxzQkFBdUIsU0FBUSxvQkFBb0I7SUFDdEUsTUFBTSxDQUFDLFdBQVcsR0FBRyw2Q0FBNkMsQ0FBQztJQUVuRSxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDRDQUE0QztRQUM1QyxtREFBbUQ7S0FDcEQsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7S0FDbEMsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWIsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUNuQyxrQ0FBa0MsQ0FDbkMsQ0FBQztRQUVGLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNwQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBRUQsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNmLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsT0FBTyxDQUFDLHdCQUF3QixFQUFFO2dCQUNoQyxhQUFhLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7Z0JBQzFDLGVBQWUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxZQUFZLElBQUk7YUFDOUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN4RSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDL0QsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQgeyBzdWNjZXNzLCBqc29uLCBjb2xvcnMsIGlzSnNvbk1vZGUsIHNwaW5uZXIgfSBmcm9tIFwiLi4vLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5pbnRlcmZhY2UgVGVzdFJlc3BvbnNlIHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xuICByZXNwb25zZVRpbWU6IG51bWJlcjtcbiAgZXJyb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVudGVycHJpc2VXZWJob29rc1Rlc3QgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiU2VuZCBhIHRlc3QgZXZlbnQgdG8gdGhlIGVudGVycHJpc2Ugd2ViaG9va1wiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2Ugd2ViaG9va3MgdGVzdFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSB3ZWJob29rcyB0ZXN0IC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNwaW4gPSBzcGlubmVyKFwiU2VuZGluZyB0ZXN0IHdlYmhvb2suLi5cIik7XG4gICAgc3Bpbi5zdGFydCgpO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQucG9zdDxUZXN0UmVzcG9uc2U+KFxuICAgICAgXCIvYXBpL3YxL2VudGVycHJpc2Uvd2ViaG9va3MvdGVzdFwiLFxuICAgICk7XG5cbiAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgc3Bpbi5zdWNjZWVkKFwiV2ViaG9vayBkZWxpdmVyZWRcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNwaW4uZmFpbChcIldlYmhvb2sgZGVsaXZlcnkgZmFpbGVkXCIpO1xuICAgIH1cblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICBzdWNjZXNzKFwiVGVzdCB3ZWJob29rIGRlbGl2ZXJlZFwiLCB7XG4gICAgICAgIFwiU3RhdHVzIENvZGVcIjogU3RyaW5nKHJlc3BvbnNlLnN0YXR1c0NvZGUpLFxuICAgICAgICBcIlJlc3BvbnNlIFRpbWVcIjogYCR7cmVzcG9uc2UucmVzcG9uc2VUaW1lfW1zYCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZXJyb3IoXCJTdGF0dXMgQ29kZTpcIil9ICR7cmVzcG9uc2Uuc3RhdHVzQ29kZX1gKTtcbiAgICAgIGlmIChyZXNwb25zZS5lcnJvcikge1xuICAgICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5lcnJvcihcIkVycm9yOlwiKX0gJHtyZXNwb25zZS5lcnJvcn1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ== |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class WorkspacesCreate extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| name: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Flags } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { success, json, colors, isJsonMode, spinner } from "../../../lib/output.js"; | ||
| export default class WorkspacesCreate extends AuthenticatedCommand { | ||
| static description = "Create a new enterprise workspace"; | ||
| static examples = [ | ||
| '<%= config.bin %> enterprise workspaces create --name "Acme Corp"', | ||
| '<%= config.bin %> enterprise workspaces create --name "Acme Corp" --json', | ||
| ]; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| name: Flags.string({ | ||
| char: "n", | ||
| description: "Workspace name", | ||
| required: true, | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { flags } = await this.parse(WorkspacesCreate); | ||
| const spin = spinner("Creating workspace..."); | ||
| spin.start(); | ||
| const workspace = await apiClient.post("/api/v1/enterprise/workspaces", { name: flags.name }); | ||
| spin.succeed("Workspace created"); | ||
| if (isJsonMode()) { | ||
| json(workspace); | ||
| return; | ||
| } | ||
| success("Workspace created", { | ||
| ID: workspace.id, | ||
| Name: workspace.name, | ||
| Slug: workspace.slug, | ||
| Status: colors.success(workspace.status), | ||
| }); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2VudGVycHJpc2Uvd29ya3NwYWNlcy9jcmVhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVVwRixNQUFNLENBQUMsT0FBTyxPQUFPLGdCQUFpQixTQUFRLG9CQUFvQjtJQUNoRSxNQUFNLENBQUMsV0FBVyxHQUFHLG1DQUFtQyxDQUFDO0lBRXpELE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsbUVBQW1FO1FBQ25FLDBFQUEwRTtLQUMzRSxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztRQUNqQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNqQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSxnQkFBZ0I7WUFDN0IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0tBQ0gsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXJELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLE1BQU0sU0FBUyxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FDcEMsK0JBQStCLEVBQy9CLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FDckIsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVsQyxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hCLE9BQU87UUFDVCxDQUFDO1FBRUQsT0FBTyxDQUFDLG1CQUFtQixFQUFFO1lBQzNCLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRTtZQUNoQixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7WUFDcEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1lBQ3BCLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7IHN1Y2Nlc3MsIGpzb24sIGNvbG9ycywgaXNKc29uTW9kZSwgc3Bpbm5lciB9IGZyb20gXCIuLi8uLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBDcmVhdGVXb3Jrc3BhY2VSZXNwb25zZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc2x1Zzogc3RyaW5nO1xuICBzdGF0dXM6IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdvcmtzcGFjZXNDcmVhdGUgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiQ3JlYXRlIGEgbmV3IGVudGVycHJpc2Ugd29ya3NwYWNlXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgICc8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIHdvcmtzcGFjZXMgY3JlYXRlIC0tbmFtZSBcIkFjbWUgQ29ycFwiJyxcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSB3b3Jrc3BhY2VzIGNyZWF0ZSAtLW5hbWUgXCJBY21lIENvcnBcIiAtLWpzb24nLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgbmFtZTogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGNoYXI6IFwiblwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiV29ya3NwYWNlIG5hbWVcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKFdvcmtzcGFjZXNDcmVhdGUpO1xuXG4gICAgY29uc3Qgc3BpbiA9IHNwaW5uZXIoXCJDcmVhdGluZyB3b3Jrc3BhY2UuLi5cIik7XG4gICAgc3Bpbi5zdGFydCgpO1xuXG4gICAgY29uc3Qgd29ya3NwYWNlID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8Q3JlYXRlV29ya3NwYWNlUmVzcG9uc2U+KFxuICAgICAgXCIvYXBpL3YxL2VudGVycHJpc2Uvd29ya3NwYWNlc1wiLFxuICAgICAgeyBuYW1lOiBmbGFncy5uYW1lIH0sXG4gICAgKTtcblxuICAgIHNwaW4uc3VjY2VlZChcIldvcmtzcGFjZSBjcmVhdGVkXCIpO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbih3b3Jrc3BhY2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1Y2Nlc3MoXCJXb3Jrc3BhY2UgY3JlYXRlZFwiLCB7XG4gICAgICBJRDogd29ya3NwYWNlLmlkLFxuICAgICAgTmFtZTogd29ya3NwYWNlLm5hbWUsXG4gICAgICBTbHVnOiB3b3Jrc3BhY2Uuc2x1ZyxcbiAgICAgIFN0YXR1czogY29sb3JzLnN1Y2Nlc3Mod29ya3NwYWNlLnN0YXR1cyksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ== |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class WorkspacesDelete extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| workspaceId: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| yes: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Args, Flags } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { success, error, json, colors, isJsonMode, spinner, } from "../../../lib/output.js"; | ||
| import inquirer from "inquirer"; | ||
| export default class WorkspacesDelete extends AuthenticatedCommand { | ||
| static description = "Delete an enterprise workspace"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise workspaces delete org_abc123", | ||
| "<%= config.bin %> enterprise workspaces delete org_abc123 --yes", | ||
| ]; | ||
| static args = { | ||
| workspaceId: Args.string({ | ||
| description: "Workspace ID", | ||
| required: true, | ||
| }), | ||
| }; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| yes: Flags.boolean({ | ||
| char: "y", | ||
| description: "Skip confirmation prompt", | ||
| default: false, | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { args, flags } = await this.parse(WorkspacesDelete); | ||
| if (!flags.yes && !isJsonMode()) { | ||
| console.log(); | ||
| console.log(colors.error(" This will permanently delete the workspace and all its data.")); | ||
| console.log(); | ||
| const { confirm } = await inquirer.prompt([ | ||
| { | ||
| type: "confirm", | ||
| name: "confirm", | ||
| message: `Delete workspace ${args.workspaceId}?`, | ||
| default: false, | ||
| }, | ||
| ]); | ||
| if (!confirm) { | ||
| error("Deletion cancelled"); | ||
| return; | ||
| } | ||
| } | ||
| const spin = spinner("Deleting workspace..."); | ||
| spin.start(); | ||
| await apiClient.delete(`/api/v1/enterprise/workspaces/${args.workspaceId}`); | ||
| spin.succeed("Workspace deleted"); | ||
| if (isJsonMode()) { | ||
| json({ success: true, workspaceId: args.workspaceId }); | ||
| return; | ||
| } | ||
| success("Workspace deleted", { | ||
| ID: args.workspaceId, | ||
| }); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2VudGVycHJpc2Uvd29ya3NwYWNlcy9kZWxldGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLElBQUksRUFDSixNQUFNLEVBQ04sVUFBVSxFQUNWLE9BQU8sR0FDUixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sUUFBUSxNQUFNLFVBQVUsQ0FBQztBQUVoQyxNQUFNLENBQUMsT0FBTyxPQUFPLGdCQUFpQixTQUFRLG9CQUFvQjtJQUNoRSxNQUFNLENBQUMsV0FBVyxHQUFHLGdDQUFnQyxDQUFDO0lBRXRELE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsMkRBQTJEO1FBQzNELGlFQUFpRTtLQUNsRSxDQUFDO0lBRUYsTUFBTSxDQUFDLElBQUksR0FBRztRQUNaLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3ZCLFdBQVcsRUFBRSxjQUFjO1lBQzNCLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztLQUNILENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLEdBQUcsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2pCLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLDBCQUEwQjtZQUN2QyxPQUFPLEVBQUUsS0FBSztTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUNULE1BQU0sQ0FBQyxLQUFLLENBQ1YsZ0VBQWdFLENBQ2pFLENBQ0YsQ0FBQztZQUNGLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVkLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3hDO29CQUNFLElBQUksRUFBRSxTQUFTO29CQUNmLElBQUksRUFBRSxTQUFTO29CQUNmLE9BQU8sRUFBRSxvQkFBb0IsSUFBSSxDQUFDLFdBQVcsR0FBRztvQkFDaEQsT0FBTyxFQUFFLEtBQUs7aUJBQ2Y7YUFDRixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQzVCLE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLE1BQU0sU0FBUyxDQUFDLE1BQU0sQ0FDcEIsaUNBQWlDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FDcEQsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVsQyxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDdkQsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLENBQUMsbUJBQW1CLEVBQUU7WUFDM0IsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmdzLCBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBzdWNjZXNzLFxuICBlcnJvcixcbiAganNvbixcbiAgY29sb3JzLFxuICBpc0pzb25Nb2RlLFxuICBzcGlubmVyLFxufSBmcm9tIFwiLi4vLi4vLi4vbGliL291dHB1dC5qc1wiO1xuaW1wb3J0IGlucXVpcmVyIGZyb20gXCJpbnF1aXJlclwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXb3Jrc3BhY2VzRGVsZXRlIGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkRlbGV0ZSBhbiBlbnRlcnByaXNlIHdvcmtzcGFjZVwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2Ugd29ya3NwYWNlcyBkZWxldGUgb3JnX2FiYzEyM1wiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSB3b3Jrc3BhY2VzIGRlbGV0ZSBvcmdfYWJjMTIzIC0teWVzXCIsXG4gIF07XG5cbiAgc3RhdGljIGFyZ3MgPSB7XG4gICAgd29ya3NwYWNlSWQ6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIldvcmtzcGFjZSBJRFwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gIH07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICB5ZXM6IEZsYWdzLmJvb2xlYW4oe1xuICAgICAgY2hhcjogXCJ5XCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJTa2lwIGNvbmZpcm1hdGlvbiBwcm9tcHRcIixcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGFyZ3MsIGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKFdvcmtzcGFjZXNEZWxldGUpO1xuXG4gICAgaWYgKCFmbGFncy55ZXMgJiYgIWlzSnNvbk1vZGUoKSkge1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBjb2xvcnMuZXJyb3IoXG4gICAgICAgICAgXCIgIFRoaXMgd2lsbCBwZXJtYW5lbnRseSBkZWxldGUgdGhlIHdvcmtzcGFjZSBhbmQgYWxsIGl0cyBkYXRhLlwiLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICAgIGNvbnN0IHsgY29uZmlybSB9ID0gYXdhaXQgaW5xdWlyZXIucHJvbXB0KFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiY29uZmlybVwiLFxuICAgICAgICAgIG5hbWU6IFwiY29uZmlybVwiLFxuICAgICAgICAgIG1lc3NhZ2U6IGBEZWxldGUgd29ya3NwYWNlICR7YXJncy53b3Jrc3BhY2VJZH0/YCxcbiAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuXG4gICAgICBpZiAoIWNvbmZpcm0pIHtcbiAgICAgICAgZXJyb3IoXCJEZWxldGlvbiBjYW5jZWxsZWRcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzcGluID0gc3Bpbm5lcihcIkRlbGV0aW5nIHdvcmtzcGFjZS4uLlwiKTtcbiAgICBzcGluLnN0YXJ0KCk7XG5cbiAgICBhd2FpdCBhcGlDbGllbnQuZGVsZXRlKFxuICAgICAgYC9hcGkvdjEvZW50ZXJwcmlzZS93b3Jrc3BhY2VzLyR7YXJncy53b3Jrc3BhY2VJZH1gLFxuICAgICk7XG5cbiAgICBzcGluLnN1Y2NlZWQoXCJXb3Jrc3BhY2UgZGVsZXRlZFwiKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24oeyBzdWNjZXNzOiB0cnVlLCB3b3Jrc3BhY2VJZDogYXJncy53b3Jrc3BhY2VJZCB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdWNjZXNzKFwiV29ya3NwYWNlIGRlbGV0ZWRcIiwge1xuICAgICAgSUQ6IGFyZ3Mud29ya3NwYWNlSWQsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ== |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class WorkspacesGet extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| workspaceId: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Args } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { json, keyValue, colors, header, isJsonMode, formatDate, formatCredits, } from "../../../lib/output.js"; | ||
| export default class WorkspacesGet extends AuthenticatedCommand { | ||
| static description = "Get details of an enterprise workspace"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise workspaces get org_abc123", | ||
| "<%= config.bin %> enterprise workspaces get org_abc123 --json", | ||
| ]; | ||
| static args = { | ||
| workspaceId: Args.string({ | ||
| description: "Workspace ID", | ||
| required: true, | ||
| }), | ||
| }; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| }; | ||
| async run() { | ||
| const { args } = await this.parse(WorkspacesGet); | ||
| const workspace = await apiClient.get(`/api/v1/enterprise/workspaces/${args.workspaceId}`); | ||
| if (isJsonMode()) { | ||
| json(workspace); | ||
| return; | ||
| } | ||
| header(`Workspace: ${workspace.name}`); | ||
| const statusColor = workspace.status === "active" ? colors.success : colors.error; | ||
| keyValue({ | ||
| ID: colors.dim(workspace.id), | ||
| Name: workspace.name, | ||
| Slug: workspace.slug, | ||
| Status: statusColor(workspace.status), | ||
| Verification: workspace.verificationStatus === "approved" | ||
| ? colors.success("verified") | ||
| : colors.warning(workspace.verificationStatus), | ||
| Phone: workspace.phoneNumber || colors.dim("not assigned"), | ||
| Credits: formatCredits(workspace.creditBalance), | ||
| Members: String(workspace.memberCount), | ||
| "Messages Sent": workspace.messagesSent.toLocaleString(), | ||
| "Messages Delivered": workspace.messagesDelivered.toLocaleString(), | ||
| "Delivery Rate": workspace.messagesSent > 0 | ||
| ? `${((workspace.messagesDelivered / workspace.messagesSent) * 100).toFixed(1)}%` | ||
| : colors.dim("n/a"), | ||
| Created: formatDate(workspace.createdAt), | ||
| }); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2VudGVycHJpc2Uvd29ya3NwYWNlcy9nZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUNMLElBQUksRUFDSixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixVQUFVLEVBQ1YsVUFBVSxFQUNWLGFBQWEsR0FDZCxNQUFNLHdCQUF3QixDQUFDO0FBZ0JoQyxNQUFNLENBQUMsT0FBTyxPQUFPLGFBQWMsU0FBUSxvQkFBb0I7SUFDN0QsTUFBTSxDQUFDLFdBQVcsR0FBRyx3Q0FBd0MsQ0FBQztJQUU5RCxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLHdEQUF3RDtRQUN4RCwrREFBK0Q7S0FDaEUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN2QixXQUFXLEVBQUUsY0FBYztZQUMzQixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztLQUNsQyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWpELE1BQU0sU0FBUyxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FDbkMsaUNBQWlDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FDcEQsQ0FBQztRQUVGLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLENBQUMsY0FBYyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV2QyxNQUFNLFdBQVcsR0FDZixTQUFTLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUVoRSxRQUFRLENBQUM7WUFDUCxFQUFFLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzVCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtZQUNwQixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7WUFDcEIsTUFBTSxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQ3JDLFlBQVksRUFDVixTQUFTLENBQUMsa0JBQWtCLEtBQUssVUFBVTtnQkFDekMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO2dCQUM1QixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUM7WUFDbEQsS0FBSyxFQUFFLFNBQVMsQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUM7WUFDMUQsT0FBTyxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO1lBQy9DLE9BQU8sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztZQUN0QyxlQUFlLEVBQUUsU0FBUyxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUU7WUFDeEQsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRTtZQUNsRSxlQUFlLEVBQ2IsU0FBUyxDQUFDLFlBQVksR0FBRyxDQUFDO2dCQUN4QixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUc7Z0JBQ2pGLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUN2QixPQUFPLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAganNvbixcbiAga2V5VmFsdWUsXG4gIGNvbG9ycyxcbiAgaGVhZGVyLFxuICBpc0pzb25Nb2RlLFxuICBmb3JtYXREYXRlLFxuICBmb3JtYXRDcmVkaXRzLFxufSBmcm9tIFwiLi4vLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5pbnRlcmZhY2UgV29ya3NwYWNlRGV0YWlsIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBzbHVnOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBjcmVkaXRCYWxhbmNlOiBudW1iZXI7XG4gIHZlcmlmaWNhdGlvblN0YXR1czogc3RyaW5nO1xuICBwaG9uZU51bWJlcj86IHN0cmluZztcbiAgbWVtYmVyQ291bnQ6IG51bWJlcjtcbiAgbWVzc2FnZXNTZW50OiBudW1iZXI7XG4gIG1lc3NhZ2VzRGVsaXZlcmVkOiBudW1iZXI7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXb3Jrc3BhY2VzR2V0IGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkdldCBkZXRhaWxzIG9mIGFuIGVudGVycHJpc2Ugd29ya3NwYWNlXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSB3b3Jrc3BhY2VzIGdldCBvcmdfYWJjMTIzXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIHdvcmtzcGFjZXMgZ2V0IG9yZ19hYmMxMjMgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGFyZ3MgPSB7XG4gICAgd29ya3NwYWNlSWQ6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIldvcmtzcGFjZSBJRFwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gIH07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBhcmdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKFdvcmtzcGFjZXNHZXQpO1xuXG4gICAgY29uc3Qgd29ya3NwYWNlID0gYXdhaXQgYXBpQ2xpZW50LmdldDxXb3Jrc3BhY2VEZXRhaWw+KFxuICAgICAgYC9hcGkvdjEvZW50ZXJwcmlzZS93b3Jrc3BhY2VzLyR7YXJncy53b3Jrc3BhY2VJZH1gLFxuICAgICk7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHdvcmtzcGFjZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaGVhZGVyKGBXb3Jrc3BhY2U6ICR7d29ya3NwYWNlLm5hbWV9YCk7XG5cbiAgICBjb25zdCBzdGF0dXNDb2xvciA9XG4gICAgICB3b3Jrc3BhY2Uuc3RhdHVzID09PSBcImFjdGl2ZVwiID8gY29sb3JzLnN1Y2Nlc3MgOiBjb2xvcnMuZXJyb3I7XG5cbiAgICBrZXlWYWx1ZSh7XG4gICAgICBJRDogY29sb3JzLmRpbSh3b3Jrc3BhY2UuaWQpLFxuICAgICAgTmFtZTogd29ya3NwYWNlLm5hbWUsXG4gICAgICBTbHVnOiB3b3Jrc3BhY2Uuc2x1ZyxcbiAgICAgIFN0YXR1czogc3RhdHVzQ29sb3Iod29ya3NwYWNlLnN0YXR1cyksXG4gICAgICBWZXJpZmljYXRpb246XG4gICAgICAgIHdvcmtzcGFjZS52ZXJpZmljYXRpb25TdGF0dXMgPT09IFwiYXBwcm92ZWRcIlxuICAgICAgICAgID8gY29sb3JzLnN1Y2Nlc3MoXCJ2ZXJpZmllZFwiKVxuICAgICAgICAgIDogY29sb3JzLndhcm5pbmcod29ya3NwYWNlLnZlcmlmaWNhdGlvblN0YXR1cyksXG4gICAgICBQaG9uZTogd29ya3NwYWNlLnBob25lTnVtYmVyIHx8IGNvbG9ycy5kaW0oXCJub3QgYXNzaWduZWRcIiksXG4gICAgICBDcmVkaXRzOiBmb3JtYXRDcmVkaXRzKHdvcmtzcGFjZS5jcmVkaXRCYWxhbmNlKSxcbiAgICAgIE1lbWJlcnM6IFN0cmluZyh3b3Jrc3BhY2UubWVtYmVyQ291bnQpLFxuICAgICAgXCJNZXNzYWdlcyBTZW50XCI6IHdvcmtzcGFjZS5tZXNzYWdlc1NlbnQudG9Mb2NhbGVTdHJpbmcoKSxcbiAgICAgIFwiTWVzc2FnZXMgRGVsaXZlcmVkXCI6IHdvcmtzcGFjZS5tZXNzYWdlc0RlbGl2ZXJlZC50b0xvY2FsZVN0cmluZygpLFxuICAgICAgXCJEZWxpdmVyeSBSYXRlXCI6XG4gICAgICAgIHdvcmtzcGFjZS5tZXNzYWdlc1NlbnQgPiAwXG4gICAgICAgICAgPyBgJHsoKHdvcmtzcGFjZS5tZXNzYWdlc0RlbGl2ZXJlZCAvIHdvcmtzcGFjZS5tZXNzYWdlc1NlbnQpICogMTAwKS50b0ZpeGVkKDEpfSVgXG4gICAgICAgICAgOiBjb2xvcnMuZGltKFwibi9hXCIpLFxuICAgICAgQ3JlYXRlZDogZm9ybWF0RGF0ZSh3b3Jrc3BhY2UuY3JlYXRlZEF0KSxcbiAgICB9KTtcbiAgfVxufVxuIl19 |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class WorkspacesList extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static flags: { | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { table, json, info, colors, isJsonMode, formatRelativeTime, formatCredits, } from "../../../lib/output.js"; | ||
| export default class WorkspacesList extends AuthenticatedCommand { | ||
| static description = "List all enterprise workspaces"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise workspaces list", | ||
| "<%= config.bin %> enterprise workspaces list --json", | ||
| ]; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| }; | ||
| async run() { | ||
| const workspaces = await apiClient.get("/api/v1/enterprise/workspaces"); | ||
| if (isJsonMode()) { | ||
| json(workspaces); | ||
| return; | ||
| } | ||
| if (workspaces.length === 0) { | ||
| info("No workspaces found"); | ||
| console.log(); | ||
| console.log(` Create one with ${colors.code("sendly enterprise workspaces create")}`); | ||
| return; | ||
| } | ||
| console.log(); | ||
| table(workspaces, [ | ||
| { header: "Name", key: "name", width: 24 }, | ||
| { | ||
| header: "ID", | ||
| key: "id", | ||
| width: 18, | ||
| formatter: (v) => colors.dim(String(v).slice(0, 16)), | ||
| }, | ||
| { | ||
| header: "Status", | ||
| key: "status", | ||
| width: 12, | ||
| formatter: (v) => v === "active" | ||
| ? colors.success("active") | ||
| : v === "suspended" | ||
| ? colors.error("suspended") | ||
| : colors.warning(String(v)), | ||
| }, | ||
| { | ||
| header: "Verification", | ||
| key: "verificationStatus", | ||
| width: 14, | ||
| formatter: (v) => v === "approved" | ||
| ? colors.success("verified") | ||
| : v === "pending" | ||
| ? colors.warning("pending") | ||
| : colors.dim(String(v)), | ||
| }, | ||
| { | ||
| header: "Credits", | ||
| key: "creditBalance", | ||
| width: 12, | ||
| formatter: (v) => formatCredits(Number(v)), | ||
| }, | ||
| { | ||
| header: "Members", | ||
| key: "memberCount", | ||
| width: 8, | ||
| }, | ||
| { | ||
| header: "Created", | ||
| key: "createdAt", | ||
| width: 12, | ||
| formatter: (v) => formatRelativeTime(String(v)), | ||
| }, | ||
| ]); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tYW5kcy9lbnRlcnByaXNlL3dvcmtzcGFjZXMvbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUNMLEtBQUssRUFDTCxJQUFJLEVBQ0osSUFBSSxFQUNKLE1BQU0sRUFDTixVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLGFBQWEsR0FDZCxNQUFNLHdCQUF3QixDQUFDO0FBYWhDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sY0FBZSxTQUFRLG9CQUFvQjtJQUM5RCxNQUFNLENBQUMsV0FBVyxHQUFHLGdDQUFnQyxDQUFDO0lBRXRELE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsOENBQThDO1FBQzlDLHFEQUFxRDtLQUN0RCxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztLQUNsQyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLFVBQVUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQ3BDLCtCQUErQixDQUNoQyxDQUFDO1FBRUYsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUM1QixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUNULHFCQUFxQixNQUFNLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxDQUFDLEVBQUUsQ0FDMUUsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUNoQixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQzFDO2dCQUNFLE1BQU0sRUFBRSxJQUFJO2dCQUNaLEdBQUcsRUFBRSxJQUFJO2dCQUNULEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNyRDtZQUNEO2dCQUNFLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixHQUFHLEVBQUUsUUFBUTtnQkFDYixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNmLENBQUMsS0FBSyxRQUFRO29CQUNaLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztvQkFDMUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxXQUFXO3dCQUNqQixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7d0JBQzNCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsQztZQUNEO2dCQUNFLE1BQU0sRUFBRSxjQUFjO2dCQUN0QixHQUFHLEVBQUUsb0JBQW9CO2dCQUN6QixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNmLENBQUMsS0FBSyxVQUFVO29CQUNkLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztvQkFDNUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTO3dCQUNmLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQzt3QkFDM0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlCO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLEdBQUcsRUFBRSxlQUFlO2dCQUNwQixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0M7WUFDRDtnQkFDRSxNQUFNLEVBQUUsU0FBUztnQkFDakIsR0FBRyxFQUFFLGFBQWE7Z0JBQ2xCLEtBQUssRUFBRSxDQUFDO2FBQ1Q7WUFDRDtnQkFDRSxNQUFNLEVBQUUsU0FBUztnQkFDakIsR0FBRyxFQUFFLFdBQVc7Z0JBQ2hCLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hEO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAgdGFibGUsXG4gIGpzb24sXG4gIGluZm8sXG4gIGNvbG9ycyxcbiAgaXNKc29uTW9kZSxcbiAgZm9ybWF0UmVsYXRpdmVUaW1lLFxuICBmb3JtYXRDcmVkaXRzLFxufSBmcm9tIFwiLi4vLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5pbnRlcmZhY2UgV29ya3NwYWNlIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBzbHVnOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBjcmVkaXRCYWxhbmNlOiBudW1iZXI7XG4gIHZlcmlmaWNhdGlvblN0YXR1czogc3RyaW5nO1xuICBtZW1iZXJDb3VudDogbnVtYmVyO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV29ya3NwYWNlc0xpc3QgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiTGlzdCBhbGwgZW50ZXJwcmlzZSB3b3Jrc3BhY2VzXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSB3b3Jrc3BhY2VzIGxpc3RcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2Ugd29ya3NwYWNlcyBsaXN0IC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHdvcmtzcGFjZXMgPSBhd2FpdCBhcGlDbGllbnQuZ2V0PFdvcmtzcGFjZVtdPihcbiAgICAgIFwiL2FwaS92MS9lbnRlcnByaXNlL3dvcmtzcGFjZXNcIixcbiAgICApO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbih3b3Jrc3BhY2VzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAod29ya3NwYWNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8oXCJObyB3b3Jrc3BhY2VzIGZvdW5kXCIpO1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgICBDcmVhdGUgb25lIHdpdGggJHtjb2xvcnMuY29kZShcInNlbmRseSBlbnRlcnByaXNlIHdvcmtzcGFjZXMgY3JlYXRlXCIpfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgdGFibGUod29ya3NwYWNlcywgW1xuICAgICAgeyBoZWFkZXI6IFwiTmFtZVwiLCBrZXk6IFwibmFtZVwiLCB3aWR0aDogMjQgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIklEXCIsXG4gICAgICAgIGtleTogXCJpZFwiLFxuICAgICAgICB3aWR0aDogMTgsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IGNvbG9ycy5kaW0oU3RyaW5nKHYpLnNsaWNlKDAsIDE2KSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiU3RhdHVzXCIsXG4gICAgICAgIGtleTogXCJzdGF0dXNcIixcbiAgICAgICAgd2lkdGg6IDEyLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PlxuICAgICAgICAgIHYgPT09IFwiYWN0aXZlXCJcbiAgICAgICAgICAgID8gY29sb3JzLnN1Y2Nlc3MoXCJhY3RpdmVcIilcbiAgICAgICAgICAgIDogdiA9PT0gXCJzdXNwZW5kZWRcIlxuICAgICAgICAgICAgICA/IGNvbG9ycy5lcnJvcihcInN1c3BlbmRlZFwiKVxuICAgICAgICAgICAgICA6IGNvbG9ycy53YXJuaW5nKFN0cmluZyh2KSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiVmVyaWZpY2F0aW9uXCIsXG4gICAgICAgIGtleTogXCJ2ZXJpZmljYXRpb25TdGF0dXNcIixcbiAgICAgICAgd2lkdGg6IDE0LFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PlxuICAgICAgICAgIHYgPT09IFwiYXBwcm92ZWRcIlxuICAgICAgICAgICAgPyBjb2xvcnMuc3VjY2VzcyhcInZlcmlmaWVkXCIpXG4gICAgICAgICAgICA6IHYgPT09IFwicGVuZGluZ1wiXG4gICAgICAgICAgICAgID8gY29sb3JzLndhcm5pbmcoXCJwZW5kaW5nXCIpXG4gICAgICAgICAgICAgIDogY29sb3JzLmRpbShTdHJpbmcodikpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIkNyZWRpdHNcIixcbiAgICAgICAga2V5OiBcImNyZWRpdEJhbGFuY2VcIixcbiAgICAgICAgd2lkdGg6IDEyLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiBmb3JtYXRDcmVkaXRzKE51bWJlcih2KSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiTWVtYmVyc1wiLFxuICAgICAgICBrZXk6IFwibWVtYmVyQ291bnRcIixcbiAgICAgICAgd2lkdGg6IDgsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiQ3JlYXRlZFwiLFxuICAgICAgICBrZXk6IFwiY3JlYXRlZEF0XCIsXG4gICAgICAgIHdpZHRoOiAxMixcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gZm9ybWF0UmVsYXRpdmVUaW1lKFN0cmluZyh2KSksXG4gICAgICB9LFxuICAgIF0pO1xuICB9XG59XG4iXX0= |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class WorkspacesResume extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| workspaceId: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Args } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { success, json, isJsonMode, spinner } from "../../../lib/output.js"; | ||
| export default class WorkspacesResume extends AuthenticatedCommand { | ||
| static description = "Resume a suspended enterprise workspace"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise workspaces resume org_abc123", | ||
| ]; | ||
| static args = { | ||
| workspaceId: Args.string({ | ||
| description: "Workspace ID", | ||
| required: true, | ||
| }), | ||
| }; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| }; | ||
| async run() { | ||
| const { args } = await this.parse(WorkspacesResume); | ||
| const spin = spinner("Resuming workspace..."); | ||
| spin.start(); | ||
| const response = await apiClient.post(`/api/v1/enterprise/workspaces/${args.workspaceId}/resume`); | ||
| spin.succeed("Workspace resumed"); | ||
| if (isJsonMode()) { | ||
| json(response); | ||
| return; | ||
| } | ||
| success("Workspace resumed", { | ||
| ID: args.workspaceId, | ||
| Status: "active", | ||
| }); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2VudGVycHJpc2Uvd29ya3NwYWNlcy9yZXN1bWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBUTVFLE1BQU0sQ0FBQyxPQUFPLE9BQU8sZ0JBQWlCLFNBQVEsb0JBQW9CO0lBQ2hFLE1BQU0sQ0FBQyxXQUFXLEdBQUcseUNBQXlDLENBQUM7SUFFL0QsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQiwyREFBMkQ7S0FDNUQsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN2QixXQUFXLEVBQUUsY0FBYztZQUMzQixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztLQUNsQyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFcEQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWIsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUNuQyxpQ0FBaUMsSUFBSSxDQUFDLFdBQVcsU0FBUyxDQUMzRCxDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWxDLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyxtQkFBbUIsRUFBRTtZQUMzQixFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDcEIsTUFBTSxFQUFFLFFBQVE7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHsgc3VjY2VzcywganNvbiwgaXNKc29uTW9kZSwgc3Bpbm5lciB9IGZyb20gXCIuLi8uLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBSZXN1bWVSZXNwb25zZSB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIHdvcmtzcGFjZUlkOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXb3Jrc3BhY2VzUmVzdW1lIGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIlJlc3VtZSBhIHN1c3BlbmRlZCBlbnRlcnByaXNlIHdvcmtzcGFjZVwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2Ugd29ya3NwYWNlcyByZXN1bWUgb3JnX2FiYzEyM1wiLFxuICBdO1xuXG4gIHN0YXRpYyBhcmdzID0ge1xuICAgIHdvcmtzcGFjZUlkOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJXb3Jrc3BhY2UgSURcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICB9O1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgYXJncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShXb3Jrc3BhY2VzUmVzdW1lKTtcblxuICAgIGNvbnN0IHNwaW4gPSBzcGlubmVyKFwiUmVzdW1pbmcgd29ya3NwYWNlLi4uXCIpO1xuICAgIHNwaW4uc3RhcnQoKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8UmVzdW1lUmVzcG9uc2U+KFxuICAgICAgYC9hcGkvdjEvZW50ZXJwcmlzZS93b3Jrc3BhY2VzLyR7YXJncy53b3Jrc3BhY2VJZH0vcmVzdW1lYCxcbiAgICApO1xuXG4gICAgc3Bpbi5zdWNjZWVkKFwiV29ya3NwYWNlIHJlc3VtZWRcIik7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdWNjZXNzKFwiV29ya3NwYWNlIHJlc3VtZWRcIiwge1xuICAgICAgSUQ6IGFyZ3Mud29ya3NwYWNlSWQsXG4gICAgICBTdGF0dXM6IFwiYWN0aXZlXCIsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ== |
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| export default class WorkspacesSuspend extends AuthenticatedCommand { | ||
| static description: string; | ||
| static examples: string[]; | ||
| static args: { | ||
| workspaceId: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>; | ||
| }; | ||
| static flags: { | ||
| reason: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; | ||
| yes: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; | ||
| }; | ||
| run(): Promise<void>; | ||
| } |
| import { Args, Flags } from "@oclif/core"; | ||
| import { AuthenticatedCommand } from "../../../lib/base-command.js"; | ||
| import { apiClient } from "../../../lib/api-client.js"; | ||
| import { success, error, json, isJsonMode, spinner } from "../../../lib/output.js"; | ||
| import inquirer from "inquirer"; | ||
| export default class WorkspacesSuspend extends AuthenticatedCommand { | ||
| static description = "Suspend an enterprise workspace"; | ||
| static examples = [ | ||
| "<%= config.bin %> enterprise workspaces suspend org_abc123", | ||
| '<%= config.bin %> enterprise workspaces suspend org_abc123 --reason "Policy violation"', | ||
| ]; | ||
| static args = { | ||
| workspaceId: Args.string({ | ||
| description: "Workspace ID", | ||
| required: true, | ||
| }), | ||
| }; | ||
| static flags = { | ||
| ...AuthenticatedCommand.baseFlags, | ||
| reason: Flags.string({ | ||
| char: "r", | ||
| description: "Reason for suspension", | ||
| }), | ||
| yes: Flags.boolean({ | ||
| char: "y", | ||
| description: "Skip confirmation prompt", | ||
| default: false, | ||
| }), | ||
| }; | ||
| async run() { | ||
| const { args, flags } = await this.parse(WorkspacesSuspend); | ||
| if (!flags.yes && !isJsonMode()) { | ||
| const { confirm } = await inquirer.prompt([ | ||
| { | ||
| type: "confirm", | ||
| name: "confirm", | ||
| message: `Suspend workspace ${args.workspaceId}? This will halt all messaging.`, | ||
| default: false, | ||
| }, | ||
| ]); | ||
| if (!confirm) { | ||
| error("Suspension cancelled"); | ||
| return; | ||
| } | ||
| } | ||
| const spin = spinner("Suspending workspace..."); | ||
| spin.start(); | ||
| const response = await apiClient.post(`/api/v1/enterprise/workspaces/${args.workspaceId}/suspend`, flags.reason ? { reason: flags.reason } : undefined); | ||
| spin.succeed("Workspace suspended"); | ||
| if (isJsonMode()) { | ||
| json(response); | ||
| return; | ||
| } | ||
| success("Workspace suspended", { | ||
| ID: args.workspaceId, | ||
| Status: "suspended", | ||
| }); | ||
| } | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VzcGVuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tYW5kcy9lbnRlcnByaXNlL3dvcmtzcGFjZXMvc3VzcGVuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRixPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFRaEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxpQkFBa0IsU0FBUSxvQkFBb0I7SUFDakUsTUFBTSxDQUFDLFdBQVcsR0FBRyxpQ0FBaUMsQ0FBQztJQUV2RCxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDREQUE0RDtRQUM1RCx3RkFBd0Y7S0FDekYsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLEdBQUc7UUFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN2QixXQUFXLEVBQUUsY0FBYztZQUMzQixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztRQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNuQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSx1QkFBdUI7U0FDckMsQ0FBQztRQUNGLEdBQUcsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2pCLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUFFLDBCQUEwQjtZQUN2QyxPQUFPLEVBQUUsS0FBSztTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTVELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUN4QztvQkFDRSxJQUFJLEVBQUUsU0FBUztvQkFDZixJQUFJLEVBQUUsU0FBUztvQkFDZixPQUFPLEVBQUUscUJBQXFCLElBQUksQ0FBQyxXQUFXLGlDQUFpQztvQkFDL0UsT0FBTyxFQUFFLEtBQUs7aUJBQ2Y7YUFDRixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7Z0JBQzlCLE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FDbkMsaUNBQWlDLElBQUksQ0FBQyxXQUFXLFVBQVUsRUFDM0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQ3BELENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFcEMsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNmLE9BQU87UUFDVCxDQUFDO1FBRUQsT0FBTyxDQUFDLHFCQUFxQixFQUFFO1lBQzdCLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVztZQUNwQixNQUFNLEVBQUUsV0FBVztTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJncywgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCB9IGZyb20gXCIuLi8uLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHsgc3VjY2VzcywgZXJyb3IsIGpzb24sIGlzSnNvbk1vZGUsIHNwaW5uZXIgfSBmcm9tIFwiLi4vLi4vLi4vbGliL291dHB1dC5qc1wiO1xuaW1wb3J0IGlucXVpcmVyIGZyb20gXCJpbnF1aXJlclwiO1xuXG5pbnRlcmZhY2UgU3VzcGVuZFJlc3BvbnNlIHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgd29ya3NwYWNlSWQ6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdvcmtzcGFjZXNTdXNwZW5kIGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIlN1c3BlbmQgYW4gZW50ZXJwcmlzZSB3b3Jrc3BhY2VcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIHdvcmtzcGFjZXMgc3VzcGVuZCBvcmdfYWJjMTIzXCIsXG4gICAgJzwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2Ugd29ya3NwYWNlcyBzdXNwZW5kIG9yZ19hYmMxMjMgLS1yZWFzb24gXCJQb2xpY3kgdmlvbGF0aW9uXCInLFxuICBdO1xuXG4gIHN0YXRpYyBhcmdzID0ge1xuICAgIHdvcmtzcGFjZUlkOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJXb3Jrc3BhY2UgSURcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICB9O1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgcmVhc29uOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJyXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJSZWFzb24gZm9yIHN1c3BlbnNpb25cIixcbiAgICB9KSxcbiAgICB5ZXM6IEZsYWdzLmJvb2xlYW4oe1xuICAgICAgY2hhcjogXCJ5XCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJTa2lwIGNvbmZpcm1hdGlvbiBwcm9tcHRcIixcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGFyZ3MsIGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKFdvcmtzcGFjZXNTdXNwZW5kKTtcblxuICAgIGlmICghZmxhZ3MueWVzICYmICFpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGNvbnN0IHsgY29uZmlybSB9ID0gYXdhaXQgaW5xdWlyZXIucHJvbXB0KFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiY29uZmlybVwiLFxuICAgICAgICAgIG5hbWU6IFwiY29uZmlybVwiLFxuICAgICAgICAgIG1lc3NhZ2U6IGBTdXNwZW5kIHdvcmtzcGFjZSAke2FyZ3Mud29ya3NwYWNlSWR9PyBUaGlzIHdpbGwgaGFsdCBhbGwgbWVzc2FnaW5nLmAsXG4gICAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICBdKTtcblxuICAgICAgaWYgKCFjb25maXJtKSB7XG4gICAgICAgIGVycm9yKFwiU3VzcGVuc2lvbiBjYW5jZWxsZWRcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzcGluID0gc3Bpbm5lcihcIlN1c3BlbmRpbmcgd29ya3NwYWNlLi4uXCIpO1xuICAgIHNwaW4uc3RhcnQoKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8U3VzcGVuZFJlc3BvbnNlPihcbiAgICAgIGAvYXBpL3YxL2VudGVycHJpc2Uvd29ya3NwYWNlcy8ke2FyZ3Mud29ya3NwYWNlSWR9L3N1c3BlbmRgLFxuICAgICAgZmxhZ3MucmVhc29uID8geyByZWFzb246IGZsYWdzLnJlYXNvbiB9IDogdW5kZWZpbmVkLFxuICAgICk7XG5cbiAgICBzcGluLnN1Y2NlZWQoXCJXb3Jrc3BhY2Ugc3VzcGVuZGVkXCIpO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3VjY2VzcyhcIldvcmtzcGFjZSBzdXNwZW5kZWRcIiwge1xuICAgICAgSUQ6IGFyZ3Mud29ya3NwYWNlSWQsXG4gICAgICBTdGF0dXM6IFwic3VzcGVuZGVkXCIsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ== |
@@ -32,3 +32,3 @@ import { AuthenticatedCommand } from "../../lib/base-command.js"; | ||
| // Show approximate message capacity | ||
| const domesticMessages = Math.floor(availableCredits / 1); | ||
| const domesticMessages = Math.floor(availableCredits / 2); | ||
| const internationalMessages = Math.floor(availableCredits / 2); | ||
@@ -40,2 +40,2 @@ console.log(colors.dim("Estimated capacity:")); | ||
| } | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFsYW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9jcmVkaXRzL2JhbGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFFTCxJQUFJLEVBQ0osUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUFlN0IsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFlLFNBQVEsb0JBQW9CO0lBQzlELE1BQU0sQ0FBQyxXQUFXLEdBQUcsMkJBQTJCLENBQUM7SUFFakQsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQixtQ0FBbUM7UUFDbkMsMENBQTBDO0tBQzNDLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO0tBQ2xDLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sT0FBTyxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FDakMseUJBQXlCLENBQzFCLENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2QsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV6QixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFFbEQsUUFBUSxDQUFDO1lBQ1AsU0FBUyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDO1lBQ3pFLFFBQVEsRUFDTixRQUFRLEdBQUcsQ0FBQztnQkFDVixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDO2dCQUN4RCxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7WUFDN0IsZUFBZSxFQUFFLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxVQUFVO1NBQ3ZELENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVkLG9DQUFvQztRQUNwQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRS9ELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7UUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FDVCxLQUFLLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssZ0JBQWdCLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FDL0UsQ0FBQztRQUNGLE9BQU8sQ0FBQyxHQUFHLENBQ1QsS0FBSyxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUsscUJBQXFCLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FDeEYsQ0FBQztJQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHN1Y2Nlc3MsXG4gIGpzb24sXG4gIGtleVZhbHVlLFxuICBjb2xvcnMsXG4gIGhlYWRlcixcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIENyZWRpdHNSZXNwb25zZSB7XG4gIGJhbGFuY2U6IG51bWJlcjtcbiAgcmVzZXJ2ZWRCYWxhbmNlOiBudW1iZXI7XG4gIGF2YWlsYWJsZUJhbGFuY2U6IG51bWJlcjtcbiAgcmVjZW50VHJhbnNhY3Rpb25zPzogQXJyYXk8e1xuICAgIGlkOiBzdHJpbmc7XG4gICAgYW1vdW50OiBudW1iZXI7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIH0+O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDcmVkaXRzQmFsYW5jZSBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJDaGVjayB5b3VyIGNyZWRpdCBiYWxhbmNlXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gY3JlZGl0cyBiYWxhbmNlXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBjcmVkaXRzIGJhbGFuY2UgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY3JlZGl0cyA9IGF3YWl0IGFwaUNsaWVudC5nZXQ8Q3JlZGl0c1Jlc3BvbnNlPihcbiAgICAgIFwiL2FwaS92MS9hY2NvdW50L2NyZWRpdHNcIixcbiAgICApO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihjcmVkaXRzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBoZWFkZXIoXCJDcmVkaXQgQmFsYW5jZVwiKTtcblxuICAgIGNvbnN0IGJhbGFuY2UgPSBjcmVkaXRzLmJhbGFuY2U7XG4gICAgY29uc3QgcmVzZXJ2ZWQgPSBjcmVkaXRzLnJlc2VydmVkQmFsYW5jZTtcbiAgICBjb25zdCBhdmFpbGFibGVDcmVkaXRzID0gY3JlZGl0cy5hdmFpbGFibGVCYWxhbmNlO1xuXG4gICAga2V5VmFsdWUoe1xuICAgICAgQXZhaWxhYmxlOiBjb2xvcnMucHJpbWFyeShgJHthdmFpbGFibGVDcmVkaXRzLnRvTG9jYWxlU3RyaW5nKCl9IGNyZWRpdHNgKSxcbiAgICAgIFJlc2VydmVkOlxuICAgICAgICByZXNlcnZlZCA+IDBcbiAgICAgICAgICA/IGNvbG9ycy53YXJuaW5nKGAke3Jlc2VydmVkLnRvTG9jYWxlU3RyaW5nKCl9IGNyZWRpdHNgKVxuICAgICAgICAgIDogY29sb3JzLmRpbShcIjAgY3JlZGl0c1wiKSxcbiAgICAgIFwiVG90YWwgQmFsYW5jZVwiOiBgJHtiYWxhbmNlLnRvTG9jYWxlU3RyaW5nKCl9IGNyZWRpdHNgLFxuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coKTtcblxuICAgIC8vIFNob3cgYXBwcm94aW1hdGUgbWVzc2FnZSBjYXBhY2l0eVxuICAgIGNvbnN0IGRvbWVzdGljTWVzc2FnZXMgPSBNYXRoLmZsb29yKGF2YWlsYWJsZUNyZWRpdHMgLyAxKTtcbiAgICBjb25zdCBpbnRlcm5hdGlvbmFsTWVzc2FnZXMgPSBNYXRoLmZsb29yKGF2YWlsYWJsZUNyZWRpdHMgLyAyKTtcblxuICAgIGNvbnNvbGUubG9nKGNvbG9ycy5kaW0oXCJFc3RpbWF0ZWQgY2FwYWNpdHk6XCIpKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGAgICR7Y29sb3JzLmRpbShcIlVTL0NhbmFkYTpcIil9IH4ke2RvbWVzdGljTWVzc2FnZXMudG9Mb2NhbGVTdHJpbmcoKX0gbWVzc2FnZXNgLFxuICAgICk7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgICAke2NvbG9ycy5kaW0oXCJJbnRlcm5hdGlvbmFsOlwiKX0gfiR7aW50ZXJuYXRpb25hbE1lc3NhZ2VzLnRvTG9jYWxlU3RyaW5nKCl9IG1lc3NhZ2VzYCxcbiAgICApO1xuICB9XG59XG4iXX0= | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFsYW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9jcmVkaXRzL2JhbGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFFTCxJQUFJLEVBQ0osUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUFlN0IsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFlLFNBQVEsb0JBQW9CO0lBQzlELE1BQU0sQ0FBQyxXQUFXLEdBQUcsMkJBQTJCLENBQUM7SUFFakQsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQixtQ0FBbUM7UUFDbkMsMENBQTBDO0tBQzNDLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO0tBQ2xDLENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sT0FBTyxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FDakMseUJBQXlCLENBQzFCLENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2QsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV6QixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFFbEQsUUFBUSxDQUFDO1lBQ1AsU0FBUyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDO1lBQ3pFLFFBQVEsRUFDTixRQUFRLEdBQUcsQ0FBQztnQkFDVixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDO2dCQUN4RCxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7WUFDN0IsZUFBZSxFQUFFLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxVQUFVO1NBQ3ZELENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVkLG9DQUFvQztRQUNwQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRS9ELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7UUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FDVCxLQUFLLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssZ0JBQWdCLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FDL0UsQ0FBQztRQUNGLE9BQU8sQ0FBQyxHQUFHLENBQ1QsS0FBSyxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUsscUJBQXFCLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FDeEYsQ0FBQztJQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHN1Y2Nlc3MsXG4gIGpzb24sXG4gIGtleVZhbHVlLFxuICBjb2xvcnMsXG4gIGhlYWRlcixcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIENyZWRpdHNSZXNwb25zZSB7XG4gIGJhbGFuY2U6IG51bWJlcjtcbiAgcmVzZXJ2ZWRCYWxhbmNlOiBudW1iZXI7XG4gIGF2YWlsYWJsZUJhbGFuY2U6IG51bWJlcjtcbiAgcmVjZW50VHJhbnNhY3Rpb25zPzogQXJyYXk8e1xuICAgIGlkOiBzdHJpbmc7XG4gICAgYW1vdW50OiBudW1iZXI7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIH0+O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDcmVkaXRzQmFsYW5jZSBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJDaGVjayB5b3VyIGNyZWRpdCBiYWxhbmNlXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gY3JlZGl0cyBiYWxhbmNlXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBjcmVkaXRzIGJhbGFuY2UgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY3JlZGl0cyA9IGF3YWl0IGFwaUNsaWVudC5nZXQ8Q3JlZGl0c1Jlc3BvbnNlPihcbiAgICAgIFwiL2FwaS92MS9hY2NvdW50L2NyZWRpdHNcIixcbiAgICApO1xuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAganNvbihjcmVkaXRzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBoZWFkZXIoXCJDcmVkaXQgQmFsYW5jZVwiKTtcblxuICAgIGNvbnN0IGJhbGFuY2UgPSBjcmVkaXRzLmJhbGFuY2U7XG4gICAgY29uc3QgcmVzZXJ2ZWQgPSBjcmVkaXRzLnJlc2VydmVkQmFsYW5jZTtcbiAgICBjb25zdCBhdmFpbGFibGVDcmVkaXRzID0gY3JlZGl0cy5hdmFpbGFibGVCYWxhbmNlO1xuXG4gICAga2V5VmFsdWUoe1xuICAgICAgQXZhaWxhYmxlOiBjb2xvcnMucHJpbWFyeShgJHthdmFpbGFibGVDcmVkaXRzLnRvTG9jYWxlU3RyaW5nKCl9IGNyZWRpdHNgKSxcbiAgICAgIFJlc2VydmVkOlxuICAgICAgICByZXNlcnZlZCA+IDBcbiAgICAgICAgICA/IGNvbG9ycy53YXJuaW5nKGAke3Jlc2VydmVkLnRvTG9jYWxlU3RyaW5nKCl9IGNyZWRpdHNgKVxuICAgICAgICAgIDogY29sb3JzLmRpbShcIjAgY3JlZGl0c1wiKSxcbiAgICAgIFwiVG90YWwgQmFsYW5jZVwiOiBgJHtiYWxhbmNlLnRvTG9jYWxlU3RyaW5nKCl9IGNyZWRpdHNgLFxuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coKTtcblxuICAgIC8vIFNob3cgYXBwcm94aW1hdGUgbWVzc2FnZSBjYXBhY2l0eVxuICAgIGNvbnN0IGRvbWVzdGljTWVzc2FnZXMgPSBNYXRoLmZsb29yKGF2YWlsYWJsZUNyZWRpdHMgLyAyKTtcbiAgICBjb25zdCBpbnRlcm5hdGlvbmFsTWVzc2FnZXMgPSBNYXRoLmZsb29yKGF2YWlsYWJsZUNyZWRpdHMgLyAyKTtcblxuICAgIGNvbnNvbGUubG9nKGNvbG9ycy5kaW0oXCJFc3RpbWF0ZWQgY2FwYWNpdHk6XCIpKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGAgICR7Y29sb3JzLmRpbShcIlVTL0NhbmFkYTpcIil9IH4ke2RvbWVzdGljTWVzc2FnZXMudG9Mb2NhbGVTdHJpbmcoKX0gbWVzc2FnZXNgLFxuICAgICk7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgICAke2NvbG9ycy5kaW0oXCJJbnRlcm5hdGlvbmFsOlwiKX0gfiR7aW50ZXJuYXRpb25hbE1lc3NhZ2VzLnRvTG9jYWxlU3RyaW5nKCl9IG1lc3NhZ2VzYCxcbiAgICApO1xuICB9XG59XG4iXX0= |
@@ -63,2 +63,3 @@ /** | ||
| patch<T>(path: string, body?: Record<string, unknown>, requireAuth?: boolean): Promise<T>; | ||
| put<T>(path: string, body?: Record<string, unknown>, requireAuth?: boolean): Promise<T>; | ||
| delete<T>(path: string, requireAuth?: boolean): Promise<T>; | ||
@@ -65,0 +66,0 @@ /** |
@@ -6,3 +6,3 @@ /** | ||
| import { createRequire } from "node:module"; | ||
| import { getAuthToken, getStoredAccessToken, getConfigValue, getEffectiveValue, setAuthTokens } from "./config.js"; | ||
| import { getAuthToken, getStoredAccessToken, getConfigValue, getEffectiveValue, setAuthTokens, } from "./config.js"; | ||
| // Read version from package.json | ||
@@ -142,3 +142,3 @@ const require = createRequire(import.meta.url); | ||
| return false; | ||
| const data = await response.json(); | ||
| const data = (await response.json()); | ||
| setAuthTokens(data.accessToken, data.refreshToken, data.expiresIn, data.userId, data.email); | ||
@@ -267,2 +267,5 @@ return true; | ||
| } | ||
| async put(path, body, requireAuth = true) { | ||
| return this.request("PUT", path, { body, requireAuth }); | ||
| } | ||
| async delete(path, requireAuth = true) { | ||
@@ -340,2 +343,2 @@ return this.request("DELETE", path, { requireAuth }); | ||
| export const apiClient = new ApiClient(); | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuSCxpQ0FBaUM7QUFDakMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0MsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBd0IsQ0FBQztBQUV6RTs7R0FFRztBQUNILFNBQVMsS0FBSyxDQUFDLEVBQVU7SUFDdkIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsS0FBYztJQUN0QyxpQkFBaUI7SUFDakIsSUFBSSxLQUFLLFlBQVksU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0Qsb0NBQW9DO0lBQ3BDLElBQUksS0FBSyxZQUFZLFFBQVEsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQWlCRCxNQUFNLE9BQU8sUUFBUyxTQUFRLEtBQUs7SUFJeEI7SUFFQTtJQUNBO0lBTkYsSUFBSSxDQUFVO0lBRXJC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RUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDL0QsTUFBTSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLFNBQVMsSUFBSSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQVBJIENsaWVudCBmb3IgU2VuZGx5IENMSVxuICogSGFuZGxlcyBhbGwgSFRUUCByZXF1ZXN0cyB0byB0aGUgU2VuZGx5IEFQSVxuICovXG5cbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCB7IGdldEF1dGhUb2tlbiwgZ2V0U3RvcmVkQWNjZXNzVG9rZW4sIGdldENvbmZpZ1ZhbHVlLCBnZXRFZmZlY3RpdmVWYWx1ZSwgc2V0QXV0aFRva2VucyB9IGZyb20gXCIuL2NvbmZpZy5qc1wiO1xuXG4vLyBSZWFkIHZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb25cbmNvbnN0IHJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG5jb25zdCB7IHZlcnNpb24gfSA9IHJlcXVpcmUoXCIuLi8uLi9wYWNrYWdlLmpzb25cIikgYXMgeyB2ZXJzaW9uOiBzdHJpbmcgfTtcblxuLyoqXG4gKiBTbGVlcCBmb3IgYSBnaXZlbiBudW1iZXIgb2YgbWlsbGlzZWNvbmRzXG4gKi9cbmZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYW4gZXJyb3IgaXMgcmV0cnlhYmxlIChuZXR3b3JrIGVycm9ycyBvciA1eHggc2VydmVyIGVycm9ycylcbiAqL1xuZnVuY3Rpb24gaXNSZXRyeWFibGVFcnJvcihlcnJvcjogdW5rbm93bik6IGJvb2xlYW4ge1xuICAvLyBOZXR3b3JrIGVycm9yc1xuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IgJiYgZXJyb3IubWVzc2FnZS5pbmNsdWRlcyhcImZldGNoXCIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gU2VydmVyIGVycm9ycyAoNXh4KSBhcmUgcmV0cnlhYmxlXG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEFwaUVycm9yICYmIGVycm9yLnN0YXR1c0NvZGUgPj0gNTAwKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVJlc3BvbnNlPFQ+IHtcbiAgZGF0YT86IFQ7XG4gIGVycm9yPzoge1xuICAgIGNvZGU6IHN0cmluZztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgZGV0YWlscz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJhdGVMaW1pdEluZm8ge1xuICBsaW1pdDogbnVtYmVyO1xuICByZW1haW5pbmc6IG51bWJlcjtcbiAgcmVzZXQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIEFwaUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBwdWJsaWMgaGludD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29kZTogc3RyaW5nLFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBwdWJsaWMgc3RhdHVzQ29kZTogbnVtYmVyLFxuICAgIHB1YmxpYyBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgaGludD86IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gXCJBcGlFcnJvclwiO1xuICAgIHRoaXMuaGludCA9IGhpbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uRXJyb3IgZXh0ZW5kcyBBcGlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyA9IFwiQXV0aGVudGljYXRpb24gZmFpbGVkXCIsXG4gICAgaGludDogc3RyaW5nID0gXCJSdW4gJ3NlbmRseSBsb2dpbicgdG8gYXV0aGVudGljYXRlLCBvciBjaGVjayB5b3VyIEFQSSBrZXkgd2l0aCAnc2VuZGx5IGNvbmZpZyBzaG93J1wiLFxuICApIHtcbiAgICBzdXBlcihcImF1dGhlbnRpY2F0aW9uX2Vycm9yXCIsIG1lc3NhZ2UsIDQwMSwgdW5kZWZpbmVkLCBoaW50KTtcbiAgICB0aGlzLm5hbWUgPSBcIkF1dGhlbnRpY2F0aW9uRXJyb3JcIjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXBpS2V5UmVxdWlyZWRFcnJvciBleHRlbmRzIEFwaUVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgbWVzc2FnZTogc3RyaW5nID0gXCJBUEkga2V5IHJlcXVpcmVkIGZvciB0aGlzIG9wZXJhdGlvbi5cIixcbiAgICBwdWJsaWMgaGludDogc3RyaW5nID0gXCJTZXQgU0VORExZX0FQSV9LRVkgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgY3JlYXRlIGEga2V5IHdpdGg6IHNlbmRseSBrZXlzIGNyZWF0ZSAtLXR5cGUgdGVzdFwiLFxuICApIHtcbiAgICBzdXBlcihcImFwaV9rZXlfcmVxdWlyZWRcIiwgbWVzc2FnZSwgNDAxKTtcbiAgICB0aGlzLm5hbWUgPSBcIkFwaUtleVJlcXVpcmVkRXJyb3JcIjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmF0ZUxpbWl0RXJyb3IgZXh0ZW5kcyBBcGlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZXRyeUFmdGVyOiBudW1iZXIsXG4gICAgbWVzc2FnZTogc3RyaW5nID0gXCJSYXRlIGxpbWl0IGV4Y2VlZGVkXCIsXG4gICkge1xuICAgIGNvbnN0IGhpbnQgPSBgV2FpdCAke3JldHJ5QWZ0ZXJ9IHNlY29uZHMgYmVmb3JlIHJldHJ5aW5nLCBvciB1cGdyYWRlIHlvdXIgcGxhbiBmb3IgaGlnaGVyIGxpbWl0c2A7XG4gICAgc3VwZXIoXCJyYXRlX2xpbWl0X2V4Y2VlZGVkXCIsIG1lc3NhZ2UsIDQyOSwgdW5kZWZpbmVkLCBoaW50KTtcbiAgICB0aGlzLm5hbWUgPSBcIlJhdGVMaW1pdEVycm9yXCI7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluc3VmZmljaWVudENyZWRpdHNFcnJvciBleHRlbmRzIEFwaUVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gXCJJbnN1ZmZpY2llbnQgY3JlZGl0c1wiKSB7XG4gICAgY29uc3QgaGludCA9XG4gICAgICBcIkNoZWNrIHlvdXIgYmFsYW5jZSB3aXRoICdzZW5kbHkgY3JlZGl0cycsIG9yIGFkZCBjcmVkaXRzIGF0IGh0dHBzOi8vc2VuZGx5LmxpdmUvZGFzaGJvYXJkL2JpbGxpbmdcIjtcbiAgICBzdXBlcihcImluc3VmZmljaWVudF9jcmVkaXRzXCIsIG1lc3NhZ2UsIDQwMiwgdW5kZWZpbmVkLCBoaW50KTtcbiAgICB0aGlzLm5hbWUgPSBcIkluc3VmZmljaWVudENyZWRpdHNFcnJvclwiO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb3RGb3VuZEVycm9yIGV4dGVuZHMgQXBpRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcgPSBcIlJlc291cmNlIG5vdCBmb3VuZFwiLFxuICAgIGhpbnQ6IHN0cmluZyA9IFwiVmVyaWZ5IHRoZSBJRCBpcyBjb3JyZWN0LCBvciB1c2UgYSBsaXN0IGNvbW1hbmQgdG8gc2VlIGF2YWlsYWJsZSByZXNvdXJjZXNcIixcbiAgKSB7XG4gICAgc3VwZXIoXCJub3RfZm91bmRcIiwgbWVzc2FnZSwgNDA0LCB1bmRlZmluZWQsIGhpbnQpO1xuICAgIHRoaXMubmFtZSA9IFwiTm90Rm91bmRFcnJvclwiO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBBcGlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyA9IFwiVmFsaWRhdGlvbiBmYWlsZWRcIixcbiAgICBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICkge1xuICAgIGNvbnN0IGhpbnQgPSBcIkNoZWNrIHRoZSBjb21tYW5kIGhlbHAgd2l0aCAtLWhlbHAgZm9yIHZhbGlkIG9wdGlvbnMgYW5kIGZvcm1hdHNcIjtcbiAgICBzdXBlcihcInZhbGlkYXRpb25fZXJyb3JcIiwgbWVzc2FnZSwgNDAwLCBkZXRhaWxzLCBoaW50KTtcbiAgICB0aGlzLm5hbWUgPSBcIlZhbGlkYXRpb25FcnJvclwiO1xuICB9XG59XG5cbmNsYXNzIEFwaUNsaWVudCB7XG4gIHByaXZhdGUgcmF0ZUxpbWl0SW5mbz86IFJhdGVMaW1pdEluZm87XG4gIHByaXZhdGUgcmVmcmVzaGluZzogUHJvbWlzZTxib29sZWFuPiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgZ2V0QmFzZVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRDb25maWdWYWx1ZShcImJhc2VVcmxcIikgfHwgXCJodHRwczovL3NlbmRseS5saXZlXCI7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGVuc3VyZUF1dGgoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBsZXQgdG9rZW4gPSBnZXRBdXRoVG9rZW4oKTtcbiAgICBpZiAodG9rZW4pIHJldHVybiB0b2tlbjtcblxuICAgIGNvbnN0IHN0b3JlZCA9IGdldFN0b3JlZEFjY2Vzc1Rva2VuKCk7XG4gICAgaWYgKHN0b3JlZD8uc3RhcnRzV2l0aChcImNsaV9cIikpIHtcbiAgICAgIGNvbnN0IHJlZnJlc2hlZCA9IGF3YWl0IHRoaXMucmVmcmVzaFRva2VucygpO1xuICAgICAgaWYgKHJlZnJlc2hlZCkge1xuICAgICAgICB0b2tlbiA9IGdldEF1dGhUb2tlbigpO1xuICAgICAgICBpZiAodG9rZW4pIHJldHVybiB0b2tlbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgQXV0aGVudGljYXRpb25FcnJvcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRIZWFkZXJzKHJlcXVpcmVBdXRoOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICAgIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICBcIlVzZXItQWdlbnRcIjogYEBzZW5kbHkvY2xpLyR7dmVyc2lvbn1gLFxuICAgIH07XG5cbiAgICBpZiAocmVxdWlyZUF1dGgpIHtcbiAgICAgIGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEJlYXJlciAke2F3YWl0IHRoaXMuZW5zdXJlQXV0aCgpfWA7XG4gICAgfVxuXG4gICAgY29uc3Qgb3JnSWQgPSBnZXRFZmZlY3RpdmVWYWx1ZShcImN1cnJlbnRPcmdJZFwiKTtcbiAgICBpZiAob3JnSWQpIHtcbiAgICAgIGhlYWRlcnNbXCJYLU9yZ2FuaXphdGlvbi1JZFwiXSA9IG9yZ0lkO1xuICAgIH1cblxuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWZyZXNoVG9rZW5zKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLnJlZnJlc2hpbmcpIHJldHVybiB0aGlzLnJlZnJlc2hpbmc7XG5cbiAgICB0aGlzLnJlZnJlc2hpbmcgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmVkID0gZ2V0U3RvcmVkQWNjZXNzVG9rZW4oKTtcbiAgICAgIGlmICghc3RvcmVkKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7dGhpcy5nZXRCYXNlVXJsKCl9L2FwaS9jbGkvYXV0aC9yZWZyZXNoYCwge1xuICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICBcIlVzZXItQWdlbnRcIjogYEBzZW5kbHkvY2xpLyR7dmVyc2lvbn1gLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBhY2Nlc3NUb2tlbjogc3RvcmVkIH0pLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKSBhcyB7XG4gICAgICAgICAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgICAgICAgICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgICAgICAgICBleHBpcmVzSW46IG51bWJlcjtcbiAgICAgICAgICB1c2VySWQ6IHN0cmluZztcbiAgICAgICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNldEF1dGhUb2tlbnMoXG4gICAgICAgICAgZGF0YS5hY2Nlc3NUb2tlbixcbiAgICAgICAgICBkYXRhLnJlZnJlc2hUb2tlbixcbiAgICAgICAgICBkYXRhLmV4cGlyZXNJbixcbiAgICAgICAgICBkYXRhLnVzZXJJZCxcbiAgICAgICAgICBkYXRhLmVtYWlsLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9KSgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJlZnJlc2hpbmc7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMucmVmcmVzaGluZyA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVxdWVzdDxUPihcbiAgICBtZXRob2Q6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgYm9keT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgcXVlcnk/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkPjtcbiAgICAgIHJlcXVpcmVBdXRoPzogYm9vbGVhbjtcbiAgICB9ID0ge30sXG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IHsgYm9keSwgcXVlcnksIHJlcXVpcmVBdXRoID0gdHJ1ZSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBtYXhSZXRyaWVzID0gZ2V0RWZmZWN0aXZlVmFsdWUoXCJtYXhSZXRyaWVzXCIpO1xuICAgIGNvbnN0IHRpbWVvdXQgPSBnZXRFZmZlY3RpdmVWYWx1ZShcInRpbWVvdXRcIik7XG5cbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGAke3RoaXMuZ2V0QmFzZVVybCgpfSR7cGF0aH1gKTtcbiAgICBpZiAocXVlcnkpIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHF1ZXJ5KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIFN0cmluZyh2YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBsZXQgbGFzdEVycm9yOiBFcnJvciB8IHVuZGVmaW5lZDtcbiAgICBsZXQgZGlkUmVmcmVzaCA9IGZhbHNlO1xuXG4gICAgZm9yIChsZXQgYXR0ZW1wdCA9IDA7IGF0dGVtcHQgPD0gbWF4UmV0cmllczsgYXR0ZW1wdCsrKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSwgdGltZW91dCk7XG5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwudG9TdHJpbmcoKSwge1xuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBoZWFkZXJzOiBhd2FpdCB0aGlzLmdldEhlYWRlcnMocmVxdWlyZUF1dGgpLFxuICAgICAgICAgIGJvZHk6IGJvZHkgPyBKU09OLnN0cmluZ2lmeShib2R5KSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICB9KTtcblxuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVJhdGVMaW1pdEluZm8ocmVzcG9uc2UuaGVhZGVycyk7XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKS5jYXRjaCgoKSA9PiAoe30pKTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDEgJiYgcmVxdWlyZUF1dGggJiYgIWRpZFJlZnJlc2gpIHtcbiAgICAgICAgICBkaWRSZWZyZXNoID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCByZWZyZXNoZWQgPSBhd2FpdCB0aGlzLnJlZnJlc2hUb2tlbnMoKTtcbiAgICAgICAgICBpZiAocmVmcmVzaGVkKSB7XG4gICAgICAgICAgICBhdHRlbXB0LS07XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihyZXNwb25zZS5zdGF0dXMsIGRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGEgYXMgVDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxhc3RFcnJvciA9IGVycm9yIGFzIEVycm9yO1xuXG4gICAgICAgIGlmICghaXNSZXRyeWFibGVFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhdHRlbXB0ID09PSBtYXhSZXRyaWVzKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBiYWNrb2ZmTXMgPSBNYXRoLm1pbigxMDAwICogTWF0aC5wb3coMiwgYXR0ZW1wdCksIDEwMDAwKTtcbiAgICAgICAgYXdhaXQgc2xlZXAoYmFja29mZk1zKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBsYXN0RXJyb3IgfHwgbmV3IEVycm9yKFwiUmVxdWVzdCBmYWlsZWRcIik7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVJhdGVMaW1pdEluZm8oaGVhZGVyczogSGVhZGVycyk6IHZvaWQge1xuICAgIGNvbnN0IGxpbWl0ID0gaGVhZGVycy5nZXQoXCJYLVJhdGVMaW1pdC1MaW1pdFwiKTtcbiAgICBjb25zdCByZW1haW5pbmcgPSBoZWFkZXJzLmdldChcIlgtUmF0ZUxpbWl0LVJlbWFpbmluZ1wiKTtcbiAgICBjb25zdCByZXNldCA9IGhlYWRlcnMuZ2V0KFwiWC1SYXRlTGltaXQtUmVzZXRcIik7XG5cbiAgICBpZiAobGltaXQgJiYgcmVtYWluaW5nICYmIHJlc2V0KSB7XG4gICAgICB0aGlzLnJhdGVMaW1pdEluZm8gPSB7XG4gICAgICAgIGxpbWl0OiBwYXJzZUludChsaW1pdCwgMTApLFxuICAgICAgICByZW1haW5pbmc6IHBhcnNlSW50KHJlbWFpbmluZywgMTApLFxuICAgICAgICByZXNldDogcGFyc2VJbnQocmVzZXQsIDEwKSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihzdGF0dXNDb2RlOiBudW1iZXIsIGRhdGE6IGFueSk6IG5ldmVyIHtcbiAgICBjb25zdCBlcnJvciA9IGRhdGE/LmVycm9yIHx8IFwidW5rbm93bl9lcnJvclwiO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhPy5tZXNzYWdlIHx8IGBIVFRQICR7c3RhdHVzQ29kZX1gO1xuICAgIGNvbnN0IGRldGFpbHMgPSBkYXRhPy5kZXRhaWxzO1xuXG4gICAgc3dpdGNoIChzdGF0dXNDb2RlKSB7XG4gICAgICBjYXNlIDQwMTpcbiAgICAgIGNhc2UgNDAzOlxuICAgICAgICAvLyBEZXRlY3QgaWYgdGhpcyBpcyBhbiBBUEkga2V5IHJlcXVpcmVkIGVycm9yIHZzIGdlbmVyYWwgYXV0aCBlcnJvclxuICAgICAgICBpZiAoXG4gICAgICAgICAgZXJyb3IgPT09IFwiaW52YWxpZF9hcGlfa2V5XCIgfHxcbiAgICAgICAgICBlcnJvciA9PT0gXCJhcGlfa2V5X3JlcXVpcmVkXCIgfHxcbiAgICAgICAgICBtZXNzYWdlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiYXBpIGtleVwiKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgQXBpS2V5UmVxdWlyZWRFcnJvcihcbiAgICAgICAgICAgIFwiQVBJIGtleSByZXF1aXJlZCBmb3Igc2VuZGluZyBtZXNzYWdlc1wiLFxuICAgICAgICAgICAgXCJTZXQgU0VORExZX0FQSV9LRVkgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgY3JlYXRlIGEga2V5IHdpdGg6XFxuICBzZW5kbHkga2V5cyBjcmVhdGUgLS10eXBlIHRlc3RcIixcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKG1lc3NhZ2UpO1xuICAgICAgY2FzZSA0MDA6XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobWVzc2FnZSwgZGV0YWlscyk7XG4gICAgICBjYXNlIDQwMjpcbiAgICAgICAgdGhyb3cgbmV3IEluc3VmZmljaWVudENyZWRpdHNFcnJvcihtZXNzYWdlKTtcbiAgICAgIGNhc2UgNDA0OlxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgIGNhc2UgNDI5OlxuICAgICAgICBjb25zdCByZXRyeUFmdGVyID0gZGF0YT8ucmV0cnlBZnRlciB8fCA2MDtcbiAgICAgICAgdGhyb3cgbmV3IFJhdGVMaW1pdEVycm9yKHJldHJ5QWZ0ZXIsIG1lc3NhZ2UpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc3QgZGVmYXVsdEhpbnQgPVxuICAgICAgICAgIHN0YXR1c0NvZGUgPj0gNTAwXG4gICAgICAgICAgICA/IFwiVGhpcyBpcyBhIHNlcnZlciBlcnJvci4gVHJ5IGFnYWluIGxhdGVyIG9yIGNoZWNrIGh0dHBzOi8vc3RhdHVzLnNlbmRseS5saXZlXCJcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICB0aHJvdyBuZXcgQXBpRXJyb3IoZXJyb3IsIG1lc3NhZ2UsIHN0YXR1c0NvZGUsIGRldGFpbHMsIGRlZmF1bHRIaW50KTtcbiAgICB9XG4gIH1cblxuICBnZXRSYXRlTGltaXRJbmZvKCk6IFJhdGVMaW1pdEluZm8gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJhdGVMaW1pdEluZm87XG4gIH1cblxuICAvLyBDb252ZW5pZW5jZSBtZXRob2RzXG4gIGFzeW5jIGdldDxUPihcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgcXVlcnk/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkPixcbiAgICByZXF1aXJlQXV0aDogYm9vbGVhbiA9IHRydWUsXG4gICk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oXCJHRVRcIiwgcGF0aCwgeyBxdWVyeSwgcmVxdWlyZUF1dGggfSk7XG4gIH1cblxuICBhc3luYyBwb3N0PFQ+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBib2R5PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgcmVxdWlyZUF1dGg6IGJvb2xlYW4gPSB0cnVlLFxuICApOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PFQ+KFwiUE9TVFwiLCBwYXRoLCB7IGJvZHksIHJlcXVpcmVBdXRoIH0pO1xuICB9XG5cbiAgYXN5bmMgcGF0Y2g8VD4oXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGJvZHk/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICByZXF1aXJlQXV0aDogYm9vbGVhbiA9IHRydWUsXG4gICk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oXCJQQVRDSFwiLCBwYXRoLCB7IGJvZHksIHJlcXVpcmVBdXRoIH0pO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlPFQ+KHBhdGg6IHN0cmluZywgcmVxdWlyZUF1dGg6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxUPihcIkRFTEVURVwiLCBwYXRoLCB7IHJlcXVpcmVBdXRoIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwbG9hZCBhIGZpbGUgdXNpbmcgbXVsdGlwYXJ0L2Zvcm0tZGF0YVxuICAgKiBVc2VkIGZvciBiYXRjaCBDU1YgdXBsb2FkcyB0byBSMiBzdG9yYWdlXG4gICAqL1xuICBhc3luYyB1cGxvYWRGaWxlPFQ+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBmaWxlOiB7XG4gICAgICBidWZmZXI6IEJ1ZmZlcjtcbiAgICAgIGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgICBtaW1ldHlwZT86IHN0cmluZztcbiAgICB9LFxuICAgIHJlcXVpcmVBdXRoOiBib29sZWFuID0gdHJ1ZSxcbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgbWF4UmV0cmllcyA9IGdldEVmZmVjdGl2ZVZhbHVlKFwibWF4UmV0cmllc1wiKTtcbiAgICBjb25zdCB0aW1lb3V0ID0gZ2V0RWZmZWN0aXZlVmFsdWUoXCJ0aW1lb3V0XCIpO1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFzZVVybCgpfSR7cGF0aH1gO1xuXG4gICAgLy8gQnVpbGQgbXVsdGlwYXJ0IGZvcm0gZGF0YSBtYW51YWxseSAoTm9kZS5qcyBjb21wYXRpYmxlKVxuICAgIGNvbnN0IGJvdW5kYXJ5ID0gYC0tLS1Gb3JtQm91bmRhcnkke0RhdGUubm93KCl9JHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMil9YDtcbiAgICBjb25zdCBtaW1ldHlwZSA9IGZpbGUubWltZXR5cGUgfHwgXCJ0ZXh0L2NzdlwiO1xuXG4gICAgY29uc3QgaGVhZGVyID0gQnVmZmVyLmZyb20oXG4gICAgICBgLS0ke2JvdW5kYXJ5fVxcclxcbmAgK1xuICAgICAgICBgQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPVwiZmlsZVwiOyBmaWxlbmFtZT1cIiR7ZmlsZS5maWxlbmFtZX1cIlxcclxcbmAgK1xuICAgICAgICBgQ29udGVudC1UeXBlOiAke21pbWV0eXBlfVxcclxcblxcclxcbmAsXG4gICAgKTtcbiAgICBjb25zdCBmb290ZXIgPSBCdWZmZXIuZnJvbShgXFxyXFxuLS0ke2JvdW5kYXJ5fS0tXFxyXFxuYCk7XG4gICAgY29uc3QgYm9keSA9IEJ1ZmZlci5jb25jYXQoW2hlYWRlciwgZmlsZS5idWZmZXIsIGZvb3Rlcl0pO1xuXG4gICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIFwiQ29udGVudC1UeXBlXCI6IGBtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0ke2JvdW5kYXJ5fWAsXG4gICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgXCJVc2VyLUFnZW50XCI6IGBAc2VuZGx5L2NsaS8ke3ZlcnNpb259YCxcbiAgICB9O1xuXG4gICAgaWYgKHJlcXVpcmVBdXRoKSB7XG4gICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9IGBCZWFyZXIgJHthd2FpdCB0aGlzLmVuc3VyZUF1dGgoKX1gO1xuICAgIH1cblxuICAgIGxldCBsYXN0RXJyb3I6IEVycm9yIHwgdW5kZWZpbmVkO1xuICAgIGxldCBkaWRSZWZyZXNoID0gZmFsc2U7XG5cbiAgICBmb3IgKGxldCBhdHRlbXB0ID0gMDsgYXR0ZW1wdCA8PSBtYXhSZXRyaWVzOyBhdHRlbXB0KyspIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCB0aW1lb3V0KTtcblxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICBib2R5LFxuICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlUmF0ZUxpbWl0SW5mbyhyZXNwb25zZS5oZWFkZXJzKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKS5jYXRjaCgoKSA9PiAoe30pKTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDEgJiYgcmVxdWlyZUF1dGggJiYgIWRpZFJlZnJlc2gpIHtcbiAgICAgICAgICBkaWRSZWZyZXNoID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCByZWZyZXNoZWQgPSBhd2FpdCB0aGlzLnJlZnJlc2hUb2tlbnMoKTtcbiAgICAgICAgICBpZiAocmVmcmVzaGVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9IGBCZWFyZXIgJHtnZXRBdXRoVG9rZW4oKX1gO1xuICAgICAgICAgICAgYXR0ZW1wdC0tO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IocmVzcG9uc2Uuc3RhdHVzLCBkYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRhIGFzIFQ7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsYXN0RXJyb3IgPSBlcnJvciBhcyBFcnJvcjtcblxuICAgICAgICBpZiAoIWlzUmV0cnlhYmxlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYXR0ZW1wdCA9PT0gbWF4UmV0cmllcykge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYmFja29mZk1zID0gTWF0aC5taW4oMTAwMCAqIE1hdGgucG93KDIsIGF0dGVtcHQpLCAxMDAwMCk7XG4gICAgICAgIGF3YWl0IHNsZWVwKGJhY2tvZmZNcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbGFzdEVycm9yIHx8IG5ldyBFcnJvcihcIlVwbG9hZCBmYWlsZWRcIik7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGFwaUNsaWVudCA9IG5ldyBBcGlDbGllbnQoKTtcbiJdfQ== | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsYUFBYSxHQUNkLE1BQU0sYUFBYSxDQUFDO0FBRXJCLGlDQUFpQztBQUNqQyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMvQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUF3QixDQUFDO0FBRXpFOztHQUVHO0FBQ0gsU0FBUyxLQUFLLENBQUMsRUFBVTtJQUN2QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFjO0lBQ3RDLGlCQUFpQjtJQUNqQixJQUFJLEtBQUssWUFBWSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNsRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxvQ0FBb0M7SUFDcEMsSUFBSSxLQUFLLFlBQVksUUFBUSxJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksR0FBRyxFQUFFLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBaUJELE1BQU0sT0FBTyxRQUFTLFNBQVEsS0FBSztJQUl4QjtJQUVBO0lBQ0E7SUFORixJQUFJLENBQVU7SUFF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QUNkLENBQUM7Z0JBRUQsSUFBSSxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQzNCLE1BQU0sS0FBSyxDQUFDO2dCQUNkLENBQUM7Z0JBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQy9ELE1BQU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxTQUFTLElBQUksSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFQSSBDbGllbnQgZm9yIFNlbmRseSBDTElcbiAqIEhhbmRsZXMgYWxsIEhUVFAgcmVxdWVzdHMgdG8gdGhlIFNlbmRseSBBUElcbiAqL1xuXG5pbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSBcIm5vZGU6bW9kdWxlXCI7XG5pbXBvcnQge1xuICBnZXRBdXRoVG9rZW4sXG4gIGdldFN0b3JlZEFjY2Vzc1Rva2VuLFxuICBnZXRDb25maWdWYWx1ZSxcbiAgZ2V0RWZmZWN0aXZlVmFsdWUsXG4gIHNldEF1dGhUb2tlbnMsXG59IGZyb20gXCIuL2NvbmZpZy5qc1wiO1xuXG4vLyBSZWFkIHZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb25cbmNvbnN0IHJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG5jb25zdCB7IHZlcnNpb24gfSA9IHJlcXVpcmUoXCIuLi8uLi9wYWNrYWdlLmpzb25cIikgYXMgeyB2ZXJzaW9uOiBzdHJpbmcgfTtcblxuLyoqXG4gKiBTbGVlcCBmb3IgYSBnaXZlbiBudW1iZXIgb2YgbWlsbGlzZWNvbmRzXG4gKi9cbmZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYW4gZXJyb3IgaXMgcmV0cnlhYmxlIChuZXR3b3JrIGVycm9ycyBvciA1eHggc2VydmVyIGVycm9ycylcbiAqL1xuZnVuY3Rpb24gaXNSZXRyeWFibGVFcnJvcihlcnJvcjogdW5rbm93bik6IGJvb2xlYW4ge1xuICAvLyBOZXR3b3JrIGVycm9yc1xuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IgJiYgZXJyb3IubWVzc2FnZS5pbmNsdWRlcyhcImZldGNoXCIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gU2VydmVyIGVycm9ycyAoNXh4KSBhcmUgcmV0cnlhYmxlXG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEFwaUVycm9yICYmIGVycm9yLnN0YXR1c0NvZGUgPj0gNTAwKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVJlc3BvbnNlPFQ+IHtcbiAgZGF0YT86IFQ7XG4gIGVycm9yPzoge1xuICAgIGNvZGU6IHN0cmluZztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgZGV0YWlscz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJhdGVMaW1pdEluZm8ge1xuICBsaW1pdDogbnVtYmVyO1xuICByZW1haW5pbmc6IG51bWJlcjtcbiAgcmVzZXQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIEFwaUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBwdWJsaWMgaGludD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29kZTogc3RyaW5nLFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBwdWJsaWMgc3RhdHVzQ29kZTogbnVtYmVyLFxuICAgIHB1YmxpYyBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgaGludD86IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gXCJBcGlFcnJvclwiO1xuICAgIHRoaXMuaGludCA9IGhpbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uRXJyb3IgZXh0ZW5kcyBBcGlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyA9IFwiQXV0aGVudGljYXRpb24gZmFpbGVkXCIsXG4gICAgaGludDogc3RyaW5nID0gXCJSdW4gJ3NlbmRseSBsb2dpbicgdG8gYXV0aGVudGljYXRlLCBvciBjaGVjayB5b3VyIEFQSSBrZXkgd2l0aCAnc2VuZGx5IGNvbmZpZyBzaG93J1wiLFxuICApIHtcbiAgICBzdXBlcihcImF1dGhlbnRpY2F0aW9uX2Vycm9yXCIsIG1lc3NhZ2UsIDQwMSwgdW5kZWZpbmVkLCBoaW50KTtcbiAgICB0aGlzLm5hbWUgPSBcIkF1dGhlbnRpY2F0aW9uRXJyb3JcIjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXBpS2V5UmVxdWlyZWRFcnJvciBleHRlbmRzIEFwaUVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgbWVzc2FnZTogc3RyaW5nID0gXCJBUEkga2V5IHJlcXVpcmVkIGZvciB0aGlzIG9wZXJhdGlvbi5cIixcbiAgICBwdWJsaWMgaGludDogc3RyaW5nID0gXCJTZXQgU0VORExZX0FQSV9LRVkgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgY3JlYXRlIGEga2V5IHdpdGg6IHNlbmRseSBrZXlzIGNyZWF0ZSAtLXR5cGUgdGVzdFwiLFxuICApIHtcbiAgICBzdXBlcihcImFwaV9rZXlfcmVxdWlyZWRcIiwgbWVzc2FnZSwgNDAxKTtcbiAgICB0aGlzLm5hbWUgPSBcIkFwaUtleVJlcXVpcmVkRXJyb3JcIjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmF0ZUxpbWl0RXJyb3IgZXh0ZW5kcyBBcGlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZXRyeUFmdGVyOiBudW1iZXIsXG4gICAgbWVzc2FnZTogc3RyaW5nID0gXCJSYXRlIGxpbWl0IGV4Y2VlZGVkXCIsXG4gICkge1xuICAgIGNvbnN0IGhpbnQgPSBgV2FpdCAke3JldHJ5QWZ0ZXJ9IHNlY29uZHMgYmVmb3JlIHJldHJ5aW5nLCBvciB1cGdyYWRlIHlvdXIgcGxhbiBmb3IgaGlnaGVyIGxpbWl0c2A7XG4gICAgc3VwZXIoXCJyYXRlX2xpbWl0X2V4Y2VlZGVkXCIsIG1lc3NhZ2UsIDQyOSwgdW5kZWZpbmVkLCBoaW50KTtcbiAgICB0aGlzLm5hbWUgPSBcIlJhdGVMaW1pdEVycm9yXCI7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluc3VmZmljaWVudENyZWRpdHNFcnJvciBleHRlbmRzIEFwaUVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gXCJJbnN1ZmZpY2llbnQgY3JlZGl0c1wiKSB7XG4gICAgY29uc3QgaGludCA9XG4gICAgICBcIkNoZWNrIHlvdXIgYmFsYW5jZSB3aXRoICdzZW5kbHkgY3JlZGl0cycsIG9yIGFkZCBjcmVkaXRzIGF0IGh0dHBzOi8vc2VuZGx5LmxpdmUvZGFzaGJvYXJkL2JpbGxpbmdcIjtcbiAgICBzdXBlcihcImluc3VmZmljaWVudF9jcmVkaXRzXCIsIG1lc3NhZ2UsIDQwMiwgdW5kZWZpbmVkLCBoaW50KTtcbiAgICB0aGlzLm5hbWUgPSBcIkluc3VmZmljaWVudENyZWRpdHNFcnJvclwiO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb3RGb3VuZEVycm9yIGV4dGVuZHMgQXBpRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcgPSBcIlJlc291cmNlIG5vdCBmb3VuZFwiLFxuICAgIGhpbnQ6IHN0cmluZyA9IFwiVmVyaWZ5IHRoZSBJRCBpcyBjb3JyZWN0LCBvciB1c2UgYSBsaXN0IGNvbW1hbmQgdG8gc2VlIGF2YWlsYWJsZSByZXNvdXJjZXNcIixcbiAgKSB7XG4gICAgc3VwZXIoXCJub3RfZm91bmRcIiwgbWVzc2FnZSwgNDA0LCB1bmRlZmluZWQsIGhpbnQpO1xuICAgIHRoaXMubmFtZSA9IFwiTm90Rm91bmRFcnJvclwiO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBBcGlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyA9IFwiVmFsaWRhdGlvbiBmYWlsZWRcIixcbiAgICBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICkge1xuICAgIGNvbnN0IGhpbnQgPVxuICAgICAgXCJDaGVjayB0aGUgY29tbWFuZCBoZWxwIHdpdGggLS1oZWxwIGZvciB2YWxpZCBvcHRpb25zIGFuZCBmb3JtYXRzXCI7XG4gICAgc3VwZXIoXCJ2YWxpZGF0aW9uX2Vycm9yXCIsIG1lc3NhZ2UsIDQwMCwgZGV0YWlscywgaGludCk7XG4gICAgdGhpcy5uYW1lID0gXCJWYWxpZGF0aW9uRXJyb3JcIjtcbiAgfVxufVxuXG5jbGFzcyBBcGlDbGllbnQge1xuICBwcml2YXRlIHJhdGVMaW1pdEluZm8/OiBSYXRlTGltaXRJbmZvO1xuICBwcml2YXRlIHJlZnJlc2hpbmc6IFByb21pc2U8Ym9vbGVhbj4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGdldEJhc2VVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0Q29uZmlnVmFsdWUoXCJiYXNlVXJsXCIpIHx8IFwiaHR0cHM6Ly9zZW5kbHkubGl2ZVwiO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBlbnN1cmVBdXRoKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgbGV0IHRva2VuID0gZ2V0QXV0aFRva2VuKCk7XG4gICAgaWYgKHRva2VuKSByZXR1cm4gdG9rZW47XG5cbiAgICBjb25zdCBzdG9yZWQgPSBnZXRTdG9yZWRBY2Nlc3NUb2tlbigpO1xuICAgIGlmIChzdG9yZWQ/LnN0YXJ0c1dpdGgoXCJjbGlfXCIpKSB7XG4gICAgICBjb25zdCByZWZyZXNoZWQgPSBhd2FpdCB0aGlzLnJlZnJlc2hUb2tlbnMoKTtcbiAgICAgIGlmIChyZWZyZXNoZWQpIHtcbiAgICAgICAgdG9rZW4gPSBnZXRBdXRoVG9rZW4oKTtcbiAgICAgICAgaWYgKHRva2VuKSByZXR1cm4gdG9rZW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEF1dGhlbnRpY2F0aW9uRXJyb3IoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0SGVhZGVycyhcbiAgICByZXF1aXJlQXV0aDogYm9vbGVhbiA9IHRydWUsXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICAgIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICBcIlVzZXItQWdlbnRcIjogYEBzZW5kbHkvY2xpLyR7dmVyc2lvbn1gLFxuICAgIH07XG5cbiAgICBpZiAocmVxdWlyZUF1dGgpIHtcbiAgICAgIGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEJlYXJlciAke2F3YWl0IHRoaXMuZW5zdXJlQXV0aCgpfWA7XG4gICAgfVxuXG4gICAgY29uc3Qgb3JnSWQgPSBnZXRFZmZlY3RpdmVWYWx1ZShcImN1cnJlbnRPcmdJZFwiKTtcbiAgICBpZiAob3JnSWQpIHtcbiAgICAgIGhlYWRlcnNbXCJYLU9yZ2FuaXphdGlvbi1JZFwiXSA9IG9yZ0lkO1xuICAgIH1cblxuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWZyZXNoVG9rZW5zKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLnJlZnJlc2hpbmcpIHJldHVybiB0aGlzLnJlZnJlc2hpbmc7XG5cbiAgICB0aGlzLnJlZnJlc2hpbmcgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmVkID0gZ2V0U3RvcmVkQWNjZXNzVG9rZW4oKTtcbiAgICAgIGlmICghc3RvcmVkKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgICAgICAgYCR7dGhpcy5nZXRCYXNlVXJsKCl9L2FwaS9jbGkvYXV0aC9yZWZyZXNoYCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgICAgXCJVc2VyLUFnZW50XCI6IGBAc2VuZGx5L2NsaS8ke3ZlcnNpb259YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGFjY2Vzc1Rva2VuOiBzdG9yZWQgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIHtcbiAgICAgICAgICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICAgICAgICAgIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xuICAgICAgICAgIGV4cGlyZXNJbjogbnVtYmVyO1xuICAgICAgICAgIHVzZXJJZDogc3RyaW5nO1xuICAgICAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICAgIH07XG5cbiAgICAgICAgc2V0QXV0aFRva2VucyhcbiAgICAgICAgICBkYXRhLmFjY2Vzc1Rva2VuLFxuICAgICAgICAgIGRhdGEucmVmcmVzaFRva2VuLFxuICAgICAgICAgIGRhdGEuZXhwaXJlc0luLFxuICAgICAgICAgIGRhdGEudXNlcklkLFxuICAgICAgICAgIGRhdGEuZW1haWwsXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0pKCk7XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucmVmcmVzaGluZztcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5yZWZyZXNoaW5nID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBhc3luYyByZXF1ZXN0PFQ+KFxuICAgIG1ldGhvZDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBib2R5PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICBxdWVyeT86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ+O1xuICAgICAgcmVxdWlyZUF1dGg/OiBib29sZWFuO1xuICAgIH0gPSB7fSxcbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgeyBib2R5LCBxdWVyeSwgcmVxdWlyZUF1dGggPSB0cnVlIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IG1heFJldHJpZXMgPSBnZXRFZmZlY3RpdmVWYWx1ZShcIm1heFJldHJpZXNcIik7XG4gICAgY29uc3QgdGltZW91dCA9IGdldEVmZmVjdGl2ZVZhbHVlKFwidGltZW91dFwiKTtcblxuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoYCR7dGhpcy5nZXRCYXNlVXJsKCl9JHtwYXRofWApO1xuICAgIGlmIChxdWVyeSkge1xuICAgICAgT2JqZWN0LmVudHJpZXMocXVlcnkpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGtleSwgU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGxldCBsYXN0RXJyb3I6IEVycm9yIHwgdW5kZWZpbmVkO1xuICAgIGxldCBkaWRSZWZyZXNoID0gZmFsc2U7XG5cbiAgICBmb3IgKGxldCBhdHRlbXB0ID0gMDsgYXR0ZW1wdCA8PSBtYXhSZXRyaWVzOyBhdHRlbXB0KyspIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCB0aW1lb3V0KTtcblxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybC50b1N0cmluZygpLCB7XG4gICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgIGhlYWRlcnM6IGF3YWl0IHRoaXMuZ2V0SGVhZGVycyhyZXF1aXJlQXV0aCksXG4gICAgICAgICAgYm9keTogYm9keSA/IEpTT04uc3RyaW5naWZ5KGJvZHkpIDogdW5kZWZpbmVkLFxuICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlUmF0ZUxpbWl0SW5mbyhyZXNwb25zZS5oZWFkZXJzKTtcblxuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpLmNhdGNoKCgpID0+ICh7fSkpO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMSAmJiByZXF1aXJlQXV0aCAmJiAhZGlkUmVmcmVzaCkge1xuICAgICAgICAgIGRpZFJlZnJlc2ggPSB0cnVlO1xuICAgICAgICAgIGNvbnN0IHJlZnJlc2hlZCA9IGF3YWl0IHRoaXMucmVmcmVzaFRva2VucygpO1xuICAgICAgICAgIGlmIChyZWZyZXNoZWQpIHtcbiAgICAgICAgICAgIGF0dGVtcHQtLTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKHJlc3BvbnNlLnN0YXR1cywgZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0YSBhcyBUO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbGFzdEVycm9yID0gZXJyb3IgYXMgRXJyb3I7XG5cbiAgICAgICAgaWYgKCFpc1JldHJ5YWJsZUVycm9yKGVycm9yKSkge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGF0dGVtcHQgPT09IG1heFJldHJpZXMpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJhY2tvZmZNcyA9IE1hdGgubWluKDEwMDAgKiBNYXRoLnBvdygyLCBhdHRlbXB0KSwgMTAwMDApO1xuICAgICAgICBhd2FpdCBzbGVlcChiYWNrb2ZmTXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRocm93IGxhc3RFcnJvciB8fCBuZXcgRXJyb3IoXCJSZXF1ZXN0IGZhaWxlZFwiKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUmF0ZUxpbWl0SW5mbyhoZWFkZXJzOiBIZWFkZXJzKTogdm9pZCB7XG4gICAgY29uc3QgbGltaXQgPSBoZWFkZXJzLmdldChcIlgtUmF0ZUxpbWl0LUxpbWl0XCIpO1xuICAgIGNvbnN0IHJlbWFpbmluZyA9IGhlYWRlcnMuZ2V0KFwiWC1SYXRlTGltaXQtUmVtYWluaW5nXCIpO1xuICAgIGNvbnN0IHJlc2V0ID0gaGVhZGVycy5nZXQoXCJYLVJhdGVMaW1pdC1SZXNldFwiKTtcblxuICAgIGlmIChsaW1pdCAmJiByZW1haW5pbmcgJiYgcmVzZXQpIHtcbiAgICAgIHRoaXMucmF0ZUxpbWl0SW5mbyA9IHtcbiAgICAgICAgbGltaXQ6IHBhcnNlSW50KGxpbWl0LCAxMCksXG4gICAgICAgIHJlbWFpbmluZzogcGFyc2VJbnQocmVtYWluaW5nLCAxMCksXG4gICAgICAgIHJlc2V0OiBwYXJzZUludChyZXNldCwgMTApLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yKHN0YXR1c0NvZGU6IG51bWJlciwgZGF0YTogYW55KTogbmV2ZXIge1xuICAgIGNvbnN0IGVycm9yID0gZGF0YT8uZXJyb3IgfHwgXCJ1bmtub3duX2Vycm9yXCI7XG4gICAgY29uc3QgbWVzc2FnZSA9IGRhdGE/Lm1lc3NhZ2UgfHwgYEhUVFAgJHtzdGF0dXNDb2RlfWA7XG4gICAgY29uc3QgZGV0YWlscyA9IGRhdGE/LmRldGFpbHM7XG5cbiAgICBzd2l0Y2ggKHN0YXR1c0NvZGUpIHtcbiAgICAgIGNhc2UgNDAxOlxuICAgICAgY2FzZSA0MDM6XG4gICAgICAgIC8vIERldGVjdCBpZiB0aGlzIGlzIGFuIEFQSSBrZXkgcmVxdWlyZWQgZXJyb3IgdnMgZ2VuZXJhbCBhdXRoIGVycm9yXG4gICAgICAgIGlmIChcbiAgICAgICAgICBlcnJvciA9PT0gXCJpbnZhbGlkX2FwaV9rZXlcIiB8fFxuICAgICAgICAgIGVycm9yID09PSBcImFwaV9rZXlfcmVxdWlyZWRcIiB8fFxuICAgICAgICAgIG1lc3NhZ2U/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJhcGkga2V5XCIpXG4gICAgICAgICkge1xuICAgICAgICAgIHRocm93IG5ldyBBcGlLZXlSZXF1aXJlZEVycm9yKFxuICAgICAgICAgICAgXCJBUEkga2V5IHJlcXVpcmVkIGZvciBzZW5kaW5nIG1lc3NhZ2VzXCIsXG4gICAgICAgICAgICBcIlNldCBTRU5ETFlfQVBJX0tFWSBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciBjcmVhdGUgYSBrZXkgd2l0aDpcXG4gIHNlbmRseSBrZXlzIGNyZWF0ZSAtLXR5cGUgdGVzdFwiLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEF1dGhlbnRpY2F0aW9uRXJyb3IobWVzc2FnZSk7XG4gICAgICBjYXNlIDQwMDpcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihtZXNzYWdlLCBkZXRhaWxzKTtcbiAgICAgIGNhc2UgNDAyOlxuICAgICAgICB0aHJvdyBuZXcgSW5zdWZmaWNpZW50Q3JlZGl0c0Vycm9yKG1lc3NhZ2UpO1xuICAgICAgY2FzZSA0MDQ6XG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgY2FzZSA0Mjk6XG4gICAgICAgIGNvbnN0IHJldHJ5QWZ0ZXIgPSBkYXRhPy5yZXRyeUFmdGVyIHx8IDYwO1xuICAgICAgICB0aHJvdyBuZXcgUmF0ZUxpbWl0RXJyb3IocmV0cnlBZnRlciwgbWVzc2FnZSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zdCBkZWZhdWx0SGludCA9XG4gICAgICAgICAgc3RhdHVzQ29kZSA+PSA1MDBcbiAgICAgICAgICAgID8gXCJUaGlzIGlzIGEgc2VydmVyIGVycm9yLiBUcnkgYWdhaW4gbGF0ZXIgb3IgY2hlY2sgaHR0cHM6Ly9zdGF0dXMuc2VuZGx5LmxpdmVcIlxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRocm93IG5ldyBBcGlFcnJvcihlcnJvciwgbWVzc2FnZSwgc3RhdHVzQ29kZSwgZGV0YWlscywgZGVmYXVsdEhpbnQpO1xuICAgIH1cbiAgfVxuXG4gIGdldFJhdGVMaW1pdEluZm8oKTogUmF0ZUxpbWl0SW5mbyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmF0ZUxpbWl0SW5mbztcbiAgfVxuXG4gIC8vIENvbnZlbmllbmNlIG1ldGhvZHNcbiAgYXN5bmMgZ2V0PFQ+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBxdWVyeT86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ+LFxuICAgIHJlcXVpcmVBdXRoOiBib29sZWFuID0gdHJ1ZSxcbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxUPihcIkdFVFwiLCBwYXRoLCB7IHF1ZXJ5LCByZXF1aXJlQXV0aCB9KTtcbiAgfVxuXG4gIGFzeW5jIHBvc3Q8VD4oXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGJvZHk/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICByZXF1aXJlQXV0aDogYm9vbGVhbiA9IHRydWUsXG4gICk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oXCJQT1NUXCIsIHBhdGgsIHsgYm9keSwgcmVxdWlyZUF1dGggfSk7XG4gIH1cblxuICBhc3luYyBwYXRjaDxUPihcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgYm9keT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIHJlcXVpcmVBdXRoOiBib29sZWFuID0gdHJ1ZSxcbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxUPihcIlBBVENIXCIsIHBhdGgsIHsgYm9keSwgcmVxdWlyZUF1dGggfSk7XG4gIH1cblxuICBhc3luYyBwdXQ8VD4oXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGJvZHk/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICByZXF1aXJlQXV0aDogYm9vbGVhbiA9IHRydWUsXG4gICk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oXCJQVVRcIiwgcGF0aCwgeyBib2R5LCByZXF1aXJlQXV0aCB9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZTxUPihwYXRoOiBzdHJpbmcsIHJlcXVpcmVBdXRoOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oXCJERUxFVEVcIiwgcGF0aCwgeyByZXF1aXJlQXV0aCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGxvYWQgYSBmaWxlIHVzaW5nIG11bHRpcGFydC9mb3JtLWRhdGFcbiAgICogVXNlZCBmb3IgYmF0Y2ggQ1NWIHVwbG9hZHMgdG8gUjIgc3RvcmFnZVxuICAgKi9cbiAgYXN5bmMgdXBsb2FkRmlsZTxUPihcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgZmlsZToge1xuICAgICAgYnVmZmVyOiBCdWZmZXI7XG4gICAgICBmaWxlbmFtZTogc3RyaW5nO1xuICAgICAgbWltZXR5cGU/OiBzdHJpbmc7XG4gICAgfSxcbiAgICByZXF1aXJlQXV0aDogYm9vbGVhbiA9IHRydWUsXG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IG1heFJldHJpZXMgPSBnZXRFZmZlY3RpdmVWYWx1ZShcIm1heFJldHJpZXNcIik7XG4gICAgY29uc3QgdGltZW91dCA9IGdldEVmZmVjdGl2ZVZhbHVlKFwidGltZW91dFwiKTtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEJhc2VVcmwoKX0ke3BhdGh9YDtcblxuICAgIC8vIEJ1aWxkIG11bHRpcGFydCBmb3JtIGRhdGEgbWFudWFsbHkgKE5vZGUuanMgY29tcGF0aWJsZSlcbiAgICBjb25zdCBib3VuZGFyeSA9IGAtLS0tRm9ybUJvdW5kYXJ5JHtEYXRlLm5vdygpfSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIpfWA7XG4gICAgY29uc3QgbWltZXR5cGUgPSBmaWxlLm1pbWV0eXBlIHx8IFwidGV4dC9jc3ZcIjtcblxuICAgIGNvbnN0IGhlYWRlciA9IEJ1ZmZlci5mcm9tKFxuICAgICAgYC0tJHtib3VuZGFyeX1cXHJcXG5gICtcbiAgICAgICAgYENvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT1cImZpbGVcIjsgZmlsZW5hbWU9XCIke2ZpbGUuZmlsZW5hbWV9XCJcXHJcXG5gICtcbiAgICAgICAgYENvbnRlbnQtVHlwZTogJHttaW1ldHlwZX1cXHJcXG5cXHJcXG5gLFxuICAgICk7XG4gICAgY29uc3QgZm9vdGVyID0gQnVmZmVyLmZyb20oYFxcclxcbi0tJHtib3VuZGFyeX0tLVxcclxcbmApO1xuICAgIGNvbnN0IGJvZHkgPSBCdWZmZXIuY29uY2F0KFtoZWFkZXIsIGZpbGUuYnVmZmVyLCBmb290ZXJdKTtcblxuICAgIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBcIkNvbnRlbnQtVHlwZVwiOiBgbXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9JHtib3VuZGFyeX1gLFxuICAgICAgQWNjZXB0OiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgIFwiVXNlci1BZ2VudFwiOiBgQHNlbmRseS9jbGkvJHt2ZXJzaW9ufWAsXG4gICAgfTtcblxuICAgIGlmIChyZXF1aXJlQXV0aCkge1xuICAgICAgaGVhZGVyc1tcIkF1dGhvcml6YXRpb25cIl0gPSBgQmVhcmVyICR7YXdhaXQgdGhpcy5lbnN1cmVBdXRoKCl9YDtcbiAgICB9XG5cbiAgICBsZXQgbGFzdEVycm9yOiBFcnJvciB8IHVuZGVmaW5lZDtcbiAgICBsZXQgZGlkUmVmcmVzaCA9IGZhbHNlO1xuXG4gICAgZm9yIChsZXQgYXR0ZW1wdCA9IDA7IGF0dGVtcHQgPD0gbWF4UmV0cmllczsgYXR0ZW1wdCsrKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSwgdGltZW91dCk7XG5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgYm9keSxcbiAgICAgICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICB9KTtcblxuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVJhdGVMaW1pdEluZm8ocmVzcG9uc2UuaGVhZGVycyk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCkuY2F0Y2goKCkgPT4gKHt9KSk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDAxICYmIHJlcXVpcmVBdXRoICYmICFkaWRSZWZyZXNoKSB7XG4gICAgICAgICAgZGlkUmVmcmVzaCA9IHRydWU7XG4gICAgICAgICAgY29uc3QgcmVmcmVzaGVkID0gYXdhaXQgdGhpcy5yZWZyZXNoVG9rZW5zKCk7XG4gICAgICAgICAgaWYgKHJlZnJlc2hlZCkge1xuICAgICAgICAgICAgaGVhZGVyc1tcIkF1dGhvcml6YXRpb25cIl0gPSBgQmVhcmVyICR7Z2V0QXV0aFRva2VuKCl9YDtcbiAgICAgICAgICAgIGF0dGVtcHQtLTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKHJlc3BvbnNlLnN0YXR1cywgZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0YSBhcyBUO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbGFzdEVycm9yID0gZXJyb3IgYXMgRXJyb3I7XG5cbiAgICAgICAgaWYgKCFpc1JldHJ5YWJsZUVycm9yKGVycm9yKSkge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGF0dGVtcHQgPT09IG1heFJldHJpZXMpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJhY2tvZmZNcyA9IE1hdGgubWluKDEwMDAgKiBNYXRoLnBvdygyLCBhdHRlbXB0KSwgMTAwMDApO1xuICAgICAgICBhd2FpdCBzbGVlcChiYWNrb2ZmTXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRocm93IGxhc3RFcnJvciB8fCBuZXcgRXJyb3IoXCJVcGxvYWQgZmFpbGVkXCIpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBhcGlDbGllbnQgPSBuZXcgQXBpQ2xpZW50KCk7XG4iXX0= |
+19
-1
| { | ||
| "name": "@sendly/cli", | ||
| "version": "3.18.0", | ||
| "version": "3.18.2", | ||
| "type": "module", | ||
@@ -61,2 +61,20 @@ "description": "Sendly CLI - Send SMS from your terminal", | ||
| "description": "Manage credits and transfers" | ||
| }, | ||
| "enterprise": { | ||
| "description": "Manage enterprise workspaces, billing, and analytics" | ||
| }, | ||
| "enterprise workspaces": { | ||
| "description": "Create, list, and manage enterprise workspaces" | ||
| }, | ||
| "enterprise keys": { | ||
| "description": "Manage API keys for enterprise workspaces" | ||
| }, | ||
| "enterprise webhooks": { | ||
| "description": "Manage enterprise-level webhooks" | ||
| }, | ||
| "enterprise analytics": { | ||
| "description": "View enterprise analytics and reports" | ||
| }, | ||
| "enterprise quota": { | ||
| "description": "Manage workspace message quotas" | ||
| } | ||
@@ -63,0 +81,0 @@ } |
Sorry, the diff of this file is too big to display
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
1501092
19.07%226
26.97%16490
20.97%