62d6bd211b
CI / check (push) Has been cancelled
Print generic datasheets - every option a unit could take, the way the official cards read - instead of a record of one particular list. The three Python scripts that used to rewrite the .ros file before upload are now transforms in src/transforms/, running in the browser between DOMParser and the roster parser. Most of each script was machinery for preserving the file byte for byte on the way back to disk; in the browser the document is never serialised, so only the domain logic came across. Because they run on the parsed document rather than the uploaded file, flipping a transform off rebuilds from the original XML with no re-upload. Saved rosters therefore hold the raw roster XML rather than the parsed object, under new localStorage keys. The scripts' output over four 11th-edition rosters is checked in as test fixtures, so the port is measured against an independent implementation that was verified by printing the cards; scripts/update-fixtures.mjs refuses to overwrite those without --force. Two parser call sites now use :scope> rather than repeating the scope element's own name, which means the same thing in a browser and also works under jsdom, where the old form matched nothing. Also: served at the root rather than a GitHub Pages subpath, PostHog analytics removed, and deploy/ carries an nginx site for scribe.luxick.de plus an rsync deploy script. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
45 lines
1.0 KiB
JSON
45 lines
1.0 KiB
JSON
{
|
|
"name": "brevyscribe",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"lint": "biome check .",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"fixtures": "node scripts/update-fixtures.mjs"
|
|
},
|
|
"dependencies": {
|
|
"chart.js": "^4.4.8",
|
|
"jszip": "^3.10.1",
|
|
"react": "^19.0.0",
|
|
"react-chartjs-2": "^5.3.0",
|
|
"react-dom": "^19.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@biomejs/biome": "^1.9.4",
|
|
"@types/react": "^18.3.18",
|
|
"@types/react-dom": "^18.3.5",
|
|
"@vitejs/plugin-react": "^4.3.4",
|
|
"autoprefixer": "^10.4.20",
|
|
"babel-plugin-react-compiler": "^19.0.0-beta-e993439-20250328",
|
|
"eslint-plugin-react-compiler": "^19.0.0-beta-e993439-20250328",
|
|
"jsdom": "^29.1.1",
|
|
"postcss": "^8.5.3",
|
|
"prettier": "^3.5.2",
|
|
"prettier-plugin-tailwindcss": "^0.6.11",
|
|
"tailwindcss": "^3.4.17",
|
|
"vite": "^6.2.5",
|
|
"vitest": "^4.1.10"
|
|
},
|
|
"prettier": {
|
|
"useTabs": true,
|
|
"plugins": [
|
|
"prettier-plugin-tailwindcss"
|
|
]
|
|
}
|
|
}
|