@newpeak/barista-cli 0.2.301 → 0.2.306
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/runner/images/copy.d.ts +3 -0
- package/dist/commands/liberica/runner/images/copy.d.ts.map +1 -0
- package/dist/commands/liberica/runner/images/copy.js +84 -0
- package/dist/commands/liberica/runner/images/copy.js.map +1 -0
- package/dist/commands/liberica/runner/images/index.d.ts.map +1 -1
- package/dist/commands/liberica/runner/images/index.js +4 -0
- package/dist/commands/liberica/runner/images/index.js.map +1 -1
- package/dist/commands/liberica/runner/images/options.d.ts +3 -0
- package/dist/commands/liberica/runner/images/options.d.ts.map +1 -0
- package/dist/commands/liberica/runner/images/options.js +64 -0
- package/dist/commands/liberica/runner/images/options.js.map +1 -0
- package/dist/commands/liberica/teams/plans/helpers.d.ts +1 -0
- package/dist/commands/liberica/teams/plans/helpers.d.ts.map +1 -1
- package/dist/commands/liberica/teams/plans/helpers.js +11 -0
- package/dist/commands/liberica/teams/plans/helpers.js.map +1 -1
- package/dist/commands/liberica/teams/plans/index.d.ts.map +1 -1
- package/dist/commands/liberica/teams/plans/index.js +2 -0
- package/dist/commands/liberica/teams/plans/index.js.map +1 -1
- package/dist/commands/liberica/teams/plans/items/edit.d.ts.map +1 -1
- package/dist/commands/liberica/teams/plans/items/edit.js +12 -7
- package/dist/commands/liberica/teams/plans/items/edit.js.map +1 -1
- package/dist/commands/liberica/teams/plans/items/import.d.ts.map +1 -1
- package/dist/commands/liberica/teams/plans/items/import.js +10 -0
- package/dist/commands/liberica/teams/plans/items/import.js.map +1 -1
- package/dist/commands/liberica/teams/plans/items/merge.d.ts +22 -0
- package/dist/commands/liberica/teams/plans/items/merge.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/items/merge.js +141 -0
- package/dist/commands/liberica/teams/plans/items/merge.js.map +1 -0
- package/dist/commands/liberica/teams/plans/notify/index.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/notify/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/notify/index.js +9 -0
- package/dist/commands/liberica/teams/plans/notify/index.js.map +1 -0
- package/dist/commands/liberica/teams/plans/notify/preview.d.ts +3 -0
- package/dist/commands/liberica/teams/plans/notify/preview.d.ts.map +1 -0
- package/dist/commands/liberica/teams/plans/notify/preview.js +65 -0
- package/dist/commands/liberica/teams/plans/notify/preview.js.map +1 -0
- package/dist/commands/liberica/teams/plans/update.d.ts.map +1 -1
- package/dist/commands/liberica/teams/plans/update.js +34 -3
- package/dist/commands/liberica/teams/plans/update.js.map +1 -1
- package/dist/commands/liberica/teams/projects/update.d.ts.map +1 -1
- package/dist/commands/liberica/teams/projects/update.js +17 -1
- package/dist/commands/liberica/teams/projects/update.js.map +1 -1
- package/dist/core/api/client.d.ts +4 -1
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +55 -0
- package/dist/core/api/client.js.map +1 -1
- package/dist/types/runner.d.ts +4 -0
- package/dist/types/runner.d.ts.map +1 -1
- package/dist/types/team-plan.d.ts +38 -0
- package/dist/types/team-plan.d.ts.map +1 -1
- package/dist/types/team-project.d.ts +10 -0
- package/dist/types/team-project.d.ts.map +1 -1
- package/package.json +1 -1
- package/skills/barista-cli/data/commands.json +22 -1
- package/skills/barista-cli/data/commands.yaml +15 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/images/copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,4BAA4B,IAAI,OAAO,CAuEtD"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
4
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
5
|
+
const NAME_DUPLICATE_HINT = '可先使用 images edit 改名或 images delete 删除旧行';
|
|
6
|
+
function buildErrorMessage(code, message) {
|
|
7
|
+
if (code === 'A985005' && !/edit|delete/i.test(message)) {
|
|
8
|
+
return `${message}(${NAME_DUPLICATE_HINT})`;
|
|
9
|
+
}
|
|
10
|
+
return message;
|
|
11
|
+
}
|
|
12
|
+
export function createRunnerImageCopyCommand() {
|
|
13
|
+
const copyCommand = new Command('copy');
|
|
14
|
+
copyCommand.description('Copy a platform default agent image to the current tenant');
|
|
15
|
+
copyCommand
|
|
16
|
+
.argument('<id>', 'Platform default agent image ID (from "images defaults")')
|
|
17
|
+
.option('--dry-run', 'Preview without making API call')
|
|
18
|
+
.option('--json', 'Output as JSON')
|
|
19
|
+
.action(async (id, options) => {
|
|
20
|
+
const context = configManager.getCurrentContext();
|
|
21
|
+
const environment = options.env || context.environment;
|
|
22
|
+
const tenant = options.tenant || context.tenant;
|
|
23
|
+
const dryRun = options.dryRun === true;
|
|
24
|
+
const jsonOutput = options.json === true;
|
|
25
|
+
if (!id.trim()) {
|
|
26
|
+
if (jsonOutput) {
|
|
27
|
+
console.log(JSON.stringify({ success: false, error: { code: 'MISSING_ID', message: 'Agent image ID is required' } }));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
console.error(chalk.red('\n✗ Error: Agent image ID is required\n'));
|
|
31
|
+
}
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
if (dryRun) {
|
|
35
|
+
if (jsonOutput) {
|
|
36
|
+
console.log(JSON.stringify({ success: true, dryRun: true, data: { agentImageId: id, action: 'copy' } }, null, 2));
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
console.log(chalk.bold('\n🔍 Dry-Run Mode: No changes will be made\n'));
|
|
40
|
+
console.log(` Platform image to be copied: ${id}`);
|
|
41
|
+
console.log();
|
|
42
|
+
}
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (!jsonOutput) {
|
|
46
|
+
console.log(chalk.bold('\n📝 Copying Agent Image\n'));
|
|
47
|
+
}
|
|
48
|
+
const response = await apiClient.copyAgentImage(environment, tenant, id);
|
|
49
|
+
if (!response.success) {
|
|
50
|
+
const rawMessage = response.error?.message || 'Failed to copy agent image';
|
|
51
|
+
const errorCode = response.error?.code || 'COPY_AGENT_IMAGE_ERROR';
|
|
52
|
+
const errorMsg = buildErrorMessage(errorCode, rawMessage);
|
|
53
|
+
if (jsonOutput) {
|
|
54
|
+
console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
console.error(chalk.red(`\n✗ Failed to copy agent image: ${errorMsg}`));
|
|
58
|
+
if (response.error?.code)
|
|
59
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
60
|
+
console.error();
|
|
61
|
+
}
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
const image = response.data;
|
|
65
|
+
if (jsonOutput) {
|
|
66
|
+
console.log(JSON.stringify({ success: true, data: image }, null, 2));
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
console.log(chalk.green('✓ Agent image copied successfully\n'));
|
|
70
|
+
if (image?.agentImageId)
|
|
71
|
+
console.log(` ${chalk.gray('Image ID:')} ${image.agentImageId}`);
|
|
72
|
+
if (image?.imageName)
|
|
73
|
+
console.log(` ${chalk.gray('Name:')} ${image.imageName}`);
|
|
74
|
+
if (image?.imageUrl)
|
|
75
|
+
console.log(` ${chalk.gray('URL:')} ${image.imageUrl}`);
|
|
76
|
+
if (image?.imageTag)
|
|
77
|
+
console.log(` ${chalk.gray('Tag:')} ${image.imageTag}`);
|
|
78
|
+
console.log(` ${chalk.gray('Source:')} ${image?.source || 'TENANT'}`);
|
|
79
|
+
console.log();
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
return copyCommand;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=copy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/images/copy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/images/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/images/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,yBAAyB,IAAI,OAAO,CAanD"}
|
|
@@ -4,6 +4,8 @@ import { createRunnerImageAddCommand } from './add.js';
|
|
|
4
4
|
import { createRunnerImageEditCommand } from './edit.js';
|
|
5
5
|
import { createRunnerImageDeleteCommand } from './delete.js';
|
|
6
6
|
import { createRunnerImagesDefaultsCommand } from './defaults.js';
|
|
7
|
+
import { createRunnerImagesOptionsCommand } from './options.js';
|
|
8
|
+
import { createRunnerImageCopyCommand } from './copy.js';
|
|
7
9
|
export function createRunnerImagesCommand() {
|
|
8
10
|
const imagesCommand = new Command('images');
|
|
9
11
|
imagesCommand.description('Manage agent images');
|
|
@@ -12,6 +14,8 @@ export function createRunnerImagesCommand() {
|
|
|
12
14
|
imagesCommand.addCommand(createRunnerImageEditCommand());
|
|
13
15
|
imagesCommand.addCommand(createRunnerImageDeleteCommand());
|
|
14
16
|
imagesCommand.addCommand(createRunnerImagesDefaultsCommand());
|
|
17
|
+
imagesCommand.addCommand(createRunnerImagesOptionsCommand());
|
|
18
|
+
imagesCommand.addCommand(createRunnerImageCopyCommand());
|
|
15
19
|
return imagesCommand;
|
|
16
20
|
}
|
|
17
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/images/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,iCAAiC,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/images/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,iCAAiC,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,UAAU,yBAAyB;IACvC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,aAAa,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAEjD,aAAa,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACxD,aAAa,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACzD,aAAa,CAAC,UAAU,CAAC,8BAA8B,EAAE,CAAC,CAAC;IAC3D,aAAa,CAAC,UAAU,CAAC,iCAAiC,EAAE,CAAC,CAAC;IAC9D,aAAa,CAAC,UAAU,CAAC,gCAAgC,EAAE,CAAC,CAAC;IAC7D,aAAa,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAC;IAEzD,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/images/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,gCAAgC,IAAI,OAAO,CAkE1D"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import Table from 'cli-table3';
|
|
4
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
5
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
6
|
+
export function createRunnerImagesOptionsCommand() {
|
|
7
|
+
const optionsCommand = new Command('options');
|
|
8
|
+
optionsCommand.description('List selectable agent images (platform + tenant, ACTIVE, deduped by name)');
|
|
9
|
+
optionsCommand
|
|
10
|
+
.option('--json', 'Output as JSON')
|
|
11
|
+
.action(async (options) => {
|
|
12
|
+
const context = configManager.getCurrentContext();
|
|
13
|
+
const environment = options.env || context.environment;
|
|
14
|
+
const tenant = options.tenant || context.tenant;
|
|
15
|
+
const jsonOutput = options.json === true;
|
|
16
|
+
const response = await apiClient.listAgentImageOptions(environment, tenant);
|
|
17
|
+
if (!response.success) {
|
|
18
|
+
const errorMsg = response.error?.message || 'Unknown error';
|
|
19
|
+
const errorCode = response.error?.code || 'LIST_AGENT_IMAGE_OPTIONS_ERROR';
|
|
20
|
+
if (jsonOutput) {
|
|
21
|
+
console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
console.error(chalk.red(`\n✗ Failed to list selectable agent images: ${errorMsg}`));
|
|
25
|
+
if (response.error?.code)
|
|
26
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
27
|
+
console.error();
|
|
28
|
+
}
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
const images = response.data || [];
|
|
32
|
+
if (jsonOutput) {
|
|
33
|
+
console.log(JSON.stringify({ success: true, data: { items: images, totalRows: images.length } }, null, 2));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (images.length === 0) {
|
|
37
|
+
console.log(chalk.bold('\n📋 Selectable Agent Images\n'));
|
|
38
|
+
console.log(chalk.gray(' No agent images found\n'));
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
console.log(chalk.bold('\n📋 Selectable Agent Images\n'));
|
|
42
|
+
const table = new Table({
|
|
43
|
+
head: [chalk.bold('ID'), chalk.bold('Name'), chalk.bold('Tag'), chalk.bold('Source'), chalk.bold('Status'), chalk.bold('Memory(MB)'), chalk.bold('CPU')],
|
|
44
|
+
colWidths: [14, 18, 14, 10, 10, 12, 8],
|
|
45
|
+
style: { head: [], border: [] },
|
|
46
|
+
});
|
|
47
|
+
for (const image of images) {
|
|
48
|
+
const statusColor = image.status === 'ACTIVE' ? chalk.green : image.status === 'DISABLED' ? chalk.gray : chalk.yellow;
|
|
49
|
+
table.push([
|
|
50
|
+
image.agentImageId,
|
|
51
|
+
image.imageName || '-',
|
|
52
|
+
image.imageTag || '-',
|
|
53
|
+
image.source || '-',
|
|
54
|
+
statusColor(image.status || '-'),
|
|
55
|
+
image.memoryMb !== undefined ? String(image.memoryMb) : '-',
|
|
56
|
+
image.cpuShares !== undefined ? String(image.cpuShares) : '-',
|
|
57
|
+
]);
|
|
58
|
+
}
|
|
59
|
+
console.log(table.toString());
|
|
60
|
+
console.log();
|
|
61
|
+
});
|
|
62
|
+
return optionsCommand;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/runner/images/options.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ export declare function parseNumberOption(value: unknown, optionName: string, js
|
|
|
12
12
|
export declare function parseIntegerOption(value: unknown, optionName: string, json: boolean): number;
|
|
13
13
|
export declare function optionalNumber(value: unknown): number | undefined;
|
|
14
14
|
export declare function optionalInteger(value: unknown): number | undefined;
|
|
15
|
+
export declare function optionalBoolean(value: unknown): boolean | undefined;
|
|
15
16
|
export declare function printDryRun(data: unknown, json: boolean): void;
|
|
16
17
|
export declare function handleResponse(response: TeamPlanApiResponse, json: boolean, render: (data: unknown) => void): void;
|
|
17
18
|
export declare function printRows(data: unknown): void;
|
|
@@ -1 +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"}
|
|
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,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAQnE;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"}
|
|
@@ -62,6 +62,17 @@ export function optionalInteger(value) {
|
|
|
62
62
|
const parsed = Number.parseInt(String(value), 10);
|
|
63
63
|
return Number.isInteger(parsed) ? parsed : undefined;
|
|
64
64
|
}
|
|
65
|
+
export function optionalBoolean(value) {
|
|
66
|
+
if (value === undefined || value === null || String(value).trim() === '') {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
const normalized = String(value).trim().toLowerCase();
|
|
70
|
+
if (normalized === 'true' || normalized === '1')
|
|
71
|
+
return true;
|
|
72
|
+
if (normalized === 'false' || normalized === '0')
|
|
73
|
+
return false;
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
65
76
|
export function printDryRun(data, json) {
|
|
66
77
|
if (json) {
|
|
67
78
|
printJson({ success: true, dryRun: true, data });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAInE,MAAM,UAAU,cAAc,CAAC,UAAmC,EAAE;IAIlE,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;IAClD,OAAO;QACL,WAAW,EAAG,OAAO,CAAC,GAAmB,IAAI,OAAO,CAAC,WAAW;QAChE,MAAM,EAAG,OAAO,CAAC,MAAiB,IAAI,OAAO,CAAC,MAAM;KACrD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,OAAe,EAAE,IAAa;IAC/D,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,KAAc,EACd,UAAkB,EAClB,IAAa;IAEb,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACzE,IAAI,CAAC,gBAAgB,EAAE,UAAU,UAAU,cAAc,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAc,EACd,UAAkB,EAClB,IAAa;IAEb,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,EAAE,UAAU,UAAU,2BAA2B,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAc,EACd,UAAkB,EAClB,IAAa;IAEb,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,iBAAiB,EAAE,UAAU,UAAU,6BAA6B,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAa,EAAE,IAAa;IACtD,IAAI,IAAI,EAAE,CAAC;QACT,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,QAA6B,EAC7B,IAAa,EACb,MAA+B;IAE/B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CACF,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,WAAW,EACnC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,QAAQ,CAAC,OAAO,IAAI,eAAe,EAC9D,IAAI,CACL,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpB,OAAO;IACT,CAAC;IACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,MAAM,IAAI,GAAG,IAEL,CAAC;IACT,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;IAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,cAAc,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,YAAY,IAAI,EAAE,MAAM,IAAI,CAAC,YAAY,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,CACvH,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +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;
|
|
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;AAcpC,wBAAgB,sBAAsB,IAAI,OAAO,CAkBhD"}
|
|
@@ -10,6 +10,7 @@ import { createTeamPlanRollupCommand } from './rollup.js';
|
|
|
10
10
|
import { createTeamPlanExportCommand } from './export.js';
|
|
11
11
|
import { createTeamPlanScenariosCommand } from './scenarios/index.js';
|
|
12
12
|
import { createTeamPlanWeekCommand } from './week/index.js';
|
|
13
|
+
import { createTeamPlanNotifyCommand } from './notify/index.js';
|
|
13
14
|
export function createTeamPlansCommand() {
|
|
14
15
|
const plans = new Command('plans');
|
|
15
16
|
plans.description('Manage team plans (WBS, capacity, scenarios, weekly sprints)');
|
|
@@ -24,6 +25,7 @@ export function createTeamPlansCommand() {
|
|
|
24
25
|
plans.addCommand(createTeamPlanExportCommand());
|
|
25
26
|
plans.addCommand(createTeamPlanScenariosCommand());
|
|
26
27
|
plans.addCommand(createTeamPlanWeekCommand());
|
|
28
|
+
plans.addCommand(createTeamPlanNotifyCommand());
|
|
27
29
|
return plans;
|
|
28
30
|
}
|
|
29
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +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;
|
|
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;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAEhE,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;IAC9C,KAAK,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAEhD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +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;
|
|
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;AAepC,wBAAgB,6BAA6B,IAAI,OAAO,CA4FvD"}
|
|
@@ -2,6 +2,7 @@ import { Command } from 'commander';
|
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { apiClient } from '../../../../../core/api/client.js';
|
|
4
4
|
import { handleResponse, optionalInteger, optionalNumber, optionalString, printDryRun, requireOption, resolveContext, } from '../helpers.js';
|
|
5
|
+
import { findTeamPlanItem, mergeEditItem } from './merge.js';
|
|
5
6
|
export function createTeamPlanItemEditCommand() {
|
|
6
7
|
const command = new Command('edit');
|
|
7
8
|
command.description('Edit a plan item');
|
|
@@ -32,9 +33,11 @@ export function createTeamPlanItemEditCommand() {
|
|
|
32
33
|
command.action(async (planId, options) => {
|
|
33
34
|
const { environment, tenant } = resolveContext(options);
|
|
34
35
|
const json = options.json === true;
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
const id = requireOption(planId, '<plan-id>', json);
|
|
37
|
+
const planItemId = requireOption(options.itemId, '--item-id', json);
|
|
38
|
+
const overrides = {
|
|
39
|
+
planId: id,
|
|
40
|
+
planItemId,
|
|
38
41
|
};
|
|
39
42
|
const optionalFields = [
|
|
40
43
|
['phaseCode', optionalString(options.phaseCode)],
|
|
@@ -55,18 +58,20 @@ export function createTeamPlanItemEditCommand() {
|
|
|
55
58
|
];
|
|
56
59
|
for (const [key, value] of optionalFields) {
|
|
57
60
|
if (value !== undefined) {
|
|
58
|
-
|
|
61
|
+
overrides[key] = value;
|
|
59
62
|
}
|
|
60
63
|
}
|
|
61
64
|
const fp = optionalNumber(options.fp);
|
|
62
65
|
if (fp !== undefined)
|
|
63
|
-
|
|
66
|
+
overrides.fp = fp;
|
|
64
67
|
const personDays = optionalNumber(options.personDays);
|
|
65
68
|
if (personDays !== undefined)
|
|
66
|
-
|
|
69
|
+
overrides.personDays = personDays;
|
|
67
70
|
const optimisticLock = optionalInteger(options.optimisticLock);
|
|
68
71
|
if (optimisticLock !== undefined)
|
|
69
|
-
|
|
72
|
+
overrides.optimisticLock = optimisticLock;
|
|
73
|
+
const existing = await findTeamPlanItem(environment, tenant, id, planItemId, json);
|
|
74
|
+
const data = mergeEditItem(overrides, existing);
|
|
70
75
|
if (options.dryRun) {
|
|
71
76
|
printDryRun(data, json);
|
|
72
77
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/edit.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,cAAc,EACd,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;
|
|
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;AA+DpC,wBAAgB,+BAA+B,IAAI,OAAO,CA0EzD"}
|
|
@@ -3,6 +3,7 @@ import chalk from 'chalk';
|
|
|
3
3
|
import { readFileSync } from 'fs';
|
|
4
4
|
import { apiClient } from '../../../../../core/api/client.js';
|
|
5
5
|
import { fail, handleResponse, optionalString, printDryRun, requireOption, resolveContext, } from '../helpers.js';
|
|
6
|
+
import { buildTeamPlanItemIndex, fetchAllTeamPlanItems, findExistingImportItem, mergeImportRow, } from './merge.js';
|
|
6
7
|
function parseRows(raw, json) {
|
|
7
8
|
let parsed;
|
|
8
9
|
try {
|
|
@@ -44,6 +45,7 @@ export function createTeamPlanItemImportCommand() {
|
|
|
44
45
|
.option('--custom-project-code <string>', 'Custom project code used by --from-issues')
|
|
45
46
|
.option('--rows <json>', 'Inline JSON array (or {rows:[]}) of items')
|
|
46
47
|
.option('--rows-file <path>', 'Path to a JSON file containing items')
|
|
48
|
+
.option('--reset-execution', 'Allow import to reset progress / itemStatus / delayed execution state')
|
|
47
49
|
.option('--dry-run', 'Print the request body without calling the API')
|
|
48
50
|
.option('--confirm', 'Confirm the write operation')
|
|
49
51
|
.option('--json', 'Output as JSON');
|
|
@@ -66,6 +68,14 @@ export function createTeamPlanItemImportCommand() {
|
|
|
66
68
|
if (!options.fromIssues && !rows) {
|
|
67
69
|
fail('MISSING_OPTION', 'Provide --from-issues or --rows/--rows-file', json);
|
|
68
70
|
}
|
|
71
|
+
if (rows && options.resetExecution !== true) {
|
|
72
|
+
const existingItems = await fetchAllTeamPlanItems(environment, tenant, id, json);
|
|
73
|
+
const index = buildTeamPlanItemIndex(existingItems);
|
|
74
|
+
rows = rows.map((row) => {
|
|
75
|
+
const existing = findExistingImportItem(row, index);
|
|
76
|
+
return existing ? mergeImportRow(row, existing) : row;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
69
79
|
const data = {
|
|
70
80
|
planId: id,
|
|
71
81
|
fromIssues: options.fromIssues === true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAK9D,OAAO,EACL,IAAI,EACJ,cAAc,EACd,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAC;
|
|
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,22 @@
|
|
|
1
|
+
import { Environment } from '../../../../../types/index.js';
|
|
2
|
+
import { TeamPlanItem, TeamPlanImportRow, UpdateTeamPlanItemRequest } from '../../../../../types/team-plan.js';
|
|
3
|
+
export interface TeamPlanItemIndex {
|
|
4
|
+
byPlanItemId: Map<string, TeamPlanItem>;
|
|
5
|
+
byIssueId: Map<string, TeamPlanItem>;
|
|
6
|
+
byIssueCode: Map<string, TeamPlanItem>;
|
|
7
|
+
}
|
|
8
|
+
export declare function isMissing(value: unknown): boolean;
|
|
9
|
+
export declare function buildTeamPlanItemIndex(items: TeamPlanItem[]): TeamPlanItemIndex;
|
|
10
|
+
export declare function findExistingImportItem(row: TeamPlanImportRow, index: TeamPlanItemIndex): TeamPlanItem | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* 用现值回填导入行缺失的字段,避免后端 applyRow 把执行态重置为默认值。
|
|
13
|
+
* fp / itemTitle 是导入必填项,不会被回填。
|
|
14
|
+
*/
|
|
15
|
+
export declare function mergeImportRow(row: TeamPlanImportRow, existing: TeamPlanItem): TeamPlanImportRow;
|
|
16
|
+
/**
|
|
17
|
+
* 用现值 + 显式覆盖构造 edit 请求;未传字段保持现值,避免后端对空 fp 兜底为 0。
|
|
18
|
+
*/
|
|
19
|
+
export declare function mergeEditItem(overrides: Partial<UpdateTeamPlanItemRequest>, existing: TeamPlanItem): UpdateTeamPlanItemRequest;
|
|
20
|
+
export declare function fetchAllTeamPlanItems(environment: Environment, tenant: string, planId: string, json: boolean): Promise<TeamPlanItem[]>;
|
|
21
|
+
export declare function findTeamPlanItem(environment: Environment, tenant: string, planId: string, planItemId: string, json: boolean): Promise<TeamPlanItem>;
|
|
22
|
+
//# sourceMappingURL=merge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/merge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,mCAAmC,CAAC;AA8C3C,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACxC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACxC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMjD;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,iBAAiB,CAkB/E;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,iBAAiB,GACvB,YAAY,GAAG,SAAS,CAS1B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,YAAY,GACrB,iBAAiB,CAgBnB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC7C,QAAQ,EAAE,YAAY,GACrB,yBAAyB,CAe3B;AAED,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC,CA2BzB;AAED,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,YAAY,CAAC,CAWvB"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { apiClient } from '../../../../../core/api/client.js';
|
|
2
|
+
import { pageItems, pageTotal } from '../../../../../utils/pagination.js';
|
|
3
|
+
import { fail } from '../helpers.js';
|
|
4
|
+
const PAGE_SIZE = 100;
|
|
5
|
+
const MAX_PAGES = 100;
|
|
6
|
+
const IMPORT_INHERIT_FIELDS = [
|
|
7
|
+
'phaseCode',
|
|
8
|
+
'batchCode',
|
|
9
|
+
'weekCode',
|
|
10
|
+
'issueId',
|
|
11
|
+
'issueCode',
|
|
12
|
+
'moduleCode',
|
|
13
|
+
'itemType',
|
|
14
|
+
'priority',
|
|
15
|
+
'ownerId',
|
|
16
|
+
'ownerName',
|
|
17
|
+
'acceptorId',
|
|
18
|
+
'acceptorName',
|
|
19
|
+
'planStartDate',
|
|
20
|
+
'planEndDate',
|
|
21
|
+
'itemStatus',
|
|
22
|
+
'progress',
|
|
23
|
+
];
|
|
24
|
+
const EDIT_INHERIT_FIELDS = [
|
|
25
|
+
'phaseCode',
|
|
26
|
+
'batchCode',
|
|
27
|
+
'weekCode',
|
|
28
|
+
'issueId',
|
|
29
|
+
'issueCode',
|
|
30
|
+
'itemTitle',
|
|
31
|
+
'moduleCode',
|
|
32
|
+
'itemType',
|
|
33
|
+
'fp',
|
|
34
|
+
'personDays',
|
|
35
|
+
'priority',
|
|
36
|
+
'ownerId',
|
|
37
|
+
'ownerName',
|
|
38
|
+
'acceptorId',
|
|
39
|
+
'acceptorName',
|
|
40
|
+
'planStartDate',
|
|
41
|
+
'planEndDate',
|
|
42
|
+
];
|
|
43
|
+
export function isMissing(value) {
|
|
44
|
+
return (value === undefined ||
|
|
45
|
+
value === null ||
|
|
46
|
+
(typeof value === 'string' && value.trim() === ''));
|
|
47
|
+
}
|
|
48
|
+
export function buildTeamPlanItemIndex(items) {
|
|
49
|
+
const index = {
|
|
50
|
+
byPlanItemId: new Map(),
|
|
51
|
+
byIssueId: new Map(),
|
|
52
|
+
byIssueCode: new Map(),
|
|
53
|
+
};
|
|
54
|
+
for (const item of items) {
|
|
55
|
+
if (!isMissing(item.planItemId)) {
|
|
56
|
+
index.byPlanItemId.set(String(item.planItemId), item);
|
|
57
|
+
}
|
|
58
|
+
if (!isMissing(item.issueId)) {
|
|
59
|
+
index.byIssueId.set(String(item.issueId), item);
|
|
60
|
+
}
|
|
61
|
+
if (!isMissing(item.issueCode)) {
|
|
62
|
+
index.byIssueCode.set(String(item.issueCode), item);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return index;
|
|
66
|
+
}
|
|
67
|
+
export function findExistingImportItem(row, index) {
|
|
68
|
+
if (!isMissing(row.issueId)) {
|
|
69
|
+
const byId = index.byIssueId.get(String(row.issueId));
|
|
70
|
+
if (byId)
|
|
71
|
+
return byId;
|
|
72
|
+
}
|
|
73
|
+
if (!isMissing(row.issueCode)) {
|
|
74
|
+
return index.byIssueCode.get(String(row.issueCode));
|
|
75
|
+
}
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* 用现值回填导入行缺失的字段,避免后端 applyRow 把执行态重置为默认值。
|
|
80
|
+
* fp / itemTitle 是导入必填项,不会被回填。
|
|
81
|
+
*/
|
|
82
|
+
export function mergeImportRow(row, existing) {
|
|
83
|
+
const merged = { ...row };
|
|
84
|
+
const source = existing;
|
|
85
|
+
for (const field of IMPORT_INHERIT_FIELDS) {
|
|
86
|
+
if (isMissing(merged[field]) && !isMissing(source[field])) {
|
|
87
|
+
merged[field] = source[field];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
const fpChanged = Number(merged.fp) !== Number(existing.fp);
|
|
91
|
+
if (isMissing(merged.personDays) && !fpChanged && !isMissing(source.personDays)) {
|
|
92
|
+
merged.personDays = source.personDays;
|
|
93
|
+
}
|
|
94
|
+
return merged;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* 用现值 + 显式覆盖构造 edit 请求;未传字段保持现值,避免后端对空 fp 兜底为 0。
|
|
98
|
+
*/
|
|
99
|
+
export function mergeEditItem(overrides, existing) {
|
|
100
|
+
const source = existing;
|
|
101
|
+
const merged = {
|
|
102
|
+
planId: overrides.planId,
|
|
103
|
+
planItemId: overrides.planItemId,
|
|
104
|
+
};
|
|
105
|
+
for (const field of EDIT_INHERIT_FIELDS) {
|
|
106
|
+
const override = overrides[field];
|
|
107
|
+
merged[field] = isMissing(override) ? source[field] : override;
|
|
108
|
+
}
|
|
109
|
+
merged.optimisticLock = overrides.optimisticLock ?? existing.optimisticLock;
|
|
110
|
+
return merged;
|
|
111
|
+
}
|
|
112
|
+
export async function fetchAllTeamPlanItems(environment, tenant, planId, json) {
|
|
113
|
+
const items = [];
|
|
114
|
+
for (let pageNo = 1; pageNo <= MAX_PAGES; pageNo += 1) {
|
|
115
|
+
const response = await apiClient.listTeamPlanItems(environment, tenant, {
|
|
116
|
+
planId,
|
|
117
|
+
pageNo,
|
|
118
|
+
pageSize: PAGE_SIZE,
|
|
119
|
+
});
|
|
120
|
+
if (!response.success) {
|
|
121
|
+
fail(response.error?.code || 'LIST_PLAN_ITEMS_ERROR', response.error?.message || `Unable to list items for plan ${planId}`, json);
|
|
122
|
+
}
|
|
123
|
+
const page = pageItems(response.data);
|
|
124
|
+
items.push(...page);
|
|
125
|
+
const total = pageTotal(response.data);
|
|
126
|
+
if (page.length === 0 || page.length < PAGE_SIZE)
|
|
127
|
+
break;
|
|
128
|
+
if (total > 0 && items.length >= total)
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
return items;
|
|
132
|
+
}
|
|
133
|
+
export async function findTeamPlanItem(environment, tenant, planId, planItemId, json) {
|
|
134
|
+
const items = await fetchAllTeamPlanItems(environment, tenant, planId, json);
|
|
135
|
+
const item = buildTeamPlanItemIndex(items).byPlanItemId.get(String(planItemId));
|
|
136
|
+
if (!item) {
|
|
137
|
+
fail('PLAN_ITEM_NOT_FOUND', `Plan item ${planItemId} was not found in plan ${planId}`, json);
|
|
138
|
+
}
|
|
139
|
+
return item;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=merge.js.map
|