UNPKG

@sls-next/lambda-at-edge

Version:

Provides handlers that can be used in CloudFront Lambda@Edge to deploy next.js applications to the edge

2 lines (1 loc) 18.6 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./manifest.json"),t=require("./routes-manifest.json"),r=require("stream"),n=require("zlib"),i=require("http");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=o(e),a=o(t),c=o(r),u=o(n),d=o(i);const f={"accept-encoding":!0,"content-length":!0,"if-modified-since":!0,"if-none-match":!0,"if-range":!0,"if-unmodified-since":!0,"transfer-encoding":!0,via:!0},l={202:"Accepted",502:"Bad Gateway",400:"Bad Request",409:"Conflict",100:"Continue",201:"Created",417:"Expectation Failed",424:"Failed Dependency",403:"Forbidden",504:"Gateway Timeout",410:"Gone",505:"HTTP Version Not Supported",418:"I'm a teapot",419:"Insufficient Space on Resource",507:"Insufficient Storage",500:"Server Error",411:"Length Required",423:"Locked",420:"Method Failure",405:"Method Not Allowed",301:"Moved Permanently",302:"Moved Temporarily",207:"Multi-Status",300:"Multiple Choices",511:"Network Authentication Required",204:"No Content",203:"Non Authoritative Information",406:"Not Acceptable",404:"Not Found",501:"Not Implemented",304:"Not Modified",200:"OK",206:"Partial Content",402:"Payment Required",308:"Permanent Redirect",412:"Precondition Failed",428:"Precondition Required",102:"Processing",407:"Proxy Authentication Required",431:"Request Header Fields Too Large",408:"Request Timeout",413:"Request Entity Too Large",414:"Request-URI Too Long",416:"Requested Range Not Satisfiable",205:"Reset Content",303:"See Other",503:"Service Unavailable",101:"Switching Protocols",307:"Temporary Redirect",429:"Too Many Requests",401:"Unauthorized",422:"Unprocessable Entity",415:"Unsupported Media Type",305:"Use Proxy"},p={enableHTTPCompression:!1},h=(e,{enableHTTPCompression:t,rewrittenUri:r}=p)=>{const{request:n,response:i={headers:{}}}=e,o={headers:{}},s=new c.default.Readable,a=Object.assign(s,d.default.IncomingMessage.prototype);a.url=r||n.uri,a.method=n.method,a.rawHeaders=[],a.headers={},a.connection={},n.querystring&&(a.url=a.url+"?"+n.querystring);const h=n.headers||{};for(const e of Object.keys(h)){const t=h[e];t.forEach((e=>{a.rawHeaders.push(e.key),a.rawHeaders.push(e.value)})),a.headers[e]=t[0].value}a.getHeader=e=>a.headers[e.toLowerCase()],a.getHeaders=()=>a.headers,n.body&&n.body.data&&a.push(n.body.data,n.body.encoding?"base64":void 0),a.push(null);const g=new c.default;g.finished=!1,Object.defineProperty(g,"statusCode",{get:()=>o.status,set(e){o.status=e.toString(),o.statusDescription=l[e]}}),g.headers={};const m={};g.writeHead=(e,t)=>(o.status=e.toString(),o.statusDescription=l[e],t&&(g.headers=Object.assign(g.headers,t)),g),g.write=e=>{o.body||(o.body=Buffer.from("")),o.body=Buffer.concat([o.body,Buffer.isBuffer(e)?e:Buffer.from(e)])};let y=t&&(e=>{let t=!1;const r=e["accept-encoding"];if(r)for(let e=0;e<r.length;e++){const{value:n}=r[e];-1!==n.split(",").map((e=>e.split(";")[0].trim())).indexOf("gzip")&&(t=!0)}return t})(h);const v=new Promise((e=>{g.end=t=>{!0!==g.finished&&(g.finished=!0,t&&g.write(t),g.statusCode||(g.statusCode=200),o.body&&(o.bodyEncoding="base64",o.body=y?u.default.gzipSync(o.body).toString("base64"):Buffer.from(o.body).toString("base64")),o.headers=((e,t,r)=>{const n={};return Object.entries(r).forEach((([e,t])=>{n[e.toLowerCase()]=t})),Object.entries(e).forEach((([e,r])=>{const i=e.toLowerCase();e=t[i]||e,f[i]||(n[i]=[],r instanceof Array?r.forEach((t=>{t&&n[i].push({key:e,value:t.toString()})})):r&&n[i].push({key:e,value:r.toString()}))})),n})(g.headers,m,i.headers),y&&(o.headers["content-encoding"]=[{key:"Content-Encoding",value:"gzip"}]),e(o))}}));return g.setHeader=(e,t)=>{g.headers[e.toLowerCase()]=t,m[e.toLowerCase()]=e},g.removeHeader=e=>{delete g.headers[e.toLowerCase()]},g.getHeader=e=>g.headers[e.toLowerCase()],g.getHeaders=()=>g.headers,g.hasHeader=e=>!!g.getHeader(e),{req:a,res:g,responsePromise:v}};h.SPECIAL_NODE_HEADERS=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];var g=h;const m=["connection","expect","keep-alive","proxy-authenticate","proxy-authorization","proxy-connection","trailer","upgrade","x-accel-buffering","x-accel-charset","x-accel-limit-rate","x-accel-redirect","x-cache","x-forwarded-proto","x-real-ip","content-length","host","transfer-encoding","via"],y=["x-amz-cf-","x-amzn-","x-edge-"];function v(e){const t=e.toLowerCase();for(const e of y)if(t.startsWith(e))return!0;return m.includes(t)}function x(e,t){void 0===t&&(t={});for(var r=function(e){for(var t=[],r=0;r<e.length;){var n=e[r];if("*"!==n&&"+"!==n&&"?"!==n)if("\\"!==n)if("{"!==n)if("}"!==n)if(":"!==n)if("("!==n)t.push({type:"CHAR",index:r,value:e[r++]});else{var i=1,o="";if("?"===e[a=r+1])throw new TypeError('Pattern cannot start with "?" at '+a);for(;a<e.length;)if("\\"!==e[a]){if(")"===e[a]){if(0==--i){a++;break}}else if("("===e[a]&&(i++,"?"!==e[a+1]))throw new TypeError("Capturing groups are not allowed at "+a);o+=e[a++]}else o+=e[a++]+e[a++];if(i)throw new TypeError("Unbalanced pattern at "+r);if(!o)throw new TypeError("Missing pattern at "+r);t.push({type:"PATTERN",index:r,value:o}),r=a}else{for(var s="",a=r+1;a<e.length;){var c=e.charCodeAt(a);if(!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||95===c))break;s+=e[a++]}if(!s)throw new TypeError("Missing parameter name at "+r);t.push({type:"NAME",index:r,value:s}),r=a}else t.push({type:"CLOSE",index:r,value:e[r++]});else t.push({type:"OPEN",index:r,value:e[r++]});else t.push({type:"ESCAPED_CHAR",index:r++,value:e[r++]});else t.push({type:"MODIFIER",index:r,value:e[r++]})}return t.push({type:"END",index:r,value:""}),t}(e),n=t.prefixes,i=void 0===n?"./":n,o="[^"+C(t.delimiter||"/#?")+"]+?",s=[],a=0,c=0,u="",d=function(e){if(c<r.length&&r[c].type===e)return r[c++].value},f=function(e){var t=d(e);if(void 0!==t)return t;var n=r[c],i=n.type,o=n.index;throw new TypeError("Unexpected "+i+" at "+o+", expected "+e)},l=function(){for(var e,t="";e=d("CHAR")||d("ESCAPED_CHAR");)t+=e;return t};c<r.length;){var p=d("CHAR"),h=d("NAME"),g=d("PATTERN");if(h||g){var m=p||"";-1===i.indexOf(m)&&(u+=m,m=""),u&&(s.push(u),u=""),s.push({name:h||a++,prefix:m,suffix:"",pattern:g||o,modifier:d("MODIFIER")||""})}else{var y=p||d("ESCAPED_CHAR");if(y)u+=y;else if(u&&(s.push(u),u=""),d("OPEN")){m=l();var v=d("NAME")||"",x=d("PATTERN")||"",w=l();f("CLOSE"),s.push({name:v||(x?a++:""),pattern:v&&!x?o:x,prefix:m,suffix:w,modifier:d("MODIFIER")||""})}else f("END")}}return s}function w(e,t){return function(e,t){void 0===t&&(t={});var r=E(t),n=t.encode,i=void 0===n?function(e){return e}:n,o=t.validate,s=void 0===o||o,a=e.map((function(e){if("object"==typeof e)return new RegExp("^(?:"+e.pattern+")$",r)}));return function(t){for(var r="",n=0;n<e.length;n++){var o=e[n];if("string"!=typeof o){var c=t?t[o.name]:void 0,u="?"===o.modifier||"*"===o.modifier,d="*"===o.modifier||"+"===o.modifier;if(Array.isArray(c)){if(!d)throw new TypeError('Expected "'+o.name+'" to not repeat, but got an array');if(0===c.length){if(u)continue;throw new TypeError('Expected "'+o.name+'" to not be empty')}for(var f=0;f<c.length;f++){var l=i(c[f],o);if(s&&!a[n].test(l))throw new TypeError('Expected all "'+o.name+'" to match "'+o.pattern+'", but got "'+l+'"');r+=o.prefix+l+o.suffix}}else if("string"!=typeof c&&"number"!=typeof c){if(!u){var p=d?"an array":"a string";throw new TypeError('Expected "'+o.name+'" to be '+p)}}else{l=i(String(c),o);if(s&&!a[n].test(l))throw new TypeError('Expected "'+o.name+'" to match "'+o.pattern+'", but got "'+l+'"');r+=o.prefix+l+o.suffix}}else r+=o}return r}}(x(e,t),t)}function b(e,t){var r=[];return function(e,t,r){void 0===r&&(r={});var n=r.decode,i=void 0===n?function(e){return e}:n;return function(r){var n=e.exec(r);if(!n)return!1;for(var o=n[0],s=n.index,a=Object.create(null),c=function(e){if(void 0===n[e])return"continue";var r=t[e-1];"*"===r.modifier||"+"===r.modifier?a[r.name]=n[e].split(r.prefix+r.suffix).map((function(e){return i(e,r)})):a[r.name]=i(n[e],r)},u=1;u<n.length;u++)c(u);return{path:o,index:s,params:a}}}($(e,r,t),r,t)}function C(e){return e.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function E(e){return e&&e.sensitive?"":"i"}function R(e,t,r){return function(e,t,r){void 0===r&&(r={});for(var n=r.strict,i=void 0!==n&&n,o=r.start,s=void 0===o||o,a=r.end,c=void 0===a||a,u=r.encode,d=void 0===u?function(e){return e}:u,f="["+C(r.endsWith||"")+"]|$",l="["+C(r.delimiter||"/#?")+"]",p=s?"^":"",h=0,g=e;h<g.length;h++){var m=g[h];if("string"==typeof m)p+=C(d(m));else{var y=C(d(m.prefix)),v=C(d(m.suffix));if(m.pattern)if(t&&t.push(m),y||v)if("+"===m.modifier||"*"===m.modifier){var x="*"===m.modifier?"?":"";p+="(?:"+y+"((?:"+m.pattern+")(?:"+v+y+"(?:"+m.pattern+"))*)"+v+")"+x}else p+="(?:"+y+"("+m.pattern+")"+v+")"+m.modifier;else p+="("+m.pattern+")"+m.modifier;else p+="(?:"+y+v+")"+m.modifier}}if(c)i||(p+=l+"?"),p+=r.endsWith?"(?="+f+")":"$";else{var w=e[e.length-1],b="string"==typeof w?l.indexOf(w[w.length-1])>-1:void 0===w;i||(p+="(?:"+l+"(?="+f+"))?"),b||(p+="(?="+l+"|"+f+")")}return new RegExp(p,E(r))}(x(e,r),t,r)}function $(e,t,r){return e instanceof RegExp?function(e,t){if(!t)return e;for(var r=/\((?:\?<(.*?)>)?(?!\?)/g,n=0,i=r.exec(e.source);i;)t.push({name:i[1]||n++,prefix:"",suffix:"",modifier:"",pattern:""}),i=r.exec(e.source);return e}(e,t):Array.isArray(e)?function(e,t,r){var n=e.map((function(e){return $(e,t,r).source}));return new RegExp("(?:"+n.join("|")+")",E(r))}(e,t,r):R(e,t,r)}function q(e,t){return b(t,{decode:decodeURIComponent})(e)}function P(e,t){try{const r=e.toLowerCase();if(r.startsWith("https://")||r.startsWith("http://")){const{origin:r,pathname:n,search:i}=new URL(e),o=`${r}${w(n,{encode:encodeURIComponent})(t)}${i}`;return!e.endsWith("/")&&o.endsWith("/")?o.slice(0,-1):o}{const r=e.replace(/\?/g,"\\?");return w(r,{encode:encodeURIComponent})(t)}}catch(t){return console.error(`Could not compile destination ${e}, returning null instead. Error: ${t}`),null}}const D=(e,t)=>{const r=e.headers[t];return"string"==typeof r||r instanceof String?r:r&&r.length>0?r[0].value.split(":")[0]:void 0};const S=(e,t)=>{var r;const n=null===(r=t.i18n)||void 0===r?void 0:r.domains;if(n){const t=function(e){return D(e,"x-forwarded-host")||D(e,"host")}(e);if(t){const e=n.find((e=>e.domain===t));if(e)return e.defaultLocale}}return null};function A(e,t,r=null){if(t.i18n){const n=null!=r?r:t.i18n.defaultLocale,i=t.i18n.locales,o=e.startsWith(t.basePath)?t.basePath:"",s=e.toLowerCase();for(const t of i)if(s===`${o}/${t}`.toLowerCase()||s.startsWith(`${o}/${t}/`.toLowerCase()))return e.replace(new RegExp(`${o}/${t}`,"i"),`${o}/${null!=r?r:t}`);return"/"===e||e===`${o}`?`${o}/${n}`:e.replace(`${o}/`,`${o}/${n}/`)}return e}function T(e,t){if(t.i18n){const r=e.toLowerCase(),n=t.i18n.locales;for(const e of n){const t=`/${e.toLowerCase()}`;if(r===t)return"/";if(r.startsWith(`${t}/`))return`${r.slice(t.length)}`}}return e}const L=(e,t)=>{var r;const[n]=(null!==(r=e.req.url)&&void 0!==r?r:"").split("?"),i=((e,t)=>{const r=A(e,t),n={};for(const e of t.headers)if(q(r,e.source))for(const{key:t,value:r}of e.headers)t&&(n[t.toLowerCase()]=[{key:t,value:r}]);return n})(n,t);for(const[{key:t,value:r}]of Object.values(i))t&&e.res.setHeader(t,r)},O=(e,t)=>{var r;for(const[n,i]of Object.entries(t.headers||[])){const t=i.map((({key:e})=>e)),o=i.map((({value:e})=>e)).join(";");o&&e.res.setHeader(null!==(r=t[0])&&void 0!==r?r:n,o)}},H=(e,t)=>{const{basePath:r}=t;if(r){if(!e.startsWith(r))return{normalisedUri:e,missingExpectedBasePath:!0};e=e.slice(r.length)}return e.endsWith("/")&&(e=e.slice(0,-1)),{normalisedUri:""===e?"/":e,missingExpectedBasePath:!1}},j=(e,t,r)=>((e,t,r)=>{const n=function(e,t){if(t.basePath&&e.startsWith(t.basePath)&&(e=e.slice(t.basePath.length)),t.i18n){const r=e.toLowerCase();for(const e of t.i18n.locales){const t=e.toLowerCase();if(r===`/${t}`||r.startsWith(`/${t}/`))return`/${e}`}return`/${t.i18n.defaultLocale}`}return""}(e,r),i=`${n}/404`;if(t.pages.html.nonDynamic[i]||t.pages.ssg.nonDynamic[i])return{isData:!1,isStatic:!0,file:`pages${i}.html`,statusCode:404}})(e,t,r)||{isData:!1,isRender:!0,page:"pages/_error.js",statusCode:404},k=e=>"/"==e?"pages/index.html":`pages${e}.html`,N=(e,t,r,n,i,o)=>{var s,a,c;const{pages:u}=r,{normalisedUri:d,missingExpectedBasePath:f}=H(A(t,n,S(e,n)),n);if(!f){if(u.html.nonDynamic[d]){const e=T(d,n),t="/404"===e?404:"/500"===e?500:void 0;return{isData:!1,isStatic:!0,file:u.html.nonDynamic[d],statusCode:t}}if(u.ssg.nonDynamic[d]&&!i){const e=u.ssg.nonDynamic[d],t=null!==(s=e.srcRoute)&&void 0!==s?s:d,r=T(d,n),i="/404"===r?404:"/500"===r?500:void 0;return{isData:!1,isStatic:!0,file:k(d),page:u.ssr.nonDynamic[t]||u.ssr.dynamic[t],revalidate:e.initialRevalidateSeconds,statusCode:i}}const e=decodeURI(d);if(u.ssg.nonDynamic[e]&&!i){const t=u.ssg.nonDynamic[e];if(t.initialRevalidateSeconds){const r=null!==(a=t.srcRoute)&&void 0!==a?a:e,i=T(e,n),o="/404"===i?404:"/500"===i?500:void 0;return{isData:!1,isStatic:!0,file:k(d),page:u.ssr.nonDynamic[r]||u.ssr.dynamic[r],revalidate:t.initialRevalidateSeconds,statusCode:o}}}if((null!==(c=u.ssg.notFound)&&void 0!==c?c:{})[d]&&!i)return j(t,r,n);if(u.ssr.nonDynamic[d])return d.startsWith("/api/")?{isApi:!0,page:u.ssr.nonDynamic[d]}:{isData:!1,isRender:!0,page:u.ssr.nonDynamic[d]}}const l=!o&&U(e,t,n,r);if(l){const[t,o]=l.split("?");if(W(t))return{isExternal:!0,path:t,querystring:o};return{...N(e,t,r,n,i,!0),querystring:o}}if(!f){const e=((e,t)=>{for(const{route:r,regex:n}of t)if(new RegExp(n,"i").test(e))return r})(d,u.dynamic),t=e&&u.ssg.dynamic[e];if(t&&!i)return{isData:!1,isStatic:!0,file:k(d),page:e?u.ssr.dynamic[e]:void 0,fallback:t.fallback};const r=e&&u.ssr.dynamic[e];if(r)return e.startsWith("/api/")?{isApi:!0,page:r}:{isData:!1,isRender:!0,page:r};const n=e&&u.html.dynamic[e];if(n)return{isData:!1,isStatic:!0,file:n}}return j(t,r,n)};function U(e,t,r,n){const i=A(t,r,S(e,r)),o=r.rewrites;for(const t of o){const o=q(i,t.source);if(!o)continue;const s=o.params,a=P(t.destination,s);if(!a)return;if(n&&i===a){if(404===N(e,a,n,r,!1,!0).statusCode)continue}const c=Object.keys(s).filter((e=>"nextInternalLocale"!==e)).filter((e=>!t.destination.endsWith(`:${e}`)&&!t.destination.includes(`:${e}/`))).map((e=>{const t=s[e];return"string"==typeof t?`${e}=${t}`:t.map((t=>`${e}=${t}`)).join("&")})).filter((e=>e)).join("&");if(c){const e=a.includes("?")?"&":"?";return`${a}${e}${c}`}return a}}function W(e){return e.startsWith("http://")||e.startsWith("https://")}const M=(e,t,r,n,i)=>{const{apis:o}=r,{normalisedUri:s,missingExpectedBasePath:a}=H(t,n);if(!a){const e=o.nonDynamic[s];if(e)return{isApi:!0,page:e}}const c=!i&&U(e,t,n);if(c){const t=T(c,n),[i,o]=t.split("?");if(W(i))return{isExternal:!0,path:i,querystring:o};const s=M(e,i,r,n,!0);return s?{...s,querystring:o}:s}if(!a){const e=((e,t)=>{for(const{file:r,regex:n}of t)if(new RegExp(n,"i").test(e))return r})(s,o.dynamic);if(e)return{isApi:!0,page:e}}};function I(e,t,r){let n;if(t){const[r,i]=e.split("?");n=`${r}?${t}${i?`&${i}`:""}`}else n=e;const o=r;return{isRedirect:!0,status:o,statusDescription:i.STATUS_CODES[o]||"",headers:{location:[{key:"Location",value:n}],refresh:308===r?[{key:"Refresh",value:`0;url=${n}`}]:[],"cache-control":[{key:"Cache-Control",value:"s-maxage=0"}]}}}const z=(e,t)=>{const{headers:r}=e;return function(e,t){var r;if(t&&t.username&&t.password){const n="Basic "+Buffer.from(t.username+":"+t.password).toString("base64");if(!e||(null===(r=e[0])||void 0===r?void 0:r.value)!==n)return{isUnauthorized:!0,status:401,statusDescription:"Unauthorized",body:"Unauthorized",headers:{"www-authenticate":[{key:"WWW-Authenticate",value:"Basic"}]}}}}(r.authorization,t.authentication)},B=(e,t)=>{const r=function(e,t){var r;const n=A(e.uri,t),i=null!==(r=t.redirects)&&void 0!==r?r:[];for(const e of i){const t=q(n,e.source);if(t){const r=P(e.destination,t.params);return r?{path:r,statusCode:e.statusCode}:null}}return null}(e,t);if(r){const{path:t,statusCode:n}=r;return I(t,e.querystring,n)}},F=(e,t,r)=>{const n=z(e,t);if(n)return n;const i=((e,t)=>{const r=function(e,t){const r=e.headers.host;if(r&&r.length>0){const n=r[0].value,i=t.domainRedirects;if(i&&i[n])return`${i[n]}${e.uri}`}}(e,t);if(r)return I(r,e.querystring,308)})(e,t)||B(e,r);return i||M(e,e.uri,t,r)},_=async(e,t,r,n)=>{const i=(e=>{var t;const[r,n]=(null!==(t=e.req.url)&&void 0!==t?t:"").split("?"),i={};for(const[t,r]of Object.entries(e.req.headers))r&&Array.isArray(r)?i[t.toLowerCase()]=r.map((e=>({key:t,value:e}))):r&&(i[t.toLowerCase()]=[{key:t,value:r}]);return{headers:i,querystring:n,uri:r}})(e),o=F(i,t,r);if(!o)return(e=>{e.res.statusCode=404,e.res.statusMessage="Not Found",e.res.end("Not Found")})(e);if(o.querystring&&(e.req.url=`${e.req.url}${i.querystring?"&":"?"}${o.querystring}`),o.isApi){const{page:t}=o;return L(e,r),e.req.hasOwnProperty("originalRequest")||Object.defineProperty(e.req,"originalRequest",{get:()=>e.req}),e.res.hasOwnProperty("originalResponse")||Object.defineProperty(e.res,"originalResponse",{get:()=>e.res}),void n(t).default(e.req,e.res)}return o.isRedirect||o.isUnauthorized?((e,t)=>{O(e,t),e.res.statusCode=t.status,e.res.statusMessage=t.statusDescription,e.res.end()})(e,o):o},G=["connection","expect","keep-alive","proxy-authenticate","proxy-authorization","proxy-connection","trailer","upgrade","x-accel-buffering","x-accel-charset","x-accel-limit-rate","x-accel-redirect","x-cache","x-forwarded-proto","x-real-ip"],K=["x-amz-cf-","x-amzn-","x-edge-"];function V(e){const t=e.toLowerCase();for(const e of K)if(t.startsWith(e))return!0;return G.includes(t)}exports.handler=async e=>{var t;const r=e.Records[0].cf.request,n=a.default,i=s.default,{req:o,res:c,responsePromise:u}=g(e.Records[0].cf,{enableHTTPCompression:i.enableHTTPCompression}),d=await _({req:o,res:c,responsePromise:u},i,n,(e=>require(`./${e}`)));if(d){const{path:e}=d;await async function(e,t,r,n){const{default:i}=await Promise.resolve().then((function(){return require("./index-686a9242.js")})),o={};let s;if(Object.assign(o,t.headers),o.hasOwnProperty("host")&&delete o.host,n){const r=Buffer.from(n,"base64").toString("utf8");s=await i(e,{headers:o,method:t.method,body:r,redirect:"manual"})}else s=await i(e,{headers:o,method:t.method,compress:!1,redirect:"manual"});for(const[e,t]of s.headers.entries())v(e)||r.setHeader(e,t);r.statusCode=s.status,r.end(await s.buffer())}(e,o,c,null===(t=r.body)||void 0===t?void 0:t.data)}const f=await u;return f.headers&&function(e){for(const t in e)V(t)&&delete e[t]}(f.headers),f};