zod-package-json
Version:
Zod schema for the package.json file format
191 lines (190 loc) • 9.68 kB
TypeScript
import * as z from "zod";
export declare const PackageJson: z.ZodObject<{
/** Package name. */
name: z.ZodString;
/** Package semver version number. */
version: z.ZodString;
/** Description for the package. */
description: z.ZodOptional<z.ZodString>;
/** List of keywords for searching the package. */
keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
/** URL of the package's homepage. */
homepage: z.ZodOptional<z.ZodString>;
/** Issue tracker for the package. */
bugs: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
url: z.ZodOptional<z.ZodString>;
email: z.ZodOptional<z.ZodString>;
}, z.core.$strip>]>>;
/** SPDX license expression or a custom license. */
license: z.ZodOptional<z.ZodString>;
/** Author of the package. */
author: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
name: z.ZodString;
email: z.ZodOptional<z.ZodString>;
url: z.ZodOptional<z.ZodString>;
}, z.core.$strip>]>>;
/** Contributors to the package. */
contributors: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
name: z.ZodString;
email: z.ZodOptional<z.ZodString>;
url: z.ZodOptional<z.ZodString>;
}, z.core.$strip>]>>>;
/** Maintainers of the package. */
maintainers: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
name: z.ZodString;
email: z.ZodOptional<z.ZodString>;
url: z.ZodOptional<z.ZodString>;
}, z.core.$strip>]>>>;
/** Funding options for the package. */
funding: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
url: z.ZodString;
type: z.ZodOptional<z.ZodString>;
}, z.core.$strip>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
url: z.ZodString;
type: z.ZodOptional<z.ZodString>;
}, z.core.$strip>]>>]>>;
/** File patterns for files to be included when publishing the package. */
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
/** Package exports. @see {@link https://nodejs.org/api/packages.html#exports} */
exports: z.ZodOptional<z.ZodUnion<readonly [z.ZodNull, z.ZodString, z.ZodArray<z.ZodString>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>;
/** Type for all the `.js` files in the package, usually `module`. */
type: z.ZodOptional<z.ZodLiteral<"module" | "commonjs">>;
/** Main entry point for the package, usually CommonJS. */
main: z.ZodOptional<z.ZodString>;
/**
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.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>]>>;
/** Executable files. */
bin: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
/** Documentation to be used with the `man` command. */
man: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
/** Directories in the package. */
directories: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
/** Repository for the package's source code. */
repository: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
type: z.ZodString;
url: z.ZodString;
directory: z.ZodOptional<z.ZodString>;
}, z.core.$strip>]>>;
/** Scripts used in the package. */
scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
/** Configuration values for scripts. */
config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
/** Production dependencies. */
dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
/** Development dependencies. */
devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
/** Peer dependencies. */
peerDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
/** Metadata about peer dependencies. */
peerDependenciesMeta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
optional: z.ZodBoolean;
}, z.core.$strip>>>;
/** Dependencies bundled with the package. */
bundleDependencies: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>>;
/** Dependencies bundled with the package (equivalent to `bundleDependencies`). */
bundledDependencies: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>>;
/** Optional dependencies. */
optionalDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
/** Overrides for dependency resolution using npm. */
overrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
/** Runtime systems supported by the package. */
engines: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
/** Operating systems supported by the package. */
os: z.ZodOptional<z.ZodArray<z.ZodString>>;
/** CPU architectures supported by the package. */
cpu: z.ZodOptional<z.ZodArray<z.ZodString>>;
/** Version of libc required to build or run this package on Linux. */
libc: z.ZodOptional<z.ZodString>;
/** Tooling required to develop the package. */
devEngines: z.ZodOptional<z.ZodObject<{
cpu: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
name: z.ZodString;
version: z.ZodOptional<z.ZodString>;
onFail: z.ZodOptional<z.ZodLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>, z.ZodArray<z.ZodObject<{
name: z.ZodString;
version: z.ZodOptional<z.ZodString>;
onFail: z.ZodOptional<z.ZodLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>>]>>;
os: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
name: z.ZodString;
version: z.ZodOptional<z.ZodString>;
onFail: z.ZodOptional<z.ZodLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>, z.ZodArray<z.ZodObject<{
name: z.ZodString;
version: z.ZodOptional<z.ZodString>;
onFail: z.ZodOptional<z.ZodLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>>]>>;
libc: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
name: z.ZodString;
version: z.ZodOptional<z.ZodString>;
onFail: z.ZodOptional<z.ZodLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>, z.ZodArray<z.ZodObject<{
name: z.ZodString;
version: z.ZodOptional<z.ZodString>;
onFail: z.ZodOptional<z.ZodLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>>]>>;
runtime: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
name: z.ZodString;
version: z.ZodOptional<z.ZodString>;
onFail: z.ZodOptional<z.ZodLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>, z.ZodArray<z.ZodObject<{
name: z.ZodString;
version: z.ZodOptional<z.ZodString>;
onFail: z.ZodOptional<z.ZodLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>>]>>;
packageManager: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
name: z.ZodString;
version: z.ZodOptional<z.ZodString>;
onFail: z.ZodOptional<z.ZodLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>, z.ZodArray<z.ZodObject<{
name: z.ZodString;
version: z.ZodOptional<z.ZodString>;
onFail: z.ZodOptional<z.ZodLiteral<"ignore" | "warn" | "error">>;
}, z.core.$strip>>]>>;
}, z.core.$strip>>;
/** True if the package should not be published. */
private: z.ZodOptional<z.ZodBoolean>;
/** Configuration values used at publishing time. */
publishConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
/** File patterns for locating local workspaces. */
workspaces: z.ZodOptional<z.ZodArray<z.ZodString>>;
/** Deprecation message. */
deprecated: z.ZodOptional<z.ZodString>;
/** Main ESM entry point for the package. */
module: z.ZodOptional<z.ZodString>;
/** Main TypeScript declaration file. */
types: z.ZodOptional<z.ZodString>;
/** Main TypeScript declaration file (equivalent to `types`). */
typings: z.ZodOptional<z.ZodString>;
/**
TypeScript types resolutions.
@see {@link https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html#version-selection-with-typesversions}
*/
typesVersions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>>;
/**
Corepack package manager.
@see {@link https://nodejs.org/api/corepack.html}
*/
packageManager: z.ZodOptional<z.ZodString>;
/**
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.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>>;
/**
Imports map.
@see {@link https://nodejs.org/api/packages.html#imports}
*/
imports: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, 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>;