@newpeak/barista-cli 0.2.223 → 0.2.230
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/bom/list.d.ts.map +1 -1
- package/dist/commands/liberica/bom/list.js +14 -2
- package/dist/commands/liberica/bom/list.js.map +1 -1
- package/dist/commands/liberica/bom/update.d.ts.map +1 -1
- package/dist/commands/liberica/bom/update.js +13 -17
- package/dist/commands/liberica/bom/update.js.map +1 -1
- package/dist/commands/liberica/calendar/set.d.ts.map +1 -1
- package/dist/commands/liberica/calendar/set.js +12 -4
- package/dist/commands/liberica/calendar/set.js.map +1 -1
- package/dist/commands/liberica/dict-types/tenant-items.d.ts.map +1 -1
- package/dist/commands/liberica/dict-types/tenant-items.js +41 -21
- package/dist/commands/liberica/dict-types/tenant-items.js.map +1 -1
- package/dist/commands/liberica/dict-types/update.d.ts.map +1 -1
- package/dist/commands/liberica/dict-types/update.js +13 -8
- package/dist/commands/liberica/dict-types/update.js.map +1 -1
- package/dist/commands/liberica/dicts/create.d.ts.map +1 -1
- package/dist/commands/liberica/dicts/create.js +13 -1
- package/dist/commands/liberica/dicts/create.js.map +1 -1
- package/dist/commands/liberica/dicts/list.d.ts.map +1 -1
- package/dist/commands/liberica/dicts/list.js +13 -7
- package/dist/commands/liberica/dicts/list.js.map +1 -1
- package/dist/commands/liberica/dicts/update.d.ts.map +1 -1
- package/dist/commands/liberica/dicts/update.js +16 -9
- package/dist/commands/liberica/dicts/update.js.map +1 -1
- package/dist/commands/liberica/finance/expense/dept-summary.js +12 -12
- package/dist/commands/liberica/finance/expense/dept-summary.js.map +1 -1
- package/dist/commands/liberica/finance/expense/list.d.ts.map +1 -1
- package/dist/commands/liberica/finance/expense/list.js +12 -14
- package/dist/commands/liberica/finance/expense/list.js.map +1 -1
- package/dist/commands/liberica/index.d.ts.map +1 -1
- package/dist/commands/liberica/index.js +5 -26
- package/dist/commands/liberica/index.js.map +1 -1
- package/dist/commands/liberica/issue/submit.d.ts.map +1 -1
- package/dist/commands/liberica/issue/submit.js +11 -10
- package/dist/commands/liberica/issue/submit.js.map +1 -1
- package/dist/commands/liberica/leaderboard/create.d.ts.map +1 -1
- package/dist/commands/liberica/leaderboard/create.js +25 -6
- package/dist/commands/liberica/leaderboard/create.js.map +1 -1
- package/dist/commands/liberica/leaderboard/update.d.ts.map +1 -1
- package/dist/commands/liberica/leaderboard/update.js +15 -11
- package/dist/commands/liberica/leaderboard/update.js.map +1 -1
- package/dist/commands/liberica/material-transfers/create.d.ts.map +1 -1
- package/dist/commands/liberica/material-transfers/create.js +3 -0
- package/dist/commands/liberica/material-transfers/create.js.map +1 -1
- package/dist/commands/liberica/mould/list.d.ts.map +1 -1
- package/dist/commands/liberica/mould/list.js +10 -4
- package/dist/commands/liberica/mould/list.js.map +1 -1
- package/dist/commands/liberica/mould/set-status.d.ts.map +1 -1
- package/dist/commands/liberica/mould/set-status.js +12 -17
- package/dist/commands/liberica/mould/set-status.js.map +1 -1
- package/dist/commands/liberica/suppliers/create.d.ts.map +1 -1
- package/dist/commands/liberica/suppliers/create.js +14 -1
- package/dist/commands/liberica/suppliers/create.js.map +1 -1
- package/dist/commands/liberica/teams/issues/close.d.ts.map +1 -1
- package/dist/commands/liberica/teams/issues/close.js +5 -0
- package/dist/commands/liberica/teams/issues/close.js.map +1 -1
- package/dist/commands/liberica/teams/issues/create.d.ts.map +1 -1
- package/dist/commands/liberica/teams/issues/create.js +29 -31
- package/dist/commands/liberica/teams/issues/create.js.map +1 -1
- package/dist/commands/liberica/teams/issues/list.d.ts.map +1 -1
- package/dist/commands/liberica/teams/issues/list.js +27 -31
- package/dist/commands/liberica/teams/issues/list.js.map +1 -1
- package/dist/commands/liberica/teams/issues/update.d.ts.map +1 -1
- package/dist/commands/liberica/teams/issues/update.js +5 -0
- package/dist/commands/liberica/teams/issues/update.js.map +1 -1
- package/dist/commands/liberica/teams/project-codes/create.d.ts.map +1 -1
- package/dist/commands/liberica/teams/project-codes/create.js +12 -10
- package/dist/commands/liberica/teams/project-codes/create.js.map +1 -1
- package/dist/commands/liberica/teams/projects/create.d.ts.map +1 -1
- package/dist/commands/liberica/teams/projects/create.js +23 -13
- package/dist/commands/liberica/teams/projects/create.js.map +1 -1
- package/dist/commands/liberica/teams/test-cases/create.d.ts.map +1 -1
- package/dist/commands/liberica/teams/test-cases/create.js +11 -11
- package/dist/commands/liberica/teams/test-cases/create.js.map +1 -1
- package/dist/commands/liberica/teams/test-executions/add.d.ts.map +1 -1
- package/dist/commands/liberica/teams/test-executions/add.js +11 -11
- package/dist/commands/liberica/teams/test-executions/add.js.map +1 -1
- package/dist/commands/liberica/teams/test-projects/create.d.ts.map +1 -1
- package/dist/commands/liberica/teams/test-projects/create.js +22 -24
- package/dist/commands/liberica/teams/test-projects/create.js.map +1 -1
- package/dist/commands/liberica/teams/test-runs/create.d.ts.map +1 -1
- package/dist/commands/liberica/teams/test-runs/create.js +11 -11
- package/dist/commands/liberica/teams/test-runs/create.js.map +1 -1
- package/dist/commands/liberica/teams/test-suites/create.d.ts.map +1 -1
- package/dist/commands/liberica/teams/test-suites/create.js +20 -22
- package/dist/commands/liberica/teams/test-suites/create.js.map +1 -1
- package/dist/commands/liberica/warehouses/create.d.ts.map +1 -1
- package/dist/commands/liberica/warehouses/create.js +14 -1
- package/dist/commands/liberica/warehouses/create.js.map +1 -1
- package/dist/commands/liberica/warehouses/locations/create.d.ts.map +1 -1
- package/dist/commands/liberica/warehouses/locations/create.js +12 -13
- package/dist/commands/liberica/warehouses/locations/create.js.map +1 -1
- package/dist/commands/liberica/work-centers/create.d.ts.map +1 -1
- package/dist/commands/liberica/work-centers/create.js +14 -1
- package/dist/commands/liberica/work-centers/create.js.map +1 -1
- package/dist/commands/liberica/work-orders/create.d.ts.map +1 -1
- package/dist/commands/liberica/work-orders/create.js +22 -0
- package/dist/commands/liberica/work-orders/create.js.map +1 -1
- package/dist/utils/enum-dict-mapping.d.ts +9 -0
- package/dist/utils/enum-dict-mapping.d.ts.map +1 -0
- package/dist/utils/enum-dict-mapping.js +237 -0
- package/dist/utils/enum-dict-mapping.js.map +1 -0
- package/dist/utils/enum-validation.d.ts +12 -0
- package/dist/utils/enum-validation.d.ts.map +1 -0
- package/dist/utils/enum-validation.js +86 -0
- package/dist/utils/enum-validation.js.map +1 -0
- package/dist/utils/team-issue-error.d.ts +14 -0
- package/dist/utils/team-issue-error.d.ts.map +1 -0
- package/dist/utils/team-issue-error.js +38 -0
- package/dist/utils/team-issue-error.js.map +1 -0
- package/package.json +1 -1
- package/skills/barista-cli/data/commands.json +2 -2
- package/skills/barista-cli/data/commands.yaml +2 -2
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
export const ENUM_DICT_MAPPING = {
|
|
2
|
+
'leaderboard:create:period-type': {
|
|
3
|
+
dictTypeCode: 'LEADERBOARD_PERIOD_TYPE',
|
|
4
|
+
fieldLabel: '榜单期间类型',
|
|
5
|
+
errorCode: 'INVALID_PERIOD_TYPE',
|
|
6
|
+
fallbackCodes: ['DAILY', 'WEEKLY', 'MONTHLY', 'QUARTERLY', 'YEARLY'],
|
|
7
|
+
},
|
|
8
|
+
'leaderboard:update:period-type': {
|
|
9
|
+
dictTypeCode: 'LEADERBOARD_PERIOD_TYPE',
|
|
10
|
+
fieldLabel: '榜单期间类型',
|
|
11
|
+
errorCode: 'INVALID_PERIOD_TYPE',
|
|
12
|
+
fallbackCodes: ['DAILY', 'WEEKLY', 'MONTHLY', 'QUARTERLY', 'YEARLY'],
|
|
13
|
+
},
|
|
14
|
+
'leaderboard:create:data-source-type': {
|
|
15
|
+
dictTypeCode: 'LEADERBOARD_DATA_SOURCE_TYPE',
|
|
16
|
+
fieldLabel: '数据来源类型',
|
|
17
|
+
errorCode: 'INVALID_DATA_SOURCE_TYPE',
|
|
18
|
+
fallbackCodes: ['CSV_IMPORT', 'SYSTEM_CALC'],
|
|
19
|
+
},
|
|
20
|
+
'calendar:set:date-type': {
|
|
21
|
+
dictTypeCode: 'CALENDAR_DATE_TYPE',
|
|
22
|
+
fieldLabel: '日期类型',
|
|
23
|
+
errorCode: 'INVALID_DATE_TYPE',
|
|
24
|
+
fallbackCodes: ['WORKDAY', 'WEEKEND', 'HOLIDAY'],
|
|
25
|
+
},
|
|
26
|
+
'work-orders:create:type': {
|
|
27
|
+
dictTypeCode: 'WORK_ORDER_TYPE',
|
|
28
|
+
fieldLabel: '工单类型',
|
|
29
|
+
errorCode: 'INVALID_WORK_ORDER_TYPE',
|
|
30
|
+
},
|
|
31
|
+
'work-orders:create:source-type': {
|
|
32
|
+
dictTypeCode: 'SOURCE_TYPE',
|
|
33
|
+
fieldLabel: '源单类型',
|
|
34
|
+
errorCode: 'INVALID_SOURCE_TYPE',
|
|
35
|
+
},
|
|
36
|
+
'suppliers:create:type': {
|
|
37
|
+
dictTypeCode: 'PARTNER_TYPE',
|
|
38
|
+
fieldLabel: '供应商类型',
|
|
39
|
+
errorCode: 'INVALID_SUPPLIER_TYPE',
|
|
40
|
+
},
|
|
41
|
+
'warehouses:create:type': {
|
|
42
|
+
dictTypeCode: 'WAREHOUSE_CLASS',
|
|
43
|
+
fieldLabel: '仓库类型',
|
|
44
|
+
errorCode: 'INVALID_WAREHOUSE_TYPE',
|
|
45
|
+
},
|
|
46
|
+
'work-centers:create:type': {
|
|
47
|
+
dictTypeCode: 'WORK_CENTER_TYPE',
|
|
48
|
+
fieldLabel: '工作中心类型',
|
|
49
|
+
errorCode: 'INVALID_WORK_CENTER_TYPE',
|
|
50
|
+
},
|
|
51
|
+
'mould:set-status:status': {
|
|
52
|
+
dictTypeCode: 'MOULD_STATUS',
|
|
53
|
+
fieldLabel: '模具状态',
|
|
54
|
+
errorCode: 'INVALID_MOULD_STATUS',
|
|
55
|
+
},
|
|
56
|
+
'mould:list:status': {
|
|
57
|
+
dictTypeCode: 'MOULD_STATUS',
|
|
58
|
+
fieldLabel: '模具状态',
|
|
59
|
+
errorCode: 'INVALID_MOULD_STATUS',
|
|
60
|
+
},
|
|
61
|
+
'issue:submit:type': {
|
|
62
|
+
dictTypeCode: 'ISSUE_TYPE',
|
|
63
|
+
fieldLabel: '问题类型',
|
|
64
|
+
errorCode: 'INVALID_ISSUE_TYPE',
|
|
65
|
+
},
|
|
66
|
+
'teams:issues:create:type': {
|
|
67
|
+
dictTypeCode: 'ISSUE_TYPE',
|
|
68
|
+
fieldLabel: '问题类型',
|
|
69
|
+
errorCode: 'INVALID_ISSUE_TYPE',
|
|
70
|
+
},
|
|
71
|
+
'teams:issues:create:priority': {
|
|
72
|
+
dictTypeCode: 'TEAM_ISSUE_PRIORITY',
|
|
73
|
+
fieldLabel: '优先级',
|
|
74
|
+
errorCode: 'INVALID_PRIORITY',
|
|
75
|
+
fallbackCodes: ['LOW', 'MEDIUM', 'HIGH', 'URGENT'],
|
|
76
|
+
},
|
|
77
|
+
'teams:issues:create:status': {
|
|
78
|
+
dictTypeCode: 'TEAM_ISSUE_STATUS',
|
|
79
|
+
fieldLabel: '问题状态',
|
|
80
|
+
errorCode: 'INVALID_STATUS',
|
|
81
|
+
fallbackCodes: [
|
|
82
|
+
'OPEN', 'IN_PROGRESS', 'RESOLVED', 'CLOSED', 'NONE', 'PENDING', 'PROCESSING',
|
|
83
|
+
'COMPLETED', 'CANCELLED', 'DESIGNING', 'DESIGN_REVIEW', 'DESIGN_APPROVED',
|
|
84
|
+
'SPLIT', 'DEVELOPING', 'DONE_DEV', 'VERIFIED', 'WONTFIX',
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
'teams:issues:list:status': {
|
|
88
|
+
dictTypeCode: 'TEAM_ISSUE_STATUS',
|
|
89
|
+
fieldLabel: '问题状态',
|
|
90
|
+
errorCode: 'INVALID_STATUS',
|
|
91
|
+
fallbackCodes: [
|
|
92
|
+
'OPEN', 'IN_PROGRESS', 'RESOLVED', 'CLOSED', 'NONE', 'PENDING', 'PROCESSING',
|
|
93
|
+
'COMPLETED', 'CANCELLED', 'DESIGNING', 'DESIGN_REVIEW', 'DESIGN_APPROVED',
|
|
94
|
+
'SPLIT', 'DEVELOPING', 'DONE_DEV', 'VERIFIED', 'WONTFIX',
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
'teams:issues:list:fp-stage': {
|
|
98
|
+
dictTypeCode: 'FP_STAGE',
|
|
99
|
+
fieldLabel: 'FP 阶段',
|
|
100
|
+
errorCode: 'INVALID_FP_STAGE',
|
|
101
|
+
fallbackCodes: ['no-estimate', 'estimated-not-reviewed', 'approved-no-actual'],
|
|
102
|
+
normalizeCase: false,
|
|
103
|
+
},
|
|
104
|
+
'teams:projects:create:status': {
|
|
105
|
+
dictTypeCode: 'TEAM_PROJECT_STATUS',
|
|
106
|
+
fieldLabel: '项目状态',
|
|
107
|
+
errorCode: 'INVALID_PROJECT_STATUS',
|
|
108
|
+
fallbackCodes: ['ACTIVE', 'INACTIVE', 'ARCHIVED'],
|
|
109
|
+
},
|
|
110
|
+
'teams:projects:create:priority': {
|
|
111
|
+
dictTypeCode: 'TEAM_ISSUE_PRIORITY',
|
|
112
|
+
fieldLabel: '优先级',
|
|
113
|
+
errorCode: 'INVALID_PRIORITY',
|
|
114
|
+
fallbackCodes: ['LOW', 'MEDIUM', 'HIGH', 'URGENT'],
|
|
115
|
+
},
|
|
116
|
+
'teams:test-projects:create:type': {
|
|
117
|
+
dictTypeCode: 'TEST_PROJECT_TYPE',
|
|
118
|
+
fieldLabel: '测试项目类型',
|
|
119
|
+
errorCode: 'INVALID_TEST_TYPE',
|
|
120
|
+
fallbackCodes: ['UNIT', 'INTEGRATION', 'E2E', 'MANUAL', 'PERFORMANCE'],
|
|
121
|
+
},
|
|
122
|
+
'teams:test-projects:create:framework': {
|
|
123
|
+
dictTypeCode: 'TEST_FRAMEWORK',
|
|
124
|
+
fieldLabel: '测试框架',
|
|
125
|
+
errorCode: 'INVALID_FRAMEWORK',
|
|
126
|
+
fallbackCodes: ['JEST', 'VITEST', 'JUNIT', 'PYTEST', 'CUCUMBER', 'PLAYWRIGHT', 'CYPRESS', 'SELENIUM', 'OTHER'],
|
|
127
|
+
},
|
|
128
|
+
'teams:test-suites:create:test-type': {
|
|
129
|
+
dictTypeCode: 'TEST_TYPE',
|
|
130
|
+
fieldLabel: '测试类型',
|
|
131
|
+
errorCode: 'INVALID_TEST_TYPE',
|
|
132
|
+
fallbackCodes: ['FUNCTIONAL', 'REGRESSION', 'SMOKE', 'SANITY', 'PERFORMANCE', 'SECURITY', 'ACCEPTANCE'],
|
|
133
|
+
},
|
|
134
|
+
'teams:test-suites:create:framework': {
|
|
135
|
+
dictTypeCode: 'TEST_FRAMEWORK',
|
|
136
|
+
fieldLabel: '测试框架',
|
|
137
|
+
errorCode: 'INVALID_FRAMEWORK',
|
|
138
|
+
fallbackCodes: ['JEST', 'VITEST', 'JUNIT', 'PYTEST', 'CUCUMBER', 'PLAYWRIGHT', 'CYPRESS', 'SELENIUM', 'OTHER'],
|
|
139
|
+
},
|
|
140
|
+
'teams:test-runs:create:trigger-source': {
|
|
141
|
+
dictTypeCode: 'TRIGGER_SOURCE',
|
|
142
|
+
fieldLabel: '触发来源',
|
|
143
|
+
errorCode: 'INVALID_TRIGGER_SOURCE',
|
|
144
|
+
fallbackCodes: ['MANUAL', 'CI', 'SCHEDULED', 'API'],
|
|
145
|
+
},
|
|
146
|
+
'teams:test-executions:add:status': {
|
|
147
|
+
dictTypeCode: 'TEST_EXECUTION_STATUS',
|
|
148
|
+
fieldLabel: '执行状态',
|
|
149
|
+
errorCode: 'INVALID_EXEC_STATUS',
|
|
150
|
+
fallbackCodes: ['PASSED', 'FAILED', 'ERROR', 'SKIPPED', 'RUNNING'],
|
|
151
|
+
},
|
|
152
|
+
'teams:test-cases:create:status': {
|
|
153
|
+
dictTypeCode: 'TEST_CASE_STATUS',
|
|
154
|
+
fieldLabel: '用例状态',
|
|
155
|
+
errorCode: 'INVALID_TEST_CASE_STATUS',
|
|
156
|
+
fallbackCodes: ['ACTIVE', 'DRAFT', 'DEPRECATED', 'REVIEW'],
|
|
157
|
+
},
|
|
158
|
+
'teams:project-codes:create:status': {
|
|
159
|
+
dictTypeCode: 'PROJECT_CODE_STATUS',
|
|
160
|
+
fieldLabel: '项目代号状态',
|
|
161
|
+
errorCode: 'INVALID_PROJECT_CODE_STATUS',
|
|
162
|
+
fallbackCodes: ['AVAILABLE', 'USED'],
|
|
163
|
+
},
|
|
164
|
+
'finance:expense:list:status': {
|
|
165
|
+
dictTypeCode: 'EXPENSE_STATUS',
|
|
166
|
+
fieldLabel: '报销单状态',
|
|
167
|
+
errorCode: 'INVALID_STATUS',
|
|
168
|
+
fallbackCodes: ['DRAFT', 'SUBMITTED', 'REJECTED', 'APPROVED', 'PAID', 'PAY_FAILED', 'CONFIRMED', 'CANCELLED'],
|
|
169
|
+
},
|
|
170
|
+
'finance:expense:dept-summary:period-type': {
|
|
171
|
+
dictTypeCode: 'EXPENSE_PERIOD_TYPE',
|
|
172
|
+
fieldLabel: '期间类型',
|
|
173
|
+
errorCode: 'INVALID_PERIOD_TYPE',
|
|
174
|
+
fallbackCodes: ['MONTH', 'QUARTER', 'YEAR', 'YTD'],
|
|
175
|
+
},
|
|
176
|
+
'warehouse-locations:create:status': {
|
|
177
|
+
dictTypeCode: 'ENABLE_STATUS',
|
|
178
|
+
fieldLabel: '库位状态',
|
|
179
|
+
errorCode: 'INVALID_LOCATION_STATUS',
|
|
180
|
+
fallbackCodes: ['1', '2'],
|
|
181
|
+
},
|
|
182
|
+
'bom:update:status': {
|
|
183
|
+
dictTypeCode: 'ENABLE_STATUS',
|
|
184
|
+
fieldLabel: 'BOM状态',
|
|
185
|
+
errorCode: 'INVALID_STATUS',
|
|
186
|
+
fallbackCodes: ['1', '2', 'ENABLED', 'DISABLED'],
|
|
187
|
+
},
|
|
188
|
+
'bom:list:status': {
|
|
189
|
+
dictTypeCode: 'ENABLE_STATUS',
|
|
190
|
+
fieldLabel: 'BOM状态',
|
|
191
|
+
errorCode: 'INVALID_STATUS',
|
|
192
|
+
fallbackCodes: ['1', '2'],
|
|
193
|
+
},
|
|
194
|
+
'dicts:create:status': {
|
|
195
|
+
dictTypeCode: 'ENABLE_STATUS',
|
|
196
|
+
fieldLabel: '字典状态',
|
|
197
|
+
errorCode: 'INVALID_STATUS',
|
|
198
|
+
fallbackCodes: ['1', '2'],
|
|
199
|
+
},
|
|
200
|
+
'dicts:update:status': {
|
|
201
|
+
dictTypeCode: 'ENABLE_STATUS',
|
|
202
|
+
fieldLabel: '字典状态',
|
|
203
|
+
errorCode: 'INVALID_STATUS',
|
|
204
|
+
fallbackCodes: ['1', '2'],
|
|
205
|
+
},
|
|
206
|
+
'dicts:list:status': {
|
|
207
|
+
dictTypeCode: 'ENABLE_STATUS',
|
|
208
|
+
fieldLabel: '字典状态',
|
|
209
|
+
errorCode: 'INVALID_STATUS',
|
|
210
|
+
fallbackCodes: ['1', '2', 'ENABLE', 'DISABLE'],
|
|
211
|
+
},
|
|
212
|
+
'dict-types:update:status': {
|
|
213
|
+
dictTypeCode: 'ENABLE_STATUS',
|
|
214
|
+
fieldLabel: '字典类型状态',
|
|
215
|
+
errorCode: 'INVALID_STATUS',
|
|
216
|
+
fallbackCodes: ['1', '2'],
|
|
217
|
+
},
|
|
218
|
+
'dict-types:tenant-items:status': {
|
|
219
|
+
dictTypeCode: 'ENABLE_STATUS',
|
|
220
|
+
fieldLabel: '字典类型状态',
|
|
221
|
+
errorCode: 'INVALID_STATUS',
|
|
222
|
+
fallbackCodes: ['1', '2', 'ENABLE', 'DISABLE'],
|
|
223
|
+
},
|
|
224
|
+
'dict-types:tenant-items:item-status': {
|
|
225
|
+
dictTypeCode: 'ENABLE_STATUS',
|
|
226
|
+
fieldLabel: '字典项状态',
|
|
227
|
+
errorCode: 'INVALID_STATUS',
|
|
228
|
+
fallbackCodes: ['1', '2', 'ENABLE', 'DISABLE'],
|
|
229
|
+
},
|
|
230
|
+
'dict-types:tenant-items:predefined-flag': {
|
|
231
|
+
dictTypeCode: 'yes_no',
|
|
232
|
+
fieldLabel: '预置标记',
|
|
233
|
+
errorCode: 'INVALID_PREDEFINED_FLAG',
|
|
234
|
+
fallbackCodes: ['Y', 'N'],
|
|
235
|
+
},
|
|
236
|
+
};
|
|
237
|
+
//# sourceMappingURL=enum-dict-mapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum-dict-mapping.js","sourceRoot":"","sources":["../../src/utils/enum-dict-mapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface EnumValidationOptions {
|
|
2
|
+
value?: string;
|
|
3
|
+
dictTypeCode: string;
|
|
4
|
+
fieldLabel: string;
|
|
5
|
+
jsonOutput: boolean;
|
|
6
|
+
errorCode?: string;
|
|
7
|
+
fallbackCodes?: string[];
|
|
8
|
+
normalizeCase?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function clearEnumDictCache(): void;
|
|
11
|
+
export declare function validateEnumValue(options: EnumValidationOptions): Promise<string | undefined>;
|
|
12
|
+
//# sourceMappingURL=enum-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum-validation.d.ts","sourceRoot":"","sources":["../../src/utils/enum-validation.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAKD,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA+E7B"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { apiClient } from '../core/api/client.js';
|
|
3
|
+
import { configManager } from '../core/config/manager.js';
|
|
4
|
+
const dictCache = new Map();
|
|
5
|
+
const CACHE_TTL_MS = 5 * 60 * 1000;
|
|
6
|
+
export function clearEnumDictCache() {
|
|
7
|
+
dictCache.clear();
|
|
8
|
+
}
|
|
9
|
+
export async function validateEnumValue(options) {
|
|
10
|
+
const { value, dictTypeCode, fieldLabel, jsonOutput, fallbackCodes, normalizeCase } = options;
|
|
11
|
+
if (value === undefined || value === null || value === '') {
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
const context = configManager.getCurrentContext();
|
|
15
|
+
const environment = context.environment;
|
|
16
|
+
const tenant = context.tenant;
|
|
17
|
+
const cacheKey = `${environment}:${tenant}:${dictTypeCode}`;
|
|
18
|
+
let legalCodes = null;
|
|
19
|
+
let fetchFailed = false;
|
|
20
|
+
const cached = dictCache.get(cacheKey);
|
|
21
|
+
if (cached && Date.now() - cached.timestamp < CACHE_TTL_MS) {
|
|
22
|
+
legalCodes = cached.codes;
|
|
23
|
+
}
|
|
24
|
+
if (legalCodes === null) {
|
|
25
|
+
try {
|
|
26
|
+
const response = await apiClient.listDictItems(environment, tenant, {
|
|
27
|
+
dictTypeCode,
|
|
28
|
+
pageNo: 1,
|
|
29
|
+
pageSize: 500,
|
|
30
|
+
});
|
|
31
|
+
if (response.success) {
|
|
32
|
+
const records = response.data || [];
|
|
33
|
+
legalCodes = records.map((r) => r.dictCode).filter(Boolean);
|
|
34
|
+
dictCache.set(cacheKey, { codes: legalCodes, timestamp: Date.now() });
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
fetchFailed = true;
|
|
38
|
+
legalCodes = [];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
fetchFailed = true;
|
|
43
|
+
legalCodes = [];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (fetchFailed) {
|
|
47
|
+
const msg = `字典校验暂不可用(${dictTypeCode}),跳过该校验,继续提交`;
|
|
48
|
+
if (jsonOutput) {
|
|
49
|
+
console.error(JSON.stringify({ success: true, warning: msg }));
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
console.error(chalk.yellow(`\n⚠ ${msg}\n`));
|
|
53
|
+
}
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
// Backend dict is the source of truth; the local fallback list preserves
|
|
57
|
+
// previously-accepted values so refactoring never regresses legal inputs
|
|
58
|
+
// (transition behavior until the backend dict is fully registered).
|
|
59
|
+
if (fallbackCodes && fallbackCodes.length > 0) {
|
|
60
|
+
legalCodes = Array.from(new Set([...legalCodes, ...fallbackCodes]));
|
|
61
|
+
}
|
|
62
|
+
if (legalCodes.length === 0) {
|
|
63
|
+
const msg = `字典校验暂不可用(${dictTypeCode}),跳过该校验,继续提交`;
|
|
64
|
+
if (jsonOutput) {
|
|
65
|
+
console.error(JSON.stringify({ success: true, warning: msg }));
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
console.error(chalk.yellow(`\n⚠ ${msg}\n`));
|
|
69
|
+
}
|
|
70
|
+
return value;
|
|
71
|
+
}
|
|
72
|
+
const normalized = normalizeCase === false ? value : value.toUpperCase();
|
|
73
|
+
if (legalCodes.includes(normalized)) {
|
|
74
|
+
return normalized;
|
|
75
|
+
}
|
|
76
|
+
const code = options.errorCode || `INVALID_${dictTypeCode}`;
|
|
77
|
+
const message = `${fieldLabel} 非法值: ${value},合法值: ${legalCodes.join(', ')}`;
|
|
78
|
+
if (jsonOutput) {
|
|
79
|
+
console.log(JSON.stringify({ success: false, error: { code, message } }));
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
console.error(chalk.red(`\n✗ ${message}\n`));
|
|
83
|
+
}
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=enum-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum-validation.js","sourceRoot":"","sources":["../../src/utils/enum-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface WeigherB0001Diagnostic {
|
|
2
|
+
issueCode: string;
|
|
3
|
+
backendIssue: string;
|
|
4
|
+
detail: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function detectWeigherB0001(err: {
|
|
7
|
+
code?: string;
|
|
8
|
+
message?: string;
|
|
9
|
+
} | undefined): WeigherB0001Diagnostic | null;
|
|
10
|
+
export declare function handleWeigherB0001(diag: WeigherB0001Diagnostic, jsonOutput: boolean, commandLabel: string, err: {
|
|
11
|
+
code?: string;
|
|
12
|
+
message?: string;
|
|
13
|
+
}): never;
|
|
14
|
+
//# sourceMappingURL=team-issue-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-issue-error.d.ts","sourceRoot":"","sources":["../../src/utils/team-issue-error.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GACnD,sBAAsB,GAAG,IAAI,CAa/B;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,sBAAsB,EAC5B,UAAU,EAAE,OAAO,EACnB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACvC,KAAK,CAyBP"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
export function detectWeigherB0001(err) {
|
|
3
|
+
if (!err || err.code !== 'B0001')
|
|
4
|
+
return null;
|
|
5
|
+
const msg = err.message || '';
|
|
6
|
+
if (!/rollback-only|weigher/i.test(msg))
|
|
7
|
+
return null;
|
|
8
|
+
return {
|
|
9
|
+
issueCode: 'WEIGHER_TRIGGER_B0001',
|
|
10
|
+
backendIssue: 'TYP-82725278',
|
|
11
|
+
detail: 'Known backend regression (TYP-82725278): the TeamIssueWeigherTriggerListener synchronously calls RunnerJobTriggerApi.trigger() inside the issue-edit transaction. ' +
|
|
12
|
+
'When addJob throws RUNNER_TYPE_NOT_EXIST, the shared transaction is marked rollback-only, so the outer edit() commit fails with B0001. ' +
|
|
13
|
+
'Status transitions to IN_PROGRESS/RESOLVED/CLOSED are affected. OPEN/WONTFIX transitions still work. ' +
|
|
14
|
+
'Retrying will not succeed until the backend fix is deployed. See backend issue TYP-82725278.',
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function handleWeigherB0001(diag, jsonOutput, commandLabel, err) {
|
|
18
|
+
const msg = err.message || 'Unknown error';
|
|
19
|
+
if (jsonOutput) {
|
|
20
|
+
console.log(JSON.stringify({
|
|
21
|
+
success: false,
|
|
22
|
+
error: {
|
|
23
|
+
code: err.code || 'B0001',
|
|
24
|
+
message: msg,
|
|
25
|
+
issueCode: diag.issueCode,
|
|
26
|
+
backendIssue: diag.backendIssue,
|
|
27
|
+
detail: diag.detail,
|
|
28
|
+
},
|
|
29
|
+
}, null, 2));
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
console.error(chalk.red(`\n✗ Failed to ${commandLabel}: ${msg}`));
|
|
33
|
+
console.error(chalk.gray(` Error code: ${err.code}`));
|
|
34
|
+
console.error(chalk.gray(` Known backend regression (${diag.backendIssue}) — ${diag.detail}`));
|
|
35
|
+
}
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=team-issue-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-issue-error.js","sourceRoot":"","sources":["../../src/utils/team-issue-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,UAAU,kBAAkB,CAChC,GAAoD;IAEpD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,OAAO;QACL,SAAS,EAAE,uBAAuB;QAClC,YAAY,EAAE,cAAc;QAC5B,MAAM,EACJ,oKAAoK;YACpK,yIAAyI;YACzI,uGAAuG;YACvG,8FAA8F;KACjG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAA4B,EAC5B,UAAmB,EACnB,YAAoB,EACpB,GAAwC;IAExC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,eAAe,CAAC;IAC3C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,OAAO;gBACzB,OAAO,EAAE,GAAG;gBACZ,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB;SACF,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,YAAY,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,YAAY,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_metadata": {
|
|
3
|
-
"generatedAt": "2026-08-
|
|
3
|
+
"generatedAt": "2026-08-11T11:16:45.684Z",
|
|
4
4
|
"source": "src/commands/",
|
|
5
5
|
"generator": "src/skills/barista-cli/scripts/generate.ts"
|
|
6
6
|
},
|
|
@@ -392,7 +392,7 @@
|
|
|
392
392
|
"dry-run": true
|
|
393
393
|
},
|
|
394
394
|
"set-status": {
|
|
395
|
-
"description": "Set mould status (
|
|
395
|
+
"description": "Set mould status (legal values from backend dict MOULD_STATUS)",
|
|
396
396
|
"json": true,
|
|
397
397
|
"dry-run": true,
|
|
398
398
|
"force": true
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# ★ 自动生成。修改源码后重新生成:npm run generate-skills-data
|
|
2
|
-
# ★ 生成时间: 2026-08-
|
|
2
|
+
# ★ 生成时间: 2026-08-11T11:16:45.698Z
|
|
3
3
|
|
|
4
4
|
global:
|
|
5
5
|
# ── 全局 ──
|
|
@@ -252,7 +252,7 @@ liberica:
|
|
|
252
252
|
description: "Register new mould entity into the system"
|
|
253
253
|
options: [--json, --dry-run]
|
|
254
254
|
set-status:
|
|
255
|
-
description: "Set mould status (
|
|
255
|
+
description: "Set mould status (legal values from backend dict MOULD_STATUS)"
|
|
256
256
|
options: [--json, --dry-run, --force]
|
|
257
257
|
stock-in:
|
|
258
258
|
description: "Create a mould stock-in (入库单) to add mould materials to the entity list"
|