{"_id":"@aggreggator-labs/config-typescript","name":"@aggreggator-labs/config-typescript","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@aggreggator-labs/config-typescript","version":"0.0.1","description":"Shared TypeScript compiler options for aggreggator-labs repositories - extend tsconfig.base.json from a repo-local tsconfig.json","main":"tsconfig.base.json","exports":{".":"./tsconfig.base.json","./tsconfig.base.json":"./tsconfig.base.json"},"repository":{"type":"git","url":"git+https://github.com/aggreggator-labs/dotfiles.git","directory":"npm/config-typescript"},"keywords":["typescript","tsconfig","config"],"license":"MIT","peerDependencies":{"typescript":">=5.4"},"publishConfig":{"access":"public"},"gitHead":"5e3d070df03f0757a25ca989fd9cc4e48590b8f9","_id":"@aggreggator-labs/config-typescript@0.0.1","bugs":{"url":"https://github.com/aggreggator-labs/dotfiles/issues"},"homepage":"https://github.com/aggreggator-labs/dotfiles#readme","_nodeVersion":"26.8.1","_npmVersion":"11.19.0","dist":{"integrity":"sha512-qSgUn5eSjhI/rLd0t91v2tWmpVh689HJVBP4Eq2QLnMQzg19/LAmQWJKtIWRvShKg/4fJ7YY++fzG667AqqB0w==","shasum":"5fd7e5bf741166eaf88b659a2659a2056ba27f5f","tarball":"https://registry.npmjs.org/@aggreggator-labs/config-typescript/-/config-typescript-0.0.1.tgz","fileCount":3,"unpackedSize":3597,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDbkYcXd5J46rlTq59Jm5X4bOwKmrSeuJmG6/7fe9p54QIgP3wHlhfDKEf06tDHNOojSDmYVu8JD4nz+O2zjpq/tqM="}]},"_npmUser":{"name":"aggreggator-labs","email":"labs-npmjs@aggreggator.de"},"directories":{},"maintainers":[{"name":"aggreggator-labs","email":"labs-npmjs@aggreggator.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/config-typescript_0.0.1_1788576326869_0.1762641030111669"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-05T02:45:26.680Z","0.0.1":"2026-09-05T02:45:27.025Z","modified":"2026-09-05T02:45:27.376Z"},"maintainers":[{"name":"aggreggator-labs","email":"labs-npmjs@aggreggator.de"}],"description":"Shared TypeScript compiler options for aggreggator-labs repositories - extend tsconfig.base.json from a repo-local tsconfig.json","homepage":"https://github.com/aggreggator-labs/dotfiles#readme","keywords":["typescript","tsconfig","config"],"repository":{"type":"git","url":"git+https://github.com/aggreggator-labs/dotfiles.git","directory":"npm/config-typescript"},"bugs":{"url":"https://github.com/aggreggator-labs/dotfiles/issues"},"license":"MIT","readme":"# @aggreggator-labs/config-typescript\n\nThe shared TypeScript compiler options for aggreggator-labs\nrepositories. `tsconfig.base.json` is the source of truth; a\nrepository extends it from its own `tsconfig.json` and adds only\nwhat describes its tree.\n\n## Usage\n\n```bash\nbun add -d @aggreggator-labs/config-typescript typescript\n```\n\nRoot `tsconfig.json`:\n\n```json\n{\n  \"extends\": \"@aggreggator-labs/config-typescript/tsconfig.base.json\",\n  \"compilerOptions\": { \"types\": [\"node\", \"bun\"] },\n  \"include\": [\"src/**/*\"]\n}\n```\n\nThe base carries no `include`, `exclude`, `paths`, `types` or\n`jsx`: each of these describes one repository and lives in its\nfile. The same goes for `allowJs`, `allowImportingTsExtensions`,\nand for `outDir` and `rootDir`, which matter only once a consumer\nturns `noEmit` back off. `typescript` 5.4 or newer is the\nconsumer's to install; `module` `Preserve` arrived with 5.4.\n\n## Options\n\n- `lib` and `target` `ESNext` - the runtime is Bun or a current\n  Node, and a bundler lowers what it must\n- `module` `Preserve`, `moduleResolution` `bundler`,\n  `moduleDetection` `force` - every file is a module, imports are\n  left as written and resolved the way a bundler does;\n  `esModuleInterop` follows from `module` `Preserve`\n- `verbatimModuleSyntax` - a type-only import is written as\n  `import type`, so what the compiler drops is visible in the\n  source\n- `noEmit` - the type check is the job; emitting is a bundler's\n- `strict`, `skipLibCheck`\n- `noFallthroughCasesInSwitch`, `noUncheckedIndexedAccess`,\n  `noImplicitOverride`\n- `noUnusedLocals`, `noUnusedParameters`,\n  `noPropertyAccessFromIndexSignature` off - ESLint's\n  `unused-imports` rules report unused names once, as warnings,\n  and index signatures are read with dot access\n\n## Publishing\n\nReleases are staged, never pushed live by a machine. A push to\n`main` with a new version in `package.json` runs\n`.github/workflows/publish-npm.yml` in the dotfiles repository,\nwhich stages the version on npmjs through trusted publishing\n(GitHub OIDC, no token; no provenance, which npm attaches only\nfor public source repositories). A maintainer then approves it\nwith two-factor authentication - `npm stage approve` or the\npackage page - and only then is it on the registry. An unchanged\nversion stages nothing and says so. Bump the version here to\nrelease; patch bumps (`0.0.x`) by default.\n","readmeFilename":"README.md","_rev":"1-fd17ae0c11ebb7e27993c9afe2e2cec1"}