Changelog - 2026-09-16
@venizia/ignis-kernel/metadata: 20 KB → 13.9 KB gzipped
FixTwo changes, same target: what a browser-side consumer pays for.
inversion no longer depends on lodash
It used exactly two functions - omit in app-error.ts, isEmpty in the binding constants - for 24 KB of bundle. Both are now in common/utilities.ts, and lodash is out of the package manifest so it cannot drift back in unnoticed.
The replacements were checked against lodash on the shapes actually passed, not assumed equivalent: isEmpty is only ever called on a string, where it agrees with !value on every case including null and undefined; omit is only ever called with a flat key list, never a nested path.
utilities/ no longer carries zod
jsx.utility.ts and schema.utility.ts were OpenAPI schema builders sitting in a barrel whose name promised nothing of the sort. z.object() and z.string() run at module load, so every bundle that touched utilities/ carried the whole of zod.
They are base/controllers/common/html-response.ts and .../schema-builders.ts now, beside the REST surface they belong to. Both are re-exported from the same barrels, so no import path changes.
Every kernel peer is optional now
hono and @hono/zod-openapi were required peers, so a consumer importing only ./metadata was still told to install a server HTTP framework. They join casbin, drizzle-orm and jose as optional.
Nothing is lost at install time: @venizia/ignis (core-server) declares both as required peers already, so a REST application that forgets one is still warned by the package it actually depends on. The kernel is the layer that genuinely does not need them.
Guarded
browser-weight.test.ts now covers three entries - Container, ./metadata, and utilities/ - and fails on zod reaching any of them. zod is browser-pure, so the purity gate never had an opinion; weight and reachability need their own measurement.
Who is affected
You bundle IGNIS for a browser. Smaller, with no change to what you import.
Everyone else. Nothing - same exports, same behaviour.
Files:
packages/inversion/src/common/utilities.ts-omitpackages/kernel/src/utilities/index.tspackages/kernel/package.json-peerDependenciesMeta