@datamoc/mw_games 0.34.0 → 0.35.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/CHANGELOG.md +16 -0
- package/api-surface.json +60 -0
- package/dist/mw_games.global.js +1 -1
- package/dist/mwl/fengari-runtime.d.ts +75 -0
- package/dist/mwl/fengari-runtime.d.ts.map +1 -0
- package/dist/mwl/fengari-runtime.js +534 -0
- package/dist/mwl/fengari-runtime.js.map +1 -0
- package/dist/mwl/fengari.d.ts +18 -0
- package/dist/mwl/fengari.d.ts.map +1 -1
- package/dist/mwl/fengari.js +46 -49
- package/dist/mwl/fengari.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
- package/sbom.cdx.json +12 -12
package/dist/mwl/fengari.js
CHANGED
|
@@ -1,17 +1,25 @@
|
|
|
1
|
-
// @datamoc/fengari intentionally ships JavaScript without TypeScript declarations.
|
|
2
|
-
// @ts-expect-error Fengari has no declarations in its npm package.
|
|
3
1
|
import fengari from '@datamoc/fengari';
|
|
4
2
|
const { lauxlib, lua, lualib } = fengari;
|
|
5
3
|
const to_luastring = (str) => new TextEncoder().encode(str);
|
|
4
|
+
export { createFengariRuntime } from './fengari-runtime.js';
|
|
5
|
+
/**
|
|
6
|
+
* Translates Lua source to readable JavaScript without running it, for a game that
|
|
7
|
+
* is leaving Lua scripting behind. Metatables, coroutines, general `goto` and some
|
|
8
|
+
* patterns are not translated: they stay as `TODO(lua2js)` comments and `warnings`.
|
|
9
|
+
* Throws a `LuaSyntaxError` for source that does not parse.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { luaToJs } from '@datamoc/mw_games/mwl/fengari';
|
|
14
|
+
*
|
|
15
|
+
* const { code } = luaToJs('function double(n) return n * 2 end', { format: 'esm' });
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export function luaToJs(source, options = {}) {
|
|
19
|
+
return fengari.FengariVm.toJs(source, options);
|
|
20
|
+
}
|
|
6
21
|
const DEFAULT_INSTRUCTION_LIMIT = 100_000;
|
|
7
22
|
const DEFAULT_MEMORY_LIMIT = 32 * 1024 * 1024;
|
|
8
|
-
/** only the sandbox-safe standard libraries: `io`, `os`, `debug` and `package` are never opened */
|
|
9
|
-
const SAFE_LIBRARIES = lualib.LUA_GLIBK |
|
|
10
|
-
lualib.LUA_COLIBK |
|
|
11
|
-
lualib.LUA_MATHLIBK |
|
|
12
|
-
lualib.LUA_STRLIBK |
|
|
13
|
-
lualib.LUA_TABLIBK |
|
|
14
|
-
lualib.LUA_UTF8LIBK;
|
|
15
23
|
/**
|
|
16
24
|
* Optional Lua 5.4 host. Fengari is loaded only by this subpath, never by `mwg/mwl`.
|
|
17
25
|
*
|
|
@@ -37,8 +45,6 @@ const SAFE_LIBRARIES = lualib.LUA_GLIBK |
|
|
|
37
45
|
* ```
|
|
38
46
|
*/
|
|
39
47
|
export function createFengariScriptHost(options = {}) {
|
|
40
|
-
const state = lauxlib.luaL_newstate();
|
|
41
|
-
lualib.luaL_openselectedlibs(state, SAFE_LIBRARIES, 0);
|
|
42
48
|
const limit = options.instructionLimit ?? DEFAULT_INSTRUCTION_LIMIT;
|
|
43
49
|
if (!Number.isInteger(limit) || limit < 1)
|
|
44
50
|
throw new RangeError('instructionLimit must be a positive integer');
|
|
@@ -47,21 +53,23 @@ export function createFengariScriptHost(options = {}) {
|
|
|
47
53
|
throw new RangeError('memoryLimit must be a positive integer');
|
|
48
54
|
let randomState = (options.seed ?? 0x6d7767) >>> 0;
|
|
49
55
|
let emit;
|
|
50
|
-
//
|
|
51
|
-
//
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
56
|
+
// Keep our text-only loader and JSON conversion, but share Fengari's guard with
|
|
57
|
+
// native operations, coroutine resumes and script-level protected calls.
|
|
58
|
+
const vm = new fengari.FengariVm(undefined, options.seed, {
|
|
59
|
+
sandbox: true,
|
|
60
|
+
libs: [],
|
|
61
|
+
remove: ['load', 'print', '__random'],
|
|
62
|
+
limits: { instructions: limit, totalAllocation: memoryLimit },
|
|
63
|
+
});
|
|
64
|
+
const state = vm.state;
|
|
65
|
+
// Open the native libraries after construction to keep the original print function,
|
|
66
|
+
// rather than FengariVm's accumulating output buffer.
|
|
67
|
+
lualib.luaL_openselectedlibs(state, lualib.LUA_GLIBK |
|
|
68
|
+
lualib.LUA_COLIBK |
|
|
69
|
+
lualib.LUA_MATHLIBK |
|
|
70
|
+
lualib.LUA_STRLIBK |
|
|
71
|
+
lualib.LUA_TABLIBK |
|
|
72
|
+
lualib.LUA_UTF8LIBK, 0);
|
|
65
73
|
const push = (value) => {
|
|
66
74
|
if (value === null)
|
|
67
75
|
return lua.lua_pushnil(state);
|
|
@@ -120,40 +128,28 @@ export function createFengariScriptHost(options = {}) {
|
|
|
120
128
|
}
|
|
121
129
|
};
|
|
122
130
|
const protectedCall = (args, results) => {
|
|
123
|
-
let remaining = limit;
|
|
124
|
-
lua.lua_sethook(state, () => {
|
|
125
|
-
remaining -= limit > 1000 ? 1000 : 1;
|
|
126
|
-
if (remaining <= 0) {
|
|
127
|
-
lua.lua_pushstring(state, to_luastring('Lua instruction limit exceeded'));
|
|
128
|
-
lua.lua_error(state);
|
|
129
|
-
}
|
|
130
|
-
}, lua.LUA_MASKCOUNT, limit > 1000 ? 1000 : 1);
|
|
131
|
-
//the memory budget is reset by the caller (run/call), not here, so the parse of a
|
|
132
|
-
//chunk is charged against the same budget as its execution
|
|
133
131
|
const status = lua.lua_pcall(state, args, results, 0);
|
|
134
|
-
|
|
135
|
-
if (budget.exceeded) {
|
|
132
|
+
if (vm.limitHit !== null) {
|
|
136
133
|
lua.lua_settop(state, 0);
|
|
137
|
-
throw new Error(
|
|
134
|
+
throw new Error(`Lua ${vm.limitHit === 'memory' ? 'memory' : 'instruction'} limit exceeded`);
|
|
138
135
|
}
|
|
139
136
|
if (status !== lua.LUA_OK)
|
|
140
137
|
throw new Error(lua.lua_tojsstring(state, -1) ?? 'Lua execution error');
|
|
141
138
|
return results === 0 ? null : read(state, -1);
|
|
142
139
|
};
|
|
143
|
-
const run = (source, results) => {
|
|
140
|
+
const run = (source, results) => vm.guarded(() => {
|
|
144
141
|
lua.lua_settop(state, 0);
|
|
145
|
-
resetBudget();
|
|
146
142
|
const bytes = to_luastring(source);
|
|
147
143
|
//'t' compiles text only: a '\x1bLua' binary dump must never reach the bytecode undumper
|
|
148
144
|
const loadStatus = lauxlib.luaL_loadbufferx(state, bytes, bytes.length, bytes, to_luastring('t'));
|
|
149
145
|
if (loadStatus !== lua.LUA_OK) {
|
|
150
146
|
//a budget exhausted by parsing itself is a limit error, not a syntax error
|
|
151
|
-
if (
|
|
147
|
+
if (vm.limitHit === 'memory')
|
|
152
148
|
throw new Error('Lua memory limit exceeded');
|
|
153
149
|
throw new Error(lua.lua_tojsstring(state, -1) ?? 'Lua syntax error');
|
|
154
150
|
}
|
|
155
151
|
return protectedCall(0, results);
|
|
156
|
-
};
|
|
152
|
+
});
|
|
157
153
|
const install = (context, callback) => {
|
|
158
154
|
emit = callback;
|
|
159
155
|
setContext(context);
|
|
@@ -171,7 +167,7 @@ export function createFengariScriptHost(options = {}) {
|
|
|
171
167
|
return 1;
|
|
172
168
|
});
|
|
173
169
|
lua.lua_setglobal(state, to_luastring('__mwg_random'));
|
|
174
|
-
const sandbox = 'load=nil; loadfile=nil; dofile=nil; math.random=__mwg_random; math.randomseed=function() end';
|
|
170
|
+
const sandbox = 'load=nil; loadfile=nil; dofile=nil; __random=nil; string.dump=nil; math.random=__mwg_random; math.randomseed=function() end';
|
|
175
171
|
run(sandbox, 0);
|
|
176
172
|
};
|
|
177
173
|
//hides the string metatable (the `string` library itself) from `getmetatable("")`
|
|
@@ -187,11 +183,12 @@ export function createFengariScriptHost(options = {}) {
|
|
|
187
183
|
},
|
|
188
184
|
call(name, args = [], context = {}, callback) {
|
|
189
185
|
install(context, callback);
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
186
|
+
return vm.guarded(() => {
|
|
187
|
+
lua.lua_settop(state, 0);
|
|
188
|
+
lua.lua_getglobal(state, to_luastring(name));
|
|
189
|
+
args.forEach(push);
|
|
190
|
+
return protectedCall(args.length, 1);
|
|
191
|
+
});
|
|
195
192
|
},
|
|
196
193
|
dispose() {
|
|
197
194
|
lua.lua_close(state);
|
package/dist/mwl/fengari.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fengari.js","sourceRoot":"","sources":["../../src/mwl/fengari.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"fengari.js","sourceRoot":"","sources":["../../src/mwl/fengari.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
* this from `package.json` automatically, chosen because this project's own build already
|
|
10
10
|
* has no step before `tsc`/`vite` that this would need to run ahead of.
|
|
11
11
|
*/
|
|
12
|
-
export declare const version = "0.
|
|
12
|
+
export declare const version = "0.35.0";
|
|
13
13
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
* this from `package.json` automatically, chosen because this project's own build already
|
|
10
10
|
* has no step before `tsc`/`vite` that this would need to run ahead of.
|
|
11
11
|
*/
|
|
12
|
-
export const version = '0.
|
|
12
|
+
export const version = '0.35.0';
|
|
13
13
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datamoc/mw_games",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.35.0",
|
|
4
4
|
"description": "A local-file game framework: renderer-free game logic, drawn through PixiJS in 2D or Babylon.js in 3D, with mobile and desktop packaging.",
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -417,6 +417,6 @@
|
|
|
417
417
|
"types": "./dist/index.d.ts",
|
|
418
418
|
"unpkg": "./dist/mw_games.global.js",
|
|
419
419
|
"optionalDependencies": {
|
|
420
|
-
"@datamoc/fengari": "^0.
|
|
420
|
+
"@datamoc/fengari": "^0.5.2"
|
|
421
421
|
}
|
|
422
422
|
}
|
package/sbom.cdx.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"bomFormat": "CycloneDX",
|
|
3
3
|
"specVersion": "1.6",
|
|
4
|
-
"serialNumber": "urn:uuid:
|
|
4
|
+
"serialNumber": "urn:uuid:1560a5c9-c2d1-5ffe-83a8-6af0fb1b2a7e",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"metadata": {
|
|
7
7
|
"tools": {
|
|
@@ -10,16 +10,16 @@
|
|
|
10
10
|
"type": "application",
|
|
11
11
|
"group": "datamoc",
|
|
12
12
|
"name": "tools/sbom.mjs",
|
|
13
|
-
"version": "0.
|
|
13
|
+
"version": "0.35.0"
|
|
14
14
|
}
|
|
15
15
|
]
|
|
16
16
|
},
|
|
17
17
|
"component": {
|
|
18
18
|
"type": "library",
|
|
19
|
-
"bom-ref": "pkg:npm/%40datamoc/mw_games@0.
|
|
19
|
+
"bom-ref": "pkg:npm/%40datamoc/mw_games@0.35.0",
|
|
20
20
|
"name": "@datamoc/mw_games",
|
|
21
|
-
"version": "0.
|
|
22
|
-
"purl": "pkg:npm/%40datamoc/mw_games@0.
|
|
21
|
+
"version": "0.35.0",
|
|
22
|
+
"purl": "pkg:npm/%40datamoc/mw_games@0.35.0",
|
|
23
23
|
"description": "A local-file game framework: renderer-free game logic, drawn through PixiJS in 2D or Babylon.js in 3D, with mobile and desktop packaging.",
|
|
24
24
|
"licenses": [
|
|
25
25
|
{
|
|
@@ -159,15 +159,15 @@
|
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
161
|
"type": "library",
|
|
162
|
-
"bom-ref": "pkg:npm/%40datamoc/fengari@0.
|
|
162
|
+
"bom-ref": "pkg:npm/%40datamoc/fengari@0.5.2",
|
|
163
163
|
"name": "@datamoc/fengari",
|
|
164
|
-
"version": "0.
|
|
165
|
-
"purl": "pkg:npm/%40datamoc/fengari@0.
|
|
164
|
+
"version": "0.5.2",
|
|
165
|
+
"purl": "pkg:npm/%40datamoc/fengari@0.5.2",
|
|
166
166
|
"scope": "optional",
|
|
167
167
|
"hashes": [
|
|
168
168
|
{
|
|
169
169
|
"alg": "SHA-512",
|
|
170
|
-
"content": "
|
|
170
|
+
"content": "5ecc773f7497b0ee51dc4491f8d140cef42fcf8a7b1245f56da1f0c223a9084623cb8cb7cf2305f119e87ed7be5032a59b9581d3e9ef6d0b372006559db64b18"
|
|
171
171
|
}
|
|
172
172
|
],
|
|
173
173
|
"licenses": [
|
|
@@ -4601,7 +4601,7 @@
|
|
|
4601
4601
|
]
|
|
4602
4602
|
},
|
|
4603
4603
|
{
|
|
4604
|
-
"ref": "pkg:npm/%40datamoc/fengari@0.
|
|
4604
|
+
"ref": "pkg:npm/%40datamoc/fengari@0.5.2",
|
|
4605
4605
|
"dependsOn": [
|
|
4606
4606
|
"pkg:npm/readline-sync@1.4.10",
|
|
4607
4607
|
"pkg:npm/sprintf-js@1.1.3",
|
|
@@ -4609,7 +4609,7 @@
|
|
|
4609
4609
|
]
|
|
4610
4610
|
},
|
|
4611
4611
|
{
|
|
4612
|
-
"ref": "pkg:npm/%40datamoc/mw_games@0.
|
|
4612
|
+
"ref": "pkg:npm/%40datamoc/mw_games@0.35.0",
|
|
4613
4613
|
"dependsOn": [
|
|
4614
4614
|
"pkg:npm/%40babylonjs/core@9.30.0",
|
|
4615
4615
|
"pkg:npm/%40babylonjs/loaders@9.30.0",
|
|
@@ -4617,7 +4617,7 @@
|
|
|
4617
4617
|
"pkg:npm/%40capacitor/cli@8.5.3",
|
|
4618
4618
|
"pkg:npm/%40capacitor/core@8.5.3",
|
|
4619
4619
|
"pkg:npm/%40capacitor/ios@8.5.3",
|
|
4620
|
-
"pkg:npm/%40datamoc/fengari@0.
|
|
4620
|
+
"pkg:npm/%40datamoc/fengari@0.5.2",
|
|
4621
4621
|
"pkg:npm/%40types/node@26.6.5",
|
|
4622
4622
|
"pkg:npm/%40types/ws@8.18.2",
|
|
4623
4623
|
"pkg:npm/json5@2.2.3",
|