speccore 8.3.59 → 8.3.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/.agents/skills/spec-deploy/SKILL.md +311 -0
  2. package/.agents/skills/spec-verify/SKILL.md +226 -0
  3. package/README.md +60 -3
  4. package/dist/cli.js +52 -0
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/about.d.ts.map +1 -1
  7. package/dist/commands/about.js +9 -2
  8. package/dist/commands/about.js.map +1 -1
  9. package/dist/commands/build.d.ts +9 -0
  10. package/dist/commands/build.d.ts.map +1 -0
  11. package/dist/commands/build.js +180 -0
  12. package/dist/commands/build.js.map +1 -0
  13. package/dist/commands/deploy.d.ts +11 -0
  14. package/dist/commands/deploy.d.ts.map +1 -0
  15. package/dist/commands/deploy.js +118 -0
  16. package/dist/commands/deploy.js.map +1 -0
  17. package/dist/commands/init.d.ts.map +1 -1
  18. package/dist/commands/init.js +2 -0
  19. package/dist/commands/init.js.map +1 -1
  20. package/dist/commands/iteration/split.d.ts.map +1 -1
  21. package/dist/commands/iteration/split.js +28 -0
  22. package/dist/commands/iteration/split.js.map +1 -1
  23. package/dist/commands/pipeline.d.ts +10 -0
  24. package/dist/commands/pipeline.d.ts.map +1 -0
  25. package/dist/commands/pipeline.js +365 -0
  26. package/dist/commands/pipeline.js.map +1 -0
  27. package/dist/commands/pr.d.ts +3 -0
  28. package/dist/commands/pr.d.ts.map +1 -1
  29. package/dist/commands/pr.js +218 -0
  30. package/dist/commands/pr.js.map +1 -1
  31. package/dist/commands/update-env-configs.d.ts +3 -0
  32. package/dist/commands/update-env-configs.d.ts.map +1 -0
  33. package/dist/commands/update-env-configs.js +252 -0
  34. package/dist/commands/update-env-configs.js.map +1 -0
  35. package/dist/commands/update.d.ts.map +1 -1
  36. package/dist/commands/update.js +13 -0
  37. package/dist/commands/update.js.map +1 -1
  38. package/dist/commands/verify.d.ts +3 -0
  39. package/dist/commands/verify.d.ts.map +1 -1
  40. package/dist/commands/verify.js +330 -3
  41. package/dist/commands/verify.js.map +1 -1
  42. package/dist/core/deploy/engine.d.ts +25 -0
  43. package/dist/core/deploy/engine.d.ts.map +1 -0
  44. package/dist/core/deploy/engine.js +348 -0
  45. package/dist/core/deploy/engine.js.map +1 -0
  46. package/dist/core/environment-config.d.ts +61 -0
  47. package/dist/core/environment-config.d.ts.map +1 -0
  48. package/dist/core/environment-config.js +178 -0
  49. package/dist/core/environment-config.js.map +1 -0
  50. package/dist/core/pipeline-test.d.ts +83 -0
  51. package/dist/core/pipeline-test.d.ts.map +1 -0
  52. package/dist/core/pipeline-test.js +467 -0
  53. package/dist/core/pipeline-test.js.map +1 -0
  54. package/dist/core/test-config.d.ts +39 -0
  55. package/dist/core/test-config.d.ts.map +1 -0
  56. package/dist/core/test-config.js +162 -0
  57. package/dist/core/test-config.js.map +1 -0
  58. package/dist/core/ui-verify/spec-generator.d.ts.map +1 -1
  59. package/dist/core/ui-verify/spec-generator.js +27 -0
  60. package/dist/core/ui-verify/spec-generator.js.map +1 -1
  61. package/dist/core/unified-config.d.ts +49 -0
  62. package/dist/core/unified-config.d.ts.map +1 -1
  63. package/dist/core/unified-config.js +89 -0
  64. package/dist/core/unified-config.js.map +1 -1
  65. package/package.json +1 -1
@@ -0,0 +1,10 @@
1
+ export interface PipelineOptions {
2
+ platforms?: string;
3
+ all?: boolean;
4
+ env?: string;
5
+ envFile?: string;
6
+ skipBuild?: boolean;
7
+ dryRun?: boolean;
8
+ }
9
+ export declare function pipelineCommand(options: PipelineOptions): Promise<void>;
10
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/commands/pipeline.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAyCD,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAiV7E"}
@@ -0,0 +1,365 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pipelineCommand = pipelineCommand;
4
+ /**
5
+ * pipeline — 环境驱动流水线:合并 → 构建 → [测试] → 部署 → [测试]
6
+ *
7
+ * 工作流:
8
+ * 1. 读取环境配置(--env 或 --env-file)
9
+ * 2. 获取当前 Git 分支作为源分支
10
+ * 3. 从环境配置读取 branch(目标分支)
11
+ * 4. checkout → pull → merge → build → [pre-deploy 测试] → deploy → [post-deploy 测试]
12
+ *
13
+ * 测试时机由 pipeline.test.stage 控制:
14
+ * - pre-deploy: build 后 deploy 前(默认,可阻断部署)
15
+ * - post-deploy: deploy 后(已上线,只报告不阻断)
16
+ * - both: 前后都测
17
+ *
18
+ * 支持单端/多端批量执行,失败不阻断其他端。
19
+ */
20
+ const child_process_1 = require("child_process");
21
+ const logger_1 = require("../utils/logger");
22
+ const unified_config_1 = require("../core/unified-config");
23
+ const environment_config_1 = require("../core/environment-config");
24
+ const build_1 = require("./build");
25
+ const deploy_1 = require("./deploy");
26
+ const pipeline_test_1 = require("../core/pipeline-test");
27
+ function execGit(cwd, cmd, dryRun) {
28
+ if (dryRun) {
29
+ logger_1.logger.info(` [DRY-RUN] ${cmd}`);
30
+ return true;
31
+ }
32
+ try {
33
+ (0, child_process_1.execSync)(cmd, { stdio: 'pipe', cwd });
34
+ return true;
35
+ }
36
+ catch (e) {
37
+ logger_1.logger.error(` ❌ git 失败: ${e.message || e}`);
38
+ return false;
39
+ }
40
+ }
41
+ /** 获取当前 Git 分支名 */
42
+ function getCurrentBranch(cwd) {
43
+ try {
44
+ const branch = (0, child_process_1.execSync)('git rev-parse --abbrev-ref HEAD', { cwd, encoding: 'utf-8' }).trim();
45
+ return branch || null;
46
+ }
47
+ catch {
48
+ return null;
49
+ }
50
+ }
51
+ async function pipelineCommand(options) {
52
+ const env = options.env || 'staging';
53
+ const dryRun = options.dryRun || false;
54
+ // 读取环境配置,获取目标分支
55
+ const envConfig = await (0, environment_config_1.loadEnvironmentByNameOrPath)(options.envFile || env);
56
+ const targetBranch = envConfig?.branch;
57
+ if (!targetBranch) {
58
+ logger_1.logger.error(`❌ 环境 "${env}" 未配置 branch 字段`);
59
+ logger_1.logger.info(' 请在环境配置文件中添加 branch,例如:');
60
+ logger_1.logger.info(` .speccore/environments/${env}.yaml`);
61
+ logger_1.logger.info(' ──');
62
+ logger_1.logger.info(` env: ${env}`);
63
+ logger_1.logger.info(` branch: ${env === 'staging' ? 'develop' : env === 'production' ? 'main' : 'your-branch'}`);
64
+ logger_1.logger.info(' ──');
65
+ logger_1.logger.info(' 然后重试: speccore pipeline --env ' + env + ' --all');
66
+ process.exitCode = 1;
67
+ return;
68
+ }
69
+ // 加载项目配置(含环境覆盖)
70
+ const config = await (0, unified_config_1.loadProjectConfigWithEnv)(options.envFile || env);
71
+ if (!config.platforms || config.platforms.length === 0) {
72
+ logger_1.logger.warn('⚠️ PROJECT.yaml 中未配置任何平台');
73
+ return;
74
+ }
75
+ let targets;
76
+ if (options.platforms) {
77
+ const names = options.platforms.split(',').map((n) => n.trim());
78
+ targets = config.platforms.filter((p) => names.includes(p.name));
79
+ if (targets.length === 0) {
80
+ logger_1.logger.error(`❌ 未找到匹配平台: ${options.platforms}`);
81
+ process.exitCode = 1;
82
+ return;
83
+ }
84
+ }
85
+ else if (options.all) {
86
+ targets = config.platforms;
87
+ }
88
+ else {
89
+ logger_1.logger.info('💡 请指定目标平台:');
90
+ logger_1.logger.info(` speccore pipeline --env ${env} --platforms h5,api`);
91
+ logger_1.logger.info(` speccore pipeline --env ${env} --all`);
92
+ logger_1.logger.info(` 可用平台: ${config.platforms.map((p) => p.name).join(', ')}`);
93
+ return;
94
+ }
95
+ // 获取当前分支(作为源分支)
96
+ const firstCwd = targets[0]?.code_path || process.cwd();
97
+ const sourceBranch = getCurrentBranch(firstCwd);
98
+ if (!sourceBranch) {
99
+ logger_1.logger.error('❌ 无法获取当前 Git 分支');
100
+ process.exitCode = 1;
101
+ return;
102
+ }
103
+ if (sourceBranch === targetBranch) {
104
+ logger_1.logger.warn(`⚠️ 当前分支 (${sourceBranch}) 与目标分支 (${targetBranch}) 相同,跳过 merge`);
105
+ }
106
+ logger_1.logger.info('');
107
+ logger_1.logger.info('┌──────────────────────────────────────────┐');
108
+ logger_1.logger.info('│ Pipeline 执行计划 │');
109
+ logger_1.logger.info('├──────────────────────────────────────────┤');
110
+ logger_1.logger.info(`│ 源分支: ${sourceBranch.padEnd(32)}│`);
111
+ logger_1.logger.info(`│ 目标分支: ${targetBranch.padEnd(30)}│`);
112
+ logger_1.logger.info(`│ 部署环境: ${env.padEnd(30)}│`);
113
+ logger_1.logger.info(`│ 平台数: ${String(targets.length).padEnd(31)}│`);
114
+ logger_1.logger.info(`│ 模式: ${(dryRun ? '预览' : '执行').padEnd(33)}│`);
115
+ logger_1.logger.info('└──────────────────────────────────────────┘');
116
+ logger_1.logger.info('');
117
+ if (dryRun) {
118
+ logger_1.logger.info('📋 涉及平台:');
119
+ for (const p of targets) {
120
+ logger_1.logger.info(` • ${p.name} (${p.type})`);
121
+ }
122
+ logger_1.logger.info('');
123
+ }
124
+ const results = [];
125
+ for (const platform of targets) {
126
+ const cwd = platform.code_path || process.cwd();
127
+ logger_1.logger.info(`🔹 [${platform.name}] 开始处理...`);
128
+ const result = {
129
+ platform: platform.name,
130
+ success: true,
131
+ steps: { checkout: false, merge: false, build: false, test: false, deploy: false },
132
+ };
133
+ // Step 1: checkout to target branch
134
+ logger_1.logger.info(` 1. 切换到 ${targetBranch}...`);
135
+ result.steps.checkout = execGit(cwd, `git checkout "${targetBranch}"`, dryRun);
136
+ if (!result.steps.checkout) {
137
+ result.success = false;
138
+ result.message = 'checkout 失败';
139
+ results.push(result);
140
+ continue;
141
+ }
142
+ if (!dryRun) {
143
+ result.steps.checkout = execGit(cwd, `git pull origin "${targetBranch}"`, dryRun);
144
+ if (!result.steps.checkout) {
145
+ result.success = false;
146
+ result.message = 'pull 失败';
147
+ results.push(result);
148
+ continue;
149
+ }
150
+ }
151
+ // Step 2: merge source branch into target
152
+ if (sourceBranch !== targetBranch) {
153
+ logger_1.logger.info(` 2. 合并 ${sourceBranch} → ${targetBranch}...`);
154
+ result.steps.merge = execGit(cwd, `git merge "${sourceBranch}" --no-edit`, dryRun);
155
+ if (!result.steps.merge) {
156
+ result.success = false;
157
+ result.message = 'merge 失败';
158
+ results.push(result);
159
+ continue;
160
+ }
161
+ }
162
+ else {
163
+ logger_1.logger.info(` 2. 跳过 merge(已在目标分支)`);
164
+ result.steps.merge = true;
165
+ }
166
+ // Step 3: build
167
+ if (!options.skipBuild) {
168
+ logger_1.logger.info(` 3. 构建 ${platform.name}...`);
169
+ if (dryRun) {
170
+ logger_1.logger.info(' [DRY-RUN] 将执行构建');
171
+ result.steps.build = true;
172
+ }
173
+ else {
174
+ try {
175
+ await (0, build_1.buildCommand)({
176
+ platform: platform.name,
177
+ env,
178
+ envFile: options.envFile,
179
+ });
180
+ result.steps.build = true;
181
+ }
182
+ catch {
183
+ result.steps.build = false;
184
+ }
185
+ }
186
+ if (!result.steps.build) {
187
+ result.success = false;
188
+ result.message = '构建失败';
189
+ results.push(result);
190
+ continue;
191
+ }
192
+ }
193
+ else {
194
+ logger_1.logger.info(' 3. 跳过构建 (--skip-build)');
195
+ result.steps.build = true;
196
+ }
197
+ // Step 4/5: test + deploy(根据 stage 配置决定顺序)
198
+ const pipelineTestConfig = envConfig?.pipeline?.test;
199
+ const testEnabled = pipelineTestConfig?.enabled ?? false;
200
+ const testType = pipelineTestConfig?.type || 'build-check';
201
+ const testStage = pipelineTestConfig?.stage || 'pre-deploy';
202
+ const failOnError = pipelineTestConfig?.fail_on_error ?? true;
203
+ const autoFix = pipelineTestConfig?.auto_fix ?? true;
204
+ // 辅助:执行 pipeline 测试
205
+ async function executePipelineTest(stage) {
206
+ if (!testEnabled)
207
+ return { passed: true, shouldContinue: true };
208
+ if (testStage !== stage && testStage !== 'both')
209
+ return { passed: true, shouldContinue: true };
210
+ const stepNum = stage === 'pre-deploy' ? '4' : '6';
211
+ logger_1.logger.info(` ${stepNum}. 测试 ${platform.name} [${testType}] (${stage})...`);
212
+ if (dryRun) {
213
+ logger_1.logger.info(' [DRY-RUN] 将执行测试');
214
+ return { passed: true, shouldContinue: true };
215
+ }
216
+ const testResult = await (0, pipeline_test_1.runPipelineTest)({
217
+ platform,
218
+ env,
219
+ type: testType,
220
+ envConfig: envConfig || undefined,
221
+ dryRun: false,
222
+ });
223
+ result.steps.test = testResult.passed;
224
+ result.testReport = (0, pipeline_test_1.formatPipelineTestReport)(testResult);
225
+ if (!testResult.passed) {
226
+ logger_1.logger.error(` ❌ 测试失败: ${testResult.error || '未知错误'}`);
227
+ logger_1.logger.info('');
228
+ logger_1.logger.info(result.testReport);
229
+ if (stage === 'post-deploy') {
230
+ // 部署后测试失败:已部署,不能阻断,只报告
231
+ logger_1.logger.warn(` ⚠️ 部署后测试失败,服务已上线,请关注`);
232
+ if (autoFix) {
233
+ logger_1.logger.info('');
234
+ logger_1.logger.info('[SPECCORE_PIPELINE_TEST_POST_DEPLOY_FAIL]');
235
+ logger_1.logger.info(`platform: ${platform.name}`);
236
+ logger_1.logger.info(`env: ${env}`);
237
+ logger_1.logger.info(`type: ${testType}`);
238
+ logger_1.logger.info(`severity: ${testResult.severity}`);
239
+ logger_1.logger.info(`error: ${testResult.error || ''}`);
240
+ logger_1.logger.info('---');
241
+ logger_1.logger.info(result.testReport);
242
+ logger_1.logger.info('[/SPECCORE_PIPELINE_TEST_POST_DEPLOY_FAIL]');
243
+ }
244
+ if (testResult.severity === 'critical') {
245
+ logger_1.logger.warn(` 🚨 严重错误!建议考虑回滚: speccore deploy --env ${env} --platform ${platform.name}`);
246
+ }
247
+ return { passed: false, shouldContinue: true };
248
+ }
249
+ // 部署前测试失败:按严重程度决定是否阻断
250
+ const isCritical = testResult.severity === 'critical';
251
+ const shouldBlock = failOnError && (isCritical || !autoFix);
252
+ if (shouldBlock) {
253
+ result.success = false;
254
+ const blockReason = isCritical
255
+ ? '严重错误,必须修复后才能部署'
256
+ : '测试失败(未启用自动修复)';
257
+ result.message = `${blockReason}: ${testResult.error || ''}`;
258
+ if (autoFix) {
259
+ logger_1.logger.info('');
260
+ logger_1.logger.info('[SPECCORE_PIPELINE_TEST_FAIL]');
261
+ logger_1.logger.info(`platform: ${platform.name}`);
262
+ logger_1.logger.info(`env: ${env}`);
263
+ logger_1.logger.info(`type: ${testType}`);
264
+ logger_1.logger.info(`severity: ${testResult.severity}`);
265
+ logger_1.logger.info(`error: ${testResult.error || ''}`);
266
+ logger_1.logger.info('---');
267
+ logger_1.logger.info(result.testReport);
268
+ logger_1.logger.info('[/SPECCORE_PIPELINE_TEST_FAIL]');
269
+ }
270
+ return { passed: false, shouldContinue: false };
271
+ }
272
+ else if (!failOnError) {
273
+ logger_1.logger.warn(` ⚠️ 测试失败,但 fail_on_error=false,继续部署`);
274
+ return { passed: false, shouldContinue: true };
275
+ }
276
+ else {
277
+ // 非严重错误 + 自动修复模式 → 先部署,同时触发修复
278
+ logger_1.logger.warn(` ⚠️ 测试失败(${testResult.severity}),但自动修复已启用,先部署后修复`);
279
+ result.steps.test = true;
280
+ logger_1.logger.info('');
281
+ logger_1.logger.info('[SPECCORE_PIPELINE_TEST_DEFERRED]');
282
+ logger_1.logger.info(`platform: ${platform.name}`);
283
+ logger_1.logger.info(`env: ${env}`);
284
+ logger_1.logger.info(`type: ${testType}`);
285
+ logger_1.logger.info(`severity: ${testResult.severity}`);
286
+ logger_1.logger.info(`error: ${testResult.error || ''}`);
287
+ logger_1.logger.info('---');
288
+ logger_1.logger.info(result.testReport);
289
+ logger_1.logger.info('[/SPECCORE_PIPELINE_TEST_DEFERRED]');
290
+ return { passed: false, shouldContinue: true };
291
+ }
292
+ }
293
+ else {
294
+ logger_1.logger.success(` ✅ 测试通过: ${testResult.summary.passed}/${testResult.summary.total}`);
295
+ return { passed: true, shouldContinue: true };
296
+ }
297
+ }
298
+ // Pre-deploy 测试
299
+ const preTest = await executePipelineTest('pre-deploy');
300
+ if (!preTest.shouldContinue) {
301
+ results.push(result);
302
+ continue;
303
+ }
304
+ // Step 5: deploy
305
+ logger_1.logger.info(` 5. 部署 ${platform.name} → ${env}...`);
306
+ if (dryRun) {
307
+ logger_1.logger.info(' [DRY-RUN] 将执行部署');
308
+ result.steps.deploy = true;
309
+ }
310
+ else {
311
+ try {
312
+ await (0, deploy_1.deployCommand)({
313
+ platform: platform.name,
314
+ env,
315
+ envFile: options.envFile,
316
+ });
317
+ result.steps.deploy = true;
318
+ }
319
+ catch {
320
+ result.steps.deploy = false;
321
+ }
322
+ }
323
+ if (!result.steps.deploy) {
324
+ result.success = false;
325
+ result.message = '部署失败';
326
+ results.push(result);
327
+ continue;
328
+ }
329
+ // Post-deploy 测试
330
+ await executePipelineTest('post-deploy');
331
+ logger_1.logger.success(` ✅ [${platform.name}] 完成`);
332
+ results.push(result);
333
+ }
334
+ // 汇总报告
335
+ const successCount = results.filter((r) => r.success).length;
336
+ const failCount = results.length - successCount;
337
+ logger_1.logger.info('');
338
+ logger_1.logger.info('┌──────────────────────────────────────────┐');
339
+ logger_1.logger.info('│ Pipeline 执行汇总 │');
340
+ logger_1.logger.info('├──────────────────────────────────────────┤');
341
+ for (const r of results) {
342
+ const icon = r.success ? '✅' : '❌';
343
+ const steps = [
344
+ r.steps.checkout ? 'C' : 'c',
345
+ r.steps.merge ? 'M' : 'm',
346
+ r.steps.build ? 'B' : 'b',
347
+ r.steps.test ? 'T' : 't',
348
+ r.steps.deploy ? 'D' : 'd',
349
+ ].join('');
350
+ logger_1.logger.info(`│ ${icon} ${r.platform.padEnd(12)} [${steps}] ${(r.message || '').padEnd(14)} │`);
351
+ }
352
+ logger_1.logger.info('├──────────────────────────────────────────┤');
353
+ logger_1.logger.info(`│ 成功: ${String(successCount).padEnd(3)} 失败: ${String(failCount).padEnd(3)} 总计: ${String(results.length).padEnd(3)} │`);
354
+ logger_1.logger.info('└──────────────────────────────────────────┘');
355
+ // 分支状态提示
356
+ if (sourceBranch !== targetBranch && !dryRun) {
357
+ logger_1.logger.info('');
358
+ logger_1.logger.info(`💡 Pipeline 已完成,当前在 ${targetBranch} 分支`);
359
+ logger_1.logger.info(` 如需回到原分支: git checkout ${sourceBranch}`);
360
+ }
361
+ if (failCount > 0) {
362
+ process.exitCode = 1;
363
+ }
364
+ }
365
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/commands/pipeline.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,9 @@ export interface PrOptions {
10
10
  confirm?: boolean;
11
11
  commit?: boolean;
12
12
  force?: boolean;
13
+ createPr?: boolean;
14
+ merge?: boolean;
15
+ autoMerge?: boolean;
13
16
  }
14
17
  export declare function prCommand(options: PrOptions): Promise<void>;
15
18
  //# sourceMappingURL=pr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA8ED,wBAAsB,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA0SjE"}
1
+ {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAiMD,wBAAsB,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAmZjE"}