UNPKG

@nodesecure/mama

Version:
53 lines 2.46 kB
import type { PackumentVersion, PackageJSON, WorkspacesPackageJSON, Contact } from "@nodesecure/npm-types"; type WithRequired<T, K extends keyof T> = T & { [P in K]-?: T[P]; }; export type NonOptionalPackageJSONProperties = "dependencies" | "devDependencies" | "scripts" | "gypfile"; /** * @see https://www.nerdycode.com/prevent-npm-executing-scripts-security/ */ export declare const kUnsafeNPMScripts: Set<string>; export type ManifestManagerDefaultProperties = Required<Pick<PackumentVersion, NonOptionalPackageJSONProperties>>; export interface ManifestManagerOptions { /** * Optional absolute location (directory) to the manifest */ location?: string; } export type ManifestManagerDocument = PackageJSON | WorkspacesPackageJSON | PackumentVersion; export type LocatedManifestManager<MetadataDef extends Record<string, any> = Record<string, any>> = ManifestManager<MetadataDef> & { location: string; }; export declare class ManifestManager<MetadataDef extends Record<string, any> = Record<string, any>> { static Default: Readonly<ManifestManagerDefaultProperties>; /** * Type guard to check if a ManifestManager instance has a location */ static isLocated<T extends Record<string, any>>(mama: ManifestManager<T>): mama is LocatedManifestManager<T>; metadata: MetadataDef; document: WithRequired<ManifestManagerDocument, NonOptionalPackageJSONProperties>; location: string | undefined; flags: { hasUnsafeScripts: boolean; isNative: boolean; }; constructor(document: ManifestManagerDocument, options?: ManifestManagerOptions); get name(): string; get version(): string; get moduleType(): import("./utils/inspectModuleType.ts").PackageModuleType; get hasZeroSemver(): boolean; get nodejsImports(): Record<`#${string}`, string | import("@nodesecure/npm-types").NodeImport>; get dependencies(): string[]; get devDependencies(): string[]; get spec(): `${string}@${string}`; get author(): Contact | null; get isWorkspace(): boolean; get integrity(): string; get license(): string | null; getEntryFiles(): IterableIterator<string>; private extractNodejsExport; static fromPackageJSON(locationOrManifest: string | ManifestManager): Promise<ManifestManager>; static fromPackageJSONSync(locationOrManifest: string | ManifestManager): ManifestManager; } export {}; //# sourceMappingURL=ManifestManager.class.d.ts.map