mirror of
https://github.com/hanzoai/id.git
synced 2026-10-30 14:57:39 +00:00
Root cause of the post-cutover white-screen: vite.config.ts is loaded as a
native ESM module where `require` is undefined, so the brandJsonPlugin's
`require.resolve('<pkg>/brand.json')` threw and the silent catch skipped
emitting EVERY brand.json. The SPA then served index.html (HTTP 200,
text/html) for /brand/<pkg>/brand.json, loadBrand did res.json() on HTML,
threw "Unexpected token '<'", and App's catch rendered that error as the
whole page — no login form ever mounted.
- vite.config.ts: build a createRequire(import.meta.url) resolver so the
brand.json subpath resolves under ESM. Build now emits all four
dist/brand/<pkg>/brand.json (verified: @hanzo brand.name = "Hanzo").
- brand.ts: read the response as text and JSON.parse explicitly; on
non-JSON throw a precise diagnostic instead of a cryptic SyntaxError,
and require the "brand" key.
- apps/web 0.1.8 -> 0.1.9.
35 lines
977 B
JSON
35 lines
977 B
JSON
{
|
|
"name": "@hanzo/id-web",
|
|
"private": true,
|
|
"version": "0.1.9",
|
|
"description": "Hanzo ID \u2014 white-label login / signup / IDV portal. Vite + React 19 + @hanzo/gui. Same image serves hanzo.id / lux.id / zoo.id / pars.id.",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vite build",
|
|
"preview": "vite preview --port 5174",
|
|
"tc": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@hanzo/brand": "^1.3.0",
|
|
"@hanzo/gui": "^7.2.4",
|
|
"@hanzo/iam": "^0.9.4",
|
|
"@hanzo/id-auth": "workspace:*",
|
|
"@hanzo/id-idv": "workspace:*",
|
|
"@hanzo/id-shared": "workspace:*",
|
|
"@luxfi/brand": "^1.0.0",
|
|
"@parsdao/brand": "^1.0.0",
|
|
"@tanstack/react-router": "^1.168.0",
|
|
"@zooai/brand": "^1.3.0",
|
|
"react": "^19.2.0",
|
|
"react-dom": "^19.2.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"@vitejs/plugin-react": "^4.3.4",
|
|
"typescript": "^5.9.3",
|
|
"vite": "^7.0.0"
|
|
}
|
|
}
|