JezK
Edit File: pack.js.map
{"version":3,"file":"pack.js","names":["zlib","require","path","tar","fs2","depsFor","FOLDERS_IGNORE","DEFAULT_IGNORE","ignoreLinesToRegex","NEVER_IGNORE","packTarball","config","mapHeader","readRootManifest","pkg","bundleDependencies","main","onlyFiles","files","filters","slice","concat","bundleDependenciesFiles","dependency","dependencyList","cwd","dep","fs","walk","baseDir","Set","filesForBundledDep","lines","map","filename","join","regexes","dotIgnoreFiles","filterOverridenGitignores","file","readFile","absolute","raw","split","dirname","relative","keepFiles","ignoredFiles","possibleKeepFiles","sortFilter","realpath","realPath","add","packWithIgnoreAndHeaders","name","lstatSync","isDirectory","isParentOfKeptFile","Array","from","some","startsWith","has","ignoreFunction","pack","ignore","sort","header","suffix","uid","gid","packer","compressor","pipe","Gzip","setFlags","commander","description","option","hasWrapper","args","run","reporter","flags","MessageError","lang","version","normaliseScope","substr","replace","executeLifecycleScript","stream","Promise","resolve","reject","createWriteStream","on","success"],"sourceRoot":"../../../src","sources":["cli/commands/pack.js"],"sourcesContent":["/* @flow */\n\nimport type {Reporter} from '../../reporters/index.js';\nimport type Config from '../../config.js';\nimport type {IgnoreFilter} from '../../util/filter.js';\nimport * as fs from '../../util/fs.js';\nimport {sortFilter, ignoreLinesToRegex, filterOverridenGitignores} from '../../util/filter.js';\nimport {MessageError} from '../../errors.js';\n\nconst zlib = require('zlib');\nconst path = require('path');\nconst tar = require('tar-fs');\nconst fs2 = require('fs');\nconst depsFor = require('hash-for-dep/lib/deps-for');\n\nconst FOLDERS_IGNORE = [\n // never allow version control folders\n '.git',\n 'CVS',\n '.svn',\n '.hg',\n\n 'node_modules',\n];\n\nconst DEFAULT_IGNORE = ignoreLinesToRegex([\n ...FOLDERS_IGNORE,\n\n // ignore cruft\n 'yarn.lock',\n '.lock-wscript',\n '.wafpickle-{0..9}',\n '*.swp',\n '._*',\n 'npm-debug.log',\n 'yarn-error.log',\n '.npmrc',\n '.yarnrc',\n '.yarnrc.yml',\n '.npmignore',\n '.gitignore',\n '.DS_Store',\n]);\n\nconst NEVER_IGNORE = ignoreLinesToRegex([\n // never ignore these files\n '!/package.json',\n '!/readme*',\n '!/+(license|licence)*',\n '!/+(changes|changelog|history)*',\n]);\n\nexport async function packTarball(\n config: Config,\n {mapHeader}: {mapHeader?: Object => Object} = {},\n): Promise<stream$Duplex> {\n const pkg = await config.readRootManifest();\n const {bundleDependencies, main, files: onlyFiles} = pkg;\n\n // include required files\n let filters: Array<IgnoreFilter> = NEVER_IGNORE.slice();\n // include default filters unless `files` is used\n if (!onlyFiles) {\n filters = filters.concat(DEFAULT_IGNORE);\n }\n if (main) {\n filters = filters.concat(ignoreLinesToRegex(['!/' + main]));\n }\n\n // include bundleDependencies\n let bundleDependenciesFiles = [];\n if (bundleDependencies) {\n for (const dependency of bundleDependencies) {\n const dependencyList = depsFor(dependency, config.cwd);\n\n for (const dep of dependencyList) {\n const filesForBundledDep = await fs.walk(dep.baseDir, null, new Set(FOLDERS_IGNORE));\n bundleDependenciesFiles = bundleDependenciesFiles.concat(filesForBundledDep);\n }\n }\n }\n\n // `files` field\n if (onlyFiles) {\n let lines = [\n '*', // ignore all files except those that are explicitly included with a negation filter\n ];\n lines = lines.concat(\n onlyFiles.map((filename: string): string => `!${filename}`),\n onlyFiles.map((filename: string): string => `!${path.join(filename, '**')}`),\n );\n const regexes = ignoreLinesToRegex(lines, './');\n filters = filters.concat(regexes);\n }\n\n const files = await fs.walk(config.cwd, null, new Set(FOLDERS_IGNORE));\n const dotIgnoreFiles = filterOverridenGitignores(files);\n\n // create ignores\n for (const file of dotIgnoreFiles) {\n const raw = await fs.readFile(file.absolute);\n const lines = raw.split('\\n');\n\n const regexes = ignoreLinesToRegex(lines, path.dirname(file.relative));\n filters = filters.concat(regexes);\n }\n\n // files to definitely keep, takes precedence over ignore filter\n const keepFiles: Set<string> = new Set();\n\n // files to definitely ignore\n const ignoredFiles: Set<string> = new Set();\n\n // list of files that didn't match any of our patterns, if a directory in the chain above was matched\n // then we should inherit it\n const possibleKeepFiles: Set<string> = new Set();\n\n // apply filters\n sortFilter(files, filters, keepFiles, possibleKeepFiles, ignoredFiles);\n\n // add the files for the bundled dependencies to the set of files to keep\n for (const file of bundleDependenciesFiles) {\n const realPath = await fs.realpath(config.cwd);\n keepFiles.add(path.relative(realPath, file.absolute));\n }\n\n return packWithIgnoreAndHeaders(\n config.cwd,\n name => {\n const relative = path.relative(config.cwd, name);\n // Don't ignore directories, since we need to recurse inside them to check for unignored files.\n if (fs2.lstatSync(name).isDirectory()) {\n const isParentOfKeptFile = Array.from(keepFiles).some(name => !path.relative(relative, name).startsWith('..'));\n return !isParentOfKeptFile;\n }\n // Otherwise, ignore a file if we're not supposed to keep it.\n return !keepFiles.has(relative);\n },\n {mapHeader},\n );\n}\n\nexport function packWithIgnoreAndHeaders(\n cwd: string,\n ignoreFunction?: string => boolean,\n {mapHeader}: {mapHeader?: Object => Object} = {},\n): Promise<stream$Duplex> {\n return tar.pack(cwd, {\n ignore: ignoreFunction,\n sort: true,\n map: header => {\n const suffix = header.name === '.' ? '' : `/${header.name}`;\n header.name = `package${suffix}`;\n delete header.uid;\n delete header.gid;\n return mapHeader ? mapHeader(header) : header;\n },\n });\n}\n\nexport async function pack(config: Config): Promise<stream$Duplex> {\n const packer = await packTarball(config);\n const compressor = packer.pipe(new zlib.Gzip());\n\n return compressor;\n}\n\nexport function setFlags(commander: Object) {\n commander.description('Creates a compressed gzip archive of package dependencies.');\n commander.option('-f, --filename <filename>', 'filename');\n}\n\nexport function hasWrapper(commander: Object, args: Array<string>): boolean {\n return true;\n}\n\nexport async function run(\n config: Config,\n reporter: Reporter,\n commander: Object,\n flags: {filename?: string},\n args?: Array<string>,\n): Promise<void> {\n const pkg = await config.readRootManifest();\n if (!pkg.name) {\n throw new MessageError(reporter.lang('noName'));\n }\n if (!pkg.version) {\n throw new MessageError(reporter.lang('noVersion'));\n }\n\n const normaliseScope = name => (name[0] === '@' ? name.substr(1).replace('/', '-') : name);\n const filename = flags.filename || path.join(config.cwd, `${normaliseScope(pkg.name)}-v${pkg.version}.tgz`);\n\n await config.executeLifecycleScript('prepack');\n\n const stream = await pack(config);\n\n await new Promise((resolve, reject) => {\n stream.pipe(fs2.createWriteStream(filename));\n stream.on('error', reject);\n stream.on('close', resolve);\n });\n\n await config.executeLifecycleScript('postpack');\n\n reporter.success(reporter.lang('packWroteTarball', filename));\n}\n"],"mappings":"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"}