@bitmagic/cli 0.1.70-dev.1 → 0.1.70-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.
Files changed (69) hide show
  1. package/README.md +81 -1
  2. package/assets/skills/publishing-to-poki/SKILL.md +90 -0
  3. package/dist/cli.d.ts +12 -0
  4. package/dist/commands/publish.d.ts +16 -0
  5. package/dist/commands/publish.js +21 -0
  6. package/dist/commands/publish.js.map +1 -1
  7. package/dist/ios/collect-urls.d.ts +1 -75
  8. package/dist/ios/collect-urls.js +2 -219
  9. package/dist/ios/collect-urls.js.map +1 -1
  10. package/dist/ios/local-server.d.ts +1 -11
  11. package/dist/ios/local-server.js +2 -87
  12. package/dist/ios/local-server.js.map +1 -1
  13. package/dist/ios/transform.d.ts +4 -46
  14. package/dist/ios/transform.js +4 -60
  15. package/dist/ios/transform.js.map +1 -1
  16. package/dist/ios/vendor.d.ts +1 -29
  17. package/dist/ios/vendor.js +2 -112
  18. package/dist/ios/vendor.js.map +1 -1
  19. package/dist/package/collect-urls.d.ts +75 -0
  20. package/dist/package/collect-urls.js +220 -0
  21. package/dist/package/collect-urls.js.map +1 -0
  22. package/dist/package/local-server.d.ts +13 -0
  23. package/dist/package/local-server.js +102 -0
  24. package/dist/package/local-server.js.map +1 -0
  25. package/dist/package/transform.d.ts +47 -0
  26. package/dist/package/transform.js +62 -0
  27. package/dist/package/transform.js.map +1 -0
  28. package/dist/package/vendor.d.ts +33 -0
  29. package/dist/package/vendor.js +115 -0
  30. package/dist/package/vendor.js.map +1 -0
  31. package/dist/poki/assets.d.ts +25 -0
  32. package/dist/poki/assets.js +163 -0
  33. package/dist/poki/assets.js.map +1 -0
  34. package/dist/poki/check.d.ts +24 -0
  35. package/dist/poki/check.js +168 -0
  36. package/dist/poki/check.js.map +1 -0
  37. package/dist/poki/handoff.d.ts +22 -0
  38. package/dist/poki/handoff.js +56 -0
  39. package/dist/poki/handoff.js.map +1 -0
  40. package/dist/poki/playtest.d.ts +15 -0
  41. package/dist/poki/playtest.js +45 -0
  42. package/dist/poki/playtest.js.map +1 -0
  43. package/dist/poki/publish.d.ts +23 -0
  44. package/dist/poki/publish.js +247 -0
  45. package/dist/poki/publish.js.map +1 -0
  46. package/dist/poki/source-diagnostics.d.ts +14 -0
  47. package/dist/poki/source-diagnostics.js +40 -0
  48. package/dist/poki/source-diagnostics.js.map +1 -0
  49. package/dist/poki/transform.d.ts +6 -0
  50. package/dist/poki/transform.js +31 -0
  51. package/dist/poki/transform.js.map +1 -0
  52. package/dist/publish/bundle.d.ts +7 -1
  53. package/dist/publish/bundle.js +9 -3
  54. package/dist/publish/bundle.js.map +1 -1
  55. package/dist/scaffold/poki-skill-files.d.ts +2 -0
  56. package/dist/scaffold/poki-skill-files.js +7 -0
  57. package/dist/scaffold/poki-skill-files.js.map +1 -0
  58. package/dist/scaffold/project-files.js +1 -1
  59. package/dist/scaffold/project.js +2 -0
  60. package/dist/scaffold/project.js.map +1 -1
  61. package/dist/scaffold/skill-files.js +6 -4
  62. package/dist/scaffold/skill-files.js.map +1 -1
  63. package/dist/verify/browser.d.ts +13 -1
  64. package/dist/verify/browser.js +24 -12
  65. package/dist/verify/browser.js.map +1 -1
  66. package/dist/verify/classify.d.ts +2 -0
  67. package/dist/verify/classify.js +6 -1
  68. package/dist/verify/classify.js.map +1 -1
  69. package/package.json +4 -4
package/README.md CHANGED
@@ -1523,6 +1523,9 @@ the field: its planner builds voxel games only.
1523
1523
 
1524
1524
  ## Publishing
1525
1525
 
1526
+ `bitmagic publish` defaults to Bitmagic hosting. Use `--target poki` for a local Poki package;
1527
+ see [Poki export](#poki-export) below.
1528
+
1526
1529
  `bitmagic publish` is two gated steps in one command:
1527
1530
 
1528
1531
  1. **The verify gate.** Publish refuses to run unless `.bitmagic/verify/result.json` records a
@@ -1560,6 +1563,83 @@ from, so `bitmagic verify` must have produced at least one screenshot — `scree
1560
1563
  stick — and note that writing them into `game.json` yourself would change the fingerprint and
1561
1564
  invalidate the verify you just checked.
1562
1565
 
1566
+ ### Poki export
1567
+
1568
+ ```sh
1569
+ bitmagic verify
1570
+ bitmagic publish --target poki --json
1571
+ # Optional destination (relative to the current directory):
1572
+ bitmagic publish --target poki --output ../releases/game-poki.zip
1573
+ ```
1574
+
1575
+ This creates a ZIP with `index.html` at its root, bundled libraries, and local game assets.
1576
+ The command adds the official Poki SDK script automatically. The shared engine integration
1577
+ reports loading and gameplay, pauses gameplay for ads, and restores audio and input afterwards.
1578
+ No separate SDK package or game-code integration is needed for these lifecycle events.
1579
+
1580
+ The default output is `.bitmagic/poki/poki.zip`. Its unpacked contents are in
1581
+ `.bitmagic/poki/payload/`; `manifest.json` records hashes, sizes, and validation results, and
1582
+ `checks/` contains screenshots, console logs, and request diagnostics with matching source files.
1583
+ `EXPORT-HANDOFF.md` records the artifact identity, coverage, and remaining upload/QA steps;
1584
+ re-export preserves separately authored `UPLOAD-HANDOFF.md` notes. `--json` returns these absolute
1585
+ paths on stdout; progress and build output go to stderr. `--name` overrides the HTML title only.
1586
+ Custom ZIP output inside the project can make the next verify stale: the fingerprint does not
1587
+ read `.gitignore`. Use the default destination or an output directory outside the project.
1588
+
1589
+ Poki export needs an engine advertising Poki export capability and the standalone build config.
1590
+ Older projects receive these through `bitmagic upgrade`; verify again after upgrading. The
1591
+ `publishing-to-poki` skill is installed by both `init` and `upgrade`. On an older CLI, inspect
1592
+ `publish --help` and confirm the `--target` description includes `poki` before running the command:
1593
+ old parsers can ignore unknown flags. Update the CLI if the advertised support is absent.
1594
+
1595
+ The exporter discovers static assets, follows GLTF and CSS dependencies, then tests the ZIP's
1596
+ contents in desktop and mobile iframes at both root and nested paths. Those checks block external
1597
+ requests except the intercepted SDK. Local validation uses an SDK test stub and exercises a
1598
+ pause/ad/resume cycle; it does not certify Poki acceptance. Test the payload folder with the real
1599
+ SDK in [Poki Inspector](https://inspector.poki.dev) before submitting. Game-specific paths that
1600
+ the startup check does not exercise also need testing. Runtime services such as multiplayer and
1601
+ AI cannot be bundled; observed dependencies fail export with diagnostics. The source scan also
1602
+ reports `serviceRisks` for known game-data, leaderboard identity, and AI calls, even when they
1603
+ sit behind custom chapter menus. These are review hints, not reachability analysis or a complete
1604
+ network inventory. Keep the game's features until its creator chooses an integration approach.
1605
+
1606
+ Use `--poki-playtest playtest/poki.mjs` to extend every desktop/mobile discovery and extracted-ZIP
1607
+ check with actual gameplay actions. Create a self-contained ESM module using the game's controls,
1608
+ then run `bitmagic verify` after adding it. For example (replace these labels with this game's UI):
1609
+
1610
+ ```js
1611
+ export default async ({ frame, platform }) => {
1612
+ // The engine is already started; custom game menus may still be visible.
1613
+ const campaign = frame.getByRole('button', { name: 'Campaign', exact: true });
1614
+ if (platform === 'mobile') await campaign.tap();
1615
+ else await campaign.click();
1616
+ await frame.getByRole('button', { name: 'Chapter 1', exact: true }).click();
1617
+ await frame.locator('[data-gameplay-ready]').waitFor({ state: 'visible' });
1618
+ }
1619
+ ```
1620
+
1621
+ The callback receives the game iframe and `desktop`/`mobile` platform, has a 30-second timeout,
1622
+ and must finish in active gameplay for the pause/ad/resume check. A scenario failure fails export;
1623
+ external requests it triggers are subject to the same packaging policy. Its path and SHA-256
1624
+ are recorded in the manifest. Without a scenario, the output explicitly reports the limited
1625
+ startup coverage. Neither path certifies every gameplay branch or physical-phone behavior.
1626
+
1627
+ The result reports `status: "exported"`, `uploaded: false`, and `handoffPath`. For an authorized
1628
+ upload, follow the [official Poki CLI](https://github.com/poki/poki-cli), uploading only `payloadDir`
1629
+ with the Poki UUID. Preserve the validated assets with `--disable-image-compression`; keep public
1630
+ release disabled with `--no-make-public` unless requested. Capture the returned version ID and
1631
+ check processing status before retrying an upload. Use that version's Inspector link for real SDK
1632
+ QA. [Inspector Mobile mode](https://developers.poki.com/guide/inspector) requires a connected phone
1633
+ via QR, unlike the exporter's mobile emulation.
1634
+
1635
+ Export creates local artifacts without Bitmagic publishing, login, listing changes, or Poki
1636
+ upload. Ordinary `publish` and `--target bitmagic` retain their existing behavior. For Poki,
1637
+ `--single-file` is redundant; Bitmagic-only flags (`--visibility`, `--description`, `--version-url`,
1638
+ `--skip-smoke`, `--no-qr`) are rejected. The usual source verify gate applies; `--force` can
1639
+ override a stale or failed source record but cannot bypass ZIP validation. Exit 4 means the
1640
+ engine/config needs upgrading; exit 7 means package validation failed and the previous successful
1641
+ ZIP is retained. These meanings are specific to the Poki target.
1642
+
1563
1643
  ### Testing it on a phone
1564
1644
 
1565
1645
  Publish draws the URL it just printed as a QR code, so you can point a phone at the terminal
@@ -1802,7 +1882,7 @@ Three, all advisory — nothing is ever blocked because something is out of date
1802
1882
  *project* is on rather than the one you happen to be running, so it says `bitmagic self-update
1803
1883
  --tag dev` where that is the crossing you need. No request is made when the engine version did not
1804
1884
  change, and an unreachable registry costs the hint and nothing else.
1805
- - **The vendored engine.** `bitmagic dev` and `bitmagic publish` say when a newer engine exists and
1885
+ - **The vendored engine.** `bitmagic dev` and Bitmagic-target `publish` say when a newer engine exists and
1806
1886
  suggest `bitmagic upgrade`. Publishing is never refused for an old engine — the prompt belongs
1807
1887
  where rebuilding is cheap, not at the moment you ship.
1808
1888
 
@@ -0,0 +1,90 @@
1
+ ---
2
+ name: publishing-to-poki
3
+ description: Prepare a Bitmagic game for Poki, include the Poki SDK, create an upload ZIP, or diagnose a failed Poki export. Use for requests to install or integrate the Poki SDK in this game.
4
+ ---
5
+
6
+ # Preparing this game for Poki
7
+
8
+ SDK setup is automatic in `bitmagic publish --target poki`. The engine owns SDK initialization,
9
+ gameplay events, and advertisement handling. Keep those calls centralized: do not install an npm
10
+ SDK wrapper, paste script tags into generated HTML, or add duplicate lifecycle calls to game code.
11
+
12
+ First read `bitmagic publish --help` and confirm its `--target` description explicitly includes
13
+ `poki`. An old CLI may accept an unknown flag and perform ordinary Bitmagic publishing, so a zero
14
+ exit status from help is insufficient. If support is absent, follow the project's `bitmagic
15
+ self-update` guidance and check help again. Never fall back to bare `bitmagic publish` for a Poki
16
+ request. If updating is unavailable, report the missing capability instead of editing an SDK in.
17
+
18
+ ```sh
19
+ bitmagic verify
20
+ bitmagic publish --target poki --json
21
+ ```
22
+
23
+ If export names a missing engine capability or standalone config, run `bitmagic upgrade`, then
24
+ verify again. Upgrade changes the engine; do not apply it silently when the creator has asked to
25
+ keep an exact engine version. Follow the project's original-prompt convention on CLI calls.
26
+
27
+ The result names `zipPath`, `payloadDir`, `manifestPath`, `checksDir`, and `handoffPath`. Read the
28
+ generated `EXPORT-HANDOFF.md` for coverage, service warnings, and remaining upload/QA work. The default ZIP is
29
+ `.bitmagic/poki/poki.zip`; `--output ./release/game.zip` selects another destination. Default output
30
+ is excluded from the source fingerprint. Put custom output outside the project if it should
31
+ not make the next source verification stale; adding a path to `.gitignore` alone does not exclude it.
32
+
33
+ ## When export fails
34
+
35
+ - Exit 3: source verify is missing, stale, or failed. Fix the cause and verify again. `--force`
36
+ permits a stale/failed record but never bypasses packaged validation.
37
+ - Exit 4: engine capability/config missing or incompatible. Update the CLI/engine as directed.
38
+ - Exit 7: packaged validation failed; no new successful export is reported. Read `checksDir` in
39
+ the error, especially `result.json` and `console.log`. Fix missing assets, game startup, or
40
+ game-specific flows that bypass engine state transitions. Do not retry unchanged failures.
41
+ - `requests.json` records missing/local and external requests with method, resource type, and
42
+ matching game source files. Optional authoring fetches must be explicitly gated to local use;
43
+ do not ignore every 404 or add an empty file merely to make validation pass.
44
+ - An external service cannot be bundled as an asset. Multiplayer, account, or AI dependencies
45
+ need a separate integration decision; preserve the creator's game requirements.
46
+
47
+ This command creates local artifacts. It does not upload the game, change its Bitmagic listing,
48
+ or request Poki review. Local SDK checks use a test stub: open the payload folder in
49
+ [Poki Inspector](https://inspector.poki.dev) to test the real SDK, ads, and device behavior before
50
+ submission. Return the ZIP path and distinguish local validation from Inspector testing.
51
+
52
+ ## Exercise the actual game
53
+
54
+ An engine PLAYING event can occur while a custom title screen, briefing, or chapter picker is
55
+ still open. A smoke pass does not prove that a session, score submission, or later level works.
56
+ Review `serviceRisks` (known game-data, leaderboard identity, and AI calls) as hints, not a complete
57
+ network inventory. Preserve online features until the creator chooses an offline alternative
58
+ or an approved service integration; do not silently remove them to get a green check.
59
+
60
+ If help advertises `--poki-playtest`, use it to run a self-contained `.mjs` scenario exporting
61
+ `default async ({ frame, platform })`. `frame` is the game's Playwright iframe, already past the
62
+ engine start interaction. Use the game's actual controls to reach a representative session and
63
+ test late-loading features. Finish in active gameplay so pause/ad/resume can be checked. Each
64
+ scenario has a 30-second limit and runs on desktop/mobile during discovery and ZIP validation.
65
+ Store the script under `playtest/`, verify after adding it, then export with
66
+ `--poki-playtest playtest/poki.mjs`. Older CLIs need updating before using this flag.
67
+
68
+ For real SDK QA, prefer the uploaded version's Inspector link when that upload was requested.
69
+ Otherwise open the payload folder in Inspector. Check whether folder selection is supported by
70
+ the browser tool before attempting it; if unavailable, hand off that selection instead of
71
+ waiting on repeated attempts. A local server's HTTP 200 does not prove Inspector's iframe loaded:
72
+ confirm rendering and SDK events. Inspector Mobile mode hands off via QR to a physical phone;
73
+ automated mobile emulation is a separate result.
74
+
75
+ ## When upload is requested
76
+
77
+ Upload is separate and requires the creator to request it. For an authorized upload, the
78
+ [official Poki CLI](https://github.com/poki/poki-cli) accepts the payload directory and a Poki game
79
+ ID. That ID is different from the Bitmagic game ID. A successful upload is not a public release.
80
+ Read `npx @poki/cli upload --help`; use `--build-dir` with `payloadDir`,
81
+ `--disable-image-compression` to preserve validated assets, and `--no-make-public` unless a
82
+ public release was requested. First-time authentication opens the system default browser;
83
+ arrange the browser handoff before invoking it if browser access is restricted. Do not invent
84
+ a browser-selection or no-open flag.
85
+
86
+ Capture the returned version ID and Inspector/preview links, and check processing status before
87
+ uploading again: a delayed dashboard entry is not proof of failure. Do not rely on exit status
88
+ alone; the upstream uploader can print an error and still exit successfully. Record upload,
89
+ Inspector smoke results, full QA, physical-phone testing, moderation, and release separately in
90
+ `UPLOAD-HANDOFF.md`. Re-export regenerates only `EXPORT-HANDOFF.md`, preserving those manual notes.
package/dist/cli.d.ts CHANGED
@@ -495,6 +495,18 @@ declare const rawCommands: {
495
495
  };
496
496
  }>;
497
497
  publish: CommandDef<{
498
+ readonly target: {
499
+ readonly type: "string";
500
+ readonly description: "bitmagic (default): publish online; poki: create a validated local Poki ZIP.";
501
+ };
502
+ readonly output: {
503
+ readonly type: "string";
504
+ readonly description: "Poki ZIP output path. Default: .bitmagic/poki/poki.zip.";
505
+ };
506
+ readonly 'poki-playtest': {
507
+ readonly type: "string";
508
+ readonly description: "Poki only: .mjs playtest exporting async ({ frame, platform }) to exercise game-specific UI in every package check.";
509
+ };
498
510
  readonly 'original-prompt': {
499
511
  readonly type: "string";
500
512
  readonly description: string;
@@ -15,6 +15,7 @@ import { type BuildManifest } from '../publish/bundle.js';
15
15
  */
16
16
  export declare function resolveVisibility(raw: string | undefined): 'public' | 'private' | undefined;
17
17
  export interface PublishRunDeps {
18
+ runPoki?: (args: PublishArgs) => Promise<void>;
18
19
  fetch: typeof globalThis.fetch;
19
20
  sleep: (ms: number) => Promise<void>;
20
21
  /** Test-only override; production omits it and loadProjectContext walks up from process.cwd(). */
@@ -52,6 +53,9 @@ export interface PublishRunDeps {
52
53
  }) => string | null;
53
54
  }
54
55
  export interface PublishArgs {
56
+ target?: string;
57
+ output?: string;
58
+ 'poki-playtest'?: string;
55
59
  visibility?: string;
56
60
  name?: string;
57
61
  description?: string;
@@ -94,6 +98,18 @@ export declare function resolveThumbnailSource(root: string, readFile?: (file: s
94
98
  */
95
99
  export declare function runPublish(args: PublishArgs, deps?: PublishRunDeps): Promise<void>;
96
100
  export declare const publishCommand: import("citty").CommandDef<{
101
+ readonly target: {
102
+ readonly type: "string";
103
+ readonly description: "bitmagic (default): publish online; poki: create a validated local Poki ZIP.";
104
+ };
105
+ readonly output: {
106
+ readonly type: "string";
107
+ readonly description: "Poki ZIP output path. Default: .bitmagic/poki/poki.zip.";
108
+ };
109
+ readonly 'poki-playtest': {
110
+ readonly type: "string";
111
+ readonly description: "Poki only: .mjs playtest exporting async ({ frame, platform }) to exercise game-specific UI in every package check.";
112
+ };
97
113
  readonly 'original-prompt': {
98
114
  readonly type: "string";
99
115
  readonly description: string;
@@ -171,6 +171,24 @@ async function uploadThumbnail(context, environment, token, apiDeps, log) {
171
171
  * The whole command. See the file header for why the order below cannot be reshuffled.
172
172
  */
173
173
  export async function runPublish(args, deps = defaultDeps()) {
174
+ const target = args.target ?? 'bitmagic';
175
+ if (target !== 'bitmagic' && target !== 'poki')
176
+ throw new CliError('--target must be "bitmagic" or "poki".');
177
+ if (target === 'poki') {
178
+ for (const key of ['visibility', 'description', 'version-url', 'skip-smoke', 'no-qr']) {
179
+ if (args[key] !== undefined && args[key] !== false)
180
+ throw new CliError(`--${key} applies only to Bitmagic publishing.`);
181
+ }
182
+ if (deps.runPoki)
183
+ await deps.runPoki(args);
184
+ else
185
+ await (await import('../poki/publish.js')).runPokiPublish(args);
186
+ return;
187
+ }
188
+ if (args.output !== undefined)
189
+ throw new CliError('--output requires --target poki.');
190
+ if (args['poki-playtest'] !== undefined)
191
+ throw new CliError('--poki-playtest requires --target poki.');
174
192
  const output = createOutput(args.json === true);
175
193
  // `deps.log` stays the seam tests capture; production falls through to the Output, so a
176
194
  // `--json` run keeps stdout clean for the single result document.
@@ -470,6 +488,9 @@ export const publishCommand = defineCommand({
470
488
  description: 'Build, verify-gate, and publish the game — keeps its current visibility.',
471
489
  },
472
490
  args: {
491
+ target: { type: 'string', description: 'bitmagic (default): publish online; poki: create a validated local Poki ZIP.' },
492
+ output: { type: 'string', description: 'Poki ZIP output path. Default: .bitmagic/poki/poki.zip.' },
493
+ 'poki-playtest': { type: 'string', description: 'Poki only: .mjs playtest exporting async ({ frame, platform }) to exercise game-specific UI in every package check.' },
473
494
  'original-prompt': ORIGINAL_PROMPT_FLAG,
474
495
  visibility: {
475
496
  type: 'string',
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
@@ -1,75 +1 @@
1
- export interface CollectedUrls {
2
- /** Every absolute URL to vendor. */
3
- urls: Set<string>;
4
- /**
5
- * Base-URL constants the engine concatenates file names onto (`${base}/${file}`). Rewriting
6
- * these in the bundle makes runtime-constructed URLs resolve into the mirrored vendor tree,
7
- * which no exact-URL map entry could cover.
8
- */
9
- bases: Set<string>;
10
- /** Creator-facing lines about what was (or could not be) collected. */
11
- notes: string[];
12
- }
13
- /** Walk any JSON value, collecting remote-URL strings outside the deny-listed fields. */
14
- export declare function deepWalkUrls(value: unknown, out: Set<string>): void;
15
- /** The same compiled-code .glb scan the standalone lane runs, over the pro project's dist. */
16
- export declare function scanCompiledCodeUrls(compiledCode: string): Set<string>;
17
- /** All compiled game JS under dist/src/work, concatenated — for reference scans. */
18
- export declare function readCompiledGameCode(root: string): string;
19
- interface AnimationEntry {
20
- file: string;
21
- /** Absolute URL overriding `<base>/<file>` — the capture-backed default locomotion uses it. */
22
- url?: string;
23
- motionId: string;
24
- }
25
- interface WeaponAnimationEntry {
26
- url: string;
27
- motionId: string;
28
- }
29
- /** The shape of `animationAssets` this collector relies on — structural, checked at runtime. */
30
- export interface AnimationAssetsData {
31
- activeLibrary: 'cdn' | 'generated';
32
- animationBaseUrl: string;
33
- generatedAnimationBaseUrl: string;
34
- animalBaseUrl: string;
35
- voxelAnimalBaseUrl: string;
36
- voxelFishBaseUrl: string;
37
- characterUrls: {
38
- default: string;
39
- defaultFallback: string;
40
- };
41
- coreAnimations: AnimationEntry[];
42
- generatedAnimations: AnimationEntry[];
43
- meleeWeaponAnimations: WeaponAnimationEntry[];
44
- generatedMeleeWeaponAnimations: AnimationEntry[];
45
- generatedRangedWeaponAnimations: AnimationEntry[];
46
- generatedDirectionalAnimations: AnimationEntry[];
47
- generatedPostureAnimations: AnimationEntry[];
48
- animalSkeletons: Record<string, string>;
49
- }
50
- /**
51
- * Import the vendored engine's compiled AnimationAssets — a pure data module with no imports,
52
- * which is what makes this safe from plain node. Null (with the caller noting it) when the
53
- * engine predates the module or the shape moved: the record pass still catches whatever the
54
- * running game actually fetches.
55
- */
56
- export declare function loadAnimationAssets(root: string): Promise<AnimationAssetsData | null>;
57
- interface WorldDataShape {
58
- worldProfileData?: {
59
- hasPlayerCharacter?: unknown;
60
- animals?: unknown;
61
- };
62
- }
63
- /**
64
- * The built-in animation URLs this game can load. The ACTIVE library ships whole — its optional
65
- * packs (melee/ranged/directional/posture) are loaded on demand by engine systems whose names
66
- * game code never contains, so reference-scanning cannot bound them. The inactive library ships
67
- * only clips the compiled game code names (`getBuiltinAnimationDef` resolves ids from either).
68
- */
69
- export declare function collectAnimationUrls(assets: AnimationAssetsData, worldData: WorldDataShape, compiledCode: string): {
70
- urls: Set<string>;
71
- bases: Set<string>;
72
- };
73
- /** The full §4b collection: deep walk + compiled-code scan + built-in animation surface. */
74
- export declare function collectUrls(root: string): Promise<CollectedUrls>;
75
- export {};
1
+ export * from '../package/collect-urls.js';
@@ -1,220 +1,3 @@
1
- /**
2
- * Every remote URL the packaged game may load, collected up front (§4b of
3
- * docs/ios-export-design.md).
4
- *
5
- * Deliberately NOT a port of game/scripts/generate-asset-manifest.mjs's field list — that list
6
- * demonstrably misses fields the engine loads (glb/gltf assets by id, lodVariants, splat
7
- * configs, heightmaps, HUD images, three of the four animation packs). Instead the work-copy
8
- * JSON is deep-walked for anything URL-shaped, with a small deny-list of fields that never load
9
- * at runtime. An unknown future URL field is vendored by default: too much beats a network
10
- * fetch on a device in airplane mode.
11
- *
12
- * The record pass (record-validate.ts) is the empirical net under all of this — anything the
13
- * running game fetches that this module missed still gets vendored.
14
- */
15
- import * as fs from 'fs';
16
- import * as path from 'path';
17
- import { pathToFileURL } from 'url';
18
- import { aliasSourceDir } from '../scaffold/aliases.js';
19
- /** Fields whose URLs are editor/publish provenance, never loaded by the running game. */
20
- const DENY_FIELDS = new Set([
21
- 'screenshotUrl',
22
- 'thumbnailUrl',
23
- 'thumbnailUrlOverride',
24
- 'faviconUrlOverride',
25
- 'sourceGlbUrl',
26
- 'sourceModelUrl',
27
- 'sourceVxlMasterUrl',
28
- 'sourceUrl',
29
- ]);
30
- function isRemoteUrl(value) {
31
- return /^https?:\/\/[^\s"']+$/.test(value);
32
- }
33
- /** Walk any JSON value, collecting remote-URL strings outside the deny-listed fields. */
34
- export function deepWalkUrls(value, out) {
35
- if (typeof value === 'string') {
36
- if (isRemoteUrl(value))
37
- out.add(value);
38
- return;
39
- }
40
- if (Array.isArray(value)) {
41
- for (const item of value)
42
- deepWalkUrls(item, out);
43
- return;
44
- }
45
- if (typeof value === 'object' && value !== null) {
46
- for (const [key, child] of Object.entries(value)) {
47
- if (DENY_FIELDS.has(key))
48
- continue;
49
- deepWalkUrls(child, out);
50
- }
51
- }
52
- }
53
- /** The same compiled-code .glb scan the standalone lane runs, over the pro project's dist. */
54
- export function scanCompiledCodeUrls(compiledCode) {
55
- const urls = new Set();
56
- for (const match of compiledCode.match(/https?:\/\/[^"'`\s)\\]+\.glb\b/g) ?? []) {
57
- urls.add(match);
58
- }
59
- return urls;
60
- }
61
- /** All compiled game JS under dist/src/work, concatenated — for reference scans. */
62
- export function readCompiledGameCode(root) {
63
- const workDir = path.join(root, 'dist', aliasSourceDir('work'));
64
- let combined = '';
65
- const walk = (dir) => {
66
- let entries;
67
- try {
68
- entries = fs.readdirSync(dir, { withFileTypes: true });
69
- }
70
- catch {
71
- return;
72
- }
73
- for (const entry of entries) {
74
- const full = path.join(dir, entry.name);
75
- if (entry.isDirectory())
76
- walk(full);
77
- else if (entry.name.endsWith('.js'))
78
- combined += fs.readFileSync(full, 'utf-8');
79
- }
80
- };
81
- walk(workDir);
82
- return combined;
83
- }
84
- function isAnimationAssets(value) {
85
- if (typeof value !== 'object' || value === null)
86
- return false;
87
- const record = value;
88
- return (typeof record.animationBaseUrl === 'string'
89
- && typeof record.generatedAnimationBaseUrl === 'string'
90
- && typeof record.characterUrls === 'object'
91
- && Array.isArray(record.coreAnimations));
92
- }
93
- /**
94
- * Import the vendored engine's compiled AnimationAssets — a pure data module with no imports,
95
- * which is what makes this safe from plain node. Null (with the caller noting it) when the
96
- * engine predates the module or the shape moved: the record pass still catches whatever the
97
- * running game actually fetches.
98
- */
99
- export async function loadAnimationAssets(root) {
100
- const compiled = path.join(root, 'dist', 'engine', 'engine', 'AnimationAssets.js');
101
- if (!fs.existsSync(compiled))
102
- return null;
103
- try {
104
- const loaded = await import(pathToFileURL(compiled).href);
105
- const assets = loaded.animationAssets;
106
- return isAnimationAssets(assets) ? assets : null;
107
- }
108
- catch {
109
- return null;
110
- }
111
- }
112
- /**
113
- * The built-in animation URLs this game can load. The ACTIVE library ships whole — its optional
114
- * packs (melee/ranged/directional/posture) are loaded on demand by engine systems whose names
115
- * game code never contains, so reference-scanning cannot bound them. The inactive library ships
116
- * only clips the compiled game code names (`getBuiltinAnimationDef` resolves ids from either).
117
- */
118
- export function collectAnimationUrls(assets, worldData, compiledCode) {
119
- const urls = new Set();
120
- const bases = new Set([
121
- assets.animationBaseUrl,
122
- assets.generatedAnimationBaseUrl,
123
- assets.animalBaseUrl,
124
- assets.voxelAnimalBaseUrl,
125
- assets.voxelFishBaseUrl,
126
- ]);
127
- // The rig loads for any humanoid: player (default present), NPCs, or multiplayer avatars —
128
- // the same test the standalone collector applies.
129
- const needsHumanoid = worldData.worldProfileData?.hasPlayerCharacter !== false
130
- || compiledCode.includes('registerNpc')
131
- || compiledCode.includes('MultiplayerSetup');
132
- if (needsHumanoid) {
133
- urls.add(assets.characterUrls.default);
134
- urls.add(assets.characterUrls.defaultFallback);
135
- }
136
- const referenced = (clip) => compiledCode.includes(clip.motionId)
137
- || (clip.file !== undefined && compiledCode.includes(clip.file));
138
- // Each library flattened to clips carrying their own resolved URL, so the active/inactive rule
139
- // below can be stated once instead of once per library.
140
- const cdnLibrary = [
141
- ...assets.coreAnimations.map((entry) => ({
142
- ...entry,
143
- url: entry.url ?? `${assets.animationBaseUrl}/${entry.file}`,
144
- })),
145
- ...assets.meleeWeaponAnimations,
146
- ];
147
- const generatedLibrary = [
148
- assets.generatedAnimations,
149
- assets.generatedMeleeWeaponAnimations,
150
- assets.generatedRangedWeaponAnimations,
151
- assets.generatedDirectionalAnimations,
152
- assets.generatedPostureAnimations,
153
- ].flatMap((pack) => pack.map((entry) => ({ ...entry, url: entry.url ?? `${assets.generatedAnimationBaseUrl}/${entry.file}` })));
154
- const generatedActive = assets.activeLibrary === 'generated';
155
- const active = generatedActive ? generatedLibrary : cdnLibrary;
156
- const inactive = generatedActive ? cdnLibrary : generatedLibrary;
157
- // The active library ships whole — but only to a game that animates a humanoid at all.
158
- if (needsHumanoid) {
159
- for (const clip of active)
160
- urls.add(clip.url);
161
- }
162
- for (const clip of inactive) {
163
- if (referenced(clip))
164
- urls.add(clip.url);
165
- }
166
- // Skeleton rigs for skeleton-based animals in world data. Voxel animal/fish BODIES resolve
167
- // through a registry inside the engine (species → file); those load at spawn during the
168
- // record pass, which vendors them — the bases above are rewritten either way.
169
- const declared = worldData.worldProfileData?.animals;
170
- const animals = Array.isArray(declared) ? declared : [];
171
- for (const animal of animals) {
172
- if (typeof animal !== 'object' || animal === null)
173
- continue;
174
- const skeleton = animal.skeleton;
175
- if (typeof skeleton === 'string') {
176
- const file = assets.animalSkeletons[skeleton];
177
- if (file !== undefined)
178
- urls.add(`${assets.animalBaseUrl}/${file}`);
179
- }
180
- }
181
- return { urls, bases };
182
- }
183
- function readWorkJson(root, file) {
184
- try {
185
- return JSON.parse(fs.readFileSync(path.join(root, aliasSourceDir('work'), file), 'utf-8'));
186
- }
187
- catch {
188
- return null;
189
- }
190
- }
191
- /** The full §4b collection: deep walk + compiled-code scan + built-in animation surface. */
192
- export async function collectUrls(root) {
193
- const urls = new Set();
194
- const bases = new Set();
195
- const notes = [];
196
- const worldData = readWorkJson(root, 'world.json');
197
- const gameData = readWorkJson(root, 'game.json');
198
- deepWalkUrls(worldData, urls);
199
- deepWalkUrls(gameData, urls);
200
- const compiledCode = readCompiledGameCode(root);
201
- if (compiledCode.length === 0) {
202
- notes.push('No compiled game code under dist/ — code-referenced assets cannot be scanned.');
203
- }
204
- for (const url of scanCompiledCodeUrls(compiledCode))
205
- urls.add(url);
206
- const animationAssets = await loadAnimationAssets(root);
207
- if (animationAssets === null) {
208
- notes.push('The vendored engine\'s AnimationAssets could not be read — built-in animations will be '
209
- + 'collected by the record pass instead.');
210
- }
211
- else {
212
- const collected = collectAnimationUrls(animationAssets, (worldData ?? {}), compiledCode);
213
- for (const url of collected.urls)
214
- urls.add(url);
215
- for (const base of collected.bases)
216
- bases.add(base);
217
- }
218
- return { urls, bases, notes };
219
- }
1
+ // Compatibility entry point for the iOS packager.
2
+ export * from '../package/collect-urls.js';
220
3
  //# sourceMappingURL=collect-urls.js.map