@team-semicolon/semo-cli 3.0.21 → 3.0.23
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/index.js +50 -16
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -375,16 +375,23 @@ const EXTENSION_PACKAGES = {
|
|
|
375
375
|
// Meta
|
|
376
376
|
meta: { name: "Meta", desc: "SEMO 프레임워크 자체 개발/관리", layer: "meta", detect: ["semo-core", "semo-skills"] },
|
|
377
377
|
};
|
|
378
|
-
//
|
|
379
|
-
const
|
|
380
|
-
|
|
381
|
-
|
|
378
|
+
// 단축명 → 전체 패키지 경로 매핑
|
|
379
|
+
const SHORTNAME_MAPPING = {
|
|
380
|
+
// 하위 패키지명 단축 (discovery → biz/discovery)
|
|
381
|
+
discovery: "biz/discovery",
|
|
382
|
+
design: "biz/design",
|
|
383
|
+
management: "biz/management",
|
|
384
|
+
poc: "biz/poc",
|
|
385
|
+
nextjs: "eng/nextjs",
|
|
386
|
+
spring: "eng/spring",
|
|
382
387
|
ms: "eng/ms",
|
|
383
388
|
infra: "eng/infra",
|
|
384
389
|
qa: "ops/qa",
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
390
|
+
monitor: "ops/monitor",
|
|
391
|
+
improve: "ops/improve",
|
|
392
|
+
// 추가 별칭
|
|
393
|
+
next: "eng/nextjs",
|
|
394
|
+
backend: "eng/spring",
|
|
388
395
|
mvp: "biz/poc",
|
|
389
396
|
};
|
|
390
397
|
// 그룹 이름 목록 (biz, eng, ops)
|
|
@@ -411,9 +418,9 @@ function resolvePackageInput(input) {
|
|
|
411
418
|
groupName = part;
|
|
412
419
|
continue;
|
|
413
420
|
}
|
|
414
|
-
// 2.
|
|
415
|
-
if (part in
|
|
416
|
-
resolvedPackages.push(
|
|
421
|
+
// 2. 단축명 매핑 확인 (discovery → biz/discovery 등)
|
|
422
|
+
if (part in SHORTNAME_MAPPING) {
|
|
423
|
+
resolvedPackages.push(SHORTNAME_MAPPING[part]);
|
|
417
424
|
continue;
|
|
418
425
|
}
|
|
419
426
|
// 3. 직접 패키지명 확인
|
|
@@ -759,6 +766,33 @@ program
|
|
|
759
766
|
extensionsToInstall = detected;
|
|
760
767
|
}
|
|
761
768
|
}
|
|
769
|
+
else {
|
|
770
|
+
// 프로젝트 유형이 감지되지 않은 경우 패키지 선택 프롬프트
|
|
771
|
+
console.log(chalk_1.default.cyan("\n📦 추가 패키지 선택"));
|
|
772
|
+
console.log(chalk_1.default.gray(" 기본 설치 (semo-core + semo-skills) 외에 추가할 패키지를 선택하세요.\n"));
|
|
773
|
+
// 그룹별로 패키지 구성
|
|
774
|
+
const packageChoices = [
|
|
775
|
+
new inquirer_1.default.Separator(chalk_1.default.yellow("── Engineering ──")),
|
|
776
|
+
{ name: `eng/nextjs - ${EXTENSION_PACKAGES["eng/nextjs"].desc}`, value: "eng/nextjs" },
|
|
777
|
+
{ name: `eng/spring - ${EXTENSION_PACKAGES["eng/spring"].desc}`, value: "eng/spring" },
|
|
778
|
+
{ name: `eng/infra - ${EXTENSION_PACKAGES["eng/infra"].desc}`, value: "eng/infra" },
|
|
779
|
+
new inquirer_1.default.Separator(chalk_1.default.yellow("── Business ──")),
|
|
780
|
+
{ name: `biz/discovery - ${EXTENSION_PACKAGES["biz/discovery"].desc}`, value: "biz/discovery" },
|
|
781
|
+
{ name: `biz/management - ${EXTENSION_PACKAGES["biz/management"].desc}`, value: "biz/management" },
|
|
782
|
+
{ name: `biz/design - ${EXTENSION_PACKAGES["biz/design"].desc}`, value: "biz/design" },
|
|
783
|
+
new inquirer_1.default.Separator(chalk_1.default.yellow("── Operations ──")),
|
|
784
|
+
{ name: `ops/qa - ${EXTENSION_PACKAGES["ops/qa"].desc}`, value: "ops/qa" },
|
|
785
|
+
];
|
|
786
|
+
const { selectedPackages } = await inquirer_1.default.prompt([
|
|
787
|
+
{
|
|
788
|
+
type: "checkbox",
|
|
789
|
+
name: "selectedPackages",
|
|
790
|
+
message: "설치할 패키지 선택 (Space로 선택, Enter로 완료):",
|
|
791
|
+
choices: packageChoices,
|
|
792
|
+
},
|
|
793
|
+
]);
|
|
794
|
+
extensionsToInstall = selectedPackages;
|
|
795
|
+
}
|
|
762
796
|
// 3. .claude 디렉토리 생성
|
|
763
797
|
const claudeDir = path.join(cwd, ".claude");
|
|
764
798
|
if (!fs.existsSync(claudeDir)) {
|
|
@@ -2091,7 +2125,7 @@ program
|
|
|
2091
2125
|
console.log(chalk_1.default.red(`\n알 수 없는 패키지: ${packagesInput}`));
|
|
2092
2126
|
console.log(chalk_1.default.gray(`사용 가능한 그룹: ${PACKAGE_GROUPS.join(", ")}`));
|
|
2093
2127
|
console.log(chalk_1.default.gray(`사용 가능한 패키지: ${Object.keys(EXTENSION_PACKAGES).join(", ")}`));
|
|
2094
|
-
console.log(chalk_1.default.gray(
|
|
2128
|
+
console.log(chalk_1.default.gray(`단축명: ${Object.keys(SHORTNAME_MAPPING).join(", ")}\n`));
|
|
2095
2129
|
process.exit(1);
|
|
2096
2130
|
}
|
|
2097
2131
|
// 그룹 설치인 경우 안내
|
|
@@ -2205,12 +2239,12 @@ program
|
|
|
2205
2239
|
console.log(chalk_1.default.gray(" semo add eng → Engineering 전체 (nextjs, spring, ms, infra)"));
|
|
2206
2240
|
console.log(chalk_1.default.gray(" semo add ops → Operations 전체 (qa, monitor, improve)"));
|
|
2207
2241
|
console.log();
|
|
2208
|
-
//
|
|
2242
|
+
// 단축명 안내
|
|
2209
2243
|
console.log(chalk_1.default.gray("─".repeat(50)));
|
|
2210
|
-
console.log(chalk_1.default.
|
|
2211
|
-
console.log(chalk_1.default.gray(" semo add
|
|
2212
|
-
console.log(chalk_1.default.gray(" semo add
|
|
2213
|
-
console.log(chalk_1.default.gray(" semo add
|
|
2244
|
+
console.log(chalk_1.default.white.bold("⚡ 단축명 지원"));
|
|
2245
|
+
console.log(chalk_1.default.gray(" semo add discovery → biz/discovery"));
|
|
2246
|
+
console.log(chalk_1.default.gray(" semo add qa → ops/qa"));
|
|
2247
|
+
console.log(chalk_1.default.gray(" semo add nextjs → eng/nextjs\n"));
|
|
2214
2248
|
});
|
|
2215
2249
|
// === status 명령어 ===
|
|
2216
2250
|
program
|