From b327256305143f61b566ac4cc0c309c251b20b3d Mon Sep 17 00:00:00 2001 From: Klink <85062+dogmar@users.noreply.github.com> Date: Sun, 14 Jun 2026 20:47:07 -0700 Subject: [PATCH] fix: serve correct CJS type declarations from package.json exports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every exports entry pointed `types` at the ESM `.d.mts` even under the `require` condition, so TS `node16`/`nodenext` CJS consumers resolved ESM declarations for a CJS `require` — the classic attw "incorrect types for require" failure. The build already emits `.d.cts` for the index and all 7 subpaths; they were just unreachable. Nest `types` under `import`/`require` per subpath (`.d.mts` for import, `.d.cts` for require), point the top-level `types` at `.d.cts` to match `main` (CJS), add `typesVersions` so legacy node10 resolves subpath types, and expose `./package.json`. Verified with @arethetypeswrong/cli: "No problems found" across node10, node16 (CJS + ESM), and bundler. Co-Authored-By: Claude Opus 4.8 --- package/package.json | 116 +++++++++++++++++++++++++++++++++---------- 1 file changed, 91 insertions(+), 25 deletions(-) diff --git a/package/package.json b/package/package.json index a70af90..c5b5487 100644 --- a/package/package.json +++ b/package/package.json @@ -17,47 +17,113 @@ "sideEffects": false, "main": "./dist/index.cjs", "module": "./dist/index.mjs", - "types": "./dist/index.d.mts", + "types": "./dist/index.d.cts", + "typesVersions": { + "*": { + "plain-date": [ + "./dist/formats/plain-date.d.cts" + ], + "plain-date-time": [ + "./dist/formats/plain-date-time.d.cts" + ], + "plain-month-day": [ + "./dist/formats/plain-month-day.d.cts" + ], + "plain-year-month": [ + "./dist/formats/plain-year-month.d.cts" + ], + "zoned-date-time": [ + "./dist/formats/zoned-date-time.d.cts" + ], + "object": [ + "./dist/formats/object.d.cts" + ], + "date": [ + "./dist/formats/date.d.cts" + ] + } + }, "exports": { + "./package.json": "./package.json", ".": { - "types": "./dist/index.d.mts", - "import": "./dist/index.mjs", - "require": "./dist/index.cjs" + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": { + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" + } }, "./plain-date": { - "types": "./dist/formats/plain-date.d.mts", - "import": "./dist/formats/plain-date.mjs", - "require": "./dist/formats/plain-date.cjs" + "import": { + "types": "./dist/formats/plain-date.d.mts", + "default": "./dist/formats/plain-date.mjs" + }, + "require": { + "types": "./dist/formats/plain-date.d.cts", + "default": "./dist/formats/plain-date.cjs" + } }, "./plain-date-time": { - "types": "./dist/formats/plain-date-time.d.mts", - "import": "./dist/formats/plain-date-time.mjs", - "require": "./dist/formats/plain-date-time.cjs" + "import": { + "types": "./dist/formats/plain-date-time.d.mts", + "default": "./dist/formats/plain-date-time.mjs" + }, + "require": { + "types": "./dist/formats/plain-date-time.d.cts", + "default": "./dist/formats/plain-date-time.cjs" + } }, "./plain-month-day": { - "types": "./dist/formats/plain-month-day.d.mts", - "import": "./dist/formats/plain-month-day.mjs", - "require": "./dist/formats/plain-month-day.cjs" + "import": { + "types": "./dist/formats/plain-month-day.d.mts", + "default": "./dist/formats/plain-month-day.mjs" + }, + "require": { + "types": "./dist/formats/plain-month-day.d.cts", + "default": "./dist/formats/plain-month-day.cjs" + } }, "./plain-year-month": { - "types": "./dist/formats/plain-year-month.d.mts", - "import": "./dist/formats/plain-year-month.mjs", - "require": "./dist/formats/plain-year-month.cjs" + "import": { + "types": "./dist/formats/plain-year-month.d.mts", + "default": "./dist/formats/plain-year-month.mjs" + }, + "require": { + "types": "./dist/formats/plain-year-month.d.cts", + "default": "./dist/formats/plain-year-month.cjs" + } }, "./zoned-date-time": { - "types": "./dist/formats/zoned-date-time.d.mts", - "import": "./dist/formats/zoned-date-time.mjs", - "require": "./dist/formats/zoned-date-time.cjs" + "import": { + "types": "./dist/formats/zoned-date-time.d.mts", + "default": "./dist/formats/zoned-date-time.mjs" + }, + "require": { + "types": "./dist/formats/zoned-date-time.d.cts", + "default": "./dist/formats/zoned-date-time.cjs" + } }, "./object": { - "types": "./dist/formats/object.d.mts", - "import": "./dist/formats/object.mjs", - "require": "./dist/formats/object.cjs" + "import": { + "types": "./dist/formats/object.d.mts", + "default": "./dist/formats/object.mjs" + }, + "require": { + "types": "./dist/formats/object.d.cts", + "default": "./dist/formats/object.cjs" + } }, "./date": { - "types": "./dist/formats/date.d.mts", - "import": "./dist/formats/date.mjs", - "require": "./dist/formats/date.cjs" + "import": { + "types": "./dist/formats/date.d.mts", + "default": "./dist/formats/date.mjs" + }, + "require": { + "types": "./dist/formats/date.d.cts", + "default": "./dist/formats/date.cjs" + } } }, "scripts": {