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>
34 lines
1.5 KiB
JavaScript
34 lines
1.5 KiB
JavaScript
/* tslint:disable max-classes-per-file */
|
|
import { decompressJson, padStart } from './utils';
|
|
import AllEncodingsCompressed from './all-encodings.compressed.json';
|
|
var decompressedEncodings = decompressJson(AllEncodingsCompressed);
|
|
var allUnicodeMappings = JSON.parse(decompressedEncodings);
|
|
var Encoding = /** @class */ (function () {
|
|
function Encoding(name, unicodeMappings) {
|
|
var _this = this;
|
|
this.canEncodeUnicodeCodePoint = function (codePoint) {
|
|
return codePoint in _this.unicodeMappings;
|
|
};
|
|
this.encodeUnicodeCodePoint = function (codePoint) {
|
|
var mapped = _this.unicodeMappings[codePoint];
|
|
if (!mapped) {
|
|
var str = String.fromCharCode(codePoint);
|
|
var hexCode = "0x" + padStart(codePoint.toString(16), 4, '0');
|
|
var msg = _this.name + " cannot encode \"" + str + "\" (" + hexCode + ")";
|
|
throw new Error(msg);
|
|
}
|
|
return { code: mapped[0], name: mapped[1] };
|
|
};
|
|
this.name = name;
|
|
this.supportedCodePoints = Object.keys(unicodeMappings)
|
|
.map(Number)
|
|
.sort(function (a, b) { return a - b; });
|
|
this.unicodeMappings = unicodeMappings;
|
|
}
|
|
return Encoding;
|
|
}());
|
|
export var Encodings = {
|
|
Symbol: new Encoding('Symbol', allUnicodeMappings.symbol),
|
|
ZapfDingbats: new Encoding('ZapfDingbats', allUnicodeMappings.zapfdingbats),
|
|
WinAnsi: new Encoding('WinAnsi', allUnicodeMappings.win1252),
|
|
};
|