@williamthorsen/tsconfig 0.8.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,17 +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.8.0 (2026-09-06)
6
+ ## Release notes — v0.9.0 (2026-09-08)
7
7
 
8
8
  ### 🎉 Features
9
9
 
10
- - 🚨 **Breaking:** Require a relative specifier to name its TypeScript source (#209)
10
+ - 🚨 **Breaking:** Stop exempting vitest from n/no-extraneous-import (#219)
11
11
 
12
- - Adds an `import-x/resolver` default to `@williamthorsen/eslint-config-typescript`. The default sets `extensionAlias` and is scoped to TypeScript files, so `import-x/no-cycle` reports a cycle among specifiers ending in `.js` and a JavaScript source still resolves `./b.js` to `b.js`.
13
- - Raises the `typescript` peer range to `>=5.7`, the first version in which a project emitting with `tsc` can write the required spelling.
14
- - Sets `rewriteRelativeImportExtensions` in `@williamthorsen/tsconfig`'s base, so that a build that clears `noEmit` compiles a TypeScript-extension import.
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.
15
13
 
16
- Migration: Upgrade `typescript` to 5.7 or later, rewrite each relative specifier naming a TypeScript file to end in that file's own extension (`./b.ts`, not `./b.js`), and in the tsconfig owning those sources set `allowImportingTsExtensions` alongside `noEmit` or `emitDeclarationOnly`, or set `rewriteRelativeImportExtensions`. Do the rewrite by hand or with a codemod, and do not apply the editor suggestion that `import-x/extensions` offers: it appends the resolved extension rather than replacing the written one, turning `./b.js` into `./b.js.ts`. `docs/migrating-to-v15.md` walks through each step.
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.
17
15
  <!-- /section:release-notes -->
18
16
 
19
17
  ## Installation
@@ -82,9 +80,9 @@ The base declares none of these:
82
80
 
83
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.
84
82
 
85
- ## Checking your configuration
83
+ ## Checking the configuration
86
84
 
87
- 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.
88
86
 
89
87
  Run it once:
90
88
 
@@ -92,7 +90,7 @@ Run it once:
92
90
  pnpm exec rdy run --from npm:@williamthorsen/tsconfig
93
91
  ```
94
92
 
95
- 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`:
96
94
 
97
95
  ```ts
98
96
  import { defineRdyConfig } from 'readyup';
@@ -109,10 +107,10 @@ The kit walks each workspace tsconfig's `extends` chain and reports five things:
109
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.
110
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.
111
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.
112
- - **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.
113
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.
114
112
 
115
- 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.
116
114
 
117
115
  ## License
118
116
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@williamthorsen/tsconfig",
3
- "version": "0.8.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"