@42ws/cli 0.0.45 → 0.0.47

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.
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAiCA,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAiGxD"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAkCA,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DxD"}
@@ -4,7 +4,8 @@ import { createInterface } from 'node:readline';
4
4
  import { spawn } from 'node:child_process';
5
5
  import { execSync } from 'node:child_process';
6
6
  import { detectFramework } from '../lib/detect.js';
7
- import { loadConfig } from '../lib/config.js';
7
+ import { loadConfig, deriveDomains } from '../lib/config.js';
8
+ import { apiRequest } from '../lib/api.js';
8
9
  import { error, info, isJsonMode } from '../lib/output.js';
9
10
  function slugify(name) {
10
11
  return name
@@ -48,178 +49,111 @@ export async function init(args) {
48
49
  }
49
50
  // Interactive mode
50
51
  if (!process.stdin.isTTY) {
51
- error('NOT_A_TTY', 'Stdin is not a TTY.', 'Use --site, --output, --build, --spa flags with --json for non-interactive mode.');
52
+ error('NOT_A_TTY', '対話モードを起動できません。', '非対話で使うときは --json --site=<名前> を指定してください。');
52
53
  process.exit(1);
53
54
  }
54
- // Check if 42ws.json already exists
55
- if (existsSync(configPath)) {
56
- const overwrite = await prompt('42ws.json already exists. Overwrite? [y/N]: ');
55
+ // 42ws.json が既にある場合だけ確認(それ以外は質問せず賢く既定で進める)
56
+ if (existsSync(configPath) && !args.yes) {
57
+ const overwrite = await prompt('42ws.json が既にあります。上書きしますか? [y/N]: ');
57
58
  if (overwrite.toLowerCase() !== 'y') {
58
- process.stderr.write('Cancelled.\n');
59
+ info('中止しました。');
59
60
  process.exit(0);
60
61
  }
61
62
  }
62
- // 1. Site name
63
- const defaultSite = slugify(basename(cwd));
64
- const siteAnswer = await prompt(`Site name [${defaultSite}]: `);
65
- const siteName = siteAnswer.length > 0 ? siteAnswer : defaultSite;
66
- // 2. Output directory
67
- const defaultOutput = detection.output ?? 'dist';
68
- const outputAnswer = await prompt(`Output directory [${defaultOutput}]: `);
69
- const outputDir = outputAnswer.length > 0 ? outputAnswer : defaultOutput;
70
- // 3. Build command
71
- const defaultBuild = detection.build ?? 'npm run build';
72
- const buildAnswer = await prompt(`Build command [${defaultBuild}] (empty for none): `);
73
- let buildCmd;
74
- if (buildAnswer === '') {
75
- // keep default
76
- buildCmd = defaultBuild;
77
- }
78
- else if (buildAnswer.toLowerCase() === 'none') {
79
- buildCmd = undefined;
80
- }
81
- else {
82
- buildCmd = buildAnswer;
83
- }
84
- // 4. SPA mode
85
- const defaultSpa = detection.spa ?? false;
86
- const spaPrompt = defaultSpa ? '[Y/n]' : '[y/N]';
87
- const spaAnswer = await prompt(`SPA mode? ${spaPrompt}: `);
88
- let spaMode;
89
- if (spaAnswer === '') {
90
- spaMode = defaultSpa;
91
- }
92
- else {
93
- spaMode = spaAnswer.toLowerCase() === 'y';
94
- }
95
- const config = {
96
- site: siteName,
97
- output: outputDir,
98
- };
99
- if (buildCmd)
100
- config.build = buildCmd;
101
- if (spaMode)
63
+ // サイト名(サブドメインになる)。dir 名を既定にし、空きを確認して通ったものを使う。
64
+ const siteName = await resolveAvailableSite(slugify(basename(cwd)), args.site);
65
+ // Output / Build / SPA は自動検出して 42ws.json に静かに書く(CLI では聞かない)。
66
+ const config = { site: siteName, output: detection.output ?? 'dist' };
67
+ if (detection.build)
68
+ config.build = detection.build;
69
+ if (detection.spa)
102
70
  config.spa = true;
103
71
  writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', { encoding: 'utf-8' });
104
- process.stdout.write(`Created 42ws.json\n`);
105
- // 5. プロジェクトブリーフ (オプション、デフォルト N)
106
- // 「適当に作って」のような曖昧開始も普通のユースケースなので、必要な人だけ y を選ぶ前提。
107
- const briefCreated = await maybeRunBrief(cwd);
108
- // 6. AI agent 用ガイド (CLAUDE.md / AGENTS.md) を配置
109
- await setupAgentGuides(cwd, { hasBrief: briefCreated });
110
- // 7. AI agent (claude / codex) を起動
72
+ const { sitesHost } = deriveDomains(loadConfig().apiUrl);
73
+ info(`42ws.json を作成しました(サイト名: ${siteName} → https://${siteName}.${sitesHost})`);
74
+ // AI agent 用ガイド (CLAUDE.md / AGENTS.md) を配置 → 起動。ヒアリングや設計は起動後に AI が行う。
75
+ await setupAgentGuides(cwd);
111
76
  await launchAgent(cwd);
112
77
  }
113
- const BRIEF_FILE = 'BRIEF.md';
114
- const BRIEF_MARKER = 'プロジェクトブリーフ';
115
- async function maybeRunBrief(cwd) {
116
- const briefPath = join(cwd, BRIEF_FILE);
117
- if (existsSync(briefPath) && shouldSkipExisting(briefPath, BRIEF_MARKER)) {
118
- // 既にブリーフがあるなら再質問しない (AI が育てている前提)
119
- return true;
78
+ /**
79
+ * サイト名の空きを確認しながら確定する。
80
+ * - 既定(dir 名)が空いていればそのまま採用(質問しない)
81
+ * - 埋まっている/予約/不正なら理由を伝えて別名を入力してもらう(空きが見つかるまで)
82
+ * - 空き確認 API(公開・認証不要)に届かなければ、既定のまま進める(後続の create で再確認される)
83
+ */
84
+ async function resolveAvailableSite(defaultSite, fromFlag) {
85
+ const cfg = loadConfig();
86
+ const check = async (name) => {
87
+ try {
88
+ return await apiRequest(cfg, 'GET', `/v1/sites/${encodeURIComponent(name)}/availability`);
89
+ }
90
+ catch {
91
+ return null; // オフライン等は確認スキップ
92
+ }
93
+ };
94
+ const reasonText = {
95
+ taken: 'すでに使われています',
96
+ reserved: '予約済みで使えません',
97
+ invalid: '使えない名前です(半角英数とハイフン、4〜32文字)',
98
+ };
99
+ let candidate = (fromFlag || defaultSite).toLowerCase();
100
+ for (;;) {
101
+ const res = await check(candidate);
102
+ if (res === null) {
103
+ info(`サイト名の空き確認をスキップしました(オフライン?)。"${candidate}" で進めます。`);
104
+ return candidate;
105
+ }
106
+ if (res.available) {
107
+ info(`サイト名 "${candidate}" は利用可能です。`);
108
+ return candidate;
109
+ }
110
+ info(`サイト名 "${candidate}" は${reasonText[res.reason ?? ''] ?? '使えません'}。`);
111
+ const next = await prompt('別のサイト名を入力してください: ');
112
+ if (!next) {
113
+ info('空のためそのまま進めます(公開時に再確認されます)。');
114
+ return candidate;
115
+ }
116
+ candidate = next.toLowerCase();
120
117
  }
121
- const ans = await prompt('AI にプロジェクトのヒアリングをさせますか? (BRIEF.md の空テンプレを置き、起動後に AI が対話で埋めます) [y/N]: ');
122
- if (ans.toLowerCase() !== 'y')
123
- return false;
124
- writeFileSync(briefPath, renderBriefTemplate());
125
- info(`${BRIEF_FILE} (空テンプレ) を作成しました。AI 起動後、対話で埋めてもらってください。`);
126
- return true;
127
118
  }
128
- function renderBriefTemplate() {
129
- return `# プロジェクトブリーフ
130
-
131
- このドキュメントは制作開始時のヒアリング結果と、制作中に決まったことを記録する場所です。
132
- **初回起動時、AI はユーザーに対話形式でヒアリングしてこのファイルを埋めてください**。
133
- 固定の順序ではなく、ユーザーの返答に応じて深掘り・追加質問・脱線からの拾い上げを自然に行ってください。
134
-
135
- ヒアリングの大原則:
136
- - ユーザーは Web 制作の専門家とは限らない。「コレクション」のような **管理画面側の用語** で聞かない。
137
- - ユーザーが言葉にするのは「やりたいこと」「見せたいもの」「運用イメージ」。
138
- そこから AI が **42ws の機能に翻訳して** 下の「AI による機能マッピング」欄に記録する。
139
- - 翻訳結果はユーザーに見せて方向性の確認だけ取れば OK (中身の説明はしない)。
140
-
141
- ---
142
-
143
- ## ユーザーが言ったこと (生の言葉のまま)
144
-
145
- ### サイトの用途・伝えたいこと
146
- (未記入)
147
-
148
- ### 想定する読み手
149
- (未記入)
150
-
151
- ### 雰囲気・好き / 嫌い
152
- (未記入。例: 「ミニマルが好き」「○○みたいなサイトが理想」)
153
-
154
- ### 参考素材・ブランド資産
155
- (未記入。URL、ロゴ、カラー、既存サイト、写真など)
156
-
157
- ### 運用イメージ
158
- (未記入。例: 「実績は時々追加したい」「お知らせは月1で出す」「問い合わせは欲しい」)
159
-
160
- ---
161
-
162
- ## AI による機能マッピング (ユーザーには見せず AI が判断)
163
-
164
- ユーザーの回答から 42ws の機能要否を AI が翻訳する。判定根拠も短く添える。
119
+ function buildAgentGuide() {
120
+ return `# 42ws Site Project
165
121
 
166
- - **問い合わせフォーム**: 未判定
167
- - 判定根拠:
168
- - **コレクション (繰り返しコンテンツ管理)**: 未判定
169
- - 候補となるコンテンツ (該当があれば): お知らせ / 実績 / ブログ / メンバー紹介 / 商品一覧 / イベント …
170
- - 判定根拠:
171
- - **その他特殊な要件**: 未判定
122
+ このプロジェクトは [42ws](https://42ws.com) で公開されます。
172
123
 
173
- ---
124
+ ## 起動したら最初に(ヒアリング)
174
125
 
175
- ## 主要ページ構成 (確定したもの)
176
- (未記入。例: top / about / works / news / contact)
126
+ いきなり作り始めない。まずユーザーに**雑談ベースで**確認する(管理画面用語=「コレクション」等は使わない):
177
127
 
178
- ---
128
+ 1. **参考サイト・好きなデザインはあるか**(URL / 「○○みたいな感じ」)— 最重要。トーンの当たりが付く
129
+ 2. **原稿・素材はあるか**(文章、ロゴ、写真、既存サイト)— あればそれを使う、無ければ仮で起こして確認
130
+ 3. サイトの用途・伝えたいこと・想定読者・運用イメージ(更新するもの/問い合わせの要否)
179
131
 
180
- ## 更新ルール (AI 向け)
132
+ 聞いた内容と決めたことは \`design.md\` に記録する(判断のブレ止め)。「適当に」と言われたら仮置きで埋め、方向だけ確認する。
181
133
 
182
- - ヒアリングは雑談ベースで OK。1 問ずつ機械的に聞かない。返答から次の質問を組み立てる
183
- - ユーザーが「適当に」「お任せで」と言ったら、AI が仮置きで埋めて「この方向で進めますか?」と確認する
184
- - 機能マッピングは AI の責任。ユーザーには結果だけ「こういう機能があるとできそうですが、いかがですか?」と方向確認
185
- - 制作中に決まったこと・変わったことは随時このファイルを更新 (大きな変更はユーザーに確認した上で書き換え)
186
- - このファイルが「制作の根拠」になる。コード生成時にここを参照して判断ブレを防ぐ
187
- `;
188
- }
189
- function buildAgentGuide(opts) {
190
- const briefSection = opts.hasBrief
191
- ? `## プロジェクト概要 (まず BRIEF.md を読む)
134
+ ## 使える機能を先に確認
192
135
 
193
- このサイトの目的・対象ユーザー・トーン等は [BRIEF.md](./BRIEF.md) を根拠に進めてください。
136
+ \`npx @42ws/cli@latest whoami --json\` で**ログイン状態と契約プランの機能**(hosting / contact=フォーム / collection / customDomains)を確認する。
137
+ **使えない機能は提案しない**(例: フォーム不可のプランなら問い合わせフォームを設計に入れない)。未ログインなら先にログインを促す。
194
138
 
195
- **初回起動時、BRIEF.md が「(未記入)」のままならユーザーに対話形式でヒアリングして埋めてください**。
139
+ ## 制作前に必ず読む(オンライン・常に最新)
196
140
 
197
- 重要な原則:
198
- - ユーザーは Web 制作の専門家とは限らない。「コレクション使いますか?」のような **管理画面側の用語** での聞き方は禁止 (コレクションは 42ws 管理画面の用語で、初見のユーザーには通じない)。
199
- - ユーザーは「やりたいこと」「見せたいもの」「運用イメージ」を言葉にする。
200
- そこから AI が 42ws の機能に **翻訳** して BRIEF.md の「AI による機能マッピング」欄に記録する。
201
- - 翻訳結果は方向性の確認だけ取る (中身の説明はしない。"こういう機能があるとできそうですが、いかがですか?")。
202
- - 雑談ベースで OK。1 問ずつ機械的に聞かない。返答から次の質問を組み立てる。
203
- - ユーザーが「適当に」「お任せで」と言ったら、AI が仮置きで埋めて方向性の確認だけ取る。
204
- - 制作中に要件が変わったら BRIEF.md の更新提案を出して、ユーザー確認の上で書き換える。
141
+ ガイドは 42ws がオンラインで配信します。ローカルに古い規約を抱えないため、**作業前に毎回取得**してください:
205
142
 
206
- `
207
- : '';
208
- return `# 42ws Site Project
143
+ ガイドは 42ws がオンラインで配信します。ローカルに古い規約を抱えないため、**作業前に毎回取得**してください:
209
144
 
210
- このプロジェクトは [42ws](https://42ws.com) で公開されます。
211
-
212
- ${briefSection}## 制作前に必ず読む
145
+ npx @42ws/cli@latest prompts get context # 42ws プラットフォームの前提(フォーム埋め込み、CMS の作法、禁止事項)
146
+ npx @42ws/cli@latest prompts get build # 制作規約(素 HTML 優先・スマホ対応・SEO 構造・デザイン方針・画像・プレビュー)
213
147
 
214
- サイト制作の前提・規約 (フォーム埋め込み、CMS 一覧ページの作法、やってはいけないこと等) は以下で取得します。**作業を始める前に最初に読んでください**:
148
+ ## 設計を起こす(design.md)
215
149
 
216
- npx @42ws/cli@latest prompts get context
150
+ 上のヒアリング内容をもとに、**\`prompts get build\` の「7. 設計を先に起こす」の項目に沿って \`design.md\` を作成**し、ユーザーに方向確認を取ってから実装に入ってください(design.md の構造はオンライン規約が単一の真実。ローカルに雛形は置きません)。
217
151
 
218
- ## 公開・組み込み・運用
152
+ ## 作る → プレビュー → 公開
219
153
 
220
- 公開、フォーム/コレクション組み込み、エントリ運用に入るときは以下も読んでください:
221
-
222
- npx @42ws/cli@latest prompts get cli
154
+ 1. \`build\` 規約に従って素の HTML/CSS で作る(理由が無ければフレームワーク不要)
155
+ 2. **\`npx @42ws/cli@latest dev\` でローカル起動し、ブラウザ(スマホ幅でも)で確認**。崩れ・エラーは検証ツールバー / \`dev errors\` で診断(手順は \`prompts get inspector\`)
156
+ 3. 公開・フォーム/コレクション組み込み・既存サイト移行は \`prompts get cli\` / \`prompts get migrate\`
223
157
 
224
158
  ## バージョン更新の検知
225
159
 
@@ -227,12 +161,10 @@ ${briefSection}## 制作前に必ず読む
227
161
  **前回見たバージョンと違っていたら再取得して差分を確認してください**。
228
162
  バージョンを戻す運用はありません (常に最新が単一の真実)。
229
163
 
230
- ## 推奨スキル / ツール
231
-
232
- 以下がユーザー環境に入っているか確認し、入っていない場合は **ユーザーに導入を提案** してください (必須ではないので、ユーザーが「不要」と言ったら追わない):
164
+ ## ツール(任意)
233
165
 
234
- - **frontend-design スキル (公式)** 画面設計・UI コンポーネント生成の品質が上がる
235
- - **agent-browser サブエージェント** — 制作中のページを実ブラウザで確認できる (レイアウト崩れの検知などに有効)
166
+ - **画像生成**: gemini / codex 等の画像生成が使える環境なら、ヒーロー/OGP/装飾画像を生成して使う(\`build\` 規約参照。skill の導入は不要)。
167
+ - 制作中のページ確認は \`42ws dev\` が基本。実ブラウザ確認の補助ツール(agent-browser 等)が入っていれば併用してよい。
236
168
  `;
237
169
  }
238
170
  function shouldSkipExisting(file, marker) {
@@ -244,10 +176,10 @@ function shouldSkipExisting(file, marker) {
244
176
  return false;
245
177
  }
246
178
  }
247
- async function setupAgentGuides(cwd, opts) {
179
+ async function setupAgentGuides(cwd) {
248
180
  // CLAUDE.md (Claude Code) と AGENTS.md (codex 等) を生成。
249
181
  // 既にあれば内容を確認、追記許可を取る。
250
- const guide = buildAgentGuide(opts);
182
+ const guide = buildAgentGuide();
251
183
  const marker = '42ws Site Project'; // ヘッダ重複検知用
252
184
  for (const fname of ['CLAUDE.md', 'AGENTS.md']) {
253
185
  const fpath = join(cwd, fname);
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ const PROMPTS_HELP = `
6
6
  42ws prompts — AI エージェント向け制作ガイドを取得
7
7
 
8
8
  Usage:
9
- 42ws prompts get <name> Print prompt body to stdout (name: context | cli | sitecard | inspector | migrate)
9
+ 42ws prompts get <name> Print prompt body to stdout (name: context | cli | build | sitecard | inspector | migrate)
10
10
 
11
11
  Notes:
12
12
  - 本文の冒頭に Version: x.y.z (updated YYYY-MM-DD) があります。
@@ -31,7 +31,7 @@ async function promptsGet(args) {
31
31
  }
32
32
  const name = args.positional[0];
33
33
  if (!name) {
34
- error('NAME_REQUIRED', '使い方: 42ws prompts get <name>', '<name> は context | cli | sitecard | inspector | migrate');
34
+ error('NAME_REQUIRED', '使い方: 42ws prompts get <name>', '<name> は context | cli | build | sitecard | inspector | migrate');
35
35
  process.exit(1);
36
36
  }
37
37
  // /v1/prompts/{name} は text/plain を返すので、apiRequest の JSON.parse 失敗を string として受ける挙動に依存。
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/commands/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,gBAAgB,CAAC;AAEnC,MAAM,YAAY,GAAG;;;;;;;;;CASpB,CAAC,IAAI,EAAE,CAAC;AAQT,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAiB;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;IAC5B,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IACD,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,GAAG,OAAO,YAAY,IAAI,CAAC,CAAC;IAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAiB;IACzC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,KAAK,CAAC,eAAe,EAAE,8BAA8B,EAAE,yDAAyD,CAAC,CAAC;QAClH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,wFAAwF;IACxF,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,UAAU,CAAS,MAAM,EAAE,KAAK,EAAE,eAAe,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,QAAQ;YAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;;YAC/D,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,UAAU,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/commands/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,gBAAgB,CAAC;AAEnC,MAAM,YAAY,GAAG;;;;;;;;;CASpB,CAAC,IAAI,EAAE,CAAC;AAQT,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAiB;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;IAC5B,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IACD,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,GAAG,OAAO,YAAY,IAAI,CAAC,CAAC;IAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAiB;IACzC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,KAAK,CAAC,eAAe,EAAE,8BAA8B,EAAE,iEAAiE,CAAC,CAAC;QAC1H,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,wFAAwF;IACxF,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,UAAU,CAAS,MAAM,EAAE,KAAK,EAAE,eAAe,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,QAAQ;YAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;;YAC/D,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,UAAU,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AACjE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AASA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CA6B5C"}
1
+ {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAiBA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAwC5C"}
@@ -1,6 +1,6 @@
1
- import { loadConfig } from '../lib/config.js';
1
+ import { loadConfig, deriveDomains } from '../lib/config.js';
2
2
  import { apiRequest, ApiError } from '../lib/api.js';
3
- import { successMessage, error } from '../lib/output.js';
3
+ import { successMessage, error, isJsonMode } from '../lib/output.js';
4
4
  export async function whoami() {
5
5
  const config = loadConfig();
6
6
  if (!config.token) {
@@ -25,6 +25,17 @@ export async function whoami() {
25
25
  }
26
26
  process.exit(1);
27
27
  }
28
+ const { sitesHost } = deriveDomains(config.apiUrl);
29
+ if (isJsonMode()) {
30
+ successMessage(JSON.stringify({ ok: true, userId: me.userId, email: me.email, apiUrl: config.apiUrl, sitesHost, license: me.license ?? null }));
31
+ return;
32
+ }
28
33
  successMessage(me.email ?? me.userId);
34
+ successMessage(`接続先: ${config.apiUrl}(公開ドメイン *.${sitesHost})`);
35
+ const lic = me.license;
36
+ if (lic) {
37
+ const on = (b) => (b ? '✓' : '×');
38
+ successMessage(`プラン機能: ホスティング ${on(lic.hosting)} / フォーム ${on(lic.contact)} / コレクション ${on(lic.collection)} / 独自ドメイン ${on(lic.customDomains)}`);
39
+ }
29
40
  }
30
41
  //# sourceMappingURL=whoami.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAOzD,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,CACH,eAAe,EACf,wBAAwB,EACxB,wDAAwD,CACzD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,EAAc,CAAC;IACnB,IAAI,CAAC;QACH,EAAE,GAAG,MAAM,UAAU,CAAa,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACzD,KAAK,CAAC,eAAe,EAAE,2BAA2B,EAAE,sCAAsC,CAAC,CAAC;YAC9F,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,eAAe,EAAE,wBAAwB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,iCAAiC,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,cAAc,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAerE,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,CACH,eAAe,EACf,wBAAwB,EACxB,wDAAwD,CACzD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,EAAc,CAAC;IACnB,IAAI,CAAC;QACH,EAAE,GAAG,MAAM,UAAU,CAAa,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACzD,KAAK,CAAC,eAAe,EAAE,2BAA2B,EAAE,sCAAsC,CAAC,CAAC;YAC9F,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,eAAe,EAAE,wBAAwB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,iCAAiC,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,UAAU,EAAE,EAAE,CAAC;QACjB,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAChJ,OAAO;IACT,CAAC;IACD,cAAc,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;IACtC,cAAc,CAAC,QAAQ,MAAM,CAAC,MAAM,aAAa,SAAS,GAAG,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;IACvB,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,EAAE,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5C,cAAc,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAChJ,CAAC;AACH,CAAC"}
package/dist/index.js CHANGED
@@ -70,7 +70,7 @@ Commands:
70
70
  domains verify <domain> --site <site> Check status / show next steps
71
71
  domains list --site <site> List custom domains for a site
72
72
  domains rm <domain> --site <site> Disable a custom domain
73
- prompts get <name> Print the AI guide (name: context | cli | sitecard | inspector | migrate)
73
+ prompts get <name> Print the AI guide (name: context | cli | build | sitecard | inspector | migrate)
74
74
  editlog list <site> List recent edit history for a site
75
75
  editlog show <site> <id> Show details of a specific edit
76
76
  editlog restore <site> <id> [--out <file>]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@42ws/cli",
3
- "version": "0.0.45",
3
+ "version": "0.0.47",
4
4
  "description": "Publish static sites in one command",
5
5
  "publishConfig": {
6
6
  "access": "public"