@directivegames/genesys.sdk 3.2.2 → 3.2.4
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 +60 -60
- package/dist/src/core/cli.js +22 -22
- package/dist/src/templates/scripts/genesys/genesys-mcp.js +25 -25
- package/dist/src/templates/scripts/genesys/mcp/editor-functions.js +4 -4
- package/dist/src/templates/src/templates/vehicle/src/ui-hints.js +30 -30
- package/package.json +176 -176
- package/scripts/post-install.ts +143 -143
- package/src/asset-pack/.gitattributes +88 -88
- package/src/asset-pack/eslint.config.js +45 -45
- package/src/asset-pack/gitignore +11 -11
- package/src/asset-pack/scripts/postinstall.ts +81 -81
- package/src/asset-pack/tsconfig.json +33 -33
- package/src/templates/.cursor/mcp.json +20 -20
- package/src/templates/.cursorignore +2 -2
- package/src/templates/.gitattributes +88 -88
- package/src/templates/.vscode/settings.json +6 -6
- package/src/templates/AGENTS.md +86 -86
- package/src/templates/README.md +24 -24
- package/src/templates/eslint.config.js +45 -45
- package/src/templates/gitignore +11 -11
- package/src/templates/index.html +34 -34
- package/src/templates/pnpm-lock.yaml +3676 -3676
- package/src/templates/scripts/genesys/build-project.ts +51 -51
- package/src/templates/scripts/genesys/calc-bounding-box.ts +272 -272
- package/src/templates/scripts/genesys/common.ts +46 -46
- package/src/templates/scripts/genesys/const.ts +9 -9
- package/src/templates/scripts/genesys/dev/dump-default-scene.ts +11 -11
- package/src/templates/scripts/genesys/dev/generate-manifest.ts +146 -146
- package/src/templates/scripts/genesys/dev/launcher.ts +46 -46
- package/src/templates/scripts/genesys/dev/storage-provider.ts +229 -229
- package/src/templates/scripts/genesys/dev/update-template-scenes.ts +84 -84
- package/src/templates/scripts/genesys/doc-server.ts +16 -16
- package/src/templates/scripts/genesys/genesys-mcp.ts +526 -526
- package/src/templates/scripts/genesys/mcp/doc-tools.ts +86 -86
- package/src/templates/scripts/genesys/mcp/editor-functions.ts +151 -151
- package/src/templates/scripts/genesys/mcp/editor-tools.ts +73 -73
- package/src/templates/scripts/genesys/mcp/get-scene-state.ts +35 -35
- package/src/templates/scripts/genesys/mcp/run-subprocess.ts +30 -30
- package/src/templates/scripts/genesys/mcp/search-actors.ts +858 -858
- package/src/templates/scripts/genesys/mcp/search-assets.ts +380 -380
- package/src/templates/scripts/genesys/mcp/utils.ts +281 -281
- package/src/templates/scripts/genesys/misc.ts +42 -42
- package/src/templates/scripts/genesys/mock.ts +6 -6
- package/src/templates/scripts/genesys/place-actors.ts +179 -179
- package/src/templates/scripts/genesys/post-install.ts +30 -30
- package/src/templates/scripts/genesys/prefab.schema.json +84 -84
- package/src/templates/scripts/genesys/remove-engine-comments.ts +134 -134
- package/src/templates/scripts/genesys/run-mcp-inspector.bat +4 -4
- package/src/templates/scripts/genesys/storageProvider.ts +182 -182
- package/src/templates/scripts/genesys/validate-prefabs.ts +138 -138
- package/src/templates/src/index.ts +22 -22
- package/src/templates/src/templates/firstPerson/assets/default.genesys-scene +165 -165
- package/src/templates/src/templates/firstPerson/src/game.ts +39 -39
- package/src/templates/src/templates/firstPerson/src/player.ts +63 -63
- package/src/templates/src/templates/fps/assets/default.genesys-scene +9459 -9459
- package/src/templates/src/templates/fps/src/game.ts +39 -39
- package/src/templates/src/templates/fps/src/player.ts +69 -69
- package/src/templates/src/templates/fps/src/weapon.ts +54 -54
- package/src/templates/src/templates/freeCamera/assets/default.genesys-scene +165 -165
- package/src/templates/src/templates/freeCamera/src/game.ts +39 -39
- package/src/templates/src/templates/freeCamera/src/player.ts +45 -45
- package/src/templates/src/templates/sideScroller/assets/default.genesys-scene +121 -121
- package/src/templates/src/templates/sideScroller/src/const.ts +45 -45
- package/src/templates/src/templates/sideScroller/src/game.ts +122 -122
- package/src/templates/src/templates/sideScroller/src/level-generator.ts +361 -361
- package/src/templates/src/templates/sideScroller/src/player.ts +125 -125
- package/src/templates/src/templates/thirdPerson/assets/default.genesys-scene +165 -165
- package/src/templates/src/templates/thirdPerson/src/game.ts +39 -39
- package/src/templates/src/templates/thirdPerson/src/player.ts +61 -61
- package/src/templates/src/templates/vehicle/assets/default.genesys-scene +225 -225
- package/src/templates/src/templates/vehicle/src/base-vehicle.ts +145 -145
- package/src/templates/src/templates/vehicle/src/game.ts +43 -43
- package/src/templates/src/templates/vehicle/src/mesh-vehicle.ts +191 -191
- package/src/templates/src/templates/vehicle/src/player.ts +109 -109
- package/src/templates/src/templates/vehicle/src/primitive-vehicle.ts +266 -266
- package/src/templates/src/templates/vehicle/src/ui-hints.ts +101 -101
- package/src/templates/src/templates/vr-game/assets/default.genesys-scene +246 -246
- package/src/templates/src/templates/vr-game/src/auto-imports.ts +1 -1
- package/src/templates/src/templates/vr-game/src/game.ts +66 -66
- package/src/templates/src/templates/vr-game/src/sample-vr-actor.ts +26 -26
- package/src/templates/tsconfig.json +34 -34
- package/src/templates/vite.config.ts +52 -52
package/package.json
CHANGED
|
@@ -1,176 +1,176 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@directivegames/genesys.sdk",
|
|
3
|
-
"version": "3.2.
|
|
4
|
-
"description": "Genesys SDK - A development toolkit for game development",
|
|
5
|
-
"author": "Directive Games",
|
|
6
|
-
"main": "index.js",
|
|
7
|
-
"type": "module",
|
|
8
|
-
"pnpm": {
|
|
9
|
-
"onlyBuiltDependencies": [
|
|
10
|
-
"electron"
|
|
11
|
-
]
|
|
12
|
-
},
|
|
13
|
-
"files": [
|
|
14
|
-
"dist/src",
|
|
15
|
-
"src/templates",
|
|
16
|
-
"src/asset-pack",
|
|
17
|
-
"scripts"
|
|
18
|
-
],
|
|
19
|
-
"bin": {
|
|
20
|
-
"genesys-sdk": "./dist/src/core/cli.js"
|
|
21
|
-
},
|
|
22
|
-
"scripts": {
|
|
23
|
-
"postinstall": "pnpm exec tsx scripts/post-install.ts",
|
|
24
|
-
"dev:main": "tsc --watch -p tsconfig.json",
|
|
25
|
-
"dev:preload": "tsc --watch -p tsconfig.preload.json",
|
|
26
|
-
"dev:electron": "electron dist/src/electron/backend/main.js",
|
|
27
|
-
"dev:watch": "pnpm compile && concurrently -k -n MAIN,PRELOAD \"pnpm dev:main\" \"pnpm dev:preload\" nodemon",
|
|
28
|
-
"dev": "pnpm compile && concurrently -k -n MAIN,PRELOAD \"pnpm dev:main\" \"pnpm dev:preload\" \"pnpm dev:electron\"",
|
|
29
|
-
"dev:hosted": "pnpm compile && concurrently -k -n MAIN,PRELOAD \"pnpm dev:main\" \"pnpm dev:preload\" \"dotenv -v DEV_HOSTED=true pnpm dev:electron\"",
|
|
30
|
-
"dev:vite-old": "vite",
|
|
31
|
-
"dev-old": "pnpm compile && concurrently -k -n MAIN,PRELOAD,VITE \"pnpm dev:main\" \"pnpm dev:preload\" \"pnpm dev:vite-old\" \"pnpm dev:electron-old\"",
|
|
32
|
-
"compile": "tsc -p tsconfig.json && tsc -p tsconfig.preload.json",
|
|
33
|
-
"build": "vite build && pnpm compile",
|
|
34
|
-
"dist": "pnpm build && electron-builder",
|
|
35
|
-
"lint": "eslint . --fix --ext .ts,.tsx",
|
|
36
|
-
"pack": "pnpm build && pnpm pack",
|
|
37
|
-
"cli": "pnpm exec tsx src/core/cli.ts",
|
|
38
|
-
"cli:new": "pnpm exec tsx src/core/cli.ts new",
|
|
39
|
-
"cli:build": "pnpm exec tsx src/core/cli.ts build",
|
|
40
|
-
"cli:new-asset-pack": "pnpm exec tsx src/core/cli.ts new-asset-pack"
|
|
41
|
-
},
|
|
42
|
-
"build": {
|
|
43
|
-
"artifactName": "Genesys-Setup-${version}.${ext}",
|
|
44
|
-
"publish": [
|
|
45
|
-
{
|
|
46
|
-
"provider": "github",
|
|
47
|
-
"releaseType": "release",
|
|
48
|
-
"owner": "directivegames",
|
|
49
|
-
"repo": "genesys.sdk-release",
|
|
50
|
-
"private": true
|
|
51
|
-
}
|
|
52
|
-
],
|
|
53
|
-
"asar": true,
|
|
54
|
-
"asarUnpack": [
|
|
55
|
-
"node_modules/@esbuild/**/*",
|
|
56
|
-
"node_modules/esbuild/**/*"
|
|
57
|
-
],
|
|
58
|
-
"appId": "com.directivegames.genesys.sdk",
|
|
59
|
-
"productName": "Genesys",
|
|
60
|
-
"files": [
|
|
61
|
-
"dist/**/*",
|
|
62
|
-
{
|
|
63
|
-
"from": "node_modules/.pnpm/three@0.177.0/node_modules/three/examples",
|
|
64
|
-
"to": "node_modules/three/examples"
|
|
65
|
-
}
|
|
66
|
-
],
|
|
67
|
-
"extraResources": [
|
|
68
|
-
{
|
|
69
|
-
"from": "src/templates",
|
|
70
|
-
"to": "vendor/src/templates"
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
"from": "src/asset-pack",
|
|
74
|
-
"to": "vendor/src/asset-pack"
|
|
75
|
-
}
|
|
76
|
-
],
|
|
77
|
-
"directories": {
|
|
78
|
-
"buildResources": "build"
|
|
79
|
-
},
|
|
80
|
-
"extraMetadata": {
|
|
81
|
-
"main": "dist/src/electron/backend/main.js"
|
|
82
|
-
},
|
|
83
|
-
"protocols": [
|
|
84
|
-
{
|
|
85
|
-
"name": "genesys",
|
|
86
|
-
"schemes": [
|
|
87
|
-
"genesys"
|
|
88
|
-
]
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
"name": "genesys-dev",
|
|
92
|
-
"schemes": [
|
|
93
|
-
"genesys-dev"
|
|
94
|
-
]
|
|
95
|
-
}
|
|
96
|
-
],
|
|
97
|
-
"win": {
|
|
98
|
-
"target": "nsis"
|
|
99
|
-
},
|
|
100
|
-
"mac": {
|
|
101
|
-
"target": "dmg",
|
|
102
|
-
"hardenedRuntime": true,
|
|
103
|
-
"gatekeeperAssess": false,
|
|
104
|
-
"entitlements": "build/entitlements.mac.plist",
|
|
105
|
-
"entitlementsInherit": "build/entitlements.mac.plist"
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
"dependencies": {
|
|
109
|
-
"@electron/rebuild": "^4.0.1",
|
|
110
|
-
"@emotion/react": "^11.14.0",
|
|
111
|
-
"@emotion/styled": "^11.14.0",
|
|
112
|
-
"@mui/icons-material": "^7.1.0",
|
|
113
|
-
"@mui/lab": "^7.0.0-beta.12",
|
|
114
|
-
"@mui/material": "^7.1.0",
|
|
115
|
-
"chokidar": "^4.0.3",
|
|
116
|
-
"commander": "^14.0.2",
|
|
117
|
-
"core-util-is": "^1.0.3",
|
|
118
|
-
"cors": "^2.8.5",
|
|
119
|
-
"electron-devtools-installer": "^4.0.0",
|
|
120
|
-
"electron-is-dev": "^3.0.1",
|
|
121
|
-
"electron-log": "^5.4.3",
|
|
122
|
-
"electron-store": "^11.0.2",
|
|
123
|
-
"electron-updater": "^6.6.2",
|
|
124
|
-
"esbuild": "^0.25.11",
|
|
125
|
-
"express": "^5.1.0",
|
|
126
|
-
"fix-path": "^4.0.0",
|
|
127
|
-
"genesys.js": "^3.1.24",
|
|
128
|
-
"jsdom": "^27.0.0",
|
|
129
|
-
"minimatch": "^10.0.1",
|
|
130
|
-
"multer": "^2.0.2",
|
|
131
|
-
"node-abi": "^4.14.0",
|
|
132
|
-
"react": "^19.2.0",
|
|
133
|
-
"react-dom": "^19.2.0",
|
|
134
|
-
"three": "^0.177.0",
|
|
135
|
-
"upath": "^2.0.1",
|
|
136
|
-
"ws": "^8.18.2",
|
|
137
|
-
"zod": "^3.24.4"
|
|
138
|
-
},
|
|
139
|
-
"devDependencies": {
|
|
140
|
-
"@electron/notarize": "^3.1.0",
|
|
141
|
-
"@modelcontextprotocol/sdk": "^1.22.0",
|
|
142
|
-
"@types/cors": "^2.8.18",
|
|
143
|
-
"@types/electron-store": "^1.3.1",
|
|
144
|
-
"@types/express": "^5.0.2",
|
|
145
|
-
"@types/jsdom": "^27.0.0",
|
|
146
|
-
"@types/minimatch": "^5.1.2",
|
|
147
|
-
"@types/multer": "^1.4.12",
|
|
148
|
-
"@types/react": "^19.2.0",
|
|
149
|
-
"@types/react-dom": "^19.2.0",
|
|
150
|
-
"@types/three": "^0.177.0",
|
|
151
|
-
"@types/ws": "^8.18.1",
|
|
152
|
-
"@typescript-eslint/eslint-plugin": "^8.29.1",
|
|
153
|
-
"@typescript-eslint/parser": "^8.29.1",
|
|
154
|
-
"@vitejs/plugin-react": "^4.4.1",
|
|
155
|
-
"ajv": "^8.17.1",
|
|
156
|
-
"concurrently": "^9.1.2",
|
|
157
|
-
"dotenv-cli": "^8.0.0",
|
|
158
|
-
"electron": "^39.2.3",
|
|
159
|
-
"electron-builder": "^26.0.12",
|
|
160
|
-
"eslint": "^9.24.0",
|
|
161
|
-
"eslint-plugin-import": "^2.31.0",
|
|
162
|
-
"get-port": "^7.1.0",
|
|
163
|
-
"nanoid": "^5.1.6",
|
|
164
|
-
"nodemon": "^3.1.10",
|
|
165
|
-
"ts-morph": "^27.0.2",
|
|
166
|
-
"tsc-watch": "^7.1.0",
|
|
167
|
-
"tsx": "^4.20.6",
|
|
168
|
-
"typescript": "^5.8.3",
|
|
169
|
-
"vite": "^6.3.5",
|
|
170
|
-
"vite-plugin-mkcert": "^1.17.9",
|
|
171
|
-
"vite-plugin-node-polyfills": "^0.24.0",
|
|
172
|
-
"wait-on": "^8.0.4",
|
|
173
|
-
"yaml": "^2.6.1",
|
|
174
|
-
"zod-to-json-schema": "^3.25.0"
|
|
175
|
-
}
|
|
176
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@directivegames/genesys.sdk",
|
|
3
|
+
"version": "3.2.4",
|
|
4
|
+
"description": "Genesys SDK - A development toolkit for game development",
|
|
5
|
+
"author": "Directive Games",
|
|
6
|
+
"main": "index.js",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"pnpm": {
|
|
9
|
+
"onlyBuiltDependencies": [
|
|
10
|
+
"electron"
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist/src",
|
|
15
|
+
"src/templates",
|
|
16
|
+
"src/asset-pack",
|
|
17
|
+
"scripts"
|
|
18
|
+
],
|
|
19
|
+
"bin": {
|
|
20
|
+
"genesys-sdk": "./dist/src/core/cli.js"
|
|
21
|
+
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"postinstall": "pnpm exec tsx scripts/post-install.ts",
|
|
24
|
+
"dev:main": "tsc --watch -p tsconfig.json",
|
|
25
|
+
"dev:preload": "tsc --watch -p tsconfig.preload.json",
|
|
26
|
+
"dev:electron": "electron dist/src/electron/backend/main.js",
|
|
27
|
+
"dev:watch": "pnpm compile && concurrently -k -n MAIN,PRELOAD \"pnpm dev:main\" \"pnpm dev:preload\" nodemon",
|
|
28
|
+
"dev": "pnpm compile && concurrently -k -n MAIN,PRELOAD \"pnpm dev:main\" \"pnpm dev:preload\" \"pnpm dev:electron\"",
|
|
29
|
+
"dev:hosted": "pnpm compile && concurrently -k -n MAIN,PRELOAD \"pnpm dev:main\" \"pnpm dev:preload\" \"dotenv -v DEV_HOSTED=true pnpm dev:electron\"",
|
|
30
|
+
"dev:vite-old": "vite",
|
|
31
|
+
"dev-old": "pnpm compile && concurrently -k -n MAIN,PRELOAD,VITE \"pnpm dev:main\" \"pnpm dev:preload\" \"pnpm dev:vite-old\" \"pnpm dev:electron-old\"",
|
|
32
|
+
"compile": "tsc -p tsconfig.json && tsc -p tsconfig.preload.json",
|
|
33
|
+
"build": "vite build && pnpm compile",
|
|
34
|
+
"dist": "pnpm build && electron-builder",
|
|
35
|
+
"lint": "eslint . --fix --ext .ts,.tsx",
|
|
36
|
+
"pack": "pnpm build && pnpm pack",
|
|
37
|
+
"cli": "pnpm exec tsx src/core/cli.ts",
|
|
38
|
+
"cli:new": "pnpm exec tsx src/core/cli.ts new",
|
|
39
|
+
"cli:build": "pnpm exec tsx src/core/cli.ts build",
|
|
40
|
+
"cli:new-asset-pack": "pnpm exec tsx src/core/cli.ts new-asset-pack"
|
|
41
|
+
},
|
|
42
|
+
"build": {
|
|
43
|
+
"artifactName": "Genesys-Setup-${version}.${ext}",
|
|
44
|
+
"publish": [
|
|
45
|
+
{
|
|
46
|
+
"provider": "github",
|
|
47
|
+
"releaseType": "release",
|
|
48
|
+
"owner": "directivegames",
|
|
49
|
+
"repo": "genesys.sdk-release",
|
|
50
|
+
"private": true
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"asar": true,
|
|
54
|
+
"asarUnpack": [
|
|
55
|
+
"node_modules/@esbuild/**/*",
|
|
56
|
+
"node_modules/esbuild/**/*"
|
|
57
|
+
],
|
|
58
|
+
"appId": "com.directivegames.genesys.sdk",
|
|
59
|
+
"productName": "Genesys",
|
|
60
|
+
"files": [
|
|
61
|
+
"dist/**/*",
|
|
62
|
+
{
|
|
63
|
+
"from": "node_modules/.pnpm/three@0.177.0/node_modules/three/examples",
|
|
64
|
+
"to": "node_modules/three/examples"
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"extraResources": [
|
|
68
|
+
{
|
|
69
|
+
"from": "src/templates",
|
|
70
|
+
"to": "vendor/src/templates"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"from": "src/asset-pack",
|
|
74
|
+
"to": "vendor/src/asset-pack"
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
"directories": {
|
|
78
|
+
"buildResources": "build"
|
|
79
|
+
},
|
|
80
|
+
"extraMetadata": {
|
|
81
|
+
"main": "dist/src/electron/backend/main.js"
|
|
82
|
+
},
|
|
83
|
+
"protocols": [
|
|
84
|
+
{
|
|
85
|
+
"name": "genesys",
|
|
86
|
+
"schemes": [
|
|
87
|
+
"genesys"
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"name": "genesys-dev",
|
|
92
|
+
"schemes": [
|
|
93
|
+
"genesys-dev"
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
"win": {
|
|
98
|
+
"target": "nsis"
|
|
99
|
+
},
|
|
100
|
+
"mac": {
|
|
101
|
+
"target": "dmg",
|
|
102
|
+
"hardenedRuntime": true,
|
|
103
|
+
"gatekeeperAssess": false,
|
|
104
|
+
"entitlements": "build/entitlements.mac.plist",
|
|
105
|
+
"entitlementsInherit": "build/entitlements.mac.plist"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"dependencies": {
|
|
109
|
+
"@electron/rebuild": "^4.0.1",
|
|
110
|
+
"@emotion/react": "^11.14.0",
|
|
111
|
+
"@emotion/styled": "^11.14.0",
|
|
112
|
+
"@mui/icons-material": "^7.1.0",
|
|
113
|
+
"@mui/lab": "^7.0.0-beta.12",
|
|
114
|
+
"@mui/material": "^7.1.0",
|
|
115
|
+
"chokidar": "^4.0.3",
|
|
116
|
+
"commander": "^14.0.2",
|
|
117
|
+
"core-util-is": "^1.0.3",
|
|
118
|
+
"cors": "^2.8.5",
|
|
119
|
+
"electron-devtools-installer": "^4.0.0",
|
|
120
|
+
"electron-is-dev": "^3.0.1",
|
|
121
|
+
"electron-log": "^5.4.3",
|
|
122
|
+
"electron-store": "^11.0.2",
|
|
123
|
+
"electron-updater": "^6.6.2",
|
|
124
|
+
"esbuild": "^0.25.11",
|
|
125
|
+
"express": "^5.1.0",
|
|
126
|
+
"fix-path": "^4.0.0",
|
|
127
|
+
"genesys.js": "^3.1.24",
|
|
128
|
+
"jsdom": "^27.0.0",
|
|
129
|
+
"minimatch": "^10.0.1",
|
|
130
|
+
"multer": "^2.0.2",
|
|
131
|
+
"node-abi": "^4.14.0",
|
|
132
|
+
"react": "^19.2.0",
|
|
133
|
+
"react-dom": "^19.2.0",
|
|
134
|
+
"three": "^0.177.0",
|
|
135
|
+
"upath": "^2.0.1",
|
|
136
|
+
"ws": "^8.18.2",
|
|
137
|
+
"zod": "^3.24.4"
|
|
138
|
+
},
|
|
139
|
+
"devDependencies": {
|
|
140
|
+
"@electron/notarize": "^3.1.0",
|
|
141
|
+
"@modelcontextprotocol/sdk": "^1.22.0",
|
|
142
|
+
"@types/cors": "^2.8.18",
|
|
143
|
+
"@types/electron-store": "^1.3.1",
|
|
144
|
+
"@types/express": "^5.0.2",
|
|
145
|
+
"@types/jsdom": "^27.0.0",
|
|
146
|
+
"@types/minimatch": "^5.1.2",
|
|
147
|
+
"@types/multer": "^1.4.12",
|
|
148
|
+
"@types/react": "^19.2.0",
|
|
149
|
+
"@types/react-dom": "^19.2.0",
|
|
150
|
+
"@types/three": "^0.177.0",
|
|
151
|
+
"@types/ws": "^8.18.1",
|
|
152
|
+
"@typescript-eslint/eslint-plugin": "^8.29.1",
|
|
153
|
+
"@typescript-eslint/parser": "^8.29.1",
|
|
154
|
+
"@vitejs/plugin-react": "^4.4.1",
|
|
155
|
+
"ajv": "^8.17.1",
|
|
156
|
+
"concurrently": "^9.1.2",
|
|
157
|
+
"dotenv-cli": "^8.0.0",
|
|
158
|
+
"electron": "^39.2.3",
|
|
159
|
+
"electron-builder": "^26.0.12",
|
|
160
|
+
"eslint": "^9.24.0",
|
|
161
|
+
"eslint-plugin-import": "^2.31.0",
|
|
162
|
+
"get-port": "^7.1.0",
|
|
163
|
+
"nanoid": "^5.1.6",
|
|
164
|
+
"nodemon": "^3.1.10",
|
|
165
|
+
"ts-morph": "^27.0.2",
|
|
166
|
+
"tsc-watch": "^7.1.0",
|
|
167
|
+
"tsx": "^4.20.6",
|
|
168
|
+
"typescript": "^5.8.3",
|
|
169
|
+
"vite": "^6.3.5",
|
|
170
|
+
"vite-plugin-mkcert": "^1.17.9",
|
|
171
|
+
"vite-plugin-node-polyfills": "^0.24.0",
|
|
172
|
+
"wait-on": "^8.0.4",
|
|
173
|
+
"yaml": "^2.6.1",
|
|
174
|
+
"zod-to-json-schema": "^3.25.0"
|
|
175
|
+
}
|
|
176
|
+
}
|
package/scripts/post-install.ts
CHANGED
|
@@ -1,143 +1,143 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
|
|
4
|
-
import YAML from 'yaml';
|
|
5
|
-
|
|
6
|
-
interface PackageJson {
|
|
7
|
-
dependencies?: Record<string, string>;
|
|
8
|
-
devDependencies?: Record<string, string>;
|
|
9
|
-
name?: string;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
interface PnpmLockFile {
|
|
13
|
-
importers?: Record<string, {
|
|
14
|
-
dependencies?: Record<string, {
|
|
15
|
-
specifier: string;
|
|
16
|
-
version: string;
|
|
17
|
-
}>;
|
|
18
|
-
devDependencies?: Record<string, {
|
|
19
|
-
specifier: string;
|
|
20
|
-
version: string;
|
|
21
|
-
}>;
|
|
22
|
-
}>;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function generateDependenciesFile(): void {
|
|
26
|
-
try {
|
|
27
|
-
// Read main package.json to get dependency lists
|
|
28
|
-
const packageJsonPath = path.join(process.cwd(), 'package.json');
|
|
29
|
-
const packageJsonContent = fs.readFileSync(packageJsonPath, 'utf-8');
|
|
30
|
-
const packageJson: PackageJson = JSON.parse(packageJsonContent);
|
|
31
|
-
|
|
32
|
-
// Read pnpm-lock.yaml to get exact versions
|
|
33
|
-
const pnpmLockPath = path.join(process.cwd(), 'pnpm-lock.yaml');
|
|
34
|
-
if (!fs.existsSync(pnpmLockPath)) {
|
|
35
|
-
// this is a valid case when this package is installed as a dependency of another package
|
|
36
|
-
console.log('⚠️ Could not read pnpm-lock.yaml, skipping dependency versions');
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
const pnpmLockContent = fs.readFileSync(pnpmLockPath, 'utf-8');
|
|
40
|
-
const pnpmLock: PnpmLockFile = YAML.parse(pnpmLockContent);
|
|
41
|
-
|
|
42
|
-
// Extract dependency lists from both package.json files
|
|
43
|
-
const mainDependencyNames = Object.keys(packageJson.dependencies ?? {});
|
|
44
|
-
const mainDevDependencyNames = Object.keys(packageJson.devDependencies ?? {});
|
|
45
|
-
|
|
46
|
-
// Merge all dependency names, removing duplicates
|
|
47
|
-
const allDependencyNames = [...new Set([...mainDependencyNames])];
|
|
48
|
-
const allDevDependencyNames = [...new Set([...mainDevDependencyNames])];
|
|
49
|
-
|
|
50
|
-
// Helper function to extract version from pnpm lock entry
|
|
51
|
-
const extractVersion = (versionString: string): string => {
|
|
52
|
-
// pnpm versions can include peer dependency info in parentheses, e.g., "11.14.0(@types/react@19.2.7)(react@19.2.0)"
|
|
53
|
-
// We only want the base version number
|
|
54
|
-
return versionString.split('(')[0];
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
// Get exact versions from pnpm-lock.yaml
|
|
58
|
-
const dependencies: Record<string, string> = {};
|
|
59
|
-
const devDependencies: Record<string, string> = {};
|
|
60
|
-
|
|
61
|
-
// Get importers (root workspace)
|
|
62
|
-
const rootImporter = pnpmLock.importers?.['.'];
|
|
63
|
-
|
|
64
|
-
// Process production dependencies
|
|
65
|
-
for (const depName of allDependencyNames) {
|
|
66
|
-
// Check root workspace first
|
|
67
|
-
let version = rootImporter?.dependencies?.[depName]?.version;
|
|
68
|
-
if (version) {
|
|
69
|
-
dependencies[depName] = extractVersion(version);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Process dev dependencies
|
|
74
|
-
for (const depName of allDevDependencyNames) {
|
|
75
|
-
// Check root workspace first
|
|
76
|
-
let version = rootImporter?.devDependencies?.[depName]?.version;
|
|
77
|
-
if (version) {
|
|
78
|
-
devDependencies[depName] = extractVersion(version);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
// Generate TypeScript content
|
|
83
|
-
const tsContent = `/**
|
|
84
|
-
* Auto-generated file containing all package dependencies and their exact installed versions.
|
|
85
|
-
* This file is generated by the post-install script.
|
|
86
|
-
* Do not edit manually - it will be overwritten on next install.
|
|
87
|
-
*
|
|
88
|
-
* Versions are extracted from pnpm-lock.yaml to show exact installed versions,
|
|
89
|
-
* not the version ranges from package.json.
|
|
90
|
-
*
|
|
91
|
-
* Includes dependencies from the main package.
|
|
92
|
-
*/
|
|
93
|
-
|
|
94
|
-
export const DEPENDENCIES = {
|
|
95
|
-
${Object.entries(dependencies)
|
|
96
|
-
.map(([name, version]) => ` '${name}': '${version}',`)
|
|
97
|
-
.join('\n')}
|
|
98
|
-
} as const;
|
|
99
|
-
|
|
100
|
-
export const DEV_DEPENDENCIES = {
|
|
101
|
-
${Object.entries(devDependencies)
|
|
102
|
-
.map(([name, version]) => ` '${name}': '${version}',`)
|
|
103
|
-
.join('\n')}
|
|
104
|
-
} as const;
|
|
105
|
-
|
|
106
|
-
export const ALL_DEPENDENCIES = {
|
|
107
|
-
...DEPENDENCIES,
|
|
108
|
-
...DEV_DEPENDENCIES,
|
|
109
|
-
} as const;
|
|
110
|
-
|
|
111
|
-
export type DependencyName = keyof typeof ALL_DEPENDENCIES;
|
|
112
|
-
`;
|
|
113
|
-
|
|
114
|
-
// Write the TypeScript file
|
|
115
|
-
if (!fs.existsSync(path.join(process.cwd(), 'src'))) {
|
|
116
|
-
console.log('⚠️ src directory not found, skipping dependencies.ts file generation');
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
const outputPath = path.join(process.cwd(), 'src', 'dependencies.ts');
|
|
120
|
-
fs.writeFileSync(outputPath, tsContent, 'utf-8');
|
|
121
|
-
|
|
122
|
-
console.log('✅ Dependencies file generated successfully at src/dependencies.ts');
|
|
123
|
-
console.log(`📦 Found ${Object.keys(dependencies).length} production dependencies with exact versions`);
|
|
124
|
-
console.log(`🔧 Found ${Object.keys(devDependencies).length} development dependencies with exact versions`);
|
|
125
|
-
} catch (error) {
|
|
126
|
-
console.error('❌ Error generating dependencies file:', error);
|
|
127
|
-
process.exit(1);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
function deleteEngineAssets(): void {
|
|
132
|
-
const engineAssetsPath = path.join(process.cwd(), 'node_modules', 'genesys.js', 'assets');
|
|
133
|
-
if (fs.existsSync(engineAssetsPath)) {
|
|
134
|
-
fs.rmSync(engineAssetsPath, { recursive: true });
|
|
135
|
-
console.log('✅ Engine assets deleted successfully');
|
|
136
|
-
} else {
|
|
137
|
-
console.log('⚠️ Engine assets not found, skipping deletion');
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
// Run the script
|
|
142
|
-
generateDependenciesFile();
|
|
143
|
-
deleteEngineAssets();
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
|
|
4
|
+
import YAML from 'yaml';
|
|
5
|
+
|
|
6
|
+
interface PackageJson {
|
|
7
|
+
dependencies?: Record<string, string>;
|
|
8
|
+
devDependencies?: Record<string, string>;
|
|
9
|
+
name?: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface PnpmLockFile {
|
|
13
|
+
importers?: Record<string, {
|
|
14
|
+
dependencies?: Record<string, {
|
|
15
|
+
specifier: string;
|
|
16
|
+
version: string;
|
|
17
|
+
}>;
|
|
18
|
+
devDependencies?: Record<string, {
|
|
19
|
+
specifier: string;
|
|
20
|
+
version: string;
|
|
21
|
+
}>;
|
|
22
|
+
}>;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function generateDependenciesFile(): void {
|
|
26
|
+
try {
|
|
27
|
+
// Read main package.json to get dependency lists
|
|
28
|
+
const packageJsonPath = path.join(process.cwd(), 'package.json');
|
|
29
|
+
const packageJsonContent = fs.readFileSync(packageJsonPath, 'utf-8');
|
|
30
|
+
const packageJson: PackageJson = JSON.parse(packageJsonContent);
|
|
31
|
+
|
|
32
|
+
// Read pnpm-lock.yaml to get exact versions
|
|
33
|
+
const pnpmLockPath = path.join(process.cwd(), 'pnpm-lock.yaml');
|
|
34
|
+
if (!fs.existsSync(pnpmLockPath)) {
|
|
35
|
+
// this is a valid case when this package is installed as a dependency of another package
|
|
36
|
+
console.log('⚠️ Could not read pnpm-lock.yaml, skipping dependency versions');
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const pnpmLockContent = fs.readFileSync(pnpmLockPath, 'utf-8');
|
|
40
|
+
const pnpmLock: PnpmLockFile = YAML.parse(pnpmLockContent);
|
|
41
|
+
|
|
42
|
+
// Extract dependency lists from both package.json files
|
|
43
|
+
const mainDependencyNames = Object.keys(packageJson.dependencies ?? {});
|
|
44
|
+
const mainDevDependencyNames = Object.keys(packageJson.devDependencies ?? {});
|
|
45
|
+
|
|
46
|
+
// Merge all dependency names, removing duplicates
|
|
47
|
+
const allDependencyNames = [...new Set([...mainDependencyNames])];
|
|
48
|
+
const allDevDependencyNames = [...new Set([...mainDevDependencyNames])];
|
|
49
|
+
|
|
50
|
+
// Helper function to extract version from pnpm lock entry
|
|
51
|
+
const extractVersion = (versionString: string): string => {
|
|
52
|
+
// pnpm versions can include peer dependency info in parentheses, e.g., "11.14.0(@types/react@19.2.7)(react@19.2.0)"
|
|
53
|
+
// We only want the base version number
|
|
54
|
+
return versionString.split('(')[0];
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
// Get exact versions from pnpm-lock.yaml
|
|
58
|
+
const dependencies: Record<string, string> = {};
|
|
59
|
+
const devDependencies: Record<string, string> = {};
|
|
60
|
+
|
|
61
|
+
// Get importers (root workspace)
|
|
62
|
+
const rootImporter = pnpmLock.importers?.['.'];
|
|
63
|
+
|
|
64
|
+
// Process production dependencies
|
|
65
|
+
for (const depName of allDependencyNames) {
|
|
66
|
+
// Check root workspace first
|
|
67
|
+
let version = rootImporter?.dependencies?.[depName]?.version;
|
|
68
|
+
if (version) {
|
|
69
|
+
dependencies[depName] = extractVersion(version);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Process dev dependencies
|
|
74
|
+
for (const depName of allDevDependencyNames) {
|
|
75
|
+
// Check root workspace first
|
|
76
|
+
let version = rootImporter?.devDependencies?.[depName]?.version;
|
|
77
|
+
if (version) {
|
|
78
|
+
devDependencies[depName] = extractVersion(version);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Generate TypeScript content
|
|
83
|
+
const tsContent = `/**
|
|
84
|
+
* Auto-generated file containing all package dependencies and their exact installed versions.
|
|
85
|
+
* This file is generated by the post-install script.
|
|
86
|
+
* Do not edit manually - it will be overwritten on next install.
|
|
87
|
+
*
|
|
88
|
+
* Versions are extracted from pnpm-lock.yaml to show exact installed versions,
|
|
89
|
+
* not the version ranges from package.json.
|
|
90
|
+
*
|
|
91
|
+
* Includes dependencies from the main package.
|
|
92
|
+
*/
|
|
93
|
+
|
|
94
|
+
export const DEPENDENCIES = {
|
|
95
|
+
${Object.entries(dependencies)
|
|
96
|
+
.map(([name, version]) => ` '${name}': '${version}',`)
|
|
97
|
+
.join('\n')}
|
|
98
|
+
} as const;
|
|
99
|
+
|
|
100
|
+
export const DEV_DEPENDENCIES = {
|
|
101
|
+
${Object.entries(devDependencies)
|
|
102
|
+
.map(([name, version]) => ` '${name}': '${version}',`)
|
|
103
|
+
.join('\n')}
|
|
104
|
+
} as const;
|
|
105
|
+
|
|
106
|
+
export const ALL_DEPENDENCIES = {
|
|
107
|
+
...DEPENDENCIES,
|
|
108
|
+
...DEV_DEPENDENCIES,
|
|
109
|
+
} as const;
|
|
110
|
+
|
|
111
|
+
export type DependencyName = keyof typeof ALL_DEPENDENCIES;
|
|
112
|
+
`;
|
|
113
|
+
|
|
114
|
+
// Write the TypeScript file
|
|
115
|
+
if (!fs.existsSync(path.join(process.cwd(), 'src'))) {
|
|
116
|
+
console.log('⚠️ src directory not found, skipping dependencies.ts file generation');
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const outputPath = path.join(process.cwd(), 'src', 'dependencies.ts');
|
|
120
|
+
fs.writeFileSync(outputPath, tsContent, 'utf-8');
|
|
121
|
+
|
|
122
|
+
console.log('✅ Dependencies file generated successfully at src/dependencies.ts');
|
|
123
|
+
console.log(`📦 Found ${Object.keys(dependencies).length} production dependencies with exact versions`);
|
|
124
|
+
console.log(`🔧 Found ${Object.keys(devDependencies).length} development dependencies with exact versions`);
|
|
125
|
+
} catch (error) {
|
|
126
|
+
console.error('❌ Error generating dependencies file:', error);
|
|
127
|
+
process.exit(1);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function deleteEngineAssets(): void {
|
|
132
|
+
const engineAssetsPath = path.join(process.cwd(), 'node_modules', 'genesys.js', 'assets');
|
|
133
|
+
if (fs.existsSync(engineAssetsPath)) {
|
|
134
|
+
fs.rmSync(engineAssetsPath, { recursive: true });
|
|
135
|
+
console.log('✅ Engine assets deleted successfully');
|
|
136
|
+
} else {
|
|
137
|
+
console.log('⚠️ Engine assets not found, skipping deletion');
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Run the script
|
|
142
|
+
generateDependenciesFile();
|
|
143
|
+
deleteEngineAssets();
|