@xrift/cli 0.7.0 → 0.8.1

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/index.js CHANGED
@@ -8,6 +8,7 @@ import { loginCommand } from './commands/login.js';
8
8
  import { logoutCommand } from './commands/logout.js';
9
9
  import { whoamiCommand } from './commands/whoami.js';
10
10
  import { uploadCommand } from './commands/upload.js';
11
+ import { checkForUpdates } from './lib/version-check.js';
11
12
  // package.json からバージョンを読み込む
12
13
  const __filename = fileURLToPath(import.meta.url);
13
14
  const __dirname = dirname(__filename);
@@ -23,5 +24,7 @@ program.addCommand(loginCommand);
23
24
  program.addCommand(logoutCommand);
24
25
  program.addCommand(whoamiCommand);
25
26
  program.addCommand(uploadCommand);
27
+ // バージョンチェックを実行(非同期、エラーは無視)
28
+ checkForUpdates(packageJson.version);
26
29
  program.parse();
27
30
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,4BAA4B;AAC5B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAC1D,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,gDAAgD,CAAC;KAC7D,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,4BAA4B;AAC5B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAC1D,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,gDAAgD,CAAC;KAC7D,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,2BAA2B;AAC3B,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAErC,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * バージョンチェックを実行(非同期、エラーは無視)
3
+ */
4
+ export declare function checkForUpdates(currentVersion: string): Promise<void>;
5
+ //# sourceMappingURL=version-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/lib/version-check.ts"],"names":[],"mappings":"AA4GA;;GAEG;AACH,wBAAsB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC3E"}
@@ -0,0 +1,123 @@
1
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { homedir } from 'node:os';
4
+ import chalk from 'chalk';
5
+ const CACHE_FILE = join(homedir(), '.xrift', 'version-cache.json');
6
+ const CHECK_INTERVAL = 24 * 60 * 60 * 1000; // 24時間
7
+ /**
8
+ * npmレジストリから最新バージョンを取得
9
+ */
10
+ async function fetchLatestVersion() {
11
+ try {
12
+ const response = await fetch('https://registry.npmjs.org/@xrift/cli/latest');
13
+ if (!response.ok) {
14
+ return null;
15
+ }
16
+ const data = await response.json();
17
+ return data.version || null;
18
+ }
19
+ catch (error) {
20
+ // ネットワークエラーなどは無視
21
+ return null;
22
+ }
23
+ }
24
+ /**
25
+ * キャッシュからバージョン情報を読み込む
26
+ */
27
+ function readCache() {
28
+ try {
29
+ if (!existsSync(CACHE_FILE)) {
30
+ return null;
31
+ }
32
+ const data = readFileSync(CACHE_FILE, 'utf-8');
33
+ return JSON.parse(data);
34
+ }
35
+ catch {
36
+ return null;
37
+ }
38
+ }
39
+ /**
40
+ * キャッシュにバージョン情報を書き込む
41
+ */
42
+ function writeCache(cache) {
43
+ try {
44
+ const cacheDir = join(homedir(), '.xrift');
45
+ if (!existsSync(cacheDir)) {
46
+ mkdirSync(cacheDir, { recursive: true });
47
+ }
48
+ writeFileSync(CACHE_FILE, JSON.stringify(cache, null, 2));
49
+ }
50
+ catch {
51
+ // キャッシュ書き込みエラーは無視
52
+ }
53
+ }
54
+ /**
55
+ * バージョンを比較して、latestの方が新しいかチェック
56
+ */
57
+ function isNewerVersion(current, latest) {
58
+ const currentParts = current.split('.').map(Number);
59
+ const latestParts = latest.split('.').map(Number);
60
+ for (let i = 0; i < Math.max(currentParts.length, latestParts.length); i++) {
61
+ const currentPart = currentParts[i] || 0;
62
+ const latestPart = latestParts[i] || 0;
63
+ if (latestPart > currentPart) {
64
+ return true;
65
+ }
66
+ if (latestPart < currentPart) {
67
+ return false;
68
+ }
69
+ }
70
+ return false;
71
+ }
72
+ /**
73
+ * 更新通知を表示
74
+ */
75
+ function displayUpdateNotification(currentVersion, latestVersion) {
76
+ console.log();
77
+ console.log(chalk.yellow('━'.repeat(60)));
78
+ console.log(chalk.yellow(' 新しいバージョンの XRift CLI が利用可能です!'));
79
+ console.log(chalk.gray(` 現在のバージョン: ${currentVersion}`));
80
+ console.log(chalk.green(` 最新のバージョン: ${latestVersion}`));
81
+ console.log();
82
+ console.log(chalk.cyan(' 更新するには以下のコマンドを実行してください:'));
83
+ console.log(chalk.white(' npm install -g @xrift/cli@latest'));
84
+ console.log(chalk.yellow('━'.repeat(60)));
85
+ console.log();
86
+ }
87
+ /**
88
+ * バージョンチェックを実行(非同期、エラーは無視)
89
+ */
90
+ export async function checkForUpdates(currentVersion) {
91
+ // バックグラウンドで実行し、エラーは無視
92
+ setImmediate(async () => {
93
+ try {
94
+ const cache = readCache();
95
+ const now = Date.now();
96
+ // キャッシュが有効な場合
97
+ if (cache && now - cache.lastCheck < CHECK_INTERVAL) {
98
+ if (isNewerVersion(currentVersion, cache.latestVersion)) {
99
+ displayUpdateNotification(currentVersion, cache.latestVersion);
100
+ }
101
+ return;
102
+ }
103
+ // 新しいバージョンを取得
104
+ const latestVersion = await fetchLatestVersion();
105
+ if (!latestVersion) {
106
+ return;
107
+ }
108
+ // キャッシュを更新
109
+ writeCache({
110
+ lastCheck: now,
111
+ latestVersion,
112
+ });
113
+ // 新しいバージョンがあれば通知
114
+ if (isNewerVersion(currentVersion, latestVersion)) {
115
+ displayUpdateNotification(currentVersion, latestVersion);
116
+ }
117
+ }
118
+ catch {
119
+ // すべてのエラーを無視(バージョンチェックは必須機能ではない)
120
+ }
121
+ });
122
+ }
123
+ //# sourceMappingURL=version-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/lib/version-check.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.7.0",
3
+ "version": "0.8.1",
4
4
  "description": "XRift CLI tool for world and avatar uploads",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -48,6 +48,7 @@
48
48
  "cli-progress": "^3.12.0",
49
49
  "commander": "^12.1.0",
50
50
  "giget": "^2.0.0",
51
+ "minimatch": "^10.1.1",
51
52
  "open": "^10.1.0",
52
53
  "ora": "^8.1.1",
53
54
  "prompts": "^2.4.2"
@@ -63,7 +64,6 @@
63
64
  "@typescript-eslint/parser": "^8.18.1",
64
65
  "eslint": "^9.17.0",
65
66
  "jest": "^30.2.0",
66
- "minimatch": "^10.1.1",
67
67
  "prettier": "^3.4.2",
68
68
  "ts-jest": "^29.4.5",
69
69
  "tsx": "^4.19.2",