@newpeak/barista-cli 0.2.282 ā 0.2.285
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/liberica/teams/index.d.ts.map +1 -1
- package/dist/commands/liberica/teams/index.js +2 -0
- package/dist/commands/liberica/teams/index.js.map +1 -1
- package/dist/commands/liberica/teams/plans/create.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/create.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/create.js +61 -0
- package/dist/commands/liberica/teams/plans/create.js.map +1 -0
- package/dist/commands/liberica/teams/plans/delete.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/delete.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/delete.js +43 -0
- package/dist/commands/liberica/teams/plans/delete.js.map +1 -0
- package/dist/commands/liberica/teams/plans/export.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/export.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/export.js +45 -0
- package/dist/commands/liberica/teams/plans/export.js.map +1 -0
- package/dist/commands/liberica/teams/plans/generate.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/generate.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/generate.js +55 -0
- package/dist/commands/liberica/teams/plans/generate.js.map +1 -0
- package/dist/commands/liberica/teams/plans/get.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/get.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/get.js +23 -0
- package/dist/commands/liberica/teams/plans/get.js.map +1 -0
- package/dist/commands/liberica/teams/plans/helpers.d.ts +18 -0
- package/dist/commands/liberica/teams/plans/helpers.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/helpers.js +96 -0
- package/dist/commands/liberica/teams/plans/helpers.js.map +1 -0
- package/dist/commands/liberica/teams/plans/index.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/index.js +29 -0
- package/dist/commands/liberica/teams/plans/index.js.map +1 -0
- package/dist/commands/liberica/teams/plans/items/add.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/items/add.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/items/add.js +73 -0
- package/dist/commands/liberica/teams/plans/items/add.js.map +1 -0
- package/dist/commands/liberica/teams/plans/items/edit.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/items/edit.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/items/edit.js +81 -0
- package/dist/commands/liberica/teams/plans/items/edit.js.map +1 -0
- package/dist/commands/liberica/teams/plans/items/import.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/items/import.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/items/import.js +91 -0
- package/dist/commands/liberica/teams/plans/items/import.js.map +1 -0
- package/dist/commands/liberica/teams/plans/items/index.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/items/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/items/index.js +19 -0
- package/dist/commands/liberica/teams/plans/items/index.js.map +1 -0
- package/dist/commands/liberica/teams/plans/items/list.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/items/list.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/items/list.js +44 -0
- package/dist/commands/liberica/teams/plans/items/list.js.map +1 -0
- package/dist/commands/liberica/teams/plans/items/moveWeek.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/items/moveWeek.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/items/moveWeek.js +36 -0
- package/dist/commands/liberica/teams/plans/items/moveWeek.js.map +1 -0
- package/dist/commands/liberica/teams/plans/items/remove.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/items/remove.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/items/remove.js +46 -0
- package/dist/commands/liberica/teams/plans/items/remove.js.map +1 -0
- package/dist/commands/liberica/teams/plans/list.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/list.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/list.js +41 -0
- package/dist/commands/liberica/teams/plans/list.js.map +1 -0
- package/dist/commands/liberica/teams/plans/rollup.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/rollup.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/rollup.js +30 -0
- package/dist/commands/liberica/teams/plans/rollup.js.map +1 -0
- package/dist/commands/liberica/teams/plans/scenarios/baseline.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/scenarios/baseline.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/scenarios/baseline.js +42 -0
- package/dist/commands/liberica/teams/plans/scenarios/baseline.js.map +1 -0
- package/dist/commands/liberica/teams/plans/scenarios/compare.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/scenarios/compare.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/scenarios/compare.js +39 -0
- package/dist/commands/liberica/teams/plans/scenarios/compare.js.map +1 -0
- package/dist/commands/liberica/teams/plans/scenarios/index.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/scenarios/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/scenarios/index.js +15 -0
- package/dist/commands/liberica/teams/plans/scenarios/index.js.map +1 -0
- package/dist/commands/liberica/teams/plans/scenarios/list.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/scenarios/list.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/scenarios/list.js +27 -0
- package/dist/commands/liberica/teams/plans/scenarios/list.js.map +1 -0
- package/dist/commands/liberica/teams/plans/scenarios/save.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/scenarios/save.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/scenarios/save.js +57 -0
- package/dist/commands/liberica/teams/plans/scenarios/save.js.map +1 -0
- package/dist/commands/liberica/teams/plans/update.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/update.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/update.js +89 -0
- package/dist/commands/liberica/teams/plans/update.js.map +1 -0
- package/dist/commands/liberica/teams/plans/week/index.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/week/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/week/index.js +9 -0
- package/dist/commands/liberica/teams/plans/week/index.js.map +1 -0
- package/dist/commands/liberica/teams/plans/week/list.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/week/list.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/week/list.js +27 -0
- package/dist/commands/liberica/teams/plans/week/list.js.map +1 -0
- package/dist/core/api/client.d.ts +23 -0
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +487 -0
- package/dist/core/api/client.js.map +1 -1
- package/dist/types/team-plan.d.ts +265 -0
- package/dist/types/team-plan.d.ts.map +1 -0
- package/dist/types/team-plan.js +2 -0
- package/dist/types/team-plan.js.map +1 -0
- package/package.json +1 -1
- package/skills/barista-cli/data/commands.json +117 -1
- package/skills/barista-cli/data/commands.yaml +75 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,6BAA6B,IAAI,OAAO,CAiFvD"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { apiClient } from '../../../../../core/api/client.js';
|
|
4
|
+
import { handleResponse, optionalInteger, optionalNumber, optionalString, printDryRun, requireOption, resolveContext, } from '../helpers.js';
|
|
5
|
+
export function createTeamPlanItemEditCommand() {
|
|
6
|
+
const command = new Command('edit');
|
|
7
|
+
command.description('Edit a plan item');
|
|
8
|
+
command.argument('<plan-id>', 'Plan ID');
|
|
9
|
+
command
|
|
10
|
+
.option('--item-id <string>', 'Plan item ID')
|
|
11
|
+
.option('--phase-code <string>', 'Phase code')
|
|
12
|
+
.option('--batch-code <string>', 'Batch code')
|
|
13
|
+
.option('--week <string>', 'Week code')
|
|
14
|
+
.option('--issue-id <string>', 'Source issue ID')
|
|
15
|
+
.option('--issue-code <string>', 'Source issue code')
|
|
16
|
+
.option('--title <string>', 'Item title')
|
|
17
|
+
.option('--module-code <string>', 'Module code')
|
|
18
|
+
.option('--item-type <string>', 'Item type')
|
|
19
|
+
.option('--fp <number>', 'Function points')
|
|
20
|
+
.option('--person-days <number>', 'Person-days')
|
|
21
|
+
.option('--priority <string>', 'Priority')
|
|
22
|
+
.option('--owner-id <string>', 'Owner ID')
|
|
23
|
+
.option('--owner-name <string>', 'Owner name')
|
|
24
|
+
.option('--acceptor-id <string>', 'Acceptor ID')
|
|
25
|
+
.option('--acceptor-name <string>', 'Acceptor name')
|
|
26
|
+
.option('--plan-start-date <string>', 'Plan start date (yyyy-MM-dd)')
|
|
27
|
+
.option('--plan-end-date <string>', 'Plan end date (yyyy-MM-dd)')
|
|
28
|
+
.option('--optimistic-lock <number>', 'Optimistic lock version')
|
|
29
|
+
.option('--dry-run', 'Print the request body without calling the API')
|
|
30
|
+
.option('--confirm', 'Confirm the write operation')
|
|
31
|
+
.option('--json', 'Output as JSON');
|
|
32
|
+
command.action(async (planId, options) => {
|
|
33
|
+
const { environment, tenant } = resolveContext(options);
|
|
34
|
+
const json = options.json === true;
|
|
35
|
+
const data = {
|
|
36
|
+
planId: requireOption(planId, '<plan-id>', json),
|
|
37
|
+
planItemId: requireOption(options.itemId, '--item-id', json),
|
|
38
|
+
};
|
|
39
|
+
const optionalFields = [
|
|
40
|
+
['phaseCode', optionalString(options.phaseCode)],
|
|
41
|
+
['batchCode', optionalString(options.batchCode)],
|
|
42
|
+
['weekCode', optionalString(options.week)],
|
|
43
|
+
['issueId', optionalString(options.issueId)],
|
|
44
|
+
['issueCode', optionalString(options.issueCode)],
|
|
45
|
+
['itemTitle', optionalString(options.title)],
|
|
46
|
+
['moduleCode', optionalString(options.moduleCode)],
|
|
47
|
+
['itemType', optionalString(options.itemType)],
|
|
48
|
+
['priority', optionalString(options.priority)],
|
|
49
|
+
['ownerId', optionalString(options.ownerId)],
|
|
50
|
+
['ownerName', optionalString(options.ownerName)],
|
|
51
|
+
['acceptorId', optionalString(options.acceptorId)],
|
|
52
|
+
['acceptorName', optionalString(options.acceptorName)],
|
|
53
|
+
['planStartDate', optionalString(options.planStartDate)],
|
|
54
|
+
['planEndDate', optionalString(options.planEndDate)],
|
|
55
|
+
];
|
|
56
|
+
for (const [key, value] of optionalFields) {
|
|
57
|
+
if (value !== undefined) {
|
|
58
|
+
data[key] = value;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const fp = optionalNumber(options.fp);
|
|
62
|
+
if (fp !== undefined)
|
|
63
|
+
data.fp = fp;
|
|
64
|
+
const personDays = optionalNumber(options.personDays);
|
|
65
|
+
if (personDays !== undefined)
|
|
66
|
+
data.personDays = personDays;
|
|
67
|
+
const optimisticLock = optionalInteger(options.optimisticLock);
|
|
68
|
+
if (optimisticLock !== undefined)
|
|
69
|
+
data.optimisticLock = optimisticLock;
|
|
70
|
+
if (options.dryRun) {
|
|
71
|
+
printDryRun(data, json);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const response = await apiClient.editTeamPlanItem(environment, tenant, data);
|
|
75
|
+
handleResponse(response, json, () => {
|
|
76
|
+
console.log(chalk.green(`\nā Plan item ${data.planItemId} updated\n`));
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
return command;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=edit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyDpC,wBAAgB,+BAA+B,IAAI,OAAO,CA6DzD"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { readFileSync } from 'fs';
|
|
4
|
+
import { apiClient } from '../../../../../core/api/client.js';
|
|
5
|
+
import { fail, handleResponse, optionalString, printDryRun, requireOption, resolveContext, } from '../helpers.js';
|
|
6
|
+
function parseRows(raw, json) {
|
|
7
|
+
let parsed;
|
|
8
|
+
try {
|
|
9
|
+
parsed = JSON.parse(raw);
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
fail('INVALID_ROWS_JSON', `Rows JSON is invalid: ${error instanceof Error ? error.message : 'unknown error'}`, json);
|
|
13
|
+
}
|
|
14
|
+
const candidate = parsed && !Array.isArray(parsed) && typeof parsed === 'object' && 'rows' in parsed
|
|
15
|
+
? parsed.rows
|
|
16
|
+
: parsed;
|
|
17
|
+
if (!Array.isArray(candidate)) {
|
|
18
|
+
fail('INVALID_ROWS_JSON', 'Rows JSON must be an array or an object with a rows array', json);
|
|
19
|
+
}
|
|
20
|
+
return candidate.map((row) => {
|
|
21
|
+
if (!row || typeof row !== 'object') {
|
|
22
|
+
fail('INVALID_ROW', 'Each imported row must be an object', json);
|
|
23
|
+
}
|
|
24
|
+
const record = row;
|
|
25
|
+
if (typeof record.itemTitle !== 'string' || record.itemTitle.trim() === '') {
|
|
26
|
+
fail('INVALID_ROW', 'Each imported row requires itemTitle', json);
|
|
27
|
+
}
|
|
28
|
+
if (typeof record.fp !== 'number' && typeof record.fp !== 'string') {
|
|
29
|
+
fail('INVALID_ROW', 'Each imported row requires a numeric fp', json);
|
|
30
|
+
}
|
|
31
|
+
const fp = Number(record.fp);
|
|
32
|
+
if (!Number.isFinite(fp)) {
|
|
33
|
+
fail('INVALID_ROW', `Invalid fp value: ${String(record.fp)}`, json);
|
|
34
|
+
}
|
|
35
|
+
return { ...record, fp };
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
export function createTeamPlanItemImportCommand() {
|
|
39
|
+
const command = new Command('import');
|
|
40
|
+
command.description('Import plan items from issues or a JSON rows payload');
|
|
41
|
+
command.argument('<plan-id>', 'Plan ID');
|
|
42
|
+
command
|
|
43
|
+
.option('--from-issues', 'Import items from Liberica issues')
|
|
44
|
+
.option('--custom-project-code <string>', 'Custom project code used by --from-issues')
|
|
45
|
+
.option('--rows <json>', 'Inline JSON array (or {rows:[]}) of items')
|
|
46
|
+
.option('--rows-file <path>', 'Path to a JSON file containing items')
|
|
47
|
+
.option('--dry-run', 'Print the request body without calling the API')
|
|
48
|
+
.option('--confirm', 'Confirm the write operation')
|
|
49
|
+
.option('--json', 'Output as JSON');
|
|
50
|
+
command.action(async (planId, options) => {
|
|
51
|
+
const { environment, tenant } = resolveContext(options);
|
|
52
|
+
const json = options.json === true;
|
|
53
|
+
const id = requireOption(planId, '<plan-id>', json);
|
|
54
|
+
let rows;
|
|
55
|
+
if (options.rowsFile) {
|
|
56
|
+
try {
|
|
57
|
+
rows = parseRows(readFileSync(String(options.rowsFile), 'utf8'), json);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
fail('ROWS_FILE_ERROR', `Unable to read rows file: ${error instanceof Error ? error.message : 'unknown error'}`, json);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else if (options.rows) {
|
|
64
|
+
rows = parseRows(String(options.rows), json);
|
|
65
|
+
}
|
|
66
|
+
if (!options.fromIssues && !rows) {
|
|
67
|
+
fail('MISSING_OPTION', 'Provide --from-issues or --rows/--rows-file', json);
|
|
68
|
+
}
|
|
69
|
+
const data = {
|
|
70
|
+
planId: id,
|
|
71
|
+
fromIssues: options.fromIssues === true,
|
|
72
|
+
};
|
|
73
|
+
const customProjectCode = optionalString(options.customProjectCode);
|
|
74
|
+
if (customProjectCode)
|
|
75
|
+
data.customProjectCode = customProjectCode;
|
|
76
|
+
if (rows)
|
|
77
|
+
data.rows = rows;
|
|
78
|
+
if (options.dryRun) {
|
|
79
|
+
printDryRun(data, json);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const response = await apiClient.importTeamPlanItems(environment, tenant, data);
|
|
83
|
+
handleResponse(response, json, (result) => {
|
|
84
|
+
console.log(chalk.green('\nā Plan items imported\n'));
|
|
85
|
+
console.log(JSON.stringify(result, null, 2));
|
|
86
|
+
console.log();
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
return command;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/import.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,0BAA0B,IAAI,OAAO,CAYpD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { createTeamPlanItemListCommand } from './list.js';
|
|
3
|
+
import { createTeamPlanItemAddCommand } from './add.js';
|
|
4
|
+
import { createTeamPlanItemEditCommand } from './edit.js';
|
|
5
|
+
import { createTeamPlanItemRemoveCommand } from './remove.js';
|
|
6
|
+
import { createTeamPlanItemMoveWeekCommand } from './moveWeek.js';
|
|
7
|
+
import { createTeamPlanItemImportCommand } from './import.js';
|
|
8
|
+
export function createTeamPlanItemsCommand() {
|
|
9
|
+
const items = new Command('items');
|
|
10
|
+
items.description('Manage team plan items');
|
|
11
|
+
items.addCommand(createTeamPlanItemListCommand());
|
|
12
|
+
items.addCommand(createTeamPlanItemAddCommand());
|
|
13
|
+
items.addCommand(createTeamPlanItemEditCommand());
|
|
14
|
+
items.addCommand(createTeamPlanItemRemoveCommand());
|
|
15
|
+
items.addCommand(createTeamPlanItemMoveWeekCommand());
|
|
16
|
+
items.addCommand(createTeamPlanItemImportCommand());
|
|
17
|
+
return items;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,iCAAiC,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,UAAU,0BAA0B;IACxC,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAE5C,KAAK,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAClD,KAAK,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACjD,KAAK,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAClD,KAAK,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAC;IACpD,KAAK,CAAC,UAAU,CAAC,iCAAiC,EAAE,CAAC,CAAC;IACtD,KAAK,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAC;IAEpD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,6BAA6B,IAAI,OAAO,CAuCvD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { apiClient } from '../../../../../core/api/client.js';
|
|
4
|
+
import { handleResponse, printRows, requireOption, resolveContext, } from '../helpers.js';
|
|
5
|
+
export function createTeamPlanItemListCommand() {
|
|
6
|
+
const command = new Command('list');
|
|
7
|
+
command.description('List plan items');
|
|
8
|
+
command.argument('<plan-id>', 'Plan ID');
|
|
9
|
+
command
|
|
10
|
+
.option('-p, --page <number>', 'Page number', '1')
|
|
11
|
+
.option('-s, --size <number>', 'Page size', '20')
|
|
12
|
+
.option('--phase <string>', 'Filter by phase code')
|
|
13
|
+
.option('--week <string>', 'Filter by week code')
|
|
14
|
+
.option('--owner-id <string>', 'Filter by owner ID')
|
|
15
|
+
.option('--status <string>', 'Filter by item status')
|
|
16
|
+
.option('--keyword <string>', 'Fuzzy search by title or issue code')
|
|
17
|
+
.option('--json', 'Output as JSON');
|
|
18
|
+
command.action(async (planId, options) => {
|
|
19
|
+
const { environment, tenant } = resolveContext(options);
|
|
20
|
+
const json = options.json === true;
|
|
21
|
+
const params = {
|
|
22
|
+
planId: requireOption(planId, '<plan-id>', json),
|
|
23
|
+
pageNo: parseInt(options.page, 10),
|
|
24
|
+
pageSize: parseInt(options.size, 10),
|
|
25
|
+
};
|
|
26
|
+
if (options.phase)
|
|
27
|
+
params.phaseCode = options.phase;
|
|
28
|
+
if (options.week)
|
|
29
|
+
params.weekCode = options.week;
|
|
30
|
+
if (options.ownerId)
|
|
31
|
+
params.ownerId = options.ownerId;
|
|
32
|
+
if (options.status)
|
|
33
|
+
params.itemStatus = options.status;
|
|
34
|
+
if (options.keyword)
|
|
35
|
+
params.keyword = options.keyword;
|
|
36
|
+
const response = await apiClient.listTeamPlanItems(environment, tenant, params);
|
|
37
|
+
handleResponse(response, json, (data) => {
|
|
38
|
+
console.log(chalk.bold('\nš Team Plan Items\n'));
|
|
39
|
+
printRows(data);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
return command;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,OAAO,EACL,cAAc,EACd,SAAS,EACT,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,MAAM,UAAU,6BAA6B;IAC3C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEzC,OAAO;SACJ,MAAM,CAAC,qBAAqB,EAAE,aAAa,EAAE,GAAG,CAAC;SACjD,MAAM,CAAC,qBAAqB,EAAE,WAAW,EAAE,IAAI,CAAC;SAChD,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;SAClD,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;SAChD,MAAM,CAAC,qBAAqB,EAAE,oBAAoB,CAAC;SACnD,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;SACpD,MAAM,CAAC,oBAAoB,EAAE,qCAAqC,CAAC;SACnE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAEtC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAO,EAAE,EAAE;QAC/C,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;QACnC,MAAM,MAAM,GAA4B;YACtC,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC;YAChD,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACrC,CAAC;QAEF,IAAI,OAAO,CAAC,KAAK;YAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;QACpD,IAAI,OAAO,CAAC,IAAI;YAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QACjD,IAAI,OAAO,CAAC,OAAO;YAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;QACvD,IAAI,OAAO,CAAC,OAAO;YAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAEtD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAEhF,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAClD,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moveWeek.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/moveWeek.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,iCAAiC,IAAI,OAAO,CAqC3D"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { apiClient } from '../../../../../core/api/client.js';
|
|
4
|
+
import { handleResponse, printDryRun, requireOption, resolveContext, } from '../helpers.js';
|
|
5
|
+
export function createTeamPlanItemMoveWeekCommand() {
|
|
6
|
+
const command = new Command('moveWeek');
|
|
7
|
+
command.description('Move a plan item to another week');
|
|
8
|
+
command.argument('<plan-id>', 'Plan ID');
|
|
9
|
+
command
|
|
10
|
+
.option('--item-id <string>', 'Plan item ID')
|
|
11
|
+
.option('--week <string>', 'Target week code (e.g. W4)')
|
|
12
|
+
.option('--change-note <string>', 'Reason for the move')
|
|
13
|
+
.option('--dry-run', 'Print the request body without calling the API')
|
|
14
|
+
.option('--confirm', 'Confirm the write operation')
|
|
15
|
+
.option('--json', 'Output as JSON');
|
|
16
|
+
command.action(async (planId, options) => {
|
|
17
|
+
const { environment, tenant } = resolveContext(options);
|
|
18
|
+
const json = options.json === true;
|
|
19
|
+
requireOption(planId, '<plan-id>', json);
|
|
20
|
+
const data = {
|
|
21
|
+
planItemId: requireOption(options.itemId, '--item-id', json),
|
|
22
|
+
weekCode: requireOption(options.week, '--week', json),
|
|
23
|
+
changeNote: requireOption(options.changeNote, '--change-note', json),
|
|
24
|
+
};
|
|
25
|
+
if (options.dryRun) {
|
|
26
|
+
printDryRun(data, json);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const response = await apiClient.moveTeamPlanItemWeek(environment, tenant, data);
|
|
30
|
+
handleResponse(response, json, () => {
|
|
31
|
+
console.log(chalk.green(`\nā Plan item ${data.planItemId} moved to ${data.weekCode}\n`));
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
return command;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=moveWeek.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moveWeek.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/moveWeek.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,OAAO,EACL,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,MAAM,UAAU,iCAAiC;IAC/C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,OAAO,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEzC,OAAO;SACJ,MAAM,CAAC,oBAAoB,EAAE,cAAc,CAAC;SAC5C,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;SACvD,MAAM,CAAC,wBAAwB,EAAE,qBAAqB,CAAC;SACvD,MAAM,CAAC,WAAW,EAAE,gDAAgD,CAAC;SACrE,MAAM,CAAC,WAAW,EAAE,6BAA6B,CAAC;SAClD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAEtC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAO,EAAE,EAAE;QAC/C,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;QACnC,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAEzC,MAAM,IAAI,GAAgC;YACxC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC;YAC5D,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;YACrD,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC;SACrE,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAEjF,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,UAAU,aAAa,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,+BAA+B,IAAI,OAAO,CA8CzD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { apiClient } from '../../../../../core/api/client.js';
|
|
4
|
+
import { handleResponse, optionalInteger, printDryRun, printJson, requireOption, resolveContext, } from '../helpers.js';
|
|
5
|
+
export function createTeamPlanItemRemoveCommand() {
|
|
6
|
+
const command = new Command('remove');
|
|
7
|
+
command.description('Remove a plan item');
|
|
8
|
+
command.argument('<plan-id>', 'Plan ID');
|
|
9
|
+
command
|
|
10
|
+
.option('--item-id <string>', 'Plan item ID')
|
|
11
|
+
.option('--optimistic-lock <number>', 'Optimistic lock version')
|
|
12
|
+
.option('--confirm', 'Confirm removal')
|
|
13
|
+
.option('--force', 'Alias for --confirm')
|
|
14
|
+
.option('--dry-run', 'Print the request body without calling the API')
|
|
15
|
+
.option('--json', 'Output as JSON');
|
|
16
|
+
command.action(async (planId, options) => {
|
|
17
|
+
const { environment, tenant } = resolveContext(options);
|
|
18
|
+
const json = options.json === true;
|
|
19
|
+
requireOption(planId, '<plan-id>', json);
|
|
20
|
+
const data = {
|
|
21
|
+
planItemId: requireOption(options.itemId, '--item-id', json),
|
|
22
|
+
};
|
|
23
|
+
const optimisticLock = optionalInteger(options.optimisticLock);
|
|
24
|
+
if (optimisticLock !== undefined)
|
|
25
|
+
data.optimisticLock = optimisticLock;
|
|
26
|
+
if (options.dryRun) {
|
|
27
|
+
printDryRun(data, json);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (!options.confirm && !options.force) {
|
|
31
|
+
if (json) {
|
|
32
|
+
printJson({ success: true, dryRun: true, needsConfirm: true, data });
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
console.log(chalk.yellow(`\nā ļø Add --confirm to remove plan item ${data.planItemId}\n`));
|
|
36
|
+
}
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const response = await apiClient.removeTeamPlanItem(environment, tenant, data);
|
|
40
|
+
handleResponse(response, json, () => {
|
|
41
|
+
console.log(chalk.green(`\nā Plan item ${data.planItemId} removed\n`));
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
return command;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=remove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,OAAO,EACL,cAAc,EACd,eAAe,EACf,WAAW,EACX,SAAS,EACT,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,MAAM,UAAU,+BAA+B;IAC7C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEzC,OAAO;SACJ,MAAM,CAAC,oBAAoB,EAAE,cAAc,CAAC;SAC5C,MAAM,CAAC,4BAA4B,EAAE,yBAAyB,CAAC;SAC/D,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC;SACtC,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC;SACxC,MAAM,CAAC,WAAW,EAAE,gDAAgD,CAAC;SACrE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAEtC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAO,EAAE,EAAE;QAC/C,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;QACnC,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAEzC,MAAM,IAAI,GAA8B;YACtC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC;SAC7D,CAAC;QACF,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/D,IAAI,cAAc,KAAK,SAAS;YAAE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAEvE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,IAAI,EAAE,CAAC;gBACT,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2CAA2C,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;YAC5F,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAE/E,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,UAAU,YAAY,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,yBAAyB,IAAI,OAAO,CAoCnD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
4
|
+
import { handleResponse, printRows, resolveContext } from './helpers.js';
|
|
5
|
+
export function createTeamPlanListCommand() {
|
|
6
|
+
const command = new Command('list');
|
|
7
|
+
command.description('List team plans with pagination');
|
|
8
|
+
command
|
|
9
|
+
.option('-p, --page <number>', 'Page number', '1')
|
|
10
|
+
.option('-s, --size <number>', 'Page size', '20')
|
|
11
|
+
.option('--plan-id <string>', 'Filter by plan ID')
|
|
12
|
+
.option('--name <string>', 'Filter by plan name')
|
|
13
|
+
.option('--custom-project-code <string>', 'Filter by custom project code')
|
|
14
|
+
.option('--scenario-code <string>', 'Filter by scenario code')
|
|
15
|
+
.option('--baseline', 'Only baseline plans')
|
|
16
|
+
.option('--json', 'Output as JSON');
|
|
17
|
+
command.action(async (options) => {
|
|
18
|
+
const { environment, tenant } = resolveContext(options);
|
|
19
|
+
const params = {
|
|
20
|
+
pageNo: parseInt(options.page, 10),
|
|
21
|
+
pageSize: parseInt(options.size, 10),
|
|
22
|
+
};
|
|
23
|
+
if (options.planId)
|
|
24
|
+
params.planId = options.planId;
|
|
25
|
+
if (options.name)
|
|
26
|
+
params.planName = options.name;
|
|
27
|
+
if (options.customProjectCode)
|
|
28
|
+
params.customProjectCode = options.customProjectCode;
|
|
29
|
+
if (options.scenarioCode)
|
|
30
|
+
params.scenarioCode = options.scenarioCode;
|
|
31
|
+
if (options.baseline)
|
|
32
|
+
params.baselineFlag = true;
|
|
33
|
+
const response = await apiClient.listTeamPlans(environment, tenant, params);
|
|
34
|
+
handleResponse(response, options.json === true, (data) => {
|
|
35
|
+
console.log(chalk.bold('\nš Team Plans\n'));
|
|
36
|
+
printRows(data);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
return command;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEzE,MAAM,UAAU,yBAAyB;IACvC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC;IAEvD,OAAO;SACJ,MAAM,CAAC,qBAAqB,EAAE,aAAa,EAAE,GAAG,CAAC;SACjD,MAAM,CAAC,qBAAqB,EAAE,WAAW,EAAE,IAAI,CAAC;SAChD,MAAM,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;SACjD,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;SAChD,MAAM,CAAC,gCAAgC,EAAE,+BAA+B,CAAC;SACzE,MAAM,CAAC,0BAA0B,EAAE,yBAAyB,CAAC;SAC7D,MAAM,CAAC,YAAY,EAAE,qBAAqB,CAAC;SAC3C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAEtC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,MAAM,GAAwB;YAClC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACrC,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACnD,IAAI,OAAO,CAAC,IAAI;YAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QACjD,IAAI,OAAO,CAAC,iBAAiB;YAAE,MAAM,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACpF,IAAI,OAAO,CAAC,YAAY;YAAE,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACrE,IAAI,OAAO,CAAC,QAAQ;YAAE,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;QAEjD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAE5E,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC7C,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/rollup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,2BAA2B,IAAI,OAAO,CA4BrD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
4
|
+
import { handleResponse, requireOption, resolveContext, } from './helpers.js';
|
|
5
|
+
export function createTeamPlanRollupCommand() {
|
|
6
|
+
const command = new Command('rollup');
|
|
7
|
+
command.description('Recompute plan progress from issues, tasks and releases');
|
|
8
|
+
command.argument('<plan-id>', 'Plan ID');
|
|
9
|
+
command.option('--json', 'Output as JSON');
|
|
10
|
+
command.action(async (planId, options) => {
|
|
11
|
+
const { environment, tenant } = resolveContext(options);
|
|
12
|
+
const json = options.json === true;
|
|
13
|
+
const id = requireOption(planId, '<plan-id>', json);
|
|
14
|
+
const response = await apiClient.rollupTeamPlan(environment, tenant, id);
|
|
15
|
+
handleResponse(response, json, (data) => {
|
|
16
|
+
const result = data;
|
|
17
|
+
console.log(chalk.bold('\nš Plan Rollup\n'));
|
|
18
|
+
if (result) {
|
|
19
|
+
console.log(` ${chalk.gray('Plan ID:')} ${result.planId}`);
|
|
20
|
+
console.log(` ${chalk.gray('Total FP:')} ${result.totalFp}`);
|
|
21
|
+
console.log(` ${chalk.gray('Done FP:')} ${result.doneFp}`);
|
|
22
|
+
console.log(` ${chalk.gray('Progress:')} ${result.progress}%`);
|
|
23
|
+
console.log(` ${chalk.gray('Delayed:')} ${result.delayedCount}`);
|
|
24
|
+
}
|
|
25
|
+
console.log();
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
return command;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=rollup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollup.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/rollup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,2BAA2B;IACzC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,CAAC,WAAW,CAAC,yDAAyD,CAAC,CAAC;IAC/E,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAE3C,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAgC,EAAE,EAAE;QACxE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;QACnC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAEzE,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YACtC,MAAM,MAAM,GAAG,IAA6B,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC9C,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACnE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/scenarios/baseline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,qCAAqC,IAAI,OAAO,CA6C/D"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { apiClient } from '../../../../../core/api/client.js';
|
|
4
|
+
import { handleResponse, printDryRun, printJson, requireOption, resolveContext, } from '../helpers.js';
|
|
5
|
+
export function createTeamPlanScenarioBaselineCommand() {
|
|
6
|
+
const command = new Command('baseline');
|
|
7
|
+
command.description('Set the scenario baseline for a plan');
|
|
8
|
+
command.argument('<plan-id>', 'Plan ID');
|
|
9
|
+
command
|
|
10
|
+
.option('--scenario-code <string>', 'Scenario code')
|
|
11
|
+
.option('--confirm', 'Confirm the baseline change')
|
|
12
|
+
.option('--force', 'Alias for --confirm')
|
|
13
|
+
.option('--dry-run', 'Print the request body without calling the API')
|
|
14
|
+
.option('--json', 'Output as JSON');
|
|
15
|
+
command.action(async (planId, options) => {
|
|
16
|
+
const { environment, tenant } = resolveContext(options);
|
|
17
|
+
const json = options.json === true;
|
|
18
|
+
const data = {
|
|
19
|
+
planId: requireOption(planId, '<plan-id>', json),
|
|
20
|
+
scenarioCode: requireOption(options.scenarioCode, '--scenario-code', json),
|
|
21
|
+
};
|
|
22
|
+
if (options.dryRun) {
|
|
23
|
+
printDryRun(data, json);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
if (!options.confirm && !options.force) {
|
|
27
|
+
if (json) {
|
|
28
|
+
printJson({ success: true, dryRun: true, needsConfirm: true, data });
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
console.log(chalk.yellow('\nā ļø Add --confirm to switch the scenario baseline\n'));
|
|
32
|
+
}
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const response = await apiClient.setTeamPlanBaseline(environment, tenant, data);
|
|
36
|
+
handleResponse(response, json, () => {
|
|
37
|
+
console.log(chalk.green(`\nā Scenario ${data.scenarioCode} is now the baseline for plan ${data.planId}\n`));
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
return command;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=baseline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/scenarios/baseline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,OAAO,EACL,cAAc,EACd,WAAW,EACX,SAAS,EACT,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,MAAM,UAAU,qCAAqC;IACnD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,OAAO,CAAC,WAAW,CAAC,sCAAsC,CAAC,CAAC;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEzC,OAAO;SACJ,MAAM,CAAC,0BAA0B,EAAE,eAAe,CAAC;SACnD,MAAM,CAAC,WAAW,EAAE,6BAA6B,CAAC;SAClD,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC;SACxC,MAAM,CAAC,WAAW,EAAE,gDAAgD,CAAC;SACrE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAEtC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAO,EAAE,EAAE;QAC/C,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;QAEnC,MAAM,IAAI,GAA+B;YACvC,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC;YAChD,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC;SAC3E,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,IAAI,EAAE,CAAC;gBACT,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;YACrF,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAEhF,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;YAClC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,YAAY,iCAAiC,IAAI,CAAC,MAAM,IAAI,CAAC,CAC/F,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/scenarios/compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,oCAAoC,IAAI,OAAO,CA6C9D"}
|