@copado/agentia-cli 0.11.0-alpha.0 → 0.13.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,145 @@
1
+ import { cellValue, table } from './format.js';
2
+ import { normalizeSalesforceId } from './salesforce-id.js';
3
+ export const PROMOTION_LIST_FILTER_KEYS = [
4
+ 'name',
5
+ 'status',
6
+ 'projectId',
7
+ 'projectName',
8
+ 'pipelineId',
9
+ 'pipelineName',
10
+ 'sourceEnvironmentId',
11
+ 'sourceEnvironmentName',
12
+ 'destinationEnvironmentId',
13
+ 'destinationEnvironmentName',
14
+ 'isBackPromotion',
15
+ 'createdById',
16
+ 'createdByName',
17
+ 'limit',
18
+ ];
19
+ const PROMOTION_LIST_FILTER_QUERY_PARAM = {
20
+ createdById: 'createdById',
21
+ createdByName: 'createdByName',
22
+ destinationEnvironmentId: 'destinationEnvironmentId',
23
+ destinationEnvironmentName: 'destinationEnvironmentName',
24
+ isBackPromotion: 'isBackPromotion',
25
+ limit: 'limit',
26
+ name: 'name',
27
+ pipelineId: 'pipelineId',
28
+ pipelineName: 'pipelineName',
29
+ projectId: 'projectId',
30
+ projectName: 'projectName',
31
+ sourceEnvironmentId: 'sourceEnvironmentId',
32
+ sourceEnvironmentName: 'sourceEnvironmentName',
33
+ status: 'status',
34
+ };
35
+ export const PROMOTION_LIST_LIMIT_MAX = 200;
36
+ export const PROMOTION_LIST_LIMIT_MIN = 1;
37
+ export function promotionListEndpoint(filters = {}) {
38
+ const params = new URLSearchParams();
39
+ for (const key of PROMOTION_LIST_FILTER_KEYS) {
40
+ const value = filters[key];
41
+ if (value === undefined) {
42
+ continue;
43
+ }
44
+ if (key === 'isBackPromotion') {
45
+ params.set(PROMOTION_LIST_FILTER_QUERY_PARAM[key], String(value));
46
+ continue;
47
+ }
48
+ if (key === 'limit') {
49
+ params.set(PROMOTION_LIST_FILTER_QUERY_PARAM[key], String(value));
50
+ continue;
51
+ }
52
+ if (key === 'sourceEnvironmentId' ||
53
+ key === 'destinationEnvironmentId' ||
54
+ key === 'pipelineId' ||
55
+ key === 'projectId' ||
56
+ key === 'createdById') {
57
+ params.set(PROMOTION_LIST_FILTER_QUERY_PARAM[key], normalizeSalesforceId(value));
58
+ continue;
59
+ }
60
+ params.set(PROMOTION_LIST_FILTER_QUERY_PARAM[key], value);
61
+ }
62
+ const query = params.toString();
63
+ return query.length > 0 ? `/release/promotion?${query}` : '/release/promotion';
64
+ }
65
+ export function promotionEndpoint(id) {
66
+ return `/release/promotion/${normalizeSalesforceId(id)}`;
67
+ }
68
+ export function normalizePromotions(response) {
69
+ if (Array.isArray(response)) {
70
+ return response;
71
+ }
72
+ if (Array.isArray(response.data)) {
73
+ return response.data;
74
+ }
75
+ return [];
76
+ }
77
+ export function normalizePromotionDetail(response) {
78
+ if ('data' in response && response.data !== undefined && typeof response.data === 'object') {
79
+ return response.data;
80
+ }
81
+ return response;
82
+ }
83
+ export function formatPromotionTable(promotions) {
84
+ return table([
85
+ { alias: 'ID', value: 'id' },
86
+ { alias: 'NAME', value: 'name' },
87
+ { alias: 'STATUS', value: 'status' },
88
+ { alias: 'PROJECT', value: 'projectName' },
89
+ { alias: 'PIPELINE', value: 'pipelineName' },
90
+ { alias: 'SOURCE', value: 'sourceEnvironmentName' },
91
+ { alias: 'DESTINATION', value: 'destinationEnvironmentName' },
92
+ { alias: 'BACK', value: 'isBackPromotion' },
93
+ ], promotions.map((promotion) => ({
94
+ destinationEnvironmentName: cellValue(promotion.destinationEnvironmentName),
95
+ id: cellValue(promotion.id),
96
+ isBackPromotion: cellValue(promotion.isBackPromotion),
97
+ name: cellValue(promotion.name),
98
+ pipelineName: cellValue(promotion.pipelineName),
99
+ projectName: cellValue(promotion.projectName),
100
+ sourceEnvironmentName: cellValue(promotion.sourceEnvironmentName),
101
+ status: cellValue(promotion.status),
102
+ })));
103
+ }
104
+ function appendOptionalDetailLine(lines, label, value) {
105
+ if (typeof value === 'string' && value.trim().length > 0) {
106
+ lines.push(`${label}: ${value}`);
107
+ }
108
+ }
109
+ function promotionDetailIdentityLines(promotion) {
110
+ const { identification, mainSettings } = promotion;
111
+ const promotionName = identification?.promotionName ?? promotion.id;
112
+ return [
113
+ `ID: ${cellValue(promotion.id)}`,
114
+ `Name: ${cellValue(promotionName)}`,
115
+ `Status: ${cellValue(promotion.status)}`,
116
+ `Salesforce Status: ${cellValue(promotion.salesforceStatus)}`,
117
+ `Project: ${cellValue(identification?.projectName ?? identification?.projectId)}`,
118
+ `Release: ${cellValue(identification?.releaseName ?? identification?.releaseId)}`,
119
+ `Pipeline: ${cellValue(identification?.pipelineName ?? identification?.pipelineId)}`,
120
+ `Source Environment: ${cellValue(promotion.sourceEnvironmentName ?? promotion.sourceEnvironmentId)}`,
121
+ `Destination Environment: ${cellValue(promotion.destinationEnvironmentName ?? promotion.destinationEnvironmentId)}`,
122
+ `Platform: ${cellValue(mainSettings?.platform)}`,
123
+ `Back Promotion: ${cellValue(mainSettings?.isBackPromotion)}`,
124
+ `Promotion Method: ${cellValue(mainSettings?.promotionMethod)}`,
125
+ ];
126
+ }
127
+ function promotionDetailExecutionLines(promotion) {
128
+ return [
129
+ `User Stories: ${cellValue(promotion.userStoryCount ?? promotion.userStories?.length)}`,
130
+ `Included Metadata: ${cellValue(promotion.includedMetadataCount ?? promotion.includedMetadata?.length)}`,
131
+ `Last Promotion Execution: ${cellValue(promotion.lastPromotionExecutionId)} (${cellValue(promotion.lastPromotionExecutionStatus)})`,
132
+ `Last Deployment Execution: ${cellValue(promotion.lastDeploymentExecutionId)} (${cellValue(promotion.lastDeploymentExecutionStatus)})`,
133
+ `Created By: ${cellValue(promotion.createdBy)}`,
134
+ `Created Date: ${cellValue(promotion.createdDate)}`,
135
+ `Last Modified By: ${cellValue(promotion.lastModifiedBy)}`,
136
+ `Last Modified Date: ${cellValue(promotion.lastModifiedDate)}`,
137
+ ];
138
+ }
139
+ export function formatPromotionDetail(promotion) {
140
+ const lines = [...promotionDetailIdentityLines(promotion), ...promotionDetailExecutionLines(promotion)];
141
+ appendOptionalDetailLine(lines, 'Execution Error', promotion.executionErrorMessage);
142
+ appendOptionalDetailLine(lines, 'View In Git', promotion.viewInGitLink);
143
+ return lines.join('\n');
144
+ }
145
+ //# sourceMappingURL=promotion-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotion-types.js","sourceRoot":"","sources":["../../src/lib/promotion-types.ts"],"names":[],"mappings":"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"}