@einja/dev-cli 0.1.32 → 0.1.33
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":"project-selector.d.ts","sourceRoot":"","sources":["../../../../src/commands/task-loop/lib/project-selector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"project-selector.d.ts","sourceRoot":"","sources":["../../../../src/commands/task-loop/lib/project-selector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAiEhE;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,gBAAgB,EAC5B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAqDjB"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
7
7
|
import { basename, join } from "node:path";
|
|
8
|
-
import
|
|
8
|
+
import inquirer from "inquirer";
|
|
9
9
|
import { VibeKanbanRestClient } from "./vibe-kanban-rest-client.js";
|
|
10
10
|
/** 設定ファイル名 */
|
|
11
11
|
const CONFIG_FILE_NAME = ".vibe-kanban.json";
|
|
@@ -39,16 +39,6 @@ function saveConfig(projectId) {
|
|
|
39
39
|
const config = { project_id: projectId };
|
|
40
40
|
writeFileSync(configPath, `${JSON.stringify(config, null, 2)}\n`);
|
|
41
41
|
}
|
|
42
|
-
/**
|
|
43
|
-
* readline でユーザー入力を取得
|
|
44
|
-
*/
|
|
45
|
-
function askQuestion(rl, question) {
|
|
46
|
-
return new Promise((resolve) => {
|
|
47
|
-
rl.question(question, (answer) => {
|
|
48
|
-
resolve(answer.trim());
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
42
|
/**
|
|
53
43
|
* プロジェクト作成ガイダンスを表示
|
|
54
44
|
*/
|
|
@@ -100,16 +90,7 @@ export async function selectProject(vibeKanban, issueNumber) {
|
|
|
100
90
|
}
|
|
101
91
|
else {
|
|
102
92
|
// インタラクティブ選択
|
|
103
|
-
|
|
104
|
-
input: process.stdin,
|
|
105
|
-
output: process.stdout,
|
|
106
|
-
});
|
|
107
|
-
try {
|
|
108
|
-
selectedOrganizationId = await interactiveSelectOrganization(rl, organizations);
|
|
109
|
-
}
|
|
110
|
-
finally {
|
|
111
|
-
rl.close();
|
|
112
|
-
}
|
|
93
|
+
selectedOrganizationId = await interactiveSelectOrganization(organizations);
|
|
113
94
|
}
|
|
114
95
|
// 3. プロジェクト一覧を取得
|
|
115
96
|
let projects;
|
|
@@ -133,78 +114,56 @@ export async function selectProject(vibeKanban, issueNumber) {
|
|
|
133
114
|
console.log(" プロジェクトを再選択してください\n");
|
|
134
115
|
}
|
|
135
116
|
// 5. インタラクティブ選択
|
|
136
|
-
|
|
137
|
-
input: process.stdin,
|
|
138
|
-
output: process.stdout,
|
|
139
|
-
});
|
|
140
|
-
try {
|
|
141
|
-
const projectId = await interactiveSelectProject(rl, projects, issueNumber);
|
|
142
|
-
return projectId;
|
|
143
|
-
}
|
|
144
|
-
finally {
|
|
145
|
-
rl.close();
|
|
146
|
-
}
|
|
117
|
+
return await interactiveSelectProject(projects, issueNumber);
|
|
147
118
|
}
|
|
148
119
|
/**
|
|
149
120
|
* インタラクティブに組織を選択
|
|
150
121
|
*/
|
|
151
|
-
async function interactiveSelectOrganization(
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
const selected = organizations[num - 1];
|
|
167
|
-
console.log(`\n✅ 組織「${selected.name}」を選択しました\n`);
|
|
168
|
-
return selected.id;
|
|
169
|
-
}
|
|
122
|
+
async function interactiveSelectOrganization(organizations) {
|
|
123
|
+
const { orgId } = await inquirer.prompt([
|
|
124
|
+
{
|
|
125
|
+
type: "list",
|
|
126
|
+
name: "orgId",
|
|
127
|
+
message: "📦 Vibe-Kanban 組織を選択してください:",
|
|
128
|
+
choices: organizations.map((org) => ({
|
|
129
|
+
name: org.name,
|
|
130
|
+
value: org.id,
|
|
131
|
+
})),
|
|
132
|
+
},
|
|
133
|
+
]);
|
|
134
|
+
const selected = organizations.find((o) => o.id === orgId);
|
|
135
|
+
console.log(`\n✅ 組織「${selected === null || selected === void 0 ? void 0 : selected.name}」を選択しました\n`);
|
|
136
|
+
return orgId;
|
|
170
137
|
}
|
|
171
138
|
/**
|
|
172
139
|
* インタラクティブにプロジェクトを選択
|
|
173
140
|
*/
|
|
174
|
-
async function interactiveSelectProject(
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
saveConfig(selected.id);
|
|
196
|
-
console.log("\n✅ .vibe-kanban.json を作成しました");
|
|
197
|
-
console.log(" 次回から自動的にこのプロジェクトが使用されます\n");
|
|
198
|
-
return selected.id;
|
|
199
|
-
}
|
|
200
|
-
// 新規プロジェクト作成
|
|
201
|
-
return await createNewProject(rl, issueNumber);
|
|
202
|
-
}
|
|
141
|
+
async function interactiveSelectProject(projects, issueNumber) {
|
|
142
|
+
const NEW_PROJECT_VALUE = "__new__";
|
|
143
|
+
const { projectId } = await inquirer.prompt([
|
|
144
|
+
{
|
|
145
|
+
type: "list",
|
|
146
|
+
name: "projectId",
|
|
147
|
+
message: "📦 Vibe-Kanban プロジェクトを選択してください:",
|
|
148
|
+
choices: [
|
|
149
|
+
...projects.map((p) => ({ name: p.name, value: p.id })),
|
|
150
|
+
new inquirer.Separator("─────────────────"),
|
|
151
|
+
{ name: "新しいプロジェクトを作成", value: NEW_PROJECT_VALUE },
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
]);
|
|
155
|
+
if (projectId === NEW_PROJECT_VALUE) {
|
|
156
|
+
return await createNewProject(issueNumber);
|
|
157
|
+
}
|
|
158
|
+
saveConfig(projectId);
|
|
159
|
+
console.log("\n✅ .vibe-kanban.json を作成しました");
|
|
160
|
+
console.log(" 次回から自動的にこのプロジェクトが使用されます\n");
|
|
161
|
+
return projectId;
|
|
203
162
|
}
|
|
204
163
|
/**
|
|
205
164
|
* 新規プロジェクトを作成
|
|
206
165
|
*/
|
|
207
|
-
async function createNewProject(
|
|
166
|
+
async function createNewProject(issueNumber) {
|
|
208
167
|
console.log("\n📝 新しいプロジェクトを作成します\n");
|
|
209
168
|
// ポート発見
|
|
210
169
|
const port = VibeKanbanRestClient.discoverPort();
|
|
@@ -222,8 +181,14 @@ async function createNewProject(rl, issueNumber) {
|
|
|
222
181
|
}
|
|
223
182
|
// プロジェクト名を入力
|
|
224
183
|
const defaultName = basename(process.cwd());
|
|
225
|
-
const
|
|
226
|
-
|
|
184
|
+
const { projectName } = await inquirer.prompt([
|
|
185
|
+
{
|
|
186
|
+
type: "input",
|
|
187
|
+
name: "projectName",
|
|
188
|
+
message: "📝 プロジェクト名を入力:",
|
|
189
|
+
default: defaultName,
|
|
190
|
+
},
|
|
191
|
+
]);
|
|
227
192
|
// プロジェクト作成
|
|
228
193
|
try {
|
|
229
194
|
const repoPath = process.cwd();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-selector.js","sourceRoot":"","sources":["../../../../src/commands/task-loop/lib/project-selector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"project-selector.js","sourceRoot":"","sources":["../../../../src/commands/task-loop/lib/project-selector.ts"],"names":[],"mappings":"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"}
|