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>
38 lines
1.1 KiB
JSON
38 lines
1.1 KiB
JSON
{
|
|
"compilerOptions": {
|
|
"target": "ES2022",
|
|
"lib": ["ES2022", "DOM", "DOM.Iterable"],
|
|
"module": "ESNext",
|
|
"moduleResolution": "bundler",
|
|
"types": ["node", "vite/client"],
|
|
|
|
"strict": true,
|
|
"noUncheckedIndexedAccess": true,
|
|
"noImplicitOverride": true,
|
|
"noFallthroughCasesInSwitch": true,
|
|
"exactOptionalPropertyTypes": false,
|
|
|
|
"jsx": "react-jsx",
|
|
"resolveJsonModule": true,
|
|
"isolatedModules": true,
|
|
"verbatimModuleSyntax": true,
|
|
"skipLibCheck": true,
|
|
"esModuleInterop": true,
|
|
"allowJs": true,
|
|
"checkJs": false,
|
|
"noEmit": true,
|
|
|
|
// lib/ ships unchanged; its types live alongside in types/lib/.
|
|
// Vite resolves the same specifiers to the real .js modules.
|
|
"baseUrl": ".",
|
|
"paths": {
|
|
"@lib/*": ["./types/lib/*"],
|
|
"@data/*": ["./data/*"],
|
|
"@app/*": ["./app/src/*"],
|
|
"@shared/*": ["./types/shared/*"]
|
|
}
|
|
},
|
|
"include": ["app/src", "test", "types", "app/vite.config.ts", "vitest.config.ts"],
|
|
"exclude": ["node_modules", "dist", "export", "vendor", "android", "app/android"]
|
|
}
|