La tabla de alias (38 entradas) estaba escrita dos veces, en vite.config.ts y a
mano en svelte.config.js, y dos scripts la sacaban de vuelta de la config de
Vite con una regex (generate-boot.ts y el invariante 8 de docs-check.ts). Una
app del workspace habría sido el cuarto sitio. Ahora vive UNA vez en
uix.aliases.js (raíz, .js con JSDoc porque Node carga svelte.config.js sin
bundler): UIX_ALIASES con rutas relativas y resolveUixAliases(root) con las
absolutas, en el mismo orden. Las dos tablas eran idénticas en claves, valores
y orden (comprobado antes de sustituirlas).
El orden es contrato: Vite y esbuild casan un alias de cadena por prefijo y
SvelteKit se los pasa en orden de inserción (leído en
@sveltejs/kit/src/exports/vite/utils.js), así que $svrs/auth/testing y
$svrs/auth van antes que $svrs. src/uix/aliases.test.ts lo guarda junto a lo
demás: cada destino existe (anti-vacío ≥ 38), resolveUixAliases conserva orden
y rutas, ninguna config vuelve a llevar una copia, y el tsconfig generado por
SvelteKit tiene paths para cada entrada. Visto fallar: con $svrs delante de
$svrs/auth, 1 rojo (restaurado byte a byte).
svelte.config.js gana kit.typescript.config para que svelte-check incluya el
módulo. readViteAliases muere sin shim; pack.test.ts importa el módulo.
CLAUDE.md y AGENTS.md dicen dónde vive la tabla (la sección de AGENTS.md
listaba alias que ya no existen).
Verificación: aliases.test + pack.test 6/6 · generate:boot byte-idéntico (esbuild
recibe el mismo mapa) · docs:check 0/0 · check:gate OK (src/ a cero; 89 en web/, dentro del ledger) · suite
entera 464 ficheros / 5 442 tests, exit 0 · npm run build de la raíz exit 0.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>