UNPKG

@hom3chuk/tektek

Version:

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

192 lines (191 loc) 7.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.anyResourceAnyHeadersContain = exports.anyResourceHeaderExists = exports.rootHeaderExists = exports.rootAnyHeaderContains = exports.rootHeaderContains = exports.anyResourceUrlRegex = exports.anyResourceUrlContains = exports.anyJavascriptResourceContentContains = exports.anyCssResourceContentContains = exports.anyResourceHeaderContains = exports.anyResourceHeaderEquals = exports.rootHeaderEquals = exports.rootBodyContains = exports.getRootHeaders = exports.getRootBody = exports.getRoot = void 0; 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; }; exports.getRoot = getRoot; var getRootBody = function (har) { var res = null; var root = (0, exports.getRoot)(har); if (root) { res = root.response.content.text; } return res; }; exports.getRootBody = getRootBody; var getRootHeaders = function (har) { var res = null; var root = (0, exports.getRoot)(har); if (root) { res = root.response.headers; } return res; }; exports.getRootHeaders = getRootHeaders; var rootBodyContains = function (har, value) { var res = false; var rootBody = (0, exports.getRootBody)(har); if (rootBody.indexOf(value) !== -1) { return true; } return res; }; exports.rootBodyContains = rootBodyContains; var rootHeaderEquals = function (har, header, value) { var res = false; var rootHeaders = (0, exports.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; }; exports.rootHeaderEquals = rootHeaderEquals; 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; }; exports.anyResourceHeaderEquals = anyResourceHeaderEquals; 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; }; exports.anyResourceHeaderContains = anyResourceHeaderContains; 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; }; exports.anyCssResourceContentContains = anyCssResourceContentContains; 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; }; exports.anyJavascriptResourceContentContains = anyJavascriptResourceContentContains; 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; }; exports.anyResourceUrlContains = anyResourceUrlContains; 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; }; exports.anyResourceUrlRegex = anyResourceUrlRegex; var rootHeaderContains = function (har, header, value) { var res = false; var rootHeaders = (0, exports.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; }; exports.rootHeaderContains = rootHeaderContains; var rootAnyHeaderContains = function (har, value) { var res = false; var rootHeaders = (0, exports.getRootHeaders)(har); for (var i = 0; i < rootHeaders.length; i++) { if (rootHeaders[i].value.toLowerCase().indexOf(value.toLowerCase()) !== -1) { return true; } } return res; }; exports.rootAnyHeaderContains = rootAnyHeaderContains; var rootHeaderExists = function (har, header) { var res = false; var rootHeaders = (0, exports.getRootHeaders)(har); for (var i = 0; i < rootHeaders.length; i++) { if (rootHeaders[i].name.toLowerCase() === header.toLowerCase()) { return true; } } return res; }; exports.rootHeaderExists = rootHeaderExists; 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; }; exports.anyResourceHeaderExists = anyResourceHeaderExists; 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; }; exports.anyResourceAnyHeadersContain = anyResourceAnyHeadersContain;