@datamoc/mw_games 0.42.0 → 0.43.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 +59 -0
- package/README.md +62 -1
- package/REFERENCE.md +57 -5
- package/api-surface.json +672 -0
- package/data/microgm-essential.PROVENANCE.md +13 -0
- package/data/microgm-essential.sf2 +0 -0
- package/data/soundfont-catalog.json +8 -0
- package/dist/audio/AudioLoader.d.ts +28 -0
- package/dist/audio/AudioLoader.d.ts.map +1 -0
- package/dist/audio/AudioLoader.js +53 -0
- package/dist/audio/AudioLoader.js.map +1 -0
- package/dist/audio/Channels.d.ts +1 -0
- package/dist/audio/Channels.d.ts.map +1 -1
- package/dist/audio/Channels.js +2 -1
- package/dist/audio/Channels.js.map +1 -1
- package/dist/audio/MidiRender.d.ts +16 -0
- package/dist/audio/MidiRender.d.ts.map +1 -1
- package/dist/audio/MidiRender.js +21 -0
- package/dist/audio/MidiRender.js.map +1 -1
- package/dist/audio/MusicPlayer.d.ts +80 -0
- package/dist/audio/MusicPlayer.d.ts.map +1 -0
- package/dist/audio/MusicPlayer.js +147 -0
- package/dist/audio/MusicPlayer.js.map +1 -0
- package/dist/audio/SampleDecoder.d.ts +16 -2
- package/dist/audio/SampleDecoder.d.ts.map +1 -1
- package/dist/audio/SampleDecoder.js +10 -6
- package/dist/audio/SampleDecoder.js.map +1 -1
- package/dist/audio/Sound.d.ts +2 -0
- package/dist/audio/Sound.d.ts.map +1 -1
- package/dist/audio/Sound.js +3 -0
- package/dist/audio/Sound.js.map +1 -1
- package/dist/audio/SoundFont.d.ts +5 -3
- package/dist/audio/SoundFont.d.ts.map +1 -1
- package/dist/audio/SoundFont.js +10 -8
- package/dist/audio/SoundFont.js.map +1 -1
- package/dist/audio/Synth.d.ts +1 -1
- package/dist/audio/Synth.d.ts.map +1 -1
- package/dist/audio/Synth.js +4 -0
- package/dist/audio/Synth.js.map +1 -1
- package/dist/audio/index.d.ts +6 -2
- package/dist/audio/index.d.ts.map +1 -1
- package/dist/audio/index.js +3 -1
- package/dist/audio/index.js.map +1 -1
- package/dist/mw_games.global.js +22 -22
- package/dist/mwl/index.d.ts +2 -0
- package/dist/mwl/index.d.ts.map +1 -1
- package/dist/mwl/index.js +1 -0
- package/dist/mwl/index.js.map +1 -1
- package/dist/mwl/objects.d.ts +31 -0
- package/dist/mwl/objects.d.ts.map +1 -0
- package/dist/mwl/objects.js +83 -0
- package/dist/mwl/objects.js.map +1 -0
- package/dist/mwl/schema.d.ts +1 -1
- package/dist/mwl/schema.d.ts.map +1 -1
- package/dist/mwl/tables.d.ts +2 -0
- package/dist/mwl/tables.d.ts.map +1 -1
- package/dist/mwl/tables.js +13 -0
- package/dist/mwl/tables.js.map +1 -1
- package/dist/physics/XpbdWorld.d.ts +23 -5
- package/dist/physics/XpbdWorld.d.ts.map +1 -1
- package/dist/physics/XpbdWorld.js +90 -6
- package/dist/physics/XpbdWorld.js.map +1 -1
- package/dist/testing/index.d.ts +16 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +21 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/three-d/Collision3D.d.ts +46 -2
- package/dist/three-d/Collision3D.d.ts.map +1 -1
- package/dist/three-d/Collision3D.js +46 -2
- package/dist/three-d/Collision3D.js.map +1 -1
- package/dist/three-d/Grid.d.ts +12 -1
- package/dist/three-d/Grid.d.ts.map +1 -1
- package/dist/three-d/Grid.js +12 -1
- package/dist/three-d/Grid.js.map +1 -1
- package/dist/three-d/Vox.d.ts +13 -1
- package/dist/three-d/Vox.d.ts.map +1 -1
- package/dist/three-d/Vox.js +13 -1
- package/dist/three-d/Vox.js.map +1 -1
- package/dist/two-d/Game.d.ts +21 -1
- package/dist/two-d/Game.d.ts.map +1 -1
- package/dist/two-d/Game.js +73 -6
- package/dist/two-d/Game.js.map +1 -1
- package/dist/two-d/Scene2D.d.ts +24 -0
- package/dist/two-d/Scene2D.d.ts.map +1 -1
- package/dist/two-d/Scene2D.js +30 -0
- package/dist/two-d/Scene2D.js.map +1 -1
- package/dist/two-d/render/SceneTransition.d.ts +272 -0
- package/dist/two-d/render/SceneTransition.d.ts.map +1 -0
- package/dist/two-d/render/SceneTransition.js +431 -0
- package/dist/two-d/render/SceneTransition.js.map +1 -0
- package/dist/two-d/render/index.d.ts +2 -0
- package/dist/two-d/render/index.d.ts.map +1 -1
- package/dist/two-d/render/index.js +1 -0
- package/dist/two-d/render/index.js.map +1 -1
- package/dist/two-d/ui/Button.d.ts +23 -0
- package/dist/two-d/ui/Button.d.ts.map +1 -1
- package/dist/two-d/ui/Button.js +37 -0
- package/dist/two-d/ui/Button.js.map +1 -1
- package/dist/two-d/ui/DropdownView.d.ts +49 -3
- package/dist/two-d/ui/DropdownView.d.ts.map +1 -1
- package/dist/two-d/ui/DropdownView.js +150 -9
- package/dist/two-d/ui/DropdownView.js.map +1 -1
- package/dist/two-d/ui/ScrollBox.d.ts +90 -0
- package/dist/two-d/ui/ScrollBox.d.ts.map +1 -1
- package/dist/two-d/ui/ScrollBox.js +206 -4
- package/dist/two-d/ui/ScrollBox.js.map +1 -1
- package/dist/two-d/ui/ScrollText.d.ts +122 -0
- package/dist/two-d/ui/ScrollText.d.ts.map +1 -0
- package/dist/two-d/ui/ScrollText.js +202 -0
- package/dist/two-d/ui/ScrollText.js.map +1 -0
- package/dist/two-d/ui/Tooltip.d.ts +70 -1
- package/dist/two-d/ui/Tooltip.d.ts.map +1 -1
- package/dist/two-d/ui/Tooltip.js +115 -3
- package/dist/two-d/ui/Tooltip.js.map +1 -1
- package/dist/two-d/ui/Window.d.ts +35 -2
- package/dist/two-d/ui/Window.d.ts.map +1 -1
- package/dist/two-d/ui/Window.js +58 -3
- package/dist/two-d/ui/Window.js.map +1 -1
- package/dist/two-d/ui/index.d.ts +7 -5
- package/dist/two-d/ui/index.d.ts.map +1 -1
- package/dist/two-d/ui/index.js +3 -2
- package/dist/two-d/ui/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +7 -3
- package/sbom.cdx.json +19 -260
- package/tools/browser-driver.mjs +3 -3
- package/tools/browser-smoke.mjs +19 -2
- package/tools/build-tablebases.mjs +7 -3
- package/tools/compile-openings.mjs +7 -3
- package/tools/compile-resources.d.mts +2 -0
- package/tools/compile-resources.mjs +13 -1
- package/tools/emit-page.d.mts +6 -0
- package/tools/emit-page.mjs +43 -3
- package/tools/find-chrome.mjs +4 -2
- package/tools/init.mjs +11 -3
- package/tools/play-uci.mjs +9 -5
- package/tools/vite.mjs +9 -1
- package/tools.md +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datamoc/mw_games",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.43.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
|
"homepage": "https://datamoc.github.io/mwg/",
|
|
@@ -93,6 +93,8 @@
|
|
|
93
93
|
"tools/sbom.d.mts",
|
|
94
94
|
"sbom.cdx.json",
|
|
95
95
|
"data/microgm-opt.sf2",
|
|
96
|
+
"data/microgm-essential.sf2",
|
|
97
|
+
"data/microgm-essential.PROVENANCE.md",
|
|
96
98
|
"data/soundfont-catalog.json",
|
|
97
99
|
"tools/soundfonts.mjs",
|
|
98
100
|
"tools/soundfonts.d.mts",
|
|
@@ -404,6 +406,8 @@
|
|
|
404
406
|
"visual:smoke:ui": "npm run example:ui:build && node tools/visual-smoke.mjs examples/interface/dist/index.html Tab",
|
|
405
407
|
"motion:smoke": "npm run example:ui:build && node tools/motion-smoke.mjs",
|
|
406
408
|
"package:smoke": "node tools/package-smoke.mjs",
|
|
409
|
+
"bins:smoke": "node tools/bins-smoke.mjs",
|
|
410
|
+
"build:bridge-tutorial": "node tools/build-bridge-tutorial.mjs",
|
|
407
411
|
"graphics:capabilities": "node tools/graphics-capabilities.mjs",
|
|
408
412
|
"webpage:examples": "node tools/build-webpage-examples.mjs",
|
|
409
413
|
"webpage:docs": "node tools/build-webpage-docs.mjs",
|
|
@@ -458,7 +462,7 @@
|
|
|
458
462
|
"@babylonjs/core": "^9.25.0",
|
|
459
463
|
"@babylonjs/loaders": "^9.25.0",
|
|
460
464
|
"@capacitor/android": "^8.5.2",
|
|
461
|
-
"@capacitor/cli": "^8.
|
|
465
|
+
"@capacitor/cli": "^8.4.3",
|
|
462
466
|
"@capacitor/core": "^8.5.2",
|
|
463
467
|
"@capacitor/ios": "^8.5.2",
|
|
464
468
|
"@types/node": "^26.4.1",
|
|
@@ -477,6 +481,6 @@
|
|
|
477
481
|
"types": "./dist/index.d.ts",
|
|
478
482
|
"unpkg": "./dist/mw_games.global.js",
|
|
479
483
|
"optionalDependencies": {
|
|
480
|
-
"@datamoc/pyroeis": "^0.9.
|
|
484
|
+
"@datamoc/pyroeis": "^0.9.1"
|
|
481
485
|
}
|
|
482
486
|
}
|
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:d2bfd68a-616e-5c0a-83a9-346fa009ae66",
|
|
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.43.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.43.0",
|
|
20
20
|
"name": "@datamoc/mw_games",
|
|
21
|
-
"version": "0.
|
|
22
|
-
"purl": "pkg:npm/%40datamoc/mw_games@0.
|
|
21
|
+
"version": "0.43.0",
|
|
22
|
+
"purl": "pkg:npm/%40datamoc/mw_games@0.43.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
|
{
|
|
@@ -96,15 +96,15 @@
|
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
98
|
"type": "library",
|
|
99
|
-
"bom-ref": "pkg:npm/%40capacitor/cli@8.
|
|
99
|
+
"bom-ref": "pkg:npm/%40capacitor/cli@8.4.3",
|
|
100
100
|
"name": "@capacitor/cli",
|
|
101
|
-
"version": "8.
|
|
102
|
-
"purl": "pkg:npm/%40capacitor/cli@8.
|
|
101
|
+
"version": "8.4.3",
|
|
102
|
+
"purl": "pkg:npm/%40capacitor/cli@8.4.3",
|
|
103
103
|
"scope": "excluded",
|
|
104
104
|
"hashes": [
|
|
105
105
|
{
|
|
106
106
|
"alg": "SHA-512",
|
|
107
|
-
"content": "
|
|
107
|
+
"content": "13727b17a81d65204c230074fd65671d9e52f945c93e0bdd9f2aadc2bc9c702191464219df86f9b2061831ad888f86a08a691470ca1270093e2bf82b4ed2f55e"
|
|
108
108
|
}
|
|
109
109
|
],
|
|
110
110
|
"licenses": [
|
|
@@ -159,15 +159,15 @@
|
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
161
|
"type": "library",
|
|
162
|
-
"bom-ref": "pkg:npm/%40datamoc/pyroeis@0.9.
|
|
162
|
+
"bom-ref": "pkg:npm/%40datamoc/pyroeis@0.9.1",
|
|
163
163
|
"name": "@datamoc/pyroeis",
|
|
164
|
-
"version": "0.9.
|
|
165
|
-
"purl": "pkg:npm/%40datamoc/pyroeis@0.9.
|
|
164
|
+
"version": "0.9.1",
|
|
165
|
+
"purl": "pkg:npm/%40datamoc/pyroeis@0.9.1",
|
|
166
166
|
"scope": "optional",
|
|
167
167
|
"hashes": [
|
|
168
168
|
{
|
|
169
169
|
"alg": "SHA-512",
|
|
170
|
-
"content": "
|
|
170
|
+
"content": "e5e9ddb5a14c66d60edf1b9a83769a987483804718c7b71bb7a4b6e3f0efbc9c2618658da7a9e59afe7eb7ff38b7ad3aaf43d7dbf307dc71f51e365c8fc442e0"
|
|
171
171
|
}
|
|
172
172
|
],
|
|
173
173
|
"licenses": [
|
|
@@ -2110,48 +2110,6 @@
|
|
|
2110
2110
|
}
|
|
2111
2111
|
]
|
|
2112
2112
|
},
|
|
2113
|
-
{
|
|
2114
|
-
"type": "library",
|
|
2115
|
-
"bom-ref": "pkg:npm/bplist-creator@0.1.0",
|
|
2116
|
-
"name": "bplist-creator",
|
|
2117
|
-
"version": "0.1.0",
|
|
2118
|
-
"purl": "pkg:npm/bplist-creator@0.1.0",
|
|
2119
|
-
"scope": "excluded",
|
|
2120
|
-
"hashes": [
|
|
2121
|
-
{
|
|
2122
|
-
"alg": "SHA-512",
|
|
2123
|
-
"content": "b17687662732104998f3a5b2b9e2d341eb1b7a81ff9aabaf6ab25a40d6e3b8e40efbb81b15c0c45aa2a671603870e4cbcc595f82f922571a259359396c12299a"
|
|
2124
|
-
}
|
|
2125
|
-
],
|
|
2126
|
-
"licenses": [
|
|
2127
|
-
{
|
|
2128
|
-
"license": {
|
|
2129
|
-
"id": "MIT"
|
|
2130
|
-
}
|
|
2131
|
-
}
|
|
2132
|
-
]
|
|
2133
|
-
},
|
|
2134
|
-
{
|
|
2135
|
-
"type": "library",
|
|
2136
|
-
"bom-ref": "pkg:npm/bplist-parser@0.3.1",
|
|
2137
|
-
"name": "bplist-parser",
|
|
2138
|
-
"version": "0.3.1",
|
|
2139
|
-
"purl": "pkg:npm/bplist-parser@0.3.1",
|
|
2140
|
-
"scope": "excluded",
|
|
2141
|
-
"hashes": [
|
|
2142
|
-
{
|
|
2143
|
-
"alg": "SHA-512",
|
|
2144
|
-
"content": "3f227188db40e53d8f94b21e068b7895ba7bae3e0e69dce39cc643fc6e73b8136df1e8bfc8253bfb05b48766da83dbebf1cfbf5ae456992c5ba8097d84bd6b04"
|
|
2145
|
-
}
|
|
2146
|
-
],
|
|
2147
|
-
"licenses": [
|
|
2148
|
-
{
|
|
2149
|
-
"license": {
|
|
2150
|
-
"id": "MIT"
|
|
2151
|
-
}
|
|
2152
|
-
}
|
|
2153
|
-
]
|
|
2154
|
-
},
|
|
2155
2113
|
{
|
|
2156
2114
|
"type": "library",
|
|
2157
2115
|
"bom-ref": "pkg:npm/bplist-parser@0.3.2",
|
|
@@ -3937,27 +3895,6 @@
|
|
|
3937
3895
|
}
|
|
3938
3896
|
]
|
|
3939
3897
|
},
|
|
3940
|
-
{
|
|
3941
|
-
"type": "library",
|
|
3942
|
-
"bom-ref": "pkg:npm/readline-sync@1.4.10",
|
|
3943
|
-
"name": "readline-sync",
|
|
3944
|
-
"version": "1.4.10",
|
|
3945
|
-
"purl": "pkg:npm/readline-sync@1.4.10",
|
|
3946
|
-
"scope": "optional",
|
|
3947
|
-
"hashes": [
|
|
3948
|
-
{
|
|
3949
|
-
"alg": "SHA-512",
|
|
3950
|
-
"content": "80dbdaf3fe9401ef1061ea48407fe3436aa7f75423d01f6c62330106cdd0381f05d825dc2a02f141a2513fbeac595450b7e414fbc7c09026c2be38cc16eed873"
|
|
3951
|
-
}
|
|
3952
|
-
],
|
|
3953
|
-
"licenses": [
|
|
3954
|
-
{
|
|
3955
|
-
"license": {
|
|
3956
|
-
"id": "MIT"
|
|
3957
|
-
}
|
|
3958
|
-
}
|
|
3959
|
-
]
|
|
3960
|
-
},
|
|
3961
3898
|
{
|
|
3962
3899
|
"type": "library",
|
|
3963
3900
|
"bom-ref": "pkg:npm/rimraf@6.1.3",
|
|
@@ -4189,27 +4126,6 @@
|
|
|
4189
4126
|
}
|
|
4190
4127
|
]
|
|
4191
4128
|
},
|
|
4192
|
-
{
|
|
4193
|
-
"type": "library",
|
|
4194
|
-
"bom-ref": "pkg:npm/simple-plist@1.3.1",
|
|
4195
|
-
"name": "simple-plist",
|
|
4196
|
-
"version": "1.3.1",
|
|
4197
|
-
"purl": "pkg:npm/simple-plist@1.3.1",
|
|
4198
|
-
"scope": "excluded",
|
|
4199
|
-
"hashes": [
|
|
4200
|
-
{
|
|
4201
|
-
"alg": "SHA-512",
|
|
4202
|
-
"content": "88c4b0e62d17b1e327ae1b48cd16fb5e94045dea5af71856c465288c704be37488a50b834248775a9cbaed96c3cd956be842b1bf0542867569765f211152c38b"
|
|
4203
|
-
}
|
|
4204
|
-
],
|
|
4205
|
-
"licenses": [
|
|
4206
|
-
{
|
|
4207
|
-
"license": {
|
|
4208
|
-
"id": "MIT"
|
|
4209
|
-
}
|
|
4210
|
-
}
|
|
4211
|
-
]
|
|
4212
|
-
},
|
|
4213
4129
|
{
|
|
4214
4130
|
"type": "library",
|
|
4215
4131
|
"bom-ref": "pkg:npm/sisteransi@1.0.5",
|
|
@@ -4294,48 +4210,6 @@
|
|
|
4294
4210
|
}
|
|
4295
4211
|
]
|
|
4296
4212
|
},
|
|
4297
|
-
{
|
|
4298
|
-
"type": "library",
|
|
4299
|
-
"bom-ref": "pkg:npm/sprintf-js@1.1.3",
|
|
4300
|
-
"name": "sprintf-js",
|
|
4301
|
-
"version": "1.1.3",
|
|
4302
|
-
"purl": "pkg:npm/sprintf-js@1.1.3",
|
|
4303
|
-
"scope": "optional",
|
|
4304
|
-
"hashes": [
|
|
4305
|
-
{
|
|
4306
|
-
"alg": "SHA-512",
|
|
4307
|
-
"content": "3a8fb4444155e7dfebcf781f24d2908819707c7692112975a5c1b200142c9e721f58e16de89363e600a883653a30b67ffc81980fe9c0f2723e9934a144445e68"
|
|
4308
|
-
}
|
|
4309
|
-
],
|
|
4310
|
-
"licenses": [
|
|
4311
|
-
{
|
|
4312
|
-
"license": {
|
|
4313
|
-
"id": "BSD-3-Clause"
|
|
4314
|
-
}
|
|
4315
|
-
}
|
|
4316
|
-
]
|
|
4317
|
-
},
|
|
4318
|
-
{
|
|
4319
|
-
"type": "library",
|
|
4320
|
-
"bom-ref": "pkg:npm/stream-buffers@2.2.0",
|
|
4321
|
-
"name": "stream-buffers",
|
|
4322
|
-
"version": "2.2.0",
|
|
4323
|
-
"purl": "pkg:npm/stream-buffers@2.2.0",
|
|
4324
|
-
"scope": "excluded",
|
|
4325
|
-
"hashes": [
|
|
4326
|
-
{
|
|
4327
|
-
"alg": "SHA-512",
|
|
4328
|
-
"content": "bb240afe6c794231ee9fcd052c94df69613b26dc1f44c2812e43277bab9d60e9af1f409ac28b556bb4df8181f3027a69867e3e4f0788c7540a3274486e2a6652"
|
|
4329
|
-
}
|
|
4330
|
-
],
|
|
4331
|
-
"licenses": [
|
|
4332
|
-
{
|
|
4333
|
-
"license": {
|
|
4334
|
-
"id": "Unlicense"
|
|
4335
|
-
}
|
|
4336
|
-
}
|
|
4337
|
-
]
|
|
4338
|
-
},
|
|
4339
4213
|
{
|
|
4340
4214
|
"type": "library",
|
|
4341
4215
|
"bom-ref": "pkg:npm/string-width@4.2.3",
|
|
@@ -4504,27 +4378,6 @@
|
|
|
4504
4378
|
}
|
|
4505
4379
|
]
|
|
4506
4380
|
},
|
|
4507
|
-
{
|
|
4508
|
-
"type": "library",
|
|
4509
|
-
"bom-ref": "pkg:npm/tmp@0.2.7",
|
|
4510
|
-
"name": "tmp",
|
|
4511
|
-
"version": "0.2.7",
|
|
4512
|
-
"purl": "pkg:npm/tmp@0.2.7",
|
|
4513
|
-
"scope": "optional",
|
|
4514
|
-
"hashes": [
|
|
4515
|
-
{
|
|
4516
|
-
"alg": "SHA-512",
|
|
4517
|
-
"content": "7b4be8b48a69e14a36009612cd51d5eb109c6b0ba27b3dc3cea0c06eb4dcdd8c4192994de9ef9d335dd97887199c383f4294ae536cdf677af3c18f2e9049da5f"
|
|
4518
|
-
}
|
|
4519
|
-
],
|
|
4520
|
-
"licenses": [
|
|
4521
|
-
{
|
|
4522
|
-
"license": {
|
|
4523
|
-
"id": "MIT"
|
|
4524
|
-
}
|
|
4525
|
-
}
|
|
4526
|
-
]
|
|
4527
|
-
},
|
|
4528
4381
|
{
|
|
4529
4382
|
"type": "library",
|
|
4530
4383
|
"bom-ref": "pkg:npm/tree-kill@1.2.2",
|
|
@@ -4672,27 +4525,6 @@
|
|
|
4672
4525
|
}
|
|
4673
4526
|
]
|
|
4674
4527
|
},
|
|
4675
|
-
{
|
|
4676
|
-
"type": "library",
|
|
4677
|
-
"bom-ref": "pkg:npm/uuid@7.0.3",
|
|
4678
|
-
"name": "uuid",
|
|
4679
|
-
"version": "7.0.3",
|
|
4680
|
-
"purl": "pkg:npm/uuid@7.0.3",
|
|
4681
|
-
"scope": "excluded",
|
|
4682
|
-
"hashes": [
|
|
4683
|
-
{
|
|
4684
|
-
"alg": "SHA-512",
|
|
4685
|
-
"content": "0cf4a47b4a57853660a05fddf964add9068a3021527f1ed07a0c44593f893ae1c5e5a5ab2849f41beced8ee260fe01bcfc8b4afab6cf083ff236ff32ca287a0a"
|
|
4686
|
-
}
|
|
4687
|
-
],
|
|
4688
|
-
"licenses": [
|
|
4689
|
-
{
|
|
4690
|
-
"license": {
|
|
4691
|
-
"id": "MIT"
|
|
4692
|
-
}
|
|
4693
|
-
}
|
|
4694
|
-
]
|
|
4695
|
-
},
|
|
4696
4528
|
{
|
|
4697
4529
|
"type": "library",
|
|
4698
4530
|
"bom-ref": "pkg:npm/vite@8.3.4",
|
|
@@ -4777,27 +4609,6 @@
|
|
|
4777
4609
|
}
|
|
4778
4610
|
]
|
|
4779
4611
|
},
|
|
4780
|
-
{
|
|
4781
|
-
"type": "library",
|
|
4782
|
-
"bom-ref": "pkg:npm/xcode@3.0.1",
|
|
4783
|
-
"name": "xcode",
|
|
4784
|
-
"version": "3.0.1",
|
|
4785
|
-
"purl": "pkg:npm/xcode@3.0.1",
|
|
4786
|
-
"scope": "excluded",
|
|
4787
|
-
"hashes": [
|
|
4788
|
-
{
|
|
4789
|
-
"alg": "SHA-512",
|
|
4790
|
-
"content": "902cf993b27b5db26d8c004ebe47399499a488387c5618d5086362a9d282b1c995a5d554a440325efd719822e4409e5db07ab1dc83cee175be3530e153f7dab4"
|
|
4791
|
-
}
|
|
4792
|
-
],
|
|
4793
|
-
"licenses": [
|
|
4794
|
-
{
|
|
4795
|
-
"license": {
|
|
4796
|
-
"id": "Apache-2.0"
|
|
4797
|
-
}
|
|
4798
|
-
}
|
|
4799
|
-
]
|
|
4800
|
-
},
|
|
4801
4612
|
{
|
|
4802
4613
|
"type": "library",
|
|
4803
4614
|
"bom-ref": "pkg:npm/xml2js@0.6.2",
|
|
@@ -4923,7 +4734,7 @@
|
|
|
4923
4734
|
]
|
|
4924
4735
|
},
|
|
4925
4736
|
{
|
|
4926
|
-
"ref": "pkg:npm/%40capacitor/cli@8.
|
|
4737
|
+
"ref": "pkg:npm/%40capacitor/cli@8.4.3",
|
|
4927
4738
|
"dependsOn": [
|
|
4928
4739
|
"pkg:npm/%40ionic/cli-framework-output@2.2.8",
|
|
4929
4740
|
"pkg:npm/%40ionic/utils-subprocess@3.0.1",
|
|
@@ -4941,7 +4752,6 @@
|
|
|
4941
4752
|
"pkg:npm/semver@7.8.5",
|
|
4942
4753
|
"pkg:npm/tar@7.5.22",
|
|
4943
4754
|
"pkg:npm/tslib@2.8.1",
|
|
4944
|
-
"pkg:npm/xcode@3.0.1",
|
|
4945
4755
|
"pkg:npm/xml2js@0.6.2"
|
|
4946
4756
|
]
|
|
4947
4757
|
},
|
|
@@ -4958,15 +4768,15 @@
|
|
|
4958
4768
|
]
|
|
4959
4769
|
},
|
|
4960
4770
|
{
|
|
4961
|
-
"ref": "pkg:npm/%40datamoc/mw_games@0.
|
|
4771
|
+
"ref": "pkg:npm/%40datamoc/mw_games@0.43.0",
|
|
4962
4772
|
"dependsOn": [
|
|
4963
4773
|
"pkg:npm/%40babylonjs/core@9.31.0",
|
|
4964
4774
|
"pkg:npm/%40babylonjs/loaders@9.31.0",
|
|
4965
4775
|
"pkg:npm/%40capacitor/android@8.5.3",
|
|
4966
|
-
"pkg:npm/%40capacitor/cli@8.
|
|
4776
|
+
"pkg:npm/%40capacitor/cli@8.4.3",
|
|
4967
4777
|
"pkg:npm/%40capacitor/core@8.5.3",
|
|
4968
4778
|
"pkg:npm/%40capacitor/ios@8.5.3",
|
|
4969
|
-
"pkg:npm/%40datamoc/pyroeis@0.9.
|
|
4779
|
+
"pkg:npm/%40datamoc/pyroeis@0.9.1",
|
|
4970
4780
|
"pkg:npm/%40types/node@26.6.5",
|
|
4971
4781
|
"pkg:npm/%40types/ws@8.18.2",
|
|
4972
4782
|
"pkg:npm/json5@2.2.3",
|
|
@@ -4983,12 +4793,8 @@
|
|
|
4983
4793
|
]
|
|
4984
4794
|
},
|
|
4985
4795
|
{
|
|
4986
|
-
"ref": "pkg:npm/%40datamoc/pyroeis@0.9.
|
|
4987
|
-
"dependsOn": [
|
|
4988
|
-
"pkg:npm/readline-sync@1.4.10",
|
|
4989
|
-
"pkg:npm/sprintf-js@1.1.3",
|
|
4990
|
-
"pkg:npm/tmp@0.2.7"
|
|
4991
|
-
]
|
|
4796
|
+
"ref": "pkg:npm/%40datamoc/pyroeis@0.9.1",
|
|
4797
|
+
"dependsOn": []
|
|
4992
4798
|
},
|
|
4993
4799
|
{
|
|
4994
4800
|
"ref": "pkg:npm/%40emnapi/runtime@1.11.3",
|
|
@@ -5440,18 +5246,6 @@
|
|
|
5440
5246
|
"ref": "pkg:npm/boolbase@1.0.0",
|
|
5441
5247
|
"dependsOn": []
|
|
5442
5248
|
},
|
|
5443
|
-
{
|
|
5444
|
-
"ref": "pkg:npm/bplist-creator@0.1.0",
|
|
5445
|
-
"dependsOn": [
|
|
5446
|
-
"pkg:npm/stream-buffers@2.2.0"
|
|
5447
|
-
]
|
|
5448
|
-
},
|
|
5449
|
-
{
|
|
5450
|
-
"ref": "pkg:npm/bplist-parser@0.3.1",
|
|
5451
|
-
"dependsOn": [
|
|
5452
|
-
"pkg:npm/big-integer@1.6.52"
|
|
5453
|
-
]
|
|
5454
|
-
},
|
|
5455
5249
|
{
|
|
5456
5250
|
"ref": "pkg:npm/bplist-parser@0.3.2",
|
|
5457
5251
|
"dependsOn": [
|
|
@@ -5918,10 +5712,6 @@
|
|
|
5918
5712
|
"pkg:npm/util-deprecate@1.0.2"
|
|
5919
5713
|
]
|
|
5920
5714
|
},
|
|
5921
|
-
{
|
|
5922
|
-
"ref": "pkg:npm/readline-sync@1.4.10",
|
|
5923
|
-
"dependsOn": []
|
|
5924
|
-
},
|
|
5925
5715
|
{
|
|
5926
5716
|
"ref": "pkg:npm/rimraf@6.1.3",
|
|
5927
5717
|
"dependsOn": [
|
|
@@ -6018,14 +5808,6 @@
|
|
|
6018
5808
|
"ref": "pkg:npm/signal-exit@3.0.7",
|
|
6019
5809
|
"dependsOn": []
|
|
6020
5810
|
},
|
|
6021
|
-
{
|
|
6022
|
-
"ref": "pkg:npm/simple-plist@1.3.1",
|
|
6023
|
-
"dependsOn": [
|
|
6024
|
-
"pkg:npm/bplist-creator@0.1.0",
|
|
6025
|
-
"pkg:npm/bplist-parser@0.3.1",
|
|
6026
|
-
"pkg:npm/plist@3.1.1"
|
|
6027
|
-
]
|
|
6028
|
-
},
|
|
6029
5811
|
{
|
|
6030
5812
|
"ref": "pkg:npm/sisteransi@1.0.5",
|
|
6031
5813
|
"dependsOn": []
|
|
@@ -6046,14 +5828,6 @@
|
|
|
6046
5828
|
"ref": "pkg:npm/split2@4.2.0",
|
|
6047
5829
|
"dependsOn": []
|
|
6048
5830
|
},
|
|
6049
|
-
{
|
|
6050
|
-
"ref": "pkg:npm/sprintf-js@1.1.3",
|
|
6051
|
-
"dependsOn": []
|
|
6052
|
-
},
|
|
6053
|
-
{
|
|
6054
|
-
"ref": "pkg:npm/stream-buffers@2.2.0",
|
|
6055
|
-
"dependsOn": []
|
|
6056
|
-
},
|
|
6057
5831
|
{
|
|
6058
5832
|
"ref": "pkg:npm/string-width@4.2.3",
|
|
6059
5833
|
"dependsOn": [
|
|
@@ -6113,10 +5887,6 @@
|
|
|
6113
5887
|
"pkg:npm/picomatch@4.0.7"
|
|
6114
5888
|
]
|
|
6115
5889
|
},
|
|
6116
|
-
{
|
|
6117
|
-
"ref": "pkg:npm/tmp@0.2.7",
|
|
6118
|
-
"dependsOn": []
|
|
6119
|
-
},
|
|
6120
5890
|
{
|
|
6121
5891
|
"ref": "pkg:npm/tree-kill@1.2.2",
|
|
6122
5892
|
"dependsOn": []
|
|
@@ -6166,10 +5936,6 @@
|
|
|
6166
5936
|
"ref": "pkg:npm/util-deprecate@1.0.2",
|
|
6167
5937
|
"dependsOn": []
|
|
6168
5938
|
},
|
|
6169
|
-
{
|
|
6170
|
-
"ref": "pkg:npm/uuid@7.0.3",
|
|
6171
|
-
"dependsOn": []
|
|
6172
|
-
},
|
|
6173
5939
|
{
|
|
6174
5940
|
"ref": "pkg:npm/vite@8.3.4",
|
|
6175
5941
|
"dependsOn": [
|
|
@@ -6200,13 +5966,6 @@
|
|
|
6200
5966
|
"ref": "pkg:npm/ws@8.22.0",
|
|
6201
5967
|
"dependsOn": []
|
|
6202
5968
|
},
|
|
6203
|
-
{
|
|
6204
|
-
"ref": "pkg:npm/xcode@3.0.1",
|
|
6205
|
-
"dependsOn": [
|
|
6206
|
-
"pkg:npm/simple-plist@1.3.1",
|
|
6207
|
-
"pkg:npm/uuid@7.0.3"
|
|
6208
|
-
]
|
|
6209
|
-
},
|
|
6210
5969
|
{
|
|
6211
5970
|
"ref": "pkg:npm/xml2js@0.6.2",
|
|
6212
5971
|
"dependsOn": [
|
package/tools/browser-driver.mjs
CHANGED
|
@@ -361,12 +361,12 @@ function findOnPath(names) {
|
|
|
361
361
|
}
|
|
362
362
|
|
|
363
363
|
/**
|
|
364
|
-
* Locates a browser executable without a driver install:
|
|
365
|
-
* `FIREFOX_PATH`
|
|
364
|
+
* Locates a browser executable without a driver install: `CHROME_PATH` (or `CHROME`) /
|
|
365
|
+
* `FIREFOX_PATH` overrides first, then well-known install locations. Returns null
|
|
366
366
|
* when neither yields anything, so callers skip rather than fail.
|
|
367
367
|
*/
|
|
368
368
|
export function findBrowser(kind) {
|
|
369
|
-
const override =
|
|
369
|
+
const override = kind === 'chrome' ? process.env.CHROME_PATH || process.env.CHROME : process.env.FIREFOX_PATH;
|
|
370
370
|
if (override) return override;
|
|
371
371
|
const onPath = findOnPath(kind === 'chrome' ? ['chrome', 'chromium', 'google-chrome'] : ['firefox']);
|
|
372
372
|
if (onPath) return onPath;
|
package/tools/browser-smoke.mjs
CHANGED
|
@@ -29,6 +29,23 @@ export async function waitForGame(page, url, pageErrors = []) {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Waits for the page to draw a few frames instead of sleeping a fixed time: a software renderer can need
|
|
34
|
+
* far longer than any fixed pause, and a fast one far less. Capped, since a hidden tab throttles frames.
|
|
35
|
+
*/
|
|
36
|
+
async function settle(page, frames = 3, capMs = 5000) {
|
|
37
|
+
await page.evaluate(
|
|
38
|
+
([count, cap]) =>
|
|
39
|
+
new Promise((done) => {
|
|
40
|
+
const timer = setTimeout(done, cap);
|
|
41
|
+
const next = (left) =>
|
|
42
|
+
left === 0 ? (clearTimeout(timer), done()) : requestAnimationFrame(() => next(left - 1));
|
|
43
|
+
next(count);
|
|
44
|
+
}),
|
|
45
|
+
[frames, capMs],
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
32
49
|
/**
|
|
33
50
|
* Opens a built page from `file://` in headless Chrome and asserts it actually rendered.
|
|
34
51
|
*
|
|
@@ -76,11 +93,11 @@ export async function smokePage({
|
|
|
76
93
|
await waitForGame(page, url, pageErrors);
|
|
77
94
|
|
|
78
95
|
//let the scene finish its first frames before reading pixels back
|
|
79
|
-
await page
|
|
96
|
+
await settle(page);
|
|
80
97
|
if (keyToPress) {
|
|
81
98
|
await page.keyboard.press(keyToPress);
|
|
82
99
|
//give whatever the key opened time to lay itself out and draw
|
|
83
|
-
await page
|
|
100
|
+
await settle(page);
|
|
84
101
|
}
|
|
85
102
|
if (after) await after(page);
|
|
86
103
|
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { realpathSync } from 'node:fs';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
|
-
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
4
|
+
import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
5
5
|
import { join, relative } from 'node:path';
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
//the framework's own modules: the TypeScript sources inside this repository, the built `dist` inside an
|
|
7
|
+
//installed package, which ships no `src`
|
|
8
|
+
const fromSource = existsSync(new URL('../src/board/tablebase.ts', import.meta.url));
|
|
9
|
+
const load = (path) => import(fromSource ? `../src/${path}.ts` : `../dist/${path}.js`);
|
|
10
|
+
const { huffEncode } = await load('board/tablebase');
|
|
11
|
+
const { spawn } = await load('threads/spawn');
|
|
8
12
|
|
|
9
13
|
/**
|
|
10
14
|
* Generates pawnless endgame tablebases (WDL plus distance-to-mate) and ships
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { realpathSync } from 'node:fs';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
|
-
import { readFileSync, writeFileSync, readdirSync } from 'node:fs';
|
|
4
|
+
import { existsSync, readFileSync, writeFileSync, readdirSync } from 'node:fs';
|
|
5
5
|
import { join, relative } from 'node:path';
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
//the framework's own modules: the TypeScript sources inside this repository, the built `dist` inside an
|
|
7
|
+
//installed package, which ships no `src`
|
|
8
|
+
const fromSource = existsSync(new URL('../src/board/chess.ts', import.meta.url));
|
|
9
|
+
const load = (path) => import(fromSource ? `../src/${path}.ts` : `../dist/${path}.js`);
|
|
10
|
+
const { applyMove, legalMoves, positionKey, sq, squareName, startingChess } = await load('board/chess');
|
|
11
|
+
const { parseUciMove } = await load('board/openings');
|
|
8
12
|
|
|
9
13
|
/**
|
|
10
14
|
* Compiles opening tables (`eco`, `name`, `pgn` TSV rows, one per line after the header)
|
|
@@ -28,6 +28,8 @@ export interface CompileResourcesGroup {
|
|
|
28
28
|
|
|
29
29
|
export interface CompileResourcesResult {
|
|
30
30
|
groups: CompileResourcesGroup[];
|
|
31
|
+
/** the asset path of every embedded file, as game code passes it to `load()` */
|
|
32
|
+
keys: string[];
|
|
31
33
|
rawBytes: number;
|
|
32
34
|
embeddedBytes: number;
|
|
33
35
|
webpConverted: number;
|
|
@@ -219,6 +219,7 @@ export async function compileResources({
|
|
|
219
219
|
|
|
220
220
|
const creditsFile = join(from, 'credits.json');
|
|
221
221
|
let credits = null;
|
|
222
|
+
const keys = [];
|
|
222
223
|
|
|
223
224
|
for (const file of files) {
|
|
224
225
|
if (selected && !selected.has(keyOf(file))) continue;
|
|
@@ -283,6 +284,7 @@ export async function compileResources({
|
|
|
283
284
|
const name = group(key);
|
|
284
285
|
if (!groups.has(name)) groups.set(name, {});
|
|
285
286
|
groups.get(name)[key] = `data:${mimeType};base64,${bytes.toString('base64')}`;
|
|
287
|
+
keys.push(key);
|
|
286
288
|
rawBytes += data.length;
|
|
287
289
|
embeddedBytes += bytes.length;
|
|
288
290
|
}
|
|
@@ -300,7 +302,17 @@ export async function compileResources({
|
|
|
300
302
|
|
|
301
303
|
if (credits) await writeFile(join(to, 'CREDITS.txt'), credits, 'utf8');
|
|
302
304
|
|
|
303
|
-
return {
|
|
305
|
+
return {
|
|
306
|
+
groups: written,
|
|
307
|
+
keys,
|
|
308
|
+
rawBytes,
|
|
309
|
+
embeddedBytes,
|
|
310
|
+
webpConverted,
|
|
311
|
+
svgOptimised,
|
|
312
|
+
skipped,
|
|
313
|
+
credits,
|
|
314
|
+
soundFonts,
|
|
315
|
+
};
|
|
304
316
|
}
|
|
305
317
|
|
|
306
318
|
/** the plain-text credits for a manifest, one block per entry; throws on an entry that cannot be attributed */
|
package/tools/emit-page.d.mts
CHANGED
|
@@ -28,6 +28,8 @@ export interface EmitPageOptions {
|
|
|
28
28
|
soundFontUsage?: readonly SoundFontUsage[];
|
|
29
29
|
/** the page's Content-Security-Policy: on by default, `false` to leave it out */
|
|
30
30
|
csp?: boolean | CspOptions;
|
|
31
|
+
/** fails the build when the page a player downloads (the standalone file, else the page and its scripts) is larger than this many bytes */
|
|
32
|
+
maxPageBytes?: number;
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
export interface CspOptions {
|
|
@@ -49,6 +51,10 @@ export interface EmitPageResult {
|
|
|
49
51
|
soundFonts: SoundFontEmbed[];
|
|
50
52
|
compressed: CompressRow[] | null;
|
|
51
53
|
single: SingleFileResult | null;
|
|
54
|
+
/** embedded assets whose path is never named in the game's script: a hint, since a path built at run time is not seen */
|
|
55
|
+
unusedAssets: string[];
|
|
56
|
+
/** bytes a player downloads to open the page */
|
|
57
|
+
pageBytes: number;
|
|
52
58
|
}
|
|
53
59
|
|
|
54
60
|
/** finishes a vite build as a page that opens from `file://` */
|