@seed-design/cli 1.4.0-alpha.0 → 1.5.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,38 @@
1
+ import { CliError } from "./error";
2
+
3
+ /**
4
+ * 아카이브된 SEED React 버전별 레지스트리 도메인.
5
+ *
6
+ * 모든 minor 버전이 아니라 보존(아카이브)된 버전만 서브도메인으로 배포되어 있어,
7
+ * 동적으로 URL을 만들지 않고 알려진 버전만 하드코딩한다. 새 버전을 아카이브하면 여기 추가한다.
8
+ */
9
+ const SEED_REACT_VERSION_BASE_URLS: Record<string, string> = {
10
+ "1.0": "https://v1-0.seed-design.io",
11
+ "1.1": "https://v1-1.seed-design.io",
12
+ "1.2": "https://v1-2.seed-design.io",
13
+ };
14
+
15
+ /**
16
+ * `--seed-react-version` 옵션을 레지스트리 소스(framework + baseUrl)로 해석한다.
17
+ * 옵션이 없으면 null을 반환한다 (= 레거시 `--baseUrl` / `--framework` 경로 사용).
18
+ *
19
+ * 지원하지 않는 버전이면 사용 가능한 버전을 안내하며 에러를 던진다.
20
+ * 옵션이 지정되면 framework도 react로 고정한다. (Lynx는 자체 버전 배포가 없어 별도 옵션을
21
+ * 제공하지 않으며, 기본값(latest)을 쓰거나 필요 시 `--baseUrl`로 직접 지정한다.)
22
+ */
23
+ export function resolveSeedVersion(opts: {
24
+ seedReactVersion?: string;
25
+ }): { framework: "react"; baseUrl: string } | null {
26
+ const version = opts.seedReactVersion?.trim();
27
+ if (!version) return null;
28
+
29
+ const baseUrl = SEED_REACT_VERSION_BASE_URLS[version];
30
+ if (!baseUrl) {
31
+ throw new CliError({
32
+ message: `지원하지 않는 SEED React 버전이에요: "${opts.seedReactVersion}"`,
33
+ hint: `사용 가능한 버전: ${Object.keys(SEED_REACT_VERSION_BASE_URLS).join(", ")}`,
34
+ });
35
+ }
36
+
37
+ return { framework: "react", baseUrl };
38
+ }
@@ -1,4 +1,4 @@
1
- import type { PublicRegistry, PublicRegistryItem } from "@/src/schema";
1
+ import type { PublicRegistry } from "@/src/schema";
2
2
 
3
3
  export function resolveDependencies({
4
4
  selectedItemKeys,
@@ -13,7 +13,7 @@ export function resolveDependencies({
13
13
  const registryItemsToAdd: { registryId: string; items: PublicRegistry["items"] }[] = [];
14
14
  const npmDependenciesToAdd = new Set<string>();
15
15
 
16
- function collectRegistryItemsToAdd(registryId: string, item: PublicRegistryItem) {
16
+ function collectRegistryItemsToAdd(registryId: string, item: PublicRegistry["items"][number]) {
17
17
  const registryFoundToAdd = registryItemsToAdd.find((r) => r.registryId === registryId);
18
18
 
19
19
  // if already added, skip