zod-package-json
Version:
Zod schema for the package.json file format
194 lines (193 loc) • 11.9 kB
TypeScript
import * as z from "zod/mini";
export declare const PackageJson: z.ZodMiniObject<{
/** Package name. */
name: z.ZodMiniString<string>;
/** Package semver version number. */
version: z.ZodMiniString<string>;
/** Description for the package. */
description: z.ZodMiniOptional<z.ZodMiniString<string>>;
/** List of keywords for searching the package. */
keywords: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
/** URL of the package's homepage. */
homepage: z.ZodMiniOptional<z.ZodMiniString<string>>;
/** Issue tracker for the package. */
bugs: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
url: z.ZodMiniOptional<z.ZodMiniString<string>>;
email: z.ZodMiniOptional<z.ZodMiniString<string>>;
}, z.core.$strip>]>>;
/** SPDX license expression or a custom license. */
license: z.ZodMiniOptional<z.ZodMiniString<string>>;
/** Author of the package. */
author: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
name: z.ZodMiniString<string>;
email: z.ZodMiniOptional<z.ZodMiniString<string>>;
url: z.ZodMiniOptional<z.ZodMiniString<string>>;
}, z.core.$strip>]>>;
/** Contributors to the package. */
contributors: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
name: z.ZodMiniString<string>;
email: z.ZodMiniOptional<z.ZodMiniString<string>>;
url: z.ZodMiniOptional<z.ZodMiniString<string>>;
}, z.core.$strip>]>>>;
/** Maintainers of the package. */
maintainers: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
name: z.ZodMiniString<string>;
email: z.ZodMiniOptional<z.ZodMiniString<string>>;
url: z.ZodMiniOptional<z.ZodMiniString<string>>;
}, z.core.$strip>]>>>;
/** Funding options for the package. */
funding: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
url: z.ZodMiniString<string>;
type: z.ZodMiniOptional<z.ZodMiniString<string>>;
}, z.core.$strip>, z.ZodMiniArray<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
url: z.ZodMiniString<string>;
type: z.ZodMiniOptional<z.ZodMiniString<string>>;
}, z.core.$strip>]>>]>>;
/** File patterns for files to be included when publishing the package. */
files: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
/** Package exports. @see {@link https://nodejs.org/api/packages.html#exports} */
exports: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniNull, z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>]>>;
/** Type for all the `.js` files in the package, usually `module`. */
type: z.ZodMiniOptional<z.ZodMiniLiteral<"module" | "commonjs">>;
/** Main entry point for the package, usually CommonJS. */
main: z.ZodMiniOptional<z.ZodMiniString<string>>;
/**
Main entry point for the package when used in a browser environment.
@see {@link https://docs.npmjs.com/cli/v10/configuring-npm/package-json#browser}
@see {@link https://gist.github.com/defunctzombie/4339901/49493836fb873ddaa4b8a7aa0ef2352119f69211}
*/
browser: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniBoolean<boolean>]>>]>>;
/** Executable files. */
bin: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>]>>;
/** Documentation to be used with the `man` command. */
man: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
/** Directories in the package. */
directories: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
/** Repository for the package's source code. */
repository: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniObject<{
/** Repository type (e.g., `git`). */
type: z.ZodMiniString<string>;
/** Machine-readable repository URL (e.g., `https://github.com/user/repo.git`). */
url: z.ZodMiniString<string>;
/** Directory in a monorepo where the package's source code is located. */
directory: z.ZodMiniOptional<z.ZodMiniString<string>>;
}, z.core.$strip>]>>;
/** Scripts used in the package. */
scripts: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
/** Configuration values for scripts. */
config: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>;
/** Production dependencies. */
dependencies: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
/** Development dependencies. */
devDependencies: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
/** Peer dependencies. */
peerDependencies: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
/** Metadata about peer dependencies. */
peerDependenciesMeta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
optional: z.ZodMiniBoolean<boolean>;
}, z.core.$strip>>>;
/** Dependencies bundled with the package. */
bundleDependencies: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
/** Dependencies bundled with the package (equivalent to `bundleDependencies`). */
bundledDependencies: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
/** Optional dependencies. */
optionalDependencies: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
/** Overrides for dependency resolution using npm. */
overrides: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>;
/** Runtime systems supported by the package. */
engines: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
/** Operating systems supported by the package. */
os: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
/** CPU architectures supported by the package. */
cpu: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
/** Version of libc required to build or run this package on Linux. */
libc: z.ZodMiniOptional<z.ZodMiniString<string>>;
/** Tooling required to develop the package. */
devEngines: z.ZodMiniOptional<z.ZodMiniObject<{
cpu: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniObject<{
name: z.ZodMiniString<string>;
version: z.ZodMiniOptional<z.ZodMiniString<string>>;
onFail: z.ZodMiniOptional<z.ZodMiniLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>, z.ZodMiniArray<z.ZodMiniObject<{
name: z.ZodMiniString<string>;
version: z.ZodMiniOptional<z.ZodMiniString<string>>;
onFail: z.ZodMiniOptional<z.ZodMiniLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>>]>>;
os: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniObject<{
name: z.ZodMiniString<string>;
version: z.ZodMiniOptional<z.ZodMiniString<string>>;
onFail: z.ZodMiniOptional<z.ZodMiniLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>, z.ZodMiniArray<z.ZodMiniObject<{
name: z.ZodMiniString<string>;
version: z.ZodMiniOptional<z.ZodMiniString<string>>;
onFail: z.ZodMiniOptional<z.ZodMiniLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>>]>>;
libc: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniObject<{
name: z.ZodMiniString<string>;
version: z.ZodMiniOptional<z.ZodMiniString<string>>;
onFail: z.ZodMiniOptional<z.ZodMiniLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>, z.ZodMiniArray<z.ZodMiniObject<{
name: z.ZodMiniString<string>;
version: z.ZodMiniOptional<z.ZodMiniString<string>>;
onFail: z.ZodMiniOptional<z.ZodMiniLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>>]>>;
runtime: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniObject<{
name: z.ZodMiniString<string>;
version: z.ZodMiniOptional<z.ZodMiniString<string>>;
onFail: z.ZodMiniOptional<z.ZodMiniLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>, z.ZodMiniArray<z.ZodMiniObject<{
name: z.ZodMiniString<string>;
version: z.ZodMiniOptional<z.ZodMiniString<string>>;
onFail: z.ZodMiniOptional<z.ZodMiniLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>>]>>;
packageManager: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniObject<{
name: z.ZodMiniString<string>;
version: z.ZodMiniOptional<z.ZodMiniString<string>>;
onFail: z.ZodMiniOptional<z.ZodMiniLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>, z.ZodMiniArray<z.ZodMiniObject<{
name: z.ZodMiniString<string>;
version: z.ZodMiniOptional<z.ZodMiniString<string>>;
onFail: z.ZodMiniOptional<z.ZodMiniLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>>]>>;
}, z.core.$strip>>;
/** True if the package should not be published. */
private: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
/** Configuration values used at publishing time. */
publishConfig: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>;
/** File patterns for locating local workspaces. */
workspaces: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
/** Deprecation message. */
deprecated: z.ZodMiniOptional<z.ZodMiniString<string>>;
/** Main ESM entry point for the package. */
module: z.ZodMiniOptional<z.ZodMiniString<string>>;
/** Main TypeScript declaration file. */
types: z.ZodMiniOptional<z.ZodMiniString<string>>;
/** Main TypeScript declaration file (equivalent to `types`). */
typings: z.ZodMiniOptional<z.ZodMiniString<string>>;
/**
TypeScript types resolutions.
@see {@link https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html#version-selection-with-typesversions}
*/
typesVersions: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>>>>;
/**
Corepack package manager.
@see {@link https://nodejs.org/api/corepack.html}
*/
packageManager: z.ZodMiniOptional<z.ZodMiniString<string>>;
/**
False if importing modules from the package does not cause side effects.
True or a list of file patterns if importing modules from the package causes side effects.
@see {@link https://webpack.js.org/guides/tree-shaking/#mark-the-file-as-side-effect-free}
*/
sideEffects: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
/**
Imports map.
@see {@link https://nodejs.org/api/packages.html#imports}
*/
imports: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>;
}, z.core.$loose>;
/**
`PackageJson` describes the manifest for a package found in the `package.json` file.
@see {@link https://docs.npmjs.com/cli/v10/configuring-npm/package-json}
*/
export type PackageJson = z.infer<typeof PackageJson>;