import { DepGraph } from '@snyk/dep-graph'; export type PackageJsonBase = { name: string; version: string; dependencies?: Record; devDependencies?: Record; optionalDependencies?: Record; peerDependencies?: Record; resolutions?: Record; overrides?: Overrides; pnpm?: { overrides?: Overrides; }; aliases?: Record; }; export type Overrides = string | { [key: string]: Overrides; }; export type PkgIdentifier = string; export type NormalisedPkgs = Record; optionalDependencies: Record; resolved?: string; integrity?: string; checksum?: string; }>; export type DepGraphBuildOptions = { includeDevDeps: boolean; includeOptionalDeps: boolean; strictOutOfSync: boolean; includePeerDeps?: boolean; pruneNpmStrictOutOfSync?: boolean; honorAliases?: boolean; showNpmScope?: boolean; includeComponentMetadata?: boolean; }; export type LockFileParseOptions = { includeOptionalDeps: boolean; }; export type ProjectParseOptions = DepGraphBuildOptions & LockFileParseOptions & { pruneCycles: boolean; }; export type YarnLockV2WorkspaceArgs = { isWorkspacePkg: boolean; isRoot: boolean; rootResolutions: Record; workspacePackages?: Record; }; export type WorkspacePackageManifest = { dependencies?: Record; devDependencies?: Record; optionalDependencies?: Record; peerDependencies?: Record; }; export type YarnLockV2ProjectParseOptions = { includeDevDeps: boolean; includeOptionalDeps: boolean; strictOutOfSync: boolean; pruneWithinTopLevelDeps: boolean; honorAliases?: boolean; showNpmScope?: boolean; includeComponentMetadata?: boolean; }; export type PruneLevel = 'cycles' | 'withinTopLevelDeps' | 'none'; export type YarnLockV1ProjectParseOptions = { includeDevDeps: boolean; includeOptionalDeps: boolean; includePeerDeps: boolean; strictOutOfSync: boolean; pruneLevel: PruneLevel; honorAliases?: boolean; showNpmScope?: boolean; includeComponentMetadata?: boolean; }; export type Yarn1DepGraphBuildOptions = { includeDevDeps: boolean; includeOptionalDeps: boolean; includePeerDeps: boolean; strictOutOfSync: boolean; pruneWithinTopLevelDeps: boolean; showNpmScope?: boolean; includeComponentMetadata?: boolean; }; export type PnpmWorkspaceArgs = { isWorkspace: boolean; projectsVersionMap: Record; }; export type PnpmProject = { name: string; version: string; }; export type PnpmProjectParseOptions = { includeDevDeps: boolean; includePeerDeps?: boolean; includeOptionalDeps: boolean; strictOutOfSync: boolean; pruneWithinTopLevelDeps: boolean; exclude?: string; showNpmScope?: boolean; }; type NodePkgManagers = 'npm' | 'yarn' | 'pnpm'; export type ScannedNodeProject = { packageManager: NodePkgManagers; targetFile: string; depGraph: DepGraph; plugin: { name: string; runtime: string; }; }; export {};