Skip to content

Commit 10fe55d

Browse files
authored
feature(core): extract is.js into standalone package @node-oauth/formats #55
Merge pull request #108 from node-oauth/oauth-formats thanks to @jwerre
2 parents 292774e + 4ff1f07 commit 10fe55d

9 files changed

+27
-147
lines changed

lib/grant-types/abstract-grant-type.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const InvalidArgumentError = require('../errors/invalid-argument-error');
88
const InvalidScopeError = require('../errors/invalid-scope-error');
99
const Promise = require('bluebird');
1010
const promisify = require('promisify-any').use(Promise);
11-
const is = require('../validator/is');
11+
const isFormat = require('@node-oauth/formats');
1212
const tokenUtil = require('../utils/token-util');
1313

1414
/**
@@ -83,7 +83,7 @@ AbstractGrantType.prototype.getRefreshTokenExpiresAt = function() {
8383
*/
8484

8585
AbstractGrantType.prototype.getScope = function(request) {
86-
if (!is.nqschar(request.body.scope)) {
86+
if (!isFormat.nqschar(request.body.scope)) {
8787
throw new InvalidArgumentError('Invalid parameter: `scope`');
8888
}
8989

lib/grant-types/authorization-code-grant-type.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const InvalidRequestError = require('../errors/invalid-request-error');
1111
const Promise = require('bluebird');
1212
const promisify = require('promisify-any').use(Promise);
1313
const ServerError = require('../errors/server-error');
14-
const is = require('../validator/is');
14+
const isFormat = require('@node-oauth/formats');
1515
const util = require('util');
1616

1717
/**
@@ -85,7 +85,7 @@ AuthorizationCodeGrantType.prototype.getAuthorizationCode = function(request, cl
8585
throw new InvalidRequestError('Missing parameter: `code`');
8686
}
8787

88-
if (!is.vschar(request.body.code)) {
88+
if (!isFormat.vschar(request.body.code)) {
8989
throw new InvalidRequestError('Invalid parameter: `code`');
9090
}
9191
return promisify(this.model.getAuthorizationCode, 1).call(this.model, request.body.code)
@@ -114,7 +114,7 @@ AuthorizationCodeGrantType.prototype.getAuthorizationCode = function(request, cl
114114
throw new InvalidGrantError('Invalid grant: authorization code has expired');
115115
}
116116

117-
if (code.redirectUri && !is.uri(code.redirectUri)) {
117+
if (code.redirectUri && !isFormat.uri(code.redirectUri)) {
118118
throw new InvalidGrantError('Invalid grant: `redirect_uri` is not a valid URI');
119119
}
120120

@@ -140,7 +140,7 @@ AuthorizationCodeGrantType.prototype.validateRedirectUri = function(request, cod
140140

141141
const redirectUri = request.body.redirect_uri || request.query.redirect_uri;
142142

143-
if (!is.uri(redirectUri)) {
143+
if (!isFormat.uri(redirectUri)) {
144144
throw new InvalidRequestError('Invalid request: `redirect_uri` is not a valid URI');
145145
}
146146

lib/grant-types/password-grant-type.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const InvalidGrantError = require('../errors/invalid-grant-error');
1010
const InvalidRequestError = require('../errors/invalid-request-error');
1111
const Promise = require('bluebird');
1212
const promisify = require('promisify-any').use(Promise);
13-
const is = require('../validator/is');
13+
const isFormat = require('@node-oauth/formats');
1414
const util = require('util');
1515

1616
/**
@@ -80,11 +80,11 @@ PasswordGrantType.prototype.getUser = function(request) {
8080
throw new InvalidRequestError('Missing parameter: `password`');
8181
}
8282

83-
if (!is.uchar(request.body.username)) {
83+
if (!isFormat.uchar(request.body.username)) {
8484
throw new InvalidRequestError('Invalid parameter: `username`');
8585
}
8686

87-
if (!is.uchar(request.body.password)) {
87+
if (!isFormat.uchar(request.body.password)) {
8888
throw new InvalidRequestError('Invalid parameter: `password`');
8989
}
9090

lib/grant-types/refresh-token-grant-type.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const InvalidRequestError = require('../errors/invalid-request-error');
1111
const Promise = require('bluebird');
1212
const promisify = require('promisify-any').use(Promise);
1313
const ServerError = require('../errors/server-error');
14-
const is = require('../validator/is');
14+
const isFormat = require('@node-oauth/formats');
1515
const util = require('util');
1616

1717
/**
@@ -82,7 +82,7 @@ RefreshTokenGrantType.prototype.getRefreshToken = function(request, client) {
8282
throw new InvalidRequestError('Missing parameter: `refresh_token`');
8383
}
8484

85-
if (!is.vschar(request.body.refresh_token)) {
85+
if (!isFormat.vschar(request.body.refresh_token)) {
8686
throw new InvalidRequestError('Invalid parameter: `refresh_token`');
8787
}
8888

lib/handlers/authorize-handler.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const Request = require('../request');
1818
const Response = require('../response');
1919
const ServerError = require('../errors/server-error');
2020
const UnauthorizedClientError = require('../errors/unauthorized-client-error');
21-
const is = require('../validator/is');
21+
const isFormat = require('@node-oauth/formats');
2222
const tokenUtil = require('../utils/token-util');
2323
const url = require('url');
2424

@@ -171,13 +171,13 @@ AuthorizeHandler.prototype.getClient = function(request) {
171171
throw new InvalidRequestError('Missing parameter: `client_id`');
172172
}
173173

174-
if (!is.vschar(clientId)) {
174+
if (!isFormat.vschar(clientId)) {
175175
throw new InvalidRequestError('Invalid parameter: `client_id`');
176176
}
177177

178178
const redirectUri = request.body.redirect_uri || request.query.redirect_uri;
179179

180-
if (redirectUri && !is.uri(redirectUri)) {
180+
if (redirectUri && !isFormat.uri(redirectUri)) {
181181
throw new InvalidRequestError('Invalid request: `redirect_uri` is not a valid URI');
182182
}
183183
return promisify(this.model.getClient, 2).call(this.model, clientId, null)
@@ -230,7 +230,7 @@ AuthorizeHandler.prototype.validateScope = function(user, client, scope) {
230230
AuthorizeHandler.prototype.getScope = function(request) {
231231
const scope = request.body.scope || request.query.scope;
232232

233-
if (!is.nqschar(scope)) {
233+
if (!isFormat.nqschar(scope)) {
234234
throw new InvalidScopeError('Invalid parameter: `scope`');
235235
}
236236

@@ -245,7 +245,7 @@ AuthorizeHandler.prototype.getState = function(request) {
245245
const state = request.body.state || request.query.state;
246246
const stateExists = state && state.length > 0;
247247
const stateIsValid = stateExists
248-
? is.vschar(state)
248+
? isFormat.vschar(state)
249249
: this.allowEmptyState;
250250

251251
if (!stateIsValid) {

lib/handlers/token-handler.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const TokenModel = require('../models/token-model');
1818
const UnauthorizedClientError = require('../errors/unauthorized-client-error');
1919
const UnsupportedGrantTypeError = require('../errors/unsupported-grant-type-error');
2020
const auth = require('basic-auth');
21-
const is = require('../validator/is');
21+
const isFormat = require('@node-oauth/formats');
2222

2323
/**
2424
* Grant types.
@@ -123,11 +123,11 @@ TokenHandler.prototype.getClient = function(request, response) {
123123
throw new InvalidRequestError('Missing parameter: `client_secret`');
124124
}
125125

126-
if (!is.vschar(credentials.clientId)) {
126+
if (!isFormat.vschar(credentials.clientId)) {
127127
throw new InvalidRequestError('Invalid parameter: `client_id`');
128128
}
129129

130-
if (credentials.clientSecret && !is.vschar(credentials.clientSecret)) {
130+
if (credentials.clientSecret && !isFormat.vschar(credentials.clientSecret)) {
131131
throw new InvalidRequestError('Invalid parameter: `client_secret`');
132132
}
133133

@@ -203,7 +203,7 @@ TokenHandler.prototype.handleGrantType = function(request, client) {
203203
throw new InvalidRequestError('Missing parameter: `grant_type`');
204204
}
205205

206-
if (!is.nchar(grantType) && !is.uri(grantType)) {
206+
if (!isFormat.nchar(grantType) && !isFormat.uri(grantType)) {
207207
throw new InvalidRequestError('Invalid parameter: `grant_type`');
208208
}
209209

package-lock.json

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"lib"
2525
],
2626
"dependencies": {
27+
"@node-oauth/formats": "^1.0.0",
2728
"basic-auth": "2.0.1",
2829
"bluebird": "3.7.2",
2930
"promisify-any": "2.0.1",
@@ -44,6 +45,7 @@
4445
"pretest": "./node_modules/.bin/eslint lib test index.js",
4546
"test": "NODE_ENV=test ./node_modules/.bin/mocha 'test/**/*_test.js'",
4647
"test-debug": "NODE_ENV=test ./node_modules/.bin/mocha --inspect --debug-brk 'test/**/*_test.js'",
48+
"test:watch": "NODE_ENV=test ./node_modules/.bin/mocha --watch 'test/**/*_test.js'",
4749
"test:coverage": "NODE_ENV=test nyc --reporter=html --reporter=text ./node_modules/.bin/mocha 'test/**/*_test.js'",
4850
"lint": "npx eslint .",
4951
"lint:fix": "npx eslint . --fix"

test/unit/validator/is_test.js

Lines changed: 0 additions & 127 deletions
This file was deleted.

0 commit comments

Comments
 (0)