/**
 * Minified by jsDelivr using Terser v5.37.0.
 * Original file: /npm/cors-anywhere@0.4.4/lib/cors-anywhere.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var httpProxy=require("http-proxy"),net=require("net"),url=require("url"),regexp_tld=require("./regexp-top-level-domain"),getProxyForUrl=require("proxy-from-env").getProxyForUrl,help_text={};function showUsage(e,r,t){var o=/\.html$/.test(e);r["content-type"]=o?"text/html":"text/plain",null!=help_text[e]?(t.writeHead(200,r),t.end(help_text[e])):require("fs").readFile(e,"utf8",(function(o,n){o?(console.error(o),t.writeHead(500,r),t.end()):(help_text[e]=n,showUsage(e,r,t))}))}function isValidHostName(e){return!!(regexp_tld.test(e)||net.isIPv4(e)||net.isIPv6(e))}function withCORS(e,r){e["access-control-allow-origin"]="*";var t=r.corsAnywhereRequestState.corsMaxAge;return"OPTIONS"===r.method&&t&&(e["access-control-max-age"]=t),r.headers["access-control-request-method"]&&(e["access-control-allow-methods"]=r.headers["access-control-request-method"],delete r.headers["access-control-request-method"]),r.headers["access-control-request-headers"]&&(e["access-control-allow-headers"]=r.headers["access-control-request-headers"],delete r.headers["access-control-request-headers"]),e["access-control-expose-headers"]=Object.keys(e).join(","),e}function proxyRequest(e,r,t){var o=e.corsAnywhereRequestState.location;e.url=o.path;var n={changeOrigin:!1,prependPath:!1,target:o,headers:{host:o.host},buffer:{pipe:function(o){var n=o.on;return o.on=function(s,a){return"response"!==s?n.call(this,s,a):n.call(this,"response",(function(n){if(onProxyResponse(t,o,n,e,r))try{a(n)}catch(e){o.emit("error",e)}}))},e.pipe(o)}}},s=e.corsAnywhereRequestState.getProxyForUrl(o.href);s&&(n.target=s,n.toProxy=!0,e.url=o.href);try{t.web(e,r,n)}catch(o){t.emit("error",o,e,r)}}function onProxyResponse(e,r,t,o,n){var s=o.corsAnywhereRequestState,a=t.statusCode;if(s.redirectCount_||n.setHeader("x-request-url",s.location.href),301===a||302===a||303===a||307===a||308===a){var i,d=t.headers.location;if(d&&(i=parseURL(d=url.resolve(s.location.href,d))),i){if((301===a||302===a||303===a)&&(s.redirectCount_=s.redirectCount_+1||1,s.redirectCount_<=s.maxRedirects))return n.setHeader("X-CORS-Redirect-"+s.redirectCount_,a+" "+d),o.method="GET",o.headers["content-length"]="0",delete o.headers["content-type"],s.location=i,o.removeAllListeners(),r.removeAllListeners("error"),r.once("error",(function(){})),r.abort(),proxyRequest(o,n,e),!1;t.headers.location=s.proxyBaseUrl+"/"+d}}return delete t.headers["set-cookie"],delete t.headers["set-cookie2"],t.headers["x-final-url"]=s.location.href,withCORS(t.headers,o),!0}function parseURL(e){var r=e.match(/^(?:(https?:)?\/\/)?(([^\/?]+?)(?::(\d{0,5})(?=[\/?]|$))?)([\/?][\S\s]*|$)/i);if(!r)return null;if(!r[1]){if(/^https?:/i.test(e))return null;-1===e.lastIndexOf("//",0)&&(e="//"+e),e=("443"===r[4]?"https:":"http:")+e}var t=url.parse(e);return t.hostname?t:null}function getHandler(e,r){var t={handleInitialRequest:null,getProxyForUrl:getProxyForUrl,maxRedirects:5,originBlacklist:[],originWhitelist:[],checkRateLimit:null,redirectSameOrigin:!1,requireHeader:null,removeHeaders:[],setHeaders:{},corsMaxAge:0,helpFile:__dirname+"/help.txt"};Object.keys(t).forEach((function(r){Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})),t.requireHeader&&("string"==typeof t.requireHeader?t.requireHeader=[t.requireHeader.toLowerCase()]:Array.isArray(t.requireHeader)&&0!==t.requireHeader.length?t.requireHeader=t.requireHeader.map((function(e){return e.toLowerCase()})):t.requireHeader=null);return function(e,o){e.corsAnywhereRequestState={getProxyForUrl:t.getProxyForUrl,maxRedirects:t.maxRedirects,corsMaxAge:t.corsMaxAge};var n=withCORS({},e);if("OPTIONS"===e.method)return o.writeHead(200,n),void o.end();var s=parseURL(e.url.slice(1));if(!t.handleInitialRequest||!t.handleInitialRequest(e,o,s))if(s){if("iscorsneeded"===s.host)return o.writeHead(200,{"Content-Type":"text/plain"}),void o.end("no");if(s.port>65535)return o.writeHead(400,"Invalid port",n),void o.end("Port number too large: "+s.port);if(!/^\/https?:/.test(e.url)&&!isValidHostName(s.hostname))return o.writeHead(404,"Invalid host",n),void o.end("Invalid host: "+s.hostname);if(a=e.headers,t.requireHeader&&!t.requireHeader.some((function(e){return Object.hasOwnProperty.call(a,e)})))return o.writeHead(400,"Header required",n),void o.end("Missing required request header. Must specify one of: "+t.requireHeader);var a,i=e.headers.origin||"";if(t.originBlacklist.indexOf(i)>=0)return o.writeHead(403,"Forbidden",n),void o.end('The origin "'+i+'" was blacklisted by the operator of this proxy.');if(t.originWhitelist.length&&-1===t.originWhitelist.indexOf(i))return o.writeHead(403,"Forbidden",n),void o.end('The origin "'+i+'" was not whitelisted by the operator of this proxy.');var d=t.checkRateLimit&&t.checkRateLimit(i);if(d)return o.writeHead(429,"Too Many Requests",n),void o.end('The origin "'+i+'" has sent too many requests.\n'+d);if(t.redirectSameOrigin&&i&&"/"===s.href[i.length]&&0===s.href.lastIndexOf(i,0))return n.vary="origin",n["cache-control"]="private",n.location=s.href,o.writeHead(301,"Please use a direct request",n),void o.end();var c=(e.connection.encrypted||/^\s*https/.test(e.headers["x-forwarded-proto"])?"https://":"http://")+e.headers.host;t.removeHeaders.forEach((function(r){delete e.headers[r]})),Object.keys(t.setHeaders).forEach((function(r){e.headers[r]=t.setHeaders[r]})),e.corsAnywhereRequestState.location=s,e.corsAnywhereRequestState.proxyBaseUrl=c,proxyRequest(e,o,r)}else showUsage(t.helpFile,n,o)}}exports.createServer=function(e){var r={xfwd:!0};(e=e||{}).httpProxyOptions&&Object.keys(e.httpProxyOptions).forEach((function(t){r[t]=e.httpProxyOptions[t]}));var t,o=httpProxy.createServer(r),n=getHandler(e,o);return t=e.httpsOptions?require("https").createServer(e.httpsOptions,n):require("http").createServer(n),o.on("error",(function(e,r,t){t.headersSent?!1===t.writableEnded&&t.end():((t.getHeaderNames?t.getHeaderNames():Object.keys(t._headers||{})).forEach((function(e){t.removeHeader(e)})),t.writeHead(404,{"Access-Control-Allow-Origin":"*"}),t.end("Not found because of proxy error: "+e))})),t};
//# sourceMappingURL=/sm/06b7e2c2aaa9cab5a9101b111fb956f732846bf7746597e4808325af27a0cd39.map