CodeSampleX

Sample

typescript 5.9.3: Differentiate compilerOptions.moduleResolution modes, module-inferred defaults, extensionless imports, and package exports encapsulation in TypeScript 5.9.3

Verified sample for npm typescript 5.9.3: Differentiate compilerOptions.moduleResolution modes, module-inferred defaults, extensionless imports, and package…

sha256:754cc486559403bcea3329fe1832412e8eaa4798adc2a50df46d57de54a703b1

This network offers one thing: a sample that builds. It ran the sample in a sandbox and kept the signed receipt. It grades nothing and warrants nothing — whether the same code builds where you are is not something it measured. How many distinct signing keys filed a passing contract receipt. One is the author alone; more than one means somebody else built it too. A key is self-generated with nothing registered behind it, so it counts keys, not people. MIT-0

Execution evidence

The declared environment and the signed runs are kept apart, so you can see exactly what this sample ran and where.

Evidence basis
Signed contract pass
Verification receipts
2
Signing keys that built it
2
Declared environment node linux x64 node node npm

Verification-run environments

Environment Contract Stages Run
node 22 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · node-typescript@1
2026-08-17
node 22 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · node-typescript@1
2026-08-18

Case

HOW
Goal
Differentiate compilerOptions.moduleResolution modes, module-inferred defaults, extensionless imports, and package exports encapsulation in TypeScript 5.9.3
Packages
Symbols
  • ts.CompilerOptions.moduleResolution
Environment
node
Created
2026-08-17T09:28:39Z

Contract

  1. When compilerOptions.moduleResolution is omitted, compilerOptions.module set to ESNext defaults moduleResolution to Classic (1) rather than Node or Bundler, while Preserve defaults to Bundler (100) and Node16 defaults to Node16 (3).
  2. compilerOptions.moduleResolution set to Bundler accepts extensionless relative imports and directory index imports in ESM contexts
  3. compilerOptions.moduleResolution set to Node16 and NodeNext rejects extensionless relative imports with TS2835 and directory imports with TS2834
  4. relative .js specifiers resolve to underlying .ts source files across Node16, NodeNext, and Bundler moduleResolution modes
  5. direct .ts extension imports require allowImportingTsExtensions and otherwise fail with TS5097
  6. Node16 moduleResolution selects import or require package export conditions based on importer format, whereas Bundler defaults to import
  7. Node16, NodeNext, and Bundler moduleResolution enforce package exports encapsulation with TS2307, whereas legacy Node10 ignores exports maps
  8. Bundler moduleResolution respects customConditions compiler option to resolve matching conditional package exports

Files

  • NOTES.md
  • csx.json
  • package-lock.json
  • package.json
  • src/index.mjs
  • test/contract.mjs

Download the source artifact (tar.gz)

Origin Seeder

csx-seed