/** * 套件類型定義 * Package type definitions * * Created by user on 2020/6/12. */ import type { ReleaseType as IReleaseType } from 'semver'; import { EnumPublishConfigRegistry } from './publishConfig'; import { ITSArrayListMaybeReadonly } from 'ts-type/lib/type/base'; import { ITSValueOf, ITSValueOfArray } from 'ts-type/lib/helper/key-value'; import { ITSTypeAndStringLiteral } from 'ts-type/lib/helper/string'; /** * 依賴項類型定義 * Dependency type definition * * @typeParam T - 依賴項名稱陣列或字串 / Dependency name array or string */ export type IDependency | string = string[]> = Record ? ITSValueOfArray : never, IVersionValue>; export type { IDependency as IPackageMap }; export type { IDependency as IDependencies }; /** * 版本號值類型 * Version value type * * 支援 semver 版本字串或預定義的特殊值 * Supports semver version string or predefined special values */ export type IVersionValue = ITSTypeAndStringLiteral | ITSTypeAndStringLiteral | string; /** * Semver 版本發布類型列舉 * Semver version release type enumeration */ export declare enum EnumVersionValue { 'major' = "major", 'minor' = "minor", 'latest' = "latest", 'greatest' = "greatest", 'newest' = "newest" } /** * 預發布版本類型常數列舉 * Prerelease version type constant enumeration */ export declare const enum EnumVersionValue2 { any = "*", latest = "latest", next = "next", beta = "beta", canary = "canary", stable = "stable", dev = "dev" } export type IPackageJsonDependenciesField = 'dependencies' | 'devDependencies' | 'peerDependencies' | 'optionalDependencies'; /** * package.json 依賴欄位名稱陣列常量 * package.json dependency field name array constant */ declare const packageJsonDependenciesFields: readonly ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"]; export { packageJsonDependenciesFields }; /** * 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. */ export interface IPackageJsonPublishConfig { registry?: string | EnumPublishConfigRegistry; access?: string | "public" | "restricted"; tag?: IPackageJsonTag; [k: string]: any; } export type IPackageJsonTag = string | ITSTypeAndStringLiteral, EnumVersionValue2.any>>; export type { IReleaseType };