lism-cli 0.6.0 → 0.7.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.
package/README.md CHANGED
@@ -116,7 +116,7 @@ export default {
116
116
 
117
117
  `lism.config.mjs` も同様に読み込まれます。旧 `lism-ui.json` は廃止予定(互換ロードのみ。起動時に deprecation 警告)。
118
118
 
119
- > **Note:** TypeScript の `lism.config.ts` は現在未対応です。`lism-css` 本体の SCSS ビルド(`vite-plugin-lism-css` / `lism-css build`)も `.ts` を読み込まない設計のため、設定ファイルは `.js` / `.mjs` で記述してください。
119
+ > **Note:** TypeScript の `lism.config.ts` は現在未対応です。`lism-css` 本体の設定読込(`@lism-css/plugin` / `lism-css build`)も `.ts` を読み込まない設計のため、設定ファイルは `.js` / `.mjs` で記述してください。
120
120
 
121
121
  ## パッケージが見つからないエラーが出る場合
122
122
 
@@ -1,3 +1,6 @@
1
+ // <define:__LISM_PACKAGE_VERSIONS__>
2
+ var define_LISM_PACKAGE_VERSIONS_default = { "lism-css": "0.23.0", "@lism-css/ui": "0.23.0", "@lism-css/plugin": "0.3.0" };
3
+
1
4
  // src/i18n.ts
2
5
  import { execFileSync } from "child_process";
3
6
 
@@ -201,8 +204,8 @@ var messages = {
201
204
  en: "Failed to rewrite package.json name: {reason}"
202
205
  },
203
206
  "create.workspaceReplaced": {
204
- ja: " package.json \u306E workspace:* \u3092 ^{version} \u306B\u7F6E\u63DB\u3057\u307E\u3057\u305F\u3002",
205
- en: " Replaced workspace:* in package.json with ^{version}."
207
+ ja: " package.json \u306E workspace:* \u3092\u516C\u958B\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u7F6E\u63DB\u3057\u307E\u3057\u305F\u3002",
208
+ en: " Replaced workspace:* in package.json with published versions."
206
209
  },
207
210
  "create.workspaceFailed": {
208
211
  ja: "package.json \u306E\u66F8\u304D\u63DB\u3048\u306B\u5931\u6557\u3057\u307E\u3057\u305F: {reason}",
@@ -565,12 +568,16 @@ var logger = {
565
568
  };
566
569
 
567
570
  // src/version.ts
568
- var LISM_CSS_VERSION = "0.22.2" ? "0.22.2" : "unknown";
569
- var CLI_VERSION = "0.6.0" ? "0.6.0" : "unknown";
571
+ var LISM_CSS_VERSION = "0.23.0" ? "0.23.0" : "unknown";
572
+ var LISM_PACKAGE_VERSIONS = typeof define_LISM_PACKAGE_VERSIONS_default !== "undefined" && define_LISM_PACKAGE_VERSIONS_default ? define_LISM_PACKAGE_VERSIONS_default : {
573
+ "lism-css": LISM_CSS_VERSION
574
+ };
575
+ var CLI_VERSION = "0.7.0" ? "0.7.0" : "unknown";
570
576
 
571
577
  // src/constants.ts
572
578
  var SOURCE_REPO = "lism-css/lism-css";
573
579
  var RAW_GITHUB_BASE = "https://raw.githubusercontent.com";
580
+ var NPM_REGISTRY_BASE = "https://registry.npmjs.org";
574
581
  var DEFAULT_UI_REF = "main";
575
582
  var DEFAULT_SKILL_REF = "main";
576
583
  var DEFAULT_TEMPLATES_REF = "main";
@@ -602,6 +609,17 @@ var TEMPLATES = [
602
609
  description: { ja: "Vite + React \u30D9\u30FC\u30B9\u306E\u6700\u5C0F\u69CB\u6210", en: "Minimal Vite + React setup" },
603
610
  previewUrl: `${PREVIEW_ORIGIN}/minimal-vite/`
604
611
  },
612
+ {
613
+ slug: "minimal-next",
614
+ kind: "project",
615
+ category: "minimal",
616
+ stack: "next",
617
+ sourcePath: "minimal/next",
618
+ title: { ja: "Minimal Next", en: "Minimal Next" },
619
+ description: { ja: "Next.js (App Router) \u30D9\u30FC\u30B9\u306E\u6700\u5C0F\u69CB\u6210", en: "Minimal Next.js (App Router) setup" },
620
+ // preview サイト未配信・docs カード未整備のため draft(CLI 一覧・docs 本番ビルドから除外)
621
+ draft: true
622
+ },
605
623
  {
606
624
  slug: "blog-astro-minimal",
607
625
  kind: "project",
@@ -780,7 +798,7 @@ async function runCreateWithTemplates({ template, targetDir, force = false, lang
780
798
  await downloadTemplateSource(tpl, outDir, ref, force);
781
799
  await applyLangOverlay(tpl, outDir, ref, resolvedLang);
782
800
  ensureTemplateDownloaded(outDir, tpl);
783
- postProcessTemplate(outDir, tpl, resolvedLang);
801
+ await postProcessTemplate(outDir, tpl, resolvedLang);
784
802
  logger.success(t("create.created", { dir: outDir }));
785
803
  printNextSteps(outDir, tpl);
786
804
  }
@@ -911,7 +929,7 @@ async function applyLangOverlay(tpl, outDir, ref, lang) {
911
929
  fs.rmSync(overlayDir, { recursive: true, force: true });
912
930
  }
913
931
  }
914
- function postProcessTemplate(projectDir, tpl, lang) {
932
+ async function postProcessTemplate(projectDir, tpl, lang) {
915
933
  if (tpl.kind === "static-html") return;
916
934
  if (tpl.kind === "base-overlay" && tpl.rewritePackageName !== false) {
917
935
  rewritePackageName(projectDir, tpl.slug);
@@ -921,7 +939,7 @@ function postProcessTemplate(projectDir, tpl, lang) {
921
939
  rewritePackageName(projectDir, tpl.packageName ?? tpl.slug);
922
940
  }
923
941
  cleanupDevArtifacts(projectDir);
924
- rewriteWorkspaceDeps(projectDir);
942
+ await rewriteWorkspaceDeps(projectDir);
925
943
  }
926
944
  function cleanupDevArtifacts(projectDir) {
927
945
  const screenshotsDir = path.join(projectDir, "screenshots");
@@ -1078,31 +1096,69 @@ function rewritePackageName(projectDir, name) {
1078
1096
  logger.warn(t("create.packageNameFailed", { reason: String(err) }));
1079
1097
  }
1080
1098
  }
1081
- function rewriteWorkspaceDeps(projectDir) {
1099
+ var DEP_SECTIONS = ["dependencies", "devDependencies", "peerDependencies"];
1100
+ var REGISTRY_TIMEOUT_MS = 5e3;
1101
+ async function rewriteWorkspaceDeps(projectDir) {
1082
1102
  const pkgPath = path.join(projectDir, "package.json");
1083
1103
  if (!fs.existsSync(pkgPath)) return;
1084
1104
  try {
1085
1105
  const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
1106
+ const names = /* @__PURE__ */ new Set();
1107
+ for (const section of DEP_SECTIONS) {
1108
+ const deps = pkg[section];
1109
+ if (!deps) continue;
1110
+ for (const [name, value] of Object.entries(deps)) {
1111
+ if (typeof value === "string" && value.startsWith("workspace:")) names.add(name);
1112
+ }
1113
+ }
1114
+ if (names.size === 0) return;
1115
+ const versions = await resolveWorkspaceVersions([...names]);
1086
1116
  let touched = false;
1087
- for (const key of ["dependencies", "devDependencies", "peerDependencies"]) {
1088
- const deps = pkg[key];
1117
+ for (const section of DEP_SECTIONS) {
1118
+ const deps = pkg[section];
1089
1119
  if (!deps) continue;
1090
1120
  for (const [name, value] of Object.entries(deps)) {
1091
- if (typeof value !== "string") continue;
1092
- if (value.startsWith("workspace:")) {
1093
- deps[name] = `^${LISM_CSS_VERSION}`;
1121
+ if (typeof value === "string" && value.startsWith("workspace:")) {
1122
+ deps[name] = `^${versions[name]}`;
1094
1123
  touched = true;
1095
1124
  }
1096
1125
  }
1097
1126
  }
1098
1127
  if (touched) {
1099
1128
  fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
1100
- logger.log(t("create.workspaceReplaced", { version: LISM_CSS_VERSION }));
1129
+ logger.log(t("create.workspaceReplaced"));
1101
1130
  }
1102
1131
  } catch (err) {
1103
1132
  logger.warn(t("create.workspaceFailed", { reason: String(err) }));
1104
1133
  }
1105
1134
  }
1135
+ async function resolveWorkspaceVersions(names) {
1136
+ const entries = await Promise.all(names.map(async (name) => [name, await resolveDepVersion(name)]));
1137
+ return Object.fromEntries(entries);
1138
+ }
1139
+ function bakedVersion(name) {
1140
+ return LISM_PACKAGE_VERSIONS[name] ?? LISM_PACKAGE_VERSIONS["lism-css"] ?? "unknown";
1141
+ }
1142
+ async function resolveDepVersion(name) {
1143
+ const baked = bakedVersion(name);
1144
+ if (!LISM_PACKAGE_VERSIONS[name]) return baked;
1145
+ const latest = await fetchLatestVersion(name);
1146
+ return latest ?? baked;
1147
+ }
1148
+ async function fetchLatestVersion(name) {
1149
+ const url = `${NPM_REGISTRY_BASE}/${name.replace(/\//g, "%2F")}/latest`;
1150
+ try {
1151
+ const res = await fetch(url, {
1152
+ headers: { accept: "application/json" },
1153
+ signal: AbortSignal.timeout(REGISTRY_TIMEOUT_MS)
1154
+ });
1155
+ if (!res.ok) return null;
1156
+ const data = await res.json();
1157
+ return typeof data.version === "string" ? data.version : null;
1158
+ } catch {
1159
+ return null;
1160
+ }
1161
+ }
1106
1162
 
1107
1163
  export {
1108
1164
  logger,
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ import {
13
13
  preScanLang,
14
14
  setLang,
15
15
  t
16
- } from "./chunk-G4RBP3W6.js";
16
+ } from "./chunk-6E4LIZPL.js";
17
17
 
18
18
  // src/createProgram.ts
19
19
  import { Command as Command3 } from "commander";
@@ -322,10 +322,11 @@ function isExcludedComponentFile(rel, excludeRootFiles) {
322
322
  if (/(^|\/)[^/]+\.test\.[a-z]+$/.test(rel)) return true;
323
323
  return false;
324
324
  }
325
+ var FETCH_TIMEOUT_MS = 5e3;
325
326
  async function fetchCatalog(options = {}) {
326
327
  const ref = options.ref ?? DEFAULT_UI_REF;
327
328
  const url = `${RAW_GITHUB_BASE}/${SOURCE_REPO}/${ref}/${UI_REGISTRY_INDEX_PATH}`;
328
- const res = await fetch(url);
329
+ const res = await fetch(url, { signal: AbortSignal.timeout(FETCH_TIMEOUT_MS) });
329
330
  if (!res.ok) {
330
331
  throw new Error(`Failed to fetch registry-index.json (${res.status} ${res.statusText}): ${url}`);
331
332
  }
package/dist/lib.d.ts CHANGED
@@ -215,8 +215,8 @@ declare const messages: {
215
215
  readonly en: "Failed to rewrite package.json name: {reason}";
216
216
  };
217
217
  readonly 'create.workspaceReplaced': {
218
- readonly ja: " package.json の workspace:* を ^{version} に置換しました。";
219
- readonly en: " Replaced workspace:* in package.json with ^{version}.";
218
+ readonly ja: " package.json の workspace:* を公開バージョンに置換しました。";
219
+ readonly en: " Replaced workspace:* in package.json with published versions.";
220
220
  };
221
221
  readonly 'create.workspaceFailed': {
222
222
  readonly ja: "package.json の書き換えに失敗しました: {reason}";
package/dist/lib.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  setLang,
4
4
  t,
5
5
  tOf
6
- } from "./chunk-G4RBP3W6.js";
6
+ } from "./chunk-6E4LIZPL.js";
7
7
  export {
8
8
  runCreate,
9
9
  setLang,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lism-cli",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "CLI for scaffolding projects and adding UI components for Lism CSS / Lism UI.",
5
5
  "author": {
6
6
  "name": "ddryo",