import { z, ZodError } from 'zod'; /** * Schema v1 for project.config.ts / offline.config.ts. * * Design notes: * - A project declares pages once. CLI/Vite plugin/offline all read this list. * - Offline config is optional and additive; it references page identifiers * from project config instead of redeclaring them. * - Unknown keys are stripped (`strip()` default). We prefer silent success on * extra fields so downstream tools can extend shapes without a lock-step bump. */ type Framework = 'vue3' | 'react'; type EnvMode = 'dev' | 'test' | 'staging' | 'prod'; /** * A single "externalized dependency": e.g. vue or pinia. When cdn is enabled * the build pipeline strips `import ... from ''` out of the bundle, * injects `