typescript 7.0.2 is the native compiler and exports no JavaScript API, so next, ts-jest and typescript-eslint cannot read it. It comes in aliased as tsgo and does the typechecking; typescript stays on the 6 line for those tools. Four settings the native compiler removed move with it. baseUrl is gone, so every tsconfig that used it spells its own root as a "*" path; the shared base config's @safe-global/* paths were only correct because baseUrl re-rooted them, and now name the real directories from where they are written. moduleResolution node10 becomes bundler, downlevelIteration goes (it was a no-op at target esnext), and apps/web declares '*.css' and '*.md'. Two sources follow: the faker import drops its trailing '/.', and the IntersectionObserver mock gains scrollMargin. All eight packages report 0 diagnostics before and after, identical on 6.0.3 and 7.0.2. Co-authored-by: Hanzo Dev <[email protected]>
@safe-global/brand
White-label brand tokens for the Safe wallet monorepo.
Why
The Safe wallet codebase is the upstream OSS reference. Lux Safe, Zoo Safe, Pars Safe and Hanzo Vault all ship from the same source. To keep them in lock- step we keep brand strings (product name, URLs, support contacts, asset paths, primary color) out of the source — they live here, in one file, behind one type.
Shape
import { brand } from '@safe-global/brand'
brand.name // "Lux Safe" (or "Zoo Safe", "Pars Safe", "Hanzo Vault")
brand.domain // "safe.lux.network"
brand.email // "[email protected]"
brand.helpUrl // "https://docs.lux.network/safe"
brand.logoUrl // "/brand/lux/logo.svg"
brand.primaryColor // "#000000"
See src/index.ts for the full Brand interface.
Where the values come from
The request host, at runtime — the same way getWhiteLabelBrand works across
the rest of the Lux/Hanzo stack. safe.lux.network is Lux, safe.zoo.network
is Zoo, safe.pars.network is Pars, vault.hanzo.ai is Hanzo Vault. A host
that matches nothing gets Lux.
Nothing is baked in at build time, so one image serves every brand. Adding a
brand means adding an entry to the registry in src/index.ts
and an asset directory under apps/web/public/brand/<slug>/ — there is no env
var to set and no per-brand build to run.
Rule
There is exactly one way to render the product name. It is brand.name. There
is no 'Safe' string literal in source files. If you find one, replace it.