UNPKG

@hom3chuk/tektek

Version:

A library for detecting technologies used within HTTP Archive (HAR)

173 lines (172 loc) 6.1 kB
export var getRoot = function (har) { var res = null; var entries = har.log.entries; for (var i = 0; i < entries.length; i++) { if ((entries[i].response.status === 200 || entries[i].response.status === 304) && entries[i].response.content.mimeType === 'text/html') { return entries[i]; } } return res; }; export var getRootBody = function (har) { var res = null; var root = getRoot(har); if (root) { res = root.response.content.text; } return res; }; export var getRootHeaders = function (har) { var res = null; var root = getRoot(har); if (root) { res = root.response.headers; } return res; }; export var rootBodyContains = function (har, value) { var res = false; var rootBody = getRootBody(har); if (rootBody.indexOf(value) !== -1) { return true; } return res; }; export var rootHeaderEquals = function (har, header, value) { var res = false; var rootHeaders = getRootHeaders(har); for (var i = 0; i < rootHeaders.length; i++) { if (rootHeaders[i].name.toLowerCase() === header.toLowerCase() && rootHeaders[i].value.toLowerCase() === value.toLowerCase()) { return true; } } return res; }; export var anyResourceHeaderEquals = function (har, header, value) { var res = false; for (var i = 0; i < har.log.entries.length; i++) { var currentHeaders = har.log.entries[i].response.headers; for (var j = 0; j < currentHeaders.length; j++) { if (currentHeaders[j].name.toLowerCase() === header.toLowerCase() && currentHeaders[j].value.toLowerCase() === value.toLowerCase()) { return true; } } } return res; }; export var anyResourceHeaderContains = function (har, header, value) { var res = false; for (var i = 0; i < har.log.entries.length; i++) { var currentHeaders = har.log.entries[i].response.headers; for (var j = 0; j < currentHeaders.length; j++) { if ((currentHeaders[j].name.toLowerCase() === header.toLowerCase()) && (currentHeaders[j].value.toLowerCase().indexOf(value.toLowerCase()) !== -1)) { return true; } } } return res; }; export var anyCssResourceContentContains = function (har, value, searchLimit) { if (searchLimit === void 0) { searchLimit = undefined; } var res = false; for (var i = 0; i < har.log.entries.length; i++) { if (har.log.entries[i].response.content.mimeType.toLowerCase() !== 'text/css') { continue; } if (har.log.entries[i].response.content.text && ((searchLimit && har.log.entries[i].response.content.text.substring(0, searchLimit).indexOf(value) !== -1) || (!searchLimit && har.log.entries[i].response.content.text.indexOf(value) !== -1))) { return true; } } return res; }; export var anyJavascriptResourceContentContains = function (har, value, searchLimit) { if (searchLimit === void 0) { searchLimit = undefined; } var res = false; for (var i = 0; i < har.log.entries.length; i++) { if (har.log.entries[i].response.content.mimeType.toLowerCase() !== 'text/javascript') { continue; } if (har.log.entries[i].response.content.text && ((searchLimit && har.log.entries[i].response.content.text.substring(0, searchLimit).indexOf(value) !== -1) || (!searchLimit && har.log.entries[i].response.content.text.indexOf(value) !== -1))) { return true; } } return res; }; export var anyResourceUrlContains = function (har, value) { var res = false; for (var i = 0; i < har.log.entries.length; i++) { if (har.log.entries[i].request.url.toLowerCase().indexOf(value.toLowerCase()) !== -1) { return true; } } return res; }; export var anyResourceUrlRegex = function (har, value) { var res = false; for (var i = 0; i < har.log.entries.length; i++) { if (value.exec(har.log.entries[i].request.url.toLowerCase())) { return true; } } return res; }; export var rootHeaderContains = function (har, header, value) { var res = false; var rootHeaders = getRootHeaders(har); for (var i = 0; i < rootHeaders.length; i++) { if ((rootHeaders[i].name.toLowerCase() === header.toLowerCase()) && (rootHeaders[i].value.toLowerCase().indexOf(value.toLowerCase()) !== -1)) { return true; } } return res; }; export var rootAnyHeaderContains = function (har, value) { var res = false; var rootHeaders = getRootHeaders(har); for (var i = 0; i < rootHeaders.length; i++) { if (rootHeaders[i].value.toLowerCase().indexOf(value.toLowerCase()) !== -1) { return true; } } return res; }; export var rootHeaderExists = function (har, header) { var res = false; var rootHeaders = getRootHeaders(har); for (var i = 0; i < rootHeaders.length; i++) { if (rootHeaders[i].name.toLowerCase() === header.toLowerCase()) { return true; } } return res; }; export var anyResourceHeaderExists = function (har, header) { var res = false; for (var i = 0; i < har.log.entries.length; i++) { var currentHeaders = har.log.entries[i].response.headers; for (var j = 0; j < currentHeaders.length; j++) { if (currentHeaders[j].name.toLowerCase() === header.toLowerCase()) { return true; } } } return res; }; export var anyResourceAnyHeadersContain = function (har, value) { var res = false; for (var i = 0; i < har.log.entries.length; i++) { var currentHeaders = har.log.entries[i].response.headers; for (var j = 0; j < currentHeaders.length; j++) { if (currentHeaders[j].value.toLowerCase().indexOf(value.toLowerCase()) !== -1) { return true; } } } return res; };