@williamthorsen/tsconfig 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /** @noformat -- @generated. Do not edit. Compiled by rdy. */
2
2
  /* eslint-disable */
3
- export const __readyupVersion = "0.35.0";
3
+ export const __readyupVersion = "0.35.1";
4
4
 
5
5
 
6
6
  // .readyup/kits/default.ts
@@ -53,10 +53,10 @@
53
53
  ],
54
54
  "name": "default",
55
55
  "path": "kits/default.js",
56
- "readyupVersion": "0.35.0",
56
+ "readyupVersion": "0.35.1",
57
57
  "source": "kits/default.ts",
58
58
  "sourceHash": "f4ec4ffd",
59
- "targetHash": "2bcc6e9b"
59
+ "targetHash": "9949c309"
60
60
  }
61
61
  ]
62
62
  }
package/README.md CHANGED
@@ -3,13 +3,15 @@
3
3
  Shared TypeScript base config for Node-only projects. Inlines the settings of [`@tsconfig/strictest`](https://www.npmjs.com/package/@tsconfig/strictest) and adds the Node and build options it leaves out, so a consuming repo declares only what is genuinely its own.
4
4
 
5
5
  <!-- section:release-notes -->
6
- ## Release notes — v0.7.0 (2026-08-30)
6
+ ## Release notes — v0.9.0 (2026-09-08)
7
7
 
8
8
  ### 🎉 Features
9
9
 
10
- - Report an include, exclude, or files path outside a tsconfig's directory (#197)
10
+ - 🚨 **Breaking:** Stop exempting vitest from n/no-extraneous-import (#219)
11
11
 
12
- Adds a `hygiene` checklist to the `@williamthorsen/tsconfig` readiness kit, reporting at `warn` a workspace tsconfig whose effective `include`, `exclude`, or `files` names a path outside the directory holding it, whether that config declared the field itself or inherited it from a base.
12
+ - Removes the `allowModules: ['vitest']` option from `n/no-extraneous-import`, so the rule now reports `vitest` in any workspace whose own `package.json` does not declare it.
13
+
14
+ Migration: Declare `vitest` in the `devDependencies` of every workspace that imports it; in a pnpm workspace, a catalog entry (`"vitest": "catalog:"`) declares it without repeating the version. To keep the old behavior instead, set `'n/no-extraneous-import': ['error', { allowModules: ['vitest'] }]` in the consuming config's own `rules` block.
13
15
  <!-- /section:release-notes -->
14
16
 
15
17
  ## Installation
@@ -78,9 +80,9 @@ The base declares none of these:
78
80
 
79
81
  The base sets `noEmit: true`, on the assumption that a separate build step owns emit. A consumer that builds with this config directly must override `noEmit` and, if it keeps `allowImportingTsExtensions`, pair that with `rewriteRelativeImportExtensions` so `./foo.ts` specifiers survive the rewrite.
80
82
 
81
- ## Checking your configuration
83
+ ## Checking the configuration
82
84
 
83
- This package ships a [ReadyUp](https://www.npmjs.com/package/readyup) kit that checks whether your tsconfigs are wired for the version you have installed. It is a migration aid rather than a CI gate: only a Node floor too old to run the base's ES year is reported as an error, and everything else caps at a warning.
85
+ This package ships a [ReadyUp](https://www.npmjs.com/package/readyup) kit that checks whether the workspace tsconfigs are wired for the installed version. It is a migration aid rather than a CI gate: only a Node floor too old to run the base's ES year is reported as an error, and everything else caps at a warning.
84
86
 
85
87
  Run it once:
86
88
 
@@ -88,7 +90,7 @@ Run it once:
88
90
  pnpm exec rdy run --from npm:@williamthorsen/tsconfig
89
91
  ```
90
92
 
91
- Or list it in `.config/readyup.config.ts` to include it whenever you run `rdy run --packages`:
93
+ Or list it in `.config/readyup.config.ts` to include it in every `rdy run --packages`:
92
94
 
93
95
  ```ts
94
96
  import { defineRdyConfig } from 'readyup';
@@ -105,10 +107,10 @@ The kit walks each workspace tsconfig's `extends` chain and reports five things:
105
107
  - **Adoption**: a tsconfig reaching neither this base nor a framework base. A tsconfig naming this base through a specifier that does not resolve is reported separately, as declared but not installed.
106
108
  - **Re-declaration**: an option restated with the base's own value. A key that a framework base in the same chain also declares is exempt, since restating it is how a config wins against that base.
107
109
  - **Escaping paths**: an `include`, `exclude`, or `files` path resolving outside the directory that holds the tsconfig. A config that is extended hands these fields down resolved against its own directory, so a package inheriting them is governed by paths pointing outside itself; the remedy is a complete local declaration, or `${configDir}` in the config being extended.
108
- - **ES year**: a `target` or `lib` declaring a year other than the base's, read from the base you extend rather than from a constant compiled into the kit.
110
+ - **ES year**: a `target` or `lib` declaring a year other than the base's, read from the base that the tsconfig extends rather than from a constant compiled into the kit.
109
111
  - **Node floor**: an `engines.node` below the major that implements that ES year. This is the one failure `tsc` cannot surface on its own, which is why it alone is an error.
110
112
 
111
- The kit runs at the version resolved from your `node_modules`, so it reports whether your configuration matches that version. It never reports whether that version is current.
113
+ The kit runs at the version resolved from the project's `node_modules`, so it reports whether the configuration matches that version. It never reports whether that version is current.
112
114
 
113
115
  ## License
114
116
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@williamthorsen/tsconfig",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "Shared TypeScript base config for Node-only projects",
5
5
  "keywords": [
6
6
  "tsconfig",
@@ -31,7 +31,8 @@
31
31
  "devDependencies": {
32
32
  "@tsconfig/strictest": "2.0.8",
33
33
  "esbuild": "0.28.2",
34
- "readyup": "0.35.0"
34
+ "readyup": "0.35.1",
35
+ "vitest": "4.1.11"
35
36
  },
36
37
  "peerDependencies": {
37
38
  "readyup": ">=0.33.0"
@@ -28,6 +28,9 @@
28
28
 
29
29
  // Permit `./foo.ts` specifiers; the build step rewrites them on emit.
30
30
  "allowImportingTsExtensions": true,
31
+ // The option TypeScript requires alongside the one above once a build clears `noEmit` and emits with
32
+ // `tsc`, which rewrites the specifier's extension in output and declarations.
33
+ "rewriteRelativeImportExtensions": true,
31
34
  // Without this, `lib` follows `target` into the `.full` variant, admitting DOM globals.
32
35
  // `ESNext.Disposable` carries the explicit-resource-management declarations; no numbered lib has them.
33
36
  "lib": ["ES2025", "ESNext.Disposable"],