/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/express-extractheaders@4.0.1/lib/expressExtractHeaders.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
const hijackResponse=require("hijackresponse"),HtmlParser=require("htmlparser2").Parser,RangeOmittingStream=require("./RangeOmittingStream");module.exports=function(e){const t=(e=e||{}).memoize,n={};return function(e,r,i){const s=n[e.url],a="HEAD"===e.method;s&&t&&(0===s.omitRanges.length||a)?(r.set(s.headers),i()):(a&&(e.method="GET"),delete e.headers.range,delete e.headers["if-range"],hijackResponse(r,i).then((({readable:t,writable:i})=>{if(s&&s.headers.etag&&s.headers.etag===r.getHeader("ETag")&&(0===s.omitRanges.length||!/^W\//.test(s.headers.etag)))return r.set(s.headers),s.omitRanges.length>0?t.pipe(new RangeOmittingStream(s.omitRanges)).pipe(i):t.pipe(i);if(/^text\/html(?:;|\s|$)/i.test(r.getHeader("Content-Type"))){t.setEncoding("utf-8");const s={},o=[];let g=!0;const c=[],l=function(){if(g){g=!1;const t=r.getHeader("Content-Length");if(void 0!==t){let e=0;o.forEach((function(t){e+=t[1]-t[0]})),e&&(s["content-length"]=String(parseInt(t,10)-e))}if(r.set(s),s.etag=r.getHeader("ETag"),n[e.url]={headers:s,omitRanges:o},o.length>0){const e=new RangeOmittingStream(o);e.pipe(i),c.forEach((function(t){e.write(t)}))}else c.forEach((function(e){i.write(e)}))}},p=new HtmlParser({onopentag:function(e,t){if(g)if("meta"===e){const e=t["http-equiv"];"string"==typeof e&&(t.content?s[e]=t.content.replace(/\s/g," ").trim():s[e]="",/^(?:X-Frame-Options|Content-Security-Policy(?:-Report-Only)?)$/i.test(e)&&o.push([p.startIndex,p.endIndex+1]))}else if("link"===e){const e=t.rel,n=t.href,r=t.as,i=t.pr,a=t.crossorigin;if("string"==typeof n&&/^(?:preconnect|prefetch|prerender|preload|dns-prefetch)$/i.test(e)){let t=`<${n}>; rel=${e}`;r&&(t+=`; as=${r}`),i&&(t+=`; pr=${i}`),"string"==typeof a&&(t+="; crossorigin"+(a?`=${a}`:"")),Array.isArray(s.link)?s.link.push(t):s.link?s.link=[s.link,t]:s.link=t}}},onclosetag:function(e){"head"===e&&l()}});t.on("data",(function(e){g?(a||c.push(e),p.write(e)):a||i.write(e)})).on("end",(function(){l(),i.end()}))}else t.pipe(i)})))}};
//# sourceMappingURL=/sm/2d6c9bb60be14f22fb6f84dc377feb5272acda98f9c3359666ad7704068ebf1a.map