From ead5915f3cf0e33ffe79eba69599fad78f880387 Mon Sep 17 00:00:00 2001 From: Benjamin Coe Date: Thu, 5 May 2016 19:46:25 -0700 Subject: [PATCH 1/4] chore(release): 1.4.0 --- CHANGELOG.md | 11 +++++++++++ package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 353c1d9..397b04a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,17 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +# [1.4.0](https://github.com/npm/oauth2-server-pg/compare/v1.2.0...v1.4.0) (2016-05-06) + + +### Features + +* allow an integration provider to specify a post-install hook ([#15](https://github.com/npm/oauth2-server-pg/issues/15)) ([e509cfb](https://github.com/npm/oauth2-server-pg/commit/e509cfb)) +* you can now remove a client once it is added ([#13](https://github.com/npm/oauth2-server-pg/issues/13)) ([d81ac92](https://github.com/npm/oauth2-server-pg/commit/d81ac92)) + + + # [1.3.0](https://github.com/npm/oauth2-server-pg/compare/v1.2.0...v1.3.0) (2016-05-06) diff --git a/package.json b/package.json index 588d710..66f0aa5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "oauth2-server-pg", - "version": "1.3.0", + "version": "1.4.0", "description": "PostgreSQL and Express powered OAuth 2.0 server", "main": "./lib/server.js", "bin": "./bin/oauth2-server-pg.js", From 95b4bd29a53c63cc9fcf8c6b099135f7b8022d8a Mon Sep 17 00:00:00 2001 From: Benjamin Coe Date: Wed, 11 May 2016 17:41:09 -0700 Subject: [PATCH 2/4] feat: allow an addon to be installed from a URL rather than an npm module --- lib/install.js | 11 ++++++++--- lib/remove.js | 12 +++++++++--- lib/util.js | 27 +++++++++++++++++++++++++-- package.json | 3 ++- 4 files changed, 44 insertions(+), 9 deletions(-) diff --git a/lib/install.js b/lib/install.js index 76ac5be..fd7d4b0 100644 --- a/lib/install.js +++ b/lib/install.js @@ -1,8 +1,10 @@ const _ = require('lodash') +const isUrl = require('is-url') const request = require('request') const Promise = require('bluebird') const figures = require('figures') const npmInstall = require('./util').npmInstall +const getMeta = require('./util').getMeta const exists = require('./util').exists const prefix = 'npm-addon-' @@ -31,11 +33,14 @@ exports.handler = function (argv) { exists(addon, argv) .then(function () { console.info(figures.tick + ' found addon "' + argv.addon + '"') - return npmInstall(addon, argv) + if (isUrl(argv.addon)) { + return getMeta(argv.addon, argv) + } else { + return npmInstall(addon, argv) + } }) - .then(function () { + .then(function (meta) { console.info(figures.tick + ' installed addon "' + argv.addon + '"') - meta = require(addon) return createClient(meta, argv) }) .then(function (_client) { diff --git a/lib/remove.js b/lib/remove.js index c82a6ec..8cfc08d 100644 --- a/lib/remove.js +++ b/lib/remove.js @@ -1,7 +1,9 @@ +const isUrl = require('is-url') const request = require('request') const Promise = require('bluebird') const figures = require('figures') const npmInstall = require('./util').npmInstall +const getMeta = require('./util').getMeta const exists = require('./util').exists const prefix = 'npm-addon-' @@ -29,11 +31,15 @@ exports.handler = function (argv) { exists(addon, argv) .then(function () { console.info(figures.tick + ' found addon "' + argv.addon + '"') - return npmInstall(addon, argv) + if (isUrl(argv.addon)) { + return getMeta(argv.addon, argv) + } else { + return npmInstall(addon, argv) + } }) - .then(function () { + .then(function (meta) { + console.log(meta) console.info(figures.tick + ' installed addon for "' + argv.addon + '"') - meta = require(addon) return deleteClient(meta, argv) }) .then(function () { diff --git a/lib/util.js b/lib/util.js index 10ba2bc..3c586a7 100644 --- a/lib/util.js +++ b/lib/util.js @@ -3,6 +3,7 @@ const figures = require('figures') const Promise = require('bluebird') const request = require('request') const resolve = require('url').resolve +const isUrl = require('is-url') module.exports = { // npm install a module from an npm module. @@ -18,15 +19,20 @@ module.exports = { var msg = figures.cross + ' failed to install ' + argv.addon return deferred.reject(Error(msg)) } - return deferred.resolve() + + return deferred.resolve(require(addon)) }) return deferred.promise }, exists (addon, argv) { const deferred = Promise.defer() + var url = argv.addon + if (!isUrl(url)) { + url = resolve(argv.registry, addon) + } - request.get(resolve(argv.registry, addon), function (err, res) { + request.get(url, function (err, res) { if (err) return deferred.reject(err) if (res.statusCode >= 400) { var msg = figures.cross + ' could not find addon "' + argv.addon + '" in registry ' + argv.registry @@ -35,6 +41,23 @@ module.exports = { return deferred.resolve() }) + return deferred.promise + }, + getMeta (url, argv) { + const deferred = Promise.defer() + + request.get({ + url: url, + json: true + }, function (err, res, meta) { + if (err) return deferred.reject(err) + if (res.statusCode >= 400) { + var msg = figures.cross + ' could not find addon "' + argv.addon + '" in registry ' + argv.registry + return deferred.reject(Error(msg)) + } + return deferred.resolve(meta) + }) + return deferred.promise } } diff --git a/package.json b/package.json index 66f0aa5..14ba998 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "db-migrate": "^0.9.23", "express": "^4.13.4", "figures": "^1.5.0", + "is-url": "^1.2.1", "lodash": "^4.8.2", "moment": "^2.12.0", "ormnomnom": "^2.3.0", @@ -57,4 +58,4 @@ "**/test/**" ] } -} \ No newline at end of file +} From fa523bcfc47afc7ec404393f511aae2da73f960e Mon Sep 17 00:00:00 2001 From: Benjamin Coe Date: Wed, 11 May 2016 17:52:15 -0700 Subject: [PATCH 3/4] fix: node-gyp not yet working on v6 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b250e4d..fcd1de9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ language: node_js services: - postgres node_js: - - "node" + - "5" before_script: - psql -c 'create database oauth2_server;' -U postgres after_success: npm run coverage From f84f1dfad9505b069690da74476a288949737fbc Mon Sep 17 00:00:00 2001 From: Benjamin Coe Date: Wed, 11 May 2016 17:59:40 -0700 Subject: [PATCH 4/4] fix: standard nit with meta --- lib/install.js | 3 ++- lib/remove.js | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/install.js b/lib/install.js index fd7d4b0..848c6cd 100644 --- a/lib/install.js +++ b/lib/install.js @@ -39,7 +39,8 @@ exports.handler = function (argv) { return npmInstall(addon, argv) } }) - .then(function (meta) { + .then(function (_meta) { + meta = _meta console.info(figures.tick + ' installed addon "' + argv.addon + '"') return createClient(meta, argv) }) diff --git a/lib/remove.js b/lib/remove.js index 8cfc08d..0539180 100644 --- a/lib/remove.js +++ b/lib/remove.js @@ -26,7 +26,6 @@ exports.builder = function (yargs) { exports.handler = function (argv) { var addon = prefix + argv.addon - var meta = null exists(addon, argv) .then(function () { @@ -38,7 +37,6 @@ exports.handler = function (argv) { } }) .then(function (meta) { - console.log(meta) console.info(figures.tick + ' installed addon for "' + argv.addon + '"') return deleteClient(meta, argv) })