@xrift/cli 0.12.4 → 0.14.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/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +5 -5
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/create.js +33 -33
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/login.js +2 -2
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.js +2 -2
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/upload.d.ts.map +1 -1
- package/dist/commands/upload.js +3 -3
- package/dist/commands/upload.js.map +1 -1
- package/dist/commands/whoami.js +2 -2
- package/dist/commands/whoami.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/__tests__/project-config.test.js +4 -4
- package/dist/lib/__tests__/project-config.test.js.map +1 -1
- package/dist/lib/api.js +5 -5
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/auth.js +31 -31
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/check.js +13 -13
- package/dist/lib/check.js.map +1 -1
- package/dist/lib/config.js +2 -2
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/project-config.js +5 -5
- package/dist/lib/project-config.js.map +1 -1
- package/dist/lib/template.js +10 -10
- package/dist/lib/template.js.map +1 -1
- package/dist/lib/upload.js +62 -62
- package/dist/lib/upload.js.map +1 -1
- package/dist/lib/version-check.js +4 -4
- package/dist/lib/version-check.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/auth.js
CHANGED
|
@@ -20,9 +20,9 @@ export async function login() {
|
|
|
20
20
|
const state = generateState();
|
|
21
21
|
const callbackUrl = `http://localhost:${CALLBACK_PORT}${CALLBACK_PATH}`;
|
|
22
22
|
const loginUrl = `${FRONTEND_URL}${AUTH_LOGIN_PATH}?callback=${encodeURIComponent(callbackUrl)}&state=${state}`;
|
|
23
|
-
console.log(chalk.blue('
|
|
23
|
+
console.log(chalk.blue('Authenticating via browser...'));
|
|
24
24
|
// Callback serverを起動
|
|
25
|
-
const spinner = ora({ text: '
|
|
25
|
+
const spinner = ora({ text: 'Waiting for authentication...', isEnabled: false });
|
|
26
26
|
return new Promise((resolve, reject) => {
|
|
27
27
|
let timeoutId;
|
|
28
28
|
const server = http.createServer(async (req, res) => {
|
|
@@ -37,10 +37,10 @@ export async function login() {
|
|
|
37
37
|
const returnedState = url.searchParams.get('state');
|
|
38
38
|
// CSRF対策: stateパラメータを検証
|
|
39
39
|
if (returnedState !== state) {
|
|
40
|
-
throw new Error('
|
|
40
|
+
throw new Error('Invalid state parameter');
|
|
41
41
|
}
|
|
42
42
|
if (!code) {
|
|
43
|
-
throw new Error('
|
|
43
|
+
throw new Error('Failed to retrieve authentication code');
|
|
44
44
|
}
|
|
45
45
|
// コードをトークンと交換
|
|
46
46
|
const { token, user } = await exchangeCodeForToken(code);
|
|
@@ -53,7 +53,7 @@ export async function login() {
|
|
|
53
53
|
<html>
|
|
54
54
|
<head>
|
|
55
55
|
<meta charset="utf-8">
|
|
56
|
-
<title>XRift CLI -
|
|
56
|
+
<title>XRift CLI - Login Successful</title>
|
|
57
57
|
<style>
|
|
58
58
|
body {
|
|
59
59
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
@@ -77,16 +77,16 @@ export async function login() {
|
|
|
77
77
|
</head>
|
|
78
78
|
<body>
|
|
79
79
|
<div class="container">
|
|
80
|
-
<h1>✅
|
|
81
|
-
<p>XRift CLI
|
|
82
|
-
<p
|
|
80
|
+
<h1>✅ Login Successful</h1>
|
|
81
|
+
<p>You have successfully logged in to XRift CLI!</p>
|
|
82
|
+
<p>You can close this window and return to your terminal.</p>
|
|
83
83
|
</div>
|
|
84
84
|
</body>
|
|
85
85
|
</html>
|
|
86
86
|
`);
|
|
87
|
-
spinner.succeed(chalk.green('✅
|
|
87
|
+
spinner.succeed(chalk.green('✅ Successfully logged in'));
|
|
88
88
|
if (user?.displayName) {
|
|
89
|
-
logVerbose(
|
|
89
|
+
logVerbose(`Logged in as: ${user.displayName}`);
|
|
90
90
|
}
|
|
91
91
|
// タイムアウトをクリア
|
|
92
92
|
clearTimeout(timeoutId);
|
|
@@ -97,7 +97,7 @@ export async function login() {
|
|
|
97
97
|
process.exit(0);
|
|
98
98
|
}
|
|
99
99
|
catch (error) {
|
|
100
|
-
spinner.fail(chalk.red('❌
|
|
100
|
+
spinner.fail(chalk.red('❌ Login failed'));
|
|
101
101
|
if (error instanceof Error) {
|
|
102
102
|
console.error(chalk.red(error.message));
|
|
103
103
|
}
|
|
@@ -108,7 +108,7 @@ export async function login() {
|
|
|
108
108
|
<html>
|
|
109
109
|
<head>
|
|
110
110
|
<meta charset="utf-8">
|
|
111
|
-
<title>XRift CLI -
|
|
111
|
+
<title>XRift CLI - Login Failed</title>
|
|
112
112
|
<style>
|
|
113
113
|
body {
|
|
114
114
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
@@ -132,9 +132,9 @@ export async function login() {
|
|
|
132
132
|
</head>
|
|
133
133
|
<body>
|
|
134
134
|
<div class="container">
|
|
135
|
-
<h1>❌
|
|
136
|
-
<p
|
|
137
|
-
<p
|
|
135
|
+
<h1>❌ Login Failed</h1>
|
|
136
|
+
<p>Authentication failed.</p>
|
|
137
|
+
<p>Please return to your terminal and try again.</p>
|
|
138
138
|
</div>
|
|
139
139
|
</body>
|
|
140
140
|
</html>
|
|
@@ -151,18 +151,18 @@ export async function login() {
|
|
|
151
151
|
server.listen(CALLBACK_PORT, () => {
|
|
152
152
|
// ブラウザを開く
|
|
153
153
|
open(loginUrl).catch(() => {
|
|
154
|
-
spinner.warn('
|
|
155
|
-
console.log(chalk.yellow('\
|
|
154
|
+
spinner.warn('Could not open browser automatically');
|
|
155
|
+
console.log(chalk.yellow('\nPlease open the following URL in your browser:'));
|
|
156
156
|
console.log(chalk.blue(loginUrl));
|
|
157
157
|
});
|
|
158
158
|
});
|
|
159
159
|
// タイムアウト設定(5分)
|
|
160
160
|
timeoutId = setTimeout(() => {
|
|
161
|
-
spinner.fail(chalk.red('
|
|
161
|
+
spinner.fail(chalk.red('Authentication timed out'));
|
|
162
162
|
server.close(() => {
|
|
163
163
|
// サーバーを閉じたらすぐに終了
|
|
164
164
|
setTimeout(() => process.exit(1), 100);
|
|
165
|
-
reject(new Error('
|
|
165
|
+
reject(new Error('Authentication timed out'));
|
|
166
166
|
});
|
|
167
167
|
}, 5 * 60 * 1000);
|
|
168
168
|
});
|
|
@@ -173,11 +173,11 @@ export async function login() {
|
|
|
173
173
|
export async function logout() {
|
|
174
174
|
const token = await getToken();
|
|
175
175
|
if (!token) {
|
|
176
|
-
console.log(chalk.yellow('
|
|
176
|
+
console.log(chalk.yellow('Not logged in'));
|
|
177
177
|
return;
|
|
178
178
|
}
|
|
179
179
|
await deleteAuthConfig();
|
|
180
|
-
console.log(chalk.green('✅
|
|
180
|
+
console.log(chalk.green('✅ Logged out successfully'));
|
|
181
181
|
}
|
|
182
182
|
/**
|
|
183
183
|
* 現在のユーザー情報を表示
|
|
@@ -185,31 +185,31 @@ export async function logout() {
|
|
|
185
185
|
export async function whoami() {
|
|
186
186
|
const token = await getToken();
|
|
187
187
|
if (!token) {
|
|
188
|
-
console.log(chalk.yellow('
|
|
189
|
-
logVerbose('`xrift login`
|
|
188
|
+
console.log(chalk.yellow('Not logged in'));
|
|
189
|
+
logVerbose('Run `xrift login` to log in');
|
|
190
190
|
return;
|
|
191
191
|
}
|
|
192
|
-
const spinner = ora('
|
|
192
|
+
const spinner = ora('Fetching user info...').start();
|
|
193
193
|
try {
|
|
194
194
|
const verification = await verifyToken(token);
|
|
195
195
|
if (!verification.valid) {
|
|
196
|
-
spinner.fail(chalk.red('
|
|
197
|
-
logVerbose('
|
|
196
|
+
spinner.fail(chalk.red('Token is invalid'));
|
|
197
|
+
logVerbose('Please log in again: `xrift login`');
|
|
198
198
|
return;
|
|
199
199
|
}
|
|
200
|
-
spinner.succeed(chalk.green('
|
|
200
|
+
spinner.succeed(chalk.green('Logged in'));
|
|
201
201
|
if (verification.user?.displayName) {
|
|
202
|
-
console.log(chalk.blue('
|
|
202
|
+
console.log(chalk.blue('Display Name:'), verification.user.displayName);
|
|
203
203
|
}
|
|
204
204
|
if (verification.user?.email) {
|
|
205
|
-
console.log(chalk.blue('
|
|
205
|
+
console.log(chalk.blue('Email:'), verification.user.email);
|
|
206
206
|
}
|
|
207
207
|
if (verification.user?.id) {
|
|
208
|
-
console.log(chalk.blue('
|
|
208
|
+
console.log(chalk.blue('User ID:'), verification.user.id);
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
211
|
catch (error) {
|
|
212
|
-
spinner.fail(chalk.red('
|
|
212
|
+
spinner.fail(chalk.red('Failed to fetch user info'));
|
|
213
213
|
if (error instanceof Error) {
|
|
214
214
|
console.error(chalk.red(error.message));
|
|
215
215
|
}
|
package/dist/lib/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,aAAa,EACb,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,SAAS,aAAa;IACpB,OAAO,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAG,oBAAoB,aAAa,GAAG,aAAa,EAAE,CAAC;IACxE,MAAM,QAAQ,GAAG,GAAG,YAAY,GAAG,eAAe,aAAa,kBAAkB,CAC/E,WAAW,CACZ,UAAU,KAAK,EAAE,CAAC;IAEnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/check.js
CHANGED
|
@@ -10,39 +10,39 @@ import { loadProjectConfig, validateDistDir, scanDirectory, } from './project-co
|
|
|
10
10
|
*/
|
|
11
11
|
export async function checkWorld(options = {}, cwd = process.cwd()) {
|
|
12
12
|
if (!options.json) {
|
|
13
|
-
console.log(chalk.blue('🔒
|
|
13
|
+
console.log(chalk.blue('🔒 Starting security check\n'));
|
|
14
14
|
}
|
|
15
15
|
try {
|
|
16
16
|
// 1. 設定読み込み
|
|
17
|
-
const spinner = !options.json ? ora('
|
|
17
|
+
const spinner = !options.json ? ora('Loading config...').start() : null;
|
|
18
18
|
const config = await loadProjectConfig(cwd);
|
|
19
19
|
const distDir = path.resolve(cwd, config.world.distDir);
|
|
20
|
-
spinner?.succeed(chalk.green(
|
|
20
|
+
spinner?.succeed(chalk.green(`Config loaded: distDir=${config.world.distDir}`));
|
|
21
21
|
// 2. ビルドコマンド実行
|
|
22
22
|
if (options.build && config.world.buildCommand) {
|
|
23
23
|
if (!options.json) {
|
|
24
|
-
console.log(chalk.blue(`\n🔨
|
|
24
|
+
console.log(chalk.blue(`\n🔨 Running build command: ${config.world.buildCommand}\n`));
|
|
25
25
|
}
|
|
26
26
|
const { execSync } = await import('node:child_process');
|
|
27
27
|
execSync(config.world.buildCommand, { cwd, stdio: options.json ? 'ignore' : 'inherit' });
|
|
28
28
|
if (!options.json) {
|
|
29
|
-
console.log(chalk.green('\n✓
|
|
29
|
+
console.log(chalk.green('\n✓ Build completed\n'));
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
// 3. distディレクトリ検証
|
|
33
33
|
await validateDistDir(distDir);
|
|
34
34
|
// 4. JSファイルをスキャン
|
|
35
|
-
const scanSpinner = !options.json ? ora('
|
|
35
|
+
const scanSpinner = !options.json ? ora('Scanning files...').start() : null;
|
|
36
36
|
const allFiles = await scanDirectory(distDir, config.world.ignore);
|
|
37
37
|
const jsFiles = allFiles.filter((f) => /\.(js|mjs)$/.test(f));
|
|
38
38
|
if (jsFiles.length === 0) {
|
|
39
|
-
scanSpinner?.succeed(chalk.yellow('
|
|
39
|
+
scanSpinner?.succeed(chalk.yellow('No JS files to check'));
|
|
40
40
|
if (options.json) {
|
|
41
41
|
console.log(JSON.stringify({ results: [], hasReject: false, hasReview: false }));
|
|
42
42
|
}
|
|
43
43
|
return 0;
|
|
44
44
|
}
|
|
45
|
-
scanSpinner?.succeed(chalk.green(
|
|
45
|
+
scanSpinner?.succeed(chalk.green(`Found ${jsFiles.length} JS files`));
|
|
46
46
|
// 5. セキュリティチェック実行
|
|
47
47
|
const checkResult = await runSecurityCheck(jsFiles, distDir);
|
|
48
48
|
// 6. 結果表示
|
|
@@ -124,7 +124,7 @@ function printResults(checkResult) {
|
|
|
124
124
|
for (const result of issueResults) {
|
|
125
125
|
const verdictColor = result.verdict === 'REVIEW' ? chalk.yellow : chalk.red;
|
|
126
126
|
console.log(chalk.gray(`━━━ ${result.file} ${'━'.repeat(Math.max(0, 40 - result.file.length))}`));
|
|
127
|
-
console.log(`
|
|
127
|
+
console.log(` Score: ${result.score} Verdict: ${verdictColor(result.verdict)}`);
|
|
128
128
|
for (const v of result.violations.critical) {
|
|
129
129
|
const loc = v.location ? ` (line ${v.location.line})` : '';
|
|
130
130
|
console.log(chalk.red(` ✗ ${v.message}${loc}`));
|
|
@@ -142,7 +142,7 @@ function printResults(checkResult) {
|
|
|
142
142
|
const reviewCount = checkResult.results.filter((r) => r.verdict === 'REVIEW').length;
|
|
143
143
|
const rejectCount = checkResult.results.filter((r) => r.verdict === 'REJECT').length;
|
|
144
144
|
console.log(chalk.gray('━'.repeat(40)));
|
|
145
|
-
let summary =
|
|
145
|
+
let summary = `Results: ${total} files`;
|
|
146
146
|
if (approveCount > 0)
|
|
147
147
|
summary += ` ${chalk.green(`APPROVE: ${approveCount}`)}`;
|
|
148
148
|
if (reviewCount > 0)
|
|
@@ -151,13 +151,13 @@ function printResults(checkResult) {
|
|
|
151
151
|
summary += ` ${chalk.red(`REJECT: ${rejectCount}`)}`;
|
|
152
152
|
console.log(summary);
|
|
153
153
|
if (checkResult.hasReject) {
|
|
154
|
-
console.log(chalk.red('\n❌
|
|
154
|
+
console.log(chalk.red('\n❌ Security check failed'));
|
|
155
155
|
}
|
|
156
156
|
else if (checkResult.hasReview) {
|
|
157
|
-
console.log(chalk.yellow('\n⚠
|
|
157
|
+
console.log(chalk.yellow('\n⚠ Some items require review'));
|
|
158
158
|
}
|
|
159
159
|
else {
|
|
160
|
-
console.log(chalk.green('\n✅
|
|
160
|
+
console.log(chalk.green('\n✅ Security check passed'));
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
/**
|
package/dist/lib/check.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/lib/check.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,aAAa,GACd,MAAM,qBAAqB,CAAC;AAwB7B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAA6B,EAAE,EAC/B,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/lib/check.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.js
CHANGED
|
@@ -8,7 +8,7 @@ export async function ensureConfigDir() {
|
|
|
8
8
|
await fs.mkdir(CONFIG_DIR, { recursive: true });
|
|
9
9
|
}
|
|
10
10
|
catch (error) {
|
|
11
|
-
throw new Error(
|
|
11
|
+
throw new Error(`Failed to create config directory: ${CONFIG_DIR}`);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
@@ -20,7 +20,7 @@ export async function saveAuthConfig(config) {
|
|
|
20
20
|
await fs.writeFile(AUTH_CONFIG_FILE, JSON.stringify(config, null, 2), 'utf-8');
|
|
21
21
|
}
|
|
22
22
|
catch (error) {
|
|
23
|
-
throw new Error(
|
|
23
|
+
throw new Error(`Failed to save auth config: ${AUTH_CONFIG_FILE}`);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
/**
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG9D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG9D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,UAAU,EAAE,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAkB;IACrD,MAAM,eAAe,EAAE,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,gBAAgB,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAe,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,uBAAuB;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB;IACpB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;IACtC,OAAO,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAkB;IAC7C,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC,CAAC,wBAAwB;IAE5D,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -12,14 +12,14 @@ export async function loadProjectConfig(cwd = process.cwd()) {
|
|
|
12
12
|
const config = JSON.parse(data);
|
|
13
13
|
// バリデーション
|
|
14
14
|
if (!config.world?.distDir) {
|
|
15
|
-
throw new Error('
|
|
15
|
+
throw new Error('world.distDir is not configured in xrift.json');
|
|
16
16
|
}
|
|
17
17
|
return config;
|
|
18
18
|
}
|
|
19
19
|
catch (error) {
|
|
20
20
|
if (error.code === 'ENOENT') {
|
|
21
|
-
throw new Error(
|
|
22
|
-
'
|
|
21
|
+
throw new Error(`Project config file not found: ${PROJECT_CONFIG_FILE}\n` +
|
|
22
|
+
'Please create xrift.json in the project root.');
|
|
23
23
|
}
|
|
24
24
|
throw error;
|
|
25
25
|
}
|
|
@@ -91,12 +91,12 @@ export async function validateDistDir(distDir) {
|
|
|
91
91
|
try {
|
|
92
92
|
const stat = await fs.stat(distDir);
|
|
93
93
|
if (!stat.isDirectory()) {
|
|
94
|
-
throw new Error(`${distDir}
|
|
94
|
+
throw new Error(`${distDir} is not a directory`);
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
catch (error) {
|
|
98
98
|
if (error.code === 'ENOENT') {
|
|
99
|
-
throw new Error(`
|
|
99
|
+
throw new Error(`Dist directory not found: ${distDir}`);
|
|
100
100
|
}
|
|
101
101
|
throw error;
|
|
102
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/lib/project-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGxF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,CAAC;QAE/C,UAAU;QACV,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/lib/project-config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/template.js
CHANGED
|
@@ -20,16 +20,16 @@ async function pathExists(path) {
|
|
|
20
20
|
* GitHubからテンプレートをダウンロードする
|
|
21
21
|
*/
|
|
22
22
|
export async function downloadTemplate(template, destination) {
|
|
23
|
-
const spinner = ora('
|
|
23
|
+
const spinner = ora('Downloading template...').start();
|
|
24
24
|
try {
|
|
25
25
|
await gigetDownload(`github:${template}`, {
|
|
26
26
|
dir: destination,
|
|
27
27
|
force: true, // 既存ディレクトリへの展開を許可
|
|
28
28
|
});
|
|
29
|
-
spinner.succeed('
|
|
29
|
+
spinner.succeed('Template downloaded');
|
|
30
30
|
}
|
|
31
31
|
catch (error) {
|
|
32
|
-
spinner.fail('
|
|
32
|
+
spinner.fail('Failed to download template');
|
|
33
33
|
throw error;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -62,7 +62,7 @@ async function replaceInFile(filePath, replacements) {
|
|
|
62
62
|
* プロジェクトファイルをカスタマイズする
|
|
63
63
|
*/
|
|
64
64
|
export async function customizeProject(projectName, projectPath) {
|
|
65
|
-
const spinner = ora('
|
|
65
|
+
const spinner = ora('Customizing project...').start();
|
|
66
66
|
try {
|
|
67
67
|
const snakeCaseName = toSnakeCase(projectName);
|
|
68
68
|
// package.json を更新
|
|
@@ -82,10 +82,10 @@ export async function customizeProject(projectName, projectPath) {
|
|
|
82
82
|
{ from: '<title>XRift Test World</title>', to: `<title>${projectName}</title>` },
|
|
83
83
|
{ from: '<title>XRift World Template</title>', to: `<title>${projectName}</title>` },
|
|
84
84
|
]);
|
|
85
|
-
spinner.succeed('
|
|
85
|
+
spinner.succeed('Project customized');
|
|
86
86
|
}
|
|
87
87
|
catch (error) {
|
|
88
|
-
spinner.fail('
|
|
88
|
+
spinner.fail('Failed to customize project');
|
|
89
89
|
throw error;
|
|
90
90
|
}
|
|
91
91
|
}
|
|
@@ -93,7 +93,7 @@ export async function customizeProject(projectName, projectPath) {
|
|
|
93
93
|
* 依存関係をインストールする
|
|
94
94
|
*/
|
|
95
95
|
export async function installDependencies(projectPath) {
|
|
96
|
-
const spinner = ora('
|
|
96
|
+
const spinner = ora('Installing dependencies...').start();
|
|
97
97
|
return new Promise((resolve, reject) => {
|
|
98
98
|
const npm = spawn('npm', ['install'], {
|
|
99
99
|
cwd: projectPath,
|
|
@@ -102,16 +102,16 @@ export async function installDependencies(projectPath) {
|
|
|
102
102
|
});
|
|
103
103
|
npm.on('close', (code) => {
|
|
104
104
|
if (code === 0) {
|
|
105
|
-
spinner.succeed('
|
|
105
|
+
spinner.succeed('Dependencies installed');
|
|
106
106
|
resolve();
|
|
107
107
|
}
|
|
108
108
|
else {
|
|
109
|
-
spinner.fail('
|
|
109
|
+
spinner.fail('Failed to install dependencies');
|
|
110
110
|
reject(new Error(`npm install exited with code ${code}`));
|
|
111
111
|
}
|
|
112
112
|
});
|
|
113
113
|
npm.on('error', (error) => {
|
|
114
|
-
spinner.fail('
|
|
114
|
+
spinner.fail('Failed to install dependencies');
|
|
115
115
|
reject(error);
|
|
116
116
|
});
|
|
117
117
|
});
|
package/dist/lib/template.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/lib/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,aAAa,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,WAAmB;IAEnB,MAAM,OAAO,GAAG,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/lib/template.ts"],"names":[],"mappings":"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"}
|