diff --git a/source/package-json.d.ts b/source/package-json.d.ts index 5acd838b1..177044bf5 100644 --- a/source/package-json.d.ts +++ b/source/package-json.d.ts @@ -208,6 +208,13 @@ export namespace PackageJson { */ type Dependency = Partial>; + /** + Recursive map describing selective dependency version overrides supported by npm. + */ + type DependencyOverrides = { + [packageName: string]: string | undefined | DependencyOverrides; + }; + /** Specifies requirements for development environment components such as operating systems, runtimes, or package managers. Used to ensure consistent development environments across the team. */ @@ -510,6 +517,11 @@ export namespace PackageJson { */ bundleDependencies?: string[]; + /** + Overrides is used to support selective version overrides using npm, which lets you define custom package versions or ranges inside your dependencies. + */ + overrides?: DependencyOverrides; + /** Engines that this package runs on. */ diff --git a/test-d/package-json.ts b/test-d/package-json.ts index 02c54e5b7..2415717a0 100644 --- a/test-d/package-json.ts +++ b/test-d/package-json.ts @@ -37,6 +37,11 @@ expectType(packageJson.bundleDependencies); expectType(packageJson.bundledDependencies); expectType(packageJson.resolutions); expectType(packageJson.workspaces); +expectAssignable({foo: '1.0.0'}); +expectAssignable({foo: {'.': '1.0.0', bar: '1.0.0'}}); +expectAssignable({baz: {bar: {foo: '1.0.0'}}}); +expectAssignable({foo: undefined}); +expectAssignable({foo: {bar: undefined}}); expectAssignable({ name: 'unicorn', version: '>= 1.0.0',