diff --git a/README.md b/README.md new file mode 100644 index 0000000..4ffae28 --- /dev/null +++ b/README.md @@ -0,0 +1,33 @@ + Root + - .gitignore, pnpm-workspace.yaml, package.json (workspace scripts), Cargo.toml (workspace), .npmrc + + rulesets/ — @campaign-manager/rulesets workspace package + - types.ts — Ruleset, SheetData, ValidationResult, DiceAction, StatBlock, VNode interfaces + - dsa5e/index.ts — DSA5e stub (typed default sheet with attributes, talents, combat, spells) + - generic/index.ts — Generic stub (name, HP, notes) + - index.ts — re-exports everything + RULESETS registry map + + symbiote/ — Plain Svelte + Vite (target es2022 for top-level await support) + - vite.config.ts, tsconfig.json, index.html + - public/manifest.json — valid TaleSpire manifest with colorStyles, fonts, diceFinder, icons extras + - src/lib/ts-api.d.ts — ambient TS global (storage, dice, players, sync) + - src/lib/store.ts — accessToken, refreshToken, currentUser, currentGroup, isBoardTransition stores + + loadTokens/saveTokens/clearTokens via TS.storage + - src/lib/api.ts — auto-refresh on 401, suppresses calls during board transition + - src/App.svelte — currentView store drives view switching + - src/main.ts — board transition listeners, awaits TS.hasInitialized, mounts App + - src/views/ — Login, GroupList, GroupDetail, CharacterSheet, RollHistory stubs + + web/ — SvelteKit + adapter-static + - svelte.config.js, vite.config.ts, tsconfig.json, src/app.html + - src/lib/api.ts — access token in memory, refresh via HttpOnly cookie + - src/routes/+layout.svelte — silent token refresh on mount, redirects to /login if unauthenticated + - All routes stubbed: /, /login, /groups, /groups/[id], /groups/[id]/settings, /characters, /characters/[id] + + backend/ — Rust + Axum + - Cargo.toml with all specified dependencies + - src/main.rs — reads DATABASE_URL/JWT_SECRET, builds Axum router, CORS, tracing, binds :3000 + - src/lib.rs — module entrypoint + + Verification results: ✅ symbiote build → dist/ with index.html + manifest.json ✅ web build → SvelteKit static output + ✅ cargo check → no errors