@littlepartytime/dev-kit 1.19.0 → 1.20.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/__tests__/engine-loader.test.d.ts +2 -0
- package/dist/__tests__/engine-loader.test.d.ts.map +1 -0
- package/dist/__tests__/engine-loader.test.js +48 -0
- package/dist/__tests__/engine-loader.test.js.map +1 -0
- package/dist/__tests__/games-api.test.d.ts +2 -0
- package/dist/__tests__/games-api.test.d.ts.map +1 -0
- package/dist/__tests__/games-api.test.js +109 -0
- package/dist/__tests__/games-api.test.js.map +1 -0
- package/dist/__tests__/lan-address.test.d.ts +2 -0
- package/dist/__tests__/lan-address.test.d.ts.map +1 -0
- package/dist/__tests__/lan-address.test.js +14 -0
- package/dist/__tests__/lan-address.test.js.map +1 -0
- package/dist/__tests__/validate-demo.test.d.ts +2 -0
- package/dist/__tests__/validate-demo.test.d.ts.map +1 -0
- package/dist/__tests__/validate-demo.test.js +73 -0
- package/dist/__tests__/validate-demo.test.js.map +1 -0
- package/dist/__tests__/zip-manager.test.d.ts +2 -0
- package/dist/__tests__/zip-manager.test.d.ts.map +1 -0
- package/dist/__tests__/zip-manager.test.js +111 -0
- package/dist/__tests__/zip-manager.test.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +19 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +11 -0
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/pack.d.ts.map +1 -1
- package/dist/commands/pack.js +6 -3
- package/dist/commands/pack.js.map +1 -1
- package/dist/commands/play.d.ts +7 -0
- package/dist/commands/play.d.ts.map +1 -0
- package/dist/commands/play.js +154 -0
- package/dist/commands/play.js.map +1 -0
- package/dist/server/engine-loader.d.ts +5 -0
- package/dist/server/engine-loader.d.ts.map +1 -1
- package/dist/server/engine-loader.js +23 -0
- package/dist/server/engine-loader.js.map +1 -1
- package/dist/server/games-api.d.ts +7 -0
- package/dist/server/games-api.d.ts.map +1 -0
- package/dist/server/games-api.js +189 -0
- package/dist/server/games-api.js.map +1 -0
- package/dist/server/lan-address.d.ts +2 -0
- package/dist/server/lan-address.d.ts.map +1 -0
- package/dist/server/lan-address.js +19 -0
- package/dist/server/lan-address.js.map +1 -0
- package/dist/server/socket-server.d.ts +3 -1
- package/dist/server/socket-server.d.ts.map +1 -1
- package/dist/server/socket-server.js +32 -5
- package/dist/server/socket-server.js.map +1 -1
- package/dist/server/zip-manager.d.ts +24 -0
- package/dist/server/zip-manager.d.ts.map +1 -0
- package/dist/server/zip-manager.js +99 -0
- package/dist/server/zip-manager.js.map +1 -0
- package/dist/utils/validate-demo.d.ts +10 -0
- package/dist/utils/validate-demo.d.ts.map +1 -0
- package/dist/utils/validate-demo.js +36 -0
- package/dist/utils/validate-demo.js.map +1 -0
- package/dist/webapp/App.tsx +3 -1
- package/dist/webapp/components/GameSelector.tsx +163 -0
- package/dist/webapp/pages/Debug.tsx +3 -1
- package/dist/webapp/pages/Play.tsx +143 -94
- package/dist/webapp/pages/Preview.tsx +273 -219
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-server.js","sourceRoot":"","sources":["../../src/server/socket-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"socket-server.js","sourceRoot":"","sources":["../../src/server/socket-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface GameEntry {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
version: string;
|
|
6
|
+
minPlayers: number;
|
|
7
|
+
maxPlayers: number;
|
|
8
|
+
iconPath: string | null;
|
|
9
|
+
extractDir: string;
|
|
10
|
+
enginePath: string;
|
|
11
|
+
bundlePath: string;
|
|
12
|
+
assetsDir: string | null;
|
|
13
|
+
}
|
|
14
|
+
export declare class ZipManager {
|
|
15
|
+
private games;
|
|
16
|
+
loadZip(zipPath: string): Promise<GameEntry>;
|
|
17
|
+
loadFromUpload(buffer: Buffer, filename: string): Promise<GameEntry>;
|
|
18
|
+
private registerFromDir;
|
|
19
|
+
getGame(id: string): GameEntry | undefined;
|
|
20
|
+
listGames(): GameEntry[];
|
|
21
|
+
removeGame(id: string): void;
|
|
22
|
+
cleanup(): void;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=zip-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip-manager.d.ts","sourceRoot":"","sources":["../../src/server/zip-manager.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAqC;IAE5C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAW5C,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAU1E,OAAO,CAAC,eAAe;IAkDvB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI1C,SAAS,IAAI,SAAS,EAAE;IAIxB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ5B,OAAO,IAAI,IAAI;CAMhB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ZipManager = void 0;
|
|
7
|
+
// packages/dev-kit/src/server/zip-manager.ts
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const os_1 = __importDefault(require("os"));
|
|
11
|
+
const child_process_1 = require("child_process");
|
|
12
|
+
class ZipManager {
|
|
13
|
+
games = new Map();
|
|
14
|
+
async loadZip(zipPath) {
|
|
15
|
+
const extractDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'lpt-game-'));
|
|
16
|
+
try {
|
|
17
|
+
(0, child_process_1.execSync)(`unzip -o -q "${zipPath}" -d "${extractDir}"`);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
fs_1.default.rmSync(extractDir, { recursive: true, force: true });
|
|
21
|
+
throw new Error(`Failed to extract ZIP: ${zipPath}`);
|
|
22
|
+
}
|
|
23
|
+
return this.registerFromDir(extractDir);
|
|
24
|
+
}
|
|
25
|
+
async loadFromUpload(buffer, filename) {
|
|
26
|
+
const tmpZip = path_1.default.join(os_1.default.tmpdir(), `lpt-upload-${Date.now()}-${filename}`);
|
|
27
|
+
fs_1.default.writeFileSync(tmpZip, buffer);
|
|
28
|
+
try {
|
|
29
|
+
return await this.loadZip(tmpZip);
|
|
30
|
+
}
|
|
31
|
+
finally {
|
|
32
|
+
fs_1.default.rmSync(tmpZip, { force: true });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
registerFromDir(extractDir) {
|
|
36
|
+
const manifestPath = path_1.default.join(extractDir, 'manifest.json');
|
|
37
|
+
const enginePath = path_1.default.join(extractDir, 'engine.cjs');
|
|
38
|
+
const bundlePath = path_1.default.join(extractDir, 'bundle.js');
|
|
39
|
+
if (!fs_1.default.existsSync(manifestPath)) {
|
|
40
|
+
fs_1.default.rmSync(extractDir, { recursive: true, force: true });
|
|
41
|
+
throw new Error('Invalid game ZIP: missing manifest.json');
|
|
42
|
+
}
|
|
43
|
+
if (!fs_1.default.existsSync(enginePath)) {
|
|
44
|
+
fs_1.default.rmSync(extractDir, { recursive: true, force: true });
|
|
45
|
+
throw new Error('Invalid game ZIP: missing engine.cjs');
|
|
46
|
+
}
|
|
47
|
+
if (!fs_1.default.existsSync(bundlePath)) {
|
|
48
|
+
fs_1.default.rmSync(extractDir, { recursive: true, force: true });
|
|
49
|
+
throw new Error('Invalid game ZIP: missing bundle.js');
|
|
50
|
+
}
|
|
51
|
+
const manifest = JSON.parse(fs_1.default.readFileSync(manifestPath, 'utf-8'));
|
|
52
|
+
let iconPath = null;
|
|
53
|
+
const iconName = manifest.assets?.icon;
|
|
54
|
+
if (iconName) {
|
|
55
|
+
const candidate = path_1.default.join(extractDir, iconName);
|
|
56
|
+
if (fs_1.default.existsSync(candidate))
|
|
57
|
+
iconPath = candidate;
|
|
58
|
+
}
|
|
59
|
+
const assetsDir = path_1.default.join(extractDir, 'assets');
|
|
60
|
+
const hasAssetsDir = fs_1.default.existsSync(assetsDir) && fs_1.default.statSync(assetsDir).isDirectory();
|
|
61
|
+
const id = `game-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
62
|
+
const entry = {
|
|
63
|
+
id,
|
|
64
|
+
name: manifest.name || 'Unknown Game',
|
|
65
|
+
description: manifest.description || '',
|
|
66
|
+
version: manifest.version || '0.0.0',
|
|
67
|
+
minPlayers: manifest.minPlayers ?? 2,
|
|
68
|
+
maxPlayers: manifest.maxPlayers ?? 8,
|
|
69
|
+
iconPath,
|
|
70
|
+
extractDir,
|
|
71
|
+
enginePath,
|
|
72
|
+
bundlePath,
|
|
73
|
+
assetsDir: hasAssetsDir ? assetsDir : null,
|
|
74
|
+
};
|
|
75
|
+
this.games.set(id, entry);
|
|
76
|
+
return entry;
|
|
77
|
+
}
|
|
78
|
+
getGame(id) {
|
|
79
|
+
return this.games.get(id);
|
|
80
|
+
}
|
|
81
|
+
listGames() {
|
|
82
|
+
return Array.from(this.games.values());
|
|
83
|
+
}
|
|
84
|
+
removeGame(id) {
|
|
85
|
+
const entry = this.games.get(id);
|
|
86
|
+
if (entry) {
|
|
87
|
+
fs_1.default.rmSync(entry.extractDir, { recursive: true, force: true });
|
|
88
|
+
this.games.delete(id);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
cleanup() {
|
|
92
|
+
for (const entry of this.games.values()) {
|
|
93
|
+
fs_1.default.rmSync(entry.extractDir, { recursive: true, force: true });
|
|
94
|
+
}
|
|
95
|
+
this.games.clear();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.ZipManager = ZipManager;
|
|
99
|
+
//# sourceMappingURL=zip-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip-manager.js","sourceRoot":"","sources":["../../src/server/zip-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface DemoValidationResult {
|
|
2
|
+
valid: boolean;
|
|
3
|
+
errors: string[];
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Validate that the demo site exists and uses relative paths.
|
|
7
|
+
* Absolute paths (e.g. src="/assets/...") will 404 when deployed to a CDN subdirectory.
|
|
8
|
+
*/
|
|
9
|
+
export declare function validateDemo(demoDistDir: string): DemoValidationResult;
|
|
10
|
+
//# sourceMappingURL=validate-demo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-demo.d.ts","sourceRoot":"","sources":["../../src/utils/validate-demo.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,CA8BtE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.validateDemo = validateDemo;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
/**
|
|
10
|
+
* Validate that the demo site exists and uses relative paths.
|
|
11
|
+
* Absolute paths (e.g. src="/assets/...") will 404 when deployed to a CDN subdirectory.
|
|
12
|
+
*/
|
|
13
|
+
function validateDemo(demoDistDir) {
|
|
14
|
+
const errors = [];
|
|
15
|
+
const indexPath = path_1.default.join(demoDistDir, 'index.html');
|
|
16
|
+
if (!fs_1.default.existsSync(demoDistDir) || !fs_1.default.existsSync(indexPath)) {
|
|
17
|
+
errors.push('GameConfig.demo is set but demo/dist/index.html not found.\n' +
|
|
18
|
+
' Build your demo site first: cd demo && npm run build');
|
|
19
|
+
return { valid: false, errors };
|
|
20
|
+
}
|
|
21
|
+
const html = fs_1.default.readFileSync(indexPath, 'utf-8');
|
|
22
|
+
// Match src="/" or href="/" but not src="//" (protocol-relative URLs)
|
|
23
|
+
const absolutePathPattern = /(?:src|href)=["']\/(?!\/)/g;
|
|
24
|
+
const matches = html.match(absolutePathPattern);
|
|
25
|
+
if (matches) {
|
|
26
|
+
errors.push(`demo/dist/index.html contains absolute path references:\n` +
|
|
27
|
+
matches.map(m => ` ${m}`).join('\n') + '\n' +
|
|
28
|
+
' The demo will be deployed to a CDN subdirectory, so absolute paths will cause 404.\n' +
|
|
29
|
+
' Set base: "./" in your demo Vite config:\n' +
|
|
30
|
+
'\n' +
|
|
31
|
+
' // demo/vite.config.ts\n' +
|
|
32
|
+
' export default defineConfig({ base: "./" })');
|
|
33
|
+
}
|
|
34
|
+
return { valid: errors.length === 0, errors };
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=validate-demo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-demo.js","sourceRoot":"","sources":["../../src/utils/validate-demo.ts"],"names":[],"mappings":";;;;;AAYA,oCA8BC;AA1CD,4CAAoB;AACpB,gDAAwB;AAOxB;;;GAGG;AACH,SAAgB,YAAY,CAAC,WAAmB;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAEvD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7D,MAAM,CAAC,IAAI,CACT,8DAA8D;YAC9D,wDAAwD,CACzD,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjD,sEAAsE;IACtE,MAAM,mBAAmB,GAAG,4BAA4B,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAEhD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CACT,2DAA2D;YAC3D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;YAC9C,wFAAwF;YACxF,8CAA8C;YAC9C,IAAI;YACJ,8BAA8B;YAC9B,iDAAiD,CAClD,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC"}
|
package/dist/webapp/App.tsx
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import Preview from './pages/Preview';
|
|
3
|
+
|
|
4
|
+
declare const __SOCKET_PORT__: number;
|
|
3
5
|
import Play from './pages/Play';
|
|
4
6
|
import Debug from './pages/Debug';
|
|
5
7
|
import { captureScreen } from './utils/captureScreen';
|
|
@@ -57,7 +59,7 @@ export default function App() {
|
|
|
57
59
|
))}
|
|
58
60
|
<div style={{ flex: 1 }} />
|
|
59
61
|
<button
|
|
60
|
-
onClick={() => fetch(
|
|
62
|
+
onClick={() => fetch(`http://${window.location.hostname}:${__SOCKET_PORT__}/api/reset`, { method: 'POST' })}
|
|
61
63
|
className="dk-nav-btn"
|
|
62
64
|
style={{
|
|
63
65
|
padding: '4px 12px',
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
// packages/dev-kit/src/webapp/components/GameSelector.tsx
|
|
2
|
+
import React, { useState, useEffect, useCallback } from 'react';
|
|
3
|
+
|
|
4
|
+
declare const __SOCKET_PORT__: number;
|
|
5
|
+
|
|
6
|
+
interface GameInfo {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
version: string;
|
|
11
|
+
minPlayers: number;
|
|
12
|
+
maxPlayers: number;
|
|
13
|
+
active: boolean;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
interface GameSelectorProps {
|
|
17
|
+
onGameActivated?: () => void;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export default function GameSelector({ onGameActivated }: GameSelectorProps) {
|
|
21
|
+
const [games, setGames] = useState<GameInfo[]>([]);
|
|
22
|
+
const [uploading, setUploading] = useState(false);
|
|
23
|
+
const [error, setError] = useState<string | null>(null);
|
|
24
|
+
|
|
25
|
+
const apiBase = `http://${window.location.hostname}:${window.location.port}`;
|
|
26
|
+
|
|
27
|
+
const fetchGames = useCallback(async () => {
|
|
28
|
+
try {
|
|
29
|
+
const res = await fetch(`${apiBase}/api/games`);
|
|
30
|
+
const data = await res.json();
|
|
31
|
+
setGames(data.games);
|
|
32
|
+
} catch {
|
|
33
|
+
// ignore fetch errors
|
|
34
|
+
}
|
|
35
|
+
}, [apiBase]);
|
|
36
|
+
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
fetchGames();
|
|
39
|
+
const interval = setInterval(fetchGames, 3000);
|
|
40
|
+
return () => clearInterval(interval);
|
|
41
|
+
}, [fetchGames]);
|
|
42
|
+
|
|
43
|
+
const handleUpload = useCallback(async (e: React.ChangeEvent<HTMLInputElement>) => {
|
|
44
|
+
const file = e.target.files?.[0];
|
|
45
|
+
if (!file) return;
|
|
46
|
+
|
|
47
|
+
setUploading(true);
|
|
48
|
+
setError(null);
|
|
49
|
+
|
|
50
|
+
try {
|
|
51
|
+
const buffer = await file.arrayBuffer();
|
|
52
|
+
const res = await fetch(`${apiBase}/api/games/upload`, {
|
|
53
|
+
method: 'POST',
|
|
54
|
+
headers: { 'Content-Type': 'application/octet-stream' },
|
|
55
|
+
body: buffer,
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
if (!res.ok) {
|
|
59
|
+
const data = await res.json();
|
|
60
|
+
throw new Error(data.error || 'Upload failed');
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
await fetchGames();
|
|
64
|
+
} catch (err) {
|
|
65
|
+
setError((err as Error).message);
|
|
66
|
+
} finally {
|
|
67
|
+
setUploading(false);
|
|
68
|
+
// Reset input
|
|
69
|
+
e.target.value = '';
|
|
70
|
+
}
|
|
71
|
+
}, [apiBase, fetchGames]);
|
|
72
|
+
|
|
73
|
+
const activate = useCallback(async (id: string) => {
|
|
74
|
+
try {
|
|
75
|
+
await fetch(`${apiBase}/api/games/${id}/activate`, { method: 'POST' });
|
|
76
|
+
await fetchGames();
|
|
77
|
+
onGameActivated?.();
|
|
78
|
+
} catch (err) {
|
|
79
|
+
setError((err as Error).message);
|
|
80
|
+
}
|
|
81
|
+
}, [apiBase, fetchGames, onGameActivated]);
|
|
82
|
+
|
|
83
|
+
const remove = useCallback(async (id: string) => {
|
|
84
|
+
try {
|
|
85
|
+
await fetch(`${apiBase}/api/games/${id}`, { method: 'DELETE' });
|
|
86
|
+
await fetchGames();
|
|
87
|
+
} catch (err) {
|
|
88
|
+
setError((err as Error).message);
|
|
89
|
+
}
|
|
90
|
+
}, [apiBase, fetchGames]);
|
|
91
|
+
|
|
92
|
+
if (games.length === 0 && !uploading) {
|
|
93
|
+
return (
|
|
94
|
+
<div style={{ background: '#18181b', borderRadius: 8, padding: 12, marginBottom: 16, display: 'flex', alignItems: 'center', gap: 12 }}>
|
|
95
|
+
<span style={{ color: '#71717a', fontSize: 13 }}>No games loaded.</span>
|
|
96
|
+
<label style={{ background: '#d97706', color: '#fff', padding: '4px 12px', borderRadius: 4, fontSize: 13, cursor: 'pointer', fontWeight: 600 }}>
|
|
97
|
+
Upload ZIP
|
|
98
|
+
<input type="file" accept=".zip" onChange={handleUpload} style={{ display: 'none' }} />
|
|
99
|
+
</label>
|
|
100
|
+
{error && <span style={{ color: '#ef4444', fontSize: 12 }}>{error}</span>}
|
|
101
|
+
</div>
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return (
|
|
106
|
+
<div style={{ background: '#18181b', borderRadius: 8, padding: 12, marginBottom: 16 }}>
|
|
107
|
+
<div style={{ display: 'flex', alignItems: 'center', gap: 8, flexWrap: 'wrap' }}>
|
|
108
|
+
{games.map((game) => (
|
|
109
|
+
<div
|
|
110
|
+
key={game.id}
|
|
111
|
+
onClick={() => !game.active && activate(game.id)}
|
|
112
|
+
style={{
|
|
113
|
+
display: 'flex',
|
|
114
|
+
alignItems: 'center',
|
|
115
|
+
gap: 8,
|
|
116
|
+
padding: '6px 12px',
|
|
117
|
+
borderRadius: 6,
|
|
118
|
+
cursor: game.active ? 'default' : 'pointer',
|
|
119
|
+
border: game.active ? '2px solid #d97706' : '1px solid #3f3f46',
|
|
120
|
+
background: game.active ? 'rgba(217, 119, 6, 0.15)' : '#27272a',
|
|
121
|
+
fontSize: 13,
|
|
122
|
+
}}
|
|
123
|
+
>
|
|
124
|
+
<img
|
|
125
|
+
src={`/api/games/${game.id}/icon`}
|
|
126
|
+
alt=""
|
|
127
|
+
style={{ width: 24, height: 24, borderRadius: 4 }}
|
|
128
|
+
onError={(e) => { (e.target as HTMLImageElement).style.display = 'none'; }}
|
|
129
|
+
/>
|
|
130
|
+
<div>
|
|
131
|
+
<div style={{ color: '#e5e5e5', fontWeight: 600 }}>{game.name}</div>
|
|
132
|
+
<div style={{ color: '#71717a', fontSize: 10 }}>v{game.version} · {game.minPlayers}-{game.maxPlayers}p</div>
|
|
133
|
+
</div>
|
|
134
|
+
{!game.active && (
|
|
135
|
+
<button
|
|
136
|
+
onClick={(e) => { e.stopPropagation(); remove(game.id); }}
|
|
137
|
+
style={{ background: 'none', border: 'none', color: '#71717a', cursor: 'pointer', fontSize: 14, padding: '0 2px' }}
|
|
138
|
+
title="Remove"
|
|
139
|
+
>
|
|
140
|
+
×
|
|
141
|
+
</button>
|
|
142
|
+
)}
|
|
143
|
+
</div>
|
|
144
|
+
))}
|
|
145
|
+
|
|
146
|
+
<label style={{
|
|
147
|
+
background: '#3f3f46',
|
|
148
|
+
color: '#d4d4d8',
|
|
149
|
+
padding: '6px 12px',
|
|
150
|
+
borderRadius: 6,
|
|
151
|
+
fontSize: 13,
|
|
152
|
+
cursor: uploading ? 'default' : 'pointer',
|
|
153
|
+
fontWeight: 600,
|
|
154
|
+
opacity: uploading ? 0.5 : 1,
|
|
155
|
+
}}>
|
|
156
|
+
{uploading ? 'Uploading...' : '+ Upload'}
|
|
157
|
+
<input type="file" accept=".zip" onChange={handleUpload} disabled={uploading} style={{ display: 'none' }} />
|
|
158
|
+
</label>
|
|
159
|
+
</div>
|
|
160
|
+
{error && <div style={{ color: '#ef4444', fontSize: 12, marginTop: 8 }}>{error}</div>}
|
|
161
|
+
</div>
|
|
162
|
+
);
|
|
163
|
+
}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import { io, Socket } from 'socket.io-client';
|
|
3
3
|
|
|
4
|
+
declare const __SOCKET_PORT__: number;
|
|
5
|
+
|
|
4
6
|
export default function Debug() {
|
|
5
7
|
const [socket, setSocket] = useState<Socket | null>(null);
|
|
6
8
|
const [room, setRoom] = useState<any>({ players: [], phase: 'lobby' });
|
|
7
9
|
const [fullState, setFullState] = useState<any>(null);
|
|
8
10
|
|
|
9
11
|
useEffect(() => {
|
|
10
|
-
const sock = io(
|
|
12
|
+
const sock = io(`http://${window.location.hostname}:${__SOCKET_PORT__}`, { query: { nickname: '__debug__' } });
|
|
11
13
|
|
|
12
14
|
sock.on('room:update', setRoom);
|
|
13
15
|
sock.on('game:state', setFullState);
|