Back to Outbreak: Soycoon City
SOURCE / PINNED RELEASE

Made of little things.

Outbreak: Soycoon City

Release
db7750b1d009…
Author-recorded commit
3ee3f5fd27a6…
License
LICENSE
Author’s source reference
nostr://npub182jczunncwe0jn6frpqwq3e0qjws7yqqnc3auccqv9nte2dnd63scjm4rf/wss%3A%2F%2Fgit.napplet.soy%2F/n-b87c04571a9

Archive hash verified: dbebdc772b142a1c…. The source-to-build association is the author’s claim; it has not been independently rebuilt.

scripts/test-modules.mjs
import { createRequire } from 'node:module';
import { mkdtemp, writeFile, rm } from 'node:fs/promises';
import { tmpdir } from 'node:os';
import { join } from 'node:path';
import { pathToFileURL } from 'node:url';
// Reuse Vite's installed compiler; keep production modules in the native Node realm.
const require = createRequire(createRequire(import.meta.url).resolve('vite/package.json'));
export async function testModules() {
  const { build } = require('esbuild');
  const result = await build({ stdin:{ contents:`
    export * from './src/world.ts';
    export * from './src/game.ts';
    export * from './src/audio.ts';
    export * from './src/controller.ts';
    export * from './src/level-format.ts';
    export * from './src/level-files.ts';
    export * from './docs/examples/app-data.ts';
    export * from './docs/examples/app-data-contract.ts';
  `, resolveDir:process.cwd(), loader:'ts' }, bundle:true, platform:'node', format:'esm', write:false });
  const directory = await mkdtemp(join(tmpdir(),'soyindent-tests-'));
  try { const file = join(directory,'modules.mjs');await writeFile(file,result.outputFiles[0].text);return await import(pathToFileURL(file).href); }
  finally { await rm(directory,{recursive:true,force:true}); }
}