Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
destination: destinationDirectory,
});
}
// pretty shitty but have to put this last because it has a meaningful deploy script
if (isSemanticRelease) {
await writeSemanticReleaseTemplates({
templateValues,
destination: destinationDirectory,
});
}
const packageJSONLocation = `${destinationDirectory}/package.json`;
const packageJSON = fse.readJsonSync(packageJSONLocation, 'utf8');
normalizePackageData(packageJSON);
fse.writeJsonSync(packageJSONLocation, sortPackageJSON(packageJSON), 'utf8');
console.log(chalk.bold.cyanBright('⌛ 🤞 Installing packages'));
await spawn('npm', ['install'], { cwd: destinationDirectory, stdio: 'inherit' });
await spawn('git', ['init'], { cwd: destinationDirectory, stdio: 'inherit' });
console.log(chalk.bold.magentaBright('🥝 🍋 🍐 🍓 🍊 🍍 🍰 Installation complete! 🍒 🍈 🍇 🍉 🍏 🍎 🍌'));
console.log();
console.log(`🎭 ${chalk.bold.magentaBright('Run')} ${chalk.bold.blueBright('jest')} ${chalk.bold.magentaBright('tests')}: ${chalk.bold.cyanBright('npm run test')} `);
console.log(`🏗️ ${chalk.bold.magentaBright('Build')} ${chalk.bold.blueBright('rollup.js')} ${chalk.bold.magentaBright('library')}: ${chalk.bold.cyanBright('npm run build')}`);
console.log(`👕 ${chalk.bold.magentaBright('Run')} ${chalk.bold.blueBright('eslint')}: ${chalk.bold.cyanBright('npm run lint')}`);
if (isReact) {
console.log(`📖 ${chalk.bold.magentaBright('Run')} ${chalk.bold.blueBright('Storybook')}: ${chalk.bold.cyanBright('npm run storybook')}`);
}
constructor(pkgJsonPath: string | Object) {
if (typeof pkgJsonPath === "string") {
this.pkgJsonPath = pkgJsonPath;
// $FlowFixMe(dynamic-require)
this.pkgJson = require(pkgJsonPath);
} else {
this.pkgJsonPath = "";
this.pkgJson = pkgJsonPath;
}
this.pkgJsonNormalized = JSON.parse(JSON.stringify(this.pkgJson)); // Deep clone
normalize(this.pkgJsonNormalized);
}
async getSignOffsFromFile(contents) {
const githubHost = url.parse(this.self.html_url).hostname;
let packageJson;
try {
packageJson = JSON.parse(contents);
normalizePackageData.fixer.fixPeople(packageJson);
} catch (err) {
this.log.warn('Unable to parse package.json');
this.log.warn(err);
return [];
}
const maintainers = packageJson.maintainers || [];
const logins = maintainers.map(m => {
if (m.url) {
const parsed = url.parse(m.url);
if (githubHost === parsed.hostname) {
const login = parsed.pathname.split('/')[1];
if (login) {
return login;
const readPkgSync = (dir: string): PkgJson => {
const pkgJsonPath = join(dir, "package.json");
const data = readFileSync(pkgJsonPath, "utf-8");
const pkgJson: PkgJson = JSON.parse(data);
normalize(pkgJson);
return pkgJson;
};
module.exports = publish
var url = require('url')
var semver = require('semver')
var Stream = require('stream').Stream
var assert = require('assert')
var fixer = require('normalize-package-data').fixer
var concat = require('concat-stream')
var ssri = require('ssri')
function escaped (name) {
return name.replace('/', '%2f')
}
function publish (uri, params, cb) {
assert(typeof uri === 'string', 'must pass registry URI to publish')
assert(params && typeof params === 'object', 'must pass params to publish')
assert(typeof cb === 'function', 'must pass callback to publish')
var access = params.access
assert(
(!access) || ['public', 'restricted'].indexOf(access) !== -1,
"if present, access level must be either 'public' or 'restricted'"
module.exports = publish
var url = require('url')
var semver = require('semver')
var crypto = require('crypto')
var Stream = require('stream').Stream
var assert = require('assert')
var fixer = require('normalize-package-data').fixer
var concat = require('concat-stream')
function escaped (name) {
return name.replace('/', '%2f')
}
function publish (uri, params, cb) {
assert(typeof uri === 'string', 'must pass registry URI to publish')
assert(params && typeof params === 'object', 'must pass params to publish')
assert(typeof cb === 'function', 'must pass callback to publish')
var access = params.access
assert(
(!access) || ['public', 'restricted'].indexOf(access) !== -1,
"if present, access level must be either 'public' or 'restricted'"
)
var auth = params.auth
assert(auth && typeof auth === 'object', 'must pass auth to publish')
if (!(auth.token ||
(auth.password && auth.username && auth.email))) {
var er = new Error('auth required for publishing')
er.code = 'ENEEDAUTH'
return cb(er)
}
var metadata = params.metadata
assert(
metadata && typeof metadata === 'object',
'must pass package metadata to publish'
)
try {
fixer.fixNameField(metadata, {strict: true, allowLegacyCase: true})
} catch (er) {
return cb(er)
}
var version = semver.clean(metadata.version)
if (!version) return cb(new Error('invalid semver: ' + metadata.version))
metadata.version = version
var body = params.body
assert(body, 'must pass package body to publish')
assert(body instanceof Stream, 'package body passed to publish must be a stream')
var client = this
var sink = concat(function (tarbuffer) {
putFirst.call(client, uri, metadata, tarbuffer, access, auth, cb)
})
sink.on('error', cb)
body.pipe(sink)
var auth = params.auth
assert(auth && typeof auth === 'object', 'must pass auth to publish')
if (!(auth.token ||
(auth.password && auth.username && auth.email))) {
var er = new Error('auth required for publishing')
er.code = 'ENEEDAUTH'
return cb(er)
}
var metadata = params.metadata
assert(
metadata && typeof metadata === 'object',
'must pass package metadata to publish'
)
try {
fixer.fixNameField(metadata, {strict: true, allowLegacyCase: true})
} catch (er) {
return cb(er)
}
var version = semver.clean(metadata.version)
if (!version) return cb(new Error('invalid semver: ' + metadata.version))
metadata.version = version
var body = params.body
assert(body, 'must pass package body to publish')
assert(body instanceof Stream, 'package body passed to publish must be a stream')
var client = this
var sink = concat(function (tarbuffer) {
putFirst.call(client, uri, metadata, tarbuffer, access, auth, cb)
})
sink.on('error', cb)
body.pipe(sink)