@bitmagic/cli 0.1.56-dev.0 → 0.1.56-dev.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/dist/cli.js +15 -27
- package/dist/cli.js.map +1 -1
- package/dist/commands/generate.d.ts +6 -9
- package/dist/commands/generate.js +31 -26
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/ios.js +25 -28
- package/dist/commands/ios.js.map +1 -1
- package/dist/commands/judge.d.ts +0 -2
- package/dist/commands/judge.js +6 -6
- package/dist/commands/judge.js.map +1 -1
- package/dist/commands/publish.js +6 -0
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/verify.js +11 -23
- package/dist/commands/verify.js.map +1 -1
- package/dist/generate/model.d.ts +2 -2
- package/dist/generate/model.js +19 -62
- package/dist/generate/model.js.map +1 -1
- package/dist/generate/prop.d.ts +37 -11
- package/dist/generate/prop.js +97 -105
- package/dist/generate/prop.js.map +1 -1
- package/dist/ios/app-config.js +4 -3
- package/dist/ios/app-config.js.map +1 -1
- package/dist/ios/collect-urls.js +25 -35
- package/dist/ios/collect-urls.js.map +1 -1
- package/dist/ios/icon.js +2 -5
- package/dist/ios/icon.js.map +1 -1
- package/dist/ios/local-server.d.ts +1 -1
- package/dist/ios/local-server.js +3 -3
- package/dist/ios/local-server.js.map +1 -1
- package/dist/ios/transform.js +1 -5
- package/dist/ios/transform.js.map +1 -1
- package/dist/ios/xcode-template.js +1 -1
- package/dist/ios/xcode-template.js.map +1 -1
- package/dist/publish/categories.d.ts +20 -0
- package/dist/publish/categories.js +50 -0
- package/dist/publish/categories.js.map +1 -0
- package/dist/publish/client.d.ts +7 -0
- package/dist/publish/client.js.map +1 -1
- package/dist/scaffold/project-files.js +6 -0
- package/dist/scaffold/project-files.js.map +1 -1
- package/dist/verify/browser.js +147 -168
- package/dist/verify/browser.js.map +1 -1
- package/dist/verify/check-options.d.ts +32 -0
- package/dist/verify/check-options.js +23 -0
- package/dist/verify/check-options.js.map +1 -0
- package/dist/verify/classify.js +2 -2
- package/dist/verify/classify.js.map +1 -1
- package/dist/verify/iterate.d.ts +2 -21
- package/dist/verify/iterate.js +3 -14
- package/dist/verify/iterate.js.map +1 -1
- package/package.json +4 -4
|
@@ -482,7 +482,7 @@ class GameViewController: UIViewController, WKNavigationDelegate {
|
|
|
482
482
|
`;
|
|
483
483
|
/** The Swift MIME dictionary, generated from the SAME table the validation server uses. */
|
|
484
484
|
function swiftMimeEntries() {
|
|
485
|
-
return MIME_TYPES
|
|
485
|
+
return [...MIME_TYPES]
|
|
486
486
|
.map(([ext, mime]) => ` "${ext}": "${mime}",`)
|
|
487
487
|
.join('\n');
|
|
488
488
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xcode-template.js","sourceRoot":"","sources":["../../src/ios/xcode-template.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"xcode-template.js","sourceRoot":"","sources":["../../src/ios/xcode-template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The creator's category tags for the game's portal listing, read out of the project's work
|
|
3
|
+
* copy (`worldProfileData.categories`) — the CLI lane's equivalent of the Creator publish
|
|
4
|
+
* dialog's category chips.
|
|
5
|
+
*
|
|
6
|
+
* Three distinct messages, mirroring the web lane's precedence exactly:
|
|
7
|
+
* - `undefined` (key not declared): the server decides — a game with no tags yet is
|
|
8
|
+
* AI-classified at publish; a game that already has tags keeps them.
|
|
9
|
+
* - a non-empty array: this exact set wins, replacing whatever is stored.
|
|
10
|
+
* - an empty array: an explicit "no tags" — clears stored tags AND suppresses the
|
|
11
|
+
* auto-classification a missing key would trigger.
|
|
12
|
+
*
|
|
13
|
+
* game.json wins over world.json for the same key, matching `readFaviconOverride` — the
|
|
14
|
+
* split-format rule means `worldProfileData` may live in either file.
|
|
15
|
+
*
|
|
16
|
+
* Best effort, like the favicon override: a missing, unreadable or malformed file means
|
|
17
|
+
* "not declared", never an error. Non-string and blank entries are dropped; the server caps
|
|
18
|
+
* the count and canonicalizes against the live taxonomy.
|
|
19
|
+
*/
|
|
20
|
+
export declare function readCategories(root: string): string[] | undefined;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* The creator's category tags for the game's portal listing, read out of the project's work
|
|
5
|
+
* copy (`worldProfileData.categories`) — the CLI lane's equivalent of the Creator publish
|
|
6
|
+
* dialog's category chips.
|
|
7
|
+
*
|
|
8
|
+
* Three distinct messages, mirroring the web lane's precedence exactly:
|
|
9
|
+
* - `undefined` (key not declared): the server decides — a game with no tags yet is
|
|
10
|
+
* AI-classified at publish; a game that already has tags keeps them.
|
|
11
|
+
* - a non-empty array: this exact set wins, replacing whatever is stored.
|
|
12
|
+
* - an empty array: an explicit "no tags" — clears stored tags AND suppresses the
|
|
13
|
+
* auto-classification a missing key would trigger.
|
|
14
|
+
*
|
|
15
|
+
* game.json wins over world.json for the same key, matching `readFaviconOverride` — the
|
|
16
|
+
* split-format rule means `worldProfileData` may live in either file.
|
|
17
|
+
*
|
|
18
|
+
* Best effort, like the favicon override: a missing, unreadable or malformed file means
|
|
19
|
+
* "not declared", never an error. Non-string and blank entries are dropped; the server caps
|
|
20
|
+
* the count and canonicalizes against the live taxonomy.
|
|
21
|
+
*/
|
|
22
|
+
export function readCategories(root) {
|
|
23
|
+
for (const file of ['game.json', 'world.json']) {
|
|
24
|
+
const declared = readDeclared(path.join(root, 'src', 'work', file));
|
|
25
|
+
if (declared !== undefined)
|
|
26
|
+
return declared;
|
|
27
|
+
}
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
function readDeclared(filePath) {
|
|
31
|
+
let parsed;
|
|
32
|
+
try {
|
|
33
|
+
if (!fs.existsSync(filePath))
|
|
34
|
+
return undefined;
|
|
35
|
+
parsed = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
const profile = parsed?.worldProfileData;
|
|
41
|
+
if (!profile || typeof profile !== 'object')
|
|
42
|
+
return undefined;
|
|
43
|
+
const value = profile.categories;
|
|
44
|
+
if (!Array.isArray(value))
|
|
45
|
+
return undefined;
|
|
46
|
+
return value
|
|
47
|
+
.filter((item) => typeof item === 'string' && item.trim().length > 0)
|
|
48
|
+
.map((item) => item.trim());
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=categories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"categories.js","sourceRoot":"","sources":["../../src/publish/categories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACpE,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;IAC9C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAI,MAAgD,EAAE,gBAAgB,CAAC;IACpF,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAE9D,MAAM,KAAK,GAAI,OAAoC,CAAC,UAAU,CAAC;IAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SACpF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/publish/client.d.ts
CHANGED
|
@@ -136,6 +136,13 @@ export interface CompletePublishRequest {
|
|
|
136
136
|
primaryPlatform?: 'desktop' | 'mobile';
|
|
137
137
|
/** `null` clears the stored orientation — the project no longer declares one. */
|
|
138
138
|
mobileOrientation?: 'portrait' | 'landscape' | null;
|
|
139
|
+
/**
|
|
140
|
+
* Category tags declared in the project's `worldProfileData.categories` — see
|
|
141
|
+
* `publish/categories.ts` for the three messages (absent / non-empty / explicit empty).
|
|
142
|
+
* Forward-compatible in the same sense as the platform fields: an absent key lets the
|
|
143
|
+
* server keep or auto-classify, and an older server ignores the unknown key.
|
|
144
|
+
*/
|
|
145
|
+
categories?: string[];
|
|
139
146
|
}
|
|
140
147
|
/** Per-check outcome from the server's source audit. Advisory: none of it changes the exit code. */
|
|
141
148
|
export interface SourceCheckResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/publish/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/publish/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -986,6 +986,12 @@ have produced one at least once before \`--force\` has anything to work with.
|
|
|
986
986
|
\`src/work/game.json\` (doing so by hand would change the fingerprint and invalidate the verify
|
|
987
987
|
you just checked).
|
|
988
988
|
|
|
989
|
+
**Category tags are part of every publish.** bitmagic.ai files the game under content categories
|
|
990
|
+
("Racing", "Puzzle", …); publish auto-classifies an untagged game from its name and description.
|
|
991
|
+
To choose them yourself, declare \`"categories": ["Racing", "Arcade"]\` in \`worldProfileData\` —
|
|
992
|
+
a declared set wins on every publish, and an explicit \`[]\` means "no tags" and suppresses the
|
|
993
|
+
auto-classify. A tracked-file edit: declare them BEFORE \`bitmagic verify\`, not after.
|
|
994
|
+
|
|
989
995
|
If \`bitmagic publish\` exits non-zero, branch on the exit code rather than parsing the message:
|
|
990
996
|
|
|
991
997
|
| Code | Meaning | Fix |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-files.js","sourceRoot":"","sources":["../../src/scaffold/project-files.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"project-files.js","sourceRoot":"","sources":["../../src/scaffold/project-files.ts"],"names":[],"mappings":"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"}
|
package/dist/verify/browser.js
CHANGED
|
@@ -153,9 +153,7 @@ export class VerifyBrowserSession {
|
|
|
153
153
|
(flag) => window[flag] === true, CONTEXT_LOST_FLAG);
|
|
154
154
|
const renderer = options.requestedRenderer === undefined
|
|
155
155
|
? undefined
|
|
156
|
-
: target
|
|
157
|
-
? { requested: options.requestedRenderer, rendererType: null, backend: null }
|
|
158
|
-
: await probeRenderer(target, options.requestedRenderer);
|
|
156
|
+
: await probeRenderer(target, options.requestedRenderer);
|
|
159
157
|
// The engine probes below belong to verify's questions only, and need something to probe:
|
|
160
158
|
// no start interaction (publish's smoke check) or no frame leaves them unobserved.
|
|
161
159
|
const engineTarget = options.startInteraction === undefined ? null : target;
|
|
@@ -279,43 +277,38 @@ const UNOBSERVED_PROBE = {
|
|
|
279
277
|
*/
|
|
280
278
|
async function takeSettleSample(page, atMs, consoleLines) {
|
|
281
279
|
const errorEventCount = consoleLines.filter((line) => line.startsWith('error:') || line.includes(RESPAWN_LINE)).length;
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
playerY = typeof y === 'number' && Number.isFinite(y) ? y : null;
|
|
306
|
-
}
|
|
307
|
-
return { frameCount, gameState, hasStarted, playerY };
|
|
308
|
-
}
|
|
309
|
-
catch {
|
|
310
|
-
return null;
|
|
280
|
+
const probed = await page.evaluate((flag) => {
|
|
281
|
+
/* eslint-disable no-undef -- browser-side callback, see the canvas probe above. */
|
|
282
|
+
try {
|
|
283
|
+
const w = window;
|
|
284
|
+
const frameCount = typeof w[flag] === 'number' ? w[flag] : null;
|
|
285
|
+
const template = w.gameTemplate;
|
|
286
|
+
const engine = template?.getGameEngine?.();
|
|
287
|
+
let gameState = null;
|
|
288
|
+
let hasStarted = null;
|
|
289
|
+
let playerY = null;
|
|
290
|
+
if (engine) {
|
|
291
|
+
const state = engine.gameStateManager?.getCurrentState?.();
|
|
292
|
+
gameState = typeof state === 'string' ? state : null;
|
|
293
|
+
const started = engine.gameStateManager?.hasStarted?.();
|
|
294
|
+
hasStarted = typeof started === 'boolean' ? started : null;
|
|
295
|
+
const player = typeof engine.getCurrentPlayer === 'function'
|
|
296
|
+
? engine.getCurrentPlayer()
|
|
297
|
+
: null;
|
|
298
|
+
const position = typeof player?.getPosition === 'function'
|
|
299
|
+
? player.getPosition()
|
|
300
|
+
: player?.player?.position;
|
|
301
|
+
const y = position?.y;
|
|
302
|
+
playerY = typeof y === 'number' && Number.isFinite(y) ? y : null;
|
|
311
303
|
}
|
|
312
|
-
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
}
|
|
304
|
+
return { frameCount, gameState, hasStarted, playerY };
|
|
305
|
+
}
|
|
306
|
+
catch {
|
|
307
|
+
return null;
|
|
308
|
+
}
|
|
309
|
+
/* eslint-enable no-undef */
|
|
310
|
+
}, FRAME_COUNT_FLAG).catch(() => null);
|
|
311
|
+
return { atMs, errorEventCount, ...(probed ?? UNOBSERVED_PROBE) };
|
|
319
312
|
}
|
|
320
313
|
/**
|
|
321
314
|
* End-of-run engine state, read through the same debug handle as `probeRenderer` and under the
|
|
@@ -325,71 +318,65 @@ async function takeSettleSample(page, atMs, consoleLines) {
|
|
|
325
318
|
* single evaluate cannot see time.
|
|
326
319
|
*/
|
|
327
320
|
async function captureStateSnapshot(target, samples) {
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
const engine = template?.getGameEngine?.();
|
|
336
|
-
if (!engine)
|
|
337
|
-
return null;
|
|
338
|
-
const state = engine.gameStateManager?.getCurrentState?.();
|
|
339
|
-
const started = engine.gameStateManager?.hasStarted?.();
|
|
340
|
-
const elapsed = typeof engine.getElapsedTime === 'function' ? engine.getElapsedTime() : null;
|
|
341
|
-
const playerHandle = typeof engine.getCurrentPlayer === 'function'
|
|
342
|
-
? engine.getCurrentPlayer()
|
|
343
|
-
: null;
|
|
344
|
-
const position = typeof playerHandle?.getPosition === 'function'
|
|
345
|
-
? playerHandle.getPosition()
|
|
346
|
-
: playerHandle?.player?.position;
|
|
347
|
-
const p = position;
|
|
348
|
-
const player = typeof p?.x === 'number' && typeof p?.y === 'number' && typeof p?.z === 'number'
|
|
349
|
-
? { x: p.x, y: p.y, z: p.z }
|
|
350
|
-
: null;
|
|
351
|
-
const stats = engine.physicsWorld?.getStats?.();
|
|
352
|
-
const physics = typeof stats?.rigidBodyCount === 'number' && typeof stats?.colliderCount === 'number'
|
|
353
|
-
? { rigidBodyCount: stats.rigidBodyCount, colliderCount: stats.colliderCount }
|
|
354
|
-
: null;
|
|
355
|
-
let scene = null;
|
|
356
|
-
if (engine.scene && typeof engine.scene.traverse === 'function') {
|
|
357
|
-
let objects = 0;
|
|
358
|
-
let meshes = 0;
|
|
359
|
-
let lights = 0;
|
|
360
|
-
engine.scene.traverse((object) => {
|
|
361
|
-
objects++;
|
|
362
|
-
const o = object;
|
|
363
|
-
if (o.isMesh === true)
|
|
364
|
-
meshes++;
|
|
365
|
-
if (o.isLight === true)
|
|
366
|
-
lights++;
|
|
367
|
-
});
|
|
368
|
-
scene = { objects, meshes, lights };
|
|
369
|
-
}
|
|
370
|
-
const registry = typeof engine.getNpcRegistry === 'function'
|
|
371
|
-
? engine.getNpcRegistry()
|
|
372
|
-
: null;
|
|
373
|
-
const count = registry?.getCount?.();
|
|
374
|
-
return {
|
|
375
|
-
gameState: typeof state === 'string' ? state : null,
|
|
376
|
-
hasStarted: typeof started === 'boolean' ? started : null,
|
|
377
|
-
elapsedTimeSeconds: typeof elapsed === 'number' && Number.isFinite(elapsed) ? elapsed : null,
|
|
378
|
-
player,
|
|
379
|
-
physics,
|
|
380
|
-
scene,
|
|
381
|
-
npcCount: typeof count === 'number' ? count : null,
|
|
382
|
-
};
|
|
383
|
-
}
|
|
384
|
-
catch {
|
|
321
|
+
const probed = await target.evaluate(() => {
|
|
322
|
+
/* eslint-disable no-undef -- browser-side callback, see the canvas probe above. */
|
|
323
|
+
try {
|
|
324
|
+
const w = window;
|
|
325
|
+
const template = w.gameTemplate;
|
|
326
|
+
const engine = template?.getGameEngine?.();
|
|
327
|
+
if (!engine)
|
|
385
328
|
return null;
|
|
329
|
+
const state = engine.gameStateManager?.getCurrentState?.();
|
|
330
|
+
const started = engine.gameStateManager?.hasStarted?.();
|
|
331
|
+
const elapsed = typeof engine.getElapsedTime === 'function' ? engine.getElapsedTime() : null;
|
|
332
|
+
const playerHandle = typeof engine.getCurrentPlayer === 'function'
|
|
333
|
+
? engine.getCurrentPlayer()
|
|
334
|
+
: null;
|
|
335
|
+
const position = typeof playerHandle?.getPosition === 'function'
|
|
336
|
+
? playerHandle.getPosition()
|
|
337
|
+
: playerHandle?.player?.position;
|
|
338
|
+
const p = position;
|
|
339
|
+
const player = typeof p?.x === 'number' && typeof p?.y === 'number' && typeof p?.z === 'number'
|
|
340
|
+
? { x: p.x, y: p.y, z: p.z }
|
|
341
|
+
: null;
|
|
342
|
+
const stats = engine.physicsWorld?.getStats?.();
|
|
343
|
+
const physics = typeof stats?.rigidBodyCount === 'number' && typeof stats?.colliderCount === 'number'
|
|
344
|
+
? { rigidBodyCount: stats.rigidBodyCount, colliderCount: stats.colliderCount }
|
|
345
|
+
: null;
|
|
346
|
+
let scene = null;
|
|
347
|
+
if (engine.scene && typeof engine.scene.traverse === 'function') {
|
|
348
|
+
let objects = 0;
|
|
349
|
+
let meshes = 0;
|
|
350
|
+
let lights = 0;
|
|
351
|
+
engine.scene.traverse((object) => {
|
|
352
|
+
objects++;
|
|
353
|
+
const o = object;
|
|
354
|
+
if (o.isMesh === true)
|
|
355
|
+
meshes++;
|
|
356
|
+
if (o.isLight === true)
|
|
357
|
+
lights++;
|
|
358
|
+
});
|
|
359
|
+
scene = { objects, meshes, lights };
|
|
386
360
|
}
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
361
|
+
const registry = typeof engine.getNpcRegistry === 'function'
|
|
362
|
+
? engine.getNpcRegistry()
|
|
363
|
+
: null;
|
|
364
|
+
const count = registry?.getCount?.();
|
|
365
|
+
return {
|
|
366
|
+
gameState: typeof state === 'string' ? state : null,
|
|
367
|
+
hasStarted: typeof started === 'boolean' ? started : null,
|
|
368
|
+
elapsedTimeSeconds: typeof elapsed === 'number' && Number.isFinite(elapsed) ? elapsed : null,
|
|
369
|
+
player,
|
|
370
|
+
physics,
|
|
371
|
+
scene,
|
|
372
|
+
npcCount: typeof count === 'number' ? count : null,
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
catch {
|
|
376
|
+
return null;
|
|
377
|
+
}
|
|
378
|
+
/* eslint-enable no-undef */
|
|
379
|
+
}).catch(() => null);
|
|
393
380
|
if (probed === null)
|
|
394
381
|
return null;
|
|
395
382
|
return {
|
|
@@ -405,7 +392,9 @@ async function captureStateSnapshot(target, samples) {
|
|
|
405
392
|
* and 0 is reserved for a loop that is actually stalled — any observed frame reports at least 1.
|
|
406
393
|
*/
|
|
407
394
|
function measureFps(samples) {
|
|
408
|
-
const counted = samples
|
|
395
|
+
const counted = samples
|
|
396
|
+
.filter((sample) => sample.frameCount !== null)
|
|
397
|
+
.slice(-4);
|
|
409
398
|
if (counted.length < 2)
|
|
410
399
|
return null;
|
|
411
400
|
const last = counted[counted.length - 1];
|
|
@@ -425,60 +414,55 @@ function measureFps(samples) {
|
|
|
425
414
|
* without the namespace, or a page too broken to answer) — never a failure by itself.
|
|
426
415
|
*/
|
|
427
416
|
async function captureEventTrace(target) {
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
});
|
|
441
|
-
}
|
|
442
|
-
catch {
|
|
443
|
-
return null;
|
|
444
|
-
}
|
|
417
|
+
return target.evaluate(() => {
|
|
418
|
+
/* eslint-disable no-undef -- browser-side callback, see the canvas probe above. */
|
|
419
|
+
try {
|
|
420
|
+
const w = window;
|
|
421
|
+
const debug = w.__bmDebug;
|
|
422
|
+
return debug?.getEvents?.() ?? null;
|
|
423
|
+
}
|
|
424
|
+
catch {
|
|
425
|
+
return null;
|
|
426
|
+
}
|
|
427
|
+
/* eslint-enable no-undef */
|
|
428
|
+
}).catch(() => null);
|
|
445
429
|
}
|
|
446
430
|
/**
|
|
447
431
|
* What renderer class the engine constructed and what backend is actually driving the canvas,
|
|
448
432
|
* read from the live engine through the debug handle `GameTemplate` installs on `window`.
|
|
449
433
|
*
|
|
450
|
-
* Everything is feature-detected and the whole probe returns nulls on any throw
|
|
451
|
-
* without these getters, or a page too
|
|
452
|
-
*
|
|
453
|
-
*
|
|
454
|
-
*
|
|
434
|
+
* Everything is feature-detected and the whole probe returns nulls on any throw — and on a null
|
|
435
|
+
* target, the missing-child-frame case: an older engine without these getters, or a page too
|
|
436
|
+
* broken to answer, classifies as "not observed", never as a failure of the game. The one
|
|
437
|
+
* distinction that matters is `backend === 'webgl2'` when WebGPU was requested: three's
|
|
438
|
+
* WebGPURenderer runs a WebGL2 fallback backend without erroring, and this getter is the only
|
|
439
|
+
* place that state is visible.
|
|
455
440
|
*/
|
|
456
441
|
async function probeRenderer(target, requested) {
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
}
|
|
442
|
+
const observed = target === null ? null : await target.evaluate(() => {
|
|
443
|
+
/* eslint-disable no-undef -- browser-side callback, see the canvas probe above. */
|
|
444
|
+
try {
|
|
445
|
+
const template = window.gameTemplate;
|
|
446
|
+
const engine = template?.getGameEngine?.();
|
|
447
|
+
if (!engine)
|
|
448
|
+
return null;
|
|
449
|
+
const rendererType = typeof engine.getRendererType === 'function' ? engine.getRendererType() : null;
|
|
450
|
+
const backend = typeof engine.getActiveBackend === 'function' ? engine.getActiveBackend() : null;
|
|
451
|
+
return {
|
|
452
|
+
rendererType: typeof rendererType === 'string' ? rendererType : null,
|
|
453
|
+
backend: typeof backend === 'string' ? backend : null,
|
|
454
|
+
};
|
|
455
|
+
}
|
|
456
|
+
catch {
|
|
457
|
+
return null;
|
|
458
|
+
}
|
|
459
|
+
/* eslint-enable no-undef */
|
|
460
|
+
}).catch(() => null);
|
|
461
|
+
return {
|
|
462
|
+
requested,
|
|
463
|
+
rendererType: observed?.rendererType ?? null,
|
|
464
|
+
backend: observed?.backend ?? null,
|
|
465
|
+
};
|
|
482
466
|
}
|
|
483
467
|
/** Window flag the init script below sets when the page loses its WebGL context. */
|
|
484
468
|
const CONTEXT_LOST_FLAG = '__bitmagicWebglContextLost';
|
|
@@ -689,24 +673,19 @@ tap) {
|
|
|
689
673
|
* probe here.
|
|
690
674
|
*/
|
|
691
675
|
async function countTouchAffordances(page) {
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
});
|
|
706
|
-
}
|
|
707
|
-
catch {
|
|
708
|
-
return null;
|
|
709
|
-
}
|
|
676
|
+
return page.evaluate(() => {
|
|
677
|
+
/* eslint-disable no-undef -- browser-side callback, see the canvas probe above. */
|
|
678
|
+
try {
|
|
679
|
+
return {
|
|
680
|
+
joysticks: document.querySelectorAll('.hud-mobile-joystick-outer').length,
|
|
681
|
+
buttons: document.querySelectorAll('.hud-mobile-button').length,
|
|
682
|
+
};
|
|
683
|
+
}
|
|
684
|
+
catch {
|
|
685
|
+
return null;
|
|
686
|
+
}
|
|
687
|
+
/* eslint-enable no-undef */
|
|
688
|
+
}).catch(() => null);
|
|
710
689
|
}
|
|
711
690
|
/**
|
|
712
691
|
* Whether the engine's start menu overlay is still displayed. After a successful start the
|