@xrift/cli 0.2.0 → 0.4.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
@@ -13,10 +13,13 @@ XRift のワールドやアバターをコマンドラインからアップロ
13
13
  ## クイックスタート
14
14
 
15
15
  ```bash
16
- # 新規プロジェクトを作成
16
+ # 対話式モードで新規プロジェクトを作成(推奨)
17
+ npx @xrift/cli create
18
+
19
+ # または、コマンドラインで指定
17
20
  npx @xrift/cli create my-world
18
21
 
19
- # プロジェクトに移動
22
+ # プロジェクトに移動(新しいディレクトリに作成した場合)
20
23
  cd my-world
21
24
 
22
25
  # 開発サーバーを起動
@@ -48,24 +51,49 @@ npm install -g @xrift/cli
48
51
 
49
52
  テンプレートから新しいワールドプロジェクトを作成します。
50
53
 
54
+ #### 対話式モード(推奨)
55
+
56
+ 基本的に対話式で、省略されたオプションのみ質問します:
57
+
51
58
  ```bash
52
- # npx で実行(推奨)
59
+ # 全て対話式で選択
60
+ npx @xrift/cli create
61
+
62
+ # プロジェクト名だけ指定、残りは対話式
53
63
  npx @xrift/cli create my-world
54
64
 
55
- # またはグローバルインストール後
56
- xrift create my-world
65
+ # 場所も指定、テンプレートとインストールは対話式
66
+ xrift create my-world --here
67
+
68
+ # グローバルインストール後
69
+ xrift create
57
70
  ```
58
71
 
59
- オプション:
72
+ 対話式モードでは以下を選択できます:
73
+ - プロジェクト名(省略時)
74
+ - 作成場所(`--here` がない場合)
75
+ - テンプレート(`--template` がない場合)
76
+ - 依存関係のインストール有無(`--skip-install` がない場合)
77
+
78
+ #### 完全自動モード
79
+
80
+ 対話を無効にして、全てコマンドラインで指定することもできます:
60
81
 
61
82
  ```bash
62
- # カスタムテンプレートを使用
63
- xrift create my-world --template WebXR-JP/custom-template
83
+ # 対話なし(プロジェクト名は必須)
84
+ npx @xrift/cli create my-world -y
85
+ npx @xrift/cli create my-world --no-interactive
64
86
 
65
- # 依存関係のインストールをスキップ
66
- xrift create my-world --skip-install
87
+ # 全てのオプションを指定
88
+ xrift create my-world --here --template WebXR-JP/custom-template --skip-install -y
67
89
  ```
68
90
 
91
+ **オプション一覧:**
92
+ - `-y, --no-interactive` - 対話式を無効化(CI/スクリプト用)
93
+ - `--here` - カレントディレクトリに作成
94
+ - `-t, --template <repo>` - カスタムテンプレート
95
+ - `--skip-install` - npm install をスキップ
96
+
69
97
  作成されたプロジェクトには以下が含まれます:
70
98
  - React Three Fiber + Three.js のセットアップ
71
99
  - Rapier 物理エンジンの統合
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=create.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/create.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,105 @@
1
+ import { describe, it, expect } from '@jest/globals';
2
+ import { isValidProjectName, needsInteraction, } from '../../lib/create-helpers.js';
3
+ describe('create command', () => {
4
+ describe('isValidProjectName', () => {
5
+ it('有効なプロジェクト名の場合は true を返す', () => {
6
+ expect(isValidProjectName('my-world')).toBe(true);
7
+ expect(isValidProjectName('test-project-123')).toBe(true);
8
+ expect(isValidProjectName('simple')).toBe(true);
9
+ expect(isValidProjectName('a-b-c-d-e-f')).toBe(true);
10
+ expect(isValidProjectName('world-2024')).toBe(true);
11
+ });
12
+ it('大文字が含まれる場合は false を返す', () => {
13
+ expect(isValidProjectName('MyWorld')).toBe(false);
14
+ expect(isValidProjectName('Test')).toBe(false);
15
+ });
16
+ it('アンダースコアが含まれる場合は false を返す', () => {
17
+ expect(isValidProjectName('my_world')).toBe(false);
18
+ expect(isValidProjectName('test_project')).toBe(false);
19
+ });
20
+ it('スペースが含まれる場合は false を返す', () => {
21
+ expect(isValidProjectName('my world')).toBe(false);
22
+ expect(isValidProjectName('test project')).toBe(false);
23
+ });
24
+ it('特殊文字が含まれる場合は false を返す', () => {
25
+ expect(isValidProjectName('my@world')).toBe(false);
26
+ expect(isValidProjectName('test!project')).toBe(false);
27
+ expect(isValidProjectName('world.project')).toBe(false);
28
+ });
29
+ it('空文字の場合は false を返す', () => {
30
+ expect(isValidProjectName('')).toBe(false);
31
+ });
32
+ it('ハイフンのみの場合は true を返す', () => {
33
+ expect(isValidProjectName('-')).toBe(true);
34
+ expect(isValidProjectName('---')).toBe(true);
35
+ });
36
+ });
37
+ describe('needsInteraction', () => {
38
+ it('全てのオプションが指定されている場合は false を返す', () => {
39
+ const options = {
40
+ here: true,
41
+ skipInstall: true,
42
+ template: 'custom/repo',
43
+ interactive: undefined,
44
+ };
45
+ expect(needsInteraction('my-project', options)).toBe(false);
46
+ });
47
+ it('プロジェクト名が未指定の場合は true を返す', () => {
48
+ const options = {
49
+ here: true,
50
+ skipInstall: true,
51
+ interactive: undefined,
52
+ };
53
+ expect(needsInteraction(undefined, options)).toBe(true);
54
+ });
55
+ it('here オプションが未指定の場合は true を返す', () => {
56
+ const options = {
57
+ skipInstall: true,
58
+ interactive: undefined,
59
+ };
60
+ expect(needsInteraction('my-project', options)).toBe(true);
61
+ });
62
+ it('skipInstall オプションが未指定の場合は true を返す', () => {
63
+ const options = {
64
+ here: true,
65
+ interactive: undefined,
66
+ };
67
+ expect(needsInteraction('my-project', options)).toBe(true);
68
+ });
69
+ it('interactive が false の場合は false を返す', () => {
70
+ const options = {
71
+ interactive: false,
72
+ };
73
+ expect(needsInteraction(undefined, options)).toBe(false);
74
+ });
75
+ it('複数のオプションが未指定の場合は true を返す', () => {
76
+ const options = {
77
+ interactive: undefined,
78
+ };
79
+ expect(needsInteraction(undefined, options)).toBe(true);
80
+ });
81
+ it('プロジェクト名とhereが指定され、skipInstallが未指定の場合は true を返す', () => {
82
+ const options = {
83
+ here: true,
84
+ interactive: undefined,
85
+ };
86
+ expect(needsInteraction('my-project', options)).toBe(true);
87
+ });
88
+ it('--no-interactive フラグがある場合、他のオプションに関わらず false を返す', () => {
89
+ const options = {
90
+ interactive: false,
91
+ };
92
+ expect(needsInteraction(undefined, options)).toBe(false);
93
+ });
94
+ it('全てのオプションが空でもinteractiveがfalseならfalseを返す', () => {
95
+ const options = {
96
+ here: undefined,
97
+ skipInstall: undefined,
98
+ template: undefined,
99
+ interactive: false,
100
+ };
101
+ expect(needsInteraction('my-project', options)).toBe(false);
102
+ });
103
+ });
104
+ });
105
+ //# sourceMappingURL=create.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/create.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GAEjB,MAAM,6BAA6B,CAAC;AAErC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACjC,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAChC,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAChC,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC3B,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC7B,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,OAAO,GAAkB;gBAC7B,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,aAAa;gBACvB,WAAW,EAAE,SAAS;aACvB,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,OAAO,GAAkB;gBAC7B,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,SAAS;aACvB,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,OAAO,GAAkB;gBAC7B,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,SAAS;aACvB,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,OAAO,GAAkB;gBAC7B,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,SAAS;aACvB,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,OAAO,GAAkB;gBAC7B,WAAW,EAAE,KAAK;aACnB,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,OAAO,GAAkB;gBAC7B,WAAW,EAAE,SAAS;aACvB,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,OAAO,GAAkB;gBAC7B,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,SAAS;aACvB,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,OAAO,GAAkB;gBAC7B,WAAW,EAAE,KAAK;aACnB,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,OAAO,GAAkB;gBAC7B,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,SAAS;gBACtB,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,KAAK;aACnB,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkDpC,eAAO,MAAM,aAAa,SAqFtB,CAAC"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqDpC,eAAO,MAAM,aAAa,SAqMtB,CAAC"}
@@ -2,6 +2,7 @@ import { Command } from 'commander';
2
2
  import { resolve } from 'path';
3
3
  import { access, constants, readdir } from 'fs';
4
4
  import chalk from 'chalk';
5
+ import prompts from 'prompts';
5
6
  import { downloadTemplate, customizeProject, installDependencies, } from '../lib/template.js';
6
7
  /**
7
8
  * ファイルまたはディレクトリが存在するかチェック
@@ -40,13 +41,106 @@ async function isDirectoryEmpty(path) {
40
41
  });
41
42
  }
42
43
  export const createCommand = new Command('create')
43
- .argument('<project-name>', 'プロジェクト名')
44
+ .argument('[project-name]', 'プロジェクト名(省略時は対話式)')
44
45
  .option('-t, --template <repository>', 'テンプレートリポジトリ(例: WebXR-JP/xrift-world-template)', 'WebXR-JP/xrift-test-world')
45
46
  .option('--skip-install', '依存関係のインストールをスキップ')
46
47
  .option('--here', 'カレントディレクトリに直接作成')
48
+ .option('-y, --no-interactive', '対話式モードを無効化')
47
49
  .description('新しいXRiftプロジェクトを作成')
48
50
  .action(async (projectName, options) => {
49
51
  try {
52
+ // --no-interactive の場合、プロジェクト名が必須
53
+ if (options.interactive === false && !projectName) {
54
+ console.error(chalk.red('\nエラー: --no-interactive を使用する場合はプロジェクト名が必要です'));
55
+ process.exit(1);
56
+ }
57
+ // 対話式モードが必要か判定
58
+ const needsInteraction = options.interactive !== false &&
59
+ (!projectName ||
60
+ options.here === undefined ||
61
+ options.skipInstall === undefined);
62
+ if (needsInteraction) {
63
+ console.log(chalk.cyan('\n✨ XRiftワールドを作成します\n'));
64
+ const questions = [];
65
+ // プロジェクト名が未指定の場合のみ質問
66
+ if (!projectName) {
67
+ questions.push({
68
+ type: 'text',
69
+ name: 'projectName',
70
+ message: 'プロジェクト名を入力してください',
71
+ validate: (value) => /^[a-z0-9-]+$/.test(value)
72
+ ? true
73
+ : '小文字の英数字とハイフンのみ使用できます',
74
+ });
75
+ }
76
+ // 作成場所が未指定の場合のみ質問
77
+ if (options.here === undefined) {
78
+ questions.push({
79
+ type: 'select',
80
+ name: 'location',
81
+ message: 'どこに作成しますか?',
82
+ choices: [
83
+ { title: '新しいディレクトリを作成', value: 'new' },
84
+ { title: 'カレントディレクトリに直接作成', value: 'here' },
85
+ ],
86
+ initial: 0,
87
+ });
88
+ }
89
+ // テンプレートがデフォルトの場合のみ質問
90
+ if (!options.template || options.template === 'WebXR-JP/xrift-test-world') {
91
+ questions.push({
92
+ type: 'select',
93
+ name: 'templateType',
94
+ message: 'テンプレートを選択してください',
95
+ choices: [
96
+ { title: 'デフォルト (WebXR-JP/xrift-test-world)', value: 'default' },
97
+ { title: 'カスタムテンプレート', value: 'custom' },
98
+ ],
99
+ initial: 0,
100
+ });
101
+ questions.push({
102
+ type: (prev) => (prev === 'custom' ? 'text' : null),
103
+ name: 'customTemplate',
104
+ message: 'GitHubリポジトリを入力してください (例: username/repo)',
105
+ validate: (value) => value && value.includes('/')
106
+ ? true
107
+ : '正しい形式で入力してください (username/repo)',
108
+ });
109
+ }
110
+ // インストール有無が未指定の場合のみ質問
111
+ if (options.skipInstall === undefined) {
112
+ questions.push({
113
+ type: 'confirm',
114
+ name: 'install',
115
+ message: '依存関係をインストールしますか?',
116
+ initial: true,
117
+ });
118
+ }
119
+ const response = await prompts(questions);
120
+ // ユーザーがキャンセルした場合
121
+ if (Object.keys(response).length === 0) {
122
+ console.log(chalk.yellow('\n❌ キャンセルされました'));
123
+ process.exit(0);
124
+ }
125
+ // 対話式モードの回答を変数に設定
126
+ if (response.projectName) {
127
+ projectName = response.projectName;
128
+ }
129
+ if (response.location !== undefined) {
130
+ options.here = response.location === 'here';
131
+ }
132
+ if (response.install !== undefined) {
133
+ options.skipInstall = !response.install;
134
+ }
135
+ if (response.templateType === 'custom') {
136
+ options.template = response.customTemplate;
137
+ }
138
+ }
139
+ // この時点で projectName は必ず定義されている
140
+ if (!projectName) {
141
+ console.error(chalk.red('\nエラー: プロジェクト名が指定されていません'));
142
+ process.exit(1);
143
+ }
50
144
  console.log(chalk.cyan(`\n✨ XRiftワールドを作成します...\n`));
51
145
  // プロジェクト名のバリデーション
52
146
  if (!/^[a-z0-9-]+$/.test(projectName)) {
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,8 @@ export declare const AUTH_CONFIG_FILE: string;
13
13
  export declare const PROJECT_CONFIG_FILE = "xrift.json";
14
14
  export declare const PROJECT_META_DIR = ".xrift";
15
15
  export declare const WORLD_META_FILE = "world.json";
16
- export declare const WORLD_CREATE_PATH = "/api/worlds";
17
- export declare const WORLD_UPDATE_PATH = "/api/worlds";
18
- export declare const WORLD_UPLOAD_URL_PATH = "/api/worlds";
16
+ export declare const WORLD_CREATE_PATH = "/api/public/v1/worlds";
17
+ export declare const WORLD_UPDATE_PATH = "/api/public/v1/worlds";
18
+ export declare const WORLD_UPLOAD_URL_PATH = "/api/public/v1/worlds";
19
+ export declare const WORLD_COMPLETE_PATH = "/api/public/v1/worlds";
19
20
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAGA;;GAEG;AAGH,eAAO,MAAM,YAAY,QAAuD,CAAC;AAGjF,eAAO,MAAM,YAAY,QAA4D,CAAC;AAGtF,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,gBAAgB,+BAA+B,CAAC;AAC7D,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,aAAa,cAAc,CAAC;AAGzC,eAAO,MAAM,UAAU,QAAoC,CAAC;AAC5D,eAAO,MAAM,gBAAgB,QAAuC,CAAC;AACrE,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAChD,eAAO,MAAM,gBAAgB,WAAW,CAAC;AACzC,eAAO,MAAM,eAAe,eAAe,CAAC;AAG5C,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,qBAAqB,gBAAgB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAGA;;GAEG;AAGH,eAAO,MAAM,YAAY,QAAuD,CAAC;AAGjF,eAAO,MAAM,YAAY,QAA4D,CAAC;AAGtF,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,gBAAgB,+BAA+B,CAAC;AAC7D,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,aAAa,cAAc,CAAC;AAGzC,eAAO,MAAM,UAAU,QAAoC,CAAC;AAC5D,eAAO,MAAM,gBAAgB,QAAuC,CAAC;AACrE,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAChD,eAAO,MAAM,gBAAgB,WAAW,CAAC;AACzC,eAAO,MAAM,eAAe,eAAe,CAAC;AAG5C,eAAO,MAAM,iBAAiB,0BAA0B,CAAC;AACzD,eAAO,MAAM,iBAAiB,0BAA0B,CAAC;AACzD,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAC7D,eAAO,MAAM,mBAAmB,0BAA0B,CAAC"}
@@ -20,7 +20,8 @@ export const PROJECT_CONFIG_FILE = 'xrift.json';
20
20
  export const PROJECT_META_DIR = '.xrift';
21
21
  export const WORLD_META_FILE = 'world.json';
22
22
  // World API endpoints
23
- export const WORLD_CREATE_PATH = '/api/worlds';
24
- export const WORLD_UPDATE_PATH = '/api/worlds';
25
- export const WORLD_UPLOAD_URL_PATH = '/api/worlds';
23
+ export const WORLD_CREATE_PATH = '/api/public/v1/worlds';
24
+ export const WORLD_UPDATE_PATH = '/api/public/v1/worlds';
25
+ export const WORLD_UPLOAD_URL_PATH = '/api/public/v1/worlds';
26
+ export const WORLD_COMPLETE_PATH = '/api/public/v1/worlds'; // :id/complete をつけて使用
26
27
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB;;GAEG;AAEH,eAAe;AACf,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,uBAAuB,CAAC;AAEjF,4CAA4C;AAC5C,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,uBAAuB,CAAC;AAEtF,iBAAiB;AACjB,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAC7D,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,CAAC,+BAA+B;AAC9F,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAClC,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AAEzC,oBAAoB;AACpB,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAE5C,sBAAsB;AACtB,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAC/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAC/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB;;GAEG;AAEH,eAAe;AACf,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,uBAAuB,CAAC;AAEjF,4CAA4C;AAC5C,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,uBAAuB,CAAC;AAEtF,iBAAiB;AACjB,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAC7D,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,CAAC,+BAA+B;AAC9F,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAClC,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AAEzC,oBAAoB;AACpB,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAE5C,sBAAsB;AACtB,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AACzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AACzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,CAAC,sBAAsB"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * create コマンドのヘルパー関数
3
+ * テスト可能にするため、依存関係のない純粋な関数として分離
4
+ */
5
+ export interface CreateOptions {
6
+ template?: string;
7
+ skipInstall?: boolean;
8
+ here?: boolean;
9
+ interactive?: boolean;
10
+ y?: boolean;
11
+ }
12
+ /**
13
+ * プロジェクト名が有効かバリデーション
14
+ */
15
+ export declare function isValidProjectName(name: string): boolean;
16
+ /**
17
+ * 対話式モードが必要か判定
18
+ */
19
+ export declare function needsInteraction(projectName: string | undefined, options: CreateOptions): boolean;
20
+ //# sourceMappingURL=create-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/create-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,CAAC,CAAC,EAAE,OAAO,CAAC;CACb;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,OAAO,EAAE,aAAa,GACrB,OAAO,CAOT"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * create コマンドのヘルパー関数
3
+ * テスト可能にするため、依存関係のない純粋な関数として分離
4
+ */
5
+ /**
6
+ * プロジェクト名が有効かバリデーション
7
+ */
8
+ export function isValidProjectName(name) {
9
+ return /^[a-z0-9-]+$/.test(name);
10
+ }
11
+ /**
12
+ * 対話式モードが必要か判定
13
+ */
14
+ export function needsInteraction(projectName, options) {
15
+ return (options.interactive !== false &&
16
+ (!projectName ||
17
+ options.here === undefined ||
18
+ options.skipInstall === undefined));
19
+ }
20
+ //# sourceMappingURL=create-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-helpers.js","sourceRoot":"","sources":["../../src/lib/create-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAA+B,EAC/B,OAAsB;IAEtB,OAAO,CACL,OAAO,CAAC,WAAW,KAAK,KAAK;QAC7B,CAAC,CAAC,WAAW;YACX,OAAO,CAAC,IAAI,KAAK,SAAS;YAC1B,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CACrC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/lib/upload.ts"],"names":[],"mappings":"AAiBA;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6J5E"}
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/lib/upload.ts"],"names":[],"mappings":"AAkBA;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiL5E"}
@@ -1,12 +1,13 @@
1
1
  import path from 'node:path';
2
2
  import fs from 'node:fs/promises';
3
+ import crypto from 'node:crypto';
3
4
  import chalk from 'chalk';
4
5
  import ora from 'ora';
5
6
  import cliProgress from 'cli-progress';
6
7
  import axios from 'axios';
7
8
  import { loadProjectConfig, loadWorldMetadata, saveWorldMetadata, validateDistDir, scanDirectory, } from './project-config.js';
8
9
  import { getAuthenticatedClient } from './api.js';
9
- import { WORLD_CREATE_PATH, WORLD_UPDATE_PATH } from './constants.js';
10
+ import { WORLD_CREATE_PATH, WORLD_UPDATE_PATH, WORLD_COMPLETE_PATH } from './constants.js';
10
11
  /**
11
12
  * ワールドをアップロード
12
13
  */
@@ -67,11 +68,18 @@ export async function uploadWorld(cwd = process.cwd()) {
67
68
  throw error;
68
69
  }
69
70
  }
70
- // 7. 署名付きURLを取得
71
+ // 7. contentHashとfileSizeを計算
72
+ spinner = ora('ファイルのハッシュを計算中...').start();
73
+ const contentHash = await calculateContentHash(uploadFiles);
74
+ const fileSize = calculateTotalSize(uploadFiles);
75
+ spinner.succeed(chalk.green(`ハッシュ計算完了 (contentHash: ${contentHash}, fileSize: ${fileSize} bytes)`));
76
+ // 8. 署名付きURLを取得
71
77
  spinner = ora('アップロード用URLを取得中...').start();
72
78
  let signedUrls;
73
79
  try {
74
80
  const response = await client.post(`${WORLD_UPDATE_PATH}/${worldId}/upload-urls`, {
81
+ contentHash,
82
+ fileSize,
75
83
  files: uploadFiles.map((f) => ({
76
84
  path: f.remotePath,
77
85
  size: f.size,
@@ -84,7 +92,7 @@ export async function uploadWorld(cwd = process.cwd()) {
84
92
  spinner.fail(chalk.red('アップロードURLの取得に失敗しました'));
85
93
  throw error;
86
94
  }
87
- // 8. ファイルをアップロード
95
+ // 9. ファイルをアップロード
88
96
  console.log(chalk.blue('\n📤 ファイルをアップロード中...\n'));
89
97
  const progressBar = new cliProgress.SingleBar({
90
98
  format: `${chalk.cyan('{bar}')} | {percentage}% | {value}/{total} ファイル | {filename}`,
@@ -116,7 +124,17 @@ export async function uploadWorld(cwd = process.cwd()) {
116
124
  }
117
125
  progressBar.update(uploadFiles.length, { filename: '完了' });
118
126
  progressBar.stop();
119
- // 9. メタデータを保存
127
+ // 10. アップロード完了通知
128
+ spinner = ora('アップロード完了を通知中...').start();
129
+ try {
130
+ await client.post(`${WORLD_COMPLETE_PATH}/${worldId}/complete`);
131
+ spinner.succeed(chalk.green('アップロード完了を通知しました'));
132
+ }
133
+ catch (error) {
134
+ spinner.fail(chalk.red('アップロード完了通知に失敗しました'));
135
+ throw error;
136
+ }
137
+ // 11. メタデータを保存
120
138
  await saveWorldMetadata({
121
139
  id: worldId,
122
140
  createdAt: existingMetadata?.createdAt || new Date().toISOString(),
@@ -135,6 +153,26 @@ export async function uploadWorld(cwd = process.cwd()) {
135
153
  throw error;
136
154
  }
137
155
  }
156
+ /**
157
+ * 全ファイルを結合してSHA-256ハッシュを計算(先頭12文字)
158
+ */
159
+ async function calculateContentHash(uploadFiles) {
160
+ const hash = crypto.createHash('sha256');
161
+ // ファイルをパスでソートして順序を確定
162
+ const sortedFiles = [...uploadFiles].sort((a, b) => a.remotePath.localeCompare(b.remotePath));
163
+ for (const fileInfo of sortedFiles) {
164
+ const fileBuffer = await fs.readFile(fileInfo.localPath);
165
+ hash.update(fileBuffer);
166
+ }
167
+ const fullHash = hash.digest('hex');
168
+ return fullHash.substring(0, 12); // 先頭12文字
169
+ }
170
+ /**
171
+ * 全ファイルのサイズ合計を計算
172
+ */
173
+ function calculateTotalSize(uploadFiles) {
174
+ return uploadFiles.reduce((total, file) => total + file.size, 0);
175
+ }
138
176
  /**
139
177
  * ファイルのMIMEタイプを取得
140
178
  */
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/lib/upload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/lib/upload.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xrift/cli",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "XRift CLI tool for world and avatar uploads",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -49,13 +49,15 @@
49
49
  "commander": "^12.1.0",
50
50
  "giget": "^2.0.0",
51
51
  "open": "^10.1.0",
52
- "ora": "^8.1.1"
52
+ "ora": "^8.1.1",
53
+ "prompts": "^2.4.2"
53
54
  },
54
55
  "devDependencies": {
55
56
  "@jest/globals": "^30.2.0",
56
57
  "@types/cli-progress": "^3.11.6",
57
58
  "@types/jest": "^30.0.0",
58
59
  "@types/node": "^22.10.2",
60
+ "@types/prompts": "^2.4.9",
59
61
  "@typescript-eslint/eslint-plugin": "^8.18.1",
60
62
  "@typescript-eslint/parser": "^8.18.1",
61
63
  "eslint": "^9.17.0",