feat(ext-web-bundler): add build-time asset scanning and static-frontend strategy

Introduces AssetDirectoryScanner, StaticFrontendStrategy, and WebBundlerBuild for
build-time asset discovery, plus config/docs updates for frontend-type resolution.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Zakaria El Orche
2026-08-11 00:22:26 +00:00
co-authored by Claude Sonnet 5
parent fa0a2d79b4
commit 8ece9975de
16 changed files with 399 additions and 54 deletions
@@ -13,7 +13,14 @@ Builder shortcuts:
- `.assetsFromClasspath("web/dist")`
Classpath source requires `asset-manifest.json` generated at build time.
The developer does not maintain this file manually.
The developer does not maintain this file manually — generate it with `WebBundlerBuild`
(`dev.relism.flash.ext.webbundler.WebBundlerBuild`), which scans a prebuilt directory (a Vite
`dist/` or a `STATIC` asset folder) and writes the manifest into it, ready to be picked up as a
classpath resource once that directory lands under `target/classes`. See `build-time.md`.
`WebBundlerBuild` reuses the exact same etag/mimeType/immutable computation `FilesystemAssetsSource`
uses at runtime, so a file served from disk in dev and the same file served from the classpath in
prod get identical cache semantics.
Production startup is fail-fast if: