@bitmagic/cli 0.1.83-dev.2 → 0.1.83-dev.3
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/assets/vxl-summary.js +1 -1
- package/dist/assets/vxl-summary.js.map +1 -1
- package/dist/commands/steam-upload.js +6 -4
- package/dist/commands/steam-upload.js.map +1 -1
- package/dist/commands/steam.js +4 -2
- package/dist/commands/steam.js.map +1 -1
- package/dist/forge/browser-host.js +1 -1
- package/dist/forge/browser-host.js.map +1 -1
- package/dist/project/published-three.js +4 -6
- package/dist/project/published-three.js.map +1 -1
- package/dist/scaffold/project-files.js +2 -2
- package/dist/scaffold/project-files.js.map +1 -1
- package/dist/steam/art-generate.js +2 -1
- package/dist/steam/art-generate.js.map +1 -1
- package/dist/steam/art-render.js.map +1 -1
- package/dist/steam/art.js +1 -1
- package/dist/steam/art.js.map +1 -1
- package/dist/steam/check.js.map +1 -1
- package/dist/steam/electron-cache.d.ts +1 -1
- package/dist/steam/electron-cache.js +2 -2
- package/dist/steam/electron-cache.js.map +1 -1
- package/dist/steam/fuses.js +1 -1
- package/dist/steam/fuses.js.map +1 -1
- package/dist/steam/media.js +6 -2
- package/dist/steam/media.js.map +1 -1
- package/dist/steam/package-windows.d.ts +1 -2
- package/dist/steam/package-windows.js +1 -2
- package/dist/steam/package-windows.js.map +1 -1
- package/dist/steam/paths.d.ts +0 -2
- package/dist/steam/paths.js +0 -1
- package/dist/steam/paths.js.map +1 -1
- package/dist/steam/portal.js +1 -1
- package/dist/steam/portal.js.map +1 -1
- package/dist/steam/raster.d.ts +0 -1
- package/dist/steam/raster.js +1 -1
- package/dist/steam/raster.js.map +1 -1
- package/dist/steam/store-copy.d.ts +0 -1
- package/dist/steam/store-copy.js +3 -10
- package/dist/steam/store-copy.js.map +1 -1
- package/dist/steam/tags.js +6 -3
- package/dist/steam/tags.js.map +1 -1
- package/dist/theme/kernel.d.ts +14 -0
- package/dist/theme/kernel.js +15 -0
- package/dist/theme/kernel.js.map +1 -0
- package/dist/theme/theme-io.js +11 -16
- package/dist/theme/theme-io.js.map +1 -1
- package/dist/vendor/hud-theme/catalog.js +71 -0
- package/dist/vendor/hud-theme/engine/hud/ThemeTokens.js +115 -0
- package/dist/{theme/theme-color-math.js → vendor/hud-theme/engine/hud/colorMath.js} +13 -14
- package/dist/vendor/hud-theme/engine/hud/decorations.js +179 -0
- package/dist/vendor/hud-theme/engine/hud/fonts.js +147 -0
- package/dist/vendor/hud-theme/engine/hud/presets.js +80 -0
- package/dist/vendor/hud-theme/engine/hud/resolveWorldTheme.js +66 -0
- package/dist/vendor/hud-theme/engine/hud/themes/bitmagic.js +29 -0
- package/dist/vendor/hud-theme/engine/hud/themes/nexus.js +69 -0
- package/dist/vendor/hud-theme/engine/hud/themes/racing.js +57 -0
- package/dist/vendor/hud-theme/engine/hud/themes/rift-raider.js +63 -0
- package/dist/vendor/hud-theme/engine/hud/themes/simulator.js +55 -0
- package/dist/vendor/hud-theme/engine/hud/themes/village-keep.js +108 -0
- package/dist/vendor/hud-theme/engine/hud/validateTheme.js +535 -0
- package/dist/vendor/hud-theme/index.js +26 -0
- package/dist/{theme/theme-merge.js → vendor/hud-theme/merge.js} +0 -1
- package/dist/{theme/theme-report.js → vendor/hud-theme/report.js} +8 -9
- package/dist/{theme/theme-stored.js → vendor/hud-theme/stored.js} +6 -9
- package/dist/{theme/theme-validate.js → vendor/hud-theme/validate-strict.js} +102 -164
- package/dist/verify/browser.js +27 -3
- package/dist/verify/browser.js.map +1 -1
- package/dist/verify/categories.d.ts +1 -1
- package/dist/verify/categories.js +1 -0
- package/dist/verify/categories.js.map +1 -1
- package/dist/verify/classify.d.ts +3 -0
- package/dist/verify/classify.js +7 -0
- package/dist/verify/classify.js.map +1 -1
- package/dist/verify/hud-theme.d.ts +19 -14
- package/dist/verify/hud-theme.js +23 -17
- package/dist/verify/hud-theme.js.map +1 -1
- package/dist/verify/start.d.ts +3 -2
- package/dist/verify/start.js +1 -1
- package/dist/verify/start.js.map +1 -1
- package/package.json +7 -6
- package/dist/theme/hud-theme-catalog.d.ts +0 -235
- package/dist/theme/hud-theme-catalog.js +0 -389
- package/dist/theme/hud-theme-catalog.js.map +0 -1
- package/dist/theme/theme-color-math.d.ts +0 -21
- package/dist/theme/theme-color-math.js.map +0 -1
- package/dist/theme/theme-merge.d.ts +0 -36
- package/dist/theme/theme-merge.js.map +0 -1
- package/dist/theme/theme-report.d.ts +0 -28
- package/dist/theme/theme-report.js.map +0 -1
- package/dist/theme/theme-stored.d.ts +0 -21
- package/dist/theme/theme-stored.js.map +0 -1
- package/dist/theme/theme-validate.d.ts +0 -41
- package/dist/theme/theme-validate.js.map +0 -1
|
@@ -1,77 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The strict write-time HUD theme validator.
|
|
3
3
|
*
|
|
4
|
-
* STRICTER than the engine's load-time validator on
|
|
5
|
-
* is the design: at WRITE time a bad per-element leaf
|
|
6
|
-
* fix in the same turn, while at LOAD time the engine
|
|
7
|
-
* already-published themes, so it warns and drops the leaf
|
|
8
|
-
* this validator accepts, the engine accepts; the reverse is
|
|
4
|
+
* STRICTER than the engine's load-time validator (`validateAndResolveTheme`) on
|
|
5
|
+
* purpose, and that asymmetry is the design: at WRITE time a bad per-element leaf
|
|
6
|
+
* is an error the agent can fix in the same turn, while at LOAD time the engine
|
|
7
|
+
* must keep rendering already-published themes, so it warns and drops the leaf
|
|
8
|
+
* instead. Everything this validator accepts, the engine accepts; the reverse is
|
|
9
|
+
* not required. This package's tests hold that rule over a fixture corpus.
|
|
9
10
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* is broken" rather than "the value was wrong". Parity with the engine is
|
|
15
|
-
* enforced by scripts/check-hud-catalog.ts, which runs both validators over a
|
|
16
|
-
* fixture corpus under tsx and compares verdicts.
|
|
17
|
-
*
|
|
18
|
-
* Validation rules mirror game/src/engine/hud/validateTheme.ts; vocabulary
|
|
19
|
-
* comes from the drift-checked catalog next door.
|
|
11
|
+
* Both modes read the same vocabulary and ranges from the engine's ThemeTokens.ts
|
|
12
|
+
* and the same catalogues (fonts, decorations), and share the engine's
|
|
13
|
+
* `suggestClosest`, so they cannot disagree about what a key, a range or a
|
|
14
|
+
* "Closest match" is — only about how loudly to fail.
|
|
20
15
|
*/
|
|
21
|
-
import {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', 'center',
|
|
27
|
-
];
|
|
28
|
-
const REPEAT_VALUES = ['no-repeat', 'repeat', 'repeat-x', 'repeat-y'];
|
|
29
|
-
const BORDER_REPEAT_VALUES = ['stretch', 'repeat', 'round', 'space'];
|
|
30
|
-
const COLOR_KEYS = [
|
|
31
|
-
'primary', 'danger', 'warning', 'success', 'background', 'surface', 'text', 'textMuted', 'outline',
|
|
32
|
-
];
|
|
33
|
-
const REQUIRED_COLOR_KEYS = ['primary', 'danger', 'background', 'surface', 'text'];
|
|
34
|
-
// Levenshtein, matching the engine: suggest only when the distance is small
|
|
35
|
-
// relative to the input. A wild guess gets the full candidate list from the
|
|
36
|
-
// error message, never false confidence in one arbitrary name.
|
|
37
|
-
function editDistance(a, b) {
|
|
38
|
-
let prev = Array.from({ length: b.length + 1 }, (_, i) => i);
|
|
39
|
-
for (let i = 1; i <= a.length; i++) {
|
|
40
|
-
const cur = [i];
|
|
41
|
-
for (let j = 1; j <= b.length; j++) {
|
|
42
|
-
const deletion = (prev[j] ?? 0) + 1;
|
|
43
|
-
const insertion = (cur[j - 1] ?? 0) + 1;
|
|
44
|
-
const substitution = (prev[j - 1] ?? 0) + (a[i - 1] === b[j - 1] ? 0 : 1);
|
|
45
|
-
cur[j] = Math.min(deletion, insertion, substitution);
|
|
46
|
-
}
|
|
47
|
-
prev = cur;
|
|
48
|
-
}
|
|
49
|
-
return prev[b.length] ?? 0;
|
|
50
|
-
}
|
|
51
|
-
export function suggestClosest(value, candidates) {
|
|
52
|
-
const v = value.toLowerCase();
|
|
53
|
-
let best;
|
|
54
|
-
let bestScore = Infinity;
|
|
55
|
-
for (const c of candidates) {
|
|
56
|
-
const score = editDistance(v, c.toLowerCase());
|
|
57
|
-
if (score < bestScore) {
|
|
58
|
-
bestScore = score;
|
|
59
|
-
best = c;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
const maxDistance = Math.max(2, Math.ceil(v.length / 3));
|
|
63
|
-
return bestScore <= maxDistance ? best : undefined;
|
|
64
|
-
}
|
|
16
|
+
import { BACKGROUND_POSITIONS, BACKGROUND_REPEATS, BACKGROUND_SIZE_KEYWORDS, BACKGROUND_TILE_SIZE, BORDER_IMAGE_REPEATS, DECORATION_SLOT_KINDS, FONT_BODY_WEIGHTS, FONT_HEADING_WEIGHTS, GLOW_KEYS, HUD_ELEMENT_CLASSES, IMAGE_RENDERINGS, LABEL_CASES, MAX_INLINE_SVG_LENGTH, REQUIRED_THEME_COLOR_KEYS, THEME_COLOR_KEYS, THEME_ICON_KEYS, THEME_NUMBER_RANGES, isHexColor, } from './engine/hud/ThemeTokens.js';
|
|
17
|
+
import { HUD_FONTS } from './engine/hud/fonts.js';
|
|
18
|
+
import { HUD_DECORATIONS } from './engine/hud/decorations.js';
|
|
19
|
+
import { suggestClosest } from './engine/hud/validateTheme.js';
|
|
20
|
+
export { suggestClosest };
|
|
65
21
|
function isObject(v) {
|
|
66
22
|
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
67
23
|
}
|
|
68
|
-
function
|
|
24
|
+
function includes(list, value) {
|
|
25
|
+
return list.includes(value);
|
|
26
|
+
}
|
|
27
|
+
function checkNumber(ctx, path, value, token) {
|
|
28
|
+
const [min, max] = THEME_NUMBER_RANGES[token];
|
|
69
29
|
if (typeof value !== 'number' || !Number.isFinite(value) || value < min || value > max) {
|
|
70
30
|
ctx.errors.push({ path, message: `${JSON.stringify(value)} is not a number in [${min}, ${max}]` });
|
|
71
31
|
}
|
|
72
32
|
}
|
|
73
33
|
function checkHexAt(ctx, path, value) {
|
|
74
|
-
if (
|
|
34
|
+
if (!isHexColor(value)) {
|
|
75
35
|
ctx.errors.push({
|
|
76
36
|
path,
|
|
77
37
|
message: `${JSON.stringify(value)} is not a 6-digit hex color`,
|
|
@@ -89,6 +49,14 @@ function checkKeyed(ctx, path, value, allowed) {
|
|
|
89
49
|
...(close ? { suggestion: `Closest match: "${close}"` } : {}),
|
|
90
50
|
});
|
|
91
51
|
}
|
|
52
|
+
function unknownKey(ctx, path, message, value, known) {
|
|
53
|
+
const close = suggestClosest(value, known);
|
|
54
|
+
ctx.errors.push({
|
|
55
|
+
path,
|
|
56
|
+
message,
|
|
57
|
+
suggestion: close ? `Closest match: "${close}". Known: ${known.join(', ')}` : `Known: ${known.join(', ')}`,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
92
60
|
function checkFontBlock(ctx, path, raw, required) {
|
|
93
61
|
if (raw === undefined) {
|
|
94
62
|
if (required)
|
|
@@ -119,15 +87,11 @@ function checkFontBlock(ctx, path, raw, required) {
|
|
|
119
87
|
// corrected object is what gets written, and the warning explains the
|
|
120
88
|
// swap so the agent can mention it to the user.
|
|
121
89
|
//
|
|
122
|
-
// Only a VALID case value is eligible:
|
|
123
|
-
//
|
|
124
|
-
//
|
|
125
|
-
// the kit passed with a warning where the engine hard-rejects the whole
|
|
126
|
-
// theme — kit-ok/engine-reject, the exact parity direction the gate
|
|
127
|
-
// exists to forbid.
|
|
90
|
+
// Only a VALID case value is eligible: correcting any string (including
|
|
91
|
+
// "lower"/"uppercase") would let the enum check below see the corrected
|
|
92
|
+
// value and pass a theme the engine hard-rejects.
|
|
128
93
|
const entry = HUD_FONTS[raw.key];
|
|
129
|
-
if ((raw.case
|
|
130
|
-
&& !entry.suitsCase.includes(raw.case)) {
|
|
94
|
+
if (includes(LABEL_CASES, raw.case) && !includes(entry.suitsCase, raw.case)) {
|
|
131
95
|
const originalCase = raw.case;
|
|
132
96
|
const correctedCase = entry.suitsCase[0];
|
|
133
97
|
raw.case = correctedCase;
|
|
@@ -138,21 +102,21 @@ function checkFontBlock(ctx, path, raw, required) {
|
|
|
138
102
|
});
|
|
139
103
|
}
|
|
140
104
|
}
|
|
141
|
-
if (raw.case !== undefined &&
|
|
105
|
+
if (raw.case !== undefined && !includes(LABEL_CASES, raw.case)) {
|
|
142
106
|
ctx.errors.push({ path: `${path}.case`, message: `${JSON.stringify(raw.case)} is not "upper" or "normal"` });
|
|
143
107
|
}
|
|
144
|
-
if (raw.weightBody !== undefined && !
|
|
145
|
-
ctx.errors.push({ path: `${path}.weightBody`, message: `${JSON.stringify(raw.weightBody)} is not one of
|
|
108
|
+
if (raw.weightBody !== undefined && !includes(FONT_BODY_WEIGHTS, raw.weightBody)) {
|
|
109
|
+
ctx.errors.push({ path: `${path}.weightBody`, message: `${JSON.stringify(raw.weightBody)} is not one of ${FONT_BODY_WEIGHTS.join(', ')}` });
|
|
146
110
|
}
|
|
147
|
-
if (raw.weightHeading !== undefined && !
|
|
148
|
-
ctx.errors.push({ path: `${path}.weightHeading`, message: `${JSON.stringify(raw.weightHeading)} is not one of
|
|
111
|
+
if (raw.weightHeading !== undefined && !includes(FONT_HEADING_WEIGHTS, raw.weightHeading)) {
|
|
112
|
+
ctx.errors.push({ path: `${path}.weightHeading`, message: `${JSON.stringify(raw.weightHeading)} is not one of ${FONT_HEADING_WEIGHTS.join(', ')}` });
|
|
149
113
|
}
|
|
150
114
|
if (raw.trackingLabel !== undefined)
|
|
151
|
-
checkNumber(ctx, `${path}.trackingLabel`, raw.trackingLabel,
|
|
115
|
+
checkNumber(ctx, `${path}.trackingLabel`, raw.trackingLabel, 'trackingLabel');
|
|
152
116
|
if (raw.outlineWidth !== undefined)
|
|
153
|
-
checkNumber(ctx, `${path}.outlineWidth`, raw.outlineWidth,
|
|
117
|
+
checkNumber(ctx, `${path}.outlineWidth`, raw.outlineWidth, 'outlineWidth');
|
|
154
118
|
if (raw.sizeScale !== undefined)
|
|
155
|
-
checkNumber(ctx, `${path}.sizeScale`, raw.sizeScale,
|
|
119
|
+
checkNumber(ctx, `${path}.sizeScale`, raw.sizeScale, 'sizeScale');
|
|
156
120
|
}
|
|
157
121
|
function checkColorsBlock(ctx, path, raw, required) {
|
|
158
122
|
if (raw === undefined) {
|
|
@@ -165,20 +129,15 @@ function checkColorsBlock(ctx, path, raw, required) {
|
|
|
165
129
|
return;
|
|
166
130
|
}
|
|
167
131
|
if (required) {
|
|
168
|
-
for (const key of
|
|
132
|
+
for (const key of REQUIRED_THEME_COLOR_KEYS) {
|
|
169
133
|
if (raw[key] === undefined) {
|
|
170
134
|
ctx.errors.push({ path: `${path}.${key}`, message: `colors.${key} is required (hex string)` });
|
|
171
135
|
}
|
|
172
136
|
}
|
|
173
137
|
}
|
|
174
138
|
for (const key of Object.keys(raw)) {
|
|
175
|
-
if (!
|
|
176
|
-
|
|
177
|
-
ctx.errors.push({
|
|
178
|
-
path: `${path}.${key}`,
|
|
179
|
-
message: `unknown color token "${key}"`,
|
|
180
|
-
suggestion: close ? `Closest match: "${close}". Known: ${COLOR_KEYS.join(', ')}` : `Known: ${COLOR_KEYS.join(', ')}`,
|
|
181
|
-
});
|
|
139
|
+
if (!includes(THEME_COLOR_KEYS, key)) {
|
|
140
|
+
unknownKey(ctx, `${path}.${key}`, `unknown color token "${key}"`, key, THEME_COLOR_KEYS);
|
|
182
141
|
continue;
|
|
183
142
|
}
|
|
184
143
|
checkHexAt(ctx, `${path}.${key}`, raw[key]);
|
|
@@ -191,21 +150,15 @@ function checkShapeBlock(ctx, path, raw) {
|
|
|
191
150
|
ctx.errors.push({ path, message: 'shape must be an object' });
|
|
192
151
|
return;
|
|
193
152
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
if (raw.borderWidth !== undefined)
|
|
199
|
-
checkNumber(ctx, `${path}.borderWidth`, raw.borderWidth, 0, 6);
|
|
200
|
-
if (raw.bevel !== undefined)
|
|
201
|
-
checkNumber(ctx, `${path}.bevel`, raw.bevel, 0, 1);
|
|
202
|
-
if (raw.gloss !== undefined)
|
|
203
|
-
checkNumber(ctx, `${path}.gloss`, raw.gloss, 0, 1);
|
|
153
|
+
for (const token of ['radiusPill', 'radiusCard', 'borderWidth', 'bevel', 'gloss']) {
|
|
154
|
+
if (raw[token] !== undefined)
|
|
155
|
+
checkNumber(ctx, `${path}.${token}`, raw[token], token);
|
|
156
|
+
}
|
|
204
157
|
if (raw.glow !== undefined)
|
|
205
|
-
checkKeyed(ctx, `${path}.glow`, raw.glow,
|
|
158
|
+
checkKeyed(ctx, `${path}.glow`, raw.glow, GLOW_KEYS);
|
|
206
159
|
if (raw.glowColor !== undefined)
|
|
207
160
|
checkHexAt(ctx, `${path}.glowColor`, raw.glowColor);
|
|
208
|
-
if (raw.imageRendering !== undefined &&
|
|
161
|
+
if (raw.imageRendering !== undefined && !includes(IMAGE_RENDERINGS, raw.imageRendering)) {
|
|
209
162
|
ctx.errors.push({ path: `${path}.imageRendering`, message: `${JSON.stringify(raw.imageRendering)} is not "auto" or "pixelated"` });
|
|
210
163
|
}
|
|
211
164
|
}
|
|
@@ -226,7 +179,7 @@ function checkDecorationValue(ctx, path, slotName, value) {
|
|
|
226
179
|
// Suitability is a WARNING, matching the engine: an unsuited pairing
|
|
227
180
|
// renders, it just usually looks wrong.
|
|
228
181
|
const entry = HUD_DECORATIONS[value];
|
|
229
|
-
if (!entry.suitsSlots
|
|
182
|
+
if (!includes(entry.suitsSlots, slotName)) {
|
|
230
183
|
ctx.warnings.push({
|
|
231
184
|
path,
|
|
232
185
|
message: `decoration "${value}" isn't designed for slot "${slotName}" (suits: ${entry.suitsSlots.join(', ')})`,
|
|
@@ -239,18 +192,18 @@ function checkDecorationValue(ctx, path, slotName, value) {
|
|
|
239
192
|
ctx.errors.push({ path: `${path}.svg`, message: 'inline decoration must have an svg string' });
|
|
240
193
|
return;
|
|
241
194
|
}
|
|
242
|
-
if (value.svg.length >
|
|
195
|
+
if (value.svg.length > MAX_INLINE_SVG_LENGTH) {
|
|
243
196
|
ctx.errors.push({ path: `${path}.svg`, message: 'inline SVG exceeds 16kb limit' });
|
|
244
197
|
}
|
|
245
198
|
if (slotName === 'borderImage') {
|
|
246
199
|
if (value.borderSlice !== undefined)
|
|
247
|
-
checkNumber(ctx, `${path}.borderSlice`, value.borderSlice,
|
|
200
|
+
checkNumber(ctx, `${path}.borderSlice`, value.borderSlice, 'borderSlice');
|
|
248
201
|
if (value.repeat !== undefined)
|
|
249
|
-
checkKeyed(ctx, `${path}.repeat`, value.repeat,
|
|
202
|
+
checkKeyed(ctx, `${path}.repeat`, value.repeat, BORDER_IMAGE_REPEATS);
|
|
250
203
|
}
|
|
251
204
|
else {
|
|
252
|
-
if (value.size !== undefined &&
|
|
253
|
-
&& !(typeof value.size === 'string' &&
|
|
205
|
+
if (value.size !== undefined && !includes(BACKGROUND_SIZE_KEYWORDS, value.size)
|
|
206
|
+
&& !(typeof value.size === 'string' && BACKGROUND_TILE_SIZE.test(value.size))) {
|
|
254
207
|
ctx.errors.push({
|
|
255
208
|
path: `${path}.size`,
|
|
256
209
|
message: `${JSON.stringify(value.size)} is not "cover", "contain", "auto", or an explicit tile size`,
|
|
@@ -258,14 +211,20 @@ function checkDecorationValue(ctx, path, slotName, value) {
|
|
|
258
211
|
});
|
|
259
212
|
}
|
|
260
213
|
if (value.position !== undefined)
|
|
261
|
-
checkKeyed(ctx, `${path}.position`, value.position,
|
|
214
|
+
checkKeyed(ctx, `${path}.position`, value.position, BACKGROUND_POSITIONS);
|
|
262
215
|
if (value.repeat !== undefined)
|
|
263
|
-
checkKeyed(ctx, `${path}.repeat`, value.repeat,
|
|
216
|
+
checkKeyed(ctx, `${path}.repeat`, value.repeat, BACKGROUND_REPEATS);
|
|
264
217
|
}
|
|
265
218
|
return;
|
|
266
219
|
}
|
|
267
220
|
ctx.errors.push({ path, message: 'expected curated decoration key string or inline SVG object' });
|
|
268
221
|
}
|
|
222
|
+
function checkElementClassKey(ctx, path, elementClass) {
|
|
223
|
+
if (includes(HUD_ELEMENT_CLASSES, elementClass))
|
|
224
|
+
return true;
|
|
225
|
+
unknownKey(ctx, `${path}.${elementClass}`, `unknown HUD element class "${elementClass}"`, elementClass, HUD_ELEMENT_CLASSES);
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
269
228
|
function checkDecorationsBlock(ctx, path, raw) {
|
|
270
229
|
if (raw === undefined || raw === null)
|
|
271
230
|
return;
|
|
@@ -274,30 +233,14 @@ function checkDecorationsBlock(ctx, path, raw) {
|
|
|
274
233
|
return;
|
|
275
234
|
}
|
|
276
235
|
for (const elementClass of Object.keys(raw)) {
|
|
277
|
-
if (!
|
|
278
|
-
const close = suggestClosest(elementClass, HUD_ELEMENT_CLASSES);
|
|
279
|
-
ctx.errors.push({
|
|
280
|
-
path: `${path}.${elementClass}`,
|
|
281
|
-
message: `unknown HUD element class "${elementClass}"`,
|
|
282
|
-
suggestion: close
|
|
283
|
-
? `Closest match: "${close}". Known: ${HUD_ELEMENT_CLASSES.join(', ')}`
|
|
284
|
-
: `Known: ${HUD_ELEMENT_CLASSES.join(', ')}`,
|
|
285
|
-
});
|
|
236
|
+
if (!checkElementClassKey(ctx, path, elementClass))
|
|
286
237
|
continue;
|
|
287
|
-
}
|
|
288
238
|
const slots = raw[elementClass];
|
|
289
239
|
if (!isObject(slots))
|
|
290
240
|
continue;
|
|
291
241
|
for (const slotName of Object.keys(slots)) {
|
|
292
|
-
if (!
|
|
293
|
-
|
|
294
|
-
ctx.errors.push({
|
|
295
|
-
path: `${path}.${elementClass}.${slotName}`,
|
|
296
|
-
message: `unknown slot "${slotName}"`,
|
|
297
|
-
suggestion: close
|
|
298
|
-
? `Closest match: "${close}". Known: ${HUD_DECORATION_SLOTS.join(', ')}`
|
|
299
|
-
: `Known: ${HUD_DECORATION_SLOTS.join(', ')}`,
|
|
300
|
-
});
|
|
242
|
+
if (!includes(DECORATION_SLOT_KINDS, slotName)) {
|
|
243
|
+
unknownKey(ctx, `${path}.${elementClass}.${slotName}`, `unknown slot "${slotName}"`, slotName, DECORATION_SLOT_KINDS);
|
|
301
244
|
continue;
|
|
302
245
|
}
|
|
303
246
|
checkDecorationValue(ctx, `${path}.${elementClass}.${slotName}`, slotName, slots[slotName]);
|
|
@@ -312,17 +255,8 @@ function checkElementsBlock(ctx, path, raw) {
|
|
|
312
255
|
return;
|
|
313
256
|
}
|
|
314
257
|
for (const elementClass of Object.keys(raw)) {
|
|
315
|
-
if (!
|
|
316
|
-
const close = suggestClosest(elementClass, HUD_ELEMENT_CLASSES);
|
|
317
|
-
ctx.errors.push({
|
|
318
|
-
path: `${path}.${elementClass}`,
|
|
319
|
-
message: `unknown HUD element class "${elementClass}"`,
|
|
320
|
-
suggestion: close
|
|
321
|
-
? `Closest match: "${close}". Known: ${HUD_ELEMENT_CLASSES.join(', ')}`
|
|
322
|
-
: `Known: ${HUD_ELEMENT_CLASSES.join(', ')}`,
|
|
323
|
-
});
|
|
258
|
+
if (!checkElementClassKey(ctx, path, elementClass))
|
|
324
259
|
continue;
|
|
325
|
-
}
|
|
326
260
|
const override = raw[elementClass];
|
|
327
261
|
if (!isObject(override)) {
|
|
328
262
|
ctx.errors.push({ path: `${path}.${elementClass}`, message: 'expected a partial theme object' });
|
|
@@ -339,6 +273,34 @@ function checkElementsBlock(ctx, path, raw) {
|
|
|
339
273
|
checkDecorationsBlock(ctx, `${path}.${elementClass}.decorations`, override.decorations);
|
|
340
274
|
}
|
|
341
275
|
}
|
|
276
|
+
function checkIconsBlock(ctx, raw) {
|
|
277
|
+
if (raw === undefined || raw === null)
|
|
278
|
+
return;
|
|
279
|
+
if (!isObject(raw)) {
|
|
280
|
+
ctx.errors.push({ path: 'icons', message: `icons must be an object keyed by slot name (${THEME_ICON_KEYS.join(', ')})` });
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
for (const key of Object.keys(raw)) {
|
|
284
|
+
if (!includes(THEME_ICON_KEYS, key)) {
|
|
285
|
+
ctx.errors.push({
|
|
286
|
+
path: `icons.${key}`,
|
|
287
|
+
message: `unknown icon slot "${key}"`,
|
|
288
|
+
suggestion: `Known: ${THEME_ICON_KEYS.join(', ')}`,
|
|
289
|
+
});
|
|
290
|
+
continue;
|
|
291
|
+
}
|
|
292
|
+
const value = raw[key];
|
|
293
|
+
if (value === undefined || value === null)
|
|
294
|
+
continue;
|
|
295
|
+
if (typeof value !== 'string') {
|
|
296
|
+
ctx.errors.push({ path: `icons.${key}`, message: 'icon SVG must be a string' });
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
|
+
if (value.length > MAX_INLINE_SVG_LENGTH) {
|
|
300
|
+
ctx.errors.push({ path: `icons.${key}`, message: 'icon SVG exceeds 16kb limit' });
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
342
304
|
/**
|
|
343
305
|
* Whether an issue would make the ENGINE reject the whole theme, or only drop a
|
|
344
306
|
* leaf while the theme keeps rendering.
|
|
@@ -358,6 +320,11 @@ export function isEngineFatalIssue(issue) {
|
|
|
358
320
|
return false;
|
|
359
321
|
return true;
|
|
360
322
|
}
|
|
323
|
+
/**
|
|
324
|
+
* Validate a whole inline theme at write time. Mutates `theme` in one place: a
|
|
325
|
+
* font case the font is not designed for is auto-corrected (with a warning), and
|
|
326
|
+
* the corrected object is what the caller writes.
|
|
327
|
+
*/
|
|
361
328
|
export function validateThemeStrict(theme) {
|
|
362
329
|
const ctx = { errors: [], warnings: [] };
|
|
363
330
|
if (!isObject(theme)) {
|
|
@@ -372,35 +339,6 @@ export function validateThemeStrict(theme) {
|
|
|
372
339
|
checkShapeBlock(ctx, 'shape', theme.shape);
|
|
373
340
|
checkDecorationsBlock(ctx, 'decorations', theme.decorations);
|
|
374
341
|
checkElementsBlock(ctx, 'elements', theme.elements);
|
|
375
|
-
|
|
376
|
-
const icons = theme.icons;
|
|
377
|
-
if (icons !== undefined && icons !== null) {
|
|
378
|
-
if (!isObject(icons)) {
|
|
379
|
-
ctx.errors.push({ path: 'icons', message: 'icons must be an object keyed by slot name (heart, mouse, arrow)' });
|
|
380
|
-
}
|
|
381
|
-
else {
|
|
382
|
-
for (const key of Object.keys(icons)) {
|
|
383
|
-
if (!HUD_ICON_KEYS.includes(key)) {
|
|
384
|
-
ctx.errors.push({
|
|
385
|
-
path: `icons.${key}`,
|
|
386
|
-
message: `unknown icon slot "${key}"`,
|
|
387
|
-
suggestion: `Known: ${HUD_ICON_KEYS.join(', ')}`,
|
|
388
|
-
});
|
|
389
|
-
continue;
|
|
390
|
-
}
|
|
391
|
-
const value = icons[key];
|
|
392
|
-
if (value === undefined || value === null)
|
|
393
|
-
continue;
|
|
394
|
-
if (typeof value !== 'string') {
|
|
395
|
-
ctx.errors.push({ path: `icons.${key}`, message: 'icon SVG must be a string' });
|
|
396
|
-
continue;
|
|
397
|
-
}
|
|
398
|
-
if (value.length > 16384) {
|
|
399
|
-
ctx.errors.push({ path: `icons.${key}`, message: 'icon SVG exceeds 16kb limit' });
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
}
|
|
342
|
+
checkIconsBlock(ctx, theme.icons);
|
|
404
343
|
return { ok: ctx.errors.length === 0, errors: ctx.errors, warnings: ctx.warnings };
|
|
405
344
|
}
|
|
406
|
-
//# sourceMappingURL=theme-validate.js.map
|
package/dist/verify/browser.js
CHANGED
|
@@ -203,6 +203,7 @@ export async function observeGamePage(page, options, viewport, navigate) {
|
|
|
203
203
|
// so a start that only lands during the settle (slow world load) still counts.
|
|
204
204
|
gameStartDetected: hasStartMarker(consoleLines, startInteraction.startedConsoleMarker),
|
|
205
205
|
menuVisibleAfterSettle: await isMenuVisible(interactiveTarget),
|
|
206
|
+
customStartScreen: await hasCustomStartScreen(interactiveTarget),
|
|
206
207
|
};
|
|
207
208
|
}
|
|
208
209
|
// Only meaningful on a run that emulated a phone: on desktop the engine never builds
|
|
@@ -636,9 +637,9 @@ async function measureCanvasFrame(page, screenshot, rect) {
|
|
|
636
637
|
const PRESS_TIMEOUT_MS = 5_000;
|
|
637
638
|
/**
|
|
638
639
|
* Start gameplay the way a player does: click through whatever the pre-play screen asks for and
|
|
639
|
-
* press Play — a click on the desktop run, a tap on the mobile one (see `tap` below).
|
|
640
|
-
*
|
|
641
|
-
* marker instead.
|
|
640
|
+
* press Play — a click on the desktop run, a tap on the mobile one (see `tap` below). A custom
|
|
641
|
+
* start screen is pressed through the control it marks `data-bitmagic-play`; games without any
|
|
642
|
+
* button (auto-starting genres) are accepted through the start marker instead.
|
|
642
643
|
*
|
|
643
644
|
* The screen can ask for more than Play. A game that authors
|
|
644
645
|
* `worldProfileData.hud.startScreen.selections` presents a level chooser BEFORE the world loads
|
|
@@ -820,6 +821,29 @@ async function probeTouchControls(target) {
|
|
|
820
821
|
* StartScreen fades out and sets `display: none`; a menu still up at the end of the run means
|
|
821
822
|
* the game bounced back to (or never left) the menu, whatever the console claimed.
|
|
822
823
|
*/
|
|
824
|
+
/**
|
|
825
|
+
* Whether game code replaced the engine start screen (`engine.setUIComponent('start', …)`).
|
|
826
|
+
*
|
|
827
|
+
* Only read to word a never-started failure: such a game has no engine Play button, so verify
|
|
828
|
+
* can press nothing but a control the game marked `data-bitmagic-play`. Probed through
|
|
829
|
+
* `window.gameTemplate` like the other engine probes; a page that cannot answer yields false,
|
|
830
|
+
* which keeps the generic never-started message.
|
|
831
|
+
*/
|
|
832
|
+
async function hasCustomStartScreen(page) {
|
|
833
|
+
const probed = await page.evaluate(() => {
|
|
834
|
+
/* eslint-disable no-undef -- browser-side callback, see the canvas probe above. */
|
|
835
|
+
try {
|
|
836
|
+
const template = window.gameTemplate;
|
|
837
|
+
const engine = template?.getGameEngine?.();
|
|
838
|
+
return (engine?.getUIComponent?.('start') ?? null) !== null;
|
|
839
|
+
}
|
|
840
|
+
catch {
|
|
841
|
+
return false;
|
|
842
|
+
}
|
|
843
|
+
/* eslint-enable no-undef */
|
|
844
|
+
}).catch(() => false);
|
|
845
|
+
return probed === true;
|
|
846
|
+
}
|
|
823
847
|
async function isMenuVisible(page) {
|
|
824
848
|
return page.evaluate(() => {
|
|
825
849
|
// Runs inside the browser, where `document`/`window` are real globals — see the canvas probe
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/verify/browser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/verify/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Keep the table in step with `classify.ts`: a new failure there lands in `other` here until it
|
|
11
11
|
* gets a row, and `categories.test.ts` pins every existing message to its category.
|
|
12
12
|
*/
|
|
13
|
-
export type VerifyFailureCategory = 'page_error' | 'start_threw' | 'play_unclickable' | 'selection_stalled' | 'never_started' | 'webgpu_fallback' | 'mobile_parity' | 'no_canvas' | 'canvas_zero' | 'canvas_unclaimed' | 'frame_blank' | 'frame_black' | 'frame_flat' | 'gl_context_lost' | 'engine_error' | 'cors_blocked' | 'fell_out_of_world' | 'still_falling' | 'render_stalled' | 'other';
|
|
13
|
+
export type VerifyFailureCategory = 'page_error' | 'start_threw' | 'play_unclickable' | 'selection_stalled' | 'custom_start_unmarked' | 'never_started' | 'webgpu_fallback' | 'mobile_parity' | 'no_canvas' | 'canvas_zero' | 'canvas_unclaimed' | 'frame_blank' | 'frame_black' | 'frame_flat' | 'gl_context_lost' | 'engine_error' | 'cors_blocked' | 'fell_out_of_world' | 'still_falling' | 'render_stalled' | 'other';
|
|
14
14
|
export declare function categoriseVerifyFailure(message: string): VerifyFailureCategory;
|
|
15
15
|
/** The distinct categories of a run's failures, in first-seen order — what the beacon carries. */
|
|
16
16
|
export declare function verifyFailureCategories(failures: readonly string[]): VerifyFailureCategory[];
|
|
@@ -15,6 +15,7 @@ const TABLE = [
|
|
|
15
15
|
[/^The Play button was clicked but the game never started/, 'start_threw'],
|
|
16
16
|
[/^The Play button appeared but could not be clicked/, 'play_unclickable'],
|
|
17
17
|
[/^Picked \d+ pre-play selection/, 'selection_stalled'],
|
|
18
|
+
[/^The game installs its own start screen/, 'custom_start_unmarked'],
|
|
18
19
|
[/^The game never started/, 'never_started'],
|
|
19
20
|
[/^WebGPU was requested but the renderer silently fell back/, 'webgpu_fallback'],
|
|
20
21
|
[/^This game declares primaryPlatform "mobile"/, 'mobile_parity'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"categories.js","sourceRoot":"","sources":["../../src/verify/categories.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"categories.js","sourceRoot":"","sources":["../../src/verify/categories.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAyBH,MAAM,KAAK,GAA4D;IACrE,CAAC,8BAA8B,EAAE,YAAY,CAAC;IAC9C,CAAC,yDAAyD,EAAE,aAAa,CAAC;IAC1E,CAAC,oDAAoD,EAAE,kBAAkB,CAAC;IAC1E,CAAC,gCAAgC,EAAE,mBAAmB,CAAC;IACvD,CAAC,yCAAyC,EAAE,uBAAuB,CAAC;IACpE,CAAC,yBAAyB,EAAE,eAAe,CAAC;IAC5C,CAAC,2DAA2D,EAAE,iBAAiB,CAAC;IAChF,CAAC,8CAA8C,EAAE,eAAe,CAAC;IACjE,CAAC,2BAA2B,EAAE,WAAW,CAAC;IAC1C,CAAC,yBAAyB,EAAE,aAAa,CAAC;IAC1C,CAAC,6CAA6C,EAAE,kBAAkB,CAAC;IACnE,CAAC,sCAAsC,EAAE,aAAa,CAAC;IACvD,CAAC,0BAA0B,EAAE,aAAa,CAAC;IAC3C,CAAC,gDAAgD,EAAE,YAAY,CAAC;IAChE,CAAC,6BAA6B,EAAE,iBAAiB,CAAC;IAClD,CAAC,uBAAuB,EAAE,cAAc,CAAC;IACzC,CAAC,oCAAoC,EAAE,cAAc,CAAC;IACtD,CAAC,mCAAmC,EAAE,mBAAmB,CAAC;IAC1D,CAAC,+BAA+B,EAAE,eAAe,CAAC;IAClD,CAAC,iCAAiC,EAAE,gBAAgB,CAAC;CACtD,CAAC;AAEF,4GAA4G;AAC5G,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEhD,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAClD,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,QAAQ,CAAC;IAC1C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,uBAAuB,CAAC,QAA2B;IACjE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC9C,KAAK,MAAM,OAAO,IAAI,QAAQ;QAAE,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC"}
|
|
@@ -120,6 +120,9 @@ export interface StartObservations {
|
|
|
120
120
|
gameStartDetected: boolean;
|
|
121
121
|
/** The start menu overlay was still displayed after settling. */
|
|
122
122
|
menuVisibleAfterSettle: boolean;
|
|
123
|
+
/** Game code replaced the engine start screen (`engine.setUIComponent('start', …)`), so the
|
|
124
|
+
* engine's Play button never exists and verify can only press a `data-bitmagic-play` control. */
|
|
125
|
+
customStartScreen?: boolean;
|
|
123
126
|
}
|
|
124
127
|
export interface VerifyObservations {
|
|
125
128
|
/** Console lines, each prefixed with its type, e.g. `error: …`. */
|
package/dist/verify/classify.js
CHANGED
|
@@ -175,6 +175,13 @@ export function classifyVerifyRun(observations, context = {}) {
|
|
|
175
175
|
+ `${start.selectionsPicked === 1 ? '' : 's'} but the Play button never appeared and no `
|
|
176
176
|
+ 'game start was detected — the picked level or option most likely never finished loading.');
|
|
177
177
|
}
|
|
178
|
+
else if (start.customStartScreen) {
|
|
179
|
+
// The commonest way a custom start screen fails verify: it renders its own Play control
|
|
180
|
+
// that verify has no way to recognise, so a healthy game reads as one that never started.
|
|
181
|
+
failures.push('The game installs its own start screen (setUIComponent(\'start\', …)) but never '
|
|
182
|
+
+ 'started — no element marked data-bitmagic-play appeared to press, and no game start '
|
|
183
|
+
+ 'was detected. Add the data-bitmagic-play attribute to the custom Play button.');
|
|
184
|
+
}
|
|
178
185
|
else {
|
|
179
186
|
failures.push('The game never started — no Play button appeared and no game start was detected.');
|
|
180
187
|
}
|