@newpeak/barista-cli 0.2.282 → 0.2.287

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.
Files changed (110) hide show
  1. package/dist/commands/liberica/teams/index.d.ts.map +1 -1
  2. package/dist/commands/liberica/teams/index.js +2 -0
  3. package/dist/commands/liberica/teams/index.js.map +1 -1
  4. package/dist/commands/liberica/teams/plans/create.d.ts +3 -0
  5. package/dist/commands/liberica/teams/plans/create.d.ts.map +1 -0
  6. package/dist/commands/liberica/teams/plans/create.js +61 -0
  7. package/dist/commands/liberica/teams/plans/create.js.map +1 -0
  8. package/dist/commands/liberica/teams/plans/delete.d.ts +3 -0
  9. package/dist/commands/liberica/teams/plans/delete.d.ts.map +1 -0
  10. package/dist/commands/liberica/teams/plans/delete.js +43 -0
  11. package/dist/commands/liberica/teams/plans/delete.js.map +1 -0
  12. package/dist/commands/liberica/teams/plans/export.d.ts +3 -0
  13. package/dist/commands/liberica/teams/plans/export.d.ts.map +1 -0
  14. package/dist/commands/liberica/teams/plans/export.js +45 -0
  15. package/dist/commands/liberica/teams/plans/export.js.map +1 -0
  16. package/dist/commands/liberica/teams/plans/generate.d.ts +3 -0
  17. package/dist/commands/liberica/teams/plans/generate.d.ts.map +1 -0
  18. package/dist/commands/liberica/teams/plans/generate.js +55 -0
  19. package/dist/commands/liberica/teams/plans/generate.js.map +1 -0
  20. package/dist/commands/liberica/teams/plans/get.d.ts +3 -0
  21. package/dist/commands/liberica/teams/plans/get.d.ts.map +1 -0
  22. package/dist/commands/liberica/teams/plans/get.js +23 -0
  23. package/dist/commands/liberica/teams/plans/get.js.map +1 -0
  24. package/dist/commands/liberica/teams/plans/helpers.d.ts +18 -0
  25. package/dist/commands/liberica/teams/plans/helpers.d.ts.map +1 -0
  26. package/dist/commands/liberica/teams/plans/helpers.js +96 -0
  27. package/dist/commands/liberica/teams/plans/helpers.js.map +1 -0
  28. package/dist/commands/liberica/teams/plans/index.d.ts +3 -0
  29. package/dist/commands/liberica/teams/plans/index.d.ts.map +1 -0
  30. package/dist/commands/liberica/teams/plans/index.js +29 -0
  31. package/dist/commands/liberica/teams/plans/index.js.map +1 -0
  32. package/dist/commands/liberica/teams/plans/items/add.d.ts +3 -0
  33. package/dist/commands/liberica/teams/plans/items/add.d.ts.map +1 -0
  34. package/dist/commands/liberica/teams/plans/items/add.js +73 -0
  35. package/dist/commands/liberica/teams/plans/items/add.js.map +1 -0
  36. package/dist/commands/liberica/teams/plans/items/edit.d.ts +3 -0
  37. package/dist/commands/liberica/teams/plans/items/edit.d.ts.map +1 -0
  38. package/dist/commands/liberica/teams/plans/items/edit.js +81 -0
  39. package/dist/commands/liberica/teams/plans/items/edit.js.map +1 -0
  40. package/dist/commands/liberica/teams/plans/items/import.d.ts +3 -0
  41. package/dist/commands/liberica/teams/plans/items/import.d.ts.map +1 -0
  42. package/dist/commands/liberica/teams/plans/items/import.js +91 -0
  43. package/dist/commands/liberica/teams/plans/items/import.js.map +1 -0
  44. package/dist/commands/liberica/teams/plans/items/index.d.ts +3 -0
  45. package/dist/commands/liberica/teams/plans/items/index.d.ts.map +1 -0
  46. package/dist/commands/liberica/teams/plans/items/index.js +19 -0
  47. package/dist/commands/liberica/teams/plans/items/index.js.map +1 -0
  48. package/dist/commands/liberica/teams/plans/items/list.d.ts +3 -0
  49. package/dist/commands/liberica/teams/plans/items/list.d.ts.map +1 -0
  50. package/dist/commands/liberica/teams/plans/items/list.js +44 -0
  51. package/dist/commands/liberica/teams/plans/items/list.js.map +1 -0
  52. package/dist/commands/liberica/teams/plans/items/moveWeek.d.ts +3 -0
  53. package/dist/commands/liberica/teams/plans/items/moveWeek.d.ts.map +1 -0
  54. package/dist/commands/liberica/teams/plans/items/moveWeek.js +36 -0
  55. package/dist/commands/liberica/teams/plans/items/moveWeek.js.map +1 -0
  56. package/dist/commands/liberica/teams/plans/items/remove.d.ts +3 -0
  57. package/dist/commands/liberica/teams/plans/items/remove.d.ts.map +1 -0
  58. package/dist/commands/liberica/teams/plans/items/remove.js +46 -0
  59. package/dist/commands/liberica/teams/plans/items/remove.js.map +1 -0
  60. package/dist/commands/liberica/teams/plans/list.d.ts +3 -0
  61. package/dist/commands/liberica/teams/plans/list.d.ts.map +1 -0
  62. package/dist/commands/liberica/teams/plans/list.js +41 -0
  63. package/dist/commands/liberica/teams/plans/list.js.map +1 -0
  64. package/dist/commands/liberica/teams/plans/rollup.d.ts +3 -0
  65. package/dist/commands/liberica/teams/plans/rollup.d.ts.map +1 -0
  66. package/dist/commands/liberica/teams/plans/rollup.js +30 -0
  67. package/dist/commands/liberica/teams/plans/rollup.js.map +1 -0
  68. package/dist/commands/liberica/teams/plans/scenarios/baseline.d.ts +3 -0
  69. package/dist/commands/liberica/teams/plans/scenarios/baseline.d.ts.map +1 -0
  70. package/dist/commands/liberica/teams/plans/scenarios/baseline.js +42 -0
  71. package/dist/commands/liberica/teams/plans/scenarios/baseline.js.map +1 -0
  72. package/dist/commands/liberica/teams/plans/scenarios/compare.d.ts +3 -0
  73. package/dist/commands/liberica/teams/plans/scenarios/compare.d.ts.map +1 -0
  74. package/dist/commands/liberica/teams/plans/scenarios/compare.js +39 -0
  75. package/dist/commands/liberica/teams/plans/scenarios/compare.js.map +1 -0
  76. package/dist/commands/liberica/teams/plans/scenarios/index.d.ts +3 -0
  77. package/dist/commands/liberica/teams/plans/scenarios/index.d.ts.map +1 -0
  78. package/dist/commands/liberica/teams/plans/scenarios/index.js +15 -0
  79. package/dist/commands/liberica/teams/plans/scenarios/index.js.map +1 -0
  80. package/dist/commands/liberica/teams/plans/scenarios/list.d.ts +3 -0
  81. package/dist/commands/liberica/teams/plans/scenarios/list.d.ts.map +1 -0
  82. package/dist/commands/liberica/teams/plans/scenarios/list.js +27 -0
  83. package/dist/commands/liberica/teams/plans/scenarios/list.js.map +1 -0
  84. package/dist/commands/liberica/teams/plans/scenarios/save.d.ts +3 -0
  85. package/dist/commands/liberica/teams/plans/scenarios/save.d.ts.map +1 -0
  86. package/dist/commands/liberica/teams/plans/scenarios/save.js +57 -0
  87. package/dist/commands/liberica/teams/plans/scenarios/save.js.map +1 -0
  88. package/dist/commands/liberica/teams/plans/update.d.ts +3 -0
  89. package/dist/commands/liberica/teams/plans/update.d.ts.map +1 -0
  90. package/dist/commands/liberica/teams/plans/update.js +89 -0
  91. package/dist/commands/liberica/teams/plans/update.js.map +1 -0
  92. package/dist/commands/liberica/teams/plans/week/index.d.ts +3 -0
  93. package/dist/commands/liberica/teams/plans/week/index.d.ts.map +1 -0
  94. package/dist/commands/liberica/teams/plans/week/index.js +9 -0
  95. package/dist/commands/liberica/teams/plans/week/index.js.map +1 -0
  96. package/dist/commands/liberica/teams/plans/week/list.d.ts +3 -0
  97. package/dist/commands/liberica/teams/plans/week/list.d.ts.map +1 -0
  98. package/dist/commands/liberica/teams/plans/week/list.js +27 -0
  99. package/dist/commands/liberica/teams/plans/week/list.js.map +1 -0
  100. package/dist/core/api/client.d.ts +23 -0
  101. package/dist/core/api/client.d.ts.map +1 -1
  102. package/dist/core/api/client.js +491 -0
  103. package/dist/core/api/client.js.map +1 -1
  104. package/dist/types/team-plan.d.ts +265 -0
  105. package/dist/types/team-plan.d.ts.map +1 -0
  106. package/dist/types/team-plan.js +2 -0
  107. package/dist/types/team-plan.js.map +1 -0
  108. package/package.json +1 -1
  109. package/skills/barista-cli/data/commands.json +117 -1
  110. package/skills/barista-cli/data/commands.yaml +75 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/teams/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,wBAAgB,kBAAkB,IAAI,OAAO,CAqB5C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/teams/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,wBAAgB,kBAAkB,IAAI,OAAO,CAsB5C"}
@@ -14,6 +14,7 @@ import { createTestSuiteRunSummariesCommand } from './test-suite-run-summaries/i
14
14
  import { createFpConfigCommand } from './fp-config/index.js';
15
15
  import { createBotStatsCommand } from './bot-stats/index.js';
16
16
  import { createTeamEmployeeGroupsCommand } from './employee-groups/index.js';
17
+ import { createTeamPlansCommand } from './plans/index.js';
17
18
  export function createTeamsCommand() {
18
19
  const teamsCommand = new Command('teams');
19
20
  teamsCommand.description('Manage teams and issues');
@@ -32,6 +33,7 @@ export function createTeamsCommand() {
32
33
  teamsCommand.addCommand(createFpConfigCommand());
33
34
  teamsCommand.addCommand(createBotStatsCommand());
34
35
  teamsCommand.addCommand(createTeamEmployeeGroupsCommand());
36
+ teamsCommand.addCommand(createTeamPlansCommand());
35
37
  return teamsCommand;
36
38
  }
37
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/liberica/teams/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,kCAAkC,EAAE,MAAM,qCAAqC,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAE7E,MAAM,UAAU,kBAAkB;IAChC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,YAAY,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAEpD,YAAY,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACnD,YAAY,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACrD,YAAY,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAClD,YAAY,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACrD,YAAY,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC;IACzD,YAAY,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACrD,YAAY,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACnD,YAAY,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAClD,YAAY,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAClD,YAAY,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACjD,YAAY,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACvD,YAAY,CAAC,UAAU,CAAC,kCAAkC,EAAE,CAAC,CAAC;IAC9D,YAAY,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACjD,YAAY,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACjD,YAAY,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAC;IAE3D,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/liberica/teams/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,kCAAkC,EAAE,MAAM,qCAAqC,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,UAAU,kBAAkB;IAChC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,YAAY,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAEpD,YAAY,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACnD,YAAY,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACrD,YAAY,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAClD,YAAY,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACrD,YAAY,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC;IACzD,YAAY,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACrD,YAAY,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACnD,YAAY,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAClD,YAAY,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAClD,YAAY,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACjD,YAAY,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACvD,YAAY,CAAC,UAAU,CAAC,kCAAkC,EAAE,CAAC,CAAC;IAC9D,YAAY,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACjD,YAAY,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACjD,YAAY,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAC;IAC3D,YAAY,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAElD,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createTeamPlanCreateCommand(): Command;
3
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,2BAA2B,IAAI,OAAO,CAkErD"}
@@ -0,0 +1,61 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { apiClient } from '../../../../core/api/client.js';
4
+ import { handleResponse, optionalString, parseIntegerOption, parseNumberOption, printDryRun, requireOption, resolveContext, } from './helpers.js';
5
+ export function createTeamPlanCreateCommand() {
6
+ const command = new Command('create');
7
+ command.description('Create a team plan');
8
+ command
9
+ .option('--name <string>', 'Plan name')
10
+ .option('--custom-project-code <string>', 'Custom project code')
11
+ .option('--scenario-code <string>', 'Scenario code')
12
+ .option('--fp-per-day <number>', 'Function points per person-day')
13
+ .option('--team-size <number>', 'Team size')
14
+ .option('--utilization <number>', 'Utilization ratio (0-1, e.g. 0.8)')
15
+ .option('--buffer <number>', 'Buffer percentage (e.g. 20)')
16
+ .option('--start-date <string>', 'Start date (yyyy-MM-dd)')
17
+ .option('--scheduled-finish-date <string>', 'Scheduled finish date (yyyy-MM-dd)')
18
+ .option('--baseline', 'Mark as baseline plan')
19
+ .option('--change-note <string>', 'Change note')
20
+ .option('--dry-run', 'Print the request body without calling the API')
21
+ .option('--confirm', 'Confirm the write operation')
22
+ .option('--json', 'Output as JSON');
23
+ command.action(async (options) => {
24
+ const { environment, tenant } = resolveContext(options);
25
+ const json = options.json === true;
26
+ const data = {
27
+ planName: requireOption(options.name, '--name', json),
28
+ customProjectCode: requireOption(options.customProjectCode, '--custom-project-code', json),
29
+ fpPerDay: parseNumberOption(options.fpPerDay, '--fp-per-day', json),
30
+ teamSize: parseIntegerOption(options.teamSize, '--team-size', json),
31
+ utilization: parseNumberOption(options.utilization, '--utilization', json),
32
+ bufferPercent: parseNumberOption(options.buffer, '--buffer', json),
33
+ startDate: requireOption(options.startDate, '--start-date', json),
34
+ scheduledFinishDate: requireOption(options.scheduledFinishDate, '--scheduled-finish-date', json),
35
+ };
36
+ const scenarioCode = optionalString(options.scenarioCode);
37
+ if (scenarioCode)
38
+ data.scenarioCode = scenarioCode;
39
+ if (options.baseline)
40
+ data.baselineFlag = true;
41
+ const changeNote = optionalString(options.changeNote);
42
+ if (changeNote)
43
+ data.changeNote = changeNote;
44
+ if (options.dryRun) {
45
+ printDryRun(data, json);
46
+ return;
47
+ }
48
+ const response = await apiClient.createTeamPlan(environment, tenant, data);
49
+ handleResponse(response, json, (created) => {
50
+ const plan = created;
51
+ console.log(chalk.green('\n✓ Team plan created successfully\n'));
52
+ if (plan?.planId)
53
+ console.log(` ${chalk.gray('Plan ID:')} ${plan.planId}`);
54
+ if (plan?.planName)
55
+ console.log(` ${chalk.gray('Name:')} ${plan.planName}`);
56
+ console.log();
57
+ });
58
+ });
59
+ return command;
60
+ }
61
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createTeamPlanDeleteCommand(): Command;
3
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,2BAA2B,IAAI,OAAO,CA0CrD"}
@@ -0,0 +1,43 @@
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 createTeamPlanDeleteCommand() {
6
+ const command = new Command('delete');
7
+ command.description('Delete a team plan');
8
+ command.argument('<plan-id>', 'Plan ID');
9
+ command
10
+ .option('--optimistic-lock <number>', 'Optimistic lock version')
11
+ .option('--confirm', 'Confirm deletion')
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 id = requireOption(planId, '<plan-id>', json);
19
+ const data = { planId: id };
20
+ const optimisticLock = optionalInteger(options.optimisticLock);
21
+ if (optimisticLock !== undefined)
22
+ data.optimisticLock = optimisticLock;
23
+ if (options.dryRun) {
24
+ printDryRun(data, json);
25
+ return;
26
+ }
27
+ if (!options.confirm && !options.force) {
28
+ if (json) {
29
+ printJson({ success: true, dryRun: true, needsConfirm: true, data });
30
+ }
31
+ else {
32
+ console.log(chalk.yellow(`\n⚠️ Add --confirm to delete team plan ${id}\n`));
33
+ }
34
+ return;
35
+ }
36
+ const response = await apiClient.deleteTeamPlan(environment, tenant, data);
37
+ handleResponse(response, json, () => {
38
+ console.log(chalk.green(`\n✓ Team plan ${id} deleted\n`));
39
+ });
40
+ });
41
+ return command;
42
+ }
43
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/delete.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,eAAe,EACf,WAAW,EACX,SAAS,EACT,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,oBAAoB,CAAC,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEzC,OAAO;SACJ,MAAM,CAAC,4BAA4B,EAAE,yBAAyB,CAAC;SAC/D,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC;SACvC,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,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;QACpD,MAAM,IAAI,GAA0B,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACnD,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,EAAE,IAAI,CAAC,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAE3E,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createTeamPlanExportCommand(): Command;
3
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,2BAA2B,IAAI,OAAO,CAuDrD"}
@@ -0,0 +1,45 @@
1
+ import { Command } from 'commander';
2
+ import { writeFileSync } from 'fs';
3
+ import { apiClient } from '../../../../core/api/client.js';
4
+ import { fail, printJson, requireOption, resolveContext, } from './helpers.js';
5
+ export function createTeamPlanExportCommand() {
6
+ const command = new Command('export');
7
+ command.description('Export a plan as JSON, Markdown or HTML');
8
+ command.argument('<plan-id>', 'Plan ID');
9
+ command
10
+ .option('-f, --format <string>', 'Export format: json|md|html', 'json')
11
+ .option('-o, --output <path>', 'Write the export to a file')
12
+ .option('--json', 'Output API result as JSON');
13
+ command.action(async (planId, options) => {
14
+ const { environment, tenant } = resolveContext(options);
15
+ const json = options.json === true;
16
+ const id = requireOption(planId, '<plan-id>', json);
17
+ const format = String(options.format || 'json').toLowerCase();
18
+ if (!['json', 'md', 'html'].includes(format)) {
19
+ fail('INVALID_FORMAT', `Unsupported export format: ${format}`, json);
20
+ }
21
+ const response = await apiClient.exportTeamPlan(environment, tenant, id, format);
22
+ if (!response.success) {
23
+ fail(response.error?.code || 'EXPORT_ERROR', response.error?.message || 'Failed to export plan', json);
24
+ }
25
+ const data = response.data;
26
+ const content = typeof data === 'string'
27
+ ? data
28
+ : format === 'json'
29
+ ? JSON.stringify(data, null, 2)
30
+ : String(data ?? '');
31
+ if (options.output) {
32
+ writeFileSync(String(options.output), content, 'utf8');
33
+ if (json) {
34
+ printJson({ success: true, data: { path: options.output, format } });
35
+ }
36
+ else {
37
+ console.log(`Wrote ${format} export to ${String(options.output)}`);
38
+ }
39
+ return;
40
+ }
41
+ console.log(content);
42
+ });
43
+ return command;
44
+ }
45
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAK3D,OAAO,EACL,IAAI,EACJ,SAAS,EACT,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,yCAAyC,CAAC,CAAC;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEzC,OAAO;SACJ,MAAM,CAAC,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,CAAC;SACtE,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;SAC3D,MAAM,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;IACjD,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,EAAE,GAAG,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9D,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,gBAAgB,EAAE,8BAA8B,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,cAAc,CAC7C,WAAW,EACX,MAAM,EACN,EAAE,EACF,MAA8B,CAC/B,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CACF,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,cAAc,EACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,uBAAuB,EAClD,IAAI,CACL,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAgC,CAAC;QACvD,MAAM,OAAO,GACX,OAAO,IAAI,KAAK,QAAQ;YACtB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,MAAM,KAAK,MAAM;gBACjB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAE3B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,IAAI,EAAE,CAAC;gBACT,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,cAAc,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createTeamPlanGenerateCommand(): Command;
3
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAc5C,wBAAgB,6BAA6B,IAAI,OAAO,CA4DvD"}
@@ -0,0 +1,55 @@
1
+ import { Command, Option } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { apiClient } from '../../../../core/api/client.js';
4
+ import { handleResponse, optionalString, parseIntegerOption, parseNumberOption, printDryRun, requireOption, resolveContext, } from './helpers.js';
5
+ export function createTeamPlanGenerateCommand() {
6
+ const command = new Command('generate');
7
+ command.description('Generate a plan (optionally importing issues)');
8
+ command
9
+ .option('--name <string>', 'Plan name (defaults to custom project code)')
10
+ .option('--custom-project-code <string>', 'Custom project code')
11
+ .option('--scenario-code <string>', 'Scenario code')
12
+ .option('--from-issues', 'Import items from issues (default)', true)
13
+ .addOption(new Option('--no-from-issues', 'Skip issue import'))
14
+ .option('--fp-per-day <number>', 'Function points per person-day')
15
+ .option('--team-size <number>', 'Team size')
16
+ .option('--utilization <number>', 'Utilization ratio (0-1)')
17
+ .option('--buffer <number>', 'Buffer percentage')
18
+ .option('--start-date <string>', 'Start date (yyyy-MM-dd)')
19
+ .option('--scheduled-finish-date <string>', 'Scheduled finish date (yyyy-MM-dd)')
20
+ .option('--dry-run', 'Print the request body without calling the API')
21
+ .option('--confirm', 'Confirm the write operation')
22
+ .option('--json', 'Output as JSON');
23
+ command.action(async (options) => {
24
+ const { environment, tenant } = resolveContext(options);
25
+ const json = options.json === true;
26
+ const customProjectCode = requireOption(options.customProjectCode, '--custom-project-code', json);
27
+ const startDate = requireOption(options.startDate, '--start-date', json);
28
+ const data = {
29
+ planName: optionalString(options.name) || customProjectCode,
30
+ customProjectCode,
31
+ fpPerDay: parseNumberOption(options.fpPerDay, '--fp-per-day', json),
32
+ teamSize: parseIntegerOption(options.teamSize, '--team-size', json),
33
+ utilization: parseNumberOption(options.utilization, '--utilization', json),
34
+ bufferPercent: parseNumberOption(options.buffer, '--buffer', json),
35
+ startDate,
36
+ scheduledFinishDate: optionalString(options.scheduledFinishDate) || startDate,
37
+ fromIssues: options.fromIssues !== false,
38
+ };
39
+ const scenarioCode = optionalString(options.scenarioCode);
40
+ if (scenarioCode)
41
+ data.scenarioCode = scenarioCode;
42
+ if (options.dryRun) {
43
+ printDryRun(data, json);
44
+ return;
45
+ }
46
+ const response = await apiClient.generateTeamPlan(environment, tenant, data);
47
+ handleResponse(response, json, (result) => {
48
+ console.log(chalk.green('\n✓ Team plan generated\n'));
49
+ console.log(JSON.stringify(result, null, 2));
50
+ console.log();
51
+ });
52
+ });
53
+ return command;
54
+ }
55
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EACL,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,6BAA6B;IAC3C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,OAAO,CAAC,WAAW,CAAC,+CAA+C,CAAC,CAAC;IAErE,OAAO;SACJ,MAAM,CAAC,iBAAiB,EAAE,6CAA6C,CAAC;SACxE,MAAM,CAAC,gCAAgC,EAAE,qBAAqB,CAAC;SAC/D,MAAM,CAAC,0BAA0B,EAAE,eAAe,CAAC;SACnD,MAAM,CAAC,eAAe,EAAE,oCAAoC,EAAE,IAAI,CAAC;SACnE,SAAS,CAAC,IAAI,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;SAC9D,MAAM,CAAC,uBAAuB,EAAE,gCAAgC,CAAC;SACjE,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAAC;SAC3C,MAAM,CAAC,wBAAwB,EAAE,yBAAyB,CAAC;SAC3D,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;SAChD,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;SAC1D,MAAM,CAAC,kCAAkC,EAAE,oCAAoC,CAAC;SAChF,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,OAAO,EAAE,EAAE;QAC/B,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;QACnC,MAAM,iBAAiB,GAAG,aAAa,CACrC,OAAO,CAAC,iBAAiB,EACzB,uBAAuB,EACvB,IAAI,CACL,CAAC;QACF,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QAEzE,MAAM,IAAI,GAA4B;YACpC,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,iBAAiB;YAC3D,iBAAiB;YACjB,QAAQ,EAAE,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC;YACnE,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC;YACnE,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,EAAE,IAAI,CAAC;YAC1E,aAAa,EAAE,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC;YAClE,SAAS;YACT,mBAAmB,EAAE,cAAc,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,SAAS;YAC7E,UAAU,EAAE,OAAO,CAAC,UAAU,KAAK,KAAK;SACzC,CAAC;QAEF,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC1D,IAAI,YAAY;YAAE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEnD,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,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAE7E,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createTeamPlanGetCommand(): Command;
3
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,wBAAwB,IAAI,OAAO,CAqBlD"}
@@ -0,0 +1,23 @@
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 createTeamPlanGetCommand() {
6
+ const command = new Command('get');
7
+ command.description('Get team plan details by ID');
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.getTeamPlan(environment, tenant, id);
15
+ handleResponse(response, json, (data) => {
16
+ console.log(chalk.bold('\n📋 Team Plan\n'));
17
+ console.log(JSON.stringify(data, null, 2));
18
+ console.log();
19
+ });
20
+ });
21
+ return command;
22
+ }
23
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/get.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;AAC3D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE7E,MAAM,UAAU,wBAAwB;IACtC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC;IACnD,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,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAEtE,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Environment } from '../../../../types/index.js';
2
+ import { TeamPlanApiResponse } from '../../../../types/team-plan.js';
3
+ export declare function resolveContext(options?: Record<string, unknown>): {
4
+ environment: Environment;
5
+ tenant: string;
6
+ };
7
+ export declare function printJson(value: unknown): void;
8
+ export declare function fail(code: string, message: string, json: boolean): never;
9
+ export declare function requireOption(value: unknown, optionName: string, json: boolean): string;
10
+ export declare function optionalString(value: unknown): string | undefined;
11
+ export declare function parseNumberOption(value: unknown, optionName: string, json: boolean): number;
12
+ export declare function parseIntegerOption(value: unknown, optionName: string, json: boolean): number;
13
+ export declare function optionalNumber(value: unknown): number | undefined;
14
+ export declare function optionalInteger(value: unknown): number | undefined;
15
+ export declare function printDryRun(data: unknown, json: boolean): void;
16
+ export declare function handleResponse(response: TeamPlanApiResponse, json: boolean, render: (data: unknown) => void): void;
17
+ export declare function printRows(data: unknown): void;
18
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,wBAAgB,cAAc,CAAC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG;IACrE,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB,CAMA;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAE9C;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,CAQxE;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,GACZ,MAAM,CAKR;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAKjE;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,GACZ,MAAM,CAOR;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,GACZ,MAAM,CAOR;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMjE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMlE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAQ9D;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAC9B,IAAI,CAaN;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAiB7C"}
@@ -0,0 +1,96 @@
1
+ import chalk from 'chalk';
2
+ import { configManager } from '../../../../core/config/manager.js';
3
+ export function resolveContext(options = {}) {
4
+ const context = configManager.getCurrentContext();
5
+ return {
6
+ environment: options.env || context.environment,
7
+ tenant: options.tenant || context.tenant,
8
+ };
9
+ }
10
+ export function printJson(value) {
11
+ console.log(JSON.stringify(value, null, 2));
12
+ }
13
+ export function fail(code, message, json) {
14
+ if (json) {
15
+ console.error(JSON.stringify({ success: false, error: { code, message } }, null, 2));
16
+ }
17
+ else {
18
+ console.error(chalk.red(`\n✗ ${message}`));
19
+ console.error(chalk.gray(` Error code: ${code}\n`));
20
+ }
21
+ process.exit(1);
22
+ }
23
+ export function requireOption(value, optionName, json) {
24
+ if (value === undefined || value === null || String(value).trim() === '') {
25
+ fail('MISSING_OPTION', `Option ${optionName} is required`, json);
26
+ }
27
+ return String(value);
28
+ }
29
+ export function optionalString(value) {
30
+ if (value === undefined || value === null || String(value).trim() === '') {
31
+ return undefined;
32
+ }
33
+ return String(value);
34
+ }
35
+ export function parseNumberOption(value, optionName, json) {
36
+ const raw = requireOption(value, optionName, json);
37
+ const parsed = Number(raw);
38
+ if (!Number.isFinite(parsed)) {
39
+ fail('INVALID_NUMBER', `Option ${optionName} must be a number, got '${raw}'`, json);
40
+ }
41
+ return parsed;
42
+ }
43
+ export function parseIntegerOption(value, optionName, json) {
44
+ const raw = requireOption(value, optionName, json);
45
+ const parsed = Number.parseInt(raw, 10);
46
+ if (!Number.isInteger(parsed)) {
47
+ fail('INVALID_INTEGER', `Option ${optionName} must be an integer, got '${raw}'`, json);
48
+ }
49
+ return parsed;
50
+ }
51
+ export function optionalNumber(value) {
52
+ if (value === undefined || value === null || String(value).trim() === '') {
53
+ return undefined;
54
+ }
55
+ const parsed = Number(value);
56
+ return Number.isFinite(parsed) ? parsed : undefined;
57
+ }
58
+ export function optionalInteger(value) {
59
+ if (value === undefined || value === null || String(value).trim() === '') {
60
+ return undefined;
61
+ }
62
+ const parsed = Number.parseInt(String(value), 10);
63
+ return Number.isInteger(parsed) ? parsed : undefined;
64
+ }
65
+ export function printDryRun(data, json) {
66
+ if (json) {
67
+ printJson({ success: true, dryRun: true, data });
68
+ return;
69
+ }
70
+ console.log(chalk.bold('\n🔍 Dry-Run Mode: No API call will be made\n'));
71
+ console.log(JSON.stringify(data, null, 2));
72
+ console.log();
73
+ }
74
+ export function handleResponse(response, json, render) {
75
+ if (!response.success) {
76
+ fail(response.error?.code || 'API_ERROR', response.error?.message || response.message || 'Unknown error', json);
77
+ }
78
+ if (json) {
79
+ printJson(response);
80
+ return;
81
+ }
82
+ render(response.data);
83
+ }
84
+ export function printRows(data) {
85
+ const page = data;
86
+ const rows = page?.rows || [];
87
+ if (rows.length === 0) {
88
+ console.log(chalk.gray('\n No records found\n'));
89
+ return;
90
+ }
91
+ for (const row of rows) {
92
+ console.log(` ${JSON.stringify(row)}`);
93
+ }
94
+ console.log(chalk.gray(`\n Total: ${page?.totalRows ?? rows.length} | Page: ${page?.pageNo ?? 1} | Size: ${page?.pageSize ?? rows.length}\n`));
95
+ }
96
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createTeamPlansCommand(): Command;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,sBAAsB,IAAI,OAAO,CAiBhD"}
@@ -0,0 +1,29 @@
1
+ import { Command } from 'commander';
2
+ import { createTeamPlanListCommand } from './list.js';
3
+ import { createTeamPlanGetCommand } from './get.js';
4
+ import { createTeamPlanCreateCommand } from './create.js';
5
+ import { createTeamPlanUpdateCommand } from './update.js';
6
+ import { createTeamPlanDeleteCommand } from './delete.js';
7
+ import { createTeamPlanItemsCommand } from './items/index.js';
8
+ import { createTeamPlanGenerateCommand } from './generate.js';
9
+ import { createTeamPlanRollupCommand } from './rollup.js';
10
+ import { createTeamPlanExportCommand } from './export.js';
11
+ import { createTeamPlanScenariosCommand } from './scenarios/index.js';
12
+ import { createTeamPlanWeekCommand } from './week/index.js';
13
+ export function createTeamPlansCommand() {
14
+ const plans = new Command('plans');
15
+ plans.description('Manage team plans (WBS, capacity, scenarios, weekly sprints)');
16
+ plans.addCommand(createTeamPlanListCommand());
17
+ plans.addCommand(createTeamPlanGetCommand());
18
+ plans.addCommand(createTeamPlanCreateCommand());
19
+ plans.addCommand(createTeamPlanUpdateCommand());
20
+ plans.addCommand(createTeamPlanDeleteCommand());
21
+ plans.addCommand(createTeamPlanItemsCommand());
22
+ plans.addCommand(createTeamPlanGenerateCommand());
23
+ plans.addCommand(createTeamPlanRollupCommand());
24
+ plans.addCommand(createTeamPlanExportCommand());
25
+ plans.addCommand(createTeamPlanScenariosCommand());
26
+ plans.addCommand(createTeamPlanWeekCommand());
27
+ return plans;
28
+ }
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,MAAM,UAAU,sBAAsB;IACpC,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,WAAW,CAAC,8DAA8D,CAAC,CAAC;IAElF,KAAK,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IAC9C,KAAK,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC7C,KAAK,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAC/C,KAAK,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAClD,KAAK,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,UAAU,CAAC,8BAA8B,EAAE,CAAC,CAAC;IACnD,KAAK,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IAE9C,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createTeamPlanItemAddCommand(): Command;
3
+ //# sourceMappingURL=add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,4BAA4B,IAAI,OAAO,CA0EtD"}
@@ -0,0 +1,73 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { apiClient } from '../../../../../core/api/client.js';
4
+ import { handleResponse, optionalNumber, optionalString, parseNumberOption, printDryRun, requireOption, resolveContext, } from '../helpers.js';
5
+ export function createTeamPlanItemAddCommand() {
6
+ const command = new Command('add');
7
+ command.description('Add an item to a plan');
8
+ command.argument('<plan-id>', 'Plan ID');
9
+ command
10
+ .option('--phase-code <string>', 'Phase code')
11
+ .option('--batch-code <string>', 'Batch code')
12
+ .option('--week <string>', 'Week code')
13
+ .option('--issue-id <string>', 'Source issue ID')
14
+ .option('--issue-code <string>', 'Source issue code')
15
+ .option('--title <string>', 'Item title')
16
+ .option('--module-code <string>', 'Module code')
17
+ .option('--item-type <string>', 'Item type')
18
+ .option('--fp <number>', 'Function points')
19
+ .option('--person-days <number>', 'Person-days')
20
+ .option('--priority <string>', 'Priority')
21
+ .option('--owner-id <string>', 'Owner ID')
22
+ .option('--owner-name <string>', 'Owner name')
23
+ .option('--acceptor-id <string>', 'Acceptor ID')
24
+ .option('--acceptor-name <string>', 'Acceptor name')
25
+ .option('--plan-start-date <string>', 'Plan start date (yyyy-MM-dd)')
26
+ .option('--plan-end-date <string>', 'Plan end date (yyyy-MM-dd)')
27
+ .option('--dry-run', 'Print the request body without calling the API')
28
+ .option('--confirm', 'Confirm the write operation')
29
+ .option('--json', 'Output as JSON');
30
+ command.action(async (planId, options) => {
31
+ const { environment, tenant } = resolveContext(options);
32
+ const json = options.json === true;
33
+ const data = {
34
+ planId: requireOption(planId, '<plan-id>', json),
35
+ phaseCode: requireOption(options.phaseCode, '--phase-code', json),
36
+ itemTitle: requireOption(options.title, '--title', json),
37
+ fp: parseNumberOption(options.fp, '--fp', json),
38
+ };
39
+ const optionalFields = [
40
+ ['batchCode', optionalString(options.batchCode)],
41
+ ['weekCode', optionalString(options.week)],
42
+ ['issueId', optionalString(options.issueId)],
43
+ ['issueCode', optionalString(options.issueCode)],
44
+ ['moduleCode', optionalString(options.moduleCode)],
45
+ ['itemType', optionalString(options.itemType)],
46
+ ['priority', optionalString(options.priority)],
47
+ ['ownerId', optionalString(options.ownerId)],
48
+ ['ownerName', optionalString(options.ownerName)],
49
+ ['acceptorId', optionalString(options.acceptorId)],
50
+ ['acceptorName', optionalString(options.acceptorName)],
51
+ ['planStartDate', optionalString(options.planStartDate)],
52
+ ['planEndDate', optionalString(options.planEndDate)],
53
+ ];
54
+ for (const [key, value] of optionalFields) {
55
+ if (value !== undefined) {
56
+ data[key] = value;
57
+ }
58
+ }
59
+ const personDays = optionalNumber(options.personDays);
60
+ if (personDays !== undefined)
61
+ data.personDays = personDays;
62
+ if (options.dryRun) {
63
+ printDryRun(data, json);
64
+ return;
65
+ }
66
+ const response = await apiClient.addTeamPlanItem(environment, tenant, data);
67
+ handleResponse(response, json, () => {
68
+ console.log(chalk.green('\n✓ Team plan item added\n'));
69
+ });
70
+ });
71
+ return command;
72
+ }
73
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/add.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createTeamPlanItemEditCommand(): Command;
3
+ //# sourceMappingURL=edit.d.ts.map