{"_id":"@busirocket/tsconfig","_rev":"7-fa2d9996ce1af1d08131f83f3e3a7e10","name":"@busirocket/tsconfig","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@busirocket/tsconfig","version":"0.1.0","license":"MIT","_id":"@busirocket/tsconfig@0.1.0","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/VibraComet/tsconfig#readme","bugs":{"url":"https://github.com/VibraComet/tsconfig/issues"},"dist":{"shasum":"380170c8f11e4f33e89613c3803715420bf72913","tarball":"https://registry.npmjs.org/@busirocket/tsconfig/-/tsconfig-0.1.0.tgz","fileCount":9,"integrity":"sha512-IbrZkfm6ZjBrB0Ox1THzK2vOmnvCS2WfLtJtH6s1gQqrAxwAMdt3g1BsF/CpGLaG5hxqrItYsRllYxtwWw8GLQ==","signatures":[{"sig":"MEUCIGGzn92y3HEO2YUlSB6Z3RBmkDV+KnUlVTUc/sjCv5/gAiEAwtJccyfzQ9qTv/or49owgqJ5BxJ5MbIrvoe+6PjSGGk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5492},"engines":{"node":">=20"},"exports":{"./app.json":"./app.json","./base.json":"./base.json","./node.json":"./node.json","./astro.json":"./astro.json","./nextjs.json":"./nextjs.json","./vite-react.json":"./vite-react.json"},"gitHead":"0c9b9b078be1e9d97842cdd10f524c0000049d92","private":false,"scripts":{"fix":"prettier --write \"*.json\" --list-different","format:check":"prettier --check \"*.json\""},"_npmUser":{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"},"repository":{"url":"git+https://github.com/VibraComet/tsconfig.git","type":"git"},"_npmVersion":"11.12.1","description":"Shared TypeScript configuration baseline","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"prettier":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/tsconfig_0.1.0_1776102425430_0.14045027371565477","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/tsconfig. Install that instead."},"0.1.1":{"name":"@busirocket/tsconfig","version":"0.1.1","license":"MIT","_id":"@busirocket/tsconfig@0.1.1","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/tsconfig#readme","bugs":{"url":"https://github.com/BusiRocket/tsconfig/issues"},"dist":{"shasum":"1765ece355c56620c41b2bf575050d3602676e9f","tarball":"https://registry.npmjs.org/@busirocket/tsconfig/-/tsconfig-0.1.1.tgz","fileCount":9,"integrity":"sha512-UJH9u3AYQ8m9s5BUUQjJtZ+ofjgq/Sspy9f4f3xGco1fwvs2K4wDYiVek/2JY5xGRC5pyqmi4GQTMyocA82xlA==","signatures":[{"sig":"MEYCIQDP7d3WQ09GrEi0taUh5WbVv9ajMr36nMJzULt0OqwF5QIhAOnL4/U1azteyMqNvvhslryS4GrendtbjWv6+1oWRIbz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5492},"engines":{"node":">=20"},"exports":{"./app.json":"./app.json","./base.json":"./base.json","./node.json":"./node.json","./astro.json":"./astro.json","./nextjs.json":"./nextjs.json","./vite-react.json":"./vite-react.json"},"gitHead":"43b7ffe825f594747fb00f0f56cfe36cdb9d0176","private":false,"scripts":{"fix":"prettier --write \"*.json\" --list-different","format:check":"prettier --check \"*.json\""},"_npmUser":{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"},"repository":{"url":"git+https://github.com/BusiRocket/tsconfig.git","type":"git"},"_npmVersion":"11.12.1","description":"Shared TypeScript configuration baseline","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"prettier":"^3.8.2"},"_npmOperationalInternal":{"tmp":"tmp/tsconfig_0.1.1_1776127148151_0.5411290612058259","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/tsconfig. Install that instead."},"0.1.2":{"name":"@busirocket/tsconfig","version":"0.1.2","license":"MIT","_id":"@busirocket/tsconfig@0.1.2","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/tsconfig#readme","bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"dist":{"shasum":"45f46eabe6d94d4466acaa7459a70db2ffadee7a","tarball":"https://registry.npmjs.org/@busirocket/tsconfig/-/tsconfig-0.1.2.tgz","fileCount":10,"integrity":"sha512-H4BdBe3ykZVfyO5GE7Un41UFLLKVgSAWdqzArB+PMnJnqWUZ8nudtJZ8BMFpCVYJ1c+fX+BnXS4pq83YbeTMeQ==","signatures":[{"sig":"MEYCIQCjJyzHgX6Gl2prTlU6TVguNZDBK6SxQzYCMnuEJyzyAQIhAM9Of0vTtejiL6eds2SPSMZdy0p/2GQNNXCHupv/JEdy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@busirocket%2ftsconfig@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5737},"engines":{"node":">=20"},"exports":{"./app.json":"./app.json","./base.json":"./base.json","./node.json":"./node.json","./astro.json":"./astro.json","./nextjs.json":"./nextjs.json","./vite-vue.json":"./vite-vue.json","./vite-react.json":"./vite-react.json"},"private":false,"scripts":{"fix":"prettier --write \"*.json\" --list-different","format:check":"prettier --check \"*.json\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1ff0c3be-b7fa-45aa-a7c2-524b149af51c"}},"repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/tsconfig"},"description":"Shared TypeScript configuration baseline","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3"},"_npmOperationalInternal":{"tmp":"tmp/tsconfig_0.1.2_1780242998329_0.158972433735457","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/tsconfig. Install that instead."},"0.2.0":{"name":"@busirocket/tsconfig","version":"0.2.0","license":"MIT","_id":"@busirocket/tsconfig@0.2.0","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/tsconfig#readme","bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"dist":{"shasum":"33b8b997ef4ac3b71ac08b352df2b270de8dd8a9","tarball":"https://registry.npmjs.org/@busirocket/tsconfig/-/tsconfig-0.2.0.tgz","fileCount":11,"integrity":"sha512-XiHWd995jNQEK4cMFk/PWUWLlaI0KTx4Lxi/1k+SvZPXUIXSDbGM3I3Y4ctmHCNdEASQOEpmWca3OFB8ekGCSg==","signatures":[{"sig":"MEUCIQDw8bu5RttZHWylP84m9Fz2mMz5f8grVfNavgYgDYdHPgIgSlTNB70ZPwLTJlUrIQaXaHVSt0XqpXMSlf5WuqbEp9g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@busirocket%2ftsconfig@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6215},"engines":{"node":">=20"},"exports":{"./app.json":"./app.json","./base.json":"./base.json","./node.json":"./node.json","./astro.json":"./astro.json","./nestjs.json":"./nestjs.json","./nextjs.json":"./nextjs.json","./vite-vue.json":"./vite-vue.json","./vite-react.json":"./vite-react.json"},"private":false,"scripts":{"fix":"prettier --write \"*.json\" --list-different","format:check":"prettier --check \"*.json\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1ff0c3be-b7fa-45aa-a7c2-524b149af51c"}},"repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/tsconfig"},"description":"Shared TypeScript configuration baseline","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3"},"_npmOperationalInternal":{"tmp":"tmp/tsconfig_0.2.0_1780945968271_0.7612062523993848","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/tsconfig. Install that instead."},"0.2.1":{"name":"@busirocket/tsconfig","version":"0.2.1","license":"MIT","_id":"@busirocket/tsconfig@0.2.1","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/tsconfig#readme","bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"dist":{"shasum":"f4d43f50cea5d6585d0444bc4613f679608d9222","tarball":"https://registry.npmjs.org/@busirocket/tsconfig/-/tsconfig-0.2.1.tgz","fileCount":11,"integrity":"sha512-HYFnVC8ay0+NujmyuFqdpNu6yplGz845x9IT4bLyJYURY8ckHccj5tAuOmvopp71vIyC2bMn/xPUueihQLZ3bQ==","signatures":[{"sig":"MEUCIQDZD11OvuxMq+UpvSf6ZilEQzmHP6Ym8CxgIfARIZjO0wIgK+abRWkV+GYCIus62upor6irUz/bv9EbN7D7BqIs1xE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@busirocket%2ftsconfig@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6356},"engines":{"node":">=20"},"exports":{"./app.json":"./app.json","./base.json":"./base.json","./node.json":"./node.json","./astro.json":"./astro.json","./nestjs.json":"./nestjs.json","./nextjs.json":"./nextjs.json","./vite-vue.json":"./vite-vue.json","./vite-react.json":"./vite-react.json"},"private":false,"scripts":{"fix":"prettier --write \"*.json\" --list-different","format:check":"prettier --check \"*.json\"","publish:check":"publint --strict && attw --pack . --profile node16"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1ff0c3be-b7fa-45aa-a7c2-524b149af51c"}},"repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/tsconfig"},"description":"Shared TypeScript configuration baseline","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"publint":"^0.3.22","prettier":"^3.9.6","@arethetypeswrong/cli":"^0.18.5"},"_npmOperationalInternal":{"tmp":"tmp/tsconfig_0.2.1_1785756355310_0.6349848531174513","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/tsconfig. Install that instead."},"0.3.0":{"name":"@busirocket/tsconfig","version":"0.3.0","license":"MIT","_id":"@busirocket/tsconfig@0.3.0","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/tsconfig#readme","bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"dist":{"shasum":"0436b198695e21bfa0d3b7f86d44525a4d27ca33","tarball":"https://registry.npmjs.org/@busirocket/tsconfig/-/tsconfig-0.3.0.tgz","fileCount":11,"integrity":"sha512-sBk+/ET1BBxW+a3T7Ox280x/qpm2Bn5pMO99UFkz68a8b2IwBuy7ecTaG7FoBQ1UhIo2aoltgdF5HFXPMTcwRg==","signatures":[{"sig":"MEYCIQC8b3fUeFfxu8haOHRnyJcygJb40at//02wc7f4h01f9wIhANtRZhMnsG5VbaxbFDc/090fXpFFREgvUNlSfVKT1odX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@busirocket%2ftsconfig@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9750},"engines":{"node":">=20"},"exports":{"./app.json":"./app.json","./base.json":"./base.json","./node.json":"./node.json","./astro.json":"./astro.json","./nestjs.json":"./nestjs.json","./nextjs.json":"./nextjs.json","./vite-vue.json":"./vite-vue.json","./vite-react.json":"./vite-react.json"},"private":false,"scripts":{"fix":"prettier --write \"*.json\" --list-different","format:check":"prettier --check \"*.json\"","publish:check":"baseline-licenses && publint --strict && attw --pack . --profile node16"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1ff0c3be-b7fa-45aa-a7c2-524b149af51c"}},"repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/tsconfig"},"description":"Shared TypeScript configuration baseline","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"publint":"^0.3.24","prettier":"^3.9.6","@arethetypeswrong/cli":"^0.18.5"},"_npmOperationalInternal":{"tmp":"tmp/tsconfig_0.3.0_1788169959806_0.03625239327442964","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @syntopica/tsconfig. Install that instead."}},"time":{"created":"2026-04-13T17:47:05.302Z","modified":"2026-09-14T07:10:15.026Z","0.1.0":"2026-04-13T17:47:05.575Z","0.1.1":"2026-04-14T00:39:08.276Z","0.1.2":"2026-05-31T15:56:38.518Z","0.2.0":"2026-06-08T19:12:48.401Z","0.2.1":"2026-08-03T11:25:55.439Z","0.3.0":"2026-08-31T09:52:39.937Z"},"bugs":{"url":"https://github.com/BusiRocket/baseline/issues"},"license":"MIT","homepage":"https://github.com/BusiRocket/baseline/tree/main/packages/tsconfig#readme","repository":{"url":"git+https://github.com/BusiRocket/baseline.git","type":"git","directory":"packages/tsconfig"},"description":"Shared TypeScript configuration baseline","maintainers":[{"name":"cristiandeluxe","email":"me@cristiandeluxe.dev"}],"readme":"# @busirocket/tsconfig\n\nShared TypeScript `extends` presets for apps and libraries (Next.js, Astro,\nVite + React, Node).\n\n## Requirements\n\n- Node.js 20+\n- TypeScript 5.4+ (align with your project)\n\n## Install\n\n```bash\npnpm add -D @busirocket/tsconfig@^0.1.0 typescript\n```\n\n## Exports\n\n| Subpath             | Use case           |\n| ------------------- | ------------------ |\n| `./base.json`       | Strict baseline    |\n| `./app.json`        | Browser / app TS   |\n| `./nextjs.json`     | Next.js App Router |\n| `./astro.json`      | Astro              |\n| `./vite-react.json` | Vite + React       |\n| `./node.json`       | Node libraries     |\n\n## The two root shapes\n\nThere are exactly two correct shapes, and they are opposites. Getting this wrong\nis not a style problem: `baseline-type-coverage` (`@busirocket/quality-config`\n0.10.0+) walks a solution root's `references` to find the projects it measures,\nso a root that extends a preset instead of referencing hands the runner one\nproject and hides the rest. That exact shape once made the runner answer\n`type-coverage: ok . 0 / 0` over an entire repository, and\n`create-baseline --check` now reports both mistakes (`tsconfig-project:*` and\n`tsconfig-preset:*` findings).\n\n**Single project** - one tsconfig, and it extends the preset directly:\n\n```json\n{\n  \"extends\": \"@busirocket/tsconfig/nextjs.json\",\n  \"compilerOptions\": {\n    \"paths\": { \"@/*\": [\"./src/*\"] }\n  },\n  \"include\": [\"next-env.d.ts\", \"**/*.ts\", \"**/*.tsx\", \".next/types/**/*.ts\"]\n}\n```\n\n**Multiple projects** - the root stays solution-style and the presets go on the\nleaves. The root itself must NOT extend a preset:\n\n```json\n{\n  \"files\": [],\n  \"references\": [\n    { \"path\": \"./tsconfig.app.json\" },\n    { \"path\": \"./tsconfig.node.json\" }\n  ]\n}\n```\n\nEvery leaf (`tsconfig.app.json`, `tsconfig.node.json`, ...) extends the preset\nthat matches its runtime, exactly like the single-project example. A\nhand-written leaf silently drops the baseline's strictness - no\n`noUncheckedIndexedAccess`, no `exactOptionalPropertyTypes` - while the\nrepository still carries the dependency and looks adopted.\n\n`type-check` must reach every referenced project: either a bare `tsc -b` at the\nroot, or one `tsc -p <project> --noEmit` per reference. A script that names only\nsome of the references leaves the rest out of CI entirely, and nothing else will\ntell you.\n\n## Next.js notes\n\n**Never include `.next/dev/types` in a project the gate compiles.** The example\nabove names `.next/types/**/*.ts`, written by `next build`, and that is the only\n`.next` path that belongs in `include`. Next 16 also writes `.next/dev/types`\nduring `next dev`, and a stale or half-written `validator.ts` there fails to\nparse (`TS1434: Unexpected keyword or identifier`). Because the failure lands on\na gitignored dev artifact rather than any source file, it looks unfixable, and\nthe reasonable-looking response is to drop the whole Next project from\n`type-check` - which is how a repository loses its largest project from the\ngate.\n\n**Next does not rewrite a tsconfig this preset has completed.** The comment\nconsumers put above their Next tsconfig in `.prettierignore` - \"Next rewrites\nthis file on every build\" - is wrong once the preset is in place:\n`writeConfigurationDefaults` only writes options missing from the resolved\nconfig, and the preset supplies them all. Verified through the real path:\n`next build` exits 0, `next dev` boots, and both leave the file byte-identical.\nA repository on the preset can take that file out of `.prettierignore` and have\nit formatted like everything else.\n\n## Repository\n\nSource and issues:\n[github.com/BusiRocket/tsconfig](https://github.com/BusiRocket/tsconfig).\n\nBroader adoption docs:\n[engineering-baseline](https://github.com/BusiRocket/engineering-baseline).\n","readmeFilename":""}