{"_id":"@acamarata/tsconfig","name":"@acamarata/tsconfig","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@acamarata/tsconfig","version":"0.1.0","description":"Shared TypeScript configs for acamarata packages. Four variants: base, library, node, and react.","author":{"name":"Aric Camarata"},"license":"MIT","exports":{"./tsconfig.base.json":"./tsconfig.base.json","./tsconfig.library.json":"./tsconfig.library.json","./tsconfig.node.json":"./tsconfig.node.json","./tsconfig.react.json":"./tsconfig.react.json","./package.json":"./package.json"},"scripts":{"test":"node scripts/validate-json.mjs"},"engines":{"node":">=20"},"repository":{"type":"git","url":"git+https://github.com/acamarata/tsconfig.git"},"homepage":"https://github.com/acamarata/tsconfig#readme","bugs":{"url":"https://github.com/acamarata/tsconfig/issues"},"keywords":["typescript","tsconfig","config","acamarata"],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"packageManager":"pnpm@10.11.1","_id":"@acamarata/tsconfig@0.1.0","gitHead":"47b729f6c7671251b9324cb22c583177bc7a5266","_nodeVersion":"24.6.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-bgzyBak43mE+0HhduZX3cvaPjKcggtGGZZMjr35qtYWolsIWgZ9nx7OOswbVYoU35qoUv6rZ0mTK6GbZ8QTYjw==","shasum":"ad03ed030eacedece11ad44baef8075369c83340","tarball":"https://registry.npmjs.org/@acamarata/tsconfig/-/tsconfig-0.1.0.tgz","fileCount":8,"unpackedSize":6353,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICpO0vRf2ZsaM0yox8oDlRhOTF/uUQTsqvm6hy283h7ZAiAyMBC9LoWn+Ow4MxgBqER/WmsvxDrkkHUZAOdfILu5JA=="}]},"_npmUser":{"name":"acamarata","email":"alisalaah@gmail.com"},"directories":{},"maintainers":[{"name":"acamarata","email":"alisalaah@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tsconfig_0.1.0_1779990272771_0.20469137282867322"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-28T17:44:32.652Z","0.1.0":"2026-05-28T17:44:32.890Z","modified":"2026-05-28T17:44:33.069Z"},"maintainers":[{"name":"acamarata","email":"alisalaah@gmail.com"}],"description":"Shared TypeScript configs for acamarata packages. Four variants: base, library, node, and react.","homepage":"https://github.com/acamarata/tsconfig#readme","keywords":["typescript","tsconfig","config","acamarata"],"repository":{"type":"git","url":"git+https://github.com/acamarata/tsconfig.git"},"author":{"name":"Aric Camarata"},"bugs":{"url":"https://github.com/acamarata/tsconfig/issues"},"license":"MIT","readme":"# @acamarata/tsconfig\n\nShared TypeScript configs for acamarata packages. Four variants covering the common cases: a strict base, a publishable library, a Node.js tool, and a React app.\n\n## Install\n\n```sh\npnpm add -D @acamarata/tsconfig\n```\n\n## Variants\n\n| Config | Extends | Use case |\n|--------|---------|----------|\n| `tsconfig.base.json` | — | Strict base. All other variants extend this. Use it directly only if none of the others fit. |\n| `tsconfig.library.json` | base | Publishable npm libraries. ESNext modules, `declaration: true`, `declarationMap: true`, `sourceMap: true`. |\n| `tsconfig.node.json` | base | Node.js tools and scripts. CommonJS output, `@types/node` included. |\n| `tsconfig.react.json` | base | React apps. Adds `jsx: react-jsx` and the DOM lib. |\n\n## Usage\n\nIn your `tsconfig.json`, set `extends` to the variant that matches your project:\n\n```json\n{\n  \"extends\": \"@acamarata/tsconfig/tsconfig.library.json\",\n  \"compilerOptions\": {\n    \"rootDir\": \"src\"\n  },\n  \"include\": [\"src\"]\n}\n```\n\nFor a Node.js CLI tool:\n\n```json\n{\n  \"extends\": \"@acamarata/tsconfig/tsconfig.node.json\",\n  \"compilerOptions\": {\n    \"rootDir\": \"src\"\n  },\n  \"include\": [\"src\"]\n}\n```\n\nFor a React app:\n\n```json\n{\n  \"extends\": \"@acamarata/tsconfig/tsconfig.react.json\",\n  \"include\": [\"src\"]\n}\n```\n\n## What the base config enables\n\n- `strict: true` — the full strict family of checks\n- `skipLibCheck: true` — skips checking declaration files in `node_modules`\n- `noUncheckedIndexedAccess: true` — array index access includes `undefined` in the type\n- `exactOptionalPropertyTypes: true` — distinguishes `{ x?: string }` from `{ x: string | undefined }`\n- `target: ES2022` — modern output; no polyfill overhead for `async/await`, `class fields`, `at()`\n- `moduleResolution: bundler` — resolves `.ts` extensions naturally in bundler pipelines (tsup, Vite, esbuild)\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-d3fd1344dc78e59b6022301fad21485c"}