FastAPI backend (Python 3.11, MSSQL ODBC for SambaPOS, Azure DI OCR),
kitchen_db on central PG. React/TS/Vite frontend with navy sidebar layout.
Backend: auth.py (APP_SLUG=kitchen, SimpleNamespace — archive routes use
.kitchen_id/.is_admin without modification), main.py (51 migrations, scheduler,
internal router for KDS bookings feed), api/internal.py, full archive API
(31 routers: invoices, recipes, menus, sambapos, resos, newbook, disputes,
purchase_orders, etc.), models, migrations, OCR pipeline.
kitchen_id pinned to 1 (B1 — single hotel).
Frontend: AuthGate (app=kitchen, token shim for archive compat — B5b pending),
Layout (navy sidebar, 6 sections, Lucide icons, teal --app-primary),
App.tsx (Outlet pattern, UploadApp outside Layout), index.css (full :root block).
strict: false — archive components have type issues; build clean.
Note: 45 archive components call fetch('/api/...') without /kitchen/ prefix
(B5b). Runtime 404s; deferred until after initial testing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
256 lines
4.6 KiB
TypeScript
256 lines
4.6 KiB
TypeScript
/// <reference path="./types/importMeta.d.ts" />
|
|
|
|
// CSS modules
|
|
type CSSModuleClasses = { readonly [key: string]: string }
|
|
|
|
declare module '*.module.css' {
|
|
const classes: CSSModuleClasses
|
|
export default classes
|
|
}
|
|
declare module '*.module.scss' {
|
|
const classes: CSSModuleClasses
|
|
export default classes
|
|
}
|
|
declare module '*.module.sass' {
|
|
const classes: CSSModuleClasses
|
|
export default classes
|
|
}
|
|
declare module '*.module.less' {
|
|
const classes: CSSModuleClasses
|
|
export default classes
|
|
}
|
|
declare module '*.module.styl' {
|
|
const classes: CSSModuleClasses
|
|
export default classes
|
|
}
|
|
declare module '*.module.stylus' {
|
|
const classes: CSSModuleClasses
|
|
export default classes
|
|
}
|
|
declare module '*.module.pcss' {
|
|
const classes: CSSModuleClasses
|
|
export default classes
|
|
}
|
|
declare module '*.module.sss' {
|
|
const classes: CSSModuleClasses
|
|
export default classes
|
|
}
|
|
|
|
// CSS
|
|
declare module '*.css' {}
|
|
declare module '*.scss' {}
|
|
declare module '*.sass' {}
|
|
declare module '*.less' {}
|
|
declare module '*.styl' {}
|
|
declare module '*.stylus' {}
|
|
declare module '*.pcss' {}
|
|
declare module '*.sss' {}
|
|
|
|
// Built-in asset types
|
|
// see `src/node/constants.ts`
|
|
|
|
// images
|
|
declare module '*.apng' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.bmp' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.png' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.jpg' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.jpeg' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.jfif' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.pjpeg' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.pjp' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.gif' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.svg' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.ico' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.webp' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.avif' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
|
|
// media
|
|
declare module '*.mp4' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.webm' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.ogg' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.mp3' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.wav' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.flac' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.aac' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.opus' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.mov' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.m4a' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.vtt' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
|
|
// fonts
|
|
declare module '*.woff' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.woff2' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.eot' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.ttf' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.otf' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
|
|
// other
|
|
declare module '*.webmanifest' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.pdf' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
declare module '*.txt' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
|
|
// wasm?init
|
|
declare module '*.wasm?init' {
|
|
const initWasm: (
|
|
options?: WebAssembly.Imports,
|
|
) => Promise<WebAssembly.Instance>
|
|
export default initWasm
|
|
}
|
|
|
|
// web worker
|
|
declare module '*?worker' {
|
|
const workerConstructor: {
|
|
new (options?: { name?: string }): Worker
|
|
}
|
|
export default workerConstructor
|
|
}
|
|
|
|
declare module '*?worker&inline' {
|
|
const workerConstructor: {
|
|
new (options?: { name?: string }): Worker
|
|
}
|
|
export default workerConstructor
|
|
}
|
|
|
|
declare module '*?worker&url' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
|
|
declare module '*?sharedworker' {
|
|
const sharedWorkerConstructor: {
|
|
new (options?: { name?: string }): SharedWorker
|
|
}
|
|
export default sharedWorkerConstructor
|
|
}
|
|
|
|
declare module '*?sharedworker&inline' {
|
|
const sharedWorkerConstructor: {
|
|
new (options?: { name?: string }): SharedWorker
|
|
}
|
|
export default sharedWorkerConstructor
|
|
}
|
|
|
|
declare module '*?sharedworker&url' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
|
|
declare module '*?raw' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
|
|
declare module '*?url' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
|
|
declare module '*?inline' {
|
|
const src: string
|
|
export default src
|
|
}
|
|
|
|
declare interface VitePreloadErrorEvent extends Event {
|
|
payload: Error
|
|
}
|
|
|
|
declare interface WindowEventMap {
|
|
'vite:preloadError': VitePreloadErrorEvent
|
|
}
|