@newpeak/barista-cli 0.2.302 → 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/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 +2 -1
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +23 -0
- package/dist/core/api/client.js.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 +13 -1
- package/skills/barista-cli/data/commands.yaml +9 -1
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/items/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAO9D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,MAAM,qBAAqB,GAAG;IAC5B,WAAW;IACX,WAAW;IACX,UAAU;IACV,SAAS;IACT,WAAW;IACX,YAAY;IACZ,UAAU;IACV,UAAU;IACV,SAAS;IACT,WAAW;IACX,YAAY;IACZ,cAAc;IACd,eAAe;IACf,aAAa;IACb,YAAY;IACZ,UAAU;CACF,CAAC;AAEX,MAAM,mBAAmB,GAAG;IAC1B,WAAW;IACX,WAAW;IACX,UAAU;IACV,SAAS;IACT,WAAW;IACX,WAAW;IACX,YAAY;IACZ,UAAU;IACV,IAAI;IACJ,YAAY;IACZ,UAAU;IACV,SAAS;IACT,WAAW;IACX,YAAY;IACZ,cAAc;IACd,eAAe;IACf,aAAa;CACL,CAAC;AAQX,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,CACL,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,IAAI;QACd,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CACnD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAqB;IAC1D,MAAM,KAAK,GAAsB;QAC/B,YAAY,EAAE,IAAI,GAAG,EAAE;QACvB,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,WAAW,EAAE,IAAI,GAAG,EAAE;KACvB,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,GAAsB,EACtB,KAAwB;IAExB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;IACxB,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAsB,EACtB,QAAsB;IAEtB,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAA6B,CAAC;IACrD,MAAM,MAAM,GAAG,QAA8C,CAAC;IAE9D,KAAK,MAAM,KAAK,IAAI,qBAAqB,EAAE,CAAC;QAC1C,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5D,IAAI,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAChF,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACxC,CAAC;IAED,OAAO,MAAsC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,SAA6C,EAC7C,QAAsB;IAEtB,MAAM,MAAM,GAAG,QAA8C,CAAC;IAC9D,MAAM,MAAM,GAA4B;QACtC,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,UAAU,EAAE,SAAS,CAAC,UAAU;KACjC,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAI,SAAqC,CAAC,KAAK,CAAC,CAAC;QAC/D,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC;IAE5E,OAAO,MAA8C,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAwB,EACxB,MAAc,EACd,MAAc,EACd,IAAa;IAEb,MAAM,KAAK,GAAmB,EAAE,CAAC;IAEjC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE;YACtE,MAAM;YACN,MAAM;YACN,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CACF,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,uBAAuB,EAC/C,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,iCAAiC,MAAM,EAAE,EACpE,IAAI,CACL,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,SAAS,CAAe,QAAQ,CAAC,IAAa,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACpB,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAa,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS;YAAE,MAAM;QACxD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK;YAAE,MAAM;IAChD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAwB,EACxB,MAAc,EACd,MAAc,EACd,UAAkB,EAClB,IAAa;IAEb,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAChF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,CACF,qBAAqB,EACrB,aAAa,UAAU,0BAA0B,MAAM,EAAE,EACzD,IAAI,CACL,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/notify/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,2BAA2B,IAAI,OAAO,CAOrD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { createTeamPlanNotifyPreviewCommand } from './preview.js';
|
|
3
|
+
export function createTeamPlanNotifyCommand() {
|
|
4
|
+
const notify = new Command('notify');
|
|
5
|
+
notify.description('Plan notification utilities (read-only preview)');
|
|
6
|
+
notify.addCommand(createTeamPlanNotifyPreviewCommand());
|
|
7
|
+
return notify;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/notify/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kCAAkC,EAAE,MAAM,cAAc,CAAC;AAElE,MAAM,UAAU,2BAA2B;IACzC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,CAAC,WAAW,CAAC,iDAAiD,CAAC,CAAC;IAEtE,MAAM,CAAC,UAAU,CAAC,kCAAkC,EAAE,CAAC,CAAC;IAExD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/notify/preview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0DpC,wBAAgB,kCAAkC,IAAI,OAAO,CA+B5D"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { apiClient } from '../../../../../core/api/client.js';
|
|
4
|
+
import { fail, handleResponse, optionalString, printDryRun, requireOption, resolveContext, } from '../helpers.js';
|
|
5
|
+
const NOTIFY_TYPES = ['DELAY', 'WEEKLY'];
|
|
6
|
+
function resolveNotifyType(value, json) {
|
|
7
|
+
const raw = requireOption(value, '--type', json);
|
|
8
|
+
const normalized = raw.trim().toUpperCase();
|
|
9
|
+
if (!NOTIFY_TYPES.includes(normalized)) {
|
|
10
|
+
fail('INVALID_TYPE', `--type must be DELAY or WEEKLY, got '${raw}'`, json);
|
|
11
|
+
}
|
|
12
|
+
return normalized;
|
|
13
|
+
}
|
|
14
|
+
function buildRequest(planId, type, options) {
|
|
15
|
+
const data = { planId, type };
|
|
16
|
+
const weekCode = optionalString(options.week);
|
|
17
|
+
if (weekCode)
|
|
18
|
+
data.weekCode = weekCode;
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function renderPreview(content) {
|
|
22
|
+
if (!content) {
|
|
23
|
+
console.log(chalk.gray('\n No preview content returned\n'));
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
console.log(chalk.bold(`\n📨 ${content.subject || '(no subject)'}\n`));
|
|
27
|
+
const recipients = content.recipients || [];
|
|
28
|
+
console.log(` ${chalk.gray('Recipients:')} ${recipients.length}`);
|
|
29
|
+
for (const recipient of recipients) {
|
|
30
|
+
console.log(` - ${recipient.name || recipient.userId || '?'} <${recipient.email || '-'}>`);
|
|
31
|
+
}
|
|
32
|
+
console.log(` ${chalk.gray('Items:')} ${content.itemCount ?? 0}`);
|
|
33
|
+
const skipped = content.skipped || [];
|
|
34
|
+
if (skipped.length > 0) {
|
|
35
|
+
console.log(` ${chalk.gray('Skipped:')} ${skipped.join('; ')}`);
|
|
36
|
+
}
|
|
37
|
+
console.log();
|
|
38
|
+
}
|
|
39
|
+
export function createTeamPlanNotifyPreviewCommand() {
|
|
40
|
+
const command = new Command('preview');
|
|
41
|
+
command.description('Preview plan notification content without sending (read-only)');
|
|
42
|
+
command.argument('<plan-id>', 'Plan ID');
|
|
43
|
+
command
|
|
44
|
+
.option('--type <string>', 'Notification type: DELAY | WEEKLY')
|
|
45
|
+
.option('--week <string>', 'Week code (WEEKLY only, e.g. W8; defaults to current week)')
|
|
46
|
+
.option('--dry-run', 'Print the request body without calling the API')
|
|
47
|
+
.option('--json', 'Output as JSON');
|
|
48
|
+
command.action(async (planId, options) => {
|
|
49
|
+
const { environment, tenant } = resolveContext(options);
|
|
50
|
+
const json = options.json === true;
|
|
51
|
+
const id = requireOption(planId, '<plan-id>', json);
|
|
52
|
+
const type = resolveNotifyType(options.type, json);
|
|
53
|
+
const data = buildRequest(id, type, options);
|
|
54
|
+
if (options.dryRun) {
|
|
55
|
+
printDryRun(data, json);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const response = await apiClient.previewTeamPlanNotify(environment, tenant, data);
|
|
59
|
+
handleResponse(response, json, (content) => {
|
|
60
|
+
renderPreview(content);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
return command;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/teams/plans/notify/preview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiEpC,wBAAgB,2BAA2B,IAAI,OAAO,CA8FrD"}
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { apiClient } from '../../../../core/api/client.js';
|
|
4
|
-
import { fail, handleResponse, optionalInteger, optionalNumber, optionalString, printDryRun, requireOption, resolveContext, } from './helpers.js';
|
|
5
|
-
function
|
|
4
|
+
import { fail, handleResponse, optionalBoolean, optionalInteger, optionalNumber, optionalString, printDryRun, requireOption, resolveContext, } from './helpers.js';
|
|
5
|
+
function resolveNotifyEnabled(options, json) {
|
|
6
|
+
if (options.notifyEnabled === undefined)
|
|
7
|
+
return undefined;
|
|
8
|
+
const parsed = optionalBoolean(options.notifyEnabled);
|
|
9
|
+
if (parsed === undefined) {
|
|
10
|
+
fail('INVALID_BOOLEAN', '--notify-enabled must be true or false', json);
|
|
11
|
+
}
|
|
12
|
+
return parsed;
|
|
13
|
+
}
|
|
14
|
+
function buildOverrides(planId, options, notifyEnabled) {
|
|
6
15
|
const data = { planId };
|
|
7
16
|
const fields = [
|
|
8
17
|
['planName', optionalString(options.name)],
|
|
@@ -14,6 +23,13 @@ function buildOverrides(planId, options) {
|
|
|
14
23
|
['bufferPercent', optionalNumber(options.buffer)],
|
|
15
24
|
['startDate', optionalString(options.startDate)],
|
|
16
25
|
['scheduledFinishDate', optionalString(options.scheduledFinishDate)],
|
|
26
|
+
['planOwnerId', optionalString(options.planOwnerId)],
|
|
27
|
+
['planOwnerName', optionalString(options.planOwnerName)],
|
|
28
|
+
['notifyEnabled', notifyEnabled],
|
|
29
|
+
['delayRemindWeekdays', optionalString(options.delayRemindWeekdays)],
|
|
30
|
+
['delayRemindHour', optionalInteger(options.delayRemindHour)],
|
|
31
|
+
['weeklyReportWeekday', optionalInteger(options.weeklyReportWeekday)],
|
|
32
|
+
['weeklyReportHour', optionalInteger(options.weeklyReportHour)],
|
|
17
33
|
['optimisticLock', optionalInteger(options.optimisticLock)],
|
|
18
34
|
['changeNote', optionalString(options.changeNote)],
|
|
19
35
|
];
|
|
@@ -40,6 +56,13 @@ export function createTeamPlanUpdateCommand() {
|
|
|
40
56
|
.option('--buffer <number>', 'Buffer percentage')
|
|
41
57
|
.option('--start-date <string>', 'Start date (yyyy-MM-dd)')
|
|
42
58
|
.option('--scheduled-finish-date <string>', 'Scheduled finish date (yyyy-MM-dd)')
|
|
59
|
+
.option('--plan-owner-id <string>', 'Plan owner user ID (kept as string)')
|
|
60
|
+
.option('--plan-owner-name <string>', 'Plan owner display name')
|
|
61
|
+
.option('--notify-enabled <boolean>', 'Enable/disable plan notifications: true|false')
|
|
62
|
+
.option('--delay-remind-weekdays <string>', 'Weekdays for delay reminders, comma separated (e.g. "1,4")')
|
|
63
|
+
.option('--delay-remind-hour <number>', 'Hour of day for delay reminders (0-23)')
|
|
64
|
+
.option('--weekly-report-weekday <number>', 'Weekday for weekly report (1-7)')
|
|
65
|
+
.option('--weekly-report-hour <number>', 'Hour of day for weekly report (0-23)')
|
|
43
66
|
.option('--baseline', 'Mark as baseline plan')
|
|
44
67
|
.option('--change-note <string>', 'Change note')
|
|
45
68
|
.option('--optimistic-lock <number>', 'Optimistic lock version')
|
|
@@ -50,8 +73,9 @@ export function createTeamPlanUpdateCommand() {
|
|
|
50
73
|
const { environment, tenant } = resolveContext(options);
|
|
51
74
|
const json = options.json === true;
|
|
52
75
|
const id = requireOption(planId, '<plan-id>', json);
|
|
76
|
+
const notifyEnabled = resolveNotifyEnabled(options, json);
|
|
53
77
|
if (options.dryRun) {
|
|
54
|
-
printDryRun(buildOverrides(id, options), json);
|
|
78
|
+
printDryRun(buildOverrides(id, options, notifyEnabled), json);
|
|
55
79
|
return;
|
|
56
80
|
}
|
|
57
81
|
const existingResponse = await apiClient.getTeamPlan(environment, tenant, id);
|
|
@@ -69,6 +93,13 @@ export function createTeamPlanUpdateCommand() {
|
|
|
69
93
|
bufferPercent: optionalNumber(options.buffer) ?? existing.bufferPercent,
|
|
70
94
|
startDate: optionalString(options.startDate) ?? existing.startDate,
|
|
71
95
|
scheduledFinishDate: optionalString(options.scheduledFinishDate) ?? existing.scheduledFinishDate,
|
|
96
|
+
planOwnerId: optionalString(options.planOwnerId) ?? existing.planOwnerId,
|
|
97
|
+
planOwnerName: optionalString(options.planOwnerName) ?? existing.planOwnerName,
|
|
98
|
+
notifyEnabled: notifyEnabled ?? existing.notifyEnabled,
|
|
99
|
+
delayRemindWeekdays: optionalString(options.delayRemindWeekdays) ?? existing.delayRemindWeekdays,
|
|
100
|
+
delayRemindHour: optionalInteger(options.delayRemindHour) ?? existing.delayRemindHour,
|
|
101
|
+
weeklyReportWeekday: optionalInteger(options.weeklyReportWeekday) ?? existing.weeklyReportWeekday,
|
|
102
|
+
weeklyReportHour: optionalInteger(options.weeklyReportHour) ?? existing.weeklyReportHour,
|
|
72
103
|
optimisticLock: optionalInteger(options.optimisticLock) ?? existing.optimisticLock,
|
|
73
104
|
};
|
|
74
105
|
const scenarioCode = optionalString(options.scenarioCode) ?? existing.scenarioCode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/update.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,IAAI,EACJ,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,SAAS,cAAc,CACrB,MAAc,EACd,OAAgC;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/plans/update.ts"],"names":[],"mappings":"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"}
|