JezK
Edit File: publish.js.map
{"version":3,"file":"publish.js","names":["invariant","require","crypto","url","fs2","ssri","setFlags","commander","versionSetFlags","description","usage","option","hasWrapper","args","publish","config","pkg","flags","dir","access","publishConfig","MessageError","reporter","lang","executeLifecycleScript","fs","lstat","stat","isDirectory","pack","stream","isFile","createReadStream","Error","Promise","resolve","reject","data","on","push","bind","Buffer","concat","buffer","Object","assign","key","tag","tbName","name","version","tbURI","root","_id","versions","readme","_attachments","content_type","toString","length","dist","shasum","createHash","update","digest","integrity","fromData","registry","String","getOption","tarball","replace","registries","npm","request","NpmRegistry","escapeName","method","body","message","run","path","cwd","exists","publishPath","readRootManifest","step","setVersion","commitVersion","getToken","revoke","success"],"sourceRoot":"../../../src","sources":["cli/commands/publish.js"],"sourcesContent":["/* @flow */\n\nimport type {Reporter} from '../../reporters/index.js';\nimport type Config from '../../config.js';\nimport NpmRegistry from '../../registries/npm-registry.js';\nimport {MessageError} from '../../errors.js';\nimport {setVersion, setFlags as versionSetFlags} from './version.js';\nimport * as fs from '../../util/fs.js';\nimport {pack} from './pack.js';\nimport {getToken} from './login.js';\nimport path from 'path';\n\nconst invariant = require('invariant');\nconst crypto = require('crypto');\nconst url = require('url');\nconst fs2 = require('fs');\nconst ssri = require('ssri');\n\nexport function setFlags(commander: Object) {\n versionSetFlags(commander);\n commander.description('Publishes a package to the npm registry.');\n commander.usage('publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>]');\n commander.option('--access [access]', 'access');\n commander.option('--tag [tag]', 'tag');\n}\n\nexport function hasWrapper(commander: Object, args: Array<string>): boolean {\n return true;\n}\n\nasync function publish(config: Config, pkg: any, flags: Object, dir: string): Promise<void> {\n let access = flags.access;\n\n // if no access level is provided, check package.json for `publishConfig.access`\n // see: https://docs.npmjs.com/files/package.json#publishconfig\n if (!access && pkg && pkg.publishConfig && pkg.publishConfig.access) {\n access = pkg.publishConfig.access;\n }\n\n // validate access argument\n if (access && access !== 'public' && access !== 'restricted') {\n throw new MessageError(config.reporter.lang('invalidAccess'));\n }\n\n // TODO this might modify package.json, do we need to reload it?\n await config.executeLifecycleScript('prepublish');\n await config.executeLifecycleScript('prepare');\n await config.executeLifecycleScript('prepublishOnly');\n await config.executeLifecycleScript('prepack');\n\n // get tarball stream\n const stat = await fs.lstat(dir);\n let stream;\n if (stat.isDirectory()) {\n stream = await pack(config);\n } else if (stat.isFile()) {\n stream = fs2.createReadStream(dir);\n } else {\n throw new Error(\"Don't know how to handle this file type\");\n }\n const buffer = await new Promise((resolve, reject) => {\n const data = [];\n invariant(stream, 'expected stream');\n stream.on('data', data.push.bind(data)).on('end', () => resolve(Buffer.concat(data))).on('error', reject);\n });\n\n await config.executeLifecycleScript('postpack');\n\n // copy normalized package and remove internal keys as they may be sensitive or yarn specific\n pkg = Object.assign({}, pkg);\n for (const key in pkg) {\n if (key[0] === '_') {\n delete pkg[key];\n }\n }\n\n const tag = flags.tag || 'latest';\n const tbName = `${pkg.name}-${pkg.version}.tgz`;\n const tbURI = `${pkg.name}/-/${tbName}`;\n\n // create body\n const root = {\n _id: pkg.name,\n access,\n name: pkg.name,\n description: pkg.description,\n 'dist-tags': {\n [tag]: pkg.version,\n },\n versions: {\n [pkg.version]: pkg,\n },\n readme: pkg.readme || '',\n _attachments: {\n [tbName]: {\n content_type: 'application/octet-stream',\n data: buffer.toString('base64'),\n length: buffer.length,\n },\n },\n };\n\n pkg._id = `${pkg.name}@${pkg.version}`;\n pkg.dist = pkg.dist || {};\n pkg.dist.shasum = crypto.createHash('sha1').update(buffer).digest('hex');\n pkg.dist.integrity = ssri.fromData(buffer).toString();\n\n const registry = String(config.getOption('registry'));\n pkg.dist.tarball = url.resolve(registry, tbURI).replace(/^https:\\/\\//, 'http://');\n\n // publish package\n try {\n await config.registries.npm.request(NpmRegistry.escapeName(pkg.name), {\n registry: pkg && pkg.publishConfig && pkg.publishConfig.registry,\n method: 'PUT',\n body: root,\n });\n } catch (error) {\n throw new MessageError(config.reporter.lang('publishFail', error.message));\n }\n\n await config.executeLifecycleScript('publish');\n await config.executeLifecycleScript('postpublish');\n}\n\nexport async function run(config: Config, reporter: Reporter, commander: Object, flags: Object, args: Array<string>): Promise<void> {\n // validate arguments\n const dir = args[0] ? path.resolve(config.cwd, args[0]) : config.cwd;\n if (args.length > 1) {\n throw new MessageError(reporter.lang('tooManyArguments', 1));\n }\n if (!await fs.exists(dir)) {\n throw new MessageError(reporter.lang('unknownFolderOrTarball'));\n }\n\n const stat = await fs.lstat(dir);\n let publishPath = dir;\n if (stat.isDirectory()) {\n config.cwd = path.resolve(dir);\n publishPath = config.cwd;\n }\n\n // validate package fields that are required for publishing\n // $FlowFixMe\n const pkg = await config.readRootManifest();\n if (pkg.private) {\n throw new MessageError(reporter.lang('publishPrivate'));\n }\n if (!pkg.name) {\n throw new MessageError(reporter.lang('noName'));\n }\n\n let registry: string = '';\n\n if (pkg && pkg.publishConfig && pkg.publishConfig.registry) {\n registry = pkg.publishConfig.registry;\n }\n\n reporter.step(1, 4, reporter.lang('bumpingVersion'));\n const commitVersion = await setVersion(config, reporter, flags, [], false);\n\n //\n reporter.step(2, 4, reporter.lang('loggingIn'));\n const revoke = await getToken(config, reporter, pkg.name, flags, registry);\n\n //\n reporter.step(3, 4, reporter.lang('publishing'));\n await publish(config, pkg, flags, publishPath);\n await commitVersion();\n reporter.success(reporter.lang('published'));\n\n //\n reporter.step(4, 4, reporter.lang('revokingToken'));\n await revoke();\n}\n"],"mappings":"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"}