New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

dlvr

Package Overview
Dependencies
Maintainers
1
Versions
32
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dlvr - npm Package Compare versions

Comparing version 3.2.1 to 3.3.0

src/modules/irc.js

34

package.json
{
"name": "dlvr",
"version": "3.2.1",
"version": "3.3.0",
"description": "DeLiVeR - Command Line Tool to automate releasing processes on GitHub/GitLab/npm",

@@ -21,3 +21,5 @@ "bin": {

"release": "npm test && npm run build && dlvr",
"jasmine": "jasmine-node --test-dir ./tests"
"jasmine": "jasmine-node --test-dir ./tests",
"pkg:upgrade": "ncu -a -u && rm -rf node_modules && npm i",
"pkg:test": "ncu && nsp check"
},

@@ -36,32 +38,36 @@ "repository": {

"dependencies": {
"object-filter": "1.0.2",
"argparse": "1.0.9",
"chalk": "2.1.0",
"chalk": "2.3.0",
"dotenv": "^4.0.0",
"irc": "0.5.2",
"is-my-json-valid": "2.16.1",
"mime": "2.0.3",
"node-async-loop": "1.2.2",
"octonode": "0.8.0",
"node-notify": "^1.0.0",
"object-filter": "1.0.2",
"octonode": "0.9.1",
"opn": "^5.1.0",
"ora": "1.3.0",
"prompt": "1.0.0",
"request": "^2.81.0",
"request": "^2.83.0",
"semver": "5.4.1",
"simple-git": "1.77.0",
"simple-git": "1.80.1",
"zip-local": "0.3.4"
},
"devDependencies": {
"eslint": "4.2.0",
"eslint": "4.10.0",
"eslint-config-standard": "10.2.1",
"eslint-plugin-import": "2.7.0",
"eslint-plugin-import": "2.8.0",
"eslint-plugin-import-order": "2.1.4",
"eslint-plugin-node": "5.1.0",
"eslint-plugin-prettier": "^2.1.2",
"eslint-plugin-promise": "3.5.0",
"eslint-plugin-node": "5.2.1",
"eslint-plugin-prettier": "^2.3.1",
"eslint-plugin-promise": "3.6.0",
"eslint-plugin-standard": "3.0.1",
"istanbul": "^1.1.0-alpha.1",
"jasmine-node": "1.14.5",
"prettier": "^1.5.3",
"proxyquire": "1.8.0"
"prettier": "^1.7.4",
"proxyquire": "1.8.0",
"npm-check-updates": "*",
"nsp": "*"
}
}

@@ -24,3 +24,2 @@ # DLVR

DLVR_GITHUB
DLVR_SNYK
DLVR_GITLAB

@@ -65,3 +64,3 @@ DLVR_GITLAB_API

"postRun": "rm -rf ./dist",
"snyk": true,
"notify": true,
"compress": [

@@ -78,4 +77,11 @@ {

"icon_emoji": ":shipit:",
"username": "dlvr.bot"
"username": "dlvr.bot",
"reportfail": true
},
"irc": {
"channel": "#general",
"server": "irc.myserver.com",
"username": "dvlrbot",
"reportfail": true
},
"githost": {

@@ -82,0 +88,0 @@ "provider": "github",

@@ -16,8 +16,2 @@ var ArgumentParser = require('argparse').ArgumentParser;

subparsers.addParser('release-ci', {
addHelp: true,
help:
'Auto releases without prompt or exits process gracefully if current branch is not master'
});
subparsers.addParser('secrets', {

@@ -24,0 +18,0 @@ addHelp: true,

const status = require('./status');
const parsedArgs = require('./argparse');
const release = require('./release');
const releaseCmd = require('./release');
module.exports = {
status,
releaseCmd: release.releaseCmd,
releaseCiCmd: release.releaseCiCmd,
releaseCmd,
parsedArgs
};
const semver = require('semver');
const git = require('simple-git');
const prompt = require('prompt');

@@ -49,15 +48,2 @@ const perform = require('../perform');

};
const releaseCiCmd = async => {
git(process.cwd()).status((err, data) => {
if (err) utils.fatal(err.message);
data.current === 'master' || process.env.TRAVIS_BRANCH === 'master'
? releaseCmd({VERSION: 'auto', force: true})
: utils.quit('DLVR: Not on master - skipping release');
});
};
module.exports = {
releaseCmd,
releaseCiCmd
};
module.exports = releaseCmd;
const path = require('path');
const NOTIFICATION_TITLE = 'dlvr';
const INTEGRITY_CHECK_SCHEMES = ['root', 'githost', 'compress', 'slack', 'irc'];
const FILE_SECRETS = path.join(process.cwd(), '.env');

@@ -11,2 +14,4 @@ const FILE_PACKAGE = path.join(process.cwd(), 'package.json');

const IRC_RECONNECT = 5;
module.exports = {

@@ -18,3 +23,6 @@ FILE_SECRETS,

AUTO_FILTER_MAJOR,
AUTO_FILTER_MINOR
AUTO_FILTER_MINOR,
IRC_RECONNECT,
NOTIFICATION_TITLE,
INTEGRITY_CHECK_SCHEMES
};

@@ -74,5 +74,5 @@ const githook = {

const snyk = {
name: 'snyk',
description: 'Do you want to use Snyk.io ?',
const irc = {
name: 'irc',
description: 'Do you want to use IRC notifier ?',
type: 'string',

@@ -85,2 +85,12 @@ pattern: /^(y|n)$/i,

const notify = {
name: 'notify',
description: 'Do you want to enable OS notifies ?',
type: 'string',
pattern: /^(y|n)$/i,
message: 'Only Y/y (yes) or N/n (no) is allowed',
default: 'y',
required: true
};
const npmpublish = {

@@ -109,2 +119,3 @@ name: 'npmpublish',

slack,
irc,
repo,

@@ -116,6 +127,6 @@ prerun,

test,
snyk,
npmpublish,
compress,
githook
githook,
notify
};

@@ -87,2 +87,3 @@ const fs = require('fs');

common.dotenv,
common.notify,
common.repo,

@@ -94,3 +95,2 @@ common.prerun,

common.test,
common.snyk,
common.npmpublish,

@@ -100,3 +100,4 @@ github.draft,

common.compress,
common.slack
common.slack,
common.irc
];

@@ -111,2 +112,3 @@ runSchema(schema, template);

common.dotenv,
common.notify,
common.repo,

@@ -118,7 +120,7 @@ common.prerun,

common.test,
common.snyk,
common.npmpublish,
github.assets,
common.compress,
common.slack
common.slack,
common.irc
];

@@ -125,0 +127,0 @@ runSchema(schema, template);

@@ -38,9 +38,2 @@ const prompt = require('prompt');

{
name: 'DLVR_SNYK',
description: 'Your SNYK token (enter to skip)',
type: 'string',
hidden: true,
replace: '*'
},
{
name: 'DLVR_SLACK_WEBHOOK',

@@ -47,0 +40,0 @@ description: 'Your Slack Webhook Url (enter to skip)',

@@ -9,3 +9,3 @@ let template = {

npmpublish: false,
snyk: true,
notify: true,
compress: [

@@ -17,6 +17,13 @@ {

],
irc: {
channel: '#general',
server: 'irc.myserver.com',
username: 'dvlrbot',
reportfail: true
},
slack: {
channel: '#general',
icon_emoji: ':shipit:',
username: 'dlvr.bot'
username: 'dlvr.bot',
reportfail: true
},

@@ -23,0 +30,0 @@ githost: {

#! /usr/bin/env node
const {status, parsedArgs, releaseCmd, releaseCiCmd} = require('./commands');
const {status, parsedArgs, releaseCmd} = require('./commands');
const generator = require('./generator');

@@ -8,3 +8,3 @@ const args = parsedArgs();

process.on('unhandledRejection', reason => {
console.log('Reason: ' + reason);
console.log('Unhandled Reject Reason: \n' + reason);
});

@@ -28,6 +28,2 @@

break;
case 'release-ci':
releaseCiCmd();
break;
}
const fs = require('fs');
const validator = require('is-my-json-valid');
const {FILE_SECRETS, FILE_CONFIG, FILE_PACKAGE} = require('../constants');
const {INTEGRITY_CHECK_SCHEMES} = require('../constants');
const schemes = require('../schemes');

@@ -46,3 +47,3 @@ const utils = require('./utils');

var secrets = {};
['github', 'gitlab', 'snyk'].map(item => {
['github', 'gitlab'].map(item => {
if (

@@ -116,3 +117,3 @@ cfg.githost.provider === item &&

['root', 'githost', 'compress', 'slack'].map(item => {
INTEGRITY_CHECK_SCHEMES.map(item => {
var err = checkIntegrity(cfg, item);

@@ -119,0 +120,0 @@ if (err) {

@@ -26,3 +26,2 @@ const fs = require('fs');

console.log(msg);
process.exit(1);
}

@@ -72,8 +71,3 @@ }

}
function isCI() {
return Boolean(
process.env.CI || process.env.TRAVIS || process.env.CONTINUOUS_INTEGRATION
);
}
const cleanup = () => {
function cleanup() {
spinner.create('Remove Changelog file');

@@ -86,5 +80,4 @@ return new Promise((resolve, reject) => {

});
};
}
module.exports = {
isCI,
copyFile,

@@ -91,0 +84,0 @@ cleanup,

@@ -47,12 +47,17 @@ const git = require('simple-git');

const tagAndPush = ({version, cfg}) => {
spinner.create('Tag Release');
const commitAndPush = ({version, cfg}) => {
spinner.create('Commit, Tag and Push Release');
return new Promise((resolve, reject) => {
git(GITPATH)
.add('./*')
.commit(`🎉 Release ${version}`)
.addTag(version, (err, res) => {
utils.catchError(err, err, reject);
})
.pushTags(cfg.getRemote(), (err, res) => {
.push([cfg.getRemote(), 'master'], (err, res) => {
utils.catchError(err, err, reject);
resolve('Tag created and pushed');
git(GITPATH).pushTags(cfg.getRemote(), (err, res) => {
utils.catchError(err, err, reject);
resolve();
});
});

@@ -62,14 +67,4 @@ });

const commitAndPush = ({version, cfg}) => {
spinner.create('Commit and Push Release');
return new Promise((resolve, reject) => {
git(GITPATH)
.add('./*')
.commit(`🎉 Release ${version}`)
.push([cfg.getRemote(), 'master']);
resolve();
});
};
const tagExist = ({version}) => {
spinner.create('Check if Tag exists');
return new Promise((resolve, reject) => {

@@ -138,3 +133,2 @@ git(GITPATH).tags((err, tags) => {

generateChangelog,
tagAndPush,
commitAndPush,

@@ -141,0 +135,0 @@ checkRepo,

@@ -10,3 +10,2 @@ const fs = require('fs');

// TODO: write tests
const uploadAssets = ({cfg, secrets}, projectId) => {

@@ -13,0 +12,0 @@ return new Promise((resolve, reject) => {

@@ -5,32 +5,69 @@ const request = require('request');

const send = ({cfg, version, secrets, changelog}) => {
const send = ({cfg, version, secrets, changelog}, message) => {
return new Promise((resolve, reject) => {
if (cfg.has('slack')) {
spinner.create(`Send Slackmessage to ${cfg.slack.channel}`);
let slackbody = cfg.slack;
let slackbody = cfg.slack;
slackbody.text = message;
slackbody.text = `<!channel> \n Just released *<${cfg.releaseUrl()}|${cfg.githost.repo}>* Version *${version}* :tada: \n ${changelog}`; //eslint-disable-line
var opt = {
url: secrets.get('slack-webhook'),
json: true,
body: slackbody
};
var opt = {
url: secrets.get('slack-webhook'),
json: true,
body: slackbody
};
delete slackbody.webhook;
delete slackbody.webhook;
request.post(opt, (err, res, data) => {
request.post(opt, (err, res, data) => {
utils.catchError(err, err, reject);
if (data === 'ok') {
resolve();
} else {
reject(data);
}
});
});
};
const checkHook = ({cfg, version, secrets, changelog}) => {
return new Promise((resolve, reject) => {
if (cfg.has('slack')) {
spinner.create(`Check Slack Webhook`);
request.get(secrets.get('slack-webhook'), (err, res, data) => {
utils.catchError(err, err, reject);
if (data === 'ok') {
if (res.body === 'invalid_payload') {
resolve();
} else {
reject(data);
spinner.fail('Slack Webhook invalid');
}
});
} else {
resolve();
return resolve();
}
});
};
const fail = ({cfg, version, secrets, changelog}, failMessage) => {
if (cfg.has('slack') && cfg.slack.reportfail) {
const message = `<!channel> \n :warning: Release *${version}* for *<${cfg.releaseUrl()}|${cfg
.githost.repo}>* Failed with Message: \n ${failMessage}`;
return send({cfg, version, secrets, changelog}, message);
} else {
return Promise.resolve();
}
};
const success = ({cfg, version, secrets, changelog}) => {
if (cfg.has('slack')) {
spinner.create(`Send Slack message to ${cfg.slack.channel}`);
const message = `<!channel> \n :tada: Just released *<${cfg.releaseUrl()}|${cfg
.githost.repo}>* Version *${version}* \n ${changelog}`;
return send({cfg, version, secrets, changelog}, message);
} else {
return Promise.resolve();
}
};
module.exports = {
send
success,
fail,
checkHook
};

@@ -9,3 +9,2 @@ #! /usr/bin/env node

const npm = require('./modules/npm');
const snyk = require('./modules/snyk');
const runner = require('./modules/runner');

@@ -16,12 +15,13 @@ const github = require('./modules/github');

const output = require('./lib/output');
const irc = require('./modules/irc');
const notify = require('./modules/notify');
const run = async configs => {
try {
if (!utils.isCI()) {
await git.checkRepo(configs);
}
await git.checkRepo(configs);
await git.tagExist(configs);
await runner.preRun(configs);
await runner.runTests(configs);
await github.checkToken(configs);
await slack.checkHook(configs);
// NOTE: wrap them and return object ?

@@ -32,5 +32,3 @@ const gitlabUser = await gitlab.getUser(configs);

await npm.checkLogin(configs);
await snyk.login(configs);
await snyk.check(configs);
await zip.compress(configs);

@@ -40,3 +38,3 @@ await utils.saveVersion(configs);

await git.commitAndPush(configs);
await git.tagAndPush(configs);
await npm.publish(configs);

@@ -48,11 +46,16 @@

await github.uploadAssets(configs, releaseId);
const releaseMarkdown = await gitlab.uploadAssets(configs, gitlabProject);
await gitlab.release(configs, gitlabProject, releaseMarkdown);
await gitlab.release(configs, gitlabProject, releaseMarkdown);
await runner.postRun(configs);
await slack.send(configs);
await slack.success(configs);
await irc.success(configs);
await notify.success(configs);
spinner.success();
output.successMessage(configs);
} catch (err) {
await slack.fail(configs, err.message);
await irc.fail(configs, err.message);
await notify.fail(configs, err.message);
spinner.fail(err.message);

@@ -59,0 +62,0 @@ }

exports.slack = require('./slack').default;
exports.irc = require('./irc').default;
exports.githost = require('./githost').default;
exports.compress = require('./compress').default;
exports.root = require('./root').default;

@@ -6,5 +6,2 @@ exports.default = {

},
snyk: {
type: 'boolean'
},
npmpublish: {

@@ -18,2 +15,5 @@ type: 'boolean'

type: 'string'
},
notify: {
type: 'boolean'
}

@@ -20,0 +20,0 @@ },

exports.default = {
properties: {
reportfail: {
required: false,
type: 'boolean'
},
channel: {

@@ -4,0 +8,0 @@ required: true,

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc