You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@vltpkg/types

Package Overview
Dependencies
Maintainers
5
Versions
53
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vltpkg/types - npm Package Compare versions

Comparing version
0.0.0-30
to
0.0.0-31
+5
-1
dist/esm/index.d.ts

@@ -487,2 +487,3 @@ import type { DepID } from '@vltpkg/dep-id';

addNode: (id?: DepID, manifest?: NormalizedManifest, spec?: Spec, name?: string, version?: string) => NodeLike;
removeNode(node: NodeLike, replacement?: NodeLike, keepEdges?: boolean): void;
};

@@ -515,4 +516,7 @@ export type NodeLike = {

};
buildState?: 'none' | 'needed' | 'built' | 'failed';
buildAllowed?: boolean;
buildBlocked?: boolean;
options: SpecOptions;
toJSON: () => Pick<NodeLike, 'id' | 'name' | 'version' | 'location' | 'importer' | 'manifest' | 'projectRoot' | 'integrity' | 'resolved' | 'dev' | 'optional' | 'confused' | 'platform'> & {
toJSON: () => Pick<NodeLike, 'id' | 'name' | 'version' | 'location' | 'importer' | 'manifest' | 'projectRoot' | 'integrity' | 'resolved' | 'dev' | 'optional' | 'confused' | 'platform' | 'buildState' | 'buildAllowed' | 'buildBlocked'> & {
rawManifest?: NodeLike['manifest'];

@@ -519,0 +523,0 @@ };

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { error } from '@vltpkg/error-cause'\nimport { Version } from '@vltpkg/semver'\nimport type { DepID } from '@vltpkg/dep-id'\nimport type { Spec, SpecLikeBase, SpecOptions } from '@vltpkg/spec'\n\n/**\n * Utility type that overrides specific properties of type T with new types\n * from R. Constrains override values to exclude undefined, ensuring that\n * normalization cannot introduce undefined to fields that shouldn't have it.\n */\nexport type Override<\n T,\n R extends { [K in keyof R]: R[K] extends undefined ? never : R[K] },\n> = {\n [K in keyof T]: K extends keyof R ? R[K] : T[K]\n}\n\n/** anything that can be encoded in JSON */\nexport type JSONField =\n | JSONField[]\n | boolean\n | number\n | string\n | { [k: string]: JSONField }\n | null\n | undefined\n\n/** sha512 SRI string */\nexport type Integrity = `sha512-${string}`\n\n/** SHA256 key identifier */\nexport type KeyID = `SHA256:${string}`\n\n/** The Manifest['dist'] field present in registry manifests */\nexport type Dist = {\n integrity?: Integrity\n shasum?: string\n tarball?: string\n fileCount?: number\n unpackedSize?: number\n signatures?: {\n keyid: KeyID\n sig: string\n }[]\n}\n\n/** An object used to mark some peerDeps as optional */\nexport type PeerDependenciesMetaValue = {\n optional?: boolean\n}\n\n// Don't use Record here since TS cant do circular references with that\n// https://github.com/microsoft/TypeScript/issues/41164#issuecomment-1427073368\nexport type ConditionalValueObject = {\n [k: string]: ConditionalValue\n}\n\nexport type ConditionalValue =\n | ConditionalValue[]\n | ConditionalValueObject\n | string\n | null\n\nexport type ExportsSubpaths = {\n [path in '.' | `./${string}`]?: ConditionalValue\n}\n\nexport type Exports =\n | Exclude<ConditionalValue, null>\n | ExportsSubpaths\n\nexport type Imports = Record<`#${string}`, ConditionalValue>\n\nexport type FundingEntry =\n | string\n | { url: string; type?: string; [key: string]: JSONField }\nexport type Funding = FundingEntry | FundingEntry[]\n\n/**\n * An object with url and optional additional properties\n */\nexport type NormalizedFundingEntry = {\n url: string\n type?: string\n [key: string]: JSONField\n}\n\n/**\n * Normalized funding information, an array of {@link NormalizedFundingEntry}.\n */\nexport type NormalizedFunding = NormalizedFundingEntry[]\n\n/**\n * Normalize a single funding entry to a consistent format.\n */\nconst normalizeFundingEntry = (\n item: unknown,\n): NormalizedFundingEntry => {\n const getTypeFromUrl = (url: string): string => {\n try {\n const { hostname } = new URL(url)\n const domain =\n hostname.startsWith('www.') ? hostname.slice(4) : hostname\n if (domain === 'github.com') return 'github'\n if (domain === 'patreon.com') return 'patreon'\n if (domain === 'opencollective.com') return 'opencollective'\n return 'individual'\n } catch {\n return 'invalid'\n }\n }\n\n const validateType = (\n url: string,\n type?: string,\n ): string | undefined => {\n const urlType = getTypeFromUrl(url)\n if (\n !type ||\n ['github', 'patreon', 'opencollective'].includes(urlType)\n )\n return urlType\n if (urlType === 'invalid') return undefined\n return type\n }\n\n if (typeof item === 'string') {\n return { url: item, type: getTypeFromUrl(item) }\n }\n if (\n isObject(item) &&\n 'url' in item &&\n typeof item.url === 'string'\n ) {\n // If the item is already normalized, return it directly\n if (isNormalizedFundingEntry(item)) {\n return item\n }\n\n const obj = item\n const url = obj.url as string\n const validatedType = validateType(\n url,\n obj.type as string | undefined,\n )\n const result = { ...obj, url } as Record<string, unknown>\n if (validatedType) {\n result.type = validatedType\n } else {\n delete result.type\n }\n return result as NormalizedFundingEntry\n }\n return { url: '', type: 'individual' }\n}\n\n/**\n * Normalize funding information to a consistent format.\n */\nexport const normalizeFunding = (\n funding: unknown,\n): NormalizedFunding | undefined => {\n if (!funding) return\n\n const fundingArray = Array.isArray(funding) ? funding : [funding]\n const sources = fundingArray.map(normalizeFundingEntry)\n return sources.length > 0 ? sources : undefined\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedFundingEntry}.\n */\nexport const isNormalizedFundingEntry = (\n o: unknown,\n): o is NormalizedFundingEntry => {\n return (\n isObject(o) &&\n 'url' in o &&\n typeof o.url === 'string' &&\n !!o.url &&\n 'type' in o &&\n typeof o.type === 'string' &&\n ['github', 'patreon', 'opencollective', 'individual'].includes(\n o.type,\n )\n )\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedFunding}.\n */\nexport const isNormalizedFunding = (\n o: unknown,\n): o is NormalizedFunding => {\n return (\n Array.isArray(o) &&\n o.length > 0 &&\n o.every(isNormalizedFundingEntry)\n )\n}\n\n/**\n * Given a version Normalize the version field in a manifest.\n */\nexport const fixManifestVersion = <\n T extends Manifest | ManifestRegistry,\n>(\n manifest: T,\n): T => {\n if (!Object.hasOwn(manifest, 'version')) {\n return manifest\n }\n if (!manifest.version) {\n throw error('version is empty', {\n manifest,\n })\n }\n const version = Version.parse(manifest.version)\n manifest.version = version.toString()\n return manifest\n}\n\nconst kWriteAccess = Symbol.for('writeAccess')\nconst kIsPublisher = Symbol.for('isPublisher')\n\n/**\n * Parse a string or object into a normalized contributor.\n */\nexport const parsePerson = (\n person: unknown,\n writeAccess?: boolean,\n isPublisher?: boolean,\n): NormalizedContributorEntry | undefined => {\n if (!person) return\n\n if (isObject(person)) {\n // this is an already parsed object person, just return its value\n if (isNormalizedContributorEntry(person)) {\n return person\n }\n\n const name =\n typeof person.name === 'string' ? person.name : undefined\n const email =\n typeof person.email === 'string' ? person.email\n : typeof person.mail === 'string' ? person.mail\n : undefined\n\n if (!name && !email) return undefined\n\n return {\n name,\n email,\n [kWriteAccess]: writeAccess ?? false,\n [kIsPublisher]: isPublisher ?? false,\n }\n } else if (typeof person === 'string') {\n const NAME_PATTERN = /^([^(<]+)/\n const EMAIL_PATTERN = /<([^<>]+)>/\n const name = NAME_PATTERN.exec(person)?.[0].trim() || ''\n const email = EMAIL_PATTERN.exec(person)?.[1] || ''\n if (!name && !email) return undefined\n return {\n name: name || undefined,\n email: email || undefined,\n [kWriteAccess]: writeAccess ?? false,\n [kIsPublisher]: isPublisher ?? false,\n }\n }\n return\n}\n\n/**\n * Normalized contributors - always an array of {@link NormalizedContributorEntry}.\n */\nexport type NormalizedContributors = NormalizedContributorEntry[]\n\n/**\n * Represents a normalized contributor object. This is the type that is\n * used in the {@link NormalizedManifest} and {@link NormalizedManifestRegistry}\n * objects.\n */\nexport type NormalizedContributorEntry = {\n email?: string\n name?: string\n // in-memory we store those keys as symbols so that they\n // don't get written to user-managed package.json files\n [kWriteAccess]?: boolean\n [kIsPublisher]?: boolean\n // we also have a plain version that is used in the\n // transfer data format and lockfiles\n writeAccess?: boolean\n isPublisher?: boolean\n}\n\n/**\n * Type guard to check if a value is a normalized contributor entry.\n */\nexport const isNormalizedContributorEntry = (\n o: unknown,\n): o is NormalizedContributorEntry => {\n return (\n isObject(o) &&\n typeof o.name === 'string' &&\n !!o.name &&\n typeof o.email === 'string' &&\n !!o.email &&\n (isBoolean((o as NormalizedContributorEntry)[kWriteAccess]) ||\n isBoolean(o.writeAccess)) &&\n (isBoolean((o as NormalizedContributorEntry)[kIsPublisher]) ||\n isBoolean(o.isPublisher))\n )\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedContributors}.\n */\nexport const isNormalizedContributors = (\n o: unknown,\n): o is NormalizedContributors => {\n return (\n Array.isArray(o) &&\n o.length > 0 &&\n o.every(isNormalizedContributorEntry)\n )\n}\n\n/**\n * Normalize contributors and maintainers from various formats\n */\nexport const normalizeContributors = (\n contributors: unknown,\n maintainers?: unknown,\n): NormalizedContributorEntry[] | undefined => {\n if (!contributors && !maintainers) return\n\n const result: NormalizedContributorEntry[] = []\n\n // Parse regular contributors (if any)\n if (contributors) {\n const contributorsArray: unknown[] =\n Array.isArray(contributors) ? contributors : [contributors]\n\n const normalizedArray = contributorsArray.every(\n isNormalizedContributorEntry,\n )\n const noMaintainers =\n !maintainers ||\n (Array.isArray(maintainers) && maintainers.length === 0)\n\n // If all contributors are already normalized, and there are\n // no maintainers, return the contributors directly\n if (normalizedArray) {\n if (noMaintainers) {\n return contributorsArray.length > 0 ?\n contributorsArray\n : undefined\n } else {\n result.push(...contributorsArray)\n }\n }\n\n // Parse each contributor and filter out undefined values\n const parsedContributors = contributorsArray\n .map(person => parsePerson(person))\n .filter((c): c is NormalizedContributorEntry => c !== undefined)\n result.push(...parsedContributors)\n }\n\n // Parse maintainers with special flags\n if (maintainers) {\n const maintainersArray: unknown[] =\n Array.isArray(maintainers) ? maintainers : [maintainers]\n const parsedMaintainers = maintainersArray\n .map(person => parsePerson(person, true, true))\n .filter((c): c is NormalizedContributorEntry => c !== undefined)\n result.push(...parsedMaintainers)\n }\n\n return result.length > 0 ? result : undefined\n}\n\nexport type Person =\n | string\n | {\n name: string\n url?: string\n email?: string\n }\n\nexport type Repository =\n | string\n | {\n type: string\n url: string\n }\n\nexport type Bugs =\n | string\n | {\n url?: string\n email?: string\n }\n\nexport type Keywords = string[] | string\n\n/**\n * Normalized bugs entry - always an object with type and url/email\n */\nexport type NormalizedBugsEntry = {\n type?: 'email' | 'link'\n url?: string\n email?: string\n}\n\n/**\n * Normalized keywords - always an array of strings\n */\nexport type NormalizedKeywords = string[]\n\n/**\n * Normalized engines - always a record of string to string\n */\nexport type NormalizedEngines = Record<string, string>\n\n/**\n * Normalized OS list - always an array of strings\n */\nexport type NormalizedOs = string[]\n\n/**\n * Normalized CPU list - always an array of strings\n */\nexport type NormalizedCpu = string[]\n\n/**\n * Normalized bugs - always an array of {@link NormalizedBugsEntry}\n */\nexport type NormalizedBugs = NormalizedBugsEntry[]\n\n/**\n * Helper function to normalize a single {@link Bugs} entry.\n */\nconst normalizeSingleBug = (bug: unknown): NormalizedBugsEntry[] => {\n const res: NormalizedBugsEntry[] = []\n\n if (typeof bug === 'string') {\n // Try to parse as URL first - if it succeeds, treat as link\n try {\n new URL(bug)\n res.push({ type: 'link', url: bug })\n } catch {\n // TODO: need a more robust email validation, likely\n // to be replaced with valibot / zod\n // If URL parsing fails, check if it's a valid email\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\n if (emailRegex.test(bug)) {\n res.push({ type: 'email', email: bug })\n } else {\n // Default to link for plain strings like 'example.com'\n res.push({ type: 'link', url: bug })\n }\n }\n } else if (isObject(bug)) {\n if (isNormalizedBugsEntry(bug)) {\n res.push(bug)\n }\n const obj = bug as { url?: string; email?: string }\n\n if (obj.url) {\n res.push({ type: 'link', url: obj.url })\n }\n if (obj.email) {\n res.push({ type: 'email', email: obj.email })\n }\n }\n\n return res.length > 0 ? res : []\n}\n\n/**\n * Normalize bugs information to a {@link NormalizedBugs} consistent format.\n */\nexport const normalizeBugs = (\n bugs: unknown,\n): NormalizedBugs | undefined => {\n if (!bugs) return\n\n const result: NormalizedBugsEntry[] = []\n\n // Handle array of bugs entries\n if (Array.isArray(bugs)) {\n for (const bug of bugs) {\n result.push(...normalizeSingleBug(bug))\n }\n } else {\n // Handle single bugs entry\n result.push(...normalizeSingleBug(bugs))\n }\n\n return result.length > 0 ? result : undefined\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedBugsEntry}.\n */\nexport const isNormalizedBugsEntry = (\n o: unknown,\n): o is NormalizedBugsEntry => {\n return (\n isObject(o) &&\n 'type' in o &&\n ((o.type === 'email' &&\n typeof o.email === 'string' &&\n !!o.email) ||\n (o.type === 'link' && typeof o.url === 'string' && !!o.url))\n )\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedBugs}.\n */\nexport const isNormalizedBugs = (o: unknown): o is NormalizedBugs => {\n return (\n Array.isArray(o) && o.length > 0 && o.every(isNormalizedBugsEntry)\n )\n}\n\n/**\n * Normalize keywords information to a {@link NormalizedKeywords} consistent format.\n */\nexport const normalizeKeywords = (\n keywords: unknown,\n): NormalizedKeywords | undefined => {\n if (!keywords) return\n\n let keywordArray: string[] = []\n\n if (typeof keywords === 'string') {\n // Handle comma-separated string values\n keywordArray = keywords\n .split(',')\n .map(keyword => keyword.trim())\n .filter(keyword => keyword.length > 0)\n } else if (Array.isArray(keywords)) {\n // If all keywords are already normalized, return them directly\n if (isNormalizedKeywords(keywords)) {\n return keywords as unknown as NormalizedKeywords\n }\n // Handle array of strings, filter out empty/invalid entries\n keywordArray = keywords\n .filter(\n (keyword): keyword is string => typeof keyword === 'string',\n )\n .map(keyword => keyword.trim())\n .filter(keyword => keyword.length > 0)\n } else {\n // Invalid format\n return\n }\n\n return keywordArray.length > 0 ? keywordArray : undefined\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedKeywords}.\n */\nexport const isNormalizedKeywords = (\n o: unknown,\n): o is NormalizedKeywords => {\n return (\n Array.isArray(o) &&\n o.length > 0 &&\n o.every(\n keyword =>\n typeof keyword === 'string' &&\n !!keyword &&\n !keyword.startsWith(' ') &&\n !keyword.endsWith(' '),\n )\n )\n}\n\n/**\n * Normalize engines information to a {@link NormalizedEngines} consistent format.\n */\nexport const normalizeEngines = (\n engines: unknown,\n): NormalizedEngines | undefined => {\n if (!engines) return\n\n if (isNormalizedEngines(engines)) {\n // Return undefined if empty object\n return Object.keys(engines).length === 0 ? undefined : engines\n }\n\n // Invalid format\n return\n}\n\n/**\n * Normalize OS information to a {@link NormalizedOs} consistent format.\n */\nexport const normalizeOs = (\n os: unknown,\n): NormalizedOs | undefined => {\n if (!os) return\n\n let osArray: string[] = []\n\n if (typeof os === 'string') {\n // Handle single OS string\n osArray = [os.trim()].filter(item => item.length > 0)\n } else if (Array.isArray(os)) {\n // If all OS entries are already normalized, return them directly\n if (isNormalizedOs(os)) {\n return os\n }\n // Handle array of strings, filter out empty/invalid entries\n osArray = os\n .filter((item): item is string => typeof item === 'string')\n .map(item => item.trim())\n .filter(item => item.length > 0)\n } else {\n // Invalid format\n return\n }\n\n return osArray.length > 0 ? osArray : undefined\n}\n\n/**\n * Normalize CPU information to a {@link NormalizedCpu} consistent format.\n */\nexport const normalizeCpu = (\n cpu: unknown,\n): NormalizedCpu | undefined => {\n if (!cpu) return\n\n let cpuArray: string[] = []\n\n if (typeof cpu === 'string') {\n // Handle single CPU string\n cpuArray = [cpu.trim()].filter(item => item.length > 0)\n } else if (Array.isArray(cpu)) {\n // If all CPU entries are already normalized, return them directly\n if (isNormalizedCpu(cpu)) {\n return cpu\n }\n // Handle array of strings, filter out empty/invalid entries\n cpuArray = cpu\n .filter((item): item is string => typeof item === 'string')\n .map(item => item.trim())\n .filter(item => item.length > 0)\n } else {\n // Invalid format\n return\n }\n\n return cpuArray.length > 0 ? cpuArray : undefined\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedEngines}.\n */\nexport const isNormalizedEngines = (\n o: unknown,\n): o is NormalizedEngines => {\n return isRecordStringString(o)\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedOs}.\n */\nexport const isNormalizedOs = (o: unknown): o is NormalizedOs => {\n return (\n Array.isArray(o) &&\n o.length > 0 &&\n o.every(\n item =>\n typeof item === 'string' &&\n !!item &&\n !item.startsWith(' ') &&\n !item.endsWith(' '),\n )\n )\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedCpu}.\n */\nexport const isNormalizedCpu = (o: unknown): o is NormalizedCpu => {\n return (\n Array.isArray(o) &&\n o.length > 0 &&\n o.every(\n item =>\n typeof item === 'string' &&\n !!item &&\n !item.startsWith(' ') &&\n !item.endsWith(' '),\n )\n )\n}\n\nexport type Manifest = {\n /** The name of the package. optional because {} is a valid package.json */\n name?: string\n /** The version of the package. optional because {} is a valid package.json */\n version?: string\n /** production dependencies, name:specifier */\n dependencies?: Record<string, string>\n /** development dependencies, name:specifier */\n devDependencies?: Record<string, string>\n /** optional dependencies, name:specifier */\n optionalDependencies?: Record<string, string>\n /** peer dependencies, name:specifier */\n peerDependencies?: Record<string, string>\n /** peer dependencies marked as optional */\n peerDependenciesMeta?: Record<string, PeerDependenciesMetaValue>\n /** dependency ranges that are acceptable, but not forced */\n acceptDependencies?: Record<string, string>\n /** names of dependencies included in the package tarball */\n bundleDependencies?: string[]\n /** a message indicating that this is not to be used */\n deprecated?: string\n /** executable built and linked by this package */\n bin?: Record<string, string> | string\n /** run-script actions for this package */\n scripts?: Record<string, string>\n /** supported run-time platforms this package can run on */\n engines?: Record<string, string>\n /** supported operating systems this package can run on */\n os?: string[] | string\n /** supported CPU architectures this package can run on */\n cpu?: string[] | string\n /** URLs that can be visited to fund this project */\n funding?: Funding\n /** The homepage of the repository */\n homepage?: string\n /**\n * Only present in Manifests served by a registry. Contains information\n * about the artifact served for this package release.\n */\n dist?: Dist\n /** a short description of the package */\n description?: string\n /** search keywords */\n keywords?: Keywords\n /** where to go to file issues */\n bugs?: Bugs\n /** where the development happens */\n repository?: Repository\n /** the main module, if exports['.'] is not set */\n main?: string\n /** named subpath exports */\n exports?: Exports\n /** named #identifier imports */\n imports?: Imports\n /**\n * the HEAD of the git repo this was published from\n * only present in published packages\n */\n gitHead?: string\n /** whether the package is private */\n private?: boolean\n /** whether this is ESM or CommonJS by default */\n type?: 'commonjs' | 'module'\n /** npm puts this on published manifests */\n gypfile?: boolean\n /** the author of a package */\n author?: Person\n /** contributors to the package */\n contributors?: Person[]\n /** the license of the package */\n license?: string\n}\n\nexport type NormalizedFields = {\n bugs: NormalizedBugs | undefined\n author: NormalizedContributorEntry | undefined\n contributors: NormalizedContributors | undefined\n funding: NormalizedFunding | undefined\n keywords: NormalizedKeywords | undefined\n engines: NormalizedEngines | undefined\n os: NormalizedOs | undefined\n cpu: NormalizedCpu | undefined\n}\n\n/**\n * A {@link Manifest} object that contains normalized fields.\n */\nexport type NormalizedManifest = Override<Manifest, NormalizedFields>\n\n/**\n * A {@link ManifestRegistry} object that contains normalized fields.\n */\nexport type NormalizedManifestRegistry = Override<\n ManifestRegistry,\n NormalizedFields\n>\n\n/**\n * A specific type of {@link Manifest} that represents manifests that were\n * retrieved from a registry, these will always have `name`, `version`\n * and `dist` information along with an optional `maintainers` field.\n */\nexport type ManifestRegistry = Manifest &\n Required<Pick<Manifest, 'name' | 'version' | 'dist'>> & {\n maintainers?: unknown\n }\n\n/**\n * Maps the manifest type to the equivalent normalized manifest type.\n */\nexport type SomeNormalizedManifest<T> =\n T extends ManifestRegistry ? NormalizedManifestRegistry\n : NormalizedManifest\n\n/**\n * A document that represents available package versions in a given registry\n * along with extra information, such as `dist-tags` and `maintainers` info.\n * The `versions` field is key-value structure in which keys are the\n * available versions of a given package and values are\n * {@link ManifestRegistry} objects.\n */\nexport type Packument = {\n name: string\n 'dist-tags': Record<string, string>\n versions: Record<string, Manifest>\n modified?: string\n time?: Record<string, string>\n readme?: string\n contributors?: Person[]\n maintainers?: Person[]\n}\n\nexport type RefType = 'branch' | 'head' | 'other' | 'pull' | 'tag'\n\n/**\n * A representation of a given remote ref in a {@link RevDoc} object.\n */\nexport type RevDocEntry = Omit<Manifest, 'type'> &\n Required<Pick<Manifest, 'version'>> & {\n /** sha this references */\n sha: string\n /** ref as passed git locally */\n ref: string\n /** canonical full ref, like `refs/tags/blahblah` */\n rawRef: string\n /** what type of ref this is: 'branch', 'tag', etc. */\n type: RefType\n }\n\n/**\n * An object kind of resembling a packument, but about a git repo.\n */\nexport type RevDoc = Omit<Packument, 'versions'> & {\n /** all semver-looking tags go in this record */\n versions: Record<string, RevDocEntry>\n /** all named things that can be cloned down remotely */\n refs: Record<string, RevDocEntry>\n /** all named shas referenced above */\n shas: Record<string, string[]>\n}\n\n/**\n * A type guard to check if a value is a boolean.\n */\nexport const isBoolean = (value: unknown): value is boolean =>\n typeof value === 'boolean'\n\nexport const integrityRE = /^sha512-[a-zA-Z0-9/+]{86}==$/\nexport const isIntegrity = (i: unknown): i is Integrity =>\n typeof i === 'string' && integrityRE.test(i)\n\nexport const asIntegrity = (i: unknown): Integrity => {\n if (!isIntegrity(i)) {\n throw error(\n 'invalid integrity',\n {\n found: i,\n wanted: integrityRE,\n },\n asIntegrity,\n )\n }\n return i\n}\n\nexport const assertIntegrity: (\n i: unknown,\n) => asserts i is Integrity = i => {\n asIntegrity(i)\n}\n\nexport const keyIDRE = /^SHA256:[a-zA-Z0-9/+]{43}$/\nexport const isKeyID = (k: unknown): k is KeyID =>\n typeof k === 'string' && keyIDRE.test(k)\n\nexport const asKeyID = (k: unknown): KeyID => {\n if (!isKeyID(k)) {\n throw error(\n 'invalid key ID',\n {\n found: k,\n wanted: keyIDRE,\n },\n asKeyID,\n )\n }\n return k\n}\n\nexport const assertKeyID: (k: unknown) => asserts k is KeyID = k => {\n asKeyID(k)\n}\n\n/**\n * Convert an unknown value to an error.\n */\nexport const asError = (\n er: unknown,\n fallbackMessage = 'Unknown error',\n): Error =>\n er instanceof Error ? er : new Error(String(er) || fallbackMessage)\n\n/**\n * Check if a value is an error.\n */\nexport const isError = (er: unknown): er is Error =>\n er instanceof Error\n\n/**\n * Check if an error has a cause property.\n */\nexport const isErrorWithCause = (\n er: unknown,\n): er is Error & { cause: unknown } => isError(er) && 'cause' in er\n\n/**\n * Check if an unknown value is a plain object.\n */\nexport const isObject = (v: unknown): v is Record<string, unknown> =>\n !!v &&\n typeof v === 'object' &&\n (v.constructor === Object ||\n (v.constructor as unknown) === undefined)\n\nexport const maybeRecordStringString = (\n o: unknown,\n): o is Record<string, string> | undefined =>\n o === undefined || isRecordStringString(o)\n\nexport const isRecordStringString = (\n o: unknown,\n): o is Record<string, string> =>\n isRecordStringT<string>(o, s => typeof s === 'string')\n\nexport const assertRecordStringString: (o: unknown) => void = (\n o: unknown,\n): asserts o is Record<string, string> =>\n assertRecordStringT<string>(\n o,\n s => typeof s === 'string',\n 'Record<string, string>',\n )\n\nexport const isRecordStringT = <T>(\n o: unknown,\n check: (o: unknown) => o is T,\n): o is Record<string, T> =>\n isObject(o) &&\n Object.entries(o).every(\n ([k, v]) => typeof k === 'string' && check(v),\n )\n\nexport const assertRecordStringT: <T>(\n o: unknown,\n check: (o: unknown) => o is T,\n wanted: string,\n) => asserts o is Record<string, T> = <T>(\n o: unknown,\n check: (o: unknown) => o is T,\n /** a type description, like 'Record<string, Record<string, string>>' */\n wanted: string,\n): asserts o is Record<string, T> => {\n if (!isRecordStringT(o, check)) {\n throw error('Invalid record', {\n found: o,\n wanted,\n })\n }\n}\n\nexport const isRecordStringManifest = (\n o: unknown,\n): o is Record<string, Manifest> =>\n isRecordStringT<Manifest>(o, v => isManifest(v))\n\nexport const maybePeerDependenciesMetaSet = (\n o: unknown,\n): o is Record<string, PeerDependenciesMetaValue> | undefined =>\n o === undefined ||\n isRecordStringT<PeerDependenciesMetaValue>(o, v =>\n isPeerDependenciesMetaValue(v),\n )\n\nexport const maybeBoolean = (o: unknown): o is boolean =>\n o === undefined || typeof o === 'boolean'\n\nexport const isPeerDependenciesMetaValue = (\n o: unknown,\n): o is PeerDependenciesMetaValue =>\n isObject(o) && maybeBoolean(o.optional)\n\nexport const maybeString = (a: unknown): a is string | undefined =>\n a === undefined || typeof a === 'string'\n\nexport const maybeDist = (a: unknown): a is Manifest['dist'] =>\n a === undefined || (isObject(a) && maybeString(a.tarball))\n\n/**\n * Is a given unknown value a valid {@link Manifest} object?\n * Returns `true` if so.\n */\nexport const isManifest = (m: unknown): m is Manifest =>\n isObject(m) &&\n !Array.isArray(m) &&\n maybeString(m.name) &&\n maybeString(m.version) &&\n maybeRecordStringString(m.dependencies) &&\n maybeRecordStringString(m.devDependencies) &&\n maybeRecordStringString(m.optionalDependencies) &&\n maybeRecordStringString(m.peerDependencies) &&\n maybeRecordStringString(m.acceptDependencies) &&\n maybePeerDependenciesMetaSet(m.peerDependenciesMeta) &&\n maybeDist(m.dist)\n\n/**\n * A specific {@link Manifest} that is retrieved uniquely from reading\n * registry packument and manifest endpoints, it has `dist`, `name` and\n * `version` fields defined.\n */\nexport const isManifestRegistry = (\n m: unknown,\n): m is ManifestRegistry =>\n isManifest(m) && !!m.dist && !!m.name && !!m.version\n\n/**\n * Given an unknown value, convert it to a {@link Manifest}.\n */\nexport const asManifest = (\n m: unknown,\n from?: (...a: unknown[]) => any,\n): Manifest => {\n if (!isManifest(m)) {\n throw error('invalid manifest', { found: m }, from ?? asManifest)\n }\n return m\n}\n\n/**\n * Given a {@link Manifest} returns a {@link NormalizedManifest} that\n * contains normalized author, bugs, funding, contributors, keywords and\n * version fields.\n */\nexport const normalizeManifest = <\n T extends Manifest | ManifestRegistry,\n>(\n manifest: T,\n): SomeNormalizedManifest<T> => {\n manifest = fixManifestVersion(manifest)\n\n const normalizedAuthor = parsePerson(manifest.author)\n const normalizedFunding = normalizeFunding(manifest.funding)\n const normalizedContributors = normalizeContributors(\n manifest.contributors,\n (manifest as ManifestRegistry).maintainers,\n )\n const normalizedBugs = normalizeBugs(manifest.bugs)\n const normalizedKeywords = normalizeKeywords(manifest.keywords)\n const normalizedEngines = normalizeEngines(manifest.engines)\n const normalizedOs = normalizeOs(manifest.os)\n const normalizedCpu = normalizeCpu(manifest.cpu)\n\n // holds the same object reference but renames the variable here\n // so that it's simpler to cast it to the normalized type\n const normalizedManifest = manifest as SomeNormalizedManifest<T>\n\n if (normalizedAuthor) {\n normalizedManifest.author = normalizedAuthor\n } else {\n delete normalizedManifest.author\n }\n\n if (normalizedFunding) {\n normalizedManifest.funding = normalizedFunding\n } else {\n delete normalizedManifest.funding\n }\n\n if (normalizedContributors) {\n normalizedManifest.contributors = normalizedContributors\n } else {\n delete normalizedManifest.contributors\n }\n\n if (normalizedBugs) {\n normalizedManifest.bugs = normalizedBugs\n } else {\n delete normalizedManifest.bugs\n }\n\n if (normalizedKeywords) {\n normalizedManifest.keywords = normalizedKeywords\n } else {\n delete normalizedManifest.keywords\n }\n\n if (normalizedEngines) {\n normalizedManifest.engines = normalizedEngines\n } else {\n delete normalizedManifest.engines\n }\n\n if (normalizedOs) {\n normalizedManifest.os = normalizedOs\n } else {\n delete normalizedManifest.os\n }\n\n if (normalizedCpu) {\n normalizedManifest.cpu = normalizedCpu\n } else {\n delete normalizedManifest.cpu\n }\n\n // Remove maintainers field if it exists in the raw manifest\n // this can only happen if the manifest is of ManifestRegistry type\n if (\n 'maintainers' in normalizedManifest &&\n normalizedManifest.maintainers\n ) {\n delete normalizedManifest.maintainers\n return normalizedManifest\n }\n\n return normalizedManifest\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedManifest}.\n */\nexport const isNormalizedManifest = (\n o: unknown,\n): o is NormalizedManifest => {\n return (\n isManifest(o) &&\n // given that all these values are optional and potentially undefined\n // we only check their value content if they are present\n ('author' in o ? isNormalizedContributorEntry(o.author) : true) &&\n ('contributors' in o ?\n isNormalizedContributors(o.contributors)\n : true) &&\n ('funding' in o ? isNormalizedFunding(o.funding) : true) &&\n ('bugs' in o ? isNormalizedBugs(o.bugs) : true) &&\n ('keywords' in o ? isNormalizedKeywords(o.keywords) : true) &&\n ('engines' in o ? isNormalizedEngines(o.engines) : true) &&\n ('os' in o ? isNormalizedOs(o.os) : true) &&\n ('cpu' in o ? isNormalizedCpu(o.cpu) : true)\n )\n}\n\n/**\n * Given an unknown value, convert it to a {@link NormalizedManifest}.\n */\nexport const asNormalizedManifest = (\n m: unknown,\n from?: (...a: unknown[]) => any,\n): NormalizedManifest => {\n if (!isNormalizedManifest(m)) {\n throw error(\n 'invalid normalized manifest',\n { found: m },\n from ?? asNormalizedManifest,\n )\n }\n return m\n}\n\n/**\n * Given an unknown value, convert it to a {@link ManifestRegistry}.\n */\nexport const asManifestRegistry = (\n m: unknown,\n from?: (...a: unknown[]) => any,\n): ManifestRegistry => {\n if (!isManifestRegistry(m)) {\n throw error(\n 'invalid registry manifest',\n { found: m },\n from ?? asManifestRegistry,\n )\n }\n return m\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedManifestRegistry}.\n */\nexport const isNormalizedManifestRegistry = (\n o: unknown,\n): o is NormalizedManifestRegistry => {\n return isNormalizedManifest(o) && isManifestRegistry(o)\n}\n\n/**\n * Given an unknown value, convert it to a {@link NormalizedManifestRegistry}.\n */\nexport const asNormalizedManifestRegistry = (\n m: unknown,\n from?: (...a: unknown[]) => any,\n): NormalizedManifestRegistry => {\n if (!isNormalizedManifestRegistry(m)) {\n throw error(\n 'invalid normalized manifest registry',\n { found: m },\n from ?? asNormalizedManifestRegistry,\n )\n }\n return m\n}\n\n/**\n * Expands a normalized contributor entry by converting the\n * in-memory symbols to their plain values.\n */\nconst expandNormalizedContributorEntrySymbols = (\n c: NormalizedContributorEntry,\n): NormalizedContributorEntry => {\n return {\n ...c,\n writeAccess: c[kWriteAccess],\n isPublisher: c[kIsPublisher],\n }\n}\n\n/**\n * Walks a normalized manifest and expands any symbols found\n * in the `author` and `contributors` fields.\n */\nexport const expandNormalizedManifestSymbols = (\n m: NormalizedManifest,\n): NormalizedManifest => {\n const res = { ...m }\n\n if (isNormalizedContributorEntry(m.author)) {\n res.author = expandNormalizedContributorEntrySymbols(m.author)\n }\n\n if (isNormalizedContributors(m.contributors)) {\n res.contributors = m.contributors.map(\n expandNormalizedContributorEntrySymbols,\n )\n }\n\n return res\n}\n\nexport const assertManifest: (\n m: unknown,\n) => asserts m is Manifest = m => {\n asManifest(m, assertManifest)\n}\nexport const assertManifestRegistry: (\n m: unknown,\n) => asserts m is ManifestRegistry = m => {\n asManifestRegistry(m, assertManifestRegistry)\n}\n\nexport const isPackument = (p: unknown): p is Packument => {\n if (!isObject(p) || typeof p.name !== 'string') return false\n const { versions, 'dist-tags': distTags, time } = p\n return (\n isRecordStringString(distTags) &&\n isRecordStringManifest(versions) &&\n maybeRecordStringString(time) &&\n Object.values(distTags).every(v => versions[v]?.name == p.name)\n )\n}\n\nexport const asPackument = (\n p: unknown,\n from?: (...a: unknown[]) => any,\n): Packument => {\n if (!isPackument(p)) {\n throw error(\n 'invalid packument',\n { found: p },\n from ?? asPackument,\n )\n }\n return p\n}\n\nexport const assertPackument: (\n m: unknown,\n) => asserts m is Packument = m => {\n asPackument(m)\n}\n\n/**\n * Name of the package.json keys used to define different types of dependencies.\n */\nexport type DependencyTypeLong =\n | 'dependencies'\n | 'devDependencies'\n | 'optionalDependencies'\n | 'peerDependencies'\n\n/**\n * Unique keys that define different types of dependencies relationship.\n */\nexport type DependencyTypeShort =\n | 'dev'\n | 'optional'\n | 'peer'\n | 'peerOptional'\n | 'prod'\n\n/**\n * Unique keys that indicate how a new or updated dependency should be saved\n * back to a manifest.\n *\n * `'implicit'` is used to indicate that a dependency should be saved as\n * whatever type it already exists as. If the dependency does not exist,\n * then `'implicit'` is equivalent to `'prod'`, as that is the default\n * save type.\n */\nexport type DependencySaveType = DependencyTypeShort | 'implicit'\n\n/**\n * A set of the possible long dependency type names,\n * as used in `package.json` files.\n */\nexport const longDependencyTypes = new Set<DependencyTypeLong>([\n 'dependencies',\n 'devDependencies',\n 'peerDependencies',\n 'optionalDependencies',\n])\n\n/**\n * A set of the short type keys used to represent dependency relationships.\n */\nexport const shortDependencyTypes = new Set<DependencyTypeShort>([\n 'prod',\n 'dev',\n 'peer',\n 'optional',\n 'peerOptional',\n])\n\n/**\n * Maps between long form names usually used in `package.json` files\n * to a corresponding short form name, used in lockfiles.\n */\nexport const dependencyTypes = new Map<\n DependencyTypeLong,\n DependencyTypeShort\n>([\n ['dependencies', 'prod'],\n ['devDependencies', 'dev'],\n ['peerDependencies', 'peer'],\n ['optionalDependencies', 'optional'],\n])\n\n// Abstract graph types for loose coupling with graph implementations\nexport type EdgeLike = {\n name: string\n from: NodeLike\n spec: SpecLikeBase\n to?: NodeLike\n type: DependencyTypeShort\n optional?: boolean\n peer?: boolean\n}\n\nexport type GraphLike = {\n importers: Set<NodeLike>\n mainImporter: NodeLike\n projectRoot: string\n nodes: Map<DepID, NodeLike>\n nodesByName: Map<string, Set<NodeLike>>\n edges: Set<EdgeLike>\n addEdge: (\n type: DependencyTypeShort,\n spec: Spec,\n from: NodeLike,\n to?: NodeLike,\n ) => EdgeLike\n addNode: (\n id?: DepID,\n manifest?: NormalizedManifest,\n spec?: Spec,\n name?: string,\n version?: string,\n ) => NodeLike\n}\n\nexport type NodeLike = {\n id: DepID\n confused: boolean\n edgesIn: Set<EdgeLike>\n edgesOut: Map<string, EdgeLike>\n workspaces: Map<string, EdgeLike> | undefined\n location?: string\n manifest?: NormalizedManifest | null\n rawManifest?: NormalizedManifest | null\n name?: string | null\n version?: string | null\n integrity?: string | null\n resolved?: string | null\n importer: boolean\n graph: GraphLike\n mainImporter: boolean\n projectRoot: string\n dev: boolean\n optional: boolean\n modifier?: string | undefined\n registry?: string\n platform?: {\n engines?: Record<string, string>\n os?: string[] | string\n cpu?: string[] | string\n }\n options: SpecOptions\n toJSON: () => Pick<\n NodeLike,\n | 'id'\n | 'name'\n | 'version'\n | 'location'\n | 'importer'\n | 'manifest'\n | 'projectRoot'\n | 'integrity'\n | 'resolved'\n | 'dev'\n | 'optional'\n | 'confused'\n | 'platform'\n > & {\n rawManifest?: NodeLike['manifest']\n }\n toString(): string\n setResolved(): void\n setConfusedManifest(\n fixed: NormalizedManifest,\n confused?: NormalizedManifest,\n ): void\n maybeSetConfusedManifest(\n spec: Spec,\n confused?: NormalizedManifest,\n ): void\n}\n"]}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { error } from '@vltpkg/error-cause'\nimport { Version } from '@vltpkg/semver'\nimport type { DepID } from '@vltpkg/dep-id'\nimport type { Spec, SpecLikeBase, SpecOptions } from '@vltpkg/spec'\n\n/**\n * Utility type that overrides specific properties of type T with new types\n * from R. Constrains override values to exclude undefined, ensuring that\n * normalization cannot introduce undefined to fields that shouldn't have it.\n */\nexport type Override<\n T,\n R extends { [K in keyof R]: R[K] extends undefined ? never : R[K] },\n> = {\n [K in keyof T]: K extends keyof R ? R[K] : T[K]\n}\n\n/** anything that can be encoded in JSON */\nexport type JSONField =\n | JSONField[]\n | boolean\n | number\n | string\n | { [k: string]: JSONField }\n | null\n | undefined\n\n/** sha512 SRI string */\nexport type Integrity = `sha512-${string}`\n\n/** SHA256 key identifier */\nexport type KeyID = `SHA256:${string}`\n\n/** The Manifest['dist'] field present in registry manifests */\nexport type Dist = {\n integrity?: Integrity\n shasum?: string\n tarball?: string\n fileCount?: number\n unpackedSize?: number\n signatures?: {\n keyid: KeyID\n sig: string\n }[]\n}\n\n/** An object used to mark some peerDeps as optional */\nexport type PeerDependenciesMetaValue = {\n optional?: boolean\n}\n\n// Don't use Record here since TS cant do circular references with that\n// https://github.com/microsoft/TypeScript/issues/41164#issuecomment-1427073368\nexport type ConditionalValueObject = {\n [k: string]: ConditionalValue\n}\n\nexport type ConditionalValue =\n | ConditionalValue[]\n | ConditionalValueObject\n | string\n | null\n\nexport type ExportsSubpaths = {\n [path in '.' | `./${string}`]?: ConditionalValue\n}\n\nexport type Exports =\n | Exclude<ConditionalValue, null>\n | ExportsSubpaths\n\nexport type Imports = Record<`#${string}`, ConditionalValue>\n\nexport type FundingEntry =\n | string\n | { url: string; type?: string; [key: string]: JSONField }\nexport type Funding = FundingEntry | FundingEntry[]\n\n/**\n * An object with url and optional additional properties\n */\nexport type NormalizedFundingEntry = {\n url: string\n type?: string\n [key: string]: JSONField\n}\n\n/**\n * Normalized funding information, an array of {@link NormalizedFundingEntry}.\n */\nexport type NormalizedFunding = NormalizedFundingEntry[]\n\n/**\n * Normalize a single funding entry to a consistent format.\n */\nconst normalizeFundingEntry = (\n item: unknown,\n): NormalizedFundingEntry => {\n const getTypeFromUrl = (url: string): string => {\n try {\n const { hostname } = new URL(url)\n const domain =\n hostname.startsWith('www.') ? hostname.slice(4) : hostname\n if (domain === 'github.com') return 'github'\n if (domain === 'patreon.com') return 'patreon'\n if (domain === 'opencollective.com') return 'opencollective'\n return 'individual'\n } catch {\n return 'invalid'\n }\n }\n\n const validateType = (\n url: string,\n type?: string,\n ): string | undefined => {\n const urlType = getTypeFromUrl(url)\n if (\n !type ||\n ['github', 'patreon', 'opencollective'].includes(urlType)\n )\n return urlType\n if (urlType === 'invalid') return undefined\n return type\n }\n\n if (typeof item === 'string') {\n return { url: item, type: getTypeFromUrl(item) }\n }\n if (\n isObject(item) &&\n 'url' in item &&\n typeof item.url === 'string'\n ) {\n // If the item is already normalized, return it directly\n if (isNormalizedFundingEntry(item)) {\n return item\n }\n\n const obj = item\n const url = obj.url as string\n const validatedType = validateType(\n url,\n obj.type as string | undefined,\n )\n const result = { ...obj, url } as Record<string, unknown>\n if (validatedType) {\n result.type = validatedType\n } else {\n delete result.type\n }\n return result as NormalizedFundingEntry\n }\n return { url: '', type: 'individual' }\n}\n\n/**\n * Normalize funding information to a consistent format.\n */\nexport const normalizeFunding = (\n funding: unknown,\n): NormalizedFunding | undefined => {\n if (!funding) return\n\n const fundingArray = Array.isArray(funding) ? funding : [funding]\n const sources = fundingArray.map(normalizeFundingEntry)\n return sources.length > 0 ? sources : undefined\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedFundingEntry}.\n */\nexport const isNormalizedFundingEntry = (\n o: unknown,\n): o is NormalizedFundingEntry => {\n return (\n isObject(o) &&\n 'url' in o &&\n typeof o.url === 'string' &&\n !!o.url &&\n 'type' in o &&\n typeof o.type === 'string' &&\n ['github', 'patreon', 'opencollective', 'individual'].includes(\n o.type,\n )\n )\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedFunding}.\n */\nexport const isNormalizedFunding = (\n o: unknown,\n): o is NormalizedFunding => {\n return (\n Array.isArray(o) &&\n o.length > 0 &&\n o.every(isNormalizedFundingEntry)\n )\n}\n\n/**\n * Given a version Normalize the version field in a manifest.\n */\nexport const fixManifestVersion = <\n T extends Manifest | ManifestRegistry,\n>(\n manifest: T,\n): T => {\n if (!Object.hasOwn(manifest, 'version')) {\n return manifest\n }\n if (!manifest.version) {\n throw error('version is empty', {\n manifest,\n })\n }\n const version = Version.parse(manifest.version)\n manifest.version = version.toString()\n return manifest\n}\n\nconst kWriteAccess = Symbol.for('writeAccess')\nconst kIsPublisher = Symbol.for('isPublisher')\n\n/**\n * Parse a string or object into a normalized contributor.\n */\nexport const parsePerson = (\n person: unknown,\n writeAccess?: boolean,\n isPublisher?: boolean,\n): NormalizedContributorEntry | undefined => {\n if (!person) return\n\n if (isObject(person)) {\n // this is an already parsed object person, just return its value\n if (isNormalizedContributorEntry(person)) {\n return person\n }\n\n const name =\n typeof person.name === 'string' ? person.name : undefined\n const email =\n typeof person.email === 'string' ? person.email\n : typeof person.mail === 'string' ? person.mail\n : undefined\n\n if (!name && !email) return undefined\n\n return {\n name,\n email,\n [kWriteAccess]: writeAccess ?? false,\n [kIsPublisher]: isPublisher ?? false,\n }\n } else if (typeof person === 'string') {\n const NAME_PATTERN = /^([^(<]+)/\n const EMAIL_PATTERN = /<([^<>]+)>/\n const name = NAME_PATTERN.exec(person)?.[0].trim() || ''\n const email = EMAIL_PATTERN.exec(person)?.[1] || ''\n if (!name && !email) return undefined\n return {\n name: name || undefined,\n email: email || undefined,\n [kWriteAccess]: writeAccess ?? false,\n [kIsPublisher]: isPublisher ?? false,\n }\n }\n return\n}\n\n/**\n * Normalized contributors - always an array of {@link NormalizedContributorEntry}.\n */\nexport type NormalizedContributors = NormalizedContributorEntry[]\n\n/**\n * Represents a normalized contributor object. This is the type that is\n * used in the {@link NormalizedManifest} and {@link NormalizedManifestRegistry}\n * objects.\n */\nexport type NormalizedContributorEntry = {\n email?: string\n name?: string\n // in-memory we store those keys as symbols so that they\n // don't get written to user-managed package.json files\n [kWriteAccess]?: boolean\n [kIsPublisher]?: boolean\n // we also have a plain version that is used in the\n // transfer data format and lockfiles\n writeAccess?: boolean\n isPublisher?: boolean\n}\n\n/**\n * Type guard to check if a value is a normalized contributor entry.\n */\nexport const isNormalizedContributorEntry = (\n o: unknown,\n): o is NormalizedContributorEntry => {\n return (\n isObject(o) &&\n typeof o.name === 'string' &&\n !!o.name &&\n typeof o.email === 'string' &&\n !!o.email &&\n (isBoolean((o as NormalizedContributorEntry)[kWriteAccess]) ||\n isBoolean(o.writeAccess)) &&\n (isBoolean((o as NormalizedContributorEntry)[kIsPublisher]) ||\n isBoolean(o.isPublisher))\n )\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedContributors}.\n */\nexport const isNormalizedContributors = (\n o: unknown,\n): o is NormalizedContributors => {\n return (\n Array.isArray(o) &&\n o.length > 0 &&\n o.every(isNormalizedContributorEntry)\n )\n}\n\n/**\n * Normalize contributors and maintainers from various formats\n */\nexport const normalizeContributors = (\n contributors: unknown,\n maintainers?: unknown,\n): NormalizedContributorEntry[] | undefined => {\n if (!contributors && !maintainers) return\n\n const result: NormalizedContributorEntry[] = []\n\n // Parse regular contributors (if any)\n if (contributors) {\n const contributorsArray: unknown[] =\n Array.isArray(contributors) ? contributors : [contributors]\n\n const normalizedArray = contributorsArray.every(\n isNormalizedContributorEntry,\n )\n const noMaintainers =\n !maintainers ||\n (Array.isArray(maintainers) && maintainers.length === 0)\n\n // If all contributors are already normalized, and there are\n // no maintainers, return the contributors directly\n if (normalizedArray) {\n if (noMaintainers) {\n return contributorsArray.length > 0 ?\n contributorsArray\n : undefined\n } else {\n result.push(...contributorsArray)\n }\n }\n\n // Parse each contributor and filter out undefined values\n const parsedContributors = contributorsArray\n .map(person => parsePerson(person))\n .filter((c): c is NormalizedContributorEntry => c !== undefined)\n result.push(...parsedContributors)\n }\n\n // Parse maintainers with special flags\n if (maintainers) {\n const maintainersArray: unknown[] =\n Array.isArray(maintainers) ? maintainers : [maintainers]\n const parsedMaintainers = maintainersArray\n .map(person => parsePerson(person, true, true))\n .filter((c): c is NormalizedContributorEntry => c !== undefined)\n result.push(...parsedMaintainers)\n }\n\n return result.length > 0 ? result : undefined\n}\n\nexport type Person =\n | string\n | {\n name: string\n url?: string\n email?: string\n }\n\nexport type Repository =\n | string\n | {\n type: string\n url: string\n }\n\nexport type Bugs =\n | string\n | {\n url?: string\n email?: string\n }\n\nexport type Keywords = string[] | string\n\n/**\n * Normalized bugs entry - always an object with type and url/email\n */\nexport type NormalizedBugsEntry = {\n type?: 'email' | 'link'\n url?: string\n email?: string\n}\n\n/**\n * Normalized keywords - always an array of strings\n */\nexport type NormalizedKeywords = string[]\n\n/**\n * Normalized engines - always a record of string to string\n */\nexport type NormalizedEngines = Record<string, string>\n\n/**\n * Normalized OS list - always an array of strings\n */\nexport type NormalizedOs = string[]\n\n/**\n * Normalized CPU list - always an array of strings\n */\nexport type NormalizedCpu = string[]\n\n/**\n * Normalized bugs - always an array of {@link NormalizedBugsEntry}\n */\nexport type NormalizedBugs = NormalizedBugsEntry[]\n\n/**\n * Helper function to normalize a single {@link Bugs} entry.\n */\nconst normalizeSingleBug = (bug: unknown): NormalizedBugsEntry[] => {\n const res: NormalizedBugsEntry[] = []\n\n if (typeof bug === 'string') {\n // Try to parse as URL first - if it succeeds, treat as link\n try {\n new URL(bug)\n res.push({ type: 'link', url: bug })\n } catch {\n // TODO: need a more robust email validation, likely\n // to be replaced with valibot / zod\n // If URL parsing fails, check if it's a valid email\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\n if (emailRegex.test(bug)) {\n res.push({ type: 'email', email: bug })\n } else {\n // Default to link for plain strings like 'example.com'\n res.push({ type: 'link', url: bug })\n }\n }\n } else if (isObject(bug)) {\n if (isNormalizedBugsEntry(bug)) {\n res.push(bug)\n }\n const obj = bug as { url?: string; email?: string }\n\n if (obj.url) {\n res.push({ type: 'link', url: obj.url })\n }\n if (obj.email) {\n res.push({ type: 'email', email: obj.email })\n }\n }\n\n return res.length > 0 ? res : []\n}\n\n/**\n * Normalize bugs information to a {@link NormalizedBugs} consistent format.\n */\nexport const normalizeBugs = (\n bugs: unknown,\n): NormalizedBugs | undefined => {\n if (!bugs) return\n\n const result: NormalizedBugsEntry[] = []\n\n // Handle array of bugs entries\n if (Array.isArray(bugs)) {\n for (const bug of bugs) {\n result.push(...normalizeSingleBug(bug))\n }\n } else {\n // Handle single bugs entry\n result.push(...normalizeSingleBug(bugs))\n }\n\n return result.length > 0 ? result : undefined\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedBugsEntry}.\n */\nexport const isNormalizedBugsEntry = (\n o: unknown,\n): o is NormalizedBugsEntry => {\n return (\n isObject(o) &&\n 'type' in o &&\n ((o.type === 'email' &&\n typeof o.email === 'string' &&\n !!o.email) ||\n (o.type === 'link' && typeof o.url === 'string' && !!o.url))\n )\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedBugs}.\n */\nexport const isNormalizedBugs = (o: unknown): o is NormalizedBugs => {\n return (\n Array.isArray(o) && o.length > 0 && o.every(isNormalizedBugsEntry)\n )\n}\n\n/**\n * Normalize keywords information to a {@link NormalizedKeywords} consistent format.\n */\nexport const normalizeKeywords = (\n keywords: unknown,\n): NormalizedKeywords | undefined => {\n if (!keywords) return\n\n let keywordArray: string[] = []\n\n if (typeof keywords === 'string') {\n // Handle comma-separated string values\n keywordArray = keywords\n .split(',')\n .map(keyword => keyword.trim())\n .filter(keyword => keyword.length > 0)\n } else if (Array.isArray(keywords)) {\n // If all keywords are already normalized, return them directly\n if (isNormalizedKeywords(keywords)) {\n return keywords as unknown as NormalizedKeywords\n }\n // Handle array of strings, filter out empty/invalid entries\n keywordArray = keywords\n .filter(\n (keyword): keyword is string => typeof keyword === 'string',\n )\n .map(keyword => keyword.trim())\n .filter(keyword => keyword.length > 0)\n } else {\n // Invalid format\n return\n }\n\n return keywordArray.length > 0 ? keywordArray : undefined\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedKeywords}.\n */\nexport const isNormalizedKeywords = (\n o: unknown,\n): o is NormalizedKeywords => {\n return (\n Array.isArray(o) &&\n o.length > 0 &&\n o.every(\n keyword =>\n typeof keyword === 'string' &&\n !!keyword &&\n !keyword.startsWith(' ') &&\n !keyword.endsWith(' '),\n )\n )\n}\n\n/**\n * Normalize engines information to a {@link NormalizedEngines} consistent format.\n */\nexport const normalizeEngines = (\n engines: unknown,\n): NormalizedEngines | undefined => {\n if (!engines) return\n\n if (isNormalizedEngines(engines)) {\n // Return undefined if empty object\n return Object.keys(engines).length === 0 ? undefined : engines\n }\n\n // Invalid format\n return\n}\n\n/**\n * Normalize OS information to a {@link NormalizedOs} consistent format.\n */\nexport const normalizeOs = (\n os: unknown,\n): NormalizedOs | undefined => {\n if (!os) return\n\n let osArray: string[] = []\n\n if (typeof os === 'string') {\n // Handle single OS string\n osArray = [os.trim()].filter(item => item.length > 0)\n } else if (Array.isArray(os)) {\n // If all OS entries are already normalized, return them directly\n if (isNormalizedOs(os)) {\n return os\n }\n // Handle array of strings, filter out empty/invalid entries\n osArray = os\n .filter((item): item is string => typeof item === 'string')\n .map(item => item.trim())\n .filter(item => item.length > 0)\n } else {\n // Invalid format\n return\n }\n\n return osArray.length > 0 ? osArray : undefined\n}\n\n/**\n * Normalize CPU information to a {@link NormalizedCpu} consistent format.\n */\nexport const normalizeCpu = (\n cpu: unknown,\n): NormalizedCpu | undefined => {\n if (!cpu) return\n\n let cpuArray: string[] = []\n\n if (typeof cpu === 'string') {\n // Handle single CPU string\n cpuArray = [cpu.trim()].filter(item => item.length > 0)\n } else if (Array.isArray(cpu)) {\n // If all CPU entries are already normalized, return them directly\n if (isNormalizedCpu(cpu)) {\n return cpu\n }\n // Handle array of strings, filter out empty/invalid entries\n cpuArray = cpu\n .filter((item): item is string => typeof item === 'string')\n .map(item => item.trim())\n .filter(item => item.length > 0)\n } else {\n // Invalid format\n return\n }\n\n return cpuArray.length > 0 ? cpuArray : undefined\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedEngines}.\n */\nexport const isNormalizedEngines = (\n o: unknown,\n): o is NormalizedEngines => {\n return isRecordStringString(o)\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedOs}.\n */\nexport const isNormalizedOs = (o: unknown): o is NormalizedOs => {\n return (\n Array.isArray(o) &&\n o.length > 0 &&\n o.every(\n item =>\n typeof item === 'string' &&\n !!item &&\n !item.startsWith(' ') &&\n !item.endsWith(' '),\n )\n )\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedCpu}.\n */\nexport const isNormalizedCpu = (o: unknown): o is NormalizedCpu => {\n return (\n Array.isArray(o) &&\n o.length > 0 &&\n o.every(\n item =>\n typeof item === 'string' &&\n !!item &&\n !item.startsWith(' ') &&\n !item.endsWith(' '),\n )\n )\n}\n\nexport type Manifest = {\n /** The name of the package. optional because {} is a valid package.json */\n name?: string\n /** The version of the package. optional because {} is a valid package.json */\n version?: string\n /** production dependencies, name:specifier */\n dependencies?: Record<string, string>\n /** development dependencies, name:specifier */\n devDependencies?: Record<string, string>\n /** optional dependencies, name:specifier */\n optionalDependencies?: Record<string, string>\n /** peer dependencies, name:specifier */\n peerDependencies?: Record<string, string>\n /** peer dependencies marked as optional */\n peerDependenciesMeta?: Record<string, PeerDependenciesMetaValue>\n /** dependency ranges that are acceptable, but not forced */\n acceptDependencies?: Record<string, string>\n /** names of dependencies included in the package tarball */\n bundleDependencies?: string[]\n /** a message indicating that this is not to be used */\n deprecated?: string\n /** executable built and linked by this package */\n bin?: Record<string, string> | string\n /** run-script actions for this package */\n scripts?: Record<string, string>\n /** supported run-time platforms this package can run on */\n engines?: Record<string, string>\n /** supported operating systems this package can run on */\n os?: string[] | string\n /** supported CPU architectures this package can run on */\n cpu?: string[] | string\n /** URLs that can be visited to fund this project */\n funding?: Funding\n /** The homepage of the repository */\n homepage?: string\n /**\n * Only present in Manifests served by a registry. Contains information\n * about the artifact served for this package release.\n */\n dist?: Dist\n /** a short description of the package */\n description?: string\n /** search keywords */\n keywords?: Keywords\n /** where to go to file issues */\n bugs?: Bugs\n /** where the development happens */\n repository?: Repository\n /** the main module, if exports['.'] is not set */\n main?: string\n /** named subpath exports */\n exports?: Exports\n /** named #identifier imports */\n imports?: Imports\n /**\n * the HEAD of the git repo this was published from\n * only present in published packages\n */\n gitHead?: string\n /** whether the package is private */\n private?: boolean\n /** whether this is ESM or CommonJS by default */\n type?: 'commonjs' | 'module'\n /** npm puts this on published manifests */\n gypfile?: boolean\n /** the author of a package */\n author?: Person\n /** contributors to the package */\n contributors?: Person[]\n /** the license of the package */\n license?: string\n}\n\nexport type NormalizedFields = {\n bugs: NormalizedBugs | undefined\n author: NormalizedContributorEntry | undefined\n contributors: NormalizedContributors | undefined\n funding: NormalizedFunding | undefined\n keywords: NormalizedKeywords | undefined\n engines: NormalizedEngines | undefined\n os: NormalizedOs | undefined\n cpu: NormalizedCpu | undefined\n}\n\n/**\n * A {@link Manifest} object that contains normalized fields.\n */\nexport type NormalizedManifest = Override<Manifest, NormalizedFields>\n\n/**\n * A {@link ManifestRegistry} object that contains normalized fields.\n */\nexport type NormalizedManifestRegistry = Override<\n ManifestRegistry,\n NormalizedFields\n>\n\n/**\n * A specific type of {@link Manifest} that represents manifests that were\n * retrieved from a registry, these will always have `name`, `version`\n * and `dist` information along with an optional `maintainers` field.\n */\nexport type ManifestRegistry = Manifest &\n Required<Pick<Manifest, 'name' | 'version' | 'dist'>> & {\n maintainers?: unknown\n }\n\n/**\n * Maps the manifest type to the equivalent normalized manifest type.\n */\nexport type SomeNormalizedManifest<T> =\n T extends ManifestRegistry ? NormalizedManifestRegistry\n : NormalizedManifest\n\n/**\n * A document that represents available package versions in a given registry\n * along with extra information, such as `dist-tags` and `maintainers` info.\n * The `versions` field is key-value structure in which keys are the\n * available versions of a given package and values are\n * {@link ManifestRegistry} objects.\n */\nexport type Packument = {\n name: string\n 'dist-tags': Record<string, string>\n versions: Record<string, Manifest>\n modified?: string\n time?: Record<string, string>\n readme?: string\n contributors?: Person[]\n maintainers?: Person[]\n}\n\nexport type RefType = 'branch' | 'head' | 'other' | 'pull' | 'tag'\n\n/**\n * A representation of a given remote ref in a {@link RevDoc} object.\n */\nexport type RevDocEntry = Omit<Manifest, 'type'> &\n Required<Pick<Manifest, 'version'>> & {\n /** sha this references */\n sha: string\n /** ref as passed git locally */\n ref: string\n /** canonical full ref, like `refs/tags/blahblah` */\n rawRef: string\n /** what type of ref this is: 'branch', 'tag', etc. */\n type: RefType\n }\n\n/**\n * An object kind of resembling a packument, but about a git repo.\n */\nexport type RevDoc = Omit<Packument, 'versions'> & {\n /** all semver-looking tags go in this record */\n versions: Record<string, RevDocEntry>\n /** all named things that can be cloned down remotely */\n refs: Record<string, RevDocEntry>\n /** all named shas referenced above */\n shas: Record<string, string[]>\n}\n\n/**\n * A type guard to check if a value is a boolean.\n */\nexport const isBoolean = (value: unknown): value is boolean =>\n typeof value === 'boolean'\n\nexport const integrityRE = /^sha512-[a-zA-Z0-9/+]{86}==$/\nexport const isIntegrity = (i: unknown): i is Integrity =>\n typeof i === 'string' && integrityRE.test(i)\n\nexport const asIntegrity = (i: unknown): Integrity => {\n if (!isIntegrity(i)) {\n throw error(\n 'invalid integrity',\n {\n found: i,\n wanted: integrityRE,\n },\n asIntegrity,\n )\n }\n return i\n}\n\nexport const assertIntegrity: (\n i: unknown,\n) => asserts i is Integrity = i => {\n asIntegrity(i)\n}\n\nexport const keyIDRE = /^SHA256:[a-zA-Z0-9/+]{43}$/\nexport const isKeyID = (k: unknown): k is KeyID =>\n typeof k === 'string' && keyIDRE.test(k)\n\nexport const asKeyID = (k: unknown): KeyID => {\n if (!isKeyID(k)) {\n throw error(\n 'invalid key ID',\n {\n found: k,\n wanted: keyIDRE,\n },\n asKeyID,\n )\n }\n return k\n}\n\nexport const assertKeyID: (k: unknown) => asserts k is KeyID = k => {\n asKeyID(k)\n}\n\n/**\n * Convert an unknown value to an error.\n */\nexport const asError = (\n er: unknown,\n fallbackMessage = 'Unknown error',\n): Error =>\n er instanceof Error ? er : new Error(String(er) || fallbackMessage)\n\n/**\n * Check if a value is an error.\n */\nexport const isError = (er: unknown): er is Error =>\n er instanceof Error\n\n/**\n * Check if an error has a cause property.\n */\nexport const isErrorWithCause = (\n er: unknown,\n): er is Error & { cause: unknown } => isError(er) && 'cause' in er\n\n/**\n * Check if an unknown value is a plain object.\n */\nexport const isObject = (v: unknown): v is Record<string, unknown> =>\n !!v &&\n typeof v === 'object' &&\n (v.constructor === Object ||\n (v.constructor as unknown) === undefined)\n\nexport const maybeRecordStringString = (\n o: unknown,\n): o is Record<string, string> | undefined =>\n o === undefined || isRecordStringString(o)\n\nexport const isRecordStringString = (\n o: unknown,\n): o is Record<string, string> =>\n isRecordStringT<string>(o, s => typeof s === 'string')\n\nexport const assertRecordStringString: (o: unknown) => void = (\n o: unknown,\n): asserts o is Record<string, string> =>\n assertRecordStringT<string>(\n o,\n s => typeof s === 'string',\n 'Record<string, string>',\n )\n\nexport const isRecordStringT = <T>(\n o: unknown,\n check: (o: unknown) => o is T,\n): o is Record<string, T> =>\n isObject(o) &&\n Object.entries(o).every(\n ([k, v]) => typeof k === 'string' && check(v),\n )\n\nexport const assertRecordStringT: <T>(\n o: unknown,\n check: (o: unknown) => o is T,\n wanted: string,\n) => asserts o is Record<string, T> = <T>(\n o: unknown,\n check: (o: unknown) => o is T,\n /** a type description, like 'Record<string, Record<string, string>>' */\n wanted: string,\n): asserts o is Record<string, T> => {\n if (!isRecordStringT(o, check)) {\n throw error('Invalid record', {\n found: o,\n wanted,\n })\n }\n}\n\nexport const isRecordStringManifest = (\n o: unknown,\n): o is Record<string, Manifest> =>\n isRecordStringT<Manifest>(o, v => isManifest(v))\n\nexport const maybePeerDependenciesMetaSet = (\n o: unknown,\n): o is Record<string, PeerDependenciesMetaValue> | undefined =>\n o === undefined ||\n isRecordStringT<PeerDependenciesMetaValue>(o, v =>\n isPeerDependenciesMetaValue(v),\n )\n\nexport const maybeBoolean = (o: unknown): o is boolean =>\n o === undefined || typeof o === 'boolean'\n\nexport const isPeerDependenciesMetaValue = (\n o: unknown,\n): o is PeerDependenciesMetaValue =>\n isObject(o) && maybeBoolean(o.optional)\n\nexport const maybeString = (a: unknown): a is string | undefined =>\n a === undefined || typeof a === 'string'\n\nexport const maybeDist = (a: unknown): a is Manifest['dist'] =>\n a === undefined || (isObject(a) && maybeString(a.tarball))\n\n/**\n * Is a given unknown value a valid {@link Manifest} object?\n * Returns `true` if so.\n */\nexport const isManifest = (m: unknown): m is Manifest =>\n isObject(m) &&\n !Array.isArray(m) &&\n maybeString(m.name) &&\n maybeString(m.version) &&\n maybeRecordStringString(m.dependencies) &&\n maybeRecordStringString(m.devDependencies) &&\n maybeRecordStringString(m.optionalDependencies) &&\n maybeRecordStringString(m.peerDependencies) &&\n maybeRecordStringString(m.acceptDependencies) &&\n maybePeerDependenciesMetaSet(m.peerDependenciesMeta) &&\n maybeDist(m.dist)\n\n/**\n * A specific {@link Manifest} that is retrieved uniquely from reading\n * registry packument and manifest endpoints, it has `dist`, `name` and\n * `version` fields defined.\n */\nexport const isManifestRegistry = (\n m: unknown,\n): m is ManifestRegistry =>\n isManifest(m) && !!m.dist && !!m.name && !!m.version\n\n/**\n * Given an unknown value, convert it to a {@link Manifest}.\n */\nexport const asManifest = (\n m: unknown,\n from?: (...a: unknown[]) => any,\n): Manifest => {\n if (!isManifest(m)) {\n throw error('invalid manifest', { found: m }, from ?? asManifest)\n }\n return m\n}\n\n/**\n * Given a {@link Manifest} returns a {@link NormalizedManifest} that\n * contains normalized author, bugs, funding, contributors, keywords and\n * version fields.\n */\nexport const normalizeManifest = <\n T extends Manifest | ManifestRegistry,\n>(\n manifest: T,\n): SomeNormalizedManifest<T> => {\n manifest = fixManifestVersion(manifest)\n\n const normalizedAuthor = parsePerson(manifest.author)\n const normalizedFunding = normalizeFunding(manifest.funding)\n const normalizedContributors = normalizeContributors(\n manifest.contributors,\n (manifest as ManifestRegistry).maintainers,\n )\n const normalizedBugs = normalizeBugs(manifest.bugs)\n const normalizedKeywords = normalizeKeywords(manifest.keywords)\n const normalizedEngines = normalizeEngines(manifest.engines)\n const normalizedOs = normalizeOs(manifest.os)\n const normalizedCpu = normalizeCpu(manifest.cpu)\n\n // holds the same object reference but renames the variable here\n // so that it's simpler to cast it to the normalized type\n const normalizedManifest = manifest as SomeNormalizedManifest<T>\n\n if (normalizedAuthor) {\n normalizedManifest.author = normalizedAuthor\n } else {\n delete normalizedManifest.author\n }\n\n if (normalizedFunding) {\n normalizedManifest.funding = normalizedFunding\n } else {\n delete normalizedManifest.funding\n }\n\n if (normalizedContributors) {\n normalizedManifest.contributors = normalizedContributors\n } else {\n delete normalizedManifest.contributors\n }\n\n if (normalizedBugs) {\n normalizedManifest.bugs = normalizedBugs\n } else {\n delete normalizedManifest.bugs\n }\n\n if (normalizedKeywords) {\n normalizedManifest.keywords = normalizedKeywords\n } else {\n delete normalizedManifest.keywords\n }\n\n if (normalizedEngines) {\n normalizedManifest.engines = normalizedEngines\n } else {\n delete normalizedManifest.engines\n }\n\n if (normalizedOs) {\n normalizedManifest.os = normalizedOs\n } else {\n delete normalizedManifest.os\n }\n\n if (normalizedCpu) {\n normalizedManifest.cpu = normalizedCpu\n } else {\n delete normalizedManifest.cpu\n }\n\n // Remove maintainers field if it exists in the raw manifest\n // this can only happen if the manifest is of ManifestRegistry type\n if (\n 'maintainers' in normalizedManifest &&\n normalizedManifest.maintainers\n ) {\n delete normalizedManifest.maintainers\n return normalizedManifest\n }\n\n return normalizedManifest\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedManifest}.\n */\nexport const isNormalizedManifest = (\n o: unknown,\n): o is NormalizedManifest => {\n return (\n isManifest(o) &&\n // given that all these values are optional and potentially undefined\n // we only check their value content if they are present\n ('author' in o ? isNormalizedContributorEntry(o.author) : true) &&\n ('contributors' in o ?\n isNormalizedContributors(o.contributors)\n : true) &&\n ('funding' in o ? isNormalizedFunding(o.funding) : true) &&\n ('bugs' in o ? isNormalizedBugs(o.bugs) : true) &&\n ('keywords' in o ? isNormalizedKeywords(o.keywords) : true) &&\n ('engines' in o ? isNormalizedEngines(o.engines) : true) &&\n ('os' in o ? isNormalizedOs(o.os) : true) &&\n ('cpu' in o ? isNormalizedCpu(o.cpu) : true)\n )\n}\n\n/**\n * Given an unknown value, convert it to a {@link NormalizedManifest}.\n */\nexport const asNormalizedManifest = (\n m: unknown,\n from?: (...a: unknown[]) => any,\n): NormalizedManifest => {\n if (!isNormalizedManifest(m)) {\n throw error(\n 'invalid normalized manifest',\n { found: m },\n from ?? asNormalizedManifest,\n )\n }\n return m\n}\n\n/**\n * Given an unknown value, convert it to a {@link ManifestRegistry}.\n */\nexport const asManifestRegistry = (\n m: unknown,\n from?: (...a: unknown[]) => any,\n): ManifestRegistry => {\n if (!isManifestRegistry(m)) {\n throw error(\n 'invalid registry manifest',\n { found: m },\n from ?? asManifestRegistry,\n )\n }\n return m\n}\n\n/**\n * Type guard to check if a value is a {@link NormalizedManifestRegistry}.\n */\nexport const isNormalizedManifestRegistry = (\n o: unknown,\n): o is NormalizedManifestRegistry => {\n return isNormalizedManifest(o) && isManifestRegistry(o)\n}\n\n/**\n * Given an unknown value, convert it to a {@link NormalizedManifestRegistry}.\n */\nexport const asNormalizedManifestRegistry = (\n m: unknown,\n from?: (...a: unknown[]) => any,\n): NormalizedManifestRegistry => {\n if (!isNormalizedManifestRegistry(m)) {\n throw error(\n 'invalid normalized manifest registry',\n { found: m },\n from ?? asNormalizedManifestRegistry,\n )\n }\n return m\n}\n\n/**\n * Expands a normalized contributor entry by converting the\n * in-memory symbols to their plain values.\n */\nconst expandNormalizedContributorEntrySymbols = (\n c: NormalizedContributorEntry,\n): NormalizedContributorEntry => {\n return {\n ...c,\n writeAccess: c[kWriteAccess],\n isPublisher: c[kIsPublisher],\n }\n}\n\n/**\n * Walks a normalized manifest and expands any symbols found\n * in the `author` and `contributors` fields.\n */\nexport const expandNormalizedManifestSymbols = (\n m: NormalizedManifest,\n): NormalizedManifest => {\n const res = { ...m }\n\n if (isNormalizedContributorEntry(m.author)) {\n res.author = expandNormalizedContributorEntrySymbols(m.author)\n }\n\n if (isNormalizedContributors(m.contributors)) {\n res.contributors = m.contributors.map(\n expandNormalizedContributorEntrySymbols,\n )\n }\n\n return res\n}\n\nexport const assertManifest: (\n m: unknown,\n) => asserts m is Manifest = m => {\n asManifest(m, assertManifest)\n}\nexport const assertManifestRegistry: (\n m: unknown,\n) => asserts m is ManifestRegistry = m => {\n asManifestRegistry(m, assertManifestRegistry)\n}\n\nexport const isPackument = (p: unknown): p is Packument => {\n if (!isObject(p) || typeof p.name !== 'string') return false\n const { versions, 'dist-tags': distTags, time } = p\n return (\n isRecordStringString(distTags) &&\n isRecordStringManifest(versions) &&\n maybeRecordStringString(time) &&\n Object.values(distTags).every(v => versions[v]?.name == p.name)\n )\n}\n\nexport const asPackument = (\n p: unknown,\n from?: (...a: unknown[]) => any,\n): Packument => {\n if (!isPackument(p)) {\n throw error(\n 'invalid packument',\n { found: p },\n from ?? asPackument,\n )\n }\n return p\n}\n\nexport const assertPackument: (\n m: unknown,\n) => asserts m is Packument = m => {\n asPackument(m)\n}\n\n/**\n * Name of the package.json keys used to define different types of dependencies.\n */\nexport type DependencyTypeLong =\n | 'dependencies'\n | 'devDependencies'\n | 'optionalDependencies'\n | 'peerDependencies'\n\n/**\n * Unique keys that define different types of dependencies relationship.\n */\nexport type DependencyTypeShort =\n | 'dev'\n | 'optional'\n | 'peer'\n | 'peerOptional'\n | 'prod'\n\n/**\n * Unique keys that indicate how a new or updated dependency should be saved\n * back to a manifest.\n *\n * `'implicit'` is used to indicate that a dependency should be saved as\n * whatever type it already exists as. If the dependency does not exist,\n * then `'implicit'` is equivalent to `'prod'`, as that is the default\n * save type.\n */\nexport type DependencySaveType = DependencyTypeShort | 'implicit'\n\n/**\n * A set of the possible long dependency type names,\n * as used in `package.json` files.\n */\nexport const longDependencyTypes = new Set<DependencyTypeLong>([\n 'dependencies',\n 'devDependencies',\n 'peerDependencies',\n 'optionalDependencies',\n])\n\n/**\n * A set of the short type keys used to represent dependency relationships.\n */\nexport const shortDependencyTypes = new Set<DependencyTypeShort>([\n 'prod',\n 'dev',\n 'peer',\n 'optional',\n 'peerOptional',\n])\n\n/**\n * Maps between long form names usually used in `package.json` files\n * to a corresponding short form name, used in lockfiles.\n */\nexport const dependencyTypes = new Map<\n DependencyTypeLong,\n DependencyTypeShort\n>([\n ['dependencies', 'prod'],\n ['devDependencies', 'dev'],\n ['peerDependencies', 'peer'],\n ['optionalDependencies', 'optional'],\n])\n\n// Abstract graph types for loose coupling with graph implementations\nexport type EdgeLike = {\n name: string\n from: NodeLike\n spec: SpecLikeBase\n to?: NodeLike\n type: DependencyTypeShort\n optional?: boolean\n peer?: boolean\n}\n\nexport type GraphLike = {\n importers: Set<NodeLike>\n mainImporter: NodeLike\n projectRoot: string\n nodes: Map<DepID, NodeLike>\n nodesByName: Map<string, Set<NodeLike>>\n edges: Set<EdgeLike>\n addEdge: (\n type: DependencyTypeShort,\n spec: Spec,\n from: NodeLike,\n to?: NodeLike,\n ) => EdgeLike\n addNode: (\n id?: DepID,\n manifest?: NormalizedManifest,\n spec?: Spec,\n name?: string,\n version?: string,\n ) => NodeLike\n removeNode(\n node: NodeLike,\n replacement?: NodeLike,\n keepEdges?: boolean,\n ): void\n}\n\nexport type NodeLike = {\n id: DepID\n confused: boolean\n edgesIn: Set<EdgeLike>\n edgesOut: Map<string, EdgeLike>\n workspaces: Map<string, EdgeLike> | undefined\n location?: string\n manifest?: NormalizedManifest | null\n rawManifest?: NormalizedManifest | null\n name?: string | null\n version?: string | null\n integrity?: string | null\n resolved?: string | null\n importer: boolean\n graph: GraphLike\n mainImporter: boolean\n projectRoot: string\n dev: boolean\n optional: boolean\n modifier?: string | undefined\n registry?: string\n platform?: {\n engines?: Record<string, string>\n os?: string[] | string\n cpu?: string[] | string\n }\n buildState?: 'none' | 'needed' | 'built' | 'failed'\n buildAllowed?: boolean\n buildBlocked?: boolean\n options: SpecOptions\n toJSON: () => Pick<\n NodeLike,\n | 'id'\n | 'name'\n | 'version'\n | 'location'\n | 'importer'\n | 'manifest'\n | 'projectRoot'\n | 'integrity'\n | 'resolved'\n | 'dev'\n | 'optional'\n | 'confused'\n | 'platform'\n | 'buildState'\n | 'buildAllowed'\n | 'buildBlocked'\n > & {\n rawManifest?: NodeLike['manifest']\n }\n toString(): string\n setResolved(): void\n setConfusedManifest(\n fixed: NormalizedManifest,\n confused?: NormalizedManifest,\n ): void\n maybeSetConfusedManifest(\n spec: Spec,\n confused?: NormalizedManifest,\n ): void\n}\n"]}
{
"name": "@vltpkg/types",
"description": "definitions for some of vlt's core types",
"version": "0.0.0-30",
"version": "0.0.0-31",
"repository": {

@@ -23,6 +23,6 @@ "type": "git",

"dependencies": {
"@vltpkg/dep-id": "0.0.0-30",
"@vltpkg/spec": "0.0.0-30",
"@vltpkg/semver": "0.0.0-30",
"@vltpkg/error-cause": "0.0.0-30"
"@vltpkg/dep-id": "0.0.0-31",
"@vltpkg/semver": "0.0.0-31",
"@vltpkg/spec": "0.0.0-31",
"@vltpkg/error-cause": "0.0.0-31"
},

@@ -29,0 +29,0 @@ "devDependencies": {