The vite-plugin-vue-meta-layouts layout name is a hand-maintained union in env.d.ts (not auto-generated). Task 8 created OrganizerLayoutV2 and Task 3's boot-proof page sets meta.layout: 'OrganizerLayoutV2', but the union lacked the v2 entries so a typed definePage failed vue-tsc. Registers both v2 layouts (PortalLayoutV2 added now to pre-empt the same gap when portal v2 lands). Completes Task 8 (RFC-WS-GUI-REDESIGN AD-G2). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import 'vue-router'
|
|
|
|
interface ImportMetaEnv {
|
|
readonly VITE_API_URL: string
|
|
readonly VITE_APP_NAME: string
|
|
readonly VITE_PORTAL_URL: string
|
|
// RFC-WS-7 §3.3 — empty DSN = SDK no-op. Production gets the crewli-app
|
|
// DSN from 1Password vault.
|
|
readonly VITE_SENTRY_DSN_FRONTEND?: string
|
|
// RFC-WS-7 §3.4 — `crewli-app@<short-sha>`, injected at build-time by
|
|
// deploy.sh. Optional during local dev.
|
|
readonly VITE_SENTRY_RELEASE?: string
|
|
}
|
|
|
|
interface ImportMeta {
|
|
readonly env: ImportMetaEnv
|
|
}
|
|
|
|
declare module 'vue-router' {
|
|
interface RouteMeta {
|
|
action?: string
|
|
subject?: string
|
|
layoutWrapperClasses?: string
|
|
navActiveLink?: RouteLocationRaw
|
|
layout?: 'blank' | 'default' | 'OrganizerLayout' | 'PortalLayout' | 'PublicLayout' | 'OrganizerLayoutV2' | 'PortalLayoutV2'
|
|
unauthenticatedOnly?: boolean
|
|
public?: boolean
|
|
|
|
// WS-3 PR-B1 — added for the consolidated SPA. PR-B2 evolves these.
|
|
requiresAuth?: boolean
|
|
context?: 'organizer' | 'portal'
|
|
requiresToken?: boolean
|
|
navMode?: 'event' | 'platform'
|
|
navTitle?: string
|
|
}
|
|
}
|