@telixon/core bundle size

What @telixon/core adds to a consumer's initial download, measured from a real Vite production build. The app imports the entire public API, including the input controller, which makes the initial figure a ceiling for any real application.
Engine compiled from Google's libphonenumber source at github.com/google/libphonenumber@c9d5f73.
Generated 2026-09-01T21:38:33.480Z.
20.8 KB
initial bundle
the entry chunk gzipped, holding the public API and the loader with no metadata
120.0 KB
engine, 4 lazy chunks
fetched by ensureEngineReady() after first paint
140.8 KB
what an analyzer reports
bundlephobia and Import Cost inline the lazy chunks, reporting initial plus engine as one number
initial bundle (20.8 KB)   engine, lazy (120.0 KB). One bar, gzipped bytes to scale. The green slice is everything that ships before the engine is needed.

Chunks

Every JavaScript file the build emitted, gzipped at level 9 and brotli-compressed at quality 11. The engine's four base64-of-gzip modules are referenced through dynamic import(), which makes the bundler split each into its own lazy chunk.
Chunk Role Raw Gzip Brotli
index-DNkHkLVW.jsinitial66.0 KB20.8 KB18.1 KB
metadata.bin-B2ESXIOK.jsengine, lazy48.7 KB36.7 KB36.6 KB
walk.bin-Bm6c2KHv.jsengine, lazy42.5 KB31.9 KB31.8 KB
verdict.bin-DjsPGVlp.jsengine, lazy34.7 KB26.0 KB26.0 KB
scope.bin-BC8I_07E.jsengine, lazy33.7 KB25.4 KB25.4 KB
Total on disk225.6 KB140.8 KB137.9 KB

How analyzers count this

bundlephobia and the Import Cost editor extension estimate size by inlining every import() back into the entry, since neither models code-splitting. For a library that ships its data through lazy chunks, that collapses the initial bundle and the on-demand engine into one figure (140.8 KB).

A production bundler keeps the split. The engine layers download in parallel, off the critical path, when ensureEngineReady() runs. The entry chunk is what reaches a user on first paint, at 20.8 KB gzipped.

Reproduce

git clone https://github.com/martsinlabs/telixon
cd telixon && pnpm install
pnpm --filter @telixon/core build
pnpm --filter @telixon/example-core-bundle-size build
The build prints the same chunk sizes as the table above. The engine splits because it loads through dynamic import(), exactly as it does in a consumer's build.