geni-bioinfo 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth.d.ts +8 -0
- package/dist/auth.js +76 -0
- package/dist/aws/clients.d.ts +18 -0
- package/dist/aws/clients.js +34 -0
- package/dist/commands/activate.d.ts +2 -0
- package/dist/commands/activate.js +20 -0
- package/dist/commands/activity-log.d.ts +2 -0
- package/dist/commands/activity-log.js +31 -0
- package/dist/commands/api-token.d.ts +2 -0
- package/dist/commands/api-token.js +96 -0
- package/dist/commands/auth.d.ts +2 -0
- package/dist/commands/auth.js +55 -0
- package/dist/commands/engine.d.ts +2 -0
- package/dist/commands/engine.js +83 -0
- package/dist/commands/environment.d.ts +2 -0
- package/dist/commands/environment.js +69 -0
- package/dist/commands/image.d.ts +2 -0
- package/dist/commands/image.js +40 -0
- package/dist/commands/instance.d.ts +2 -0
- package/dist/commands/instance.js +39 -0
- package/dist/commands/log.d.ts +3 -0
- package/dist/commands/log.js +43 -0
- package/dist/commands/login.d.ts +2 -0
- package/dist/commands/login.js +24 -0
- package/dist/commands/plugin.d.ts +2 -0
- package/dist/commands/plugin.js +80 -0
- package/dist/commands/queue.d.ts +2 -0
- package/dist/commands/queue.js +74 -0
- package/dist/commands/registry.d.ts +2 -0
- package/dist/commands/registry.js +72 -0
- package/dist/commands/setup/create.d.ts +2 -0
- package/dist/commands/setup/create.js +254 -0
- package/dist/commands/setup/delete.d.ts +2 -0
- package/dist/commands/setup/delete.js +97 -0
- package/dist/commands/setup/status.d.ts +2 -0
- package/dist/commands/setup/status.js +46 -0
- package/dist/commands/setup.d.ts +2 -0
- package/dist/commands/setup.js +13 -0
- package/dist/commands/storage.d.ts +2 -0
- package/dist/commands/storage.js +67 -0
- package/dist/commands/submission.d.ts +2 -0
- package/dist/commands/submission.js +87 -0
- package/dist/commands/task.d.ts +2 -0
- package/dist/commands/task.js +21 -0
- package/dist/commands/tenant.d.ts +2 -0
- package/dist/commands/tenant.js +68 -0
- package/dist/commands/user.d.ts +2 -0
- package/dist/commands/user.js +82 -0
- package/dist/commands/workflow.d.ts +2 -0
- package/dist/commands/workflow.js +80 -0
- package/dist/errors.d.ts +38 -0
- package/dist/errors.js +194 -0
- package/dist/format.d.ts +22 -0
- package/dist/format.js +155 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +91 -0
- package/dist/templates/setup.yaml +503 -0
- package/package.json +49 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.submissionCommand = void 0;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const auth_1 = require("../auth");
|
|
11
|
+
const errors_1 = require("../errors");
|
|
12
|
+
const format_js_1 = require("../format.js");
|
|
13
|
+
function parseTimeToSeconds(value) {
|
|
14
|
+
const parts = value.split(':').map(Number);
|
|
15
|
+
if (parts.length !== 3 || parts.some(isNaN)) {
|
|
16
|
+
throw (0, errors_1.invalidArgument)('Time must be in DD:HH:MM format (days:hours:minutes).', 'Example: 00:12:30');
|
|
17
|
+
}
|
|
18
|
+
const [days, hours, minutes] = parts;
|
|
19
|
+
return (days * 86400) + (hours * 3600) + (minutes * 60);
|
|
20
|
+
}
|
|
21
|
+
exports.submissionCommand = new commander_1.Command('submission')
|
|
22
|
+
.description('Manage workflow submissions');
|
|
23
|
+
exports.submissionCommand
|
|
24
|
+
.command('list')
|
|
25
|
+
.description('List submissions')
|
|
26
|
+
.option('--status <status>', 'Filter by status (SUBMITTED, SUCCEEDED, FAILED)')
|
|
27
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
28
|
+
.action(async (opts) => {
|
|
29
|
+
const query = opts.status ? `?status=${opts.status}` : '';
|
|
30
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/submissions${query}`));
|
|
31
|
+
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_js_1.submissionColumns);
|
|
32
|
+
});
|
|
33
|
+
exports.submissionCommand
|
|
34
|
+
.command('get <id>')
|
|
35
|
+
.description('Get a submission by ID')
|
|
36
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
37
|
+
.action(async (id, opts) => {
|
|
38
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/submissions/${id}`));
|
|
39
|
+
(0, format_js_1.formatOutput)(data, opts.format, format_js_1.submissionColumns);
|
|
40
|
+
});
|
|
41
|
+
exports.submissionCommand
|
|
42
|
+
.command('create')
|
|
43
|
+
.description('Submit a workflow run')
|
|
44
|
+
.requiredOption('--workflow-name <name>', 'Workflow name')
|
|
45
|
+
.option('--workflow-version <version>', 'Workflow version')
|
|
46
|
+
.requiredOption('--params-file <file>', 'Path to params file (.json/.yaml/.yml)')
|
|
47
|
+
.requiredOption('--engine-id <id>', 'Engine ID')
|
|
48
|
+
.requiredOption('--queue-id <id>', 'Queue ID')
|
|
49
|
+
.requiredOption('--output-folder <s3-uri>', 'S3 URI prefix for workflow output files (e.g. s3://my-bucket/outputs/)')
|
|
50
|
+
.option('--alert-time <DD:HH:MM>', 'Alert time override (DD:HH:MM)')
|
|
51
|
+
.option('--cancel-time <DD:HH:MM>', 'Cancel time override (DD:HH:MM)')
|
|
52
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
53
|
+
.action(async (opts) => {
|
|
54
|
+
const form = new FormData();
|
|
55
|
+
form.append('workflowName', opts.workflowName);
|
|
56
|
+
if (opts.workflowVersion)
|
|
57
|
+
form.append('version', opts.workflowVersion);
|
|
58
|
+
form.append('engineId', opts.engineId);
|
|
59
|
+
form.append('queueId', opts.queueId);
|
|
60
|
+
form.append('output', opts.outputFolder);
|
|
61
|
+
if (opts.alertTime)
|
|
62
|
+
form.append('alertTimeSeconds', String(parseTimeToSeconds(opts.alertTime)));
|
|
63
|
+
if (opts.cancelTime)
|
|
64
|
+
form.append('cancelTimeSeconds', String(parseTimeToSeconds(opts.cancelTime)));
|
|
65
|
+
const paramsBuffer = await fs_1.default.promises.readFile(opts.paramsFile);
|
|
66
|
+
form.append('params', new Blob([paramsBuffer]), path_1.default.basename(opts.paramsFile));
|
|
67
|
+
const res = await fetch((0, auth_1.apiUrl)('/submissions'), {
|
|
68
|
+
method: 'POST',
|
|
69
|
+
headers: (0, auth_1.getAuthHeaders)(),
|
|
70
|
+
body: form,
|
|
71
|
+
});
|
|
72
|
+
const data = await (0, auth_1.readJsonResponse)(res, { method: 'POST', url: (0, auth_1.apiUrl)('/submissions') });
|
|
73
|
+
(0, format_js_1.formatOutput)(data, opts.format, format_js_1.submissionColumns);
|
|
74
|
+
});
|
|
75
|
+
exports.submissionCommand
|
|
76
|
+
.command('cancel <id>')
|
|
77
|
+
.description('Cancel a running submission')
|
|
78
|
+
.action(async (id) => {
|
|
79
|
+
const url = (0, auth_1.apiUrl)(`/submissions/${id}/cancel`);
|
|
80
|
+
const res = await fetch(url, {
|
|
81
|
+
method: 'POST',
|
|
82
|
+
headers: (0, auth_1.getAuthHeaders)(),
|
|
83
|
+
});
|
|
84
|
+
const data = await (0, auth_1.readJsonResponse)(res, { method: 'POST', url });
|
|
85
|
+
console.log(`${data.message} (${data.submissionId})`);
|
|
86
|
+
});
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWlzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9zdWJtaXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlDQUEyQztBQUMzQyw0Q0FBbUI7QUFDbkIsZ0RBQXVCO0FBQ3ZCLGtDQUE2RTtBQUM3RSxzQ0FBMkM7QUFDM0MsNENBQWlGO0FBRWpGLFNBQVMsa0JBQWtCLENBQUMsS0FBYTtJQUN2QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMxQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM1QyxNQUFNLElBQUEsd0JBQWUsRUFDbkIsdURBQXVELEVBQ3ZELG1CQUFtQixDQUNwQixDQUFBO0lBQ0gsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQTtJQUNwQyxPQUFPLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFBO0FBQ3pELENBQUM7QUFHWSxRQUFBLGlCQUFpQixHQUFHLElBQUksbUJBQU8sQ0FBQyxZQUFZLENBQUM7S0FDdkQsV0FBVyxDQUFDLDZCQUE2QixDQUFDLENBQUE7QUFFN0MseUJBQWlCO0tBQ2QsT0FBTyxDQUFDLE1BQU0sQ0FBQztLQUNmLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQztLQUMvQixNQUFNLENBQUMsbUJBQW1CLEVBQUUsaURBQWlELENBQUM7S0FDOUUsU0FBUyxDQUFDLElBQUksa0JBQU0sQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFP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QUMxQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQVUsRUFBRSxFQUFFO0lBQzNCLE1BQU0sR0FBRyxHQUFHLElBQUEsYUFBTSxFQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQy9DLE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUMzQixNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU8sRUFBRSxJQUFBLHFCQUFjLEdBQUU7S0FDMUIsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLHVCQUFnQixFQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQThDLENBQUE7SUFDOUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUE7QUFDdkQsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kLCBPcHRpb24gfSBmcm9tICdjb21tYW5kZXInXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgYXBpVXJsLCBmZXRjaEpzb24sIGdldEF1dGhIZWFkZXJzLCByZWFkSnNvblJlc3BvbnNlIH0gZnJvbSAnLi4vYXV0aCdcbmltcG9ydCB7IGludmFsaWRBcmd1bWVudCB9IGZyb20gJy4uL2Vycm9ycydcbmltcG9ydCB7IGZvcm1hdE91dHB1dCwgc3VibWlzc2lvbkNvbHVtbnMsIHR5cGUgT3V0cHV0Rm9ybWF0IH0gZnJvbSAnLi4vZm9ybWF0LmpzJ1xuXG5mdW5jdGlvbiBwYXJzZVRpbWVUb1NlY29uZHModmFsdWU6IHN0cmluZyk6IG51bWJlciB7XG4gIGNvbnN0IHBhcnRzID0gdmFsdWUuc3BsaXQoJzonKS5tYXAoTnVtYmVyKVxuICBpZiAocGFydHMubGVuZ3RoICE9PSAzIHx8IHBhcnRzLnNvbWUoaXNOYU4pKSB7XG4gICAgdGhyb3cgaW52YWxpZEFyZ3VtZW50KFxuICAgICAgJ1RpbWUgbXVzdCBiZSBpbiBERDpISDpNTSBmb3JtYXQgKGRheXM6aG91cnM6bWludXRlcykuJyxcbiAgICAgICdFeGFtcGxlOiAwMDoxMjozMCcsXG4gICAgKVxuICB9XG4gIGNvbnN0IFtkYXlzLCBob3VycywgbWludXRlc10gPSBwYXJ0c1xuICByZXR1cm4gKGRheXMgKiA4NjQwMCkgKyAoaG91cnMgKiAzNjAwKSArIChtaW51dGVzICogNjApXG59XG5cblxuZXhwb3J0IGNvbnN0IHN1Ym1pc3Npb25Db21tYW5kID0gbmV3IENvbW1hbmQoJ3N1Ym1pc3Npb24nKVxuICAuZGVzY3JpcHRpb24oJ01hbmFnZSB3b3JrZmxvdyBzdWJtaXNzaW9ucycpXG5cbnN1Ym1pc3Npb25Db21tYW5kXG4gIC5jb21tYW5kKCdsaXN0JylcbiAgLmRlc2NyaXB0aW9uKCdMaXN0IHN1Ym1pc3Npb25zJylcbiAgLm9wdGlvbignLS1zdGF0dXMgPHN0YXR1cz4nLCAnRmlsdGVyIGJ5IHN0YXR1cyAoU1VCTUlUVEVELCBTVUNDRUVERUQsIEZBSUxFRCknKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbiAgLmFjdGlvbihhc3luYyAob3B0czogeyBzdGF0dXM/OiBzdHJpbmc7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgICBjb25zdCBxdWVyeSA9IG9wdHMuc3RhdHVzID8gYD9zdGF0dXM9JHtvcHRzLnN0YXR1c31gIDogJydcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybChgL3N1Ym1pc3Npb25zJHtxdWVyeX1gKSkgYXMgeyBpdGVtczogdW5rbm93bltdIH1cbiAgICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgc3VibWlzc2lvbkNvbHVtbnMpXG4gIH0pXG5cbnN1Ym1pc3Npb25Db21tYW5kXG4gIC5jb21tYW5kKCdnZXQgPGlkPicpXG4gIC5kZXNjcmlwdGlvbignR2V0IGEgc3VibWlzc2lvbiBieSBJRCcpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuICAuYWN0aW9uKGFzeW5jIChpZDogc3RyaW5nLCBvcHRzOiB7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybChgL3N1Ym1pc3Npb25zLyR7aWR9YCkpXG4gICAgZm9ybWF0T3V0cHV0KGRhdGEsIG9wdHMuZm9ybWF0LCBzdWJtaXNzaW9uQ29sdW1ucylcbiAgfSlcblxuc3VibWlzc2lvbkNvbW1hbmRcbiAgLmNvbW1hbmQoJ2NyZWF0ZScpXG4gIC5kZXNjcmlwdGlvbignU3VibWl0IGEgd29ya2Zsb3cgcnVuJylcbiAgLnJlcXVpcmVkT3B0aW9uKCctLXdvcmtmbG93LW5hbWUgPG5hbWU+JywgJ1dvcmtmbG93IG5hbWUnKVxuICAub3B0aW9uKCctLXdvcmtmbG93LXZlcnNpb24gPHZlcnNpb24+JywgJ1dvcmtmbG93IHZlcnNpb24nKVxuICAucmVxdWlyZWRPcHRpb24oJy0tcGFyYW1zLWZpbGUgPGZpbGU+JywgJ1BhdGggdG8gcGFyYW1zIGZpbGUgKC5qc29uLy55YW1sLy55bWwpJylcbiAgLnJlcXVpcmVkT3B0aW9uKCctLWVuZ2luZS1pZCA8aWQ+JywgJ0VuZ2luZSBJRCcpXG4gIC5yZXF1aXJlZE9wdGlvbignLS1xdWV1ZS1pZCA8aWQ+JywgJ1F1ZXVlIElEJylcbiAgLnJlcXVpcmVkT3B0aW9uKCctLW91dHB1dC1mb2xkZXIgPHMzLXVyaT4nLCAnUzMgVVJJIHByZWZpeCBmb3Igd29ya2Zsb3cgb3V0cHV0IGZpbGVzIChlLmcuIHMzOi8vbXktYnVja2V0L291dHB1dHMvKScpXG4gIC5vcHRpb24oJy0tYWxlcnQtdGltZSA8REQ6SEg6TU0+JywgJ0FsZXJ0IHRpbWUgb3ZlcnJpZGUgKEREOkhIOk1NKScpXG4gIC5vcHRpb24oJy0tY2FuY2VsLXRpbWUgPEREOkhIOk1NPicsICdDYW5jZWwgdGltZSBvdmVycmlkZSAoREQ6SEg6TU0pJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4gIC5hY3Rpb24oYXN5bmMgKG9wdHM6IHtcbiAgICB3b3JrZmxvd05hbWU6IHN0cmluZ1xuICAgIHdvcmtmbG93VmVyc2lvbj86IHN0cmluZ1xuICAgIHBhcmFtc0ZpbGU6IHN0cmluZ1xuICAgIGVuZ2luZUlkOiBzdHJpbmdcbiAgICBxdWV1ZUlkOiBzdHJpbmdcbiAgICBvdXRwdXRGb2xkZXI6IHN0cmluZ1xuICAgIGFsZXJ0VGltZT86IHN0cmluZ1xuICAgIGNhbmNlbFRpbWU/OiBzdHJpbmdcbiAgICBmb3JtYXQ6IE91dHB1dEZvcm1hdFxuICB9KSA9PiB7XG4gICAgY29uc3QgZm9ybSA9IG5ldyBGb3JtRGF0YSgpXG4gICAgZm9ybS5hcHBlbmQoJ3dvcmtmbG93TmFtZScsIG9wdHMud29ya2Zsb3dOYW1lKVxuICAgIGlmIChvcHRzLndvcmtmbG93VmVyc2lvbikgZm9ybS5hcHBlbmQoJ3ZlcnNpb24nLCBvcHRzLndvcmtmbG93VmVyc2lvbilcbiAgICBmb3JtLmFwcGVuZCgnZW5naW5lSWQnLCBvcHRzLmVuZ2luZUlkKVxuICAgIGZvcm0uYXBwZW5kKCdxdWV1ZUlkJywgb3B0cy5xdWV1ZUlkKVxuICAgIGZvcm0uYXBwZW5kKCdvdXRwdXQnLCBvcHRzLm91dHB1dEZvbGRlcilcbiAgICBpZiAob3B0cy5hbGVydFRpbWUpIGZvcm0uYXBwZW5kKCdhbGVydFRpbWVTZWNvbmRzJywgU3RyaW5nKHBhcnNlVGltZVRvU2Vjb25kcyhvcHRzLmFsZXJ0VGltZSkpKVxuICAgIGlmIChvcHRzLmNhbmNlbFRpbWUpIGZvcm0uYXBwZW5kKCdjYW5jZWxUaW1lU2Vjb25kcycsIFN0cmluZyhwYXJzZVRpbWVUb1NlY29uZHMob3B0cy5jYW5jZWxUaW1lKSkpXG4gICAgY29uc3QgcGFyYW1zQnVmZmVyID0gYXdhaXQgZnMucHJvbWlzZXMucmVhZEZpbGUob3B0cy5wYXJhbXNGaWxlKVxuICAgIGZvcm0uYXBwZW5kKCdwYXJhbXMnLCBuZXcgQmxvYihbcGFyYW1zQnVmZmVyXSksIHBhdGguYmFzZW5hbWUob3B0cy5wYXJhbXNGaWxlKSlcblxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGFwaVVybCgnL3N1Ym1pc3Npb25zJyksIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczogZ2V0QXV0aEhlYWRlcnMoKSxcbiAgICAgIGJvZHk6IGZvcm0sXG4gICAgfSlcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVhZEpzb25SZXNwb25zZShyZXMsIHsgbWV0aG9kOiAnUE9TVCcsIHVybDogYXBpVXJsKCcvc3VibWlzc2lvbnMnKSB9KVxuICAgIGZvcm1hdE91dHB1dChkYXRhLCBvcHRzLmZvcm1hdCwgc3VibWlzc2lvbkNvbHVtbnMpXG4gIH0pXG5cbnN1Ym1pc3Npb25Db21tYW5kXG4gIC5jb21tYW5kKCdjYW5jZWwgPGlkPicpXG4gIC5kZXNjcmlwdGlvbignQ2FuY2VsIGEgcnVubmluZyBzdWJtaXNzaW9uJylcbiAgLmFjdGlvbihhc3luYyAoaWQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHVybCA9IGFwaVVybChgL3N1Ym1pc3Npb25zLyR7aWR9L2NhbmNlbGApXG4gICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IGdldEF1dGhIZWFkZXJzKCksXG4gICAgfSlcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVhZEpzb25SZXNwb25zZShyZXMsIHsgbWV0aG9kOiAnUE9TVCcsIHVybCB9KSBhcyB7IHN1Ym1pc3Npb25JZDogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfVxuICAgIGNvbnNvbGUubG9nKGAke2RhdGEubWVzc2FnZX0gKCR7ZGF0YS5zdWJtaXNzaW9uSWR9KWApXG4gIH0pXG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.taskCommand = void 0;
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const auth_1 = require("../auth");
|
|
6
|
+
const format_js_1 = require("../format.js");
|
|
7
|
+
exports.taskCommand = new commander_1.Command('task')
|
|
8
|
+
.description('Manage tasks');
|
|
9
|
+
exports.taskCommand
|
|
10
|
+
.command('list')
|
|
11
|
+
.description('List tasks')
|
|
12
|
+
.option('--submission-id <id>', 'Filter by submission ID')
|
|
13
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
14
|
+
.action(async (opts) => {
|
|
15
|
+
const url = opts.submissionId
|
|
16
|
+
? (0, auth_1.apiUrl)(`/tasks?submissionId=${opts.submissionId}`)
|
|
17
|
+
: (0, auth_1.apiUrl)('/tasks');
|
|
18
|
+
const data = await (0, auth_1.fetchJson)(url);
|
|
19
|
+
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_js_1.taskColumns);
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy90YXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUEyQztBQUMzQyxrQ0FBMkM7QUFDM0MsNENBQTJFO0FBRTlELFFBQUEsV0FBVyxHQUFHLElBQUksbUJBQU8sQ0FBQyxNQUFNLENBQUM7S0FDM0MsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBRTlCLG1CQUFXO0tBQ1IsT0FBTyxDQUFDLE1BQU0sQ0FBQztLQUNmLFdBQVcsQ0FBQyxZQUFZLENBQUM7S0FDekIsTUFBTSxDQUFDLHNCQUFzQixFQUFFLHlCQUF5QixDQUFDO0tBQ3pELFNBQVMsQ0FBQyxJQUFJLGtCQUFNLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUM5RyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQXFELEVBQUUsRUFBRTtJQUN0RSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWTtRQUMzQixDQUFDLENBQUMsSUFBQSxhQUFNLEVBQUMsdUJBQXVCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwRCxDQUFDLENBQUMsSUFBQSxhQUFNLEVBQUMsUUFBUSxDQUFDLENBQUE7SUFDcEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLGdCQUFTLEVBQUMsR0FBRyxDQUF5QixDQUFBO0lBQ3pELElBQUEsd0JBQVksRUFBQyxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsdUJBQVcsQ0FBQyxDQUFBO0FBQ3BGLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCwgT3B0aW9uIH0gZnJvbSAnY29tbWFuZGVyJ1xuaW1wb3J0IHsgYXBpVXJsLCBmZXRjaEpzb24gfSBmcm9tICcuLi9hdXRoJ1xuaW1wb3J0IHsgZm9ybWF0T3V0cHV0LCB0YXNrQ29sdW1ucywgdHlwZSBPdXRwdXRGb3JtYXQgfSBmcm9tICcuLi9mb3JtYXQuanMnXG5cbmV4cG9ydCBjb25zdCB0YXNrQ29tbWFuZCA9IG5ldyBDb21tYW5kKCd0YXNrJylcbiAgLmRlc2NyaXB0aW9uKCdNYW5hZ2UgdGFza3MnKVxuXG50YXNrQ29tbWFuZFxuICAuY29tbWFuZCgnbGlzdCcpXG4gIC5kZXNjcmlwdGlvbignTGlzdCB0YXNrcycpXG4gIC5vcHRpb24oJy0tc3VibWlzc2lvbi1pZCA8aWQ+JywgJ0ZpbHRlciBieSBzdWJtaXNzaW9uIElEJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4gIC5hY3Rpb24oYXN5bmMgKG9wdHM6IHsgc3VibWlzc2lvbklkPzogc3RyaW5nOyBmb3JtYXQ6IE91dHB1dEZvcm1hdCB9KSA9PiB7XG4gICAgY29uc3QgdXJsID0gb3B0cy5zdWJtaXNzaW9uSWRcbiAgICAgID8gYXBpVXJsKGAvdGFza3M/c3VibWlzc2lvbklkPSR7b3B0cy5zdWJtaXNzaW9uSWR9YClcbiAgICAgIDogYXBpVXJsKCcvdGFza3MnKVxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24odXJsKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICAgIGZvcm1hdE91dHB1dChvcHRzLmZvcm1hdCA9PT0gJ2pzb24nID8gZGF0YSA6IGRhdGEuaXRlbXMsIG9wdHMuZm9ybWF0LCB0YXNrQ29sdW1ucylcbiAgfSlcbiJdfQ==
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tenantCommand = void 0;
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const auth_1 = require("../auth");
|
|
6
|
+
const format_1 = require("../format");
|
|
7
|
+
exports.tenantCommand = new commander_1.Command('tenant')
|
|
8
|
+
.description('Manage tenants');
|
|
9
|
+
exports.tenantCommand
|
|
10
|
+
.command('create')
|
|
11
|
+
.description('Create a new tenant')
|
|
12
|
+
.requiredOption('--name <name>', 'Tenant name (lowercase, hyphens allowed)')
|
|
13
|
+
.requiredOption('--contact-email <email>', 'Contact email address for the tenant')
|
|
14
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
15
|
+
.action(async (opts) => {
|
|
16
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)('/support/tenants'), {
|
|
17
|
+
method: 'POST',
|
|
18
|
+
headers: { 'Content-Type': 'application/json' },
|
|
19
|
+
body: JSON.stringify({ name: opts.name, contactEmail: opts.contactEmail }),
|
|
20
|
+
});
|
|
21
|
+
(0, format_1.formatOutput)(data, opts.format, format_1.tenantColumns);
|
|
22
|
+
});
|
|
23
|
+
exports.tenantCommand
|
|
24
|
+
.command('list')
|
|
25
|
+
.description('List all tenants')
|
|
26
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
27
|
+
.action(async (opts) => {
|
|
28
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)('/support/tenants'));
|
|
29
|
+
(0, format_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_1.tenantColumns);
|
|
30
|
+
});
|
|
31
|
+
exports.tenantCommand
|
|
32
|
+
.command('get <id>')
|
|
33
|
+
.description('Get a tenant by ID')
|
|
34
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
35
|
+
.action(async (id, opts) => {
|
|
36
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/support/tenants/${id}`));
|
|
37
|
+
(0, format_1.formatOutput)(data, opts.format, format_1.tenantColumns);
|
|
38
|
+
});
|
|
39
|
+
exports.tenantCommand
|
|
40
|
+
.command('enable <id>')
|
|
41
|
+
.description('Enable a tenant')
|
|
42
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
43
|
+
.action(async (id, opts) => {
|
|
44
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/support/tenants/${id}/enable`), {
|
|
45
|
+
method: 'PUT',
|
|
46
|
+
});
|
|
47
|
+
(0, format_1.formatOutput)(data, opts.format, format_1.tenantColumns);
|
|
48
|
+
});
|
|
49
|
+
exports.tenantCommand
|
|
50
|
+
.command('disable <id>')
|
|
51
|
+
.description('Disable a tenant')
|
|
52
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
53
|
+
.action(async (id, opts) => {
|
|
54
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/support/tenants/${id}/disable`), {
|
|
55
|
+
method: 'PUT',
|
|
56
|
+
});
|
|
57
|
+
(0, format_1.formatOutput)(data, opts.format, format_1.tenantColumns);
|
|
58
|
+
});
|
|
59
|
+
exports.tenantCommand
|
|
60
|
+
.command('delete <id>')
|
|
61
|
+
.description('Delete a tenant')
|
|
62
|
+
.action(async (id) => {
|
|
63
|
+
await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/support/tenants/${id}`), {
|
|
64
|
+
method: 'DELETE',
|
|
65
|
+
});
|
|
66
|
+
console.log('Tenant deleted successfully.');
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3RlbmFudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBNEM7QUFDNUMsa0NBQTRDO0FBQzVDLHNDQUEyRTtBQUU5RCxRQUFBLGFBQWEsR0FBRyxJQUFJLG1CQUFPLENBQUMsUUFBUSxDQUFDO0tBQy9DLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBRWpDLHFCQUFhO0tBQ1YsT0FBTyxDQUFDLFFBQVEsQ0FBQztLQUNqQixXQUFXLENBQUMscUJBQXFCLENBQUM7S0FDbEMsY0FBYyxDQUFDLGVBQWUsRUFBRSwwQ0FBMEMsQ0FBQztLQUMzRSxjQUFjLENBQUMseUJBQXlCLEVBQUUsc0NBQXNDLENBQUM7S0FDakYsU0FBUyxDQUFDLElBQUksa0JBQU0sQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzlHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBa0UsRUFBRSxFQUFFO0lBQ25GLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxnQkFBUyxFQUFDLElBQUEsYUFBTSxFQUFDLGtCQUFrQixDQUFDLEVBQUU7UUFDdkQsTUFBTSxFQUFFLE1BQU07UUFDZCxPQUFPLEVBQUUsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUU7UUFDL0MsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0tBQzNFLENBQUMsQ0FBQztJQUNILElBQUEscUJBQVksRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxzQkFBYSxDQUFDLENBQUM7QUFDakQsQ0FBQyxDQUFD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LE1BQU0sRUFBRSxzQkFBYSxDQUFDLENBQUM7QUFDakQsQ0FBQyxDQUFDLENBQUM7QUFFTCxxQkFBYTtLQUNWLE9BQU8sQ0FBQyxhQUFhLENBQUM7S0FDdEIsV0FBVyxDQUFDLGlCQUFpQixDQUFDO0tBQzlCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBVSxFQUFFLEVBQUU7SUFDM0IsTUFBTSxJQUFBLGdCQUFTLEVBQUMsSUFBQSxhQUFNLEVBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDaEQsTUFBTSxFQUFFLFFBQVE7S0FDakIsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0FBQzlDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCwgT3B0aW9uIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCB7IGFwaVVybCwgZmV0Y2hKc29uIH0gZnJvbSAnLi4vYXV0aCc7XG5pbXBvcnQgeyBmb3JtYXRPdXRwdXQsIHRlbmFudENvbHVtbnMsIHR5cGUgT3V0cHV0Rm9ybWF0IH0gZnJvbSAnLi4vZm9ybWF0JztcblxuZXhwb3J0IGNvbnN0IHRlbmFudENvbW1hbmQgPSBuZXcgQ29tbWFuZCgndGVuYW50JylcbiAgLmRlc2NyaXB0aW9uKCdNYW5hZ2UgdGVuYW50cycpO1xuXG50ZW5hbnRDb21tYW5kXG4gIC5jb21tYW5kKCdjcmVhdGUnKVxuICAuZGVzY3JpcHRpb24oJ0NyZWF0ZSBhIG5ldyB0ZW5hbnQnKVxuICAucmVxdWlyZWRPcHRpb24oJy0tbmFtZSA8bmFtZT4nLCAnVGVuYW50IG5hbWUgKGxvd2VyY2FzZSwgaHlwaGVucyBhbGxvd2VkKScpXG4gIC5yZXF1aXJlZE9wdGlvbignLS1jb250YWN0LWVtYWlsIDxlbWFpbD4nLCAnQ29udGFjdCBlbWFpbCBhZGRyZXNzIGZvciB0aGUgdGVuYW50JylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4gIC5hY3Rpb24oYXN5bmMgKG9wdHM6IHsgbmFtZTogc3RyaW5nOyBjb250YWN0RW1haWw6IHN0cmluZzsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKCcvc3VwcG9ydC90ZW5hbnRzJyksIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IG5hbWU6IG9wdHMubmFtZSwgY29udGFjdEVtYWlsOiBvcHRzLmNvbnRhY3RFbWFpbCB9KSxcbiAgICB9KTtcbiAgICBmb3JtYXRPdXRwdXQoZGF0YSwgb3B0cy5mb3JtYXQsIHRlbmFudENvbHVtbnMpO1xuICB9KTtcblxudGVuYW50Q29tbWFuZFxuICAuY29tbWFuZCgnbGlzdCcpXG4gIC5kZXNjcmlwdGlvbignTGlzdCBhbGwgdGVuYW50cycpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuICAuYWN0aW9uKGFzeW5jIChvcHRzOiB7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybCgnL3N1cHBvcnQvdGVuYW50cycpKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfTtcbiAgICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgdGVuYW50Q29sdW1ucyk7XG4gIH0pO1xuXG50ZW5hbnRDb21tYW5kXG4gIC5jb21tYW5kKCdnZXQgPGlkPicpXG4gIC5kZXNjcmlwdGlvbignR2V0IGEgdGVuYW50IGJ5IElEJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4gIC5hY3Rpb24oYXN5bmMgKGlkOiBzdHJpbmcsIG9wdHM6IHsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvc3VwcG9ydC90ZW5hbnRzLyR7aWR9YCkpO1xuICAgIGZvcm1hdE91dHB1dChkYXRhLCBvcHRzLmZvcm1hdCwgdGVuYW50Q29sdW1ucyk7XG4gIH0pO1xuXG50ZW5hbnRDb21tYW5kXG4gIC5jb21tYW5kKCdlbmFibGUgPGlkPicpXG4gIC5kZXNjcmlwdGlvbignRW5hYmxlIGEgdGVuYW50JylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4gIC5hY3Rpb24oYXN5bmMgKGlkOiBzdHJpbmcsIG9wdHM6IHsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvc3VwcG9ydC90ZW5hbnRzLyR7aWR9L2VuYWJsZWApLCB7XG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgIH0pO1xuICAgIGZvcm1hdE91dHB1dChkYXRhLCBvcHRzLmZvcm1hdCwgdGVuYW50Q29sdW1ucyk7XG4gIH0pO1xuXG50ZW5hbnRDb21tYW5kXG4gIC5jb21tYW5kKCdkaXNhYmxlIDxpZD4nKVxuICAuZGVzY3JpcHRpb24oJ0Rpc2FibGUgYSB0ZW5hbnQnKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbiAgLmFjdGlvbihhc3luYyAoaWQ6IHN0cmluZywgb3B0czogeyBmb3JtYXQ6IE91dHB1dEZvcm1hdCB9KSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9zdXBwb3J0L3RlbmFudHMvJHtpZH0vZGlzYWJsZWApLCB7XG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgIH0pO1xuICAgIGZvcm1hdE91dHB1dChkYXRhLCBvcHRzLmZvcm1hdCwgdGVuYW50Q29sdW1ucyk7XG4gIH0pO1xuXG50ZW5hbnRDb21tYW5kXG4gIC5jb21tYW5kKCdkZWxldGUgPGlkPicpXG4gIC5kZXNjcmlwdGlvbignRGVsZXRlIGEgdGVuYW50JylcbiAgLmFjdGlvbihhc3luYyAoaWQ6IHN0cmluZykgPT4ge1xuICAgIGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9zdXBwb3J0L3RlbmFudHMvJHtpZH1gKSwge1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICB9KTtcbiAgICBjb25zb2xlLmxvZygnVGVuYW50IGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5LicpO1xuICB9KTtcbiJdfQ==
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.userCommand = void 0;
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const auth_1 = require("../auth");
|
|
6
|
+
const format_js_1 = require("../format.js");
|
|
7
|
+
const ROLE_CHOICES = ['support', 'admin', 'analyst', 'viewer'];
|
|
8
|
+
const userColumns = [
|
|
9
|
+
{ header: 'ID', value: (r) => r.id },
|
|
10
|
+
{ header: 'Name', value: (r) => r.name },
|
|
11
|
+
{ header: 'Email', value: (r) => r.email },
|
|
12
|
+
{ header: 'Role', value: (r) => r.role ?? '' },
|
|
13
|
+
{ header: 'Status', value: (r) => r.status },
|
|
14
|
+
{ header: 'Tenant ID', value: (r) => r.tenantId },
|
|
15
|
+
{ header: 'Created At', value: (r) => r.createdAt },
|
|
16
|
+
];
|
|
17
|
+
exports.userCommand = new commander_1.Command('user')
|
|
18
|
+
.description('Manage users');
|
|
19
|
+
exports.userCommand
|
|
20
|
+
.command('create')
|
|
21
|
+
.description('Create a new user.')
|
|
22
|
+
.requiredOption('--name <name>', 'User name')
|
|
23
|
+
.requiredOption('--email <email>', 'User email')
|
|
24
|
+
.addOption(new commander_1.Option('--role <role>', 'RBAC role for the new user')
|
|
25
|
+
.choices([...ROLE_CHOICES])
|
|
26
|
+
.default('analyst'))
|
|
27
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
28
|
+
.action(async (opts) => {
|
|
29
|
+
const body = { name: opts.name, email: opts.email, role: opts.role };
|
|
30
|
+
if (process.env.GENI_TENANT_ID)
|
|
31
|
+
body.tenantId = process.env.GENI_TENANT_ID;
|
|
32
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)('/admin/users'), {
|
|
33
|
+
method: 'POST',
|
|
34
|
+
headers: { 'Content-Type': 'application/json' },
|
|
35
|
+
body: JSON.stringify(body),
|
|
36
|
+
});
|
|
37
|
+
(0, format_js_1.formatOutput)(data, opts.format, userColumns);
|
|
38
|
+
});
|
|
39
|
+
exports.userCommand
|
|
40
|
+
.command('list')
|
|
41
|
+
.description('List users')
|
|
42
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
43
|
+
.action(async (opts) => {
|
|
44
|
+
const qs = process.env.GENI_TENANT_ID ? `?tenantId=${encodeURIComponent(process.env.GENI_TENANT_ID)}` : '';
|
|
45
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/admin/users${qs}`));
|
|
46
|
+
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, userColumns);
|
|
47
|
+
});
|
|
48
|
+
exports.userCommand
|
|
49
|
+
.command('get <id>')
|
|
50
|
+
.description('Get a user by ID')
|
|
51
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
52
|
+
.action(async (id, opts) => {
|
|
53
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/admin/users/${id}`));
|
|
54
|
+
(0, format_js_1.formatOutput)(data, opts.format, userColumns);
|
|
55
|
+
});
|
|
56
|
+
exports.userCommand
|
|
57
|
+
.command('assign-role <userId>')
|
|
58
|
+
.description('Assign a new RBAC role to a user')
|
|
59
|
+
.requiredOption('--role <role>', `One of: ${ROLE_CHOICES.join(', ')}`, (v) => {
|
|
60
|
+
if (!ROLE_CHOICES.includes(v)) {
|
|
61
|
+
throw new Error(`role must be one of: ${ROLE_CHOICES.join(', ')}`);
|
|
62
|
+
}
|
|
63
|
+
return v;
|
|
64
|
+
})
|
|
65
|
+
.action(async (userId, opts) => {
|
|
66
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/admin/users/${encodeURIComponent(userId)}/role`), {
|
|
67
|
+
method: 'PUT',
|
|
68
|
+
headers: { 'Content-Type': 'application/json' },
|
|
69
|
+
body: JSON.stringify({ role: opts.role }),
|
|
70
|
+
});
|
|
71
|
+
console.log(JSON.stringify(data, null, 2));
|
|
72
|
+
});
|
|
73
|
+
exports.userCommand
|
|
74
|
+
.command('delete <id>')
|
|
75
|
+
.description('Delete a user by ID')
|
|
76
|
+
.action(async (id) => {
|
|
77
|
+
await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/admin/users/${encodeURIComponent(id)}`), {
|
|
78
|
+
method: 'DELETE',
|
|
79
|
+
});
|
|
80
|
+
console.log('User deleted successfully.');
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy91c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUE0QztBQUM1QyxrQ0FBNEM7QUFDNUMsNENBQStEO0FBRS9ELE1BQU0sWUFBWSxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFVLENBQUM7QUFFeEUsTUFBTSxXQUFXLEdBQUc7SUFDbEIsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQTBCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDN0QsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQTBCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7SUFDakUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQTBCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUU7SUFDbkUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQTBCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFO0lBQ3ZFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUEwQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3JFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUEwQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzFFLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUEwQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFO0NBQzdFLENBQUM7QUFFVyxRQUFBLFdBQVcsR0FBRyxJQUFJLG1C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QUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQyxDQUFDO0FBRUwsbUJBQVc7S0FDUixPQUFPLENBQUMsYUFBYSxDQUFDO0tBQ3RCLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQztLQUNsQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQVUsRUFBRSxFQUFFO0lBQzNCLE1BQU0sSUFBQSxnQkFBUyxFQUFDLElBQUEsYUFBTSxFQUFDLGdCQUFnQixrQkFBa0IsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDaEUsTUFBTSxFQUFFLFFBQVE7S0FDakIsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCwgT3B0aW9uIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCB7IGFwaVVybCwgZmV0Y2hKc29uIH0gZnJvbSAnLi4vYXV0aCc7XG5pbXBvcnQgeyBmb3JtYXRPdXRwdXQsIHR5cGUgT3V0cHV0Rm9ybWF0IH0gZnJvbSAnLi4vZm9ybWF0LmpzJztcblxuY29uc3QgUk9MRV9DSE9JQ0VTID0gWydzdXBwb3J0JywgJ2FkbWluJywgJ2FuYWx5c3QnLCAndmlld2VyJ10gYXMgY29uc3Q7XG5cbmNvbnN0IHVzZXJDb2x1bW5zID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IChyOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ05hbWUnLCB2YWx1ZTogKHI6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiByLm5hbWUgfSxcbiAgeyBoZWFkZXI6ICdFbWFpbCcsIHZhbHVlOiAocjogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHIuZW1haWwgfSxcbiAgeyBoZWFkZXI6ICdSb2xlJywgdmFsdWU6IChyOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gci5yb2xlID8/ICcnIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IChyOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gci5zdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICdUZW5hbnQgSUQnLCB2YWx1ZTogKHI6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiByLnRlbmFudElkIH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiAocjogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHIuY3JlYXRlZEF0IH0sXG5dO1xuXG5leHBvcnQgY29uc3QgdXNlckNvbW1hbmQgPSBuZXcgQ29tbWFuZCgndXNlcicpXG4gIC5kZXNjcmlwdGlvbignTWFuYWdlIHVzZXJzJyk7XG5cbnVzZXJDb21tYW5kXG4gIC5jb21tYW5kKCdjcmVhdGUnKVxuICAuZGVzY3JpcHRpb24oJ0NyZWF0ZSBhIG5ldyB1c2VyLicpXG4gIC5yZXF1aXJlZE9wdGlvbignLS1uYW1lIDxuYW1lPicsICdVc2VyIG5hbWUnKVxuICAucmVxdWlyZWRPcHRpb24oJy0tZW1haWwgPGVtYWlsPicsICdVc2VyIGVtYWlsJylcbiAgLmFkZE9wdGlvbihcbiAgICBuZXcgT3B0aW9uKCctLXJvbGUgPHJvbGU+JywgJ1JCQUMgcm9sZSBmb3IgdGhlIG5ldyB1c2VyJylcbiAgICAgIC5jaG9pY2VzKFsuLi5ST0xFX0NIT0lDRVNdKVxuICAgICAgLmRlZmF1bHQoJ2FuYWx5c3QnKSxcbiAgKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbiAgLmFjdGlvbihhc3luYyAob3B0czoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuICAgIHJvbGU/OiAodHlwZW9mIFJPTEVfQ0hPSUNFUylbbnVtYmVyXTtcbiAgICBmb3JtYXQ6IE91dHB1dEZvcm1hdDtcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGJvZHk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0geyBuYW1lOiBvcHRzLm5hbWUsIGVtYWlsOiBvcHRzLmVtYWlsLCByb2xlOiBvcHRzLnJvbGUgfTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuR0VOSV9URU5BTlRfSUQpIGJvZHkudGVuYW50SWQgPSBwcm9jZXNzLmVudi5HRU5JX1RFTkFOVF9JRDtcblxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKCcvYWRtaW4vdXNlcnMnKSwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgIH0pO1xuICAgIGZvcm1hdE91dHB1dChkYXRhLCBvcHRzLmZvcm1hdCwgdXNlckNvbHVtbnMpO1xuICB9KTtcblxudXNlckNvbW1hbmRcbiAgLmNvbW1hbmQoJ2xpc3QnKVxuICAuZGVzY3JpcHRpb24oJ0xpc3QgdXNlcnMnKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbiAgLmFjdGlvbihhc3luYyAob3B0czogeyBmb3JtYXQ6IE91dHB1dEZvcm1hdCB9KSA9PiB7XG4gICAgY29uc3QgcXMgPSBwcm9jZXNzLmVudi5HRU5JX1RFTkFOVF9JRCA/IGA/dGVuYW50SWQ9JHtlbmNvZGVVUklDb21wb25lbnQocHJvY2Vzcy5lbnYuR0VOSV9URU5BTlRfSUQpfWAgOiAnJztcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybChgL2FkbWluL3VzZXJzJHtxc31gKSkgYXMgeyBpdGVtczogdW5rbm93bltdIH07XG4gICAgZm9ybWF0T3V0cHV0KG9wdHMuZm9ybWF0ID09PSAnanNvbicgPyBkYXRhIDogZGF0YS5pdGVtcywgb3B0cy5mb3JtYXQsIHVzZXJDb2x1bW5zKTtcbiAgfSk7XG5cbnVzZXJDb21tYW5kXG4gIC5jb21tYW5kKCdnZXQgPGlkPicpXG4gIC5kZXNjcmlwdGlvbignR2V0IGEgdXNlciBieSBJRCcpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuICAuYWN0aW9uKGFzeW5jIChpZDogc3RyaW5nLCBvcHRzOiB7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybChgL2FkbWluL3VzZXJzLyR7aWR9YCkpO1xuICAgIGZvcm1hdE91dHB1dChkYXRhLCBvcHRzLmZvcm1hdCwgdXNlckNvbHVtbnMpO1xuICB9KTtcblxudXNlckNvbW1hbmRcbiAgLmNvbW1hbmQoJ2Fzc2lnbi1yb2xlIDx1c2VySWQ+JylcbiAgLmRlc2NyaXB0aW9uKCdBc3NpZ24gYSBuZXcgUkJBQyByb2xlIHRvIGEgdXNlcicpXG4gIC5yZXF1aXJlZE9wdGlvbihcbiAgICAnLS1yb2xlIDxyb2xlPicsXG4gICAgYE9uZSBvZjogJHtST0xFX0NIT0lDRVMuam9pbignLCAnKX1gLFxuICAgICh2OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICghUk9MRV9DSE9JQ0VTLmluY2x1ZGVzKHYgYXMgKHR5cGVvZiBST0xFX0NIT0lDRVMpW251bWJlcl0pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgcm9sZSBtdXN0IGJlIG9uZSBvZjogJHtST0xFX0NIT0lDRVMuam9pbignLCAnKX1gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2O1xuICAgIH0sXG4gIClcbiAgLmFjdGlvbihhc3luYyAodXNlcklkOiBzdHJpbmcsIG9wdHM6IHsgcm9sZTogc3RyaW5nIH0pID0+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybChgL2FkbWluL3VzZXJzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCl9L3JvbGVgKSwge1xuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyByb2xlOiBvcHRzLnJvbGUgfSksXG4gICAgfSk7XG4gICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMikpO1xuICB9KTtcblxudXNlckNvbW1hbmRcbiAgLmNvbW1hbmQoJ2RlbGV0ZSA8aWQ+JylcbiAgLmRlc2NyaXB0aW9uKCdEZWxldGUgYSB1c2VyIGJ5IElEJylcbiAgLmFjdGlvbihhc3luYyAoaWQ6IHN0cmluZykgPT4ge1xuICAgIGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9hZG1pbi91c2Vycy8ke2VuY29kZVVSSUNvbXBvbmVudChpZCl9YCksIHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgfSk7XG4gICAgY29uc29sZS5sb2coJ1VzZXIgZGVsZXRlZCBzdWNjZXNzZnVsbHkuJyk7XG4gIH0pO1xuIl19
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.workflowCommand = void 0;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const auth_1 = require("../auth");
|
|
11
|
+
const errors_1 = require("../errors");
|
|
12
|
+
const format_js_1 = require("../format.js");
|
|
13
|
+
function parseTimeToSeconds(value) {
|
|
14
|
+
const parts = value.split(':').map(Number);
|
|
15
|
+
if (parts.length !== 3 || parts.some(isNaN)) {
|
|
16
|
+
throw (0, errors_1.invalidArgument)('Time must be in DD:HH:MM format (days:hours:minutes).', 'Example: 00:12:30');
|
|
17
|
+
}
|
|
18
|
+
const [days, hours, minutes] = parts;
|
|
19
|
+
return (days * 86400) + (hours * 3600) + (minutes * 60);
|
|
20
|
+
}
|
|
21
|
+
function guessFileType(filePath) {
|
|
22
|
+
const lower = filePath.toLowerCase();
|
|
23
|
+
if (lower.endsWith('.nf'))
|
|
24
|
+
return 'TEXT';
|
|
25
|
+
if (lower.endsWith('.zip'))
|
|
26
|
+
return 'ZIP';
|
|
27
|
+
throw (0, errors_1.invalidArgument)(`Cannot determine file type from extension. File must be .nf (TEXT) or .zip (ZIP).`, `Provided: ${filePath}`);
|
|
28
|
+
}
|
|
29
|
+
exports.workflowCommand = new commander_1.Command('workflow')
|
|
30
|
+
.description('Manage workflows');
|
|
31
|
+
exports.workflowCommand
|
|
32
|
+
.command('list')
|
|
33
|
+
.description('List all registered workflows')
|
|
34
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
35
|
+
.action(async (opts) => {
|
|
36
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)('/workflows'));
|
|
37
|
+
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_js_1.workflowColumns);
|
|
38
|
+
});
|
|
39
|
+
exports.workflowCommand
|
|
40
|
+
.command('get <name>')
|
|
41
|
+
.description('Get a workflow by name')
|
|
42
|
+
.option('--version <version>', 'Workflow version (defaults to latest)')
|
|
43
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
44
|
+
.action(async (name, opts) => {
|
|
45
|
+
const query = opts.version ? `?version=${opts.version}` : '';
|
|
46
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/workflows/${name}${query}`));
|
|
47
|
+
(0, format_js_1.formatOutput)(data, opts.format, format_js_1.workflowColumns);
|
|
48
|
+
});
|
|
49
|
+
exports.workflowCommand
|
|
50
|
+
.command('create')
|
|
51
|
+
.description('Register a new workflow (.nf file or .zip archive)')
|
|
52
|
+
.requiredOption('--workflow-name <name>', 'Workflow name')
|
|
53
|
+
.requiredOption('--workflow-version <alias>', 'Workflow version (alias)')
|
|
54
|
+
.requiredOption('--file <file>', 'Workflow file path (.nf or .zip)')
|
|
55
|
+
.option('--file-type <type>', 'File type (TEXT for .nf, ZIP for .zip archives; auto-guessed from extension if not provided)')
|
|
56
|
+
.option('--alert-time <DD:HH:MM>', 'Default alert time for submissions (DD:HH:MM)')
|
|
57
|
+
.option('--cancel-time <DD:HH:MM>', 'Default cancel time for submissions (DD:HH:MM)')
|
|
58
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
59
|
+
.action(async (opts) => {
|
|
60
|
+
const form = new FormData();
|
|
61
|
+
form.append('name', opts.workflowName);
|
|
62
|
+
form.append('version', opts.workflowVersion);
|
|
63
|
+
form.append('engine', 'nextflow');
|
|
64
|
+
const fileType = opts.fileType?.toUpperCase() || guessFileType(opts.file);
|
|
65
|
+
form.append('fileType', fileType);
|
|
66
|
+
if (opts.alertTime)
|
|
67
|
+
form.append('alertTimeSeconds', String(parseTimeToSeconds(opts.alertTime)));
|
|
68
|
+
if (opts.cancelTime)
|
|
69
|
+
form.append('cancelTimeSeconds', String(parseTimeToSeconds(opts.cancelTime)));
|
|
70
|
+
const fileBuffer = await fs_1.default.promises.readFile(opts.file);
|
|
71
|
+
form.append('file', new Blob([fileBuffer]), path_1.default.basename(opts.file));
|
|
72
|
+
const res = await fetch((0, auth_1.apiUrl)('/workflows'), {
|
|
73
|
+
method: 'POST',
|
|
74
|
+
headers: (0, auth_1.getAuthHeaders)(),
|
|
75
|
+
body: form,
|
|
76
|
+
});
|
|
77
|
+
const data = await (0, auth_1.readJsonResponse)(res, { method: 'POST', url: (0, auth_1.apiUrl)('/workflows') });
|
|
78
|
+
(0, format_js_1.formatOutput)(data, opts.format, format_js_1.workflowColumns);
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvd29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseUNBQTJDO0FBQzNDLDRDQUFtQjtBQUNuQixnREFBdUI7QUFDdkIsa0NBQTZFO0FBQzdFLHNDQUEyQztBQUMzQyw0Q0FBK0U7QUFFL0UsU0FBUyxrQkFBa0IsQ0FBQyxLQUFhO0lBQ3ZDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzFDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzVDLE1BQU0sSUFBQSx3QkFBZSxFQUNuQix1REFBdUQsRUFDdkQsbUJBQW1CLENBQ3BCLENBQUE7SUFDSCxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFBO0lBQ3BDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUE7QUFDekQsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLFFBQWdCO0lBQ3JDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUNwQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxNQUFNLENBQUE7SUFDeEMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFBO0lBQ3hDLE1BQU0sSUFBQSx3QkFBZSxFQUNuQixtRkFBbUYsRUFDbkYsYUFBYSxRQUFRLEVBQUUsQ0FDeEIsQ0FBQTtBQUNILENB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LENBQUMsQ0FBQTtJQUN2RixJQUFBLHdCQUFZLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsMkJBQWUsQ0FBQyxDQUFBO0FBQ2xELENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCwgT3B0aW9uIH0gZnJvbSAnY29tbWFuZGVyJ1xuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCB7IGFwaVVybCwgZmV0Y2hKc29uLCBnZXRBdXRoSGVhZGVycywgcmVhZEpzb25SZXNwb25zZSB9IGZyb20gJy4uL2F1dGgnXG5pbXBvcnQgeyBpbnZhbGlkQXJndW1lbnQgfSBmcm9tICcuLi9lcnJvcnMnXG5pbXBvcnQgeyBmb3JtYXRPdXRwdXQsIHdvcmtmbG93Q29sdW1ucywgdHlwZSBPdXRwdXRGb3JtYXQgfSBmcm9tICcuLi9mb3JtYXQuanMnXG5cbmZ1bmN0aW9uIHBhcnNlVGltZVRvU2Vjb25kcyh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgY29uc3QgcGFydHMgPSB2YWx1ZS5zcGxpdCgnOicpLm1hcChOdW1iZXIpXG4gIGlmIChwYXJ0cy5sZW5ndGggIT09IDMgfHwgcGFydHMuc29tZShpc05hTikpIHtcbiAgICB0aHJvdyBpbnZhbGlkQXJndW1lbnQoXG4gICAgICAnVGltZSBtdXN0IGJlIGluIEREOkhIOk1NIGZvcm1hdCAoZGF5czpob3VyczptaW51dGVzKS4nLFxuICAgICAgJ0V4YW1wbGU6IDAwOjEyOjMwJyxcbiAgICApXG4gIH1cbiAgY29uc3QgW2RheXMsIGhvdXJzLCBtaW51dGVzXSA9IHBhcnRzXG4gIHJldHVybiAoZGF5cyAqIDg2NDAwKSArIChob3VycyAqIDM2MDApICsgKG1pbnV0ZXMgKiA2MClcbn1cblxuZnVuY3Rpb24gZ3Vlc3NGaWxlVHlwZShmaWxlUGF0aDogc3RyaW5nKTogJ1RFWFQnIHwgJ1pJUCcge1xuICBjb25zdCBsb3dlciA9IGZpbGVQYXRoLnRvTG93ZXJDYXNlKClcbiAgaWYgKGxvd2VyLmVuZHNXaXRoKCcubmYnKSkgcmV0dXJuICdURVhUJ1xuICBpZiAobG93ZXIuZW5kc1dpdGgoJy56aXAnKSkgcmV0dXJuICdaSVAnXG4gIHRocm93IGludmFsaWRBcmd1bWVudChcbiAgICBgQ2Fubm90IGRldGVybWluZSBmaWxlIHR5cGUgZnJvbSBleHRlbnNpb24uIEZpbGUgbXVzdCBiZSAubmYgKFRFWFQpIG9yIC56aXAgKFpJUCkuYCxcbiAgICBgUHJvdmlkZWQ6ICR7ZmlsZVBhdGh9YCxcbiAgKVxufVxuXG5leHBvcnQgY29uc3Qgd29ya2Zsb3dDb21tYW5kID0gbmV3IENvbW1hbmQoJ3dvcmtmbG93JylcbiAgLmRlc2NyaXB0aW9uKCdNYW5hZ2Ugd29ya2Zsb3dzJylcblxud29ya2Zsb3dDb21tYW5kXG4gIC5jb21tYW5kKCdsaXN0JylcbiAgLmRlc2NyaXB0aW9uKCdMaXN0IGFsbCByZWdpc3RlcmVkIHdvcmtmbG93cycpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuICAuYWN0aW9uKGFzeW5jIChvcHRzOiB7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybCgnL3dvcmtmbG93cycpKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICAgIGZvcm1hdE91dHB1dChvcHRzLmZvcm1hdCA9PT0gJ2pzb24nID8gZGF0YSA6IGRhdGEuaXRlbXMsIG9wdHMuZm9ybWF0LCB3b3JrZmxvd0NvbHVtbnMpXG4gIH0pXG5cbndvcmtmbG93Q29tbWFuZFxuICAuY29tbWFuZCgnZ2V0IDxuYW1lPicpXG4gIC5kZXNjcmlwdGlvbignR2V0IGEgd29ya2Zsb3cgYnkgbmFtZScpXG4gIC5vcHRpb24oJy0tdmVyc2lvbiA8dmVyc2lvbj4nLCAnV29ya2Zsb3cgdmVyc2lvbiAoZGVmYXVsdHMgdG8gbGF0ZXN0KScpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuICAuYWN0aW9uKGFzeW5jIChuYW1lOiBzdHJpbmcsIG9wdHM6IHsgdmVyc2lvbj86IHN0cmluZzsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICAgIGNvbnN0IHF1ZXJ5ID0gb3B0cy52ZXJzaW9uID8gYD92ZXJzaW9uPSR7b3B0cy52ZXJzaW9ufWAgOiAnJ1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvd29ya2Zsb3dzLyR7bmFtZX0ke3F1ZXJ5fWApKVxuICAgIGZvcm1hdE91dHB1dChkYXRhLCBvcHRzLmZvcm1hdCwgd29ya2Zsb3dDb2x1bW5zKVxuICB9KVxuXG53b3JrZmxvd0NvbW1hbmRcbiAgLmNvbW1hbmQoJ2NyZWF0ZScpXG4gIC5kZXNjcmlwdGlvbignUmVnaXN0ZXIgYSBuZXcgd29ya2Zsb3cgKC5uZiBmaWxlIG9yIC56aXAgYXJjaGl2ZSknKVxuICAucmVxdWlyZWRPcHRpb24oJy0td29ya2Zsb3ctbmFtZSA8bmFtZT4nLCAnV29ya2Zsb3cgbmFtZScpXG4gIC5yZXF1aXJlZE9wdGlvbignLS13b3JrZmxvdy12ZXJzaW9uIDxhbGlhcz4nLCAnV29ya2Zsb3cgdmVyc2lvbiAoYWxpYXMpJylcbiAgLnJlcXVpcmVkT3B0aW9uKCctLWZpbGUgPGZpbGU+JywgJ1dvcmtmbG93IGZpbGUgcGF0aCAoLm5mIG9yIC56aXApJylcbiAgLm9wdGlvbignLS1maWxlLXR5cGUgPHR5cGU+JywgJ0ZpbGUgdHlwZSAoVEVYVCBmb3IgLm5mLCBaSVAgZm9yIC56aXAgYXJjaGl2ZXM7IGF1dG8tZ3Vlc3NlZCBmcm9tIGV4dGVuc2lvbiBpZiBub3QgcHJvdmlkZWQpJylcbiAgLm9wdGlvbignLS1hbGVydC10aW1lIDxERDpISDpNTT4nLCAnRGVmYXVsdCBhbGVydCB0aW1lIGZvciBzdWJtaXNzaW9ucyAoREQ6SEg6TU0pJylcbiAgLm9wdGlvbignLS1jYW5jZWwtdGltZSA8REQ6SEg6TU0+JywgJ0RlZmF1bHQgY2FuY2VsIHRpbWUgZm9yIHN1Ym1pc3Npb25zIChERDpISDpNTSknKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbiAgLmFjdGlvbihhc3luYyAob3B0czogeyB3b3JrZmxvd05hbWU6IHN0cmluZzsgd29ya2Zsb3dWZXJzaW9uOiBzdHJpbmc7IGZpbGU6IHN0cmluZzsgZmlsZVR5cGU/OiBzdHJpbmc7IGFsZXJ0VGltZT86IHN0cmluZzsgY2FuY2VsVGltZT86IHN0cmluZzsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybURhdGEoKVxuICAgIGZvcm0uYXBwZW5kKCduYW1lJywgb3B0cy53b3JrZmxvd05hbWUpXG4gICAgZm9ybS5hcHBlbmQoJ3ZlcnNpb24nLCBvcHRzLndvcmtmbG93VmVyc2lvbilcbiAgICBmb3JtLmFwcGVuZCgnZW5naW5lJywgJ25leHRmbG93JylcbiAgICBcbiAgICBjb25zdCBmaWxlVHlwZSA9IG9wdHMuZmlsZVR5cGU/LnRvVXBwZXJDYXNlKCkgfHwgZ3Vlc3NGaWxlVHlwZShvcHRzLmZpbGUpXG4gICAgZm9ybS5hcHBlbmQoJ2ZpbGVUeXBlJywgZmlsZVR5cGUpXG4gICAgXG4gICAgaWYgKG9wdHMuYWxlcnRUaW1lKSBmb3JtLmFwcGVuZCgnYWxlcnRUaW1lU2Vjb25kcycsIFN0cmluZyhwYXJzZVRpbWVUb1NlY29uZHMob3B0cy5hbGVydFRpbWUpKSlcbiAgICBpZiAob3B0cy5jYW5jZWxUaW1lKSBmb3JtLmFwcGVuZCgnY2FuY2VsVGltZVNlY29uZHMnLCBTdHJpbmcocGFyc2VUaW1lVG9TZWNvbmRzKG9wdHMuY2FuY2VsVGltZSkpKVxuICAgIGNvbnN0IGZpbGVCdWZmZXIgPSBhd2FpdCBmcy5wcm9taXNlcy5yZWFkRmlsZShvcHRzLmZpbGUpXG4gICAgZm9ybS5hcHBlbmQoJ2ZpbGUnLCBuZXcgQmxvYihbZmlsZUJ1ZmZlcl0pLCBwYXRoLmJhc2VuYW1lKG9wdHMuZmlsZSkpXG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChhcGlVcmwoJy93b3JrZmxvd3MnKSwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiBnZXRBdXRoSGVhZGVycygpLFxuICAgICAgYm9keTogZm9ybSxcbiAgICB9KVxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZWFkSnNvblJlc3BvbnNlKHJlcywgeyBtZXRob2Q6ICdQT1NUJywgdXJsOiBhcGlVcmwoJy93b3JrZmxvd3MnKSB9KVxuICAgIGZvcm1hdE91dHB1dChkYXRhLCBvcHRzLmZvcm1hdCwgd29ya2Zsb3dDb2x1bW5zKVxuICB9KVxuIl19
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export type CliErrorCode = 'INVALID_ARGUMENT' | 'AUTH' | 'NOT_FOUND' | 'UPSTREAM' | 'INTERNAL';
|
|
2
|
+
export declare class CliError extends Error {
|
|
3
|
+
code: CliErrorCode;
|
|
4
|
+
exitCode: number;
|
|
5
|
+
hint?: string;
|
|
6
|
+
details?: unknown;
|
|
7
|
+
constructor(params: {
|
|
8
|
+
code: CliErrorCode;
|
|
9
|
+
message: string;
|
|
10
|
+
exitCode: number;
|
|
11
|
+
hint?: string;
|
|
12
|
+
details?: unknown;
|
|
13
|
+
cause?: unknown;
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
export declare class HttpRequestError extends Error {
|
|
17
|
+
status: number;
|
|
18
|
+
method: string;
|
|
19
|
+
url: string;
|
|
20
|
+
body: string;
|
|
21
|
+
parsedBody?: unknown;
|
|
22
|
+
constructor(params: {
|
|
23
|
+
status: number;
|
|
24
|
+
method: string;
|
|
25
|
+
url: string;
|
|
26
|
+
body: string;
|
|
27
|
+
parsedBody?: unknown;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
export declare function invalidArgument(message: string, hint?: string): CliError;
|
|
31
|
+
export declare function notFound(message: string): CliError;
|
|
32
|
+
export declare function isDebugEnabled(argv?: string[]): boolean;
|
|
33
|
+
export declare function wantsJsonError(argv?: string[]): boolean;
|
|
34
|
+
export declare function toCliError(err: unknown): CliError;
|
|
35
|
+
export declare function printCliError(err: CliError, opts: {
|
|
36
|
+
json: boolean;
|
|
37
|
+
debug: boolean;
|
|
38
|
+
}): void;
|