@energy8platform/game-engine 0.10.0 → 0.10.2
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/vite.cjs.js +31 -0
- package/dist/vite.cjs.js.map +1 -1
- package/dist/vite.esm.js +31 -0
- package/dist/vite.esm.js.map +1 -1
- package/package.json +2 -1
- package/src/vite/index.ts +35 -0
package/dist/vite.cjs.js
CHANGED
|
@@ -68,11 +68,30 @@ await import('${entrySrc}');
|
|
|
68
68
|
/**
|
|
69
69
|
* Vite plugin that enables importing `.lua` files as raw strings
|
|
70
70
|
* and triggers a full page reload on `.lua` file changes.
|
|
71
|
+
*
|
|
72
|
+
* Also shims Node.js built-in modules (`os`, `child_process`, etc.) that
|
|
73
|
+
* `fengari` references at the top level so the library can be pre-bundled
|
|
74
|
+
* by esbuild and run in the browser without errors.
|
|
71
75
|
*/
|
|
76
|
+
const FENGARI_NODE_SHIMS = {
|
|
77
|
+
os: 'export function platform() { return "browser"; } export default { platform };',
|
|
78
|
+
child_process: 'export default {};',
|
|
79
|
+
fs: 'export default {};',
|
|
80
|
+
};
|
|
72
81
|
function luaPlugin() {
|
|
73
82
|
return {
|
|
74
83
|
name: 'game-engine:lua',
|
|
75
84
|
apply: 'serve',
|
|
85
|
+
resolveId(id) {
|
|
86
|
+
if (id in FENGARI_NODE_SHIMS)
|
|
87
|
+
return `\0fengari-shim:${id}`;
|
|
88
|
+
},
|
|
89
|
+
load(id) {
|
|
90
|
+
if (id.startsWith('\0fengari-shim:')) {
|
|
91
|
+
const mod = id.slice('\0fengari-shim:'.length);
|
|
92
|
+
return FENGARI_NODE_SHIMS[mod];
|
|
93
|
+
}
|
|
94
|
+
},
|
|
76
95
|
transform(code, id) {
|
|
77
96
|
if (id.endsWith('.lua')) {
|
|
78
97
|
return {
|
|
@@ -118,12 +137,23 @@ function defineGameConfig(config = {}) {
|
|
|
118
137
|
plugins.push(luaPlugin());
|
|
119
138
|
}
|
|
120
139
|
const userVite = config.vite ?? {};
|
|
140
|
+
// fengari (Lua 5.3 in JS) is a CJS Node.js package that references `process`
|
|
141
|
+
// and `require('os')` at module level. Provide shims so it works in the browser.
|
|
142
|
+
const fengariShims = config.devBridge ? {
|
|
143
|
+
'process.versions.node': 'undefined',
|
|
144
|
+
'process.env': '({})',
|
|
145
|
+
'process.platform': '"browser"',
|
|
146
|
+
} : {};
|
|
121
147
|
return {
|
|
122
148
|
base: config.base ?? '/',
|
|
123
149
|
plugins: [
|
|
124
150
|
...plugins,
|
|
125
151
|
...(userVite.plugins ?? []),
|
|
126
152
|
],
|
|
153
|
+
define: {
|
|
154
|
+
...fengariShims,
|
|
155
|
+
...userVite.define,
|
|
156
|
+
},
|
|
127
157
|
build: {
|
|
128
158
|
target: 'esnext',
|
|
129
159
|
assetsInlineLimit: 8192,
|
|
@@ -165,6 +195,7 @@ function defineGameConfig(config = {}) {
|
|
|
165
195
|
'yoga-layout/load',
|
|
166
196
|
'react',
|
|
167
197
|
'react-dom',
|
|
198
|
+
...(config.devBridge ? ['fengari'] : []),
|
|
168
199
|
],
|
|
169
200
|
exclude: [
|
|
170
201
|
'yoga-layout',
|
package/dist/vite.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite.cjs.js","sources":["../src/vite/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAkBA;AAEA;;;;AAIG;AACH,MAAM,UAAU,GAAG,uBAAuB;AAE1C,SAAS,eAAe,CAAC,UAAkB,EAAA;IACzC,IAAI,QAAQ,GAAG,EAAE;IACjB,IAAI,QAAQ,GAAG,EAAE;IACjB,IAAI,kBAAkB,GAAG,UAAU;IAEnC,OAAO;AACL,QAAA,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,OAAO;AACd,QAAA,OAAO,EAAE,KAAK;AAEd,QAAA,cAAc,CAAC,MAAM,EAAA;AACnB,YAAA,QAAQ,GAAG,MAAM,CAAC,IAAI;;;AAGtB,YAAA,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC9B,gBAAA,kBAAkB,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1E;QACF,CAAC;AAED,QAAA,SAAS,CAAC,EAAE,EAAA;YACV,IAAI,EAAE,KAAK,UAAU;AAAE,gBAAA,OAAO,EAAE;QAClC,CAAC;AAED,QAAA,IAAI,CAAC,EAAE,EAAA;AACL,YAAA,IAAI,EAAE,KAAK,UAAU,EAAE;;gBAErB,OAAO;;;;8BAIe,kBAAkB,CAAA;;;;;;;gBAOhC,QAAQ,CAAA;CACvB;YACK;QACF,CAAC;AAED,QAAA,kBAAkB,CAAC,IAAI,EAAA;;YAErB,MAAM,WAAW,GAAG,iEAAiE;YACrF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YAErC,IAAI,CAAC,KAAK,EAAE;AACV,gBAAA,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC;AAC5E,gBAAA,OAAO,IAAI;YACb;AAEA,YAAA,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;AACnB,YAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC5B,gBAAA,QAAQ,GAAG,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3D;AAAO,iBAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACnC,gBAAA,QAAQ,GAAG,QAAQ,GAAG,QAAQ;YAChC;AACA,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA,2BAAA,EAA8B,UAAU,CAAA,WAAA,CAAa,CAAC;QACtF,CAAC;KACF;AACH;AAEA;AAEA
|
|
1
|
+
{"version":3,"file":"vite.cjs.js","sources":["../src/vite/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/vite.esm.js
CHANGED
|
@@ -66,11 +66,30 @@ await import('${entrySrc}');
|
|
|
66
66
|
/**
|
|
67
67
|
* Vite plugin that enables importing `.lua` files as raw strings
|
|
68
68
|
* and triggers a full page reload on `.lua` file changes.
|
|
69
|
+
*
|
|
70
|
+
* Also shims Node.js built-in modules (`os`, `child_process`, etc.) that
|
|
71
|
+
* `fengari` references at the top level so the library can be pre-bundled
|
|
72
|
+
* by esbuild and run in the browser without errors.
|
|
69
73
|
*/
|
|
74
|
+
const FENGARI_NODE_SHIMS = {
|
|
75
|
+
os: 'export function platform() { return "browser"; } export default { platform };',
|
|
76
|
+
child_process: 'export default {};',
|
|
77
|
+
fs: 'export default {};',
|
|
78
|
+
};
|
|
70
79
|
function luaPlugin() {
|
|
71
80
|
return {
|
|
72
81
|
name: 'game-engine:lua',
|
|
73
82
|
apply: 'serve',
|
|
83
|
+
resolveId(id) {
|
|
84
|
+
if (id in FENGARI_NODE_SHIMS)
|
|
85
|
+
return `\0fengari-shim:${id}`;
|
|
86
|
+
},
|
|
87
|
+
load(id) {
|
|
88
|
+
if (id.startsWith('\0fengari-shim:')) {
|
|
89
|
+
const mod = id.slice('\0fengari-shim:'.length);
|
|
90
|
+
return FENGARI_NODE_SHIMS[mod];
|
|
91
|
+
}
|
|
92
|
+
},
|
|
74
93
|
transform(code, id) {
|
|
75
94
|
if (id.endsWith('.lua')) {
|
|
76
95
|
return {
|
|
@@ -116,12 +135,23 @@ function defineGameConfig(config = {}) {
|
|
|
116
135
|
plugins.push(luaPlugin());
|
|
117
136
|
}
|
|
118
137
|
const userVite = config.vite ?? {};
|
|
138
|
+
// fengari (Lua 5.3 in JS) is a CJS Node.js package that references `process`
|
|
139
|
+
// and `require('os')` at module level. Provide shims so it works in the browser.
|
|
140
|
+
const fengariShims = config.devBridge ? {
|
|
141
|
+
'process.versions.node': 'undefined',
|
|
142
|
+
'process.env': '({})',
|
|
143
|
+
'process.platform': '"browser"',
|
|
144
|
+
} : {};
|
|
119
145
|
return {
|
|
120
146
|
base: config.base ?? '/',
|
|
121
147
|
plugins: [
|
|
122
148
|
...plugins,
|
|
123
149
|
...(userVite.plugins ?? []),
|
|
124
150
|
],
|
|
151
|
+
define: {
|
|
152
|
+
...fengariShims,
|
|
153
|
+
...userVite.define,
|
|
154
|
+
},
|
|
125
155
|
build: {
|
|
126
156
|
target: 'esnext',
|
|
127
157
|
assetsInlineLimit: 8192,
|
|
@@ -163,6 +193,7 @@ function defineGameConfig(config = {}) {
|
|
|
163
193
|
'yoga-layout/load',
|
|
164
194
|
'react',
|
|
165
195
|
'react-dom',
|
|
196
|
+
...(config.devBridge ? ['fengari'] : []),
|
|
166
197
|
],
|
|
167
198
|
exclude: [
|
|
168
199
|
'yoga-layout',
|
package/dist/vite.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite.esm.js","sources":["../src/vite/index.ts"],"sourcesContent":[null],"names":[],"mappings":"AAkBA;AAEA;;;;AAIG;AACH,MAAM,UAAU,GAAG,uBAAuB;AAE1C,SAAS,eAAe,CAAC,UAAkB,EAAA;IACzC,IAAI,QAAQ,GAAG,EAAE;IACjB,IAAI,QAAQ,GAAG,EAAE;IACjB,IAAI,kBAAkB,GAAG,UAAU;IAEnC,OAAO;AACL,QAAA,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,OAAO;AACd,QAAA,OAAO,EAAE,KAAK;AAEd,QAAA,cAAc,CAAC,MAAM,EAAA;AACnB,YAAA,QAAQ,GAAG,MAAM,CAAC,IAAI;;;AAGtB,YAAA,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC9B,gBAAA,kBAAkB,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1E;QACF,CAAC;AAED,QAAA,SAAS,CAAC,EAAE,EAAA;YACV,IAAI,EAAE,KAAK,UAAU;AAAE,gBAAA,OAAO,EAAE;QAClC,CAAC;AAED,QAAA,IAAI,CAAC,EAAE,EAAA;AACL,YAAA,IAAI,EAAE,KAAK,UAAU,EAAE;;gBAErB,OAAO;;;;8BAIe,kBAAkB,CAAA;;;;;;;gBAOhC,QAAQ,CAAA;CACvB;YACK;QACF,CAAC;AAED,QAAA,kBAAkB,CAAC,IAAI,EAAA;;YAErB,MAAM,WAAW,GAAG,iEAAiE;YACrF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YAErC,IAAI,CAAC,KAAK,EAAE;AACV,gBAAA,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC;AAC5E,gBAAA,OAAO,IAAI;YACb;AAEA,YAAA,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;AACnB,YAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC5B,gBAAA,QAAQ,GAAG,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3D;AAAO,iBAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACnC,gBAAA,QAAQ,GAAG,QAAQ,GAAG,QAAQ;YAChC;AACA,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA,2BAAA,EAA8B,UAAU,CAAA,WAAA,CAAa,CAAC;QACtF,CAAC;KACF;AACH;AAEA;AAEA
|
|
1
|
+
{"version":3,"file":"vite.esm.js","sources":["../src/vite/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@energy8platform/game-engine",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.2",
|
|
4
4
|
"description": "Universal casino game engine built on PixiJS v8 and @energy8platform/game-sdk",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs.js",
|
|
@@ -130,6 +130,7 @@
|
|
|
130
130
|
"@typescript-eslint/parser": "^8.0.0",
|
|
131
131
|
"eslint": "^9.0.0",
|
|
132
132
|
"fengari": "^0.1.5",
|
|
133
|
+
"fengari-web": "^0.1.4",
|
|
133
134
|
"pixi.js": "^8.16.0",
|
|
134
135
|
"prettier": "^3.4.0",
|
|
135
136
|
"react": "^19.0.0",
|
package/src/vite/index.ts
CHANGED
|
@@ -93,12 +93,33 @@ await import('${entrySrc}');
|
|
|
93
93
|
/**
|
|
94
94
|
* Vite plugin that enables importing `.lua` files as raw strings
|
|
95
95
|
* and triggers a full page reload on `.lua` file changes.
|
|
96
|
+
*
|
|
97
|
+
* Also shims Node.js built-in modules (`os`, `child_process`, etc.) that
|
|
98
|
+
* `fengari` references at the top level so the library can be pre-bundled
|
|
99
|
+
* by esbuild and run in the browser without errors.
|
|
96
100
|
*/
|
|
101
|
+
const FENGARI_NODE_SHIMS: Record<string, string> = {
|
|
102
|
+
os: 'export function platform() { return "browser"; } export default { platform };',
|
|
103
|
+
child_process: 'export default {};',
|
|
104
|
+
fs: 'export default {};',
|
|
105
|
+
};
|
|
106
|
+
|
|
97
107
|
function luaPlugin(): Plugin {
|
|
98
108
|
return {
|
|
99
109
|
name: 'game-engine:lua',
|
|
100
110
|
apply: 'serve',
|
|
101
111
|
|
|
112
|
+
resolveId(id: string) {
|
|
113
|
+
if (id in FENGARI_NODE_SHIMS) return `\0fengari-shim:${id}`;
|
|
114
|
+
},
|
|
115
|
+
|
|
116
|
+
load(id: string) {
|
|
117
|
+
if (id.startsWith('\0fengari-shim:')) {
|
|
118
|
+
const mod = id.slice('\0fengari-shim:'.length);
|
|
119
|
+
return FENGARI_NODE_SHIMS[mod];
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
|
|
102
123
|
transform(code: string, id: string) {
|
|
103
124
|
if (id.endsWith('.lua')) {
|
|
104
125
|
return {
|
|
@@ -150,6 +171,14 @@ export function defineGameConfig(config: GameConfig = {}): UserConfig {
|
|
|
150
171
|
|
|
151
172
|
const userVite = config.vite ?? {};
|
|
152
173
|
|
|
174
|
+
// fengari (Lua 5.3 in JS) is a CJS Node.js package that references `process`
|
|
175
|
+
// and `require('os')` at module level. Provide shims so it works in the browser.
|
|
176
|
+
const fengariShims: Record<string, string> = config.devBridge ? {
|
|
177
|
+
'process.versions.node': 'undefined',
|
|
178
|
+
'process.env': '({})',
|
|
179
|
+
'process.platform': '"browser"',
|
|
180
|
+
} : {};
|
|
181
|
+
|
|
153
182
|
return {
|
|
154
183
|
base: config.base ?? '/',
|
|
155
184
|
|
|
@@ -158,6 +187,11 @@ export function defineGameConfig(config: GameConfig = {}): UserConfig {
|
|
|
158
187
|
...((userVite.plugins as Plugin[]) ?? []),
|
|
159
188
|
],
|
|
160
189
|
|
|
190
|
+
define: {
|
|
191
|
+
...fengariShims,
|
|
192
|
+
...(userVite as Record<string, any>).define,
|
|
193
|
+
},
|
|
194
|
+
|
|
161
195
|
build: {
|
|
162
196
|
target: 'esnext',
|
|
163
197
|
assetsInlineLimit: 8192,
|
|
@@ -202,6 +236,7 @@ export function defineGameConfig(config: GameConfig = {}): UserConfig {
|
|
|
202
236
|
'yoga-layout/load',
|
|
203
237
|
'react',
|
|
204
238
|
'react-dom',
|
|
239
|
+
...(config.devBridge ? ['fengari'] : []),
|
|
205
240
|
],
|
|
206
241
|
exclude: [
|
|
207
242
|
'yoga-layout',
|