@datamoc/mw_games 0.34.0 → 0.35.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/CHANGELOG.md +24 -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 +535 -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 +39 -51
- 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
|
-
const { lauxlib, lua
|
|
2
|
+
const { lauxlib, lua } = 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,15 @@ 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
|
-
}, budget);
|
|
61
|
-
const resetBudget = () => {
|
|
62
|
-
budget.remaining = memoryLimit;
|
|
63
|
-
budget.exceeded = false;
|
|
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
|
+
print: 'native',
|
|
61
|
+
remove: ['load'],
|
|
62
|
+
limits: { instructions: limit, totalAllocation: memoryLimit },
|
|
63
|
+
});
|
|
64
|
+
const state = vm.state;
|
|
65
65
|
const push = (value) => {
|
|
66
66
|
if (value === null)
|
|
67
67
|
return lua.lua_pushnil(state);
|
|
@@ -120,40 +120,28 @@ export function createFengariScriptHost(options = {}) {
|
|
|
120
120
|
}
|
|
121
121
|
};
|
|
122
122
|
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
123
|
const status = lua.lua_pcall(state, args, results, 0);
|
|
134
|
-
|
|
135
|
-
if (budget.exceeded) {
|
|
124
|
+
if (vm.limitHit !== null) {
|
|
136
125
|
lua.lua_settop(state, 0);
|
|
137
|
-
throw new Error(
|
|
126
|
+
throw new Error(`Lua ${vm.limitHit === 'memory' ? 'memory' : 'instruction'} limit exceeded`);
|
|
138
127
|
}
|
|
139
128
|
if (status !== lua.LUA_OK)
|
|
140
129
|
throw new Error(lua.lua_tojsstring(state, -1) ?? 'Lua execution error');
|
|
141
130
|
return results === 0 ? null : read(state, -1);
|
|
142
131
|
};
|
|
143
|
-
const run = (source, results) => {
|
|
132
|
+
const run = (source, results) => vm.guarded(() => {
|
|
144
133
|
lua.lua_settop(state, 0);
|
|
145
|
-
resetBudget();
|
|
146
134
|
const bytes = to_luastring(source);
|
|
147
135
|
//'t' compiles text only: a '\x1bLua' binary dump must never reach the bytecode undumper
|
|
148
136
|
const loadStatus = lauxlib.luaL_loadbufferx(state, bytes, bytes.length, bytes, to_luastring('t'));
|
|
149
137
|
if (loadStatus !== lua.LUA_OK) {
|
|
150
138
|
//a budget exhausted by parsing itself is a limit error, not a syntax error
|
|
151
|
-
if (
|
|
139
|
+
if (vm.limitHit === 'memory')
|
|
152
140
|
throw new Error('Lua memory limit exceeded');
|
|
153
141
|
throw new Error(lua.lua_tojsstring(state, -1) ?? 'Lua syntax error');
|
|
154
142
|
}
|
|
155
143
|
return protectedCall(0, results);
|
|
156
|
-
};
|
|
144
|
+
});
|
|
157
145
|
const install = (context, callback) => {
|
|
158
146
|
emit = callback;
|
|
159
147
|
setContext(context);
|
|
@@ -171,8 +159,7 @@ export function createFengariScriptHost(options = {}) {
|
|
|
171
159
|
return 1;
|
|
172
160
|
});
|
|
173
161
|
lua.lua_setglobal(state, to_luastring('__mwg_random'));
|
|
174
|
-
|
|
175
|
-
run(sandbox, 0);
|
|
162
|
+
run('math.random=__mwg_random; math.randomseed=function() end', 0);
|
|
176
163
|
};
|
|
177
164
|
//hides the string metatable (the `string` library itself) from `getmetatable("")`
|
|
178
165
|
run('getmetatable("").__metatable = false', 0);
|
|
@@ -187,11 +174,12 @@ export function createFengariScriptHost(options = {}) {
|
|
|
187
174
|
},
|
|
188
175
|
call(name, args = [], context = {}, callback) {
|
|
189
176
|
install(context, callback);
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
177
|
+
return vm.guarded(() => {
|
|
178
|
+
lua.lua_settop(state, 0);
|
|
179
|
+
lua.lua_getglobal(state, to_luastring(name));
|
|
180
|
+
args.forEach(push);
|
|
181
|
+
return protectedCall(args.length, 1);
|
|
182
|
+
});
|
|
195
183
|
},
|
|
196
184
|
dispose() {
|
|
197
185
|
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.1";
|
|
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.1';
|
|
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.1",
|
|
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.4"
|
|
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:3e62dab5-a42a-5172-8b56-a445e53bf279",
|
|
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.1"
|
|
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.1",
|
|
20
20
|
"name": "@datamoc/mw_games",
|
|
21
|
-
"version": "0.
|
|
22
|
-
"purl": "pkg:npm/%40datamoc/mw_games@0.
|
|
21
|
+
"version": "0.35.1",
|
|
22
|
+
"purl": "pkg:npm/%40datamoc/mw_games@0.35.1",
|
|
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.4",
|
|
163
163
|
"name": "@datamoc/fengari",
|
|
164
|
-
"version": "0.
|
|
165
|
-
"purl": "pkg:npm/%40datamoc/fengari@0.
|
|
164
|
+
"version": "0.5.4",
|
|
165
|
+
"purl": "pkg:npm/%40datamoc/fengari@0.5.4",
|
|
166
166
|
"scope": "optional",
|
|
167
167
|
"hashes": [
|
|
168
168
|
{
|
|
169
169
|
"alg": "SHA-512",
|
|
170
|
-
"content": "
|
|
170
|
+
"content": "600ee0cf8026d34e0222194a2030866a7087af55eded0422af36df86870c1831b542b108da2d3e527775134336250b4582876329132712c61848b10e617bd526"
|
|
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.4",
|
|
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.1",
|
|
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.4",
|
|
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",
|