@williamthorsen/tsconfig 0.11.0 → 0.12.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,4 +1,38 @@
1
1
  [
2
+ {
3
+ "version": "0.12.0",
4
+ "date": "2026-10-18",
5
+ "sections": [
6
+ {
7
+ "title": "🎉 Features",
8
+ "audience": "all",
9
+ "items": [
10
+ {
11
+ "description": "Adds `ESNext.Array` to the `lib` in `tsconfig.base.json`, so that a call to `Array.fromAsync`, which `unicorn/prefer-array-from-async` recommends, typechecks without a local `lib` override. (#284)",
12
+ "hash": "2d85c299036a8dbd6b385a976398d477ee6c5b83",
13
+ "entry": 1
14
+ }
15
+ ]
16
+ }
17
+ ]
18
+ },
19
+ {
20
+ "version": "0.11.1",
21
+ "date": "2026-10-17",
22
+ "sections": [
23
+ {
24
+ "title": "♻️ Refactoring",
25
+ "audience": "dev",
26
+ "items": [
27
+ {
28
+ "description": "Returns the single value directly from `flatMap` callbacks in the readiness predicates and kits of `@williamthorsen/tsconfig` and `@williamthorsen/eslint-config-typescript`, rather than wrapping it in a one-element array. (#273)",
29
+ "hash": "1041ba308e4415a8f7a0ebd80d3aad743a848fe1",
30
+ "entry": 4
31
+ }
32
+ ]
33
+ }
34
+ ]
35
+ },
2
36
  {
3
37
  "version": "0.11.0",
4
38
  "date": "2026-10-16",
@@ -1,6 +1,6 @@
1
1
  /** @noformat -- @generated. Do not edit. Compiled by rdy. */
2
2
  /* eslint-disable */
3
- export const __readyupVersion = "0.41.0";
3
+ export const __readyupVersion = "0.41.1";
4
4
 
5
5
 
6
6
  // .readyup/kits/default.ts
@@ -62,7 +62,7 @@ function readDeclaredEsYear(compilerOptions) {
62
62
  if (targetYear !== void 0) return targetYear;
63
63
  const libYears = toStringArray(compilerOptions["lib"]).flatMap((entry) => {
64
64
  const year = parseEsYear(entry);
65
- return year === void 0 ? [] : [year];
65
+ return year === void 0 ? [] : year;
66
66
  });
67
67
  return libYears.toSorted().at(-1);
68
68
  }
@@ -97,7 +97,7 @@ function findEscapingPathsInField(entries, field, judgedDir) {
97
97
  const declaredDir = dirname(declaring.path);
98
98
  return declared.filter((value) => typeof value === "string").flatMap((value) => {
99
99
  const outward = findOutwardPath(value, declaredDir, judgedDir);
100
- return outward === void 0 ? [] : [{ declaredIn: declaring.path, field, path: outward }];
100
+ return outward === void 0 ? [] : { declaredIn: declaring.path, field, path: outward };
101
101
  });
102
102
  }
103
103
  function findOutwardPath(value, declaredDir, judgedDir) {
@@ -155,7 +155,7 @@ function classifyNodeEsYear(major, esYearForMajor) {
155
155
  function findLowestNodeMajor(floors) {
156
156
  const majors = floors.flatMap((floor) => {
157
157
  const major = readNodeMajor(floor);
158
- return major === void 0 ? [] : [major];
158
+ return major === void 0 ? [] : major;
159
159
  });
160
160
  return majors.length === 0 ? void 0 : Math.min(...majors);
161
161
  }
@@ -306,7 +306,7 @@ function listDeclaredNodeFloors() {
306
306
  const manifest = readJsonFile(resolveDirPath(dir, "package.json"));
307
307
  if (manifest === void 0) return [];
308
308
  const floor = readEnginesNodeFloor(manifest);
309
- return floor.kind === "found" ? [floor.floor] : [];
309
+ return floor.kind === "found" ? floor.floor : [];
310
310
  });
311
311
  if (engineFloors.length > 0) return engineFloors;
312
312
  const toolVersionsFloor = readToolVersionsNode();
@@ -325,7 +325,7 @@ function nodeFloorSupportsBaseEsYear() {
325
325
  function noEscapingPaths() {
326
326
  const judged = findTsconfigs().flatMap((path) => {
327
327
  const chain = readChain(path);
328
- return chain === void 0 ? [] : [{ escapes: findEscapingPaths(chain.entries), path }];
328
+ return chain === void 0 ? [] : { escapes: findEscapingPaths(chain.entries), path };
329
329
  });
330
330
  const offenders = judged.filter((judgedConfig) => judgedConfig.escapes.length > 0);
331
331
  const progress = {
@@ -33,7 +33,7 @@
33
33
  "esbuildVersion": "0.28.2",
34
34
  "inputs": [
35
35
  {
36
- "hash": "e8776bde",
36
+ "hash": "76ef7a7e",
37
37
  "kind": "module",
38
38
  "path": "kits/default.ts"
39
39
  },
@@ -48,12 +48,12 @@
48
48
  "path": "../src/readiness/classifyChain.ts"
49
49
  },
50
50
  {
51
- "hash": "4861e1ce",
51
+ "hash": "a640083e",
52
52
  "kind": "module",
53
53
  "path": "../src/readiness/es-year.ts"
54
54
  },
55
55
  {
56
- "hash": "7e81b592",
56
+ "hash": "cba222cb",
57
57
  "kind": "module",
58
58
  "path": "../src/readiness/findEscapingPaths.ts"
59
59
  },
@@ -68,17 +68,17 @@
68
68
  "path": "../src/readiness/listSearchDirs.ts"
69
69
  },
70
70
  {
71
- "hash": "ecb17b24",
71
+ "hash": "82ff91b4",
72
72
  "kind": "module",
73
73
  "path": "../src/readiness/node-floor.ts"
74
74
  }
75
75
  ],
76
76
  "name": "default",
77
77
  "path": "kits/default.js",
78
- "readyupVersion": "0.41.0",
78
+ "readyupVersion": "0.41.1",
79
79
  "source": "kits/default.ts",
80
- "sourceHash": "e8776bde",
81
- "targetHash": "2748686b"
80
+ "sourceHash": "76ef7a7e",
81
+ "targetHash": "c3b50bc8"
82
82
  }
83
83
  ]
84
84
  }
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## 0.12.0 — 2026-10-18
6
+
7
+ ### 🎉 Features
8
+
9
+ - Adds `ESNext.Array` to the `lib` in `tsconfig.base.json`, so that a call to `Array.fromAsync`, which `unicorn/prefer-array-from-async` recommends, typechecks without a local `lib` override. (#284)
10
+
11
+ ## 0.11.1 — 2026-10-17
12
+
13
+ ### ♻️ Refactoring
14
+
15
+ - Returns the single value directly from `flatMap` callbacks in the readiness predicates and kits of `@williamthorsen/tsconfig` and `@williamthorsen/eslint-config-typescript`, rather than wrapping it in a one-element array. (#273)
16
+
5
17
  ## 0.11.0 — 2026-10-16
6
18
 
7
19
  ### 🎉 Features
package/README.md CHANGED
@@ -5,11 +5,11 @@
5
5
  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 that it leaves out, so a consuming repo declares only what is genuinely its own.
6
6
 
7
7
  <!-- section:release-notes -->
8
- ## Release notes — v0.11.0 (2026-10-16)
8
+ ## Release notes — v0.12.0 (2026-10-18)
9
9
 
10
10
  ### 🎉 Features
11
11
 
12
- - Ships `CHANGELOG.md` and the machine-readable `.meta/changelog.json` in the tarball of each published package, so that consumers receive the release history with the package. (#267)
12
+ - Adds `ESNext.Array` to the `lib` in `tsconfig.base.json`, so that a call to `Array.fromAsync`, which `unicorn/prefer-array-from-async` recommends, typechecks without a local `lib` override. (#284)
13
13
  <!-- /section:release-notes -->
14
14
 
15
15
  ## Installation
@@ -52,17 +52,17 @@ A package that extends a framework base such as `astro/tsconfigs/base` or `@tsco
52
52
 
53
53
  Everything `@tsconfig/strictest` sets, plus the Node and build options it omits:
54
54
 
55
- | Option | Value |
56
- | ---------------------------- | --------------------------------- |
57
- | `allowImportingTsExtensions` | `true` |
58
- | `lib` | `["ES2025", "ESNext.Disposable"]` |
59
- | `module` | `"NodeNext"` |
60
- | `moduleDetection` | `"force"` |
61
- | `noEmit` | `true` |
62
- | `removeComments` | `true` |
63
- | `target` | `"ES2025"` |
64
-
65
- `target` and `lib` are pinned to a Node 24 floor. `ESNext.Disposable` supplies the explicit-resource-management declarations (`using`, `Disposable`, `DisposableStack`), which Node 24 implements but the numbered libs do not yet include.
55
+ | Option | Value |
56
+ | ---------------------------- | ------------------------------------------------- |
57
+ | `allowImportingTsExtensions` | `true` |
58
+ | `lib` | `["ES2025", "ESNext.Disposable", "ESNext.Array"]` |
59
+ | `module` | `"NodeNext"` |
60
+ | `moduleDetection` | `"force"` |
61
+ | `noEmit` | `true` |
62
+ | `removeComments` | `true` |
63
+ | `target` | `"ES2025"` |
64
+
65
+ `target` and `lib` are pinned to a Node 24 floor. `ESNext.Disposable` supplies the explicit-resource-management declarations (`using`, `Disposable`, `DisposableStack`), and `ESNext.Array` supplies `Array.fromAsync`; Node 24 implements both, but the numbered libs do not yet include them.
66
66
 
67
67
  ## What the consumer owns
68
68
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@williamthorsen/tsconfig",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "Shared TypeScript base config for Node-only projects",
5
5
  "keywords": [
6
6
  "tsconfig",
@@ -33,7 +33,7 @@
33
33
  "devDependencies": {
34
34
  "@tsconfig/strictest": "2.0.8",
35
35
  "esbuild": "0.28.2",
36
- "readyup": "0.41.0",
36
+ "readyup": "0.41.1",
37
37
  "vitest": "4.1.11"
38
38
  },
39
39
  "peerDependencies": {
@@ -33,7 +33,8 @@
33
33
  "rewriteRelativeImportExtensions": true,
34
34
  // Without this, `lib` follows `target` into the `.full` variant, admitting DOM globals.
35
35
  // `ESNext.Disposable` contains the explicit-resource-management declarations; no numbered lib has them.
36
- "lib": ["ES2025", "ESNext.Disposable"],
36
+ // `ESNext.Array` contains `Array.fromAsync`, which Node 24 implements; no numbered lib has it.
37
+ "lib": ["ES2025", "ESNext.Disposable", "ESNext.Array"],
37
38
  // Default is `ES2022` with `Bundler` resolution: wrong for published Node packages.
38
39
  "module": "NodeNext",
39
40
  // Files with no import or export would otherwise be scripts sharing global scope.