@hom3chuk/tektek
Version:
A library for detecting technologies used within HTTP Archive (HAR)
192 lines (191 loc) • 7.52 kB
JavaScript
"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;