kopi-id
Version:
Simple OIDC Library
101 lines (93 loc) • 5.73 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _joi = _interopRequireDefault(require("joi"));
var _constants = _interopRequireDefault(require("../constants"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var validResponseTypes = [_constants["default"].authenticationRequest.responseTypes.CODE, _constants["default"].authenticationRequest.responseTypes.ID_TOKEN, _constants["default"].authenticationRequest.responseTypes.TOKEN];
var validDisplay = [_constants["default"].authenticationRequest.display.PAGE, _constants["default"].authenticationRequest.display.POPUP, _constants["default"].authenticationRequest.display.TOUCH, _constants["default"].authenticationRequest.display.WAP];
var validPrompts = [_constants["default"].authenticationRequest.prompt.NONE, _constants["default"].authenticationRequest.prompt.LOGIN, _constants["default"].authenticationRequest.prompt.CONSENT, _constants["default"].authenticationRequest.prompt.SELECT_ACCOUNT];
var CustomJoi = _joi["default"].extend(function (joi) {
return {
base: joi.array(),
name: 'spaceArray',
coerce: function coerce(value, state, options) {
if (typeof value !== 'string') {
return value;
}
return value.trim().split(' ');
}
};
});
var _default = {
authenticationRequestGet: {
query: {
scope: CustomJoi.spaceArray().has(_constants["default"].authenticationRequest.scope.OPENID).required(),
response_type: CustomJoi.spaceArray().items(_joi["default"].string().valid(validResponseTypes)).required(),
client_id: _joi["default"].string().min(1).required(),
redirect_uri: _joi["default"].string().min(1).required(),
state: _joi["default"].string().optional(),
response_mode: _joi["default"].string().optional(),
nonce: _joi["default"].when('response_type', {
is: _joi["default"].array().has(_constants["default"].authenticationRequest.responseTypes.ID_TOKEN),
then: _joi["default"].when('response_type', {
is: _joi["default"].array().has(_constants["default"].authenticationRequest.responseTypes.CODE),
then: _joi["default"].string().optional(),
otherwise: _joi["default"].string().required()
}),
otherwise: _joi["default"].string().optional()
}),
display: _joi["default"].string().valid(validDisplay).optional(),
prompt: CustomJoi.spaceArray().items(_joi["default"].string().valid(validPrompts)).optional(),
max_age: _joi["default"].number().integer().min(0).optional(),
ui_locales: CustomJoi.spaceArray().items(_joi["default"].string()).optional(),
id_token_hint: _joi["default"].string().optional(),
login_hint: _joi["default"].string().optional(),
acr_values: CustomJoi.spaceArray().items(_joi["default"].string()).optional(),
claims_locales: CustomJoi.spaceArray().items(_joi["default"].string()).optional()
},
params: {},
body: {}
},
authenticationRequestPost: {
query: {},
params: {},
body: {
scope: CustomJoi.spaceArray().has(_constants["default"].authenticationRequest.scope.OPENID).required(),
response_type: _joi["default"].alternatives([CustomJoi.spaceArray().items(_joi["default"].string().valid(validResponseTypes)), _joi["default"].array().items(_joi["default"].string().valid(validResponseTypes))]).required(),
client_id: _joi["default"].string().min(1).required(),
redirect_uri: _joi["default"].string().min(1).required(),
state: _joi["default"].string().optional(),
response_mode: _joi["default"].string().optional(),
nonce: _joi["default"].when('response_type', {
is: _joi["default"].alternatives([CustomJoi.spaceArray().items().has(_constants["default"].authenticationRequest.responseTypes.ID_TOKEN), _joi["default"].array().has(_constants["default"].authenticationRequest.responseTypes.ID_TOKEN)]),
then: _joi["default"].when('response_type', {
is: _joi["default"].alternatives([CustomJoi.spaceArray().items().has(_constants["default"].authenticationRequest.responseTypes.CODE), _joi["default"].array().has(_constants["default"].authenticationRequest.responseTypes.CODE)]),
then: _joi["default"].string().optional(),
otherwise: _joi["default"].string().required()
}),
otherwise: _joi["default"].string().optional()
}),
display: _joi["default"].string().valid(validDisplay).optional(),
prompt: _joi["default"].alternatives([CustomJoi.spaceArray().items(_joi["default"].string().valid(validPrompts)), _joi["default"].array().items(_joi["default"].string().valid(validPrompts))]).optional(),
max_age: _joi["default"].number().integer().min(0).optional(),
ui_locales: _joi["default"].alternatives([CustomJoi.spaceArray().items(_joi["default"].string()), _joi["default"].array().items(_joi["default"].string())]).optional(),
id_token_hint: _joi["default"].string().optional(),
login_hint: _joi["default"].string().optional(),
acr_values: _joi["default"].alternatives([CustomJoi.spaceArray().items(_joi["default"].string()), _joi["default"].array().items(_joi["default"].string())]).optional(),
claims_locales: _joi["default"].alternatives([CustomJoi.spaceArray().items(_joi["default"].string()), _joi["default"].array().items(_joi["default"].string())]).optional()
}
},
tokenRequestPost: {
query: {},
params: {},
body: {
grant_type: _joi["default"].string().required(),
code: _joi["default"].string().required(),
redirect_uri: _joi["default"].string().required()
}
}
};
exports["default"] = _default;