UNPKG

package-json-type

Version:

A TypeScript definition for the package.json

825 lines (771 loc) 29.3 kB
/** * Package author information. * @see https://docs.npmjs.com/files/package.json#people-fields-author-contributors * @see https://yarnpkg.com/en/docs/package-json#toc-author */ export interface IAuthor { email?: string; name: string; url?: string; } /** * An executable file which will be installed into the PATH * with a package install. `npm` will symlink that file into * `prefix/bin` for global installs, or `./node_modules/.bin/` * for local installs. * * ```json * { * "bin" : { * "myapp" : "./cli.js" * } * } * ``` * * For example, with linux if you install `myapp`, * it'll create a symlink from the `cli.js` script * to `/usr/local/bin/myapp`. * @see https://docs.npmjs.com/files/package.json#bin */ export interface IBinMap { [commandName: string]: string; } /** * The url to your project's issue tracker and (or) the email * address to which issues should be reported. These are helpful * for people who encounter issues with your package. * @see https://docs.npmjs.com/files/package.json#bugs * @see https://yarnpkg.com/en/docs/package-json#toc-bugs */ export interface IBugs { email?: string; url?: string; } /** * A `config` object can be used to set configuration parameters * used in package scripts that persist across upgrades. * For instance, if a package had the following: * ```json * { * "config" : { * "port" : "8080" * } * } * ``` * and then had a `start` command that then referenced the * `npm_package_config_port` environment variable, * then the user could override that by doing npm config set `foo:port 8001`. * @see https://docs.npmjs.com/files/package.json#config * @see https://yarnpkg.com/en/docs/package-json#toc-config */ export interface IConfig { [key: string]: string; } /** * @see http://wiki.commonjs.org/wiki/Packages/1.0 * @see https://docs.npmjs.com/files/package.json#dependencies * @see https://yarnpkg.com/en/docs/package-json#toc-dependencies * @see https://docs.npmjs.com/files/package.json#devdependencies * @see https://yarnpkg.com/en/docs/package-json#toc-devdependencies * @see https://docs.npmjs.com/files/package.json#optionaldependencies * @see https://yarnpkg.com/en/docs/package-json#toc-optionaldependencies * @see https://docs.npmjs.com/files/package.json#peerdependencies * @see https://yarnpkg.com/en/docs/package-json#toc-peerdependencies */ export interface IDependencyMap { [packageName: string]: string; } /** * You can specify exact locations to put binary files, man pages, * documentation, examples, etc. Package manager tools must use * these directory definitions to find various package components. * ``` * { * "directories": { * "lib": "path/to/lib/", * "bin": "path/to/bin/", * "man": "path/to/man/", * "doc": "path/to/doc/", * "example": "path/to/example/" * } * } * ``` * @see http://wiki.commonjs.org/wiki/Packages/1.0 * @see https://docs.npmjs.com/files/package.json#directories * @see https://yarnpkg.com/en/docs/package-json#toc-directories */ export interface IDirectories { /** * If you specify a bin directory in directories.bin, * all the files in that folder will be added. * Because of the way the bin directive works, * specifying both a bin path and setting directories.bin * is an error. If you want to specify individual files, * use bin, and for all the files in an existing bin directory, * use directories.bin. */ bin?: string; /** * Put markdown doc files in here. */ doc?: string; /** * Put example scripts in here. */ example?: string; /** * Tell people where the bulk of your library is. * Nothing special is done with the `lib` folder * in any way, but it's useful meta info. */ lib?: string; /** * A folder that is full of man pages. Sugar to generate * a `man` array by walking the folder. */ man?: string; /** * Put your tests in here. */ test?: string; } /** * You can specify the version of node that your stuff works on. * You can also specify which versions of npm are capable * of properly installing your program. * @see https://docs.npmjs.com/files/package.json#engines * @see https://yarnpkg.com/en/docs/package-json#toc-engines */ export interface IEngines { [field: string]: any; node?: string; npm?: string; yarn?: string; zlib?: string; } /** * A TypeScript definition for the package descriptor file. * @see http://wiki.commonjs.org/wiki/Packages/1.0 * @see https://docs.npmjs.com/files/package.json * @see https://yarnpkg.com/en/docs/package-json */ export interface IPackageJson { [field: string]: any; /** * Package author information. An author is one person. * * Shorthand expression * ``` * your-name <account@your-domain> (http://your-url) * ``` * @see https://docs.npmjs.com/files/package.json#people-fields-author-contributors * @see https://yarnpkg.com/en/docs/package-json#toc-author */ readonly author?: string | IAuthor; /** * An executable file which will be installed into the PATH * with a package install. `npm` will symlink that file into * `prefix/bin` for global installs, or `./node_modules/.bin/` * for local installs. * * ```json * { * "bin" : { * "myapp" : "./cli.js" * } * } * ``` * * For example, with linux if you install `myapp`, * it'll create a symlink from the `cli.js` script * to `/usr/local/bin/myapp`. * @see https://docs.npmjs.com/files/package.json#bin */ readonly bin?: string | IBinMap; /** * This is a hint to the module which is meant to be * used "client-side" instead of "nodejs". * @see https://github.com/defunctzombie/package-browser-field-spec * @see http://2ality.com/2017/04/setting-up-multi-platform-packages.html#browser-browser-specific-code */ readonly browser?: string; /** * The url to your project's issue tracker and (or) the email * address to which issues should be reported. These are helpful * for people who encounter issues with your package. * @see https://docs.npmjs.com/files/package.json#bugs * @see https://yarnpkg.com/en/docs/package-json#toc-bugs */ readonly bugs?: string | IBugs; /** * Bundled dependencies are an array of package names that * will be bundled together when publishing your package. * @see https://docs.npmjs.com/files/package.json#bundleddependencies * @see https://yarnpkg.com/en/docs/package-json#toc-bundleddependencies */ readonly bundledDependencies?: string[]; /** * A "`config`" object can be used to set configuration parameters * used in package scripts that persist across upgrades. * For instance, if a package had the following: * ```json * { * "config" : { * "port" : "8080" * } * } * ``` * and then had a "`start`" command that then referenced the * npm_package_config_port environment variable, * then the user could override that by doing npm config set foo:port 8001. * @see https://docs.npmjs.com/files/package.json#config * @see https://yarnpkg.com/en/docs/package-json#toc-config */ readonly config?: IConfig; /** * If there is an `AUTHORS` file in the root of your package, * npm will treat each line as a Name <email> (url) format, * where email and url are optional. Lines which start with a # or are blank, * will be ignored. * @see https://docs.npmjs.com/files/package.json#people-fields-author-contributors * @see https://yarnpkg.com/en/docs/package-json#toc-contributors */ readonly contributors?: Array<IAuthor | string>; /** * If your code only runs on certain cpu architectures, you can specify which ones. * This checks against `process.arch`. * @see https://docs.npmjs.com/files/package.json#cpu * @see https://yarnpkg.com/en/docs/package-json#toc-cpu * @see https://nodejs.org/api/process.html#process_process_arch */ readonly cpu?: CPU[]; /** * Dependencies are specified in a simple object that maps a package name * to a version range. The version range is a string which has one or * more space-separated descriptors. Dependencies can also be * identified with a tarball or git URL. * @see http://wiki.commonjs.org/wiki/Packages/1.0 * @see https://docs.npmjs.com/files/package.json#dependencies * @see https://yarnpkg.com/en/docs/package-json#toc-dependencies */ readonly dependencies?: IDependencyMap; /** * A brief description of the package. * By convention, the first sentence (up to the first ". ") * should be usable as a package title in listings. * @see https://docs.npmjs.com/files/package.json#description-1 * @see http://wiki.commonjs.org/wiki/Packages/1.0 * @see https://yarnpkg.com/en/docs/package-json#toc-description */ readonly description?: string; /** * If someone is planning on downloading and using your module * in their program, then they probably don't want or need * to download and build the external test or documentation * framework that you use. In this case, it's best to map * these additional items in a devDependencies object. * @see https://docs.npmjs.com/files/package.json#devdependencies * @see https://yarnpkg.com/en/docs/package-json#toc-devdependencies */ readonly devDependencies?: IDependencyMap; /** * You can specify exact locations to put binary files, man pages, * documentation, examples, etc. Package manager tools must use * these directory definitions to find various package components. * ``` * { * "directories": { * "lib": "path/to/lib/", * "bin": "path/to/bin/", * "man": "path/to/man/", * "doc": "path/to/doc/", * "example": "path/to/example/" * } * } * ``` * @see http://wiki.commonjs.org/wiki/Packages/1.0 * @see https://docs.npmjs.com/files/package.json#directories * @see https://yarnpkg.com/en/docs/package-json#toc-directories */ readonly directories?: IDirectories; /** * You can specify the version of node that your stuff works on. * You can also specify which versions of `npm` are capable * of properly installing your program. * @see https://docs.npmjs.com/files/package.json#engines * @see https://yarnpkg.com/en/docs/package-json#toc-engines */ readonly engines?: IEngines; /** * Files that are included in your project described * as a glob pattern. Omitting the field will make it default * to `["*"]`, as it will include all files. * @see https://docs.npmjs.com/files/package.json#files * @see https://yarnpkg.com/en/docs/package-json#toc-files */ readonly files?: string[]; /** * If your package only allows one version of a given dependency, * and you'd like to enforce the same behavior as `yarn install --flat` * on the command line, set this to true. * @see https://yarnpkg.com/en/docs/package-json#toc-flat */ readonly flat?: boolean; /** * The url to the project homepage. * @see https://docs.npmjs.com/files/package.json#homepage * @see https://yarnpkg.com/en/docs/package-json#toc-homepage */ readonly homepage?: string; /** * An array of string keywords to assist users searching for the package in catalogs. * @see https://docs.npmjs.com/files/package.json#keywords * @see https://yarnpkg.com/en/docs/package-json#toc-keywords */ readonly keywords?: string[]; /** * A license for your package so that people know how they are permitted * to use it, and any restrictions you're placing on it. * If you're using a common license such as `BSD-2-Clause` or `MIT`, * add a current {@link https://spdx.org/licenses/ | SPDX license identifier}. * @see https://docs.npmjs.com/files/package.json#license * @see https://yarnpkg.com/en/docs/package-json#toc-license * @see https://spdx.org/licenses/ * @see https://help.github.com/en/articles/licensing-a-repository */ readonly license?: SPDXLicenseID | SPDXLicenseIDApproved; /** * The main field is a module ID that is the primary entry point to your package. * That is, if your package is named `foo`, and a user installs it, and then * does `require("foo")`, then your main module's exports object will be returned. * This should be a module ID relative to the root of your package folder. * For most modules, it makes the most sense to have a main script and often not much else. * @see https://docs.npmjs.com/files/package.json#main * @see https://yarnpkg.com/en/docs/package-json#toc-main */ readonly main?: string; /** * A single file (or an array of filenames) for the man program. * @see https://docs.npmjs.com/files/package.json#man */ readonly man?: string | string[]; /** * The name of your package. * The name and version together should form a unique identifier accoss a project. * The name and version fields are optional if you don't want to publish your package. * A name can be optionally prefixed by a scope, e.g. `@types/lodash`. * @see https://docs.npmjs.com/files/package.json#name * @see https://yarnpkg.com/en/docs/package-json#toc-name */ readonly name?: string; /** * If a dependency can be used, but you would like npm to proceed * if it cannot be found or fails to install, then you may put it * in the `optionalDependencies` object. This is a map of package name * to version or url, just like the `dependencies` object. * The difference is that build failures do not cause installation to fail. * It is still your program's responsibility to handle the lack of the dependency. * @see https://docs.npmjs.com/files/package.json#optionaldependencies * @see https://yarnpkg.com/en/docs/package-json#toc-optionaldependencies */ readonly optionalDependencies?: IDependencyMap; /** * You can specify which operating systems your module will run on * @see https://docs.npmjs.com/files/package.json#os * @see https://yarnpkg.com/en/docs/package-json#toc-os * @see https://nodejs.org/api/process.html#process_process_platform */ readonly os?: OS[]; /** * In some cases, you want to express the compatibility of your package * with a host tool or library, while not necessarily doing a require * of this host. This is usually referred to as a plugin. Notably, * your module may be exposing a specific interface, expected * and specified by the host documentation. * @see https://docs.npmjs.com/files/package.json#peerdependencies * @see https://yarnpkg.com/en/docs/package-json#toc-peerdependencies */ readonly peerDependencies?: IDependencyMap; /** * This option used to trigger an npm warning, but it will no longer warn. * It is purely there for informational purposes. It is now recommended * that you install any binaries as local `devDependencies` wherever possible. * @deprecated */ readonly preferGlobal?: boolean; /** * If you set "`private`": true in your `package.json`, then `npm` will refuse to publish it. * This is a way to prevent accidental publication of private repositories. * If you would like to ensure that a given package is only ever published to * a specific registry (for example, an internal registry), * then use the [[publishConfig]] dictionary described below to override * the registry config param at publish-time. * @see https://docs.npmjs.com/files/package.json#private * @see https://yarnpkg.com/en/docs/package-json#toc-private */ readonly private?: boolean; /** * This is a set of config values that will be used at publish-time. * It's especially handy if you want to set the `tag`, `registry` or `access`, * so that you can ensure that a given package is not tagged with `“latest”`, * published to the global public registry or that a scoped module is private by default. * Any config values can be overridden, but only "`tag`", "`registry`" and * "`access`" probably matter for the purposes of publishing. * See npm-config to see the list of config options that can be overridden. * * Public Registry * * ```json * { * "publishConfig":{ * "registry":"https://registry.npmjs.org" * } * } * ``` * * * Your Private Registry * * ```json * { * "publishConfig":{ * "registry":"http://your-registry.local" * } * } * ``` * * @see https://docs.npmjs.com/files/package.json#publishconfig * @see https://yarnpkg.com/en/docs/package-json#toc-publishconfig */ readonly publishConfig?: IPublishConfig; /** * Specify the place where your code lives. * This is helpful for people who want to contribute. * * * Git * * ```json * { * "repository": { * "type": "git", * "url": "https://github.com/ajaxlab/package-json-type.git" * } * } * ``` * * * Svn * * ```json * { * "repository": { * "type": "svn", * "url": "https://v8.googlecode.com/svn/trunk/" * } * } * ``` * * * Monorepo * * ```json * { * "repository": { * "type": "git", * "url": "https://github.com/facebook/react.git", * "directory": "packages/react-dom" * } * } * ``` * @see https://yarnpkg.com/en/docs/package-json#toc-repository * @see https://docs.npmjs.com/files/package.json#repository */ readonly repository?: string | IRepository; /** * Allows you to override a version of a particular nested dependency. * See the Selective Versions Resolutions RFC for the full spec. * Note that installing dependencies via `[yarn install --flat]` will * automatically add a resolutions block to your package.json file. * @see https://yarnpkg.com/en/docs/package-json#toc-resolutions */ readonly resolutions?: { [dependencyName: string]: string }; /** * The "`scripts`" property is a dictionary containing script commands * that are run at various times in the lifecycle of your package. * The key is the lifecycle event, and the value is the command to run at that point. * ```json * { * "scripts": { * "install": "install.js", * "uninstall": "uninstall.js", * "build": "build.js", * "doc": "make-doc.js", * "test": "test.js", * } * } * ``` */ readonly scripts?: IScriptsMap | { [scriptName: string]: string; }; /** * Indicate the main declaration file in your package.json. * Set the `types` property to point to your bundled declaration file. * ```json * { * "name": "some-package", * "version": "1.0.0", * "main": "./lib/main.js", * "types": "./lib/main.d.ts" * } * ``` * @see https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html */ readonly types?: string; /** * A version string conforming to the Semantic Versioning requirements. * @see https://docs.npmjs.com/files/package.json#version * @see https://yarnpkg.com/en/docs/package-json#toc-version */ readonly version?: string; } /** * This is a set of config values that will be used at publish-time. * It's especially handy if you want to set the `tag`, `registry` or `access`, * so that you can ensure that a given package is not tagged with `“latest”`, * published to the global public registry or that a scoped module is private by default. * Any config values can be overridden, but only "`tag`", "`registry`" and * "`access`" probably matter for the purposes of publishing. * See npm-config to see the list of config options that can be overridden. * * Public Registry * * ```json * { * "publishConfig":{ * "registry":"https://registry.npmjs.org" * } * } * ``` * * * Your Private Registry * * ```json * { * "publishConfig":{ * "registry":"http://your-registry.local" * } * } * ``` * * @see https://docs.npmjs.com/files/package.json#publishconfig * @see https://yarnpkg.com/en/docs/package-json#toc-publishconfig */ export interface IPublishConfig { access?: string; registry?: string; tag?: string; } /** * Specify the place where your code lives. * This is helpful for people who want to contribute. * * * Git * * ```json * { * "repository": { * "type": "git", * "url": "https://github.com/ajaxlab/package-json-type.git" * } * } * ``` * * * Svn * * ```json * { * "repository": { * "type": "svn", * "url": "https://v8.googlecode.com/svn/trunk/" * } * } * ``` * * * Monorepo * * ```json * { * "repository": { * "type": "git", * "url": "https://github.com/facebook/react.git", * "directory": "packages/react-dom" * } * } * ``` * @see https://yarnpkg.com/en/docs/package-json#toc-repository * @see https://docs.npmjs.com/files/package.json#repository */ export interface IRepository { directory?: string; type: string; url: string; } /** * The "`scripts`" property is a dictionary containing script commands * that are run at various times in the lifecycle of your package. * The key is the lifecycle event, and the value is the command to run at that point. * ```json * { * "scripts": { * "install": "install.js", * "uninstall": "uninstall.js", * "build": "build.js", * "doc": "make-doc.js", * "test": "test.js", * } * } * ``` * @see https://docs.npmjs.com/misc/scripts * @see https://yarnpkg.com/en/docs/package-json#toc-scripts */ export interface IScriptsMap { install: string; postinstall: string; postpack: string; postrestart: string; postshrinkwrap: string; poststart: string; poststop: string; posttest: string; postuninstall: string; postversion: string; preinstall: string; prepack: string; prepare: string; prepublish: string; prepublishOnly: string; prerestart: string; preshrinkwrap: string; prestart: string; prestop: string; pretest: string; preuninstall: string; preversion: string; publish: string; restart: string; shrinkwrap: string; start: string; stop: string; test: string; uninstall: string; version: string; } /** * It checks against `process.arc`. * @see https://docs.npmjs.com/files/package.json#cpu * @see https://yarnpkg.com/en/docs/package-json#toc-cpu * @see https://nodejs.org/api/process.html#process_process_arch */ export type CPU = 'arm' | 'arm64' | 'ia32' | 'mips' | 'mipsel' | 'ppc' | 'ppc64' | 's390' | 's390x' | 'x32' | 'x64'; /** * You can specify which operating systems your module will run on * @see https://docs.npmjs.com/files/package.json#os * @see https://yarnpkg.com/en/docs/package-json#toc-os * @see https://nodejs.org/api/process.html#process_process_platform */ export type OS = 'aix' | 'android' | 'darwin' | 'freebsd' | 'linux' | 'openbsd' | 'sunos' | 'win32' | 'cygwin'; /** * SPDX License IDs which are not OSI approved. * @see https://spdx.org/licenses/ */ export type SPDXLicenseID = 'Abstyles' | 'Adobe-2006' | 'Adobe-Glyph' | 'ADSL' | 'Afmparse' | 'AGPL-1.0-only' | 'AGPL-1.0-or-later' | 'Aladdin' | 'AMDPLPA' | 'AML' | 'AMPAS' | 'ANTLR-PD' | 'Apache-1.0' | 'APAFML' | 'Bahyph' | 'Barr' | 'Beerware' | 'BitTorrent-1.0' | 'BitTorrent-1.1' | 'Borceux' | 'BSD-1-Clause' | 'BSD-2-Clause-FreeBSD' | 'BSD-2-Clause-NetBSD' | 'BSD-3-Clause-Attribution' | 'BSD-3-Clause-Clear' | 'BSD-3-Clause-LBNL' | 'BSD-3-Clause-No-Nuclear-License' | 'BSD-3-Clause-No-Nuclear-License-2014' | 'BSD-3-Clause-No-Nuclear-Warranty' | 'BSD-4-Clause' | 'BSD-4-Clause-UC' | 'BSD-Protection' | 'BSD-Source-Code' | 'bzip2-1.0.5' | 'bzip2-1.0.6' | 'Caldera' | 'CC-BY-1.0' | 'CC-BY-2.0' | 'CC-BY-2.5' | 'CC-BY-3.0' | 'CC-BY-4.0' | 'CC-BY-NC-1.0' | 'CC-BY-NC-2.0' | 'CC-BY-NC-2.5' | 'CC-BY-NC-3.0' | 'CC-BY-NC-4.0' | 'CC-BY-NC-ND-1.0' | 'CC-BY-NC-ND-2.0' | 'CC-BY-NC-ND-2.5' | 'CC-BY-NC-ND-3.0' | 'CC-BY-NC-ND-4.0' | 'CC-BY-NC-SA-1.0' | 'CC-BY-NC-SA-2.0' | 'CC-BY-NC-SA-2.5' | 'CC-BY-NC-SA-3.0' | 'CC-BY-NC-SA-4.0' | 'CC-BY-ND-1.0' | 'CC-BY-ND-2.0' | 'CC-BY-ND-2.5' | 'CC-BY-ND-3.0' | 'CC-BY-ND-4.0' | 'CC-BY-SA-1.0' | 'CC-BY-SA-2.0' | 'CC-BY-SA-2.5' | 'CC-BY-SA-3.0' | 'CC-BY-SA-4.0' | 'CC0-1.0' | 'CDDL-1.1' | 'CDLA-Permissive-1.0' | 'CDLA-Sharing-1.0' | 'CECILL-1.0' | 'CECILL-1.1' | 'CECILL-2.0' | 'CECILL-B' | 'CECILL-C' | 'CERN-OHL-1.1' | 'CERN-OHL-1.2' | 'ClArtistic' | 'CNRI-Jython' | 'CNRI-Python-GPL-Compatible' | 'Condor-1.1' | 'copyleft-next-0.3.0' | 'copyleft-next-0.3.1' | 'CPOL-1.02' | 'Crossword' | 'CrystalStacker' | 'Cube' | 'curl' | 'D-FSL-1.0' | 'diffmark' | 'DOC' | 'Dotseqn' | 'DSDP' | 'dvipdfm' | 'eGenix' | 'ErlPL-1.1' | 'EUPL-1.0' | 'Eurosym' | 'FreeImage' | 'FSFAP' | 'FSFUL' | 'FSFULLR' | 'FTL' | 'GFDL-1.1-only' | 'GFDL-1.1-or-later' | 'GFDL-1.2-only' | 'GFDL-1.2-or-later' | 'GFDL-1.3-only' | 'GFDL-1.3-or-later' | 'Giftware' | 'GL2PS' | 'Glide' | 'Glulxe' | 'gnuplot' | 'GPL-1.0-only' | 'GPL-1.0-or-later' | 'gSOAP-1.3b' | 'HaskellReport' | 'HPND-sell-variant' | 'IBM-pibs' | 'ICU' | 'IJG' | 'ImageMagick' | 'iMatix' | 'Imlib2' | 'Info-ZIP' | 'Intel-ACPI' | 'Interbase-1.0' | 'JasPer-2.0' | 'JPNIC' | 'JSON' | 'LAL-1.2' | 'LAL-1.3' | 'Latex2e' | 'Leptonica' | 'LGPLLR' | 'Libpng' | 'libpng-2.0' | 'libtiff' | 'Linux-OpenIB' | 'LPPL-1.0' | 'LPPL-1.1' | 'LPPL-1.2' | 'LPPL-1.3a' | 'MakeIndex' | 'MIT-advertising' | 'MIT-CMU' | 'MIT-enna' | 'MIT-feh' | 'MITNFA' | 'mpich2' | 'MTLL' | 'Mup' | 'NBPL-1.0' | 'Net-SNMP' | 'NetCDF' | 'Newsletr' | 'NLOD-1.0' | 'NLPL' | 'NOSL' | 'Noweb' | 'NPL-1.0' | 'NPL-1.1' | 'NRL' | 'OCCT-PL' | 'ODbL-1.0' | 'ODC-By-1.0' | 'OFL-1.0' | 'OGL-UK-1.0' | 'OGL-UK-2.0' | 'OGL-UK-3.0' | 'OLDAP-1.1' | 'OLDAP-1.2' | 'OLDAP-1.3' | 'OLDAP-1.4' | 'OLDAP-2.0' | 'OLDAP-2.0.1' | 'OLDAP-2.1' | 'OLDAP-2.2' | 'OLDAP-2.2.1' | 'OLDAP-2.2.2' | 'OLDAP-2.3' | 'OLDAP-2.4' | 'OLDAP-2.5' | 'OLDAP-2.6' | 'OLDAP-2.7' | 'OLDAP-2.8' | 'OML' | 'OpenSSL' | 'OPL-1.0' | 'OSL-1.1' | 'PDDL-1.0' | 'PHP-3.01' | 'Plexus' | 'psfrag' | 'psutils' | 'Qhull' | 'Rdisc' | 'RHeCos-1.1' | 'RSA-MD' | 'Ruby' | 'SAX-PD' | 'Saxpath' | 'SCEA' | 'Sendmail' | 'Sendmail-8.23' | 'SGI-B-1.0' | 'SGI-B-1.1' | 'SGI-B-2.0' | 'SISSL-1.2' | 'SMLNJ' | 'SMPPL' | 'SNIA' | 'Spencer-86' | 'Spencer-94' | 'Spencer-99' | 'SugarCRM-1.1.3' | 'SWL' | 'TAPR-OHL-1.0' | 'TCL' | 'TCP-wrappers' | 'TMate' | 'TORQUE-1.1' | 'TOSL' | 'TU-Berlin-1.0' | 'TU-Berlin-2.0' | 'Unicode-DFS-2015' | 'Unicode-DFS-2016' | 'Unicode-TOU' | 'Unlicense' | 'Vim' | 'VOSTROM' | 'W3C-19980720' | 'W3C-20150513' | 'Wsuipa' | 'WTFPL' | 'X11' | 'Xerox' | 'XFree86-1.1' | 'xinetd' | 'xpp' | 'XSkat' | 'YPL-1.0' | 'YPL-1.1' | 'Zed' | 'Zend-2.0' | 'Zimbra-1.3' | 'Zimbra-1.4' | 'zlib-acknowledgement' | 'ZPL-1.1' | 'ZPL-2.1'; /** * SPDX License IDs which are approved by OSI. * @see https://spdx.org/licenses/ */ export type SPDXLicenseIDApproved = '0BSD' | 'AAL' | 'AFL-1.1' | 'AFL-1.2' | 'AFL-2.0' | 'AFL-2.1' | 'AFL-3.0' | 'AGPL-3.0-only' | 'AGPL-3.0-or-later' | 'Apache-1.1' | 'Apache-2.0' | 'APL-1.0' | 'APSL-1.0' | 'APSL-1.1' | 'APSL-1.2' | 'APSL-2.0' | 'Artistic-1.0' | 'Artistic-1.0-cl8' | 'Artistic-1.0-Perl' | 'Artistic-2.0' | 'BSD-2-Clause' | 'BSD-2-Clause-Patent' | 'BSD-3-Clause' | 'BSL-1.0' | 'CATOSL-1.1' | 'CDDL-1.0' | 'CECILL-2.1' | 'CNRI-Python' | 'CPAL-1.0' | 'CPL-1.0' | 'CUA-OPL-1.0' | 'ECL-1.0' | 'ECL-2.0' | 'EFL-1.0' | 'EFL-2.0' | 'Entessa' | 'EPL-1.0' | 'EPL-2.0' | 'EUDatagrid' | 'EUPL-1.1' | 'EUPL-1.2' | 'Fair' | 'Frameworx-1.0' | 'GPL-2.0-only' | 'GPL-2.0-or-later' | 'GPL-3.0-only' | 'GPL-3.0-or-later' | 'HPND' | 'Intel' | 'IPA' | 'IPL-1.0' | 'ISC' | 'LGPL-2.0-only' | 'LGPL-2.0-or-later' | 'LGPL-2.1-only' | 'LGPL-2.1-or-later' | 'LGPL-3.0-only' | 'LGPL-3.0-or-later' | 'LiLiQ-P-1.1' | 'LiLiQ-R-1.1' | 'LiLiQ-Rplus-1.1' | 'LPL-1.0' | 'LPL-1.02' | 'LPPL-1.3c' | 'MirOS' | 'MIT' | 'MIT-0' | 'Motosoto' | 'MPL-1.0' | 'MPL-1.1' | 'MPL-2.0' | 'MPL-2.0-no-copyleft-exception' | 'MS-PL' | 'MS-RL' | 'Multics' | 'NASA-1.3' | 'Naumen' | 'NCSA' | 'NGPL' | 'Nokia' | 'NPOSL-3.0' | 'NTP' | 'OCLC-2.0' | 'OFL-1.1' | 'OGTSL' | 'OSET-PL-2.1' | 'OSL-1.0' | 'OSL-2.0' | 'OSL-2.1' | 'OSL-3.0' | 'PHP-3.0' | 'PostgreSQL' | 'Python-2.0' | 'QPL-1.0' | 'RPL-1.1' | 'RPL-1.5' | 'RPSL-1.0' | 'RSCPL' | 'SimPL-2.0' | 'SISSL' | 'Sleepycat' | 'SPL-1.0' | 'UPL-1.0' | 'VSL-1.0' | 'W3C' | 'Watcom-1.0' | 'Xnet' | 'Zlib' | 'ZPL-2.0';