JezK
Edit File: package-fetcher.js.map
{"version":3,"file":"package-fetcher.js","names":["ssri","require","fetchCache","dest","fetcher","config","remote","readPackageMetadata","hash","pkg","cacheRemote","cacheIntegrity","integrity","cacheHash","parse","match","SecurityError","reporter","lang","name","setupMirrorFromCache","cached","fetchOneRemote","version","type","mockPkg","_uid","Promise","resolve","resolved","Fetcher","fetchers","MessageError","isValidModuleDest","fs","unlink","fetch","fetchOne","ref","generateModuleCachePath","maybeFetchOne","optional","error","message","pkgs","pkgsPerDest","Map","filter","_reference","otherPkg","get","warn","patterns","set","tick","progress","length","promise","queue","res","newPkg","updateChecksums","oldHash","replace","cache","Object","keys","reduce","entry","entryWithNewHash","_remote","fresh","networkConcurrency"],"sourceRoot":"../src","sources":["package-fetcher.js"],"sourcesContent":["/* @flow */\n\nimport type {FetchedMetadata, Manifest, PackageRemote} from './types.js';\nimport type {Fetchers} from './fetchers/index.js';\nimport type PackageReference from './package-reference.js';\nimport type Config from './config.js';\nimport {MessageError, SecurityError} from './errors.js';\nimport * as fetchers from './fetchers/index.js';\nimport * as fs from './util/fs.js';\nimport * as promise from './util/promise.js';\n\nconst ssri = require('ssri');\n\nasync function fetchCache(\n dest: string,\n fetcher: Fetchers,\n config: Config,\n remote: PackageRemote,\n): Promise<FetchedMetadata> {\n // $FlowFixMe: This error doesn't make sense\n const {hash, package: pkg, remote: cacheRemote} = await config.readPackageMetadata(dest);\n\n const cacheIntegrity = cacheRemote.cacheIntegrity || cacheRemote.integrity;\n const cacheHash = cacheRemote.hash;\n\n if (remote.integrity) {\n if (!cacheIntegrity || !ssri.parse(cacheIntegrity).match(remote.integrity)) {\n throw new SecurityError(\n config.reporter.lang('fetchBadIntegrityCache', pkg.name, cacheIntegrity, remote.integrity),\n );\n }\n }\n\n if (remote.hash) {\n if (!cacheHash || cacheHash !== remote.hash) {\n throw new SecurityError(config.reporter.lang('fetchBadHashCache', pkg.name, cacheHash, remote.hash));\n }\n }\n\n await fetcher.setupMirrorFromCache();\n return {\n package: pkg,\n hash,\n dest,\n cached: true,\n };\n}\n\nexport async function fetchOneRemote(\n remote: PackageRemote,\n name: string,\n version: string,\n dest: string,\n config: Config,\n): Promise<FetchedMetadata> {\n // Mock metadata for symlinked dependencies\n if (remote.type === 'link') {\n const mockPkg: Manifest = {_uid: '', name: '', version: '0.0.0'};\n return Promise.resolve({resolved: null, hash: '', dest, package: mockPkg, cached: false});\n }\n\n const Fetcher = fetchers[remote.type];\n if (!Fetcher) {\n throw new MessageError(config.reporter.lang('unknownFetcherFor', remote.type));\n }\n\n const fetcher = new Fetcher(dest, remote, config);\n if (await config.isValidModuleDest(dest)) {\n return fetchCache(dest, fetcher, config, remote);\n }\n\n // remove as the module may be invalid\n await fs.unlink(dest);\n\n try {\n return await fetcher.fetch({\n name,\n version,\n });\n } catch (err) {\n try {\n await fs.unlink(dest);\n } catch (err2) {\n // what do?\n }\n throw err;\n }\n}\n\nfunction fetchOne(ref: PackageReference, config: Config): Promise<FetchedMetadata> {\n const dest = config.generateModuleCachePath(ref);\n\n return fetchOneRemote(ref.remote, ref.name, ref.version, dest, config);\n}\n\nasync function maybeFetchOne(ref: PackageReference, config: Config): Promise<?FetchedMetadata> {\n try {\n return await fetchOne(ref, config);\n } catch (err) {\n if (ref.optional) {\n config.reporter.error(err.message);\n return null;\n } else {\n throw err;\n }\n }\n}\n\nexport function fetch(pkgs: Array<Manifest>, config: Config): Promise<Array<Manifest>> {\n const pkgsPerDest: Map<string, PackageReference> = new Map();\n pkgs = pkgs.filter(pkg => {\n const ref = pkg._reference;\n if (!ref) {\n return false;\n }\n const dest = config.generateModuleCachePath(ref);\n const otherPkg = pkgsPerDest.get(dest);\n if (otherPkg) {\n config.reporter.warn(\n config.reporter.lang('multiplePackagesCantUnpackInSameDestination', ref.patterns, dest, otherPkg.patterns),\n );\n return false;\n }\n pkgsPerDest.set(dest, ref);\n return true;\n });\n const tick = config.reporter.progress(pkgs.length);\n\n return promise.queue(\n pkgs,\n async pkg => {\n const ref = pkg._reference;\n if (!ref) {\n return pkg;\n }\n\n const res = await maybeFetchOne(ref, config);\n let newPkg;\n\n if (res) {\n newPkg = res.package;\n\n // update with new remote\n // but only if there was a hash previously as the tarball fetcher does not provide a hash.\n if (ref.remote.hash) {\n // if the checksum was updated, also update resolved and cache\n if (ref.remote.hash !== res.hash && config.updateChecksums) {\n const oldHash = ref.remote.hash;\n if (ref.remote.resolved) {\n ref.remote.resolved = ref.remote.resolved.replace(oldHash, res.hash);\n }\n ref.config.cache = Object.keys(ref.config.cache).reduce((cache, entry) => {\n const entryWithNewHash = entry.replace(oldHash, res.hash);\n cache[entryWithNewHash] = ref.config.cache[entry];\n return cache;\n }, {});\n }\n ref.remote.hash = res.hash || ref.remote.hash;\n }\n }\n\n if (tick) {\n tick();\n }\n\n if (newPkg) {\n newPkg._reference = ref;\n newPkg._remote = ref.remote;\n newPkg.name = pkg.name;\n newPkg.fresh = pkg.fresh;\n return newPkg;\n }\n\n return pkg;\n },\n config.networkConcurrency,\n );\n}\n"],"mappings":"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"}