The export bundle is the input to this port, not a sketch: the curriculum, the tutor prompt and the five logic modules are finished and tested. They land here byte-identical and stay that way. diff -r export/data data && diff -r export/lib lib diff -r export/prompt prompt && diff export/validate.mjs validate.mjs data/, lib/, prompt/ and validate.mjs sit at the repo root so validate.mjs runs verbatim with no path edits. All four are excluded from lint and formatting — they are not ours to restyle. Types for lib/ live alongside in types/ rather than as sibling .d.ts files, so the verbatim check stays a plain directory diff. CI runs the curriculum gate first, before anything else can pass: node validate.mjs PASS — 0 blocking, 0 advisory Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
24 lines
626 B
TypeScript
24 lines
626 B
TypeScript
import { defineConfig } from "vitest/config";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
const at = (p: string) => fileURLToPath(new URL(p, import.meta.url));
|
|
|
|
export default defineConfig({
|
|
resolve: {
|
|
alias: {
|
|
// The declarations live in types/lib/; the code is the verbatim lib/.
|
|
"@lib": at("./lib"),
|
|
"@data": at("./data"),
|
|
"@app": at("./app/src"),
|
|
"@shared": at("./shared"),
|
|
"@prompt": at("./prompt"),
|
|
},
|
|
},
|
|
test: {
|
|
include: ["test/**/*.test.ts"],
|
|
environment: "node",
|
|
// sqlite-wasm loads a .wasm file; give the db suite room.
|
|
testTimeout: 30_000,
|
|
},
|
|
});
|