httpyac
Version:
HTTP/REST CLI Client for *.http files
2 lines • 224 kB
JavaScript
"use strict";var Ju=Object.create;var kr=Object.defineProperty;var Xu=Object.getOwnPropertyDescriptor;var Yu=Object.getOwnPropertyNames;var Zu=Object.getPrototypeOf,ep=Object.prototype.hasOwnProperty;var gt=(t,e)=>{for(var r in e)kr(t,r,{get:e[r],enumerable:!0})},si=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Yu(e))!ep.call(t,s)&&s!==r&&kr(t,s,{get:()=>e[s],enumerable:!(o=Xu(e,s))||o.enumerable});return t};var q=(t,e,r)=>(r=t!=null?Ju(Zu(t)):{},si(e||!t||!t.__esModule?kr(r,"default",{value:t,enumerable:!0}):r,t)),tp=t=>si(kr({},"__esModule",{value:!0}),t);var bn={};gt(bn,{AbstractRequestClient:()=>ee,ExecuteHook:()=>We,HookCancel:()=>Ut,HttpSymbol:()=>v,HttpSymbolKind:()=>U,LogLevel:()=>ht,OnRequestHook:()=>Ne,OnResponseHook:()=>Ue,OnStreaming:()=>Ge,ParseEndRegionHook:()=>Ft,ParseHook:()=>Mt,ParseMetaDataHook:()=>_t,ProtoDefinition:()=>Gt,ProvideAssertValue:()=>jt,ProvideEnvironmentsHook:()=>Bt,ProvideVariablesHook:()=>Vt,RepeatOrder:()=>wr,ReplaceVariableHook:()=>Nt,RequestClientEvent:()=>Oe,ResponseLoggingHook:()=>Ke,TestResultStatus:()=>ie,VariableType:()=>ae,cli:()=>oi,createEmptyProcessorContext:()=>vr,getEnvironments:()=>Qc,getVariables:()=>qu,io:()=>I,send:()=>Zn,store:()=>Os,testSymbols:()=>ne,utils:()=>f});module.exports=tp(bn);var oi={};gt(oi,{createProgram:()=>zu,execute:()=>hf,initFileProvider:()=>Ai,initIOProvider:()=>qs});var Wu=require("commander"),Qu=require("path");var f={};gt(f,{ENVIRONMENT_NONE:()=>pi,HandlebarsSingleLine:()=>Zt,OAuth2Regex:()=>Rs,RegionSeparator:()=>st,addHttpFileRequestClientHooks:()=>Yt,addSkippedTestResult:()=>ge,addTestResultToHttpRegion:()=>Se,assertHasNoResponseBody:()=>as,assertHasResponseBody:()=>is,assertHeaderContains:()=>ns,assertHeaderEquals:()=>ss,assertMaxTotalTime:()=>os,assertResponseBodyEquals:()=>ls,assertStatusEquals:()=>rs,cleanVariables:()=>Ar,cloneRequest:()=>li,cloneResponse:()=>$e,createResponseProxy:()=>Lr,decodeJWT:()=>Ze,defaultConfigFiles:()=>Hr,deleteHeader:()=>Ee,deleteVariableInContext:()=>ot,distinct:()=>rp,ensureString:()=>Re,equalsPath:()=>us,errorToString:()=>Ie,executeGlobalScripts:()=>wt,executeRequestClientFactory:()=>hs,expandVariable:()=>Tr,extensionName:()=>ds,findHttpRegionInContext:()=>St,findRootDir:()=>Cr,findRootDirOfFile:()=>Pr,getBufferEncoding:()=>kt,getDisplayName:()=>Xt,getHeader:()=>O,getHeaderArray:()=>L,getHeaderBoolean:()=>B,getHeaderNumber:()=>xt,getHeaderString:()=>F,getHttpyacConfig:()=>ps,getMarkdownSyntax:()=>Ri,getPartOfBody:()=>es,getPlugins:()=>ms,getRegionDescription:()=>ys,importHttpFileInContext:()=>rr,isBufferEncoding:()=>di,isError:()=>fe,isHttpRegionSendContext:()=>Ps,isHttpRegionsSendContext:()=>Cs,isHttpRequest:()=>D,isHttpRequestMethod:()=>ap,isHttpResponse:()=>vt,isMimeTypeCSS:()=>zo,isMimeTypeFormUrlEncoded:()=>Xe,isMimeTypeHtml:()=>bt,isMimeTypeImage:()=>np,isMimeTypeJSON:()=>Wt,isMimeTypeJavascript:()=>Qo,isMimeTypeMarkdown:()=>Qt,isMimeTypeMultiPartFormData:()=>Jo,isMimeTypeMultiPartMixed:()=>Xo,isMimeTypeNewlineDelimitedJSON:()=>Yo,isMimeTypePdf:()=>sp,isMimeTypeXml:()=>Je,isOpenIdInformation:()=>Er,isProcessorContext:()=>ke,isPromise:()=>Ht,isString:()=>m,isStringEmpty:()=>Qe,isUndefined:()=>ve,iterateDirectoryTree:()=>Sr,iterateUntilRoot:()=>_e,joinMarkdown:()=>Or,knownMetaData:()=>Si,logResponse:()=>oe,mergeRawHttpHeaders:()=>pp,mergeResponses:()=>qr,parseComments:()=>nt,parseContentType:()=>Ye,parseDefaultHeadersFactory:()=>er,parseError:()=>tt,parseFileImport:()=>tr,parseHandlebarsString:()=>K,parseHandlebarsSymbols:()=>He,parseInlineResponse:()=>ue,parseJson:()=>zt,parseMimeType:()=>Kt,parseQueryLineFactory:()=>ws,parseRequestHeaderFactory:()=>Ct,parseRequestLineFactory:()=>pe,parseSubsequentLines:()=>Pt,parseUrlLineFactory:()=>ks,promiseQueue:()=>Ss,randomArrayValue:()=>Hs,randomData:()=>or,randomEmail:()=>qt,randomText:()=>se,repeat:()=>cs,replaceFilePath:()=>de,replaceInvalidChars:()=>et,replaceVariables:()=>M,report:()=>x,requestLoggerFactory:()=>Zo,resolveClientCertificates:()=>ui,setVariableInContext:()=>_,shortenFileName:()=>mp,shrinkCloneResponse:()=>ts,sleep:()=>qe,stateGenerator:()=>ze,stringifySafe:()=>k,testFactory:()=>Jt,testFactoryAsync:()=>fs,toAbsoluteFilename:()=>z,toBoolean:()=>G,toBufferLike:()=>le,toEnvironmentKey:()=>J,toHttpString:()=>qp,toHttpStringHeader:()=>bs,toHttpStringRequest:()=>xi,toHttpStringResponse:()=>bi,toMarkdown:()=>Tp,toMarkdownHeader:()=>xs,toMarkdownMeta:()=>Pi,toMarkdownRequest:()=>ki,toMarkdownResponse:()=>vi,toMarkdownTestResults:()=>wi,toMarkdownTimings:()=>Ci,toMultiLineArray:()=>ce,toMultiLineString:()=>j,toNumber:()=>S,toQueryParams:()=>N,toString:()=>b,unsetVariableInContext:()=>bp,useDefaultOnError:()=>rt});function rp(t){function e(r,o,s){return s.indexOf(r)===o}return t.filter(e)}var X=q(require("chalk")),ai=require("util");var I={};gt(I,{Logger:()=>yt,completionItemProvider:()=>$,fileProvider:()=>g,httpClientProvider:()=>re,javascriptProvider:()=>H,log:()=>p,userInteractionProvider:()=>T});var $={emptyLineProvider:[],variableProvider:[],requestHeaderProvider:[]};var g={EOL:`\r
`,exists:()=>{throw new Error("Not Implemented")},dirname:()=>{throw new Error("Not Implemented")},hasExtension:()=>{throw new Error("Not Implemented")},isAbsolute:()=>{throw new Error("Not Implemented")},joinPath:()=>{throw new Error("Not Implemented")},readFile:()=>{throw new Error("Not Implemented")},readBuffer:()=>{throw new Error("Not Implemented")},writeBuffer:()=>{throw new Error("Not Implemented")},readdir:()=>{throw new Error("Not Implemented")},fsPath:ni,toString:ni};function ni(t){return typeof t=="string"?t:t.toString()}var re={};var H={require:{},evalExpression:async function(e,r){return r.variables[e]}};var Z=require("hookpoint"),Mt=class extends Z.LastOutHook{constructor(){super(e=>!!e),this.id="ParseHook"}},_t=class extends Z.LastOutHook{constructor(){super(e=>!!e),this.id="ParseMetaDataHook"}},jt=class extends Z.LastOutHook{constructor(){super(e=>e!==!1),this.id="ProvideAssertValue"}},Ft=class extends Z.SeriesHook{constructor(){super(),this.id="ParseEndRegionHook"}},Vt=class extends Z.SeriesHook{constructor(){super(),this.id="ProvideVariablesHook"}},Bt=class extends Z.SeriesHook{constructor(){super(),this.id="ProvideEnvironmentsHook"}},Nt=class extends Z.WaterfallHook{constructor(){super(e=>e===void 0),this.id="ReplaceVariableHook"}},Ne=class extends Z.SeriesHook{constructor(){super(),this.id="BeforeRequestHook"}},Ue=class extends Z.SeriesHook{constructor(){super(),this.id="AfterRequestHook"}},Ge=class extends Z.SeriesHook{constructor(){super(),this.id="OnStreaming"}},Ke=class extends Z.SeriesHook{constructor(){super(),this.id="ResponseLoggingHook"}},We=class extends Z.SeriesHook{constructor(){super(e=>!e),this.id="ExecuteHook"}};var ii=require("hookpoint"),Ut=ii.HookCancel;var v=class{constructor(e){this.name=e.name||"symbol",this.description=e.description,this.kind=e.kind,this.startLine=e.startLine,this.startOffset=e.startOffset,this.endLine=e.endLine,this.endOffset=e.endOffset,this.children=e.children,this.source=e.source}getSymbolsForLine(e){let r=[];if((this.startLine<=e||this.endLine>=e)&&(r.push(this),this.children))for(let o of this.children)r.push(...o.getSymbolsForLine(e));return r}filter(e){let r=[];if(e(this)&&r.push(this),this.children)for(let o of this.children)r.push(...o.filter(e));return r}};var U=(y=>(y.request="request",y.requestLine="requestLine",y.requestHeader="requestHeader",y.requestBody="requestBody",y.response="response",y.gql="gql",y.proto="proto",y.script="script",y.metaData="metaData",y.comment="comment",y.url="url",y.operator="operator",y.key="key",y.value="value",y.variable="variable",y.path="path",y.variableDefinition="variableDefinition",y.text="text",y))(U||{});var ht=(i=>(i[i.trace=1]="trace",i[i.debug=2]="debug",i[i.warn=5]="warn",i[i.info=10]="info",i[i.error=100]="error",i[i.none=1e3]="none",i))(ht||{});var Gt=class{constructor(e){this.fileName=e}};var wr=(r=>(r[r.sequential=0]="sequential",r[r.parallel=1]="parallel",r))(wr||{});var Oe=class extends Event{constructor(r,o){super(r);this.detail=o}},ee=class{constructor(){this.eventEmitter=new EventTarget}addEventListener(e,r){this.eventEmitter.addEventListener(e,o=>this.isRequestClientEvent(o)?r(o):void 0)}removeEventListener(e,r){this.eventEmitter.removeEventListener(e,o=>this.isRequestClientEvent(o)?r(o):void 0)}isRequestClientEvent(e){return e instanceof Oe}onMessage(e,r){this.eventEmitter.dispatchEvent(new Oe("message",[e,r]))}onProgress(e){this.eventEmitter.dispatchEvent(new Oe("progress",e))}onMetaData(e,r){this.eventEmitter.dispatchEvent(new Oe("metaData",[e,r]))}onDisconnect(){this.eventEmitter.dispatchEvent(new Oe("disconnect",void 0))}triggerEnd(){this.eventEmitter.dispatchEvent(new Oe("end",void 0))}};var ne={ok:"\u2713",error:"\u2716",skipped:"\u25CB"};var ie=(s=>(s.SUCCESS="SUCCESS",s.FAILED="FAILED",s.SKIPPED="SKIPPED",s.ERROR="ERROR",s))(ie||{});var ae=(s=>(s.variable="Variable",s.url="Url",s.body="Body",s.filePath="FilePath",s))(ae||{});var yt=class{constructor(e,r){this.options=e;this.parentLogger=r}collectMessages(){var e;(e=this.parentLogger)==null||e.collectMessages(),this.collectCache=[],this.priorityCache=[]}flush(){var e;(e=this.parentLogger)==null||e.flush(),this.priorityCache=this.flushCache(this.priorityCache),this.collectCache=this.flushCache(this.collectCache)}flushCache(e){if(e){for(let r of e)r();return[]}}writeLog(e,r,o,s){var n,i;if(!((n=this.options)!=null&&n.level)||e>=this.options.level){let a=()=>o(...s);(i=this.options)!=null&&i.logMethod&&(a=()=>{var l,d;return(d=(l=this.options)==null?void 0:l.logMethod)==null?void 0:d.call(l,e,...s)}),r?r.push(a):a()}}info(...e){var r;(r=this.parentLogger)==null||r.info(...e),this.writeLog(10,this.collectCache,console.info,e)}log(...e){var r;(r=this.parentLogger)==null||r.log(...e),this.writeLog(10,this.collectCache,console.log,e)}trace(...e){var r;(r=this.parentLogger)==null||r.trace(...e),this.writeLog(1,this.collectCache,this.options.noTrace?console.debug:console.trace,e)}debug(...e){var r;(r=this.parentLogger)==null||r.debug(...e),this.writeLog(2,this.collectCache,console.debug,e)}error(...e){var r;(r=this.parentLogger)==null||r.error(...e),this.writeLog(100,this.collectCache,console.error,e)}warn(...e){var r;(r=this.parentLogger)==null||r.warn(...e),this.writeLog(5,this.collectCache,console.warn,e)}logPriority(...e){this.writeLog(10,this.priorityCache,console.info,e)}clear(){console.clear()}},p=new yt({level:5,noTrace:!0});var T={isTrusted:()=>!0,showNote:async function(){throw new Error("Not Implemented")},showInputPrompt:async function(){throw new Error("Not Implemented")},showListPrompt:async function(){throw new Error("Not Implemented")}};function j(t){return t.join(g.EOL)}function ce(t){return t.split(/\r?\n/gu)}function ve(t){return typeof t>"u"}function m(t){return typeof t=="string"}function Qe(t){return typeof t=="string"&&/^(\s*)?$/u.test(t)}function ze(t=30){let e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-._~",r=[];for(let o=t;o>0;--o)r.push(e[Math.floor(Math.random()*e.length)]);return r.join("")}function b(t){if(m(t))return t;if(typeof t=="number")return`${t}`;if(t instanceof Date)return t.toISOString();if(t instanceof Error)return t.message;if(Buffer.isBuffer(t))return t.toString("utf-8");if(Array.isArray(t)&&t.every(e=>Buffer.isBuffer(e))){let e=t.map(r=>Buffer.isBuffer(r)&&r.toString("utf8"));return k(e)}if(t)return k(t)}function k(t,e=0){try{return JSON.stringify(t,(r,o)=>op(o)?Buffer.from(o.data).toString("base64"):o,e)}catch(r){return p.debug("JSON.stringify error",r),JSON.stringify(t,(()=>{let s=new WeakSet;return(n,i)=>{if(typeof i=="object"&&i!==null){if(s.has(i))return;s.add(i)}return i}})(),e)}}function Re(t){return typeof t>"u"||t===null||m(t)?t:`${t}`}function op(t){let e=t;return(e==null?void 0:e.type)==="Buffer"&&Array.isArray(e.data)&&!!e.data.length}function G(t,e=!1){var s;if(typeof t=="boolean")return t;if(typeof t=="number")return!!t;let r=(s=Re(t))==null?void 0:s.trim();if(!r)return e;if(/^true$/iu.test(r))return!0;if(/^false$/iu.test(r))return!1;let o=parseFloat(r);return isNaN(o)?e:!!o}function S(t){if(typeof t=="number")return t;let e=Re(t);if(e){let r=Number.parseFloat(e.trim());if(!Number.isNaN(r))return r}}function le(t){return Buffer.isBuffer(t)?t:b(t)}function Kt(t){var n,i;let[e,...r]=t.split(";").map(a=>a.trim()),o=(n=r.find(a=>a.startsWith("charset=")))==null?void 0:n.split("=")[1],s=(i=r.find(a=>a.startsWith("boundary=")))==null?void 0:i.split("=")[1];return{mimeType:e,contentType:t,charset:o,boundary:s}}function Wt(t){return!!t&&(t.mimeType==="application/json"||t.mimeType==="text/json"||t.mimeType.indexOf("+json")>=0||t.mimeType.indexOf("x-amz-json")>=0)}function Qo(t){return(t==null?void 0:t.mimeType)==="application/javascript"||(t==null?void 0:t.mimeType)==="text/x-javascript"}function Je(t){return!!t&&(t.mimeType==="application/xml"||t.mimeType==="text/xml"||t.mimeType.indexOf("+xml")>=0)}function bt(t){return(t==null?void 0:t.mimeType)==="text/html"}function zo(t){return(t==null?void 0:t.mimeType)==="text/css"}function Qt(t){return(t==null?void 0:t.mimeType)==="text/markdown"}function Jo(t){return(t==null?void 0:t.mimeType)==="multipart/form-data"}function Xo(t){return(t==null?void 0:t.mimeType)==="multipart/mixed"}function Yo(t){return(t==null?void 0:t.mimeType)==="application/x-ndjson"}function Xe(t){return(t==null?void 0:t.mimeType)==="application/x-www-form-urlencoded"}function sp(t){return(t==null?void 0:t.mimeType)==="application/pdf"}function np(t){return t?["image/jpeg","image/gif","image/webp","image/png","image/bmp"].indexOf(t.mimeType)>=0:!1}function ap(t){return t?["ACL","BASELINE-CONTROL","CHECKIN","CHECKOUT","CONNECT","COPY","DELETE","GET","GRAPHQL","HEAD","LOCK","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MKWORKSPACE","MOVE","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PUT","REPORT","SEARCH","TRACE","UNLOCK","VERSION-CONTROL"].includes(t.toUpperCase()):!1}function D(t){return(t==null?void 0:t.protocol)==="HTTP"}function Ee(t,...e){if(t)for(let r of e){let o=Object.entries(t).find(([s])=>s.toLowerCase()===r.toLowerCase());o&&o.length>1&&delete t[o[0]]}}function F(t,e){let r=O(t,e);if(m(r))return r}function B(t,e,r=!1){let o=O(t,e);return G(o,r)}function O(t,e){if(t){let r=Object.entries(t).find(([o])=>o.toLowerCase()===e.toLowerCase());if(r&&r.length>1)return r[1]}}function xt(t,e){let r=O(t,e);return S(r)}function L(t,e,r=[]){let o=O(t,e);return o?m(o)?[o]:o:r}function Ye(t){let e=O(t,"content-type");if(m(e))return Kt(e)}function Ze(t){try{let e=t.split(".");if(e.length!==3)return null;let r=e[1];switch(r=r.replace(/-/gu,"+"),r=r.replace(/_/gu,"/"),r.length%4){case 0:break;case 2:r+="==";break;case 3:r+="=";break;default:return null}let o=new ai.TextDecoder().decode(Buffer.from(r,"base64"));return JSON.parse(o)}catch(e){return p.warn(e),null}}function N(t){return Object.entries(t).filter(([,e])=>!!e).map(([e,r])=>Array.isArray(r)?r.map(o=>`${e}=${encodeURIComponent(o||"")}`).join("&"):`${e}=${encodeURIComponent(r||"")}`).join("&")}function Zo(t,e,r){return async function(s,n){var l,d,u,c,h,R,w,E,Q,C;let i=e;if(r&&(n!=null&&n.testResults)&&n.testResults.some(y=>["FAILED","ERROR"].includes(y.status))&&(i=r),!i||i.onlyFailed&&(!(n!=null&&n.testResults)||n.testResults.every(y=>y.status==="SUCCESS")))return;if(t(""),t("---------------------"),t(""),(l=n==null?void 0:n.metaData)!=null&&l.title||(d=n==null?void 0:n.metaData)!=null&&d.name||(u=n==null?void 0:n.metaData)!=null&&u.description){let y=((c=n==null?void 0:n.metaData)==null?void 0:c.title)||((h=n==null?void 0:n.metaData)==null?void 0:h.name);y&&t(X.default`{gray === ${y} ===}`),(R=n==null?void 0:n.metaData)!=null&&R.description&&t(X.default`{gray ${n.metaData.description}}`),t("")}let a=(s==null?void 0:s.request)||(n==null?void 0:n.request);if(a&&(i.useShort?t(X.default`{yellow ${(a==null?void 0:a.method)||"GET"}} {gray ${(a==null?void 0:a.url)||"?"}}`):i.requestOutput&&lp(a,{headers:i.requestHeaders,bodyLength:i.requestBodyLength}).forEach(y=>t(y))),s)if(i.useShort)t(X.default`{gray =>} {cyan.bold ${s.statusCode}} ({yellow ${((w=s.timings)==null?void 0:w.total)||"?"} ms}, {yellow ${((E=s.meta)==null?void 0:E.size)||"?"}})`);else{let y=[];if(i.responseHeaders&&(y.length>0&&y.push(""),y.push(...dp(s))),i.timings&&(y.length>0&&y.push(""),y.push(...up(s))),m(s.body)&&i.responseBodyLength!==void 0){let V=s.body;i.responseBodyPrettyPrint&&s.prettyPrintBody&&(V=s.prettyPrintBody),V=es(V,i.responseBodyLength),V&&(y.length>0&&y.push(""),y.push(V))}t(j(y))}if(n!=null&&n.testResults)for(let y of n.testResults){let V=X.default`{green ${ne.ok} ${y.message||"Test passed"}}`;if(y.status==="SKIPPED")V=X.default`{yellow ${ne.skipped} Test skipped}`;else if(["ERROR","FAILED"].includes(y.status)){let Dt=y.error?` (${(Q=y.error)==null?void 0:Q.displayMessage})`:"";if(V=X.default`{red ${ne.error} ${y.message||"Test failed"}${Dt}}`,!(e!=null&&e.useShort)&&y.status==="ERROR"&&((C=y.error)!=null&&C.error.stack)){let xe=ce(y.error.error.stack).slice(0,3);V=j([V,...xe])}}t(V)}}}function es(t,e){let r=t;if(!(typeof e>"u"||e<0))return e>0&&(r=t.slice(0,Math.min(t.length,e)),t.length>=e&&(r+=`... (${t.length-e} characters more)`)),r}function lp(t,e){var o,s,n,i;let r=[];return r.push(X.default`{cyan.bold ${t.method} ${t.url}}`),t.headers&&e.headers&&r.push(...Object.entries(t.headers).map(([a,l])=>X.default`{yellow ${a}}: ${l}`).sort()),D(t)&&((s=(o=t.options)==null?void 0:o.https)!=null&&s.certificate||(i=(n=t.options)==null?void 0:n.https)!=null&&i.pfx)&&r.push(X.default`{yellow client-cert}: true`),m(t.body)&&e.bodyLength!==void 0&&(r.push(""),r.push(X.default`{gray ${es(t.body,e.bodyLength)}}`)),r}function dp(t){let e=[];return e.push(X.default`{cyan.bold ${t.protocol}} {cyan.bold ${t.statusCode}} {bold ${t.statusMessage?` - ${t.statusMessage}`:""}}`),t.headers&&e.push(...Object.entries(t.headers).filter(([r])=>!r.startsWith(":")).map(([r,o])=>X.default`{yellow ${r}}: ${o}`).sort()),e}function up(t){let e=[];return t.timings&&(e.push(X.default`{cyan.bold Timings}:`),e.push(...Object.entries(t.timings).filter(([,r])=>!!r).map(([r,o])=>X.default`{yellow ${r}}: ${o}`).sort())),e}function li(t){return{url:t.url,method:t.method,body:t.body,contentType:t.contentType&&{...t.contentType},headers:t.headers&&{...t.headers},supportsStreaming:t.supportsStreaming}}function vt(t){let e=t;return!!(e!=null&&e.statusCode)}function ts(t){let e=$e(t);return delete e.rawBody,delete e.prettyPrintBody,delete e.request,e}function $e(t){return{name:t.name,protocol:t.protocol,statusCode:t.statusCode,statusMessage:t.statusMessage,httpVersion:t.httpVersion,headers:t.headers,body:t.body,rawHeaders:t.rawHeaders,rawBody:t.rawBody,parsedBody:t.parsedBody,prettyPrintBody:t.prettyPrintBody,contentType:t.contentType,timings:t.timings&&{...t.timings},meta:t.meta,tags:t.tags,request:t.request&&li(t.request)}}function pp(t){let e={};for(let r=0;r<t.length;r+=2){let o=t[r],s=t[r+1];if(typeof s>"u")continue;let n=o.toLowerCase();e[n]=e[n]||[],e[n].push(s)}return e}function Rt(t,e){if(!t)throw new Error(e)}function rs(t,e){Rt(t.statusCode===e,`response status is ${t.statusCode} (expected: ${e})`)}function os(t,e){var r,o;Rt((r=t.timings)!=null&&r.total?t.timings.total<e:!0,`total time is ${(o=t.timings)==null?void 0:o.total} (expected max ${e})`)}function ss(t,e,r){let o=O(t.headers,e);Rt(o===r,`response header ${e} is ${o} (expected: ${r})`)}function ns(t,e,r){let o=O(t.headers,e);(m(o)||Array.isArray(o))&&Rt(!!o.indexOf(r),`response header contains ${r}`)}function is(t){console.assert(!!t.body,"response body exists")}function as(t){Rt(!t.body,"response body does not exists")}function ls(t,e){Rt(t.body===e,`response body equals ${e}`)}function di(t){return["ascii","utf8","utf-8","utf16le","ucs2","ucs-2","base64","latin1","binary","hex"].indexOf(t)>=0}function kt(t){return t&&di(t)?t:"utf8"}async function z(t,e){if(t){if(await g.isAbsolute(t)&&await g.exists(t))return t;if(e&&m(t)){let r=g.joinPath(e,t);if(await g.exists(r))return r}}}function ds(t){let e=g.toString(t),r=e.lastIndexOf(".");if(r>0&&r<e.length-2)return e.slice(r+1)}function et(t){return t.replace(/[/\\?%*:|"<>\s()@\-~,=$]/gu,"_").split("_").filter(r=>r.length>0).join("_")}function mp(t,e=50){let r=[],o=0;for(let n of t.split("_").reverse())n.length+o<e?(r.push(n),o+=n.length+1):r.length===0&&r.push(n);let s=r.reverse().join("_");return s.slice(Math.max(s.length-e,0))}async function Pr(t,e,...r){let o=t,s=g.fsPath(t);!await g.isAbsolute(t)&&e&&s&&(o=g.joinPath(e,s));let n=g.dirname(o);return await Cr(n,...r)}async function Cr(t,...e){return Sr(t,async r=>{let o=await g.readdir(r);if(o.some(s=>e.indexOf(s)>=0))return!0;for(let s of e)if(o.some(n=>s.startsWith(n))&&await g.exists(g.joinPath(r,s)))return!0;return!1})}async function _e(t,e,r){return Sr(t,async o=>(await r(o),!!e&&us(e,o)))}async function Sr(t,e){if(t){if(await e(t))return t;if(!us(g.dirname(t),t))return Sr(g.dirname(t),e)}}function us(t,e){return!!t&&!!e&&g.toString(t)===g.toString(e)}async function ps(t,e){let r;return e&&(r=await cp(e),r||(r=await fp(t,e)),r&&await ui(r,e)),r}var Hr=[".httpyac.js",".httpyac.cjs",".httpyac.config.js",".httpyac.config.cjs","httpyac.config.js","httpyac.config.cjs",".httpyac.json","httpyac.config.json"];async function cp(t){let e;for(let r of Hr){let o=r&&g.joinPath(t,r);if(o&&await g.exists(o)){e=g.fsPath(o);break}}if(e){let r=g.fsPath(t);if(r&&H.loadModule){let o=H.loadModule(e,r,!0);return typeof o=="function"?o():o}}}async function fp(t,e){let r=[];if(await _e(t,e,async o=>{var n;let s=(n=await zt(g.joinPath(o,"package.json")))==null?void 0:n.httpyac;s&&r.push(s)}),r.length>0)return Object.assign({},...r.reverse())}async function zt(t){try{if(await g.exists(t)){let e=await g.readFile(t,"utf-8");return JSON.parse(e)}}catch(e){p.debug(`json parse of ${t} failed`,e)}}async function ui(t,e){if(t.clientCertificates)for(let[,r]of Object.entries(t.clientCertificates))r.cert&&(r.cert=await z(r.cert,e)||r.cert),r.key&&(r.key=await z(r.key,e)||r.key),r.pfx&&(r.pfx=await z(r.pfx,e)||r.pfx)}async function ms(t){let e=await gp(t),r={};if(e!=null&&e.json){let o=[...Object.keys(e.json.dependencies||{}),...Object.keys(e.json.devDependencies||{})].filter(hp);for(let s of o){let n=g.fsPath(e.dir);if(n&&H.loadModule){let i=H.loadModule(s,n);i&&(r[s]=i)}}}return r}async function gp(t){let e=await Cr(t,"package.json");if(e)return{dir:e,json:await zt(g.joinPath(e,"package.json"))}}function hp(t){return/^(httpyac-|@[\w-]+(\.)?[\w-]+\/httpyac-)plugin-/u.test(t)}var pi="__NONE__";function J(t){return t&&t.length>0?t.sort().join(","):pi}function fe(t){if(!t)return!1;if(t instanceof Error)return!0;let e=t;return!!e.message&&!!e.stack&&!!e.name}function tt(t){var e;if(t.stack){let r=/^(?<error>.*):\s*(?<message>.*)\r?\n\s*at (?<file>.*):(?<line>\d*):(?<offset>\d*)/mu.exec(t.stack);if(r&&((e=r.groups)!=null&&e.error))return{error:t,errorType:r.groups.error,message:r.groups.message,file:r.groups.file,line:r.groups.line,offset:r.groups.offset,displayMessage:`${r.groups.error}: ${r.groups.message} - ${r.groups.file}:${r.groups.line}:${r.groups.offset}`}}return{error:t,displayMessage:t.message}}function Ie(t){return fe(t)?k({message:t.message,name:t.name,stack:t.stack}):b(t)}async function rt(t,e){try{return await t}catch(r){return p.warn("promise has read error",r),e}}var yi=require("hookpoint");var gs=require("hookpoint");function x(t,e){var r,o;p.debug(e),(o=(r=t.progress)==null?void 0:r.report)==null||o.call(r,{message:e})}async function cs(t,e){var n,i;let r=[],o=1;(n=e.repeat)!=null&&n.count&&e.isMainContext&&(o=e.repeat.count);for(let a=0;a<o;a++)r.push(t);let s=[];if(((i=e.repeat)==null?void 0:i.type)===1){let a=await Promise.all(r.map(l=>l()));for(let l of a)l&&a.push(l)}else for(let a of r){let l=await a();l&&s.push(l)}return qr(s)}function qr(t){if(t.length>1){let e=$e(t[0]);delete e.prettyPrintBody,delete e.rawBody,delete e.meta,delete e.timings;let r={responses:[],statusCount:{},count:t.length},o=[];for(let s of t){s.statusCode>e.statusCode&&(e.statusCode=s.statusCode,e.statusMessage=s.statusMessage);let n=`${s.statusCode}`;r.statusCount[n]?r.statusCount[n]+=1:r.statusCount[n]=1,s.timings&&o.push(s.timings),delete s.prettyPrintBody,delete s.parsedBody,delete s.rawBody,r.responses.push($e(s)),o.length>0&&(e.timings=yp(o))}return e.parsedBody=r,e.body=k(r,2),e}return t.pop()}function yp(t){let e=[],r=[],o=[],s=[],n=[],i=[],a=[],l=[];for(let u of t)e.push(u.dns||0),r.push(u.download||0),o.push(u.firstByte||0),s.push(u.request||0),n.push(u.tcp||0),i.push(u.tls||0),a.push(u.total||0),l.push(u.wait||0);let d=u=>{let c=u.filter(h=>h>0);if(c.length>0)return c.reduce((h,R)=>h+R,0)/c.length};return{dns:d(e),download:d(r),firstByte:d(o),request:d(s),tcp:d(n),tls:d(i),total:d(a),wait:d(l)}}var mi=require("hookpoint");async function M(t,e,r){var o,s;return(s=(o=r.progress)==null?void 0:o.isCanceled)!=null&&s.call(o)?(p.trace("process canceled by user"),mi.HookCancel):await r.httpFile.hooks.replaceVariable.trigger(t,e,r)}async function de(t,e,r){var s,n,i,a;let o=await M(t,"FilePath",e);if(m(o)){let l=await z(o,g.dirname(e.httpFile.fileName));if(l)return await r(l);let d=`file not found: ${t}`;(n=(s=T).showWarnMessage)==null||n.call(s,d),p.warn(d)}else{let l=`file replace made file invalid: ${t} <> ${o}`;(a=(i=T).showWarnMessage)==null||a.call(i,l),p.warn(l)}}function Tr(t,e){if(t&&m(t)){let r=t,o,s=/\{{2}\s*([a-zA-Z0-9_]+)\s*\}{2}/gu;for(;(o=s.exec(r))!==null;){let[n,i]=o,a=Tr(e[i],e);e[i]=a,r=r.replace(n,()=>`${a}`)}return r}return t}function _(t,e){if(t){let r=Ar(t);Object.assign(e.variables,r);let o=J(e.activeEnvironment);e.httpRegion.variablesPerEnv[o]||(e.httpRegion.variablesPerEnv[o]={}),Object.assign(e.httpRegion.variablesPerEnv[o],r)}}function Ar(t){return Object.fromEntries(Object.entries(t).filter(([e])=>!H.isAllowedKeyword||H.isAllowedKeyword(e)))}function ot(t,e){delete e.variables[t];let r=J(e.activeEnvironment);e.httpRegion.variablesPerEnv[r]&&delete e.httpRegion.variablesPerEnv[r][t]}function bp(t,e){let r=J(e.activeEnvironment),o=e.httpRegion.variablesPerEnv[r];for(let s of Object.keys(t))delete e.variables[s],o&&delete o[s]}var gi=require("uuid");function fs({httpRegion:t},e){return async function(o,s){var i;let n={message:o,status:"SUCCESS"};if(typeof s=="function")try{await s(n)}catch(a){ci(n,a),e.ignoreErrorFile&&((i=n.error)!=null&&i.errorType)&&(n.error.displayMessage=`${n.error.errorType}: ${n.error.message}`)}Se(t,n)}}function ci(t,e){t.status="FAILED",fe(e)?t.error=tt(e):t.error={displayMessage:`${e}`,error:new Error(`${e}`)}}function Jt({httpRegion:t,variables:e}){let r=function(n,i){let a={message:n,status:"SUCCESS"};if(typeof i=="function")try{i()}catch(l){ci(a,l)}Se(t,a)};function o(){return vt(e.response)?e.response:t.response}return r.status=s=>{let n=o();n&&r(`response status equals to ${s}`,()=>rs(n,s))},r.totalTime=s=>{let n=o();n&&r(`total time exceeded ${s}`,()=>os(n,s))},r.header=(s,n)=>{let i=o();i&&r(`response header ${s} equals ${n}`,()=>ss(i,s,n))},r.headerContains=(s,n)=>{let i=o();i&&r(`response header ${s} contains ${n}`,()=>ns(i,s,n))},r.responseBody=s=>{let n=o();n&&r(`response body equals ${s}`,()=>ls(n,s))},r.hasResponseBody=()=>{let s=o();s&&r("response body exists",()=>is(s))},r.hasNoResponseBody=()=>{let s=o();s&&r("response body does not exists",()=>as(s))},r}function Se(t,e){t.testResults||(t.testResults=[]),t.testResults.push(e)}function ge(t,e="request is skipped"){Se(t,{message:e,status:"SKIPPED"})}function hs(t,e){return async function(r){var s;let{request:o}=r;if(o!=null&&o.url){if(!await Pp(r))return!1;let n=t(o,r);_({$requestClient:n},r),r.requestClient=n;let i=vp(n,r),a=((s=n.getSessionId)==null?void 0:s.call(n))||(0,gi.v4)(),l=Hp(e,a,o,()=>{n.disconnect(new Error("user cancellation"))});try{let d=[];Rp(n,r),kp(n,r,d),wp(n,r,d),x(r,n.reportMessage);let u=await n.connect(l.connection);p.debug(`requestClient ${o.url} connect`),l.connectionCount++,u!==l.connection&&(l.connection=u),await Promise.all([cs(()=>n.send(),r),Cp(r).then(()=>{var R;(R=n.streamEnded)==null||R.call(n)})]);let c=await Promise.all(d),h=qr(xp(...c));return h&&!await Sp(h,r)?!1:(l.connectionCount--,fi(e,l)&&(p.debug(`requestClient ${o.url} disconnect`),n.disconnect()),!0)}catch(d){throw l.connectionCount--,fi(e,l)&&((r.scriptConsole||p).error(r.request),p.debug(`requestClient ${o.url} disconnect`),fe(d)?n.disconnect(d):n.disconnect(new Error(b(d)))),d}finally{n.triggerEnd(),i==null||i(),delete r.requestClient,ot("$requestClient",r)}}return!1}}function xp(...t){let e=[];for(let r of t)r&&e.push(r);return e}function vp(t,e){var r,o;if((r=e.progress)!=null&&r.register)return(o=e.progress)==null?void 0:o.register(()=>{ge(e.httpRegion,"user cancellation"),t.disconnect(new Error("user cancellation"))})}function Rp(t,e){var r;if(e.isMainContext&&((r=e.progress)!=null&&r.report)){let o=0;t.addEventListener("progress",s=>{var a;let n=s.detail,i=n-o;if(o=n,(a=e.progress)!=null&&a.report){p.trace(`progress to ${n}`);let l=e.progress.divider||1;e.progress.report({message:"request progress",increment:i/l*100})}})}}function kp(t,e,r){t.addEventListener("message",o=>{let[s,n]=o.detail;p.debug(s,(n==null?void 0:n.message)||(n==null?void 0:n.body)),r.push(Promise.resolve(n)),t.supportsStreaming&&!e.httpRegion.metaData.noStreamingLog&&e.logStream&&r.push(e.logStream(s,{...n}))})}function wp(t,e,r){t.addEventListener("metaData",o=>{let[s,n]=o.detail;p.debug(`event ${s} for ${n.protocol}`,(n==null?void 0:n.message)||(n==null?void 0:n.body)),e.httpRegion.metaData.metaDataLogging&&e.logStream&&r.push(e.logStream(s,n))})}async function Pp(t){let e=t.hooks.onRequest;return t.progress&&e.addInterceptor(hi(()=>{var r;return!!((r=t.progress)!=null&&r.isCanceled())})),t.request&&await e.trigger(t.request,t)!==gs.HookCancel}async function Cp(t){let e=t.hooks.onStreaming;t.progress&&e.addInterceptor(hi(()=>{var r;return!!((r=t.progress)!=null&&r.isCanceled())})),await e.trigger(t)}async function Sp(t,e){return await e.hooks.onResponse.trigger(Lr(t),e)===gs.HookCancel?!1:(e.httpRegion.response=t,!0)}function hi(t){return{id:"isCanceled",async beforeTrigger(){return!t()},async afterTrigger(){return!t()}}}function Lr(t){return new Proxy(t,{set(...r){let[o,s,n]=r,i=Reflect.set(...r);return s==="body"&&(delete o.prettyPrintBody,delete o.parsedBody,delete o.rawBody,typeof n=="string"&&(o.rawBody=Buffer.from(n))),i}})}function Hp(t,e,r,o){let s=t.getUserSession(e);if(s!=null&&s.connection)return s;let n={id:e,description:"Pending Connection",details:{method:r.method,url:r.url},title:`${r.method} ${r.url}`,type:"Stream",connectionCount:0,delete:o};return t.setUserSession(n),n}function fi(t,e){return e.connectionCount<=0&&(delete e.delete,t.removeUserSession(e.id)),e.connectionCount===0}function Xt(t,e="global"){var r,o,s,n;if(t){if(m(t.metaData.title))return t.metaData.title;if(m(t.metaData.name))return t.metaData.name;if((r=t.request)!=null&&r.url){let i=t.request.url.indexOf("?");i<0&&(i=t.request.url.length);let a=((n=(s=(o=t.symbol.children)==null?void 0:o.find)==null?void 0:s.call(o,l=>l.kind==="requestLine"))==null?void 0:n.startLine)||t.symbol.startLine;return`${t.request.method} ${t.request.url.slice(0,i)} (line: ${a+1})`}}return e}function ys(t,e="-"){var r;return m(t.metaData.description)?t.metaData.description:(r=t.request)!=null&&r.url?`${t.request.method} ${t.request.url}`:e}async function oe(t,e){let r;t&&(r=$e(t),await e.hooks.responseLogging.trigger(Lr(r),e)===yi.HookCancel)||!e.httpRegion.metaData.noLog&&e.logResponse&&await e.logResponse(r,e.httpRegion)}async function wt(t){for(let e of t.httpFile.globalHttpRegions)if(!await e.execute(t))return!1;return!0}function Yt(t,e){return{onRequest:e.hooks.onRequest.merge(...e.globalHttpRegions.map(r=>r.hooks.onRequest),t.onRequest),onResponse:e.hooks.onResponse.merge(t.onResponse,...e.globalHttpRegions.map(r=>r.hooks.onResponse)),onStreaming:e.hooks.onStreaming.merge(t.onStreaming,...e.globalHttpRegions.map(r=>r.hooks.onStreaming)),responseLogging:e.hooks.responseLogging.merge(t.responseLogging,...e.globalHttpRegions.map(r=>r.hooks.responseLogging))}}function qp(t,e){let r=[];return t.request&&(r.push(...xi(t.request,{body:!!(e!=null&&e.requestBody)})),r.push("")),r.push(...bi(t,{prettyPrint:!!(e!=null&&e.prettyPrint),body:!!(e!=null&&e.responseBody)})),j(r)}function bi(t,e){let r=[];return r.push(`${t.protocol} ${t.statusCode} ${t.statusMessage?` - ${t.statusMessage}`:""}`),t.headers&&r.push(...bs(t.headers)),e!=null&&e.body&&m(t.body)&&(r.push(""),r.push(e!=null&&e.prettyPrint&&t.prettyPrintBody?t.prettyPrintBody:t.body)),r}function xi(t,e){let r=[];return r.push(`${t.method} ${t.url}`),t.headers&&r.push(...bs(t.headers)),e!=null&&e.body&&m(t.body)&&(r.push(""),r.push(t.body)),r}function bs(t){return Object.entries(t).map(([e,r])=>{let o=r||"";return r&&(Array.isArray(r)?o=r.join(", "):m(r)||(o=k(r))),`${e}: ${o}`})}function Tp(t,e){let r=[];return t.request&&(r.push(...ki(t.request,{body:!!(e!=null&&e.requestBody)})),r.push("")),r.push(...vi(t,{prettyPrint:!!(e!=null&&e.prettyPrint),body:!!(e!=null&&e.responseBody)})),e!=null&&e.testResults&&(r.push(""),r.push(""),r.push(...wi(e.testResults))),e!=null&&e.timings&&t.timings&&(r.push(""),r.push(""),r.push(...Ci(t.timings))),e!=null&&e.meta&&t.meta&&(r.push(""),r.push(""),r.push(...Pi(t.meta))),Or(r)}function vi(t,e){let r=[];if(r.push(`\`${t.protocol} ${t.statusCode}${t.statusMessage?` - ${t.statusMessage}`:""}\``),t.headers&&r.push(...xs(t.headers)),e!=null&&e.body&&m(t.body)){r.push(""),r.push(`\`\`\`${Ri(t.contentType)}`);let o=e.prettyPrint&&t.prettyPrintBody?t.prettyPrintBody:t.body;r.push(Or(ce(o))),r.push("```")}return r}function Ri(t){return Wt(t)?"json":Je(t)?"xml":bt(t)?"html":Qo(t)?"js":zo(t)?"css":Qt(t)?"markdown":""}function ki(t,e){let r=[];return r.push(`\`${t.method} ${t.url}\``),t.headers&&r.push(...xs(t.headers)),e!=null&&e.body&&m(t.body)&&(r.push(""),r.push("```json"),r.push(Or(ce(t.body))),r.push("```")),r}function wi(t){let e=[];e.push("`TestResults`"),e.push("");for(let r of t){let o=`${ne.ok}: ${r.message}`;r.status==="SKIPPED"?o=`${ne.skipped}: ${r.message}`:["FAILED","ERROR"].includes(r.status)&&(o=`${ne.error}: ${r.message}`,r.error&&(o+=` (${r.error.displayMessage})`)),e.push(o)}return e}function xs(t){return Object.entries(t).map(([e,r])=>{let o=r||"";return r&&(Array.isArray(r)?o=r.join(", "):m(r)||(o=k(r))),`*${e}*: ${o}`}).sort()}function Pi(t){let e=[];e.push("`Meta`"),e.push("");for(let[r,o]of Object.entries(t))Array.isArray(o)?o.length>0&&e.push(`*${r}*: ${o.join(",")}`):e.push(`*${r}*: ${o}`);return e}function Ci(t){let e=[];return e.push("`Timings`"),e.push(""),t.wait&&e.push(`*Wait*: ${t.wait} ms`),t.dns&&e.push(`*DNS*: ${t.dns} ms`),t.tcp&&e.push(`*TCP*: ${t.tcp} ms`),t.tls&&e.push(`*TLS*: ${t.tls} ms`),t.request&&e.push(`*Request*: ${t.request} ms`),t.firstByte&&e.push(`*First Byte*: ${t.firstByte} ms`),t.download&&e.push(`*Download*: ${t.download} ms`),t.total&&e.push(`*Total*: ${t.total} ms`),e}function Or(t){return t.join(` ${g.EOL}`)}function Er(t){let e=t;return!!(e!=null&&e.accessToken)}function ke(t){let e=t;return!!(e!=null&&e.httpRegion)&&!!(e!=null&&e.httpFile)&&!!(e!=null&&e.variables)&&!!(e!=null&&e.config)}var Zt=/\{{2}\s*(.+?)\s*\}{2}/gu,st=/^\s*#{3,}(?<title>.*)$/u,Rs=/^\s*(?<type>openid|oauth2)(\s+(?<flow>client(_credentials)?|(authorization_)?code|device(_code)?|password|implicit|hybrid))?(\s+(?<variablePrefix>[^\s]*))?\s*((token_exchange)\s+(?<tokenExchangePrefix>[^\s]*))?\s*$/iu;async function Pt(t,e,r){let o={parseResults:[]},s=t.next();for(;!s.done;){let n=!1;for(let i of e){let a=await i(s.value,r);if(a){o.parseResults.push(a),n=!0;break}}if(!n)break;o.nextLine=s.value.line,s=t.next()}return o}function Ct(t){return async function(r){var s;let o=/^\s*(?<key>[!#$%&'*+\-.^_`|~0-9A-Za-z]+)\s*:\s*(?<value>.*?),?\s*$/u.exec(r.textLine);if((s=o==null?void 0:o.groups)!=null&&s.key){let n=o.groups.key,i=o.groups.value,a=t[n];a?Array.isArray(a)?a.push(i):t[n]=[a,i]:t[n]=i;let l=r.textLine.indexOf(i);return{symbols:[new v({name:n,description:i,kind:"requestHeader",startLine:r.line,startOffset:r.textLine.indexOf(n),endLine:r.line,endOffset:r.textLine.length,children:[new v({name:n,description:"request header key",kind:"key",startLine:r.line,startOffset:r.textLine.indexOf(n),endLine:r.line,endOffset:r.textLine.indexOf(n)+n.length}),i?new v({name:i,description:"request header value",kind:"value",startLine:r.line,startOffset:l,endLine:r.line,endOffset:l+i.length,children:He(i,r.line,l)}):void 0].filter(d=>!!d)})]}}return!1}}function er(t=(e,r)=>{r.request&&(r.request.headers?Object.assign(r.request.headers,e):r.request.headers=e)}){return async function(r,o){var n;let s=/^\s*\.{3}(?<variableName>[^\s]+),?\s*$/u.exec(r.textLine);if((n=s==null?void 0:s.groups)!=null&&n.variableName){let i=new vs(s.groups.variableName,t);o.httpRegion.hooks.execute.addObjHook(l=>l.process,i);let a=r.textLine.trim();return{symbols:[new v({name:a||"hader variable",description:"Header Variable",kind:"requestHeader",startLine:r.line,startOffset:r.textLine.indexOf(a),endOffset:r.textLine.length,endLine:r.line,children:[new v({name:s.groups.variableName,description:"Header Variable",kind:"variable",startLine:r.line,startOffset:s.index,endOffset:s.groups.variableName.length,endLine:r.line})]})]}}return!1}}var vs=class{constructor(e,r){this.data=e;this.setHeaders=r;this.id="defaultHeaders"}async process(e){if(this.data&&e.variables){x(e,"set request headers");let r=await H.evalExpression(this.data,e);r&&this.setHeaders(Object.assign({},r),e)}return!0}};function ks(t){return async function(r){if(/^\s*(\/)[^*]*$/u.test(r.textLine)){let o=r.textLine.trim();return t(o),{symbols:[new v({name:o||"URL Part",description:"URL Part",kind:"url",startLine:r.line,startOffset:r.textLine.indexOf(o),endOffset:r.textLine.length,endLine:r.line,children:He(r.textLine,r.line)})]}}return!1}}function ws(t){return async function(r){if(/^\s*(\?|&)((([^(=?&)]+)=(.*))|\{\{.*\}\})\s*$/u.test(r.textLine)){let o=r.textLine.trim();return t(o),{symbols:[new v({name:o||"Query",description:"Query",kind:"url",startLine:r.line,startOffset:r.textLine.indexOf(o),endOffset:r.textLine.length,endLine:r.line,children:He(r.textLine,r.line,0)})]}}return!1}}async function nt(t,e,r=/^\s*((#\s+)|(\/{2}))/u){var o;if(r.test(t.textLine)){let s={symbols:[new v({name:"comment",description:t.textLine,kind:"metaData",startLine:t.line,startOffset:0,endLine:t.line,endOffset:t.textLine.length})]},n=/^\s*(#+|\/{2,})\s+@(?<key>[^\s]*)(\s+)?"?(?<value>.*)?"?$/u.exec(t.textLine);if(n&&n.groups&&n.groups.key){let i=n.groups.key.replace(/-./gu,l=>l[1].toUpperCase());s.symbols[0].children=[new v({name:i||"metadata",description:n.groups.value||"-",kind:"metaData",startLine:t.line,startOffset:0,endLine:t.line,endOffset:t.textLine.length,children:[new v({name:i||"metadata key",description:((o=Si.find(l=>l.name===i))==null?void 0:o.description)||"key of meta data",kind:"key",startLine:t.line,startOffset:t.textLine.indexOf(n.groups.key),endLine:t.line,endOffset:t.textLine.indexOf(n.groups.key)+n.groups.key.length})]})];let a;n.groups.value&&(a=n.groups.value.trim(),s.symbols[0].children.push(new v({name:n.groups.value||"metadata value",description:"value of meta data",kind:"value",startLine:t.line,startOffset:t.textLine.indexOf(n.groups.value),endLine:t.line,endOffset:t.textLine.indexOf(n.groups.value)+n.groups.value.length}))),e.httpRegion.metaData=Object.assign(e.httpRegion.metaData||{},{[i]:a||!0}),await e.httpFile.hooks.parseMetaData.trigger(i,a,e)}return s}return!1}var Si=[{name:"name",description:"responses of a requests with a name are automatically added as variables and can be reused by other requests",completions:["${1}"]},{name:"debug",description:"enable debug log level"},{name:"description",description:"additional description of region",completions:["${1}"]},{name:"disabled",description:"requests can be disabled"},{name:"extension",description:"extension of file for save or openWith.",completions:["${1}"]},{name:"forceRef",description:"When the request is called, it is ensured that the referenced request is always called beforehand",completions:["${1}"]},{name:"import",description:"reference Requests from other files.",completions:["${1}"]},{name:"injectVariables",description:"Inject Variables in request body (needed because of compatibility with Intellij)."},{name:"jwt",description:"supports auto decode of jwt token."},{name:"language",description:"language id of the response view",completions:["${1}"]},{name:"loop",description:"allows multiple Invocations of a Request with different parameters.",completions:["for ${1} of ${2}","for ${1}","while ${1}"]},{name:"keepStreaming",description:"keep streaming until the user session is ended manually"},{name:"noLog",description:"prevent logging of request data in output console"},{name:"noCookieJar",description:"cookieJar support is disabled for this request"},{name:"noClientCert",description:"SSL client certificate is not send for this request"},{name:"noProxy",description:"disable proxy for this request"},{name:"noRejectUnauthorized",description:"all invalid SSL certificates will be ignored and no error will be thrown."},{name:"noResponseView",description:"prevent output in editor document."},{name:"noStreamingLog",description:"prevent logging of streaming request data in output console"},{name:"note",description:"shows a confirmation dialog before sending request",completions:["${1}"]},{name:"openWith",description:"viewType of custom editor to preview files",completions:["${1}"]},{name:"ref",description:"When the request is called, it is ensured that the referenced request is called beforehand",completions:["${1}"]},{name:"ratelimit",description:"allows throttling requests",completions:["minIdleTime ${1}","max ${1} expire ${2}","minIdleTime ${1} max ${2} expire ${3}"]},{name:"save",description:"If specified, the response will not be displayed but saved directly."},{name:"sleep",description:"wait specified milliseconds, before next step.",completions:["${1}"]},{name:"title",description:"additional title of region",completions:["${1}"]},{name:"timeout",description:"set timeout for request",completions:["${1}"]},{name:"verbose",description:"enable trace log level"}],Ap=100;async function K(t,e){if(!m(t))return t;let r,o,s=t,n=0;for(;o!==s&&n++<Ap;)for(o=s;(r=Zt.exec(o))!==null;){let[i,a]=r,l=await e(a,i);if(typeof l<"u"&&i===t)return l;let d=l===null?"null":b(l);typeof d<"u"&&(s=s.replace(i,()=>d))}return s}function He(t,e,r=0){let o=[];if(t){let s;for(;(s=Zt.exec(t))!==null;){let[n,i]=s;o.push(new v({name:i||"variable",description:i,startLine:e,endLine:e,kind:"variable",startOffset:r+s.index,endOffset:r+s.index+n.length,source:i}))}}return o}async function ue(t,e,r){var n,i;let o=t(),s=o.next();if(!s.done){if(e.data.httpResponseSymbol){let l=e.data.httpResponseSymbol;return l.body.push(s.value.textLine),l.symbol.endLine=s.value.line,l.symbol.endOffset=s.value.textLine.length,{nextParserLine:s.value.line,symbols:[]}}let a=r.exec(s.value.textLine);if(a&&((n=a.groups)!=null&&n.statusCode)){let l={};e.httpRegion.response={protocol:`HTTP/${a.groups.httpVersion||"1.1"}`,httpVersion:a.groups.httpVersion,statusCode:+a.groups.statusCode,statusMessage:a.groups.statusMessage,headers:l};let d=new v({name:"response",description:"response",kind:"response",startLine:s.value.line,startOffset:0,endLine:s.value.line,endOffset:s.value.textLine.length,children:[]});e.data.httpResponseSymbol={symbol:d,body:[]};let u=[e.data.httpResponseSymbol.symbol],c={nextParserLine:s.value.line,symbols:u},h=await Pt(o,[Ct(l)],e);c.nextParserLine=h.nextLine||c.nextParserLine;for(let R of h.parseResults)for(let w of R.symbols)(i=d.children)==null||i.push(w),d.endLine=w.endLine,d.endOffset=w.endOffset;return c}}return!1}function tr(t){let e=/^<(?:(?<injectVariables>@)(?<encoding>\w+)?)?\s+(?<fileName>.+?)\s*$/u.exec(t);if(e&&e.length===4&&e.groups)return{fileName:e.groups.fileName.trim(),injectVariables:!!e.groups.injectVariables,encoding:kt(e.groups.encoding)}}function pe(t){return async function(r,o){var i,a,l;let s=r(),n=s.next();if(!n.done&&Ep(n.value,o,t)){if(o.httpRegion.request)return{endRegionLine:n.value.line-1,nextParserLine:n.value.line-1,symbols:[]};let d=Op(n.value,t);if(!d)return!1;o.httpRegion.request=d.request;let u=new v({name:n.value.textLine||"request line",description:`${t.protocol} request-line`,kind:"requestLine",startLine:n.value.line,startOffset:0,endLine:n.value.line,endOffset:n.value.textLine.length,children:[d.symbol]}),c={nextParserLine:n.value.line,symbols:[u]},h={};d.request.headers=h;let R=await Pt(s,[nt,Ct(h),er(),ws(w=>d.request.url+=w),ks(w=>d.request.url+=w)],o);c.nextParserLine=R.nextLine||c.nextParserLine;for(let w of R.parseResults)(a=(i=c.symbols)==null?void 0:i.push)==null||a.call(i,...w.symbols);if((l=t.modifyRequest)==null||l.call(t,d.request),d.request.headers){let w=O(d.request.headers,"content-type");m(w)&&(d.request.contentType=Kt(w))}return o.httpRegion.hooks.execute.addHook(t.protocol.toLowerCase(),hs(t.requestClientFactory,t.sessionStore)),c}return!1}}function Op(t,e){var s,n,i,a;let r=e.methodRegex.exec(t.textLine);if(r&&r.length>1&&r.groups)return{request:{url:r.groups.url,protocol:e.protocol.toUpperCase(),method:((s=r.groups)==null?void 0:s.method)||e.method||e.protocol},symbol:new v({name:r.groups.url||"request",description:`${e.protocol} Url`,kind:"url",startLine:t.line,startOffset:0,endLine:t.line,endOffset:t.textLine.length,children:He(t.textLine,t.line)})};let o=(n=e.protocolRegex)==null?void 0:n.exec(t.textLine);if(o&&o.length>1&&((i=o.groups)!=null&&i.url))return{request:{url:o.groups.url,protocol:e.protocol.toUpperCase(),method:((a=o.groups)==null?void 0:a.method)||e.method||e.protocol},symbol:new v({name:o.groups.url||"request",description:`${e.protocol} Url`,kind:"url",startLine:t.line,startOffset:0,endLine:t.line,endOffset:t.textLine.length,children:He(t.textLine,t.line)})}}function Ep(t,e,r){var o,s,n,i;return Qe(t.textLine)||e.forceRegionDelimiter&&e.httpRegion.request?!1:(s=(o=r.methodRegex.exec(t.textLine))==null?void 0:o.groups)!=null&&s.url?!0:!e.httpRegion.request&&r.protocolRegex?!!((i=(n=r.protocolRegex.exec(t.textLine))==null?void 0:n.groups)!=null&&i.url):!1}function Ps(t){let e=t;return!!(e!=null&&e.httpRegion)}function Cs(t){let e=t;return Array.isArray(e==null?void 0:e.httpRegions)}function St(t,e){let r=e.httpFile.findHttpRegion(t);if(r)return r;if(e.options.httpFiles)for(let{ref:o}of e.options.httpFiles.filter(s=>s.base===e.httpFile)){let s=o.findHttpRegion(t);if(s)return s}}async function rr(t,e,r){var s,n;let o=await de(t,r,async i=>{p.debug(`parse imported file ${i}`),r.options.httpFiles||(r.options.httpFiles=[]);let a=r.options.httpFiles.filter(d=>d.ref.fileName===i);if(a.length>0){let d=a[0].ref;return a.some(u=>u.base===r.httpFile)||r.options.httpFiles.push({base:r.httpFile,ref:d}),d}let l=await e.getOrCreate(i,async()=>await g.readFile(i,"utf-8"),0,{workingDir:r.httpFile.rootDir,config:r.config});return r.hooks=Yt(r.hooks,l),r.options.httpFiles.push({base:r.httpFile,ref:l}),l});if(o&&(!r.options.globalScriptsExecuted||((n=(s=r.options.globalScriptsExecuted).indexOf)==null?void 0:n.call(s,o))<0)){r.options.globalScriptsExecuted||(r.options.globalScriptsExecuted=[]),p.debug(`execute global scripts for import ${o.fileName}`),r.options.globalScriptsExecuted.push(o);let i={...r,httpFile:o};return await wt(i)}return!!o}function Ht(t){let e=t;return e&&!!e.then}function qe(t){return new Promise(e=>setTimeout(e,t))}async function Ss(t,...e){let r=[],o=async()=>{let n;for(;n=e.shift();)r.push(await n())},s=[];for(let n=0;n<t;n++)s.push(o());return await Promise.all(s),r}var Hi=q(require("dayjs")),qi=require("uuid"),or={alphabetic:(t=10)=>se(t,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"),numeric:(t=10)=>se(t),hexadecimal:(t=10)=>se(t,"1234567890ABCDEF"),email:qt,float:(t=0,e=100)=>Math.random()*(e-t)+t,integer:(t=0,e=100)=>Math.floor(Math.random()*(e-t)+t),uuid:()=>(0,qi.v4)(),date:(t=new Date,e=void 0)=>(0,Hi.default)(t).format(e)};function qt(){return`${se(30)}@${se(10)}.${Hs(["com","org","at","de","fr","uk","it","ch","info","edu","asia","gov","app","io"])}`}function se(t,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_"){let r=[];if(t>0){let o=e.split("");for(let s=0;s<t;s++)r.push(Hs(o))}return r.join("")}function Hs(t){return t[Math.floor(Math.random()*(t.length-1))]}var it=require("fs"),Ti=require("os"),je=require("path");async function qs(){Ai(),await Dp(),$p()}function $p(){process.platform==="win32"&&(ne.ok="[x]",ne.error="[-]",ne.skipped="[*]")}function Ai(){g.EOL=Ti.EOL,g.isAbsolute=async t=>(0,je.isAbsolute)(g.toString(t)),g.dirname=t=>(0,je.dirname)(g.toString(t)),g.hasExtension=(t,...e)=>{let r=(0,je.extname)(g.toString(t));return r.startsWith(".")&&(r=r.slice(1)),e.indexOf(r)>=0},g.joinPath=(t,e)=>(0,je.join)(g.toString(t),e),g.exists=async t=>{try{return!!await it.promises.stat(g.toString(t))}catch{return!1}},g.readFile=async(t,e)=>{let r=g.fsPath(t);if(r)return it.promises.readFile(r,e);throw new Error("No valid path for cli")},g.readBuffer=async t=>{let e=g.fsPath(t);if(e){let r=(0,it.createReadStream)(e);return Ip(r)}throw new Error("No valid path for cli")},g.writeBuffer=(t,e)=>it.promises.writeFile(g.toString(t),e),g.readdir=async t=>it.promises.readdir(g.toString(t))}function Ip(t){return new Promise((e,r)=>{let o=[];t.on("data",s=>{Buffer.isBuffer(s)?o.push(s):o.push(Buffer.from(s))}),t.on("end",()=>e(Buffer.concat(o))),t.on("error",s=>r(s)),t.resume()})}async function Dp(){let t=(await import("inquirer")).default;T.showNote=async function(r){return(await t.prompt([{type:"confirm",name:"note",message:r}])).note},T.showInputPrompt=async function(r,o,s){return s?(await t.prompt([{type:"password",name:"placeholder",message:r,mask:"*",default:o}])).placeholder:(await t.pr