{"_id":"@anacare/tsconfig","name":"@anacare/tsconfig","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@anacare/tsconfig","version":"0.1.0","description":"Shared TypeScript configuration presets for the Ana Care platform monorepo. Five presets: base (strict baseline), library (publishable packages), nextjs, expo, nestjs. Published per ADR-0014.","license":"UNLICENSED","author":{"name":"Ana Care","email":"platform@ana.care","url":"https://ana.care"},"homepage":"https://github.com/anacare/ana-platform/tree/main/packages/tsconfig#readme","repository":{"type":"git","url":"git+https://github.com/anacare/ana-platform.git","directory":"packages/tsconfig"},"bugs":{"url":"https://github.com/anacare/ana-platform/issues"},"keywords":["typescript","tsconfig","monorepo","anacare","config","preset"],"exports":{"./base":"./base.json","./library":"./library.json","./nextjs":"./nextjs.json","./expo":"./expo.json","./nestjs":"./nestjs.json"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_id":"@anacare/tsconfig@0.1.0","_integrity":"sha512-TIwgtrHSSkwewSRNjKJp4SIRZh0KGDkIej5cbnZr4/LcxVn080nc91QYLSddnSxmSRnllQIBo0VUEW6lxVJ2HQ==","_resolved":"/tmp/1a677f21a6be7c92c7143287afa0effa/anacare-tsconfig-0.1.0.tgz","_from":"file:anacare-tsconfig-0.1.0.tgz","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-TIwgtrHSSkwewSRNjKJp4SIRZh0KGDkIej5cbnZr4/LcxVn080nc91QYLSddnSxmSRnllQIBo0VUEW6lxVJ2HQ==","shasum":"3442d5f41548e9556dba67799469ebc588190bfc","tarball":"https://registry.npmjs.org/@anacare/tsconfig/-/tsconfig-0.1.0.tgz","fileCount":9,"unpackedSize":9480,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCIPETkA6Ab11+EX0ER3B/MpM1n/ETq5QGqSmOQY6QvAwIhAJGWpwbrlkpAa+Ttenu34/92oo9JpBN4g5ut47r800j1"}]},"_npmUser":{"name":"lucioduran","email":"email@lucioduran.com"},"directories":{},"maintainers":[{"name":"lucioduran","email":"email@lucioduran.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tsconfig_0.1.0_1781175591255_0.21189855159296345"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-11T10:59:51.099Z","0.1.0":"2026-06-11T10:59:51.410Z","modified":"2026-06-11T10:59:51.618Z"},"maintainers":[{"name":"lucioduran","email":"email@lucioduran.com"}],"description":"Shared TypeScript configuration presets for the Ana Care platform monorepo. Five presets: base (strict baseline), library (publishable packages), nextjs, expo, nestjs. Published per ADR-0014.","homepage":"https://github.com/anacare/ana-platform/tree/main/packages/tsconfig#readme","keywords":["typescript","tsconfig","monorepo","anacare","config","preset"],"repository":{"type":"git","url":"git+https://github.com/anacare/ana-platform.git","directory":"packages/tsconfig"},"author":{"name":"Ana Care","email":"platform@ana.care","url":"https://ana.care"},"bugs":{"url":"https://github.com/anacare/ana-platform/issues"},"license":"UNLICENSED","readme":"# `@anacare/tsconfig` — Shared TypeScript presets\n\n> **Status: in use from day 0.** This is the only `packages/*` that has\n> real content today; everything else is a placeholder until Round 8.\n\nThe single source of truth for TypeScript compiler configuration in the\nmonorepo. Every `tsconfig.json` in `apps/*` and `packages/*` (other than\n`@anacare/tsconfig` itself) extends one of the presets here.\n\n## Presets\n\n| Preset | Use in | Key differences from `base` |\n|---|---|---|\n| [`base.json`](base.json) | Not used directly — the canonical foundation that every other preset extends. | `strict: true` + the seven strict-extra flags. Bundler module resolution. ESM-friendly. |\n| [`library.json`](library.json) | `packages/*` (other than this one) | Emits `dist/`, declarations, source maps. ESNext module. |\n| [`nextjs.json`](nextjs.json) | `apps/web-admin`, `apps/client-dashboard` | DOM lib. JSX preserve (Next compiles). `noEmit: true`. Next plugin. |\n| [`expo.json`](expo.json) | `apps/mobile` | React Native types. JSX `react-jsx`. `noEmit: true`. |\n| [`nestjs.json`](nestjs.json) | `apps/api` | CommonJS module. Node moduleResolution. Decorator metadata enabled. `verbatimModuleSyntax: false` (decorators need elision). |\n\n## How to extend\n\nIn a consumer `tsconfig.json`:\n\n```jsonc\n{\n  \"extends\": \"@anacare/tsconfig/library\",\n  \"compilerOptions\": {\n    // Only override what genuinely needs to be different.\n    \"paths\": {\n      \"@/*\": [\"./src/*\"]\n    }\n  },\n  \"include\": [\"src\"]\n}\n```\n\nThe `extends` path uses the package's `exports` field\n([package.json](package.json)). TypeScript 5+ resolves these natively.\n\n## Editing rules\n\n- **Changes to `base.json` ripple to every project.** Open an ADR if the\n  change tightens or loosens a strict flag. Loosening a flag is rarely\n  the right answer; usually we add per-app `// @ts-expect-error` with a\n  comment, or fix the code.\n- Per-app overrides belong in the app's own `tsconfig.json`, not here.\n- **Never** remove a flag from `base.json` without an ADR. The flags\n  catch real bugs in clinical and financial code paths.\n\n## Why not just put presets in the repo root?\n\nA package gives us:\n\n- Versioning via Changesets — a breaking change to `base.json` is a\n  `major` bump that consumers explicitly accept.\n- Clean import path (`@anacare/tsconfig/library`) vs fragile relative\n  paths (`../../../tsconfig.base.json`).\n- A natural place to add adjacent helpers (e.g., `@anacare/tsconfig/types`\n  with shared ambient declarations) without sprawling the root.\n","readmeFilename":"README.md","_rev":"1-d04e5b2d2cf647cd9e405dea235b4eb2"}