import type { Result } from "npm-package-arg"; /** * Partial package.json representation */ export type RawManifest = { name: string; version: string; private?: boolean; bin?: Record | string; scripts?: Record; dependencies?: Record; devDependencies?: Record; optionalDependencies?: Record; peerDependencies?: Record; publishConfig?: Record; workspaces?: string[] | { packages: string[] }; } & { [key: string]: any }; /** * Lerna's internal representation of a local package, with * many values resolved directly from the original JSON. */ export class Package { /** * Create a Package instance from parameters, possibly reusing existing instance. * @param ref A path to a package.json file, Package instance, or JSON object * @param [dir] If `ref` is a JSON object, this is the location of the manifest */ static lazy(ref: string | Package | RawManifest, dir?: string): Package; constructor(pkg: RawManifest, location: string, rootPath?: string); name: string; get location(): string; get private(): boolean; get resolved(): Result; get rootPath(): string; get scripts(): RawManifest["scripts"]; get bin(): RawManifest["scripts"]; get binLocation(): string; get manifestLocation(): string; get nodeModuleLocation(): string; get __isLernaPackage(): boolean; get version(): string; set version(v: string); get contents(): string; set contents(subDirectory: string); get dependencies(): RawManifest["dependencies"]; get devDependencies(): RawManifest["devDependencies"]; get optionalDependencies(): RawManifest["optionalDependencies"]; get peerDependencies(): RawManifest["peerDependencies"]; get(key: K): RawManifest[K]; set(key: K, val: RawManifest[K]): this; /** * Provide shallow copy for munging elsewhere */ toJSON(): RawManifest; /** * Refresh internal state from disk (e.g., changed by external lifecycles) */ refresh(): Promise; /** * Write manifest changes to disk */ serialize(): Promise; /** * Mutate local dependency spec according to type */ updateLocalDependency(resolved: Result, depVersion: string, savePrefix: string): void; }