Dashboard › fossilize › Distillation
bb04d881-014e-43c7-8b94-74c01de37645["203e313df0df7a990e426c38ef4f8e6b","508a9c615bf70c148980763c3f73b67a"]
🔴 (11:46) User stated goal: wants a single-executable Node.js application
🔴 (11:46) User asked "I need fossilize?" — questioning whether fossilize is necessary for their use case
🔴 (11:46) User stated: wants to include a bundler; both esbuild and rollup have native components (this is a blocker for fossilize being a SEA itself, and relevant to user's own build)
🟡 (11:46) [tool-failure] Apple Developer notarization docs page failed to load (requires JavaScript); webfetch returned non-2xx status ×2 during research session
🟡 (11:46) fossilize npm package (v0.9.0, MIT, published 2 days before June 9 2026, author: byk, 11 dependencies, 0 dependents, 16 versions, ~1,054 weekly downloads) details:
esbuild, then wraps with Node SEAsign: false is default; sign: true uses rcodesign (from apple-platform-rs) for macOS signing via env vars: APPLE_TEAM_ID, APPLE_CERT_PATH, APPLE_CERT_PASSWORD, APPLE_API_KEY_PATHfossilize({ nodeVersion, platforms, outDir, cacheDir, noBundle, sign, holePunch, concurrencyLimit }, entrypoint)["darwin-arm64", "linux-x64", "win-x64"]FOSSILIZE_SIGN, FOSSILIZE_NODE_VERSION, FOSSILIZE_CACHE_DIR, FOSSILIZE_PLATFORMS (comma-separated), FOSSILIZE_CONCURRENCY_LIMIT🟡 (11:46) Node.js SEA (Single Executable Applications) details from Node.js v26.3.0 docs:
--build-sea flag added in v25.5.0 (handles blob generation + injection internally)main, output, optional fields; (2) run node --build-sea sea-config.json; (3) on macOS sign with codesign --sign - <binary>main, mainFormat (commonjs|module, default commonjs), executable (optional), output, disableExperimentalSEAWarning (default false), useSnapshot (default false), useCodeCache (default false), execArgv (array), execArgvExtension (none|env|cli, default env), assets (key-path dict)useCodeCache: false and useSnapshot: falseNODE_SEA_BLOB in NODE_SEA Mach-O segment; Linux: ELF note; Windows: PE resourceNODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 (last char flipped to 1 after injection)postject (npx postject); macOS requires --macho-segment-name NODE_SEAnode:sea API: sea.isSea(), sea.getAsset(key[, encoding]), sea.getAssetAsBlob(key[, options]), sea.getRawAsset(key) (no-copy), sea.getAssetKeys() (added v24.8.0/v22.20.0)import() does NOT work when useCodeCache: true"mainFormat": "module" cannot be used with "useSnapshot": true__filename, module.filename, process.execPath all equal the executable path; __dirname = directory of executableprocess.dlopen()process.dlopen()