@sendly/cli 3.24.0 → 3.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/campaigns/schedule.js +20 -10
- package/dist/commands/contacts/bulk-mark-valid.d.ts +12 -0
- package/dist/commands/contacts/bulk-mark-valid.js +46 -0
- package/dist/commands/contacts/check-numbers.d.ts +12 -0
- package/dist/commands/contacts/check-numbers.js +41 -0
- package/dist/commands/contacts/mark-valid.d.ts +13 -0
- package/dist/commands/contacts/mark-valid.js +32 -0
- package/dist/commands/conversations/context.d.ts +15 -0
- package/dist/commands/conversations/context.js +55 -0
- package/dist/commands/conversations/suggest-replies.d.ts +13 -0
- package/dist/commands/conversations/suggest-replies.js +50 -0
- package/dist/commands/conversations/update.d.ts +15 -0
- package/dist/commands/conversations/update.js +56 -0
- package/dist/commands/doctor.d.ts +1 -0
- package/dist/commands/doctor.js +45 -1
- package/dist/commands/drafts/list.js +2 -2
- package/dist/commands/enterprise/generate-business-page.d.ts +16 -0
- package/dist/commands/enterprise/generate-business-page.js +62 -0
- package/dist/commands/enterprise/upload-verification-document.d.ts +13 -0
- package/dist/commands/enterprise/upload-verification-document.js +109 -0
- package/dist/commands/events/listen.d.ts +11 -0
- package/dist/commands/events/listen.js +82 -0
- package/dist/commands/labels/add.d.ts +14 -0
- package/dist/commands/labels/add.js +46 -0
- package/dist/commands/labels/remove.d.ts +14 -0
- package/dist/commands/labels/remove.js +46 -0
- package/dist/commands/rules/create.d.ts +16 -0
- package/dist/commands/rules/create.js +70 -0
- package/dist/commands/rules/delete.d.ts +13 -0
- package/dist/commands/rules/delete.js +29 -0
- package/dist/commands/rules/index.d.ts +10 -0
- package/dist/commands/rules/index.js +56 -0
- package/dist/commands/sms/batch.js +1 -1
- package/dist/commands/sms/schedule.d.ts +3 -3
- package/dist/commands/sms/schedule.js +117 -27
- package/dist/commands/sms/search.d.ts +16 -0
- package/dist/commands/sms/search.js +105 -0
- package/dist/commands/sms/send.d.ts +1 -1
- package/dist/commands/sms/send.js +55 -10
- package/dist/commands/templates/update.d.ts +15 -0
- package/dist/commands/templates/update.js +70 -0
- package/dist/commands/verify/list.d.ts +0 -2
- package/dist/commands/verify/list.js +8 -20
- package/dist/commands/verify/status.js +1 -1
- package/dist/commands/webhooks/listen.js +7 -3
- package/dist/lib/base-command.js +2 -2
- package/oclif.manifest.json +1542 -660
- package/package.json +17 -2
package/dist/commands/doctor.js
CHANGED
|
@@ -6,6 +6,7 @@ import { BaseCommand } from "../lib/base-command.js";
|
|
|
6
6
|
import { isAuthenticated, getAuthToken, getConfigPath, getConfigDir, getEffectiveValue, isCI, isColorDisabled, } from "../lib/config.js";
|
|
7
7
|
import { success, error, warn, json, colors } from "../lib/output.js";
|
|
8
8
|
import * as fs from "node:fs";
|
|
9
|
+
import * as path from "node:path";
|
|
9
10
|
export default class Doctor extends BaseCommand {
|
|
10
11
|
static description = "Diagnose CLI setup and connectivity issues";
|
|
11
12
|
static examples = [
|
|
@@ -30,6 +31,7 @@ export default class Doctor extends BaseCommand {
|
|
|
30
31
|
await this.checkCredits();
|
|
31
32
|
await this.checkEnvironment();
|
|
32
33
|
await this.checkConfig();
|
|
34
|
+
await this.checkAiAgents();
|
|
33
35
|
// Generate report
|
|
34
36
|
const report = this.generateReport();
|
|
35
37
|
if (flags.json) {
|
|
@@ -317,6 +319,48 @@ export default class Doctor extends BaseCommand {
|
|
|
317
319
|
});
|
|
318
320
|
}
|
|
319
321
|
}
|
|
322
|
+
async checkAiAgents() {
|
|
323
|
+
const detected = [];
|
|
324
|
+
const home = process.env.HOME || process.env.USERPROFILE || "";
|
|
325
|
+
const checks = [
|
|
326
|
+
{ name: "Cursor", paths: [path.join(home, ".cursor")] },
|
|
327
|
+
{ name: "Claude Desktop", paths: [
|
|
328
|
+
path.join(home, "Library", "Application Support", "Claude"),
|
|
329
|
+
path.join(home, ".config", "claude"),
|
|
330
|
+
] },
|
|
331
|
+
{ name: "VS Code MCP", paths: [
|
|
332
|
+
path.join(process.cwd(), ".vscode", "mcp.json"),
|
|
333
|
+
path.join(home, ".vscode", "mcp.json"),
|
|
334
|
+
] },
|
|
335
|
+
{ name: "Claude Code", paths: [
|
|
336
|
+
path.join(home, ".claude"),
|
|
337
|
+
] },
|
|
338
|
+
];
|
|
339
|
+
for (const check of checks) {
|
|
340
|
+
for (const p of check.paths) {
|
|
341
|
+
if (fs.existsSync(p)) {
|
|
342
|
+
detected.push(check.name);
|
|
343
|
+
break;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
if (detected.length > 0) {
|
|
348
|
+
this.addResult({
|
|
349
|
+
name: "AI Agents",
|
|
350
|
+
status: "ok",
|
|
351
|
+
message: `Detected: ${detected.join(", ")}`,
|
|
352
|
+
details: "Use @sendly/mcp for AI agent SMS integration",
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
this.addResult({
|
|
357
|
+
name: "AI Agents",
|
|
358
|
+
status: "ok",
|
|
359
|
+
message: "None detected",
|
|
360
|
+
details: "Install @sendly/mcp for AI agent integration",
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
}
|
|
320
364
|
generateReport() {
|
|
321
365
|
const passed = this.results.filter((r) => r.status === "ok").length;
|
|
322
366
|
const warnings = this.results.filter((r) => r.status === "warning").length;
|
|
@@ -333,4 +377,4 @@ export default class Doctor extends BaseCommand {
|
|
|
333
377
|
};
|
|
334
378
|
}
|
|
335
379
|
}
|
|
336
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2RvY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUNMLGVBQWUsRUFDZixZQUFZLEVBQ1osYUFBYSxFQUNiLFlBQVksRUFDWixpQkFBaUIsRUFDakIsSUFBSSxFQUNKLGVBQWUsR0FDaEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQVEsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVFLE9BQU8sS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBcUI5QixNQUFNLENBQUMsT0FBTyxPQUFPLE1BQU8sU0FBUSxXQUFXO0lBQzdDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsNENBQTRDLENBQUM7SUFFbEUsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQiwwQkFBMEI7UUFDMUIsaUNBQWlDO0tBQ2xDLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxXQUFXLENBQUMsU0FBUztLQUN6QixDQUFDO0lBRU0sT0FBTyxHQUF1QixFQUFFLENBQUM7SUFFekMsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztZQUN0RCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDaEIsQ0FBQztRQUVE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QUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMzRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFdkUsT0FBTztZQUNMLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtZQUNuQyxPQUFPLEVBQUUsT0FBTztZQUNoQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsT0FBTyxFQUFFO2dCQUNQLE1BQU07Z0JBQ04sUUFBUTtnQkFDUixNQUFNO2FBQ1A7U0FDRixDQUFDO0lBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2VuZGx5IERvY3RvciBDb21tYW5kXG4gKiBEaWFnbm9zZXMgQ0xJIHNldHVwIGFuZCBjb25uZWN0aXZpdHkgaXNzdWVzXG4gKi9cblxuaW1wb3J0IHsgQmFzZUNvbW1hbmQgfSBmcm9tIFwiLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHtcbiAgaXNBdXRoZW50aWNhdGVkLFxuICBnZXRBdXRoVG9rZW4sXG4gIGdldENvbmZpZ1BhdGgsXG4gIGdldENvbmZpZ0RpcixcbiAgZ2V0RWZmZWN0aXZlVmFsdWUsXG4gIGlzQ0ksXG4gIGlzQ29sb3JEaXNhYmxlZCxcbn0gZnJvbSBcIi4uL2xpYi9jb25maWcuanNcIjtcbmltcG9ydCB7IHN1Y2Nlc3MsIGVycm9yLCB3YXJuLCBpbmZvLCBqc29uLCBjb2xvcnMgfSBmcm9tIFwiLi4vbGliL291dHB1dC5qc1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuXG5pbnRlcmZhY2UgRGlhZ25vc3RpY1Jlc3VsdCB7XG4gIG5hbWU6IHN0cmluZztcbiAgc3RhdHVzOiBcIm9rXCIgfCBcIndhcm5pbmdcIiB8IFwiZXJyb3JcIjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBkZXRhaWxzPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRG9jdG9yUmVwb3J0IHtcbiAgdGltZXN0YW1wOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgcmVzdWx0czogRGlhZ25vc3RpY1Jlc3VsdFtdO1xuICBzdW1tYXJ5OiB7XG4gICAgcGFzc2VkOiBudW1iZXI7XG4gICAgd2FybmluZ3M6IG51bWJlcjtcbiAgICBlcnJvcnM6IG51bWJlcjtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRG9jdG9yIGV4dGVuZHMgQmFzZUNvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPSBcIkRpYWdub3NlIENMSSBzZXR1cCBhbmQgY29ubmVjdGl2aXR5IGlzc3Vlc1wiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGRvY3RvclwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZG9jdG9yIC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5CYXNlQ29tbWFuZC5iYXNlRmxhZ3MsXG4gIH07XG5cbiAgcHJpdmF0ZSByZXN1bHRzOiBEaWFnbm9zdGljUmVzdWx0W10gPSBbXTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShEb2N0b3IpO1xuXG4gICAgaWYgKCFmbGFncy5qc29uKSB7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgY29uc29sZS5sb2coY29sb3JzLnByaW1hcnkoXCJTZW5kbHkgQ0xJIERpYWdub3N0aWNzXCIpKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgfVxuXG4gICAgLy8gUnVuIGFsbCBkaWFnbm9zdGljc1xuICAgIGF3YWl0IHRoaXMuY2hlY2tBcGlLZXkoKTtcbiAgICBhd2FpdCB0aGlzLmNoZWNrTmV0d29yaygpO1xuICAgIGF3YWl0IHRoaXMuY2hlY2tDbG9ja1NrZXcoKTtcbiAgICBhd2FpdCB0aGlzLmNoZWNrQ3JlZGl0cygpO1xuICAgIGF3YWl0IHRoaXMuY2hlY2tFbnZpcm9ubWVudCgpO1xuICAgIGF3YWl0IHRoaXMuY2hlY2tDb25maWcoKTtcblxuICAgIC8vIEdlbmVyYXRlIHJlcG9ydFxuICAgIGNvbnN0IHJlcG9ydCA9IHRoaXMuZ2VuZXJhdGVSZXBvcnQoKTtcblxuICAgIGlmIChmbGFncy5qc29uKSB7XG4gICAgICBqc29uKHJlcG9ydCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUHJpbnQgc3VtbWFyeVxuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgaWYgKHJlcG9ydC5zdW1tYXJ5LmVycm9ycyA+IDApIHtcbiAgICAgIGVycm9yKFxuICAgICAgICBgJHtyZXBvcnQuc3VtbWFyeS5lcnJvcnN9IGlzc3VlKHMpIGZvdW5kLiBQbGVhc2UgcmVzb2x2ZSBiZWZvcmUgdXNpbmcgdGhlIENMSS5gLFxuICAgICAgKTtcbiAgICAgIHRoaXMuZXhpdCgxKTtcbiAgICB9IGVsc2UgaWYgKHJlcG9ydC5zdW1tYXJ5Lndhcm5pbmdzID4gMCkge1xuICAgICAgd2FybihcbiAgICAgICAgYCR7cmVwb3J0LnN1bW1hcnkud2FybmluZ3N9IHdhcm5pbmcocykuIENMSSBzaG91bGQgd29yayBidXQgbWF5IGhhdmUgaXNzdWVzLmAsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdWNjZXNzKFwiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwhXCIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkUmVzdWx0KHJlc3VsdDogRGlhZ25vc3RpY1Jlc3VsdCk6IHZvaWQge1xuICAgIHRoaXMucmVzdWx0cy5wdXNoKHJlc3VsdCk7XG5cbiAgICAvLyBQcmludCByZXN1bHQgaW1tZWRpYXRlbHkgKHVubGVzcyBpbiBKU09OIG1vZGUpXG4gICAgY29uc3QgeyBmbGFncyB9ID0gdGhpcyBhcyBhbnk7XG4gICAgaWYgKGZsYWdzPy5qc29uKSByZXR1cm47XG5cbiAgICBjb25zdCBpY29uID1cbiAgICAgIHJlc3VsdC5zdGF0dXMgPT09IFwib2tcIlxuICAgICAgICA/IGNvbG9ycy5zdWNjZXNzKFwiXFx1MjcxNFwiKVxuICAgICAgICA6IHJlc3VsdC5zdGF0dXMgPT09IFwid2FybmluZ1wiXG4gICAgICAgICAgPyBjb2xvcnMud2FybmluZyhcIlxcdTI2QTBcIilcbiAgICAgICAgICA6IGNvbG9ycy5lcnJvcihcIlxcdTI3MThcIik7XG5cbiAgICBjb25zb2xlLmxvZyhgJHtpY29ufSAke3Jlc3VsdC5uYW1lfTogJHtyZXN1bHQubWVzc2FnZX1gKTtcbiAgICBpZiAocmVzdWx0LmRldGFpbHMpIHtcbiAgICAgIGNvbnNvbGUubG9nKGNvbG9ycy5kaW0oYCAgICR7cmVzdWx0LmRldGFpbHN9YCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tBcGlLZXkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdG9rZW4gPSBnZXRBdXRoVG9rZW4oKTtcbiAgICBjb25zdCBmcm9tRW52ID0gISFwcm9jZXNzLmVudi5TRU5ETFlfQVBJX0tFWTtcblxuICAgIGlmICghdG9rZW4pIHtcbiAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgbmFtZTogXCJBUEkgS2V5XCIsXG4gICAgICAgIHN0YXR1czogXCJlcnJvclwiLFxuICAgICAgICBtZXNzYWdlOiBcIk5vdCBjb25maWd1cmVkXCIsXG4gICAgICAgIGRldGFpbHM6XG4gICAgICAgICAgXCJSdW4gJ3NlbmRseSBsb2dpbicgb3Igc2V0IFNFTkRMWV9BUElfS0VZIGVudmlyb25tZW50IHZhcmlhYmxlXCIsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBrZXkgZm9ybWF0XG4gICAgY29uc3QgaXNUZXN0S2V5ID0gdG9rZW4uc3RhcnRzV2l0aChcInNrX3Rlc3RfXCIpO1xuICAgIGNvbnN0IGlzTGl2ZUtleSA9IHRva2VuLnN0YXJ0c1dpdGgoXCJza19saXZlX1wiKTtcblxuICAgIGlmICghaXNUZXN0S2V5ICYmICFpc0xpdmVLZXkpIHtcbiAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgbmFtZTogXCJBUEkgS2V5XCIsXG4gICAgICAgIHN0YXR1czogXCJlcnJvclwiLFxuICAgICAgICBtZXNzYWdlOiBcIkludmFsaWQgZm9ybWF0XCIsXG4gICAgICAgIGRldGFpbHM6IFwiQVBJIGtleSBzaG91bGQgc3RhcnQgd2l0aCBza190ZXN0XyBvciBza19saXZlX1wiLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qga2V5VHlwZSA9IGlzVGVzdEtleSA/IFwidGVzdFwiIDogXCJsaXZlXCI7XG4gICAgY29uc3Qgc291cmNlID0gZnJvbUVudiA/IFwiZW52aXJvbm1lbnQgdmFyaWFibGVcIiA6IFwiY29uZmlnIGZpbGVcIjtcblxuICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgIG5hbWU6IFwiQVBJIEtleVwiLFxuICAgICAgc3RhdHVzOiBcIm9rXCIsXG4gICAgICBtZXNzYWdlOiBgVmFsaWQgKCR7a2V5VHlwZX0gbW9kZSwgZnJvbSAke3NvdXJjZX0pYCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tOZXR3b3JrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJhc2VVcmwgPSBnZXRFZmZlY3RpdmVWYWx1ZShcImJhc2VVcmxcIik7XG4gICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2Jhc2VVcmx9L2hlYWx0aGAsIHtcbiAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgICBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoMTAwMDApLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGxhdGVuY3kgPSBEYXRlLm5vdygpIC0gc3RhcnRUaW1lO1xuXG4gICAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgdGhpcy5hZGRSZXN1bHQoe1xuICAgICAgICAgIG5hbWU6IFwiTmV0d29ya1wiLFxuICAgICAgICAgIHN0YXR1czogXCJva1wiLFxuICAgICAgICAgIG1lc3NhZ2U6IGBDb25uZWN0ZWQgdG8gJHtuZXcgVVJMKGJhc2VVcmwpLmhvc3R9ICgke2xhdGVuY3l9bXMpYCxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgICAgbmFtZTogXCJOZXR3b3JrXCIsXG4gICAgICAgICAgc3RhdHVzOiBcIndhcm5pbmdcIixcbiAgICAgICAgICBtZXNzYWdlOiBgQVBJIHJldHVybmVkICR7cmVzcG9uc2Uuc3RhdHVzfWAsXG4gICAgICAgICAgZGV0YWlsczogYEVuZHBvaW50OiAke2Jhc2VVcmx9L2hlYWx0aGAsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgIG5hbWU6IFwiTmV0d29ya1wiLFxuICAgICAgICBzdGF0dXM6IFwiZXJyb3JcIixcbiAgICAgICAgbWVzc2FnZTogXCJDYW5ub3QgcmVhY2ggQVBJXCIsXG4gICAgICAgIGRldGFpbHM6IGVyci5tZXNzYWdlIHx8IFwiQ2hlY2sgeW91ciBpbnRlcm5ldCBjb25uZWN0aW9uXCIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNoZWNrQ2xvY2tTa2V3KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJhc2VVcmwgPSBnZXRFZmZlY3RpdmVWYWx1ZShcImJhc2VVcmxcIik7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS9oZWFsdGhgLCB7XG4gICAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgICAgc2lnbmFsOiBBYm9ydFNpZ25hbC50aW1lb3V0KDUwMDApLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHNlcnZlckRhdGUgPSByZXNwb25zZS5oZWFkZXJzLmdldChcImRhdGVcIik7XG4gICAgICBpZiAoIXNlcnZlckRhdGUpIHtcbiAgICAgICAgdGhpcy5hZGRSZXN1bHQoe1xuICAgICAgICAgIG5hbWU6IFwiQ2xvY2tcIixcbiAgICAgICAgICBzdGF0dXM6IFwid2FybmluZ1wiLFxuICAgICAgICAgIG1lc3NhZ2U6IFwiQ291bGQgbm90IHZlcmlmeSAobm8gc2VydmVyIGRhdGUgaGVhZGVyKVwiLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzZXJ2ZXJUaW1lID0gbmV3IERhdGUoc2VydmVyRGF0ZSkuZ2V0VGltZSgpO1xuICAgICAgY29uc3QgbG9jYWxUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgIGNvbnN0IHNrZXdTZWNvbmRzID0gTWF0aC5hYnMoc2VydmVyVGltZSAtIGxvY2FsVGltZSkgLyAxMDAwO1xuXG4gICAgICBpZiAoc2tld1NlY29uZHMgPiAzMDApIHtcbiAgICAgICAgLy8gNSBtaW51dGVzXG4gICAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgICBuYW1lOiBcIkNsb2NrXCIsXG4gICAgICAgICAgc3RhdHVzOiBcImVycm9yXCIsXG4gICAgICAgICAgbWVzc2FnZTogYFNpZ25pZmljYW50IGRyaWZ0IGRldGVjdGVkICgke3NrZXdTZWNvbmRzLnRvRml4ZWQoMCl9cylgLFxuICAgICAgICAgIGRldGFpbHM6IFwiVGhpcyBtYXkgY2F1c2Ugd2ViaG9vayBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIHRvIGZhaWxcIixcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKHNrZXdTZWNvbmRzID4gMzApIHtcbiAgICAgICAgdGhpcy5hZGRSZXN1bHQoe1xuICAgICAgICAgIG5hbWU6IFwiQ2xvY2tcIixcbiAgICAgICAgICBzdGF0dXM6IFwid2FybmluZ1wiLFxuICAgICAgICAgIG1lc3NhZ2U6IGBNaW5vciBkcmlmdCBkZXRlY3RlZCAoJHtza2V3U2Vjb25kcy50b0ZpeGVkKDEpfXMpYCxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgICAgbmFtZTogXCJDbG9ja1wiLFxuICAgICAgICAgIHN0YXR1czogXCJva1wiLFxuICAgICAgICAgIG1lc3NhZ2U6IGBTeW5jaHJvbml6ZWQgKGRyaWZ0OiAke3NrZXdTZWNvbmRzLnRvRml4ZWQoMSl9cylgLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgbmFtZTogXCJDbG9ja1wiLFxuICAgICAgICBzdGF0dXM6IFwid2FybmluZ1wiLFxuICAgICAgICBtZXNzYWdlOiBcIkNvdWxkIG5vdCB2ZXJpZnkgKG5ldHdvcmsgZXJyb3IpXCIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNoZWNrQ3JlZGl0cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIWlzQXV0aGVudGljYXRlZCgpKSB7XG4gICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgIG5hbWU6IFwiQ3JlZGl0c1wiLFxuICAgICAgICBzdGF0dXM6IFwid2FybmluZ1wiLFxuICAgICAgICBtZXNzYWdlOiBcIkNhbm5vdCBjaGVjayAobm90IGF1dGhlbnRpY2F0ZWQpXCIsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBiYXNlVXJsID0gZ2V0RWZmZWN0aXZlVmFsdWUoXCJiYXNlVXJsXCIpO1xuICAgIGNvbnN0IHRva2VuID0gZ2V0QXV0aFRva2VuKCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS9hcGkvdjEvYWNjb3VudC9jcmVkaXRzYCwge1xuICAgICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YCxcbiAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgfSxcbiAgICAgICAgc2lnbmFsOiBBYm9ydFNpZ25hbC50aW1lb3V0KDEwMDAwKSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIHsgYmFsYW5jZT86IHN0cmluZyB9O1xuICAgICAgICBjb25zdCBiYWxhbmNlID0gcGFyc2VGbG9hdChkYXRhLmJhbGFuY2UgfHwgXCIwXCIpO1xuXG4gICAgICAgIGlmIChiYWxhbmNlID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5hZGRSZXN1bHQoe1xuICAgICAgICAgICAgbmFtZTogXCJDcmVkaXRzXCIsXG4gICAgICAgICAgICBzdGF0dXM6IFwid2FybmluZ1wiLFxuICAgICAgICAgICAgbWVzc2FnZTogXCIwIGF2YWlsYWJsZVwiLFxuICAgICAgICAgICAgZGV0YWlsczogXCJBZGQgY3JlZGl0cyB0byBzZW5kIG1lc3NhZ2VzXCIsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5hZGRSZXN1bHQoe1xuICAgICAgICAgICAgbmFtZTogXCJDcmVkaXRzXCIsXG4gICAgICAgICAgICBzdGF0dXM6IFwib2tcIixcbiAgICAgICAgICAgIG1lc3NhZ2U6IGAke2JhbGFuY2UudG9Mb2NhbGVTdHJpbmcoKX0gYXZhaWxhYmxlYCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgICAgbmFtZTogXCJDcmVkaXRzXCIsXG4gICAgICAgICAgc3RhdHVzOiBcImVycm9yXCIsXG4gICAgICAgICAgbWVzc2FnZTogXCJBUEkga2V5IGludmFsaWQgb3IgZXhwaXJlZFwiLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgICBuYW1lOiBcIkNyZWRpdHNcIixcbiAgICAgICAgICBzdGF0dXM6IFwid2FybmluZ1wiLFxuICAgICAgICAgIG1lc3NhZ2U6IGBDb3VsZCBub3QgZmV0Y2ggKEhUVFAgJHtyZXNwb25zZS5zdGF0dXN9KWAsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgIG5hbWU6IFwiQ3JlZGl0c1wiLFxuICAgICAgICBzdGF0dXM6IFwid2FybmluZ1wiLFxuICAgICAgICBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmZXRjaFwiLFxuICAgICAgICBkZXRhaWxzOiBlcnIubWVzc2FnZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tFbnZpcm9ubWVudCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjaGVja3M6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAoaXNDSSgpKSB7XG4gICAgICBjaGVja3MucHVzaChcIkNJIG1vZGUgZGV0ZWN0ZWRcIik7XG4gICAgfVxuXG4gICAgaWYgKGlzQ29sb3JEaXNhYmxlZCgpKSB7XG4gICAgICBjaGVja3MucHVzaChcImNvbG9yIGRpc2FibGVkXCIpO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5TRU5ETFlfQVBJX0tFWSkge1xuICAgICAgY2hlY2tzLnB1c2goXCJ1c2luZyBTRU5ETFlfQVBJX0tFWSBlbnYgdmFyXCIpO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5TRU5ETFlfQkFTRV9VUkwpIHtcbiAgICAgIGNoZWNrcy5wdXNoKGBjdXN0b20gYmFzZSBVUkw6ICR7cHJvY2Vzcy5lbnYuU0VORExZX0JBU0VfVVJMfWApO1xuICAgIH1cblxuICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgIG5hbWU6IFwiRW52aXJvbm1lbnRcIixcbiAgICAgIHN0YXR1czogXCJva1wiLFxuICAgICAgbWVzc2FnZTogY2hlY2tzLmxlbmd0aCA+IDAgPyBjaGVja3Muam9pbihcIiwgXCIpIDogXCJTdGFuZGFyZCB0ZXJtaW5hbCBtb2RlXCIsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNoZWNrQ29uZmlnKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbmZpZ1BhdGggPSBnZXRDb25maWdQYXRoKCk7XG4gICAgY29uc3QgY29uZmlnRGlyID0gZ2V0Q29uZmlnRGlyKCk7XG5cbiAgICAvLyBDaGVjayBpZiBjb25maWcgZGlyZWN0b3J5IGV4aXN0c1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhjb25maWdEaXIpKSB7XG4gICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgIG5hbWU6IFwiQ29uZmlnXCIsXG4gICAgICAgIHN0YXR1czogXCJ3YXJuaW5nXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiQ29uZmlnIGRpcmVjdG9yeSBub3QgZm91bmRcIixcbiAgICAgICAgZGV0YWlsczogYEV4cGVjdGVkOiAke2NvbmZpZ0Rpcn1gLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgY29uZmlnIGZpbGUgZXhpc3RzXG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGNvbmZpZ1BhdGgpKSB7XG4gICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgIG5hbWU6IFwiQ29uZmlnXCIsXG4gICAgICAgIHN0YXR1czogXCJ3YXJuaW5nXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiQ29uZmlnIGZpbGUgbm90IGZvdW5kICh1c2luZyBkZWZhdWx0cylcIixcbiAgICAgICAgZGV0YWlsczogY29uZmlnUGF0aCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZpbGUgcGVybWlzc2lvbnMgKHNob3VsZCBiZSByZWFkYWJsZSBvbmx5IGJ5IG93bmVyKVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGF0cyA9IGZzLnN0YXRTeW5jKGNvbmZpZ1BhdGgpO1xuICAgICAgY29uc3QgbW9kZSA9IHN0YXRzLm1vZGUgJiAwbzc3NztcblxuICAgICAgaWYgKG1vZGUgJiAwbzA3Nykge1xuICAgICAgICAvLyBHcm91cCBvciBvdGhlcnMgaGF2ZSBhY2Nlc3NcbiAgICAgICAgdGhpcy5hZGRSZXN1bHQoe1xuICAgICAgICAgIG5hbWU6IFwiQ29uZmlnXCIsXG4gICAgICAgICAgc3RhdHVzOiBcIndhcm5pbmdcIixcbiAgICAgICAgICBtZXNzYWdlOiBcIkNvbmZpZyBmaWxlIGhhcyBsb29zZSBwZXJtaXNzaW9uc1wiLFxuICAgICAgICAgIGRldGFpbHM6IGAke2NvbmZpZ1BhdGh9IChtb2RlOiAke21vZGUudG9TdHJpbmcoOCl9KWAsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hZGRSZXN1bHQoe1xuICAgICAgICAgIG5hbWU6IFwiQ29uZmlnXCIsXG4gICAgICAgICAgc3RhdHVzOiBcIm9rXCIsXG4gICAgICAgICAgbWVzc2FnZTogY29uZmlnUGF0aCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgIG5hbWU6IFwiQ29uZmlnXCIsXG4gICAgICAgIHN0YXR1czogXCJva1wiLFxuICAgICAgICBtZXNzYWdlOiBjb25maWdQYXRoLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVJlcG9ydCgpOiBEb2N0b3JSZXBvcnQge1xuICAgIGNvbnN0IHBhc3NlZCA9IHRoaXMucmVzdWx0cy5maWx0ZXIoKHIpID0+IHIuc3RhdHVzID09PSBcIm9rXCIpLmxlbmd0aDtcbiAgICBjb25zdCB3YXJuaW5ncyA9IHRoaXMucmVzdWx0cy5maWx0ZXIoKHIpID0+IHIuc3RhdHVzID09PSBcIndhcm5pbmdcIikubGVuZ3RoO1xuICAgIGNvbnN0IGVycm9ycyA9IHRoaXMucmVzdWx0cy5maWx0ZXIoKHIpID0+IHIuc3RhdHVzID09PSBcImVycm9yXCIpLmxlbmd0aDtcblxuICAgIHJldHVybiB7XG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIHZlcnNpb246IFwiMS4wLjBcIixcbiAgICAgIHJlc3VsdHM6IHRoaXMucmVzdWx0cyxcbiAgICAgIHN1bW1hcnk6IHtcbiAgICAgICAgcGFzc2VkLFxuICAgICAgICB3YXJuaW5ncyxcbiAgICAgICAgZXJyb3JzLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
380
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2RvY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUNMLGVBQWUsRUFDZixZQUFZLEVBQ1osYUFBYSxFQUNiLFlBQVksRUFDWixpQkFBaUIsRUFDakIsSUFBSSxFQUNKLGVBQWUsR0FDaEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQVEsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVFLE9BQU8sS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sS0FBSyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBb0JsQyxNQUFNLENBQUMsT0FBTyxPQUFPLE1BQU8sU0FBUSxXQUFXO0lBQzdDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsNENBQTRDLENBQUM7SUFFbEUsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQiwwQkFBMEI7UUFDMUIsaUNBQWlDO0tBQ2xDLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxXQUFXLENBQUMsU0FBUztLQUN6QixDQUFDO0lBRU0sT0FBTyxHQUF1QixFQUFFLENBQUM7SUFFekMsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztZQUN0RCxPQUFP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SUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZW5kbHkgRG9jdG9yIENvbW1hbmRcbiAqIERpYWdub3NlcyBDTEkgc2V0dXAgYW5kIGNvbm5lY3Rpdml0eSBpc3N1ZXNcbiAqL1xuXG5pbXBvcnQgeyBCYXNlQ29tbWFuZCB9IGZyb20gXCIuLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQge1xuICBpc0F1dGhlbnRpY2F0ZWQsXG4gIGdldEF1dGhUb2tlbixcbiAgZ2V0Q29uZmlnUGF0aCxcbiAgZ2V0Q29uZmlnRGlyLFxuICBnZXRFZmZlY3RpdmVWYWx1ZSxcbiAgaXNDSSxcbiAgaXNDb2xvckRpc2FibGVkLFxufSBmcm9tIFwiLi4vbGliL2NvbmZpZy5qc1wiO1xuaW1wb3J0IHsgc3VjY2VzcywgZXJyb3IsIHdhcm4sIGluZm8sIGpzb24sIGNvbG9ycyB9IGZyb20gXCIuLi9saWIvb3V0cHV0LmpzXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbmludGVyZmFjZSBEaWFnbm9zdGljUmVzdWx0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBzdGF0dXM6IFwib2tcIiB8IFwid2FybmluZ1wiIHwgXCJlcnJvclwiO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGRldGFpbHM/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBEb2N0b3JSZXBvcnQge1xuICB0aW1lc3RhbXA6IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICByZXN1bHRzOiBEaWFnbm9zdGljUmVzdWx0W107XG4gIHN1bW1hcnk6IHtcbiAgICBwYXNzZWQ6IG51bWJlcjtcbiAgICB3YXJuaW5nczogbnVtYmVyO1xuICAgIGVycm9yczogbnVtYmVyO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEb2N0b3IgZXh0ZW5kcyBCYXNlQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiRGlhZ25vc2UgQ0xJIHNldHVwIGFuZCBjb25uZWN0aXZpdHkgaXNzdWVzXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZG9jdG9yXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBkb2N0b3IgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkJhc2VDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBwcml2YXRlIHJlc3VsdHM6IERpYWdub3N0aWNSZXN1bHRbXSA9IFtdO1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKERvY3Rvcik7XG5cbiAgICBpZiAoIWZsYWdzLmpzb24pIHtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhjb2xvcnMucHJpbWFyeShcIlNlbmRseSBDTEkgRGlhZ25vc3RpY3NcIikpO1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICB9XG5cbiAgICAvLyBSdW4gYWxsIGRpYWdub3N0aWNzXG4gICAgYXdhaXQgdGhpcy5jaGVja0FwaUtleSgpO1xuICAgIGF3YWl0IHRoaXMuY2hlY2tOZXR3b3JrKCk7XG4gICAgYXdhaXQgdGhpcy5jaGVja0Nsb2NrU2tldygpO1xuICAgIGF3YWl0IHRoaXMuY2hlY2tDcmVkaXRzKCk7XG4gICAgYXdhaXQgdGhpcy5jaGVja0Vudmlyb25tZW50KCk7XG4gICAgYXdhaXQgdGhpcy5jaGVja0NvbmZpZygpO1xuICAgIGF3YWl0IHRoaXMuY2hlY2tBaUFnZW50cygpO1xuXG4gICAgLy8gR2VuZXJhdGUgcmVwb3J0XG4gICAgY29uc3QgcmVwb3J0ID0gdGhpcy5nZW5lcmF0ZVJlcG9ydCgpO1xuXG4gICAgaWYgKGZsYWdzLmpzb24pIHtcbiAgICAgIGpzb24ocmVwb3J0KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBQcmludCBzdW1tYXJ5XG4gICAgY29uc29sZS5sb2coKTtcbiAgICBpZiAocmVwb3J0LnN1bW1hcnkuZXJyb3JzID4gMCkge1xuICAgICAgZXJyb3IoXG4gICAgICAgIGAke3JlcG9ydC5zdW1tYXJ5LmVycm9yc30gaXNzdWUocykgZm91bmQuIFBsZWFzZSByZXNvbHZlIGJlZm9yZSB1c2luZyB0aGUgQ0xJLmAsXG4gICAgICApO1xuICAgICAgdGhpcy5leGl0KDEpO1xuICAgIH0gZWxzZSBpZiAocmVwb3J0LnN1bW1hcnkud2FybmluZ3MgPiAwKSB7XG4gICAgICB3YXJuKFxuICAgICAgICBgJHtyZXBvcnQuc3VtbWFyeS53YXJuaW5nc30gd2FybmluZyhzKS4gQ0xJIHNob3VsZCB3b3JrIGJ1dCBtYXkgaGF2ZSBpc3N1ZXMuYCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1Y2Nlc3MoXCJBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCFcIik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRSZXN1bHQocmVzdWx0OiBEaWFnbm9zdGljUmVzdWx0KTogdm9pZCB7XG4gICAgdGhpcy5yZXN1bHRzLnB1c2gocmVzdWx0KTtcblxuICAgIC8vIFByaW50IHJlc3VsdCBpbW1lZGlhdGVseSAodW5sZXNzIGluIEpTT04gbW9kZSlcbiAgICBjb25zdCB7IGZsYWdzIH0gPSB0aGlzIGFzIGFueTtcbiAgICBpZiAoZmxhZ3M/Lmpzb24pIHJldHVybjtcblxuICAgIGNvbnN0IGljb24gPVxuICAgICAgcmVzdWx0LnN0YXR1cyA9PT0gXCJva1wiXG4gICAgICAgID8gY29sb3JzLnN1Y2Nlc3MoXCJcXHUyNzE0XCIpXG4gICAgICAgIDogcmVzdWx0LnN0YXR1cyA9PT0gXCJ3YXJuaW5nXCJcbiAgICAgICAgICA/IGNvbG9ycy53YXJuaW5nKFwiXFx1MjZBMFwiKVxuICAgICAgICAgIDogY29sb3JzLmVycm9yKFwiXFx1MjcxOFwiKTtcblxuICAgIGNvbnNvbGUubG9nKGAke2ljb259ICR7cmVzdWx0Lm5hbWV9OiAke3Jlc3VsdC5tZXNzYWdlfWApO1xuICAgIGlmIChyZXN1bHQuZGV0YWlscykge1xuICAgICAgY29uc29sZS5sb2coY29sb3JzLmRpbShgICAgJHtyZXN1bHQuZGV0YWlsc31gKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjaGVja0FwaUtleSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB0b2tlbiA9IGdldEF1dGhUb2tlbigpO1xuICAgIGNvbnN0IGZyb21FbnYgPSAhIXByb2Nlc3MuZW52LlNFTkRMWV9BUElfS0VZO1xuXG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgdGhpcy5hZGRSZXN1bHQoe1xuICAgICAgICBuYW1lOiBcIkFQSSBLZXlcIixcbiAgICAgICAgc3RhdHVzOiBcImVycm9yXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiTm90IGNvbmZpZ3VyZWRcIixcbiAgICAgICAgZGV0YWlsczpcbiAgICAgICAgICBcIlJ1biAnc2VuZGx5IGxvZ2luJyBvciBzZXQgU0VORExZX0FQSV9LRVkgZW52aXJvbm1lbnQgdmFyaWFibGVcIixcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGtleSBmb3JtYXRcbiAgICBjb25zdCBpc1Rlc3RLZXkgPSB0b2tlbi5zdGFydHNXaXRoKFwic2tfdGVzdF9cIik7XG4gICAgY29uc3QgaXNMaXZlS2V5ID0gdG9rZW4uc3RhcnRzV2l0aChcInNrX2xpdmVfXCIpO1xuXG4gICAgaWYgKCFpc1Rlc3RLZXkgJiYgIWlzTGl2ZUtleSkge1xuICAgICAgdGhpcy5hZGRSZXN1bHQoe1xuICAgICAgICBuYW1lOiBcIkFQSSBLZXlcIixcbiAgICAgICAgc3RhdHVzOiBcImVycm9yXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiSW52YWxpZCBmb3JtYXRcIixcbiAgICAgICAgZGV0YWlsczogXCJBUEkga2V5IHNob3VsZCBzdGFydCB3aXRoIHNrX3Rlc3RfIG9yIHNrX2xpdmVfXCIsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBrZXlUeXBlID0gaXNUZXN0S2V5ID8gXCJ0ZXN0XCIgOiBcImxpdmVcIjtcbiAgICBjb25zdCBzb3VyY2UgPSBmcm9tRW52ID8gXCJlbnZpcm9ubWVudCB2YXJpYWJsZVwiIDogXCJjb25maWcgZmlsZVwiO1xuXG4gICAgdGhpcy5hZGRSZXN1bHQoe1xuICAgICAgbmFtZTogXCJBUEkgS2V5XCIsXG4gICAgICBzdGF0dXM6IFwib2tcIixcbiAgICAgIG1lc3NhZ2U6IGBWYWxpZCAoJHtrZXlUeXBlfSBtb2RlLCBmcm9tICR7c291cmNlfSlgLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjaGVja05ldHdvcmsoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYmFzZVVybCA9IGdldEVmZmVjdGl2ZVZhbHVlKFwiYmFzZVVybFwiKTtcbiAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7YmFzZVVybH0vaGVhbHRoYCwge1xuICAgICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICAgIHNpZ25hbDogQWJvcnRTaWduYWwudGltZW91dCgxMDAwMCksXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbGF0ZW5jeSA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XG5cbiAgICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgICAgbmFtZTogXCJOZXR3b3JrXCIsXG4gICAgICAgICAgc3RhdHVzOiBcIm9rXCIsXG4gICAgICAgICAgbWVzc2FnZTogYENvbm5lY3RlZCB0byAke25ldyBVUkwoYmFzZVVybCkuaG9zdH0gKCR7bGF0ZW5jeX1tcylgLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgICBuYW1lOiBcIk5ldHdvcmtcIixcbiAgICAgICAgICBzdGF0dXM6IFwid2FybmluZ1wiLFxuICAgICAgICAgIG1lc3NhZ2U6IGBBUEkgcmV0dXJuZWQgJHtyZXNwb25zZS5zdGF0dXN9YCxcbiAgICAgICAgICBkZXRhaWxzOiBgRW5kcG9pbnQ6ICR7YmFzZVVybH0vaGVhbHRoYCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgbmFtZTogXCJOZXR3b3JrXCIsXG4gICAgICAgIHN0YXR1czogXCJlcnJvclwiLFxuICAgICAgICBtZXNzYWdlOiBcIkNhbm5vdCByZWFjaCBBUElcIixcbiAgICAgICAgZGV0YWlsczogZXJyLm1lc3NhZ2UgfHwgXCJDaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb25cIixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tDbG9ja1NrZXcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYmFzZVVybCA9IGdldEVmZmVjdGl2ZVZhbHVlKFwiYmFzZVVybFwiKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2Jhc2VVcmx9L2hlYWx0aGAsIHtcbiAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgICBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoNTAwMCksXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc2VydmVyRGF0ZSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KFwiZGF0ZVwiKTtcbiAgICAgIGlmICghc2VydmVyRGF0ZSkge1xuICAgICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgICAgbmFtZTogXCJDbG9ja1wiLFxuICAgICAgICAgIHN0YXR1czogXCJ3YXJuaW5nXCIsXG4gICAgICAgICAgbWVzc2FnZTogXCJDb3VsZCBub3QgdmVyaWZ5IChubyBzZXJ2ZXIgZGF0ZSBoZWFkZXIpXCIsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNlcnZlclRpbWUgPSBuZXcgRGF0ZShzZXJ2ZXJEYXRlKS5nZXRUaW1lKCk7XG4gICAgICBjb25zdCBsb2NhbFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgY29uc3Qgc2tld1NlY29uZHMgPSBNYXRoLmFicyhzZXJ2ZXJUaW1lIC0gbG9jYWxUaW1lKSAvIDEwMDA7XG5cbiAgICAgIGlmIChza2V3U2Vjb25kcyA+IDMwMCkge1xuICAgICAgICAvLyA1IG1pbnV0ZXNcbiAgICAgICAgdGhpcy5hZGRSZXN1bHQoe1xuICAgICAgICAgIG5hbWU6IFwiQ2xvY2tcIixcbiAgICAgICAgICBzdGF0dXM6IFwiZXJyb3JcIixcbiAgICAgICAgICBtZXNzYWdlOiBgU2lnbmlmaWNhbnQgZHJpZnQgZGV0ZWN0ZWQgKCR7c2tld1NlY29uZHMudG9GaXhlZCgwKX1zKWAsXG4gICAgICAgICAgZGV0YWlsczogXCJUaGlzIG1heSBjYXVzZSB3ZWJob29rIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gdG8gZmFpbFwiLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoc2tld1NlY29uZHMgPiAzMCkge1xuICAgICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgICAgbmFtZTogXCJDbG9ja1wiLFxuICAgICAgICAgIHN0YXR1czogXCJ3YXJuaW5nXCIsXG4gICAgICAgICAgbWVzc2FnZTogYE1pbm9yIGRyaWZ0IGRldGVjdGVkICgke3NrZXdTZWNvbmRzLnRvRml4ZWQoMSl9cylgLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgICBuYW1lOiBcIkNsb2NrXCIsXG4gICAgICAgICAgc3RhdHVzOiBcIm9rXCIsXG4gICAgICAgICAgbWVzc2FnZTogYFN5bmNocm9uaXplZCAoZHJpZnQ6ICR7c2tld1NlY29uZHMudG9GaXhlZCgxKX1zKWAsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5hZGRSZXN1bHQoe1xuICAgICAgICBuYW1lOiBcIkNsb2NrXCIsXG4gICAgICAgIHN0YXR1czogXCJ3YXJuaW5nXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiQ291bGQgbm90IHZlcmlmeSAobmV0d29yayBlcnJvcilcIixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tDcmVkaXRzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghaXNBdXRoZW50aWNhdGVkKCkpIHtcbiAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgbmFtZTogXCJDcmVkaXRzXCIsXG4gICAgICAgIHN0YXR1czogXCJ3YXJuaW5nXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiQ2Fubm90IGNoZWNrIChub3QgYXV0aGVudGljYXRlZClcIixcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJhc2VVcmwgPSBnZXRFZmZlY3RpdmVWYWx1ZShcImJhc2VVcmxcIik7XG4gICAgY29uc3QgdG9rZW4gPSBnZXRBdXRoVG9rZW4oKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2Jhc2VVcmx9L2FwaS92MS9hY2NvdW50L2NyZWRpdHNgLCB7XG4gICAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gLFxuICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICB9LFxuICAgICAgICBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoMTAwMDApLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICBjb25zdCBkYXRhID0gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgeyBiYWxhbmNlPzogc3RyaW5nIH07XG4gICAgICAgIGNvbnN0IGJhbGFuY2UgPSBwYXJzZUZsb2F0KGRhdGEuYmFsYW5jZSB8fCBcIjBcIik7XG5cbiAgICAgICAgaWYgKGJhbGFuY2UgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgICAgICBuYW1lOiBcIkNyZWRpdHNcIixcbiAgICAgICAgICAgIHN0YXR1czogXCJ3YXJuaW5nXCIsXG4gICAgICAgICAgICBtZXNzYWdlOiBcIjAgYXZhaWxhYmxlXCIsXG4gICAgICAgICAgICBkZXRhaWxzOiBcIkFkZCBjcmVkaXRzIHRvIHNlbmQgbWVzc2FnZXNcIixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgICAgICBuYW1lOiBcIkNyZWRpdHNcIixcbiAgICAgICAgICAgIHN0YXR1czogXCJva1wiLFxuICAgICAgICAgICAgbWVzc2FnZTogYCR7YmFsYW5jZS50b0xvY2FsZVN0cmluZygpfSBhdmFpbGFibGVgLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgICBuYW1lOiBcIkNyZWRpdHNcIixcbiAgICAgICAgICBzdGF0dXM6IFwiZXJyb3JcIixcbiAgICAgICAgICBtZXNzYWdlOiBcIkFQSSBrZXkgaW52YWxpZCBvciBleHBpcmVkXCIsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hZGRSZXN1bHQoe1xuICAgICAgICAgIG5hbWU6IFwiQ3JlZGl0c1wiLFxuICAgICAgICAgIHN0YXR1czogXCJ3YXJuaW5nXCIsXG4gICAgICAgICAgbWVzc2FnZTogYENvdWxkIG5vdCBmZXRjaCAoSFRUUCAke3Jlc3BvbnNlLnN0YXR1c30pYCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgbmFtZTogXCJDcmVkaXRzXCIsXG4gICAgICAgIHN0YXR1czogXCJ3YXJuaW5nXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZldGNoXCIsXG4gICAgICAgIGRldGFpbHM6IGVyci5tZXNzYWdlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjaGVja0Vudmlyb25tZW50KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNoZWNrczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmIChpc0NJKCkpIHtcbiAgICAgIGNoZWNrcy5wdXNoKFwiQ0kgbW9kZSBkZXRlY3RlZFwiKTtcbiAgICB9XG5cbiAgICBpZiAoaXNDb2xvckRpc2FibGVkKCkpIHtcbiAgICAgIGNoZWNrcy5wdXNoKFwiY29sb3IgZGlzYWJsZWRcIik7XG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52LlNFTkRMWV9BUElfS0VZKSB7XG4gICAgICBjaGVja3MucHVzaChcInVzaW5nIFNFTkRMWV9BUElfS0VZIGVudiB2YXJcIik7XG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52LlNFTkRMWV9CQVNFX1VSTCkge1xuICAgICAgY2hlY2tzLnB1c2goYGN1c3RvbSBiYXNlIFVSTDogJHtwcm9jZXNzLmVudi5TRU5ETFlfQkFTRV9VUkx9YCk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRSZXN1bHQoe1xuICAgICAgbmFtZTogXCJFbnZpcm9ubWVudFwiLFxuICAgICAgc3RhdHVzOiBcIm9rXCIsXG4gICAgICBtZXNzYWdlOiBjaGVja3MubGVuZ3RoID4gMCA/IGNoZWNrcy5qb2luKFwiLCBcIikgOiBcIlN0YW5kYXJkIHRlcm1pbmFsIG1vZGVcIixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tDb25maWcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29uZmlnUGF0aCA9IGdldENvbmZpZ1BhdGgoKTtcbiAgICBjb25zdCBjb25maWdEaXIgPSBnZXRDb25maWdEaXIoKTtcblxuICAgIC8vIENoZWNrIGlmIGNvbmZpZyBkaXJlY3RvcnkgZXhpc3RzXG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGNvbmZpZ0RpcikpIHtcbiAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgbmFtZTogXCJDb25maWdcIixcbiAgICAgICAgc3RhdHVzOiBcIndhcm5pbmdcIixcbiAgICAgICAgbWVzc2FnZTogXCJDb25maWcgZGlyZWN0b3J5IG5vdCBmb3VuZFwiLFxuICAgICAgICBkZXRhaWxzOiBgRXhwZWN0ZWQ6ICR7Y29uZmlnRGlyfWAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBjb25maWcgZmlsZSBleGlzdHNcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoY29uZmlnUGF0aCkpIHtcbiAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgbmFtZTogXCJDb25maWdcIixcbiAgICAgICAgc3RhdHVzOiBcIndhcm5pbmdcIixcbiAgICAgICAgbWVzc2FnZTogXCJDb25maWcgZmlsZSBub3QgZm91bmQgKHVzaW5nIGRlZmF1bHRzKVwiLFxuICAgICAgICBkZXRhaWxzOiBjb25maWdQYXRoLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgZmlsZSBwZXJtaXNzaW9ucyAoc2hvdWxkIGJlIHJlYWRhYmxlIG9ubHkgYnkgb3duZXIpXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YXRzID0gZnMuc3RhdFN5bmMoY29uZmlnUGF0aCk7XG4gICAgICBjb25zdCBtb2RlID0gc3RhdHMubW9kZSAmIDBvNzc3O1xuXG4gICAgICBpZiAobW9kZSAmIDBvMDc3KSB7XG4gICAgICAgIC8vIEdyb3VwIG9yIG90aGVycyBoYXZlIGFjY2Vzc1xuICAgICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgICAgbmFtZTogXCJDb25maWdcIixcbiAgICAgICAgICBzdGF0dXM6IFwid2FybmluZ1wiLFxuICAgICAgICAgIG1lc3NhZ2U6IFwiQ29uZmlnIGZpbGUgaGFzIGxvb3NlIHBlcm1pc3Npb25zXCIsXG4gICAgICAgICAgZGV0YWlsczogYCR7Y29uZmlnUGF0aH0gKG1vZGU6ICR7bW9kZS50b1N0cmluZyg4KX0pYCxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFkZFJlc3VsdCh7XG4gICAgICAgICAgbmFtZTogXCJDb25maWdcIixcbiAgICAgICAgICBzdGF0dXM6IFwib2tcIixcbiAgICAgICAgICBtZXNzYWdlOiBjb25maWdQYXRoLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgbmFtZTogXCJDb25maWdcIixcbiAgICAgICAgc3RhdHVzOiBcIm9rXCIsXG4gICAgICAgIG1lc3NhZ2U6IGNvbmZpZ1BhdGgsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNoZWNrQWlBZ2VudHMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZGV0ZWN0ZWQ6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3QgaG9tZSA9IHByb2Nlc3MuZW52LkhPTUUgfHwgcHJvY2Vzcy5lbnYuVVNFUlBST0ZJTEUgfHwgXCJcIjtcblxuICAgIGNvbnN0IGNoZWNrcyA9IFtcbiAgICAgIHsgbmFtZTogXCJDdXJzb3JcIiwgcGF0aHM6IFtwYXRoLmpvaW4oaG9tZSwgXCIuY3Vyc29yXCIpXSB9LFxuICAgICAgeyBuYW1lOiBcIkNsYXVkZSBEZXNrdG9wXCIsIHBhdGhzOiBbXG4gICAgICAgIHBhdGguam9pbihob21lLCBcIkxpYnJhcnlcIiwgXCJBcHBsaWNhdGlvbiBTdXBwb3J0XCIsIFwiQ2xhdWRlXCIpLFxuICAgICAgICBwYXRoLmpvaW4oaG9tZSwgXCIuY29uZmlnXCIsIFwiY2xhdWRlXCIpLFxuICAgICAgXX0sXG4gICAgICB7IG5hbWU6IFwiVlMgQ29kZSBNQ1BcIiwgcGF0aHM6IFtcbiAgICAgICAgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwiLnZzY29kZVwiLCBcIm1jcC5qc29uXCIpLFxuICAgICAgICBwYXRoLmpvaW4oaG9tZSwgXCIudnNjb2RlXCIsIFwibWNwLmpzb25cIiksXG4gICAgICBdfSxcbiAgICAgIHsgbmFtZTogXCJDbGF1ZGUgQ29kZVwiLCBwYXRoczogW1xuICAgICAgICBwYXRoLmpvaW4oaG9tZSwgXCIuY2xhdWRlXCIpLFxuICAgICAgXX0sXG4gICAgXTtcblxuICAgIGZvciAoY29uc3QgY2hlY2sgb2YgY2hlY2tzKSB7XG4gICAgICBmb3IgKGNvbnN0IHAgb2YgY2hlY2sucGF0aHMpIHtcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMocCkpIHtcbiAgICAgICAgICBkZXRlY3RlZC5wdXNoKGNoZWNrLm5hbWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRldGVjdGVkLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgbmFtZTogXCJBSSBBZ2VudHNcIixcbiAgICAgICAgc3RhdHVzOiBcIm9rXCIsXG4gICAgICAgIG1lc3NhZ2U6IGBEZXRlY3RlZDogJHtkZXRlY3RlZC5qb2luKFwiLCBcIil9YCxcbiAgICAgICAgZGV0YWlsczogXCJVc2UgQHNlbmRseS9tY3AgZm9yIEFJIGFnZW50IFNNUyBpbnRlZ3JhdGlvblwiLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkUmVzdWx0KHtcbiAgICAgICAgbmFtZTogXCJBSSBBZ2VudHNcIixcbiAgICAgICAgc3RhdHVzOiBcIm9rXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiTm9uZSBkZXRlY3RlZFwiLFxuICAgICAgICBkZXRhaWxzOiBcIkluc3RhbGwgQHNlbmRseS9tY3AgZm9yIEFJIGFnZW50IGludGVncmF0aW9uXCIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlUmVwb3J0KCk6IERvY3RvclJlcG9ydCB7XG4gICAgY29uc3QgcGFzc2VkID0gdGhpcy5yZXN1bHRzLmZpbHRlcigocikgPT4gci5zdGF0dXMgPT09IFwib2tcIikubGVuZ3RoO1xuICAgIGNvbnN0IHdhcm5pbmdzID0gdGhpcy5yZXN1bHRzLmZpbHRlcigocikgPT4gci5zdGF0dXMgPT09IFwid2FybmluZ1wiKS5sZW5ndGg7XG4gICAgY29uc3QgZXJyb3JzID0gdGhpcy5yZXN1bHRzLmZpbHRlcigocikgPT4gci5zdGF0dXMgPT09IFwiZXJyb3JcIikubGVuZ3RoO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgICAgcmVzdWx0czogdGhpcy5yZXN1bHRzLFxuICAgICAgc3VtbWFyeToge1xuICAgICAgICBwYXNzZWQsXG4gICAgICAgIHdhcm5pbmdzLFxuICAgICAgICBlcnJvcnMsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -24,7 +24,7 @@ export default class DraftsList extends AuthenticatedCommand {
|
|
|
24
24
|
async run() {
|
|
25
25
|
const { flags } = await this.parse(DraftsList);
|
|
26
26
|
const response = await apiClient.get("/api/v1/drafts", {
|
|
27
|
-
...(flags["conversation-id"] && {
|
|
27
|
+
...(flags["conversation-id"] && { conversation_id: flags["conversation-id"] }),
|
|
28
28
|
...(flags.status && { status: flags.status }),
|
|
29
29
|
});
|
|
30
30
|
if (isJsonMode()) {
|
|
@@ -77,4 +77,4 @@ export default class DraftsList extends AuthenticatedCommand {
|
|
|
77
77
|
]);
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9kcmFmdHMvbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osWUFBWSxFQUNaLGtCQUFrQixFQUNsQixNQUFNLEVBQ04sVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUFjN0IsTUFBTSxDQUFDLE9BQU8sT0FBTyxVQUFXLFNBQVEsb0JBQW9CO0lBQzFELE1BQU0sQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDO0lBRW5DLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsK0JBQStCO1FBQy9CLGdEQUFnRDtRQUNoRCw2REFBNkQ7UUFDN0Qsc0NBQXNDO0tBQ3ZDLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDOUIsV0FBVyxFQUFFLDJCQUEyQjtTQUN6QyxDQUFDO1FBQ0YsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbkIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsZ0RBQWdEO1lBQzdELE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO1NBQzdDLENBQUM7S0FDSCxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRS9DLE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FDbEMsZ0JBQWdCLEVBQ2hCO1lBQ0UsR0FBRyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDOUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzlDLENBQ0YsQ0FBQztRQUVGLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDeEIsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUNULE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sU0FBUyxDQUFDLENBQ3JELENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFZCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtZQUNuQjtnQkFDRSxNQUFNLEVBQUUsSUFBSTtnQkFDWixHQUFHLEVBQUUsSUFBSTtnQkFDVCxLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3hDO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLGNBQWM7Z0JBQ3RCLEdBQUcsRUFBRSxnQkFBZ0I7Z0JBQ3JCLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDeEM7WUFDRDtnQkFDRSxNQUFNLEVBQUUsTUFBTTtnQkFDZCxHQUFHLEVBQUUsTUFBTTtnQkFDWCxLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDZixJQUFJLENBQUMsQ0FBQzt3QkFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQy9CLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdkIsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzdELENBQUM7YUFDRjtZQUNEO2dCQUNFLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixHQUFHLEVBQUUsUUFBUTtnQkFDYixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUM7WUFDRDtnQkFDRSxNQUFNLEVBQUUsU0FBUztnQkFDakIsR0FBRyxFQUFFLFdBQVc7Z0JBQ2hCLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hFO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHRhYmxlLFxuICBqc29uLFxuICBpbmZvLFxuICBmb3JtYXRTdGF0dXMsXG4gIGZvcm1hdFJlbGF0aXZlVGltZSxcbiAgY29sb3JzLFxuICBpc0pzb25Nb2RlLFxufSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuXG5pbnRlcmZhY2UgRHJhZnQge1xuICBpZDogc3RyaW5nO1xuICBjb252ZXJzYXRpb25JZDogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIExpc3REcmFmdHNSZXNwb25zZSB7XG4gIGRhdGE6IERyYWZ0W107XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyYWZ0c0xpc3QgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiTGlzdCBkcmFmdHNcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBkcmFmdHMgbGlzdFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZHJhZnRzIGxpc3QgLS1zdGF0dXMgcGVuZGluZ1wiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZHJhZnRzIGxpc3QgLS1jb252ZXJzYXRpb24taWQgY29udl9hYmMxMjNcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IGRyYWZ0cyBsaXN0IC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgXCJjb252ZXJzYXRpb24taWRcIjogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkZpbHRlciBieSBjb252ZXJzYXRpb24gSURcIixcbiAgICB9KSxcbiAgICBzdGF0dXM6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcInNcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkZpbHRlciBieSBzdGF0dXMgKHBlbmRpbmcsIGFwcHJvdmVkLCByZWplY3RlZClcIixcbiAgICAgIG9wdGlvbnM6IFtcInBlbmRpbmdcIiwgXCJhcHByb3ZlZFwiLCBcInJlamVjdGVkXCJdLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKERyYWZ0c0xpc3QpO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQuZ2V0PExpc3REcmFmdHNSZXNwb25zZT4oXG4gICAgICBcIi9hcGkvdjEvZHJhZnRzXCIsXG4gICAgICB7XG4gICAgICAgIC4uLihmbGFnc1tcImNvbnZlcnNhdGlvbi1pZFwiXSAmJiB7IGNvbnZlcnNhdGlvbl9pZDogZmxhZ3NbXCJjb252ZXJzYXRpb24taWRcIl0gfSksXG4gICAgICAgIC4uLihmbGFncy5zdGF0dXMgJiYgeyBzdGF0dXM6IGZsYWdzLnN0YXR1cyB9KSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaW5mbyhcIk5vIGRyYWZ0cyBmb3VuZFwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgY29sb3JzLmRpbShgU2hvd2luZyAke3Jlc3BvbnNlLmRhdGEubGVuZ3RofSBkcmFmdHNgKSxcbiAgICApO1xuICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICB0YWJsZShyZXNwb25zZS5kYXRhLCBbXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJJRFwiLFxuICAgICAgICBrZXk6IFwiaWRcIixcbiAgICAgICAgd2lkdGg6IDIwLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiBjb2xvcnMuZGltKFN0cmluZyh2KSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiQ29udmVyc2F0aW9uXCIsXG4gICAgICAgIGtleTogXCJjb252ZXJzYXRpb25JZFwiLFxuICAgICAgICB3aWR0aDogMjAsXG4gICAgICAgIGZvcm1hdHRlcjogKHYpID0+IGNvbG9ycy5kaW0oU3RyaW5nKHYpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJUZXh0XCIsXG4gICAgICAgIGtleTogXCJ0ZXh0XCIsXG4gICAgICAgIHdpZHRoOiAzMCxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4ge1xuICAgICAgICAgIGlmICghdikgcmV0dXJuIGNvbG9ycy5kaW0oXCItXCIpO1xuICAgICAgICAgIGNvbnN0IHRleHQgPSBTdHJpbmcodik7XG4gICAgICAgICAgcmV0dXJuIHRleHQubGVuZ3RoID4gMjcgPyB0ZXh0LnNsaWNlKDAsIDI3KSArIFwiLi4uXCIgOiB0ZXh0O1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIlN0YXR1c1wiLFxuICAgICAgICBrZXk6IFwic3RhdHVzXCIsXG4gICAgICAgIHdpZHRoOiAxMixcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gZm9ybWF0U3RhdHVzKFN0cmluZyh2KSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiQ3JlYXRlZFwiLFxuICAgICAgICBrZXk6IFwiY3JlYXRlZEF0XCIsXG4gICAgICAgIHdpZHRoOiAxNCxcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gKHYgPyBmb3JtYXRSZWxhdGl2ZVRpbWUoU3RyaW5nKHYpKSA6IGNvbG9ycy5kaW0oXCItXCIpKSxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class EnterpriseGenerateBusinessPage extends AuthenticatedCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
name: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
7
|
+
"use-case": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
8
|
+
summary: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
9
|
+
email: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
10
|
+
phone: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
11
|
+
address: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
12
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
13
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
14
|
+
};
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
3
|
+
import { apiClient } from "../../lib/api-client.js";
|
|
4
|
+
import { success, json, colors, isJsonMode, spinner, } from "../../lib/output.js";
|
|
5
|
+
export default class EnterpriseGenerateBusinessPage extends AuthenticatedCommand {
|
|
6
|
+
static description = "Generate a hosted business page for verification";
|
|
7
|
+
static examples = [
|
|
8
|
+
'<%= config.bin %> enterprise generate-business-page --name "Acme Services" --use-case "Appointment Reminders"',
|
|
9
|
+
'<%= config.bin %> enterprise generate-business-page --name "Acme Services" --email hello@acme.com --phone +15551234567',
|
|
10
|
+
];
|
|
11
|
+
static flags = {
|
|
12
|
+
...AuthenticatedCommand.baseFlags,
|
|
13
|
+
name: Flags.string({
|
|
14
|
+
char: "n",
|
|
15
|
+
description: "Business name (required)",
|
|
16
|
+
required: true,
|
|
17
|
+
}),
|
|
18
|
+
"use-case": Flags.string({
|
|
19
|
+
description: "Use case (e.g. Appointment Reminders)",
|
|
20
|
+
}),
|
|
21
|
+
summary: Flags.string({
|
|
22
|
+
description: "Use case summary",
|
|
23
|
+
}),
|
|
24
|
+
email: Flags.string({
|
|
25
|
+
description: "Contact email",
|
|
26
|
+
}),
|
|
27
|
+
phone: Flags.string({
|
|
28
|
+
description: "Contact phone",
|
|
29
|
+
}),
|
|
30
|
+
address: Flags.string({
|
|
31
|
+
description: "Business address",
|
|
32
|
+
}),
|
|
33
|
+
};
|
|
34
|
+
async run() {
|
|
35
|
+
const { flags } = await this.parse(EnterpriseGenerateBusinessPage);
|
|
36
|
+
const spin = spinner("Generating business page...");
|
|
37
|
+
spin.start();
|
|
38
|
+
const body = { businessName: flags.name };
|
|
39
|
+
if (flags["use-case"])
|
|
40
|
+
body.useCase = flags["use-case"];
|
|
41
|
+
if (flags.summary)
|
|
42
|
+
body.useCaseSummary = flags.summary;
|
|
43
|
+
if (flags.email)
|
|
44
|
+
body.contactEmail = flags.email;
|
|
45
|
+
if (flags.phone)
|
|
46
|
+
body.contactPhone = flags.phone;
|
|
47
|
+
if (flags.address)
|
|
48
|
+
body.businessAddress = flags.address;
|
|
49
|
+
const response = await apiClient.post("/api/v1/enterprise/business-page/generate", body);
|
|
50
|
+
spin.succeed("Business page generated");
|
|
51
|
+
if (isJsonMode()) {
|
|
52
|
+
json(response);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
success("Business page generated", {
|
|
56
|
+
URL: colors.success(response.url),
|
|
57
|
+
Slug: response.slug,
|
|
58
|
+
"Page ID": colors.dim(response.pageId),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtYnVzaW5lc3MtcGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9lbnRlcnByaXNlL2dlbmVyYXRlLWJ1c2luZXNzLXBhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUNMLE9BQU8sRUFDUCxJQUFJLEVBQ0osTUFBTSxFQUNOLFVBQVUsRUFDVixPQUFPLEdBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQVE3QixNQUFNLENBQUMsT0FBTyxPQUFPLDhCQUErQixTQUFRLG9CQUFvQjtJQUM5RSxNQUFNLENBQUMsV0FBVyxHQUFHLGtEQUFrRCxDQUFDO0lBRXhFLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsK0dBQStHO1FBQy9HLHdIQUF3SDtLQUN6SCxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztRQUNqQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNqQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSwwQkFBMEI7WUFDdkMsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBQ0YsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDdkIsV0FBVyxFQUFFLHVDQUF1QztTQUNyRCxDQUFDO1FBQ0YsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDcEIsV0FBVyxFQUFFLGtCQUFrQjtTQUNoQyxDQUFDO1FBQ0YsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbEIsV0FBVyxFQUFFLGVBQWU7U0FDN0IsQ0FBQztRQUNGLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2xCLFdBQVcsRUFBRSxlQUFlO1NBQzdCLENBQUM7UUFDRixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNwQixXQUFXLEVBQUUsa0JBQWtCO1NBQ2hDLENBQUM7S0FDSCxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFFbkUsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWIsTUFBTSxJQUFJLEdBQTRCLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuRSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RCxJQUFJLEtBQUssQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3ZELElBQUksS0FBSyxDQUFDLEtBQUs7WUFBRSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDakQsSUFBSSxLQUFLLENBQUMsS0FBSztZQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNqRCxJQUFJLEtBQUssQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRXhELE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FDbkMsMkNBQTJDLEVBQzNDLElBQUksQ0FDTCxDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRXhDLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyx5QkFBeUIsRUFBRTtZQUNqQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQ2pDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSTtZQUNuQixTQUFTLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1NBQ3ZDLENBQUMsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBzdWNjZXNzLFxuICBqc29uLFxuICBjb2xvcnMsXG4gIGlzSnNvbk1vZGUsXG4gIHNwaW5uZXIsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBHZW5lcmF0ZUJ1c2luZXNzUGFnZVJlc3BvbnNlIHtcbiAgc2x1Zzogc3RyaW5nO1xuICB1cmw6IHN0cmluZztcbiAgcGFnZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVudGVycHJpc2VHZW5lcmF0ZUJ1c2luZXNzUGFnZSBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gXCJHZW5lcmF0ZSBhIGhvc3RlZCBidXNpbmVzcyBwYWdlIGZvciB2ZXJpZmljYXRpb25cIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgJzwlPSBjb25maWcuYmluICU+IGVudGVycHJpc2UgZ2VuZXJhdGUtYnVzaW5lc3MtcGFnZSAtLW5hbWUgXCJBY21lIFNlcnZpY2VzXCIgLS11c2UtY2FzZSBcIkFwcG9pbnRtZW50IFJlbWluZGVyc1wiJyxcbiAgICAnPCU9IGNvbmZpZy5iaW4gJT4gZW50ZXJwcmlzZSBnZW5lcmF0ZS1idXNpbmVzcy1wYWdlIC0tbmFtZSBcIkFjbWUgU2VydmljZXNcIiAtLWVtYWlsIGhlbGxvQGFjbWUuY29tIC0tcGhvbmUgKzE1NTUxMjM0NTY3JyxcbiAgXTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICAgIG5hbWU6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcIm5cIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkJ1c2luZXNzIG5hbWUgKHJlcXVpcmVkKVwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gICAgXCJ1c2UtY2FzZVwiOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiVXNlIGNhc2UgKGUuZy4gQXBwb2ludG1lbnQgUmVtaW5kZXJzKVwiLFxuICAgIH0pLFxuICAgIHN1bW1hcnk6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJVc2UgY2FzZSBzdW1tYXJ5XCIsXG4gICAgfSksXG4gICAgZW1haWw6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJDb250YWN0IGVtYWlsXCIsXG4gICAgfSksXG4gICAgcGhvbmU6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJDb250YWN0IHBob25lXCIsXG4gICAgfSksXG4gICAgYWRkcmVzczogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkJ1c2luZXNzIGFkZHJlc3NcIixcbiAgICB9KSxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShFbnRlcnByaXNlR2VuZXJhdGVCdXNpbmVzc1BhZ2UpO1xuXG4gICAgY29uc3Qgc3BpbiA9IHNwaW5uZXIoXCJHZW5lcmF0aW5nIGJ1c2luZXNzIHBhZ2UuLi5cIik7XG4gICAgc3Bpbi5zdGFydCgpO1xuXG4gICAgY29uc3QgYm9keTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IGJ1c2luZXNzTmFtZTogZmxhZ3MubmFtZSB9O1xuICAgIGlmIChmbGFnc1tcInVzZS1jYXNlXCJdKSBib2R5LnVzZUNhc2UgPSBmbGFnc1tcInVzZS1jYXNlXCJdO1xuICAgIGlmIChmbGFncy5zdW1tYXJ5KSBib2R5LnVzZUNhc2VTdW1tYXJ5ID0gZmxhZ3Muc3VtbWFyeTtcbiAgICBpZiAoZmxhZ3MuZW1haWwpIGJvZHkuY29udGFjdEVtYWlsID0gZmxhZ3MuZW1haWw7XG4gICAgaWYgKGZsYWdzLnBob25lKSBib2R5LmNvbnRhY3RQaG9uZSA9IGZsYWdzLnBob25lO1xuICAgIGlmIChmbGFncy5hZGRyZXNzKSBib2R5LmJ1c2luZXNzQWRkcmVzcyA9IGZsYWdzLmFkZHJlc3M7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5wb3N0PEdlbmVyYXRlQnVzaW5lc3NQYWdlUmVzcG9uc2U+KFxuICAgICAgXCIvYXBpL3YxL2VudGVycHJpc2UvYnVzaW5lc3MtcGFnZS9nZW5lcmF0ZVwiLFxuICAgICAgYm9keSxcbiAgICApO1xuXG4gICAgc3Bpbi5zdWNjZWVkKFwiQnVzaW5lc3MgcGFnZSBnZW5lcmF0ZWRcIik7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdWNjZXNzKFwiQnVzaW5lc3MgcGFnZSBnZW5lcmF0ZWRcIiwge1xuICAgICAgVVJMOiBjb2xvcnMuc3VjY2VzcyhyZXNwb25zZS51cmwpLFxuICAgICAgU2x1ZzogcmVzcG9uc2Uuc2x1ZyxcbiAgICAgIFwiUGFnZSBJRFwiOiBjb2xvcnMuZGltKHJlc3BvbnNlLnBhZ2VJZCksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class EnterpriseUploadVerificationDocument extends AuthenticatedCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
file: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
7
|
+
"workspace-id": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
8
|
+
"verification-id": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
9
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
10
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
3
|
+
import { success, json, isJsonMode, spinner } from "../../lib/output.js";
|
|
4
|
+
import { getAuthToken, getConfigValue, getEffectiveValue, } from "../../lib/config.js";
|
|
5
|
+
import { ApiError, AuthenticationError, } from "../../lib/api-client.js";
|
|
6
|
+
import * as fs from "node:fs";
|
|
7
|
+
import * as path from "node:path";
|
|
8
|
+
export default class EnterpriseUploadVerificationDocument extends AuthenticatedCommand {
|
|
9
|
+
static description = "Upload a verification document (image or PDF)";
|
|
10
|
+
static examples = [
|
|
11
|
+
'<%= config.bin %> enterprise upload-verification-document --file ./ein-letter.png',
|
|
12
|
+
'<%= config.bin %> enterprise upload-verification-document --file ./doc.pdf --workspace-id ws_123',
|
|
13
|
+
];
|
|
14
|
+
static flags = {
|
|
15
|
+
...AuthenticatedCommand.baseFlags,
|
|
16
|
+
file: Flags.string({
|
|
17
|
+
char: "f",
|
|
18
|
+
description: "Path to the file to upload (image or PDF)",
|
|
19
|
+
required: true,
|
|
20
|
+
}),
|
|
21
|
+
"workspace-id": Flags.string({
|
|
22
|
+
description: "Workspace ID to associate the document with",
|
|
23
|
+
}),
|
|
24
|
+
"verification-id": Flags.string({
|
|
25
|
+
description: "Verification ID to associate the document with",
|
|
26
|
+
}),
|
|
27
|
+
};
|
|
28
|
+
async run() {
|
|
29
|
+
const { flags } = await this.parse(EnterpriseUploadVerificationDocument);
|
|
30
|
+
const filePath = flags.file;
|
|
31
|
+
if (!fs.existsSync(filePath)) {
|
|
32
|
+
this.error(`File not found: ${filePath}`);
|
|
33
|
+
}
|
|
34
|
+
const filename = path.basename(filePath);
|
|
35
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
36
|
+
let mimetype = "application/octet-stream";
|
|
37
|
+
if (ext === ".jpg" || ext === ".jpeg")
|
|
38
|
+
mimetype = "image/jpeg";
|
|
39
|
+
else if (ext === ".png")
|
|
40
|
+
mimetype = "image/png";
|
|
41
|
+
else if (ext === ".gif")
|
|
42
|
+
mimetype = "image/gif";
|
|
43
|
+
else if (ext === ".pdf")
|
|
44
|
+
mimetype = "application/pdf";
|
|
45
|
+
else if (ext === ".webp")
|
|
46
|
+
mimetype = "image/webp";
|
|
47
|
+
const fileBuffer = fs.readFileSync(filePath);
|
|
48
|
+
const boundary = `----FormBoundary${Date.now()}${Math.random().toString(36).substring(2)}`;
|
|
49
|
+
const parts = [];
|
|
50
|
+
parts.push(Buffer.from(`--${boundary}\r\n` +
|
|
51
|
+
`Content-Disposition: form-data; name="file"; filename="${filename}"\r\n` +
|
|
52
|
+
`Content-Type: ${mimetype}\r\n\r\n`));
|
|
53
|
+
parts.push(fileBuffer);
|
|
54
|
+
if (flags["workspace-id"]) {
|
|
55
|
+
parts.push(Buffer.from(`\r\n--${boundary}\r\n` +
|
|
56
|
+
`Content-Disposition: form-data; name="workspaceId"\r\n\r\n` +
|
|
57
|
+
flags["workspace-id"]));
|
|
58
|
+
}
|
|
59
|
+
if (flags["verification-id"]) {
|
|
60
|
+
parts.push(Buffer.from(`\r\n--${boundary}\r\n` +
|
|
61
|
+
`Content-Disposition: form-data; name="verificationId"\r\n\r\n` +
|
|
62
|
+
flags["verification-id"]));
|
|
63
|
+
}
|
|
64
|
+
parts.push(Buffer.from(`\r\n--${boundary}--\r\n`));
|
|
65
|
+
const body = Buffer.concat(parts);
|
|
66
|
+
const token = getAuthToken();
|
|
67
|
+
if (!token) {
|
|
68
|
+
throw new AuthenticationError();
|
|
69
|
+
}
|
|
70
|
+
const baseUrl = getConfigValue("baseUrl") || "https://sendly.live";
|
|
71
|
+
const timeout = getEffectiveValue("timeout");
|
|
72
|
+
const url = `${baseUrl}/api/v1/enterprise/verification-document/upload`;
|
|
73
|
+
const headers = {
|
|
74
|
+
"Content-Type": `multipart/form-data; boundary=${boundary}`,
|
|
75
|
+
Accept: "application/json",
|
|
76
|
+
Authorization: `Bearer ${token}`,
|
|
77
|
+
};
|
|
78
|
+
const orgId = getEffectiveValue("currentOrgId");
|
|
79
|
+
if (orgId) {
|
|
80
|
+
headers["X-Organization-Id"] = orgId;
|
|
81
|
+
}
|
|
82
|
+
const spin = spinner("Uploading verification document...");
|
|
83
|
+
spin.start();
|
|
84
|
+
const controller = new AbortController();
|
|
85
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
86
|
+
const resp = await fetch(url, {
|
|
87
|
+
method: "POST",
|
|
88
|
+
headers,
|
|
89
|
+
body,
|
|
90
|
+
signal: controller.signal,
|
|
91
|
+
});
|
|
92
|
+
clearTimeout(timeoutId);
|
|
93
|
+
const data = (await resp.json().catch(() => ({})));
|
|
94
|
+
if (!resp.ok) {
|
|
95
|
+
spin.fail("Upload failed");
|
|
96
|
+
throw new ApiError(data.error || "upload_error", data.message || `HTTP ${resp.status}`, resp.status);
|
|
97
|
+
}
|
|
98
|
+
spin.succeed("Document uploaded");
|
|
99
|
+
if (isJsonMode()) {
|
|
100
|
+
json(data);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
success("Verification document uploaded", {
|
|
104
|
+
ID: data.id,
|
|
105
|
+
URL: data.url,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLXZlcmlmaWNhdGlvbi1kb2N1bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9lbnRlcnByaXNlL3VwbG9hZC12ZXJpZmljYXRpb24tZG9jdW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekUsT0FBTyxFQUNMLFlBQVksRUFDWixjQUFjLEVBQ2QsaUJBQWlCLEdBQ2xCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUNMLFFBQVEsRUFDUixtQkFBbUIsR0FDcEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEtBQUssSUFBSSxNQUFNLFdBQVcsQ0FBQztBQU9sQyxNQUFNLENBQUMsT0FBTyxPQUFPLG9DQUFxQyxTQUFRLG9CQUFvQjtJQUNwRixNQUFNLENBQUMsV0FBVyxHQUFHLCtDQUErQyxDQUFDO0lBRXJFLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsbUZBQW1GO1FBQ25GLGtHQUFrRztLQUNuRyxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztRQUNqQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNqQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSwyQ0FBMkM7WUFDeEQsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBQ0YsY0FBYyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDM0IsV0FBVyxFQUFFLDZDQUE2QztTQUMzRCxDQUFD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QU0sSUFBSSxRQUFRLENBQ2hCLElBQUksQ0FBQyxLQUFLLElBQUksY0FBYyxFQUM1QixJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUNyQyxJQUFJLENBQUMsTUFBTSxDQUNaLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWxDLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDWCxPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sQ0FBQyxnQ0FBZ0MsRUFBRTtZQUN4QyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IHN1Y2Nlc3MsIGpzb24sIGlzSnNvbk1vZGUsIHNwaW5uZXIgfSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuaW1wb3J0IHtcbiAgZ2V0QXV0aFRva2VuLFxuICBnZXRDb25maWdWYWx1ZSxcbiAgZ2V0RWZmZWN0aXZlVmFsdWUsXG59IGZyb20gXCIuLi8uLi9saWIvY29uZmlnLmpzXCI7XG5pbXBvcnQge1xuICBBcGlFcnJvcixcbiAgQXV0aGVudGljYXRpb25FcnJvcixcbn0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbmludGVyZmFjZSBVcGxvYWRSZXNwb25zZSB7XG4gIHVybDogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFbnRlcnByaXNlVXBsb2FkVmVyaWZpY2F0aW9uRG9jdW1lbnQgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiVXBsb2FkIGEgdmVyaWZpY2F0aW9uIGRvY3VtZW50IChpbWFnZSBvciBQREYpXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgICc8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIHVwbG9hZC12ZXJpZmljYXRpb24tZG9jdW1lbnQgLS1maWxlIC4vZWluLWxldHRlci5wbmcnLFxuICAgICc8JT0gY29uZmlnLmJpbiAlPiBlbnRlcnByaXNlIHVwbG9hZC12ZXJpZmljYXRpb24tZG9jdW1lbnQgLS1maWxlIC4vZG9jLnBkZiAtLXdvcmtzcGFjZS1pZCB3c18xMjMnLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgZmlsZTogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGNoYXI6IFwiZlwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiUGF0aCB0byB0aGUgZmlsZSB0byB1cGxvYWQgKGltYWdlIG9yIFBERilcIixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICAgIFwid29ya3NwYWNlLWlkXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJXb3Jrc3BhY2UgSUQgdG8gYXNzb2NpYXRlIHRoZSBkb2N1bWVudCB3aXRoXCIsXG4gICAgfSksXG4gICAgXCJ2ZXJpZmljYXRpb24taWRcIjogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlZlcmlmaWNhdGlvbiBJRCB0byBhc3NvY2lhdGUgdGhlIGRvY3VtZW50IHdpdGhcIixcbiAgICB9KSxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShFbnRlcnByaXNlVXBsb2FkVmVyaWZpY2F0aW9uRG9jdW1lbnQpO1xuXG4gICAgY29uc3QgZmlsZVBhdGggPSBmbGFncy5maWxlO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAgIHRoaXMuZXJyb3IoYEZpbGUgbm90IGZvdW5kOiAke2ZpbGVQYXRofWApO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVuYW1lID0gcGF0aC5iYXNlbmFtZShmaWxlUGF0aCk7XG4gICAgY29uc3QgZXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgbGV0IG1pbWV0eXBlID0gXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIjtcbiAgICBpZiAoZXh0ID09PSBcIi5qcGdcIiB8fCBleHQgPT09IFwiLmpwZWdcIikgbWltZXR5cGUgPSBcImltYWdlL2pwZWdcIjtcbiAgICBlbHNlIGlmIChleHQgPT09IFwiLnBuZ1wiKSBtaW1ldHlwZSA9IFwiaW1hZ2UvcG5nXCI7XG4gICAgZWxzZSBpZiAoZXh0ID09PSBcIi5naWZcIikgbWltZXR5cGUgPSBcImltYWdlL2dpZlwiO1xuICAgIGVsc2UgaWYgKGV4dCA9PT0gXCIucGRmXCIpIG1pbWV0eXBlID0gXCJhcHBsaWNhdGlvbi9wZGZcIjtcbiAgICBlbHNlIGlmIChleHQgPT09IFwiLndlYnBcIikgbWltZXR5cGUgPSBcImltYWdlL3dlYnBcIjtcblxuICAgIGNvbnN0IGZpbGVCdWZmZXIgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgpO1xuXG4gICAgY29uc3QgYm91bmRhcnkgPSBgLS0tLUZvcm1Cb3VuZGFyeSR7RGF0ZS5ub3coKX0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKX1gO1xuICAgIGNvbnN0IHBhcnRzOiBCdWZmZXJbXSA9IFtdO1xuXG4gICAgcGFydHMucHVzaChCdWZmZXIuZnJvbShcbiAgICAgIGAtLSR7Ym91bmRhcnl9XFxyXFxuYCArXG4gICAgICBgQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPVwiZmlsZVwiOyBmaWxlbmFtZT1cIiR7ZmlsZW5hbWV9XCJcXHJcXG5gICtcbiAgICAgIGBDb250ZW50LVR5cGU6ICR7bWltZXR5cGV9XFxyXFxuXFxyXFxuYCxcbiAgICApKTtcbiAgICBwYXJ0cy5wdXNoKGZpbGVCdWZmZXIpO1xuXG4gICAgaWYgKGZsYWdzW1wid29ya3NwYWNlLWlkXCJdKSB7XG4gICAgICBwYXJ0cy5wdXNoKEJ1ZmZlci5mcm9tKFxuICAgICAgICBgXFxyXFxuLS0ke2JvdW5kYXJ5fVxcclxcbmAgK1xuICAgICAgICBgQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPVwid29ya3NwYWNlSWRcIlxcclxcblxcclxcbmAgK1xuICAgICAgICBmbGFnc1tcIndvcmtzcGFjZS1pZFwiXSxcbiAgICAgICkpO1xuICAgIH1cblxuICAgIGlmIChmbGFnc1tcInZlcmlmaWNhdGlvbi1pZFwiXSkge1xuICAgICAgcGFydHMucHVzaChCdWZmZXIuZnJvbShcbiAgICAgICAgYFxcclxcbi0tJHtib3VuZGFyeX1cXHJcXG5gICtcbiAgICAgICAgYENvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT1cInZlcmlmaWNhdGlvbklkXCJcXHJcXG5cXHJcXG5gICtcbiAgICAgICAgZmxhZ3NbXCJ2ZXJpZmljYXRpb24taWRcIl0sXG4gICAgICApKTtcbiAgICB9XG5cbiAgICBwYXJ0cy5wdXNoKEJ1ZmZlci5mcm9tKGBcXHJcXG4tLSR7Ym91bmRhcnl9LS1cXHJcXG5gKSk7XG5cbiAgICBjb25zdCBib2R5ID0gQnVmZmVyLmNvbmNhdChwYXJ0cyk7XG5cbiAgICBjb25zdCB0b2tlbiA9IGdldEF1dGhUb2tlbigpO1xuICAgIGlmICghdG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKCk7XG4gICAgfVxuXG4gICAgY29uc3QgYmFzZVVybCA9IGdldENvbmZpZ1ZhbHVlKFwiYmFzZVVybFwiKSB8fCBcImh0dHBzOi8vc2VuZGx5LmxpdmVcIjtcbiAgICBjb25zdCB0aW1lb3V0ID0gZ2V0RWZmZWN0aXZlVmFsdWUoXCJ0aW1lb3V0XCIpO1xuICAgIGNvbnN0IHVybCA9IGAke2Jhc2VVcmx9L2FwaS92MS9lbnRlcnByaXNlL3ZlcmlmaWNhdGlvbi1kb2N1bWVudC91cGxvYWRgO1xuXG4gICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIFwiQ29udGVudC1UeXBlXCI6IGBtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0ke2JvdW5kYXJ5fWAsXG4gICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWAsXG4gICAgfTtcblxuICAgIGNvbnN0IG9yZ0lkID0gZ2V0RWZmZWN0aXZlVmFsdWUoXCJjdXJyZW50T3JnSWRcIik7XG4gICAgaWYgKG9yZ0lkKSB7XG4gICAgICBoZWFkZXJzW1wiWC1Pcmdhbml6YXRpb24tSWRcIl0gPSBvcmdJZDtcbiAgICB9XG5cbiAgICBjb25zdCBzcGluID0gc3Bpbm5lcihcIlVwbG9hZGluZyB2ZXJpZmljYXRpb24gZG9jdW1lbnQuLi5cIik7XG4gICAgc3Bpbi5zdGFydCgpO1xuXG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSwgdGltZW91dCk7XG5cbiAgICBjb25zdCByZXNwID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgaGVhZGVycyxcbiAgICAgIGJvZHksXG4gICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG5cbiAgICBjb25zdCBkYXRhID0gKGF3YWl0IHJlc3AuanNvbigpLmNhdGNoKCgpID0+ICh7fSkpKSBhcyBVcGxvYWRSZXNwb25zZSAmIHtcbiAgICAgIGVycm9yPzogc3RyaW5nO1xuICAgICAgbWVzc2FnZT86IHN0cmluZztcbiAgICB9O1xuXG4gICAgaWYgKCFyZXNwLm9rKSB7XG4gICAgICBzcGluLmZhaWwoXCJVcGxvYWQgZmFpbGVkXCIpO1xuICAgICAgdGhyb3cgbmV3IEFwaUVycm9yKFxuICAgICAgICBkYXRhLmVycm9yIHx8IFwidXBsb2FkX2Vycm9yXCIsXG4gICAgICAgIGRhdGEubWVzc2FnZSB8fCBgSFRUUCAke3Jlc3Auc3RhdHVzfWAsXG4gICAgICAgIHJlc3Auc3RhdHVzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBzcGluLnN1Y2NlZWQoXCJEb2N1bWVudCB1cGxvYWRlZFwiKTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24oZGF0YSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3VjY2VzcyhcIlZlcmlmaWNhdGlvbiBkb2N1bWVudCB1cGxvYWRlZFwiLCB7XG4gICAgICBJRDogZGF0YS5pZCxcbiAgICAgIFVSTDogZGF0YS51cmwsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class EventsListen extends AuthenticatedCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
types: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
7
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
8
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
9
|
+
};
|
|
10
|
+
run(): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
3
|
+
import { getAuthToken, getEffectiveValue } from "../../lib/config.js";
|
|
4
|
+
import { colors, json, isJsonMode } from "../../lib/output.js";
|
|
5
|
+
export default class EventsListen extends AuthenticatedCommand {
|
|
6
|
+
static description = "Listen to real-time events via Server-Sent Events. Streams message deliveries, conversation updates, and more.";
|
|
7
|
+
static examples = [
|
|
8
|
+
"<%= config.bin %> events listen",
|
|
9
|
+
"<%= config.bin %> events listen --types new_message,conversation_update",
|
|
10
|
+
"<%= config.bin %> events listen --json",
|
|
11
|
+
];
|
|
12
|
+
static flags = {
|
|
13
|
+
...AuthenticatedCommand.baseFlags,
|
|
14
|
+
types: Flags.string({
|
|
15
|
+
description: "Comma-separated event types to filter (default: all)",
|
|
16
|
+
}),
|
|
17
|
+
};
|
|
18
|
+
async run() {
|
|
19
|
+
const { flags } = await this.parse(EventsListen);
|
|
20
|
+
const apiKey = getAuthToken();
|
|
21
|
+
const baseUrl = getEffectiveValue("baseUrl");
|
|
22
|
+
const url = new URL("/api/v1/events", baseUrl);
|
|
23
|
+
if (flags.types)
|
|
24
|
+
url.searchParams.set("types", flags.types);
|
|
25
|
+
if (!isJsonMode()) {
|
|
26
|
+
console.log(colors.bold("Listening for events..."));
|
|
27
|
+
console.log(colors.dim(`Endpoint: ${url.toString()}`));
|
|
28
|
+
if (flags.types)
|
|
29
|
+
console.log(colors.dim(`Filtering: ${flags.types}`));
|
|
30
|
+
console.log(colors.dim("Press Ctrl+C to stop\n"));
|
|
31
|
+
}
|
|
32
|
+
const response = await fetch(url.toString(), {
|
|
33
|
+
headers: { Authorization: `Bearer ${apiKey}` },
|
|
34
|
+
});
|
|
35
|
+
if (!response.ok) {
|
|
36
|
+
throw new Error(`Connection failed: ${response.status} ${response.statusText}`);
|
|
37
|
+
}
|
|
38
|
+
const reader = response.body?.getReader();
|
|
39
|
+
if (!reader)
|
|
40
|
+
throw new Error("No response stream");
|
|
41
|
+
const decoder = new TextDecoder();
|
|
42
|
+
let buffer = "";
|
|
43
|
+
process.on("SIGINT", () => {
|
|
44
|
+
reader.cancel();
|
|
45
|
+
if (!isJsonMode())
|
|
46
|
+
console.log(colors.dim("\nDisconnected."));
|
|
47
|
+
process.exit(0);
|
|
48
|
+
});
|
|
49
|
+
while (true) {
|
|
50
|
+
const { done, value } = await reader.read();
|
|
51
|
+
if (done)
|
|
52
|
+
break;
|
|
53
|
+
buffer += decoder.decode(value, { stream: true });
|
|
54
|
+
const lines = buffer.split("\n");
|
|
55
|
+
buffer = lines.pop() || "";
|
|
56
|
+
for (const line of lines) {
|
|
57
|
+
if (!line.startsWith("data: "))
|
|
58
|
+
continue;
|
|
59
|
+
const raw = line.slice(6).trim();
|
|
60
|
+
if (!raw)
|
|
61
|
+
continue;
|
|
62
|
+
try {
|
|
63
|
+
const event = JSON.parse(raw);
|
|
64
|
+
if (isJsonMode()) {
|
|
65
|
+
json(event);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
const ts = new Date(event.timestamp || Date.now()).toLocaleTimeString();
|
|
69
|
+
const type = colors.primary(event.type || "unknown");
|
|
70
|
+
console.log(`${colors.dim(ts)} ${type}`);
|
|
71
|
+
if (event.data) {
|
|
72
|
+
const preview = JSON.stringify(event.data).slice(0, 120);
|
|
73
|
+
console.log(` ${colors.dim(preview)}${JSON.stringify(event.data).length > 120 ? "..." : ""}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch { }
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2V2ZW50cy9saXN0ZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFL0QsTUFBTSxDQUFDLE9BQU8sT0FBTyxZQUFhLFNBQVEsb0JBQW9CO0lBQzVELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLGdIQUFnSCxDQUFDO0lBRW5ILE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsaUNBQWlDO1FBQ2pDLHlFQUF5RTtRQUN6RSx3Q0FBd0M7S0FDekMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbEIsV0FBVyxFQUFFLHNEQUFzRDtTQUNwRSxDQUFDO0tBQ0gsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVqRCxNQUFNLE1BQU0sR0FBRyxZQUFZLEVBQUUsQ0FBQztRQUM5QixNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvQyxJQUFJLEtBQUssQ0FBQyxLQUFLO1lBQUUsR0FBRyxDQUFDLFlBQVks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QUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUM7d0JBQ3hFLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQzt3QkFDckQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFDMUMsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7NEJBQ2YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzs0QkFDekQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUNqRyxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztnQkFBQyxNQUFNLENBQUMsQ0FBQSxDQUFDO1lBQ1osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGdldEF1dGhUb2tlbiwgZ2V0RWZmZWN0aXZlVmFsdWUgfSBmcm9tIFwiLi4vLi4vbGliL2NvbmZpZy5qc1wiO1xuaW1wb3J0IHsgY29sb3JzLCBqc29uLCBpc0pzb25Nb2RlIH0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXZlbnRzTGlzdGVuIGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPVxuICAgIFwiTGlzdGVuIHRvIHJlYWwtdGltZSBldmVudHMgdmlhIFNlcnZlci1TZW50IEV2ZW50cy4gU3RyZWFtcyBtZXNzYWdlIGRlbGl2ZXJpZXMsIGNvbnZlcnNhdGlvbiB1cGRhdGVzLCBhbmQgbW9yZS5cIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBldmVudHMgbGlzdGVuXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBldmVudHMgbGlzdGVuIC0tdHlwZXMgbmV3X21lc3NhZ2UsY29udmVyc2F0aW9uX3VwZGF0ZVwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gZXZlbnRzIGxpc3RlbiAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICAgIHR5cGVzOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiQ29tbWEtc2VwYXJhdGVkIGV2ZW50IHR5cGVzIHRvIGZpbHRlciAoZGVmYXVsdDogYWxsKVwiLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKEV2ZW50c0xpc3Rlbik7XG5cbiAgICBjb25zdCBhcGlLZXkgPSBnZXRBdXRoVG9rZW4oKTtcbiAgICBjb25zdCBiYXNlVXJsID0gZ2V0RWZmZWN0aXZlVmFsdWUoXCJiYXNlVXJsXCIpO1xuXG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChcIi9hcGkvdjEvZXZlbnRzXCIsIGJhc2VVcmwpO1xuICAgIGlmIChmbGFncy50eXBlcykgdXJsLnNlYXJjaFBhcmFtcy5zZXQoXCJ0eXBlc1wiLCBmbGFncy50eXBlcyk7XG5cbiAgICBpZiAoIWlzSnNvbk1vZGUoKSkge1xuICAgICAgY29uc29sZS5sb2coY29sb3JzLmJvbGQoXCJMaXN0ZW5pbmcgZm9yIGV2ZW50cy4uLlwiKSk7XG4gICAgICBjb25zb2xlLmxvZyhjb2xvcnMuZGltKGBFbmRwb2ludDogJHt1cmwudG9TdHJpbmcoKX1gKSk7XG4gICAgICBpZiAoZmxhZ3MudHlwZXMpIGNvbnNvbGUubG9nKGNvbG9ycy5kaW0oYEZpbHRlcmluZzogJHtmbGFncy50eXBlc31gKSk7XG4gICAgICBjb25zb2xlLmxvZyhjb2xvcnMuZGltKFwiUHJlc3MgQ3RybCtDIHRvIHN0b3BcXG5cIikpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLnRvU3RyaW5nKCksIHtcbiAgICAgIGhlYWRlcnM6IHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gIH0sXG4gICAgfSk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbm5lY3Rpb24gZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c30gJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlYWRlciA9IHJlc3BvbnNlLmJvZHk/LmdldFJlYWRlcigpO1xuICAgIGlmICghcmVhZGVyKSB0aHJvdyBuZXcgRXJyb3IoXCJObyByZXNwb25zZSBzdHJlYW1cIik7XG5cbiAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCk7XG4gICAgbGV0IGJ1ZmZlciA9IFwiXCI7XG5cbiAgICBwcm9jZXNzLm9uKFwiU0lHSU5UXCIsICgpID0+IHtcbiAgICAgIHJlYWRlci5jYW5jZWwoKTtcbiAgICAgIGlmICghaXNKc29uTW9kZSgpKSBjb25zb2xlLmxvZyhjb2xvcnMuZGltKFwiXFxuRGlzY29ubmVjdGVkLlwiKSk7XG4gICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgfSk7XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgIGlmIChkb25lKSBicmVhaztcblxuICAgICAgYnVmZmVyICs9IGRlY29kZXIuZGVjb2RlKHZhbHVlLCB7IHN0cmVhbTogdHJ1ZSB9KTtcbiAgICAgIGNvbnN0IGxpbmVzID0gYnVmZmVyLnNwbGl0KFwiXFxuXCIpO1xuICAgICAgYnVmZmVyID0gbGluZXMucG9wKCkgfHwgXCJcIjtcblxuICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAgIGlmICghbGluZS5zdGFydHNXaXRoKFwiZGF0YTogXCIpKSBjb250aW51ZTtcbiAgICAgICAgY29uc3QgcmF3ID0gbGluZS5zbGljZSg2KS50cmltKCk7XG4gICAgICAgIGlmICghcmF3KSBjb250aW51ZTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGV2ZW50ID0gSlNPTi5wYXJzZShyYXcpO1xuXG4gICAgICAgICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAgICAgICAganNvbihldmVudCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHRzID0gbmV3IERhdGUoZXZlbnQudGltZXN0YW1wIHx8IERhdGUubm93KCkpLnRvTG9jYWxlVGltZVN0cmluZygpO1xuICAgICAgICAgICAgY29uc3QgdHlwZSA9IGNvbG9ycy5wcmltYXJ5KGV2ZW50LnR5cGUgfHwgXCJ1bmtub3duXCIpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coYCR7Y29sb3JzLmRpbSh0cyl9ICAke3R5cGV9YCk7XG4gICAgICAgICAgICBpZiAoZXZlbnQuZGF0YSkge1xuICAgICAgICAgICAgICBjb25zdCBwcmV2aWV3ID0gSlNPTi5zdHJpbmdpZnkoZXZlbnQuZGF0YSkuc2xpY2UoMCwgMTIwKTtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZGltKHByZXZpZXcpfSR7SlNPTi5zdHJpbmdpZnkoZXZlbnQuZGF0YSkubGVuZ3RoID4gMTIwID8gXCIuLi5cIiA6IFwiXCJ9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIHt9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class LabelsAdd extends AuthenticatedCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
conversationId: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
|
|
7
|
+
labelId: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
11
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|