aft-web-services
Version:
Automated Functional Testing (AFT) module for testing web services over HTTP and HTTPS
141 lines • 5.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.HttpHeaders = void 0;
const aft_core_1 = require("aft-core");
/**
* a module containing helper const and functions to generate
* HTTP headers that can then be appended to your header object using:
* ```typescript
* const headers = {
* ...HttpHeaders.Authorization.basic('myUsername', 'myPassword'),
* ...HttpHeaders.ContentType.get(HttpHeaders.MimeType.applicationJson)
* ...HttpHeaders.Cookies.setCookie({
* key: 'foo',
* val: 'bar',
* expiration: new Date().toString('u'),
* secure: true,
* httpOnly: true
* })
* };
* ```
*/
var HttpHeaders;
(function (HttpHeaders) {
let MimeType;
(function (MimeType) {
MimeType.applicationOctetstream = 'application/octet-stream';
MimeType.textPlain = 'text/plain';
MimeType.textCss = 'text/css';
MimeType.textHtml = 'text/html';
MimeType.textXml = 'text/xml';
MimeType.textJavascript = 'text/javascript';
MimeType.multipartFormData = 'multipart/form-data';
MimeType.applicationJson = 'application/json';
})(MimeType = HttpHeaders.MimeType || (HttpHeaders.MimeType = {}));
let ContentType;
(function (ContentType) {
function get(mimeType) {
return {
"Content-Type": mimeType
};
}
ContentType.get = get;
})(ContentType = HttpHeaders.ContentType || (HttpHeaders.ContentType = {}));
let Accept;
(function (Accept) {
function get(mimeType) {
return {
Accept: mimeType
};
}
Accept.get = get;
})(Accept = HttpHeaders.Accept || (HttpHeaders.Accept = {}));
let Authorization;
(function (Authorization) {
function basic(username, password) {
const encoded = aft_core_1.convert.toBase64Encoded(`${username}:${password}`);
return {
Authorization: `Basic ${encoded}`
};
}
Authorization.basic = basic;
function bearer(token) {
return {
Authorization: `Basic ${token}`
};
}
Authorization.bearer = bearer;
function digest(options) {
const authData = new Array();
if (options === null || options === void 0 ? void 0 : options.username) {
authData.push(`username=${options.username}`);
}
if (options === null || options === void 0 ? void 0 : options.realm) {
authData.push(`realm=${options.realm}`);
}
if (options === null || options === void 0 ? void 0 : options.uri) {
authData.push(`uri=${options.uri}`);
}
if (options === null || options === void 0 ? void 0 : options.algorithm) {
authData.push(`algorithm=${options.algorithm}`);
}
if (options === null || options === void 0 ? void 0 : options.nonce) {
authData.push(`nonce=${options.nonce}`);
}
if (options === null || options === void 0 ? void 0 : options.nc) {
authData.push(`nc=${options.nc}`);
}
if (options === null || options === void 0 ? void 0 : options.cnonce) {
authData.push(`cnonce=${options.cnonce}`);
}
if (options === null || options === void 0 ? void 0 : options.qop) {
authData.push(`qop=${options.qop}`);
}
if (options === null || options === void 0 ? void 0 : options.response) {
authData.push(`response=${options.response}`);
}
if (options === null || options === void 0 ? void 0 : options.opaque) {
authData.push(`opaque=${options.opaque}`);
}
return {
Authorization: `Digest ${authData.join(', ')}`
};
}
Authorization.digest = digest;
})(Authorization = HttpHeaders.Authorization || (HttpHeaders.Authorization = {}));
let Cookies;
(function (Cookies) {
function cookie(...cookies) {
const cookieStrings = new Array();
for (let c of cookies) {
if (c.key && c.val) {
cookieStrings.push(`${c.key}=${c.val}`);
}
}
return {
Cookie: `${cookieStrings.join('; ')}`
};
}
Cookies.cookie = cookie;
function setCookie(cookie) {
const valsArr = new Array();
if (cookie.key && cookie.val) {
valsArr.push(`${cookie.key}=${cookie.val}`);
if (cookie.expires) {
valsArr.push(`Expires=${cookie.expires}`);
}
if (cookie.secure) {
valsArr.push('Secure');
}
if (cookie.httpOnly) {
valsArr.push('HttpOnly');
}
}
return {
"Set-Cookie": `${valsArr.join('; ')}`
};
}
Cookies.setCookie = setCookie;
})(Cookies = HttpHeaders.Cookies || (HttpHeaders.Cookies = {}));
})(HttpHeaders || (exports.HttpHeaders = HttpHeaders = {}));
//# sourceMappingURL=http-headers.js.map