1var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 2 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 3 return new (P || (P = Promise))(function (resolve, reject) { 4 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 5 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 6 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 7 step((generator = generator.apply(thisArg, _arguments || [])).next()); 8 }); 9}; 10addInjectScriptEventListener(); 11function addInjectScriptEventListener() { 12 const injectScriptEvent = 'DOMContentLoaded'; 13 if (injectScriptEvent === 'load') { 14 window.addEventListener('load', injectElements, { once: true }); 15 } 16 else { 17 document.addEventListener(injectScriptEvent, injectElements, { once: true }); 18 } 19} 20function injectElements() { 21 return __awaiter(this, void 0, void 0, function* () { 22 if (!document.dispatchEvent(new CustomEvent('beforeBlitzInjectAll', { 23 cancelable: true, 24 }))) { 25 return; 26 } 27 const elements = document.querySelectorAll('.blitz-inject:not(.blitz-inject--injected)'); 28 const injectElements = {}; 29 const promises = []; 30 elements.forEach(element => { 31 var _a; 32 const injectElement = { 33 element: element, 34 id: element.getAttribute('data-blitz-id'), 35 uri: element.getAttribute('data-blitz-uri'), 36 params: element.getAttribute('data-blitz-params'), 37 property: element.getAttribute('data-blitz-property'), 38 }; 39 if (document.dispatchEvent(new CustomEvent('beforeBlitzInject', { 40 cancelable: true, 41 detail: injectElement, 42 }))) { 43 const url = injectElement.uri + (injectElement.params ? (injectElement.uri.indexOf('?') !== -1 ? '&' : '?') + injectElement.params : ''); 44 injectElements[url] = (_a = injectElements[url]) !== null && _a !== void 0 ? _a : []; 45 injectElements[url].push(injectElement); 46 } 47 }); 48 for (const url in injectElements) { 49 promises.push(replaceUrls(url, injectElements[url])); 50 } 51 yield Promise.all(promises); 52 document.dispatchEvent(new CustomEvent('afterBlitzInjectAll')); 53 }); 54} 55function replaceUrls(url, injectElements) { 56 return __awaiter(this, void 0, void 0, function* () { 57 const response = yield fetch(url); 58 if (response.status >= 300) { 59 return null; 60 } 61 const responseText = yield response.text(); 62 let responseJson; 63 if (url.indexOf('blitz/csrf/json') !== -1) { 64 responseJson = JSON.parse(responseText); 65 } 66 injectElements.forEach(injectElement => { 67 var _a; 68 if (injectElement.property) { 69 injectElement.element.innerHTML = (_a = responseJson[injectElement.property]) !== null && _a !== void 0 ? _a : ''; 70 } 71 else { 72 injectElement.element.innerHTML = responseText; 73 } 74 injectElement.element.classList.add('blitz-inject--injected'); 75 document.dispatchEvent(new CustomEvent('afterBlitzInject', { 76 detail: injectElement, 77 })); 78 }); 79 }); 80}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.