Add full application: receipt scanning, auth, billing, and account deletion
Brings the working codebase (Next.js app, auth system, Stripe billing, Docker/deploy config, tests, docs) into version control on top of the placeholder initial commit, and adds account self-deletion (Danger Zone in Settings, password + typed-email confirmation, cascading DB cleanup, Stripe cancellation) per GDPR right-to-erasure. Excludes local build caches, node_modules, and internal agent scratch files; .gitignore hardened to keep those out going forward. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
29
scripts/inspect_excel.mjs
Normal file
29
scripts/inspect_excel.mjs
Normal file
@@ -0,0 +1,29 @@
|
||||
import ExcelJS from "exceljs";
|
||||
|
||||
async function inspect() {
|
||||
const wb = new ExcelJS.Workbook();
|
||||
await wb.xlsx.readFile("C:/Users/timo/Downloads/Belege_Export_2026-08-14.xlsx");
|
||||
|
||||
console.log("=== WORKBOOK SHEETS ===");
|
||||
wb.eachSheet((sheet, id) => {
|
||||
console.log(`Sheet ${id}: "${sheet.name}" (Rows: ${sheet.rowCount}, Cols: ${sheet.columnCount})`);
|
||||
});
|
||||
|
||||
const s1 = wb.getWorksheet("Belegübersicht");
|
||||
if (s1) {
|
||||
console.log("\n=== SHEET 1: Belegübersicht ===");
|
||||
s1.eachRow((row, rowNumber) => {
|
||||
console.log(`Row ${rowNumber}:`, JSON.stringify(row.values));
|
||||
});
|
||||
}
|
||||
|
||||
const s2 = wb.getWorksheet("Einzelpositionen Detail");
|
||||
if (s2) {
|
||||
console.log("\n=== SHEET 2: Einzelpositionen Detail ===");
|
||||
s2.eachRow((row, rowNumber) => {
|
||||
console.log(`Row ${rowNumber}:`, JSON.stringify(row.values));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
inspect().catch(console.error);
|
||||
Reference in New Issue
Block a user